stagedir vs. jail
Ekkehard Gehm
freebsd at doom-labs.net
Sun Oct 13 12:22:20 UTC 2013
Ahoi!
On Sun, 13 Oct 2013, Matthew Seaman wrote something like:
> 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.
>
Right. That might be...
> Anyhow, this looks like a bug to me -- using sym-links to put your
> filesystem together should not result in chaos.
>
This is alo my understanding of this issue...
> 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.
>
Here is a short cut out of a build (portmaster portmaster):
install -o root -g wheel -m 444 /s/portbuild/usr/ports/ports-mgmt/portmaster/wo rk/freebsd-portmaster-7359019/files/bash-completions /s/portbuild/usr/ports/por ts-mgmt/portmaster/work/stage/usr/local/etc/bash_completion.d/portmaster.sh
====> Compressing man pages
===> Building package for portmaster-3.17.2
Creating package /s/portbuild/usr/ports/ports-mgmt/portmaster/work/portmaster-3. 17.2.tbz
Registering depends:.
Creating bzip'd tar ball in '/s/portbuild/usr/ports/ports-mgmt/portmaster/work/p ortmaster-3.17.2.tbz'
tar: could not chdir to '/s/portbuild/usr/ports/ports-mgmt/portmaster/work/stage /s/usr-local'
pkg_create: make_dist: tar command failed with code 256
*** [do-package] Error code 1
Stop in /usr/ports/ports-mgmt/portmaster.
*** [install] Error code 1
Stop in /usr/ports/ports-mgmt/portmaster.
===>>> A backup package for portmaster-3.17.1 should
be located in /var/ports/packages/portmaster-backup
===>>> Installation of portmaster-3.17.2 (ports-mgmt/portmaster) failed
===>>> Aborting update
===>>> Killing background jobs
Terminated
===>>> You can restart from the point of failure with this command line:
portmaster <flags> ports-mgmt/portmaster
===>>> Exiting
As a result portmaster is not working anymore...
> 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
>
>
--
Ekkehard Gehm * mailto:gehm at doom-labs.net
Doom-Labs Inc. * http://www.doom-labs.net
Frag Content * PGP-Key: http://www.physik.tu-berlin.de/~gehm/pubkey.asc
Experience is what you get when you were expecting something else.
Microsoft: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming or what?"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20131013/65e1317c/attachment.sig>
More information about the freebsd-ports
mailing list