After more thought I think the following is more what I want:s243a wrote:The package managers that I'm using:
1. sc0tmann's pkg
2. mistfires ppm3
seem to depend on the symlink:
/initrd/pup_ro1
and there seems to be a bug in my ISO where this isn't being created properly in the initrd0/init script. I don't know if it was an issue with the woof-CE snapshot that I pulled or something that I did. However, in the short term I'm going to patch with a fix like follows:
https://pastebin.com/0gLTFNdvCode: Select all
#!/bin/sh . /etc/rc.d/PUPSTATE SAVE_REL="$(echo $PUPSAVE | cut -d',' -f3)" SAVE_PATH="/initrd/mnt/dev_save$SAVE_REL" if [ -d "$SAVE_PATH" ] ; then if [ -d /initrd/pup_ro1 ]; then cp -arfv --remove-destination "$SAVE_PATH" rm -rf /initrd/pup_ro1 elif [ -L /initrd/pup_ro1 ]; then rm -rf /initrd/pup_ro1 fi if [ ! -L /initrd/pup_ro1 ]; then ln -sv "$SAVE_PATH" /initrd/pup_ro1 #for after switch fi fi
Maybe I"ll call this script when starting x. I'll test this sortly.
Eventually, of course a I'll both:
1. debug my /initrd/init script
2. remove the dependencies of said package managers on this symlink.
The reason for the later is that the symlink is for lagacy apps:
gyrog tells me that:https://github.com/puppylinux-woof-CE/w ... -504771021That symlink is there for old utilites that have /initrd/pup_ro1 hardcoded, rather than being coded the better way.
More about this topic can be found in the thread:
Process Substitution & The pup initr0/init
Code: Select all
#!/bin/sh
. /etc/rc.d/PUPSTATE
SAVE_REL="$(echo $PUPSAVE | cut -d',' -f3)"
SAVE_PATH="/initrd/mnt/dev_save$SAVE_REL"
if [ -d "$SAVE_PATH" ] ; then
if [ -d /initrd/pup_ro1 ] && [ ! -L /initrd/pup_ro1 ]; then
cp -arfv --remove-destination /initrd/pup_ro1 "$SAVE_PATH"
rm -rf /initrd/pup_ro1
ln -sv "$SAVE_PATH" /initrd/pup_ro1 #for after switch
fi
fi
Anyway, full mount fails if mount.aufs is too new. Also "busybox mount" fails if we use tinycores version of busybox. Here's an example that fails from sc0ttman's pkg:
Code: Select all
busybox mount -t aufs -o remount,udba=reval unionfs / #remount with faster evaluation mode.
the reason is that tinycore has separated the busybox applets into two parts. Those which only root can use are in /bin/busybox. Those in which some non-root users can use are in busybox.suid
I could create a wrapper script for busybox that calls the correct binary, although there would be a slight performance cost to do this.
Edit 1:
Here is more on this error:
Code: Select all
#120102 install may have overwritten a symlink-to-dir...
#tar defaults to not following symlinks, for both dirs and files, but i want to follow symlinks
#for dirs but not for files. so, fix here... (note, dir entries in .files have / on end)
Code: Select all
#120107 rerwin: need quotes around some paths in case of space chars. remove '--unlink-first' from tar (was introduced 120102, don't think necessary).
Code: Select all
tar -x --strip=2 --directory=${DIRECTSAVEPATH}/ -f ${tarball} #120102. 120107 remove --unlink-first