Onward branch

Mordae mordae at anilinux.org
Fri Sep 19 23:33:42 PDT 2008


On Saturday 20 September 2008 04:28:51 Robert Connolly wrote:
> Installing to a temporary directory and copying files to the system is also
> inconvenient, for the same reason. Some packages will need some work to get
> them to cooperate.

As I said, if you see something not using GNU autotools, you can always get 
Debian's diff for the package and apply patches fixing the bahavior. 
Hopefully patches for various packages will find their way to wiki for 
others.

> If one in twenty packages need Makefile's edited to get 
> them to install to $tmpdir/$pkg, is this faster or slower then running
> find(1) on / for every install? At least the find(1) command is automated,
> so I think this is preferable.

I'm not sure about like three packages in the book, all other need no 
modification. The ones who will be writing the patch are us anyway. If we 
don't get it from elsewhere.

> I don't know if there are any standards for this. It's not important, only
> vanity, but it should be something reasonable.

For which user owns the binaries? Said de-facto, because on AIX it's "bin" 
user. I haven't seen a Linux not having everything owned by root for a while. 
LSB does not recommend that...

On AIX the semantics are different. "bin" owns majority of binaries, "adm" 
thingies for privileged users. I'm not sure about rest of files and can't 
look until monday.

And the de-facto standard build-by-unprivileged-user-and-then-install-by-root? 
I can't remember any distribution that is not doing this.

> I don't see how this would work with something like glibc. Some of glibc is
> installed to /lib, and some in installed to /usr/lib, so where would the
> glibc-real_files/ go? We need to be able to boot without /usr mounted.

You will, it's called initrd and it has busybox in it. It can mount everything 
required before pivot_rooting to prepared environment. Actually, you can just 
symlink /lib and /bin to /usr and save a lot of trouble.

> Who would have guessed it is so complicated to disallow packages from
> overwriting eachother's files.

Ah, I've got an idea. Do you know checkinstall or fakeroot? It's about 
LD_PRELOAD. So, what about creating divert.so, that would intercept any file 
system operation and divert it to another directory if applicable. And, of 
course, make a simple union of the directory contents for `ls` to work. 
Except for link count this would be perfect, just `divert /tmp/pkg-x.y make 
install`.



More information about the hlfs-dev mailing list