Summary: | [exp-run] Allow USES=gmake to use gmake-lite | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Tijl Coosemans <tijl> | ||||||||
Component: | Ports Framework | Assignee: | Tijl Coosemans <tijl> | ||||||||
Status: | Closed FIXED | ||||||||||
Severity: | Affects Only Me | CC: | bapt, kennedy.greg | ||||||||
Priority: | --- | Keywords: | needs-qa, patch | ||||||||
Version: | Latest | Flags: | koobs:
exp-run?
|
||||||||
Hardware: | Any | ||||||||||
OS: | Any | ||||||||||
Attachments: |
|
First run : http://package22.nyi.freebsd.org/build.html?mastername=103i386-default-PR210623&build=2016-06-27_15h53m08s There are more than 100 new failures (lots of ports use ${GMAKE} when they should use ${MAKE_CMD} ) Created attachment 171911 [details]
patch2
It's not just ports that use ${GMAKE}. There are several configure scripts that look for GNU Make and have gmake hardcoded as one of the possible command names. Instead of fixing all these ports so they can use both gmake and gmake-lite, this patch lets gmake-lite install PREFIX/bin/gmake as a symlink to gmake-lite if gmake isn't installed. Installing gmake replaces the symlink and uninstalling gmake restores it if gmake-lite is installed. The patch also restructures gmake-lite as a slave port of gmake.
In my opinion this is a bancal solution. Ports that requires gmake at runtime might depending on the situation have or not have gmake-lite registered as a dependency in the end. because the dependency resolver will in the end finding gmake is satisfied by gmake-lite thus adding gmake-lite as the run dep when they would want the full gmake Bancal is a french word :-p Unsound would be a good english translation, in this context :-) Created attachment 171952 [details]
patch3
The only other thing I can think of is to remove the patch from devel/gmake that causes the info files to be regenerated. It's a very small cosmetic patch so if it causes so much trouble we can live without it. With that removed gmake-lite can be removed altogether.
that can make it, I haven't checked the dependency chain for gettext. but if one is doing that he should add a comment on the whole dependency chain to ensure we never end up with texinfo in that chain before gmake is actually built This looks fine. A commit references this bug: Author: tijl Date: Fri Jul 8 11:24:19 UTC 2016 New revision: 418216 URL: https://svnweb.freebsd.org/changeset/ports/418216 Log: Remove a patch from devel/gmake so the port no longer depends on print/texinfo which requires gmake. To break this circular dependency gmake-lite was introduced. This can be removed now as well. PR: 210623 Reviewed by: bapt Exp-run by: antoine Approved by: portmgr (antoine) Changes: head/MOVED head/Mk/Uses/gmake.mk head/devel/Makefile head/devel/gmake/Makefile head/devel/gmake/files/patch-doc_make.text head/devel/slibtool/Makefile head/misc/help2man/Makefile head/print/texinfo/Makefile A commit references this bug: Author: antoine Date: Sat Jul 9 19:55:35 UTC 2016 New revision: 418291 URL: https://svnweb.freebsd.org/changeset/ports/418291 Log: Finish removal of gmake-lite PR: 210623 Changes: head/devel/gmake-lite/ |
Created attachment 171864 [details] patch The attached patch lets USES=gmake depend on gmake-lite if gmake does not exist. When gmake must be built, gmake-lite is built as one of the dependencies. The ports framework might as well use gmake-lite directly then. The exp-run is needed because some port Makefiles may still be using gmake or ${GMAKE}.