Bug 189398 - ports-mgmt/portmaster: portmaster -g does not always build intermediate ports
Summary: ports-mgmt/portmaster: portmaster -g does not always build intermediate ports
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Bryan Drewery
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-05-06 20:10 UTC by Martin Birgmeier
Modified: 2014-06-19 00:37 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Birgmeier 2014-05-06 20:10:00 UTC
When using portmaster -g to build new ports and create packages for them, in many cases it does not create packages for the required ports. As an example, if one starts without any KDE ports installed and issues

    portmaster -g x11/kde4

in fact at the end only a tiny kde-4.12.4.txz package will have been created, but nothing for any of the ports pulled in by x11/kde4. This behavior has started a few weeks ago; before that point, portmaster -g would build packages for all the required sub-ports.

It seems that portmaster does not correctly hook into the building of subports any more; rather, they seem to be built directly as if one had just issued

   cd x11/kde4 ; make

This is also reflected by the fact that the xterm window title does not reflect any more which sub-port is currently being built, but just stubbornly shows "portmaster: x11/kde4" all the time.

The same thing happens with many other bigger metaports. There are some ports, however, where portmaster will still correctly build each sub-port separately, and will also build packages for each of them.

Fix: 

This behavior seems to have originated with one of the latest great reshufflings of the port infrastructure not too long ago. Most likely, portmaster has to be adapted to take these changes into account and again hook correctly into the build process for sub-ports.
How-To-Repeat: Start with no KDE ports installed, issue "portmaster -g x11/kde4", and observe that at the end of the process, only the package kde-4.12.4.txz has been created (although all sub-ports have been built).
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2014-05-07 01:36:59 UTC
Responsible Changed
From-To: freebsd-ports-bugs->bdrewery

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Bryan Drewery freebsd_committer freebsd_triage 2014-06-18 15:43:39 UTC
I have confirmed it is a recent portmaster regression (not the Ports framework). I am working on a fix.
Comment 3 Bryan Drewery freebsd_committer freebsd_triage 2014-06-18 16:31:00 UTC
Actually it is a subtle framework bug. Still working on a fix.
Comment 4 Bryan Drewery freebsd_committer freebsd_triage 2014-06-18 16:54:40 UTC
The problem is that the default for 'make' (meaning 'make all') in Ports changed from 'make build' to 'make stage'. Portmaster uses the default.

'make stage' calls run-depends, which makes the ports framework start building all of the required run dependencies, never giving portmaster a chance to manage them itself.

This introduced the issue:

r351399 | bdrewery | 2014-04-16 11:29:38 -0500 (Wed, 16 Apr 2014) | 8 lines

- Make default target "make stage" if staging supported.
  This is so that 'make' followed by 'make deinstall install' will, by default,
  have a much shorter period of files missing on the system as it is without
  staging.

I will update portmaster to handle this better.
Comment 5 Bryan Drewery freebsd_committer freebsd_triage 2014-06-19 00:37:48 UTC
Fixed in 3.17.6 release: http://svnweb.freebsd.org/ports?view=revision&revision=358332