On 13/10/2013 11:58, Ekkehard Gehm wrote: > I resently have some problems installing/updating ports. The main > problem is that the stagedir path is somehow messed up. > > The system is running FreeBSD 9.1-RELEASE-p6 and I'm working in a > jail. While building it creates the stagedir in > /s/portbuild/usr/ports/...../usr/local/ BUT: When it comes to the pkg > building it suddently is looking in .../usr-local/.. witch acctualy > is a part of the symlink. (In the jail /usr/local is a symlink to > /s/usr-local). Resulting in an failure. > > The only workiaround is disabling stage completly thru make.conf... > As this is very quick'n'dirty I wonder if there is any other > solution!
Your subject line is (perhaps) a bit misleading: this seems to be
nothing specific to the use of jails, but due to having sym-links in
various paths. It could happen just the same if you laid out your host
filesystem using sym-links.
Anyhow, this looks like a bug to me -- using sym-links to put your
filesystem together should not result in chaos.
Are you using pkg(8)? There are differences in the way a package is
generated from the staging directory between pkg(8) and pkg_create(1)
which might make all the difference.
Is it all ports that are affected? Does the use of PLIST_FILES or
PLIST_DIRS in the port Makefile make any difference compared to having a
pkg-plist file?
A possible work-around: instead of sym-linking /s/usr-local ->
/usr/local use a nullfs mount instead.
mount -t nullfs /s/usr-local /usr/local
(Actually, you'ld probably do that from outside the jail so adjust the
paths accordingly.)
Another workaround: set up your own poudriere instance to build
packages for all your jails. poudriere(8) will create its own jails to
do package building in, and manage paths etc. itself. It's a natural
partner to pkg(8) and zfs(8) but it will work without either of those.
Cheers,
Matthew
--
Dr Matthew J Seaman MA, D.Phil.
PGP: http://www.infracaninophile.co.uk/pgpkey
signature.asc
Description: OpenPGP digital signature
