[nycbug-talk] Make package-recursive problem

Matt Juszczak matt at atopia.net
Fri May 22 11:54:56 EDT 2009


> It s not a bug with the ports system.  It is doing what it should do:
>
> I am the nagios port and I am building nagios:
> 1: I need/depend on apache
> 2: apache is not installed on the system
> 3: I tell the apache port to build
> ...
> N: nagios is built/installed/packaged
> N+1: have a beer yea
>
> That is the default behavior of ports, and it is doing the right thing
> by installing what it was told by the port maintainer it needed
> installed as a precondition to build/install/package-up

I'm afraid there's a misunderstanding.  I'm well aware that it's supposed 
to build dependencies.  And I'm well aware that it's supposed to REBUILD 
packages already built if you make package-recursive a port that has 
shared dependencies with another port already built.

Where my concern lies is that the packages are rebuilt with missing files!

For example:

I am the nagios port and I am building nagios:
1. I need/depend on apachge
2. apache is not on the system
3. I tell the apache port to build
...
N: nagios is built/installed/packaged

THEN:

I am the cacti port and I am building cacti:
1. I need/depend on apache
2. apache *is* on the system
3. I re-do the apache package at the end of my install (make 
package-recursive rebuilds packages)
...
N. cacti is build/installed/packaged


The newly overwritten apache packages has the 2 start up scripts missing 
from it from /usr/local/etc/rc.d, but it had them prior to the nagios port 
rebuilding it.

THAT's the issue.  The behavior is unpredictable.  Usually works the first 
time, doesn't work when the port is rebuilt.  Only happens on some ports. 
So far, I've seen it only on:

gettext
python
apache
php5-mysql
php5-pcre
fontconfig

Also, at this point, is there a way to fix dependencies if I removed a 
package item and added it again?  For instance:

pkg_add apache22

<installs 10 or so packages>

pkg_del -f <an apache dependency>
pkg_add <that same apache dependency>

The package is now back, but the dependency on apache has been removed. 
Is the only way to reinstall the apache package?  Is there a way to tell 
apache to only re-create its dependencies without actually re-installing 
files?

-Matt



More information about the talk mailing list