[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#632682: we should probably remove /lib64 -> lib symlink (with care)



Hiya,

> The biggest change compared to the previous one is the new patch 6 which
> tries to check that there is at least one free inode.  Namely, if there
> aren't any, the sequence

>     rm -f /lib64
>     $interpreter /bin/mkdir /lib64
>     $interpreter /bin/ln -s $ldfile RTLD_SO

> will fail in the third command which is rather embarrassing.  This is of
> course far from perfect, if another process runs riot and creates files
> rapidly, you can still lose.  Also, that part isn't really tested at all
> (except that it works when there are no ENOSPC problems).

Nack on this.  The right way to handle it is to create the directory under a
separate name, populate the symlink, and only *then* rm /lib64 and invoke mv
/lib64.real /lib64 via $interpreter.  This minimizes the window when /lib64
is missing, and just happens to also remove the inode problem as a side
effect (because we create all the directory entries we need before we remove
any).

So basically what Jonathan suggested up-thread.

> Subject: [PATCH 2/6] Install the dynamic linker into RTLDDIR as well as /lib

> Installing into both locations makes it easier to support downgrades.
> It also means that dpkg will fail to unpack our package if
> RTLDDIR=/lib64 and /lib64 is a symlink to /lib.  Which is probably a
> good thing since that symlink has to go away.

I'm not keen on this.  Why would we want to install a second copy of
ld-linux-x86-64.so.2 to /lib?  Nothing will use it there.  Shouldn't we be
installing *only* to RTLDDIR, not to both?

And no, this won't cause dpkg to fail to unpack.  dpkg happily traverses
symlinks while unpacking and would never notice that the two files are being
installed to the same location.

Otherwise, this looks good.  I'll merge these up (with the above-mentioned
changes) and put it through its paces here.

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org



Reply to: