Running the createpuppy script in Unleashed, I created a iso
file, burnt it to CD, then found some icons were missing.
The icon ROX-Filer.xpm for the ROX window, for example.
So, I looked at the createpuppy script.
These lines copy the icon, well this is the essence:
Code: Select all
#!/bin/sh
ONEPKG="rox_filer-1.2.2"
cp-FULL -a --remove-destination packages/$ONEPKG/* rootfs-complete/
The last one is a symlink.
Now for the awful bug: the symlink ROX-Filer.xpm does not get copied.
Note that symlinks in subdirectories in rox_filer-1.2.2 do get copied.
Using the Busybox "cp" gives the same bug.
Taking out --remove-destination makes no difference.
/bin/sh is a symlink to Busybox. If I change the first line to /bin/bash,
the script works!
With Bash, both cp-FULL and the Busybox cp work.
So, the big question is, how is the Busybox Ash shell messing things up?
It's really insidious, as the symlink icons in some packages ARE copied.
Furthermore, it was working just a few days ago.
I'm currently testing in 1.0.5alpha2 and get this bug.
Now here is the really interesting bit:
ROX-Filer.xpm is a broken symlink. It points to a non-existent file,
that won't exist until the complete filesystem is built.
If I make it into a non-broken symlink, guess what, the symlink then
gets copied.
BUT WHY OH WHY did it work before, with broken symlink?
AND WHY OH WHY should using Busybox Ash or the full Bash make any
difference?
Thinking about what was different when it was working... I think I
ran createpuppy from Pup 1.0.4... ah, 1.0.4 uses glibc 2.3.2
(from Mandrake 9.2) whereas 1.0.5alpha is using glibc 2.3.4 from
Vector 5.0STD.
So, I recompiled Busybox for glibc 2.3.4, as I couldn't recall whether
had done so before. Nup, still got the bug.
Just to check, I booted up 1.0.4, and ROX-Filer.xpm copies fine, no problem.
I was going to work on PCCC tonight, but the entire night has been taken
up with this crap.
It's stuff like this that makes me consider giving it up... and take
up gardening.