Bug 210623 - [exp-run] Allow USES=gmake to use gmake-lite
Summary: [exp-run] Allow USES=gmake to use gmake-lite
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Ports Framework (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Tijl Coosemans
Keywords: needs-qa, patch
Depends on:
Reported: 2016-06-27 13:46 UTC by Tijl Coosemans
Modified: 2016-07-09 19:55 UTC (History)
2 users (show)

See Also:
koobs: exp-run?

patch (329 bytes, patch)
2016-06-27 13:46 UTC, Tijl Coosemans
no flags Details | Diff
patch2 (5.61 KB, patch)
2016-06-28 14:45 UTC, Tijl Coosemans
no flags Details | Diff
patch3 (7.45 KB, patch)
2016-06-29 16:43 UTC, Tijl Coosemans
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tijl Coosemans freebsd_committer 2016-06-27 13:46:30 UTC
Created attachment 171864 [details]

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}.
Comment 1 Antoine Brodin freebsd_committer 2016-06-28 10:33:46 UTC
First run :


There are more than 100 new failures  (lots of ports use ${GMAKE} when they should use ${MAKE_CMD} )
Comment 2 Tijl Coosemans freebsd_committer 2016-06-28 14:45:05 UTC
Created attachment 171911 [details]

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.
Comment 3 Baptiste Daroussin freebsd_committer 2016-06-29 14:08:29 UTC
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
Comment 4 Mathieu Arnold freebsd_committer 2016-06-29 14:19:12 UTC
Bancal is a french word :-p

Unsound would be a good english translation, in this context :-)
Comment 5 Tijl Coosemans freebsd_committer 2016-06-29 16:43:25 UTC
Created attachment 171952 [details]

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.
Comment 6 Baptiste Daroussin freebsd_committer 2016-06-29 21:18:40 UTC
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
Comment 7 Antoine Brodin freebsd_committer 2016-07-08 08:37:29 UTC
This looks fine.
Comment 8 commit-hook freebsd_committer 2016-07-08 11:24:27 UTC
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

  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)

Comment 9 commit-hook freebsd_committer 2016-07-09 19:55:41 UTC
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

  Finish removal of gmake-lite

  PR:		210623