Bug 233023

Summary: [PATCH] devel/libical: Convert to OPTIONS framework
Product: Ports & Packages Reporter: Peter Laursen <freebsd>
Component: Individual Port(s)Assignee: freebsd-gnome mailing list <gnome>
Status: Closed FIXED    
Severity: Affects Only Me CC: hselasky, lantw44, ndowens04, w.schwarzenfeld
Priority: --- Keywords: needs-patch, needs-qa
Version: LatestFlags: bugzilla: maintainer-feedback? (gnome)
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Patch converting port to OPTIONS framework, disabling MAKE_JOBS_UNSAFE
none
Patch V2
none
Patch Version 3 - re-ordered variables
none
Fix portlint -C errors - patch version 4
none
Rename option GOBJECT to INTROSPECTION; ensure patch applies against version 3.0.4
none
Replace the INTROSPECTION_INTROSPECTION line with GOBJECT_INTROSPECTION, which it should have been. Thanks for noticing.
none
Add build options to libical port. none

Description Peter Laursen 2018-11-06 12:34:22 UTC
Created attachment 199011 [details]
Patch converting port to OPTIONS framework, disabling MAKE_JOBS_UNSAFE

Hi,
When building devel/libical primarily for use in mail/cyrus-imapd30, I discovered it pulled in a lot of dependencies that seemed unnecessary for my use case. (This is a server system; I had no need for Vala or the other hardcoded dependencies).
The attached patch allows people to disable either the Vala, GObject Introspection or GLib bindings using the familiar OPTIONS dialog. I tried building with MAKE_JOBS_UNSAFE uncommented and it succeeded.
To minimize modifications, I left both the Vala, GObject introspection and the GLib bindings enabled in the default package so that the default users should see no difference.
I bumped PORTREVISION to be on the safe side.
Please let me know if I can be of any further assistance.

Thank you,

Peter.
Comment 1 Nathan 2018-11-07 00:30:33 UTC
Comment on attachment 199011 [details]
Patch converting port to OPTIONS framework, disabling MAKE_JOBS_UNSAFE

+#MAKE_JOBS_UNSAFE= yes 
Remove, since it is not being used

put OPTIONS_SUB below OPTIONS_DEFAULT

For appearance, I'd put a space between each option 

+CMAKE_ARGS+= 		-DICAL_BUILD_DOCS=false
Does not belong below OPTIONS_ as it is not part of OPTIONS block. Nothing should go after OPTIONS_ except, for example: post-install: and similar
Comment 2 Peter Laursen 2018-11-07 07:39:20 UTC
Created attachment 199041 [details]
Patch V2

Hi Nathen,
Thanks for the feedback.
In the attached patch, I have tried to address your points.
I am, however, not sure where CMAKE_ARGS and CFLAGS_AMD64 belongs in this Makefile.
Hope this version of the patch is better,

Peter.
Comment 3 Nathan 2018-11-08 02:39:54 UTC
Comment on attachment 199041 [details]
Patch V2

+CMAKE_ARGS+= 		-DICAL_BUILD_DOCS=false
+CFLAGS_amd64=	-fPIC

Goes below USE_GNOME with space:

https://www.freebsd.org/doc/en/books/porters-handbook/porting-order.html
Comment 4 Peter Laursen 2018-11-08 05:01:35 UTC
Created attachment 199073 [details]
Patch Version 3 - re-ordered variables

Thanks, the attached patch tries to re-order the variables according to section 15 of the Porter's Handbook.
Comment 5 Tobias Kortkamp freebsd_committer 2019-01-25 08:13:25 UTC
Comment on attachment 199073 [details]
Patch Version 3 - re-ordered variables

Please run portlint -C and fix all the errors it outputs:

WARN: Makefile: [22]: use a tab (not space) after a variable name
FATAL: Makefile: [25]: use a tab (not space) after a variable name
FATAL: Makefile: [26]: use a tab (not space) after a variable name
FATAL: Makefile: [29]: use a tab (not space) after a variable name
FATAL: Makefile: [30]: use a tab (not space) after a variable name
FATAL: Makefile: [31]: use a tab (not space) after a variable name
FATAL: Makefile: [33]: use a tab (not space) after a variable name
WARN: Makefile: [34]: use a tab (not space) after a variable name
FATAL: Makefile: [35]: use a tab (not space) after a variable name
FATAL: Makefile: [37]: use a tab (not space) after a variable name
Comment 6 Peter Laursen 2019-01-26 09:08:01 UTC
Created attachment 201409 [details]
Fix portlint -C errors - patch version 4

Thanks, Tobias - bugs and warnings should be fixed in this version of the patch.
Comment 7 Ting-Wei Lan 2019-03-02 16:37:38 UTC
It looks misleading to me to name an option related to GObject introspection after 'GOBJECT'. GObject introspection is a separate project, while GObject is a part of GLib.
Comment 8 Peter Laursen 2019-03-06 16:32:52 UTC
Agreed when you put it like that.
I'll rename the option to INTROSPECTION and make sure that the pkg-plist is corrected so that it applies after the port was updated to 3.0.4 in the tree.

Thank you

Peter.
Comment 9 Peter Laursen 2019-03-07 08:22:23 UTC
Created attachment 202677 [details]
Rename option GOBJECT to INTROSPECTION; ensure patch applies against version 3.0.4

As promised in the previous comment.
Comment 10 Ting-Wei Lan 2019-03-10 05:13:20 UTC
Comment on attachment 202677 [details]
Rename option GOBJECT to INTROSPECTION; ensure patch applies against version 3.0.4

>+INTROSPECTION_DESC=	Build GObject Introspection
>+INTROSPECTION_USE+=	gnome=introspection:build
>+INTROSPECTION_CMAKE_BOOL=	INTROSPECTION_INTROSPECTION

Shouldn't it be GOBJECT_INTROSPECTION instead of INTROSPECTION_INTROSPECTION?
Comment 11 Peter Laursen 2019-03-10 20:09:40 UTC
Created attachment 202784 [details]
Replace the INTROSPECTION_INTROSPECTION line with GOBJECT_INTROSPECTION, which it should have been. Thanks for noticing.

Replace INTROSPECTION_INTROSPECTION with the correct variable. (Thanks for noticing)
Comment 12 Walter Schwarzenfeld freebsd_triage 2019-08-14 11:28:36 UTC
Any news here?
Comment 13 Hans Petter Selasky freebsd_committer 2020-03-06 14:59:57 UTC
Created attachment 212191 [details]
Add build options to libical port.

Tested:

make package

For all build combinations.
This resulted in some fixes.

--HPS
Comment 14 commit-hook freebsd_committer 2020-03-06 15:13:18 UTC
A commit references this bug:

Author: hselasky
Date: Fri Mar  6 15:13:07 UTC 2020
New revision: 527882
URL: https://svnweb.freebsd.org/changeset/ports/527882

Log:
  Add build OPTIONS to be able to minimize dependencies.

  PR:		233023
  Submitted by:	Peter Laursen <freebsd@mosedal.net>
  Approved by:	pi

Changes:
  head/devel/libical/Makefile
  head/devel/libical/pkg-plist
Comment 15 Hans Petter Selasky freebsd_committer 2020-03-06 15:13:58 UTC
Thank you for the contribution!