linprocfs and linux_base port upgrade

Kris Kennaway kris at obsecurity.org
Tue Feb 21 14:36:59 PST 2006


On Tue, Feb 21, 2006 at 01:50:41PM -0800, Brooks Davis wrote:
> On Tue, Feb 21, 2006 at 04:38:12PM -0500, Kris Kennaway wrote:
> > On Tue, Feb 21, 2006 at 04:07:00PM -0500, Kris Kennaway wrote:
> > > On Tue, Feb 21, 2006 at 03:52:05PM +0300, Boris Samorodov wrote:
> > > > Hi!
> > > > 
> > > > 
> > > > Assume that one has a linux_base port installed and linprocfs is
> > > > mounted. The task is to upgrade the linux_base port. We do:
> > > >   - Un-mounting linprocfs;
> > > >   - deletting /compat/linux (along /compat/linux/proc);
> > > >   - ...
> > > > 
> > > > The problem: a short period of time (well, it may be not so short
> > > > accoring to various curcumstances) exists when there _is no_
> > > > /compat/linux/proc directory and linprocfs _is_ defined at
> > > > /etc/fstab. If something goes wrong when upgrading (system panic, port
> > > > upgrading errors, etc) one can get an unbootable machine.
> > > > 
> > > > I think that a linux_base port should:
> > > >   - comment the linprocfs definition right after removing
> > > >     /compat/linux/proc directory;
> > > >   - remove the comment after creating the needed directory.
> > > > 
> > > > The comment itself should be a readable and unique one (ie all
> > > > linux_base ports should use the same text). Ex.:
> > > > "#*linux_base autocomment*".
> > > > 
> > > > 
> > > > Do you have some other ideas?
> > > 
> > > Actually, this unmount ... remount situation is pretty evil.  For
> > > example, it prevents users from building linux_base in a jail.  In
> > > fact I'd like to switch to building packages in jails instead of
> > > chroots on the package cluster, but this is the major reason I can't.
> > 
> > Not to mention that the umount isn't always reliable for some reason:
> > the linux_base-8 package build often fails with this:
> > 
> > ===>  Checking if emulators/linux_base-8 already installed
> > Un-mounting linprocfs...
> > kern.fallback_elf_brand: -1 -> 3
> > redhat-release-8.0-8.noarch.rpm
> > glibc-common-2.3.2-4.80.8.i386.rpm
> > glibc-2.3.2-4.80.8.i386.rpm
> > setup-2.5.20-1.noarch.rpm
> > filesystem-2.1.6-5.noarch.rpm
> > unpacking of archive failed on file /proc: cpio: chown failed - Operation not supported
> > *** Error code 1
> 
> I've also had issues where trying to build a native jdk in a chroot.
> The problem is that the chroot in question doesn't have the necessicary
> fstab entries so procfs get unmounted, but not remounted.  Installing
> linux_base in a prior invocation (also required on amd64 due to the
> ARCH override) and mounting and unmounting the chroot's /compat/linux/proc
> before and after every port build seems to work OK.

In my environment I have fstab configured, but it's still not
reliable; sometimes jdk will end up built without linprocfs present,
as though it was not remounted correctly.  I suspect umount and/or
mount of linprocfs may sometimes fail, but I haven't managed to track
down why.

Anyway, [u]mounting during port builds should be avoided for the
reasons I gave earlier.

Kris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-emulation/attachments/20060221/92371079/attachment.bin


More information about the freebsd-emulation mailing list