In order to avoid leaking details of master port intra-dependencies into slave Makefiles OPTIONS_SLAVE and OPTIONS_EXCLUDE should chase _IMPLIES. Here're examples to illustrate: MASTERDIR= ${PORTSDIR}/audio/alsa-plugins OPTIONS_SLAVE= JACK # should append SAMPLERATE .include "${MASTERDIR}/Makefile" MASTERDIR= ${PORTSDIR}/editors/emacs OPTIONS_EXCLUDE= X11 # should append long list of X11 consumers .include "${MASTERDIR}/Makefile"
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207460#c1 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207460#c2
This was fixed since.
When? I don't see any recent relevant commits to Mk/bsd.options.mk. Besides, "Overcome By Events" is weak rationale without referencing a commit i.e., reserved mostly for submitter. See bug dependencies for examples to reproduce.
I was under the impression that this had been fixed. The thing is, without a patch, there is not a lot of chances that this is going to be fixed.
A commit references this bug: Author: bdrewery Date: Tue May 3 18:36:29 UTC 2016 New revision: 414547 URL: https://svnweb.freebsd.org/changeset/ports/414547 Log: Fix excluding implied options. This fixes the devel/git-lite port to not get PERL despite being excluded. PR: 207460 PR: 202701 With hat: portmgr Differential Revision: https://reviews.freebsd.org/D5538 Changes: head/Mk/bsd.options.mk
_EXCLUDE doesn't work as expected (see bug 208218) and _SLAVE wasn't fixed by r414547.
(In reply to Jan Beich from comment #6) > _EXCLUDE doesn't work as expected (see bug 208218) and _SLAVE wasn't fixed > by r414547. Why do we need 2 bugs? And what is a port that shows the problem you're still seeing? The one I fixed is in devel/git-lite. Without my patch: ~/svn/ports/devel/git-lite # make -V ALL_OPTIONS CURL HTMLDOCS ICONV NLS SEND_EMAIL With my patch: ~/svn/ports/devel/git-lite # make -V ALL_OPTIONS CURL HTMLDOCS ICONV NLS It is because PERL implies SEND_EMAIL, and PERL is excluded for git-lite.
(In reply to Bryan Drewery from comment #7) > Why do we need 2 bugs? This bug is a superset. As I haven't analyzed ports maintained by other folks comment 0 has very few examples. _EXCLUDE one moved into bug 208218 but _SLAVE was for a port not yet created (worse is better?). (In reply to Bryan Drewery from comment #7) > ~/svn/ports/devel/git-lite # make -V ALL_OPTIONS Illustrating a feature via undocumented variable won't show corner cases. devel/git is a simple options consumer, so with ALL_OPTIONS you've missed _SINGLE, _RADIO, _MULTI, _GROUP which also define valid options but not handled by ports r414547. # before bug 208218 $ make showconfig -C editors/emacs-nox11 ===> The following configuration options are available for emacs-nox11-24.5_3,3: ACL=off: ACL support DBUS=off: D-Bus IPC system support FILENOTIFY=off: File notification support GNUTLS=off: SSL/TLS support via GnuTLS LTO=off: Enable link-time optimization (requires GCC 4.6+) SOUND=off: Sound support SOURCES=on: Install sources XML=on: XML format or parser support ====> Sound support: you can only select none or one of them ALSA=off: ALSA audio architecture support OSS=off: Open Sound System support ===> Use 'make config' to modify these settings # after bug 208218 $ make showconfig -C editors/emacs-nox11 ===> The following configuration options are available for emacs-nox11-24.5_3,3: ACL=off: ACL support DBUS=off: D-Bus IPC system support FILENOTIFY=off: File notification support GNUTLS=off: SSL/TLS support via GnuTLS LTO=off: Enable link-time optimization (requires GCC 4.6+) M17N=off: M17N support for text-shaping OTF=off: Opentype fonts suport SOUND=off: Sound support SOURCES=on: Install sources XML=on: XML format or parser support ====> X11 (graphics) support: you can only select none or one of them GTK2=off: GTK+ 2 GUI toolkit support GTK3=off: GTK+ 3 GUI toolkit support XAW=off: Athena widgets XAW3D=off: Athena3D widgets MOTIF=off: Motif widget library support ====> Sound support: you can only select none or one of them ALSA=off: ALSA audio architecture support OSS=off: Open Sound System support ===> Use 'make config' to modify these settings Notice M17N, OTF and X11 group aren't excluded but should via options intra-dependencies (i.e. _IMPLIES).
(In reply to Bryan Drewery from comment #7) > Why do we need 2 bugs? Also, I'd prefer if portmgr peers don't hijack issues for drive-by fixes but look at the bigger picture as well. Bugzilla is a tool for collaboration, not an indicator how bad your software is that needs every bug squashed ASAP. Bugs without patches often don't attract attention until at least more than 1 person is affected. And no one (or very few) would be motivated to submit a fix if such bugs are closed shortly after being opened.
Moin moin Closing this, due to old age. Please re-open the issue, if it is still relevant. mfg Tobias