[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