Page 5 of 5
Posted: Fri 21 Jun 2019, 23:36
by s243a
In pupmode=5 (i.e. pfx=ram), I get the following error:
Code: Select all
Free space error
This is a rare error that fails to report the available free space. It should be OK after a restart
Here is what I get for the free space on various mounts.
Code: Select all
# df -m
Filesystem 1M-blocks Used Available Use% Mounted on
tmpfs 500 381 120 77% /initrd/mnt/tmpfs
unionfs 500 381 120 77% /
/dev/loop0 164 164 0 100% /initrd/pup_ro2
/dev/loop1 20 20 0 100% /initrd/pup_f
/dev/loop2 24 24 0 100% /initrd/pup_z
tmpfs 3 3 1 82% /initrd/files
devtmpfs 499 1 499 1% /dev
shmfs 192 0 192 0% /dev/shm
Note that:
/initrd/pup_rw -> /initrd/mnt/tmpfs/pup_rw
So in the following code perhaps /initrd/mnt/tmpfs should replace pup_rw:
lines 217 to 237 of /usr/local/petget/installmodes.sh
Code: Select all
if [ ! -f /tmp/pup_event_sizefreem ]; then
/usr/local/pup_event/frontend_timeout &
sleep 1
if [ ! -f /tmp/pup_event_sizefreem ]; then
. /etc/rc.d/PUPSTATE
case $PUPMODE in
2) AVAILABLE=$(df -m | grep / | head -n 1 | awk '{print $4}');;
5|6) AVAILABLE=$(df -m | grep pup_rw | awk '{print $4}');;
7|13) AVAILABLE=$(df -m | grep pup_ro1 | awk '{print $4}');;
12) AVAILABLE=$(df -m | grep pup_rw | awk '{print $4}')
[ "$AVAILABLE" = "" ] && AVAILABLE=$(df -m | grep dev_save | awk '{print $4}');;
esac
if [ ! "$AVAILABLE" ]; then
echo "Free space estimation error. Exiting" > /tmp/petget-proc/petget/install_status
. /usr/lib/gtkdialog/box_ok "$(gettext 'Free space error')" error "$(gettext 'This is a rare error that fails to report the available free space. It should be OK after a restart')"
clean_up
exit 1
else
AVAILABLE="$AVAILABLE"
fi
else
but it is possible that something here is a quirk of my woof-nex build of tiny tiny_puduan_ascii
I'm going to make the change and see what happens. This issue comes up in my qemu test, prior to creating a save folder/file.
If we base the free space on tmpfs, I wonder if we should require a certain margin of free space.
Posted: Sat 22 Jun 2019, 04:47
by s243a
s243a wrote:In pupmode=5 (i.e. pfx=ram), I get the following error:
Code: Select all
Free space error
This is a rare error that fails to report the available free space. It should be OK after a restart
Here is what I get for the free space on various mounts.
Code: Select all
# df -m
Filesystem 1M-blocks Used Available Use% Mounted on
tmpfs 500 381 120 77% /initrd/mnt/tmpfs
unionfs 500 381 120 77% /
/dev/loop0 164 164 0 100% /initrd/pup_ro2
/dev/loop1 20 20 0 100% /initrd/pup_f
/dev/loop2 24 24 0 100% /initrd/pup_z
tmpfs 3 3 1 82% /initrd/files
devtmpfs 499 1 499 1% /dev
shmfs 192 0 192 0% /dev/shm
Note that:
/initrd/pup_rw -> /initrd/mnt/tmpfs/pup_rw
So in the following code perhaps /initrd/mnt/tmpfs should replace pup_rw:
lines 217 to 237 of /usr/local/petget/installmodes.sh
Code: Select all
if [ ! -f /tmp/pup_event_sizefreem ]; then
/usr/local/pup_event/frontend_timeout &
sleep 1
if [ ! -f /tmp/pup_event_sizefreem ]; then
. /etc/rc.d/PUPSTATE
case $PUPMODE in
2) AVAILABLE=$(df -m | grep / | head -n 1 | awk '{print $4}');;
5|6) AVAILABLE=$(df -m | grep pup_rw | awk '{print $4}');;
7|13) AVAILABLE=$(df -m | grep pup_ro1 | awk '{print $4}');;
12) AVAILABLE=$(df -m | grep pup_rw | awk '{print $4}')
[ "$AVAILABLE" = "" ] && AVAILABLE=$(df -m | grep dev_save | awk '{print $4}');;
esac
if [ ! "$AVAILABLE" ]; then
echo "Free space estimation error. Exiting" > /tmp/petget-proc/petget/install_status
. /usr/lib/gtkdialog/box_ok "$(gettext 'Free space error')" error "$(gettext 'This is a rare error that fails to report the available free space. It should be OK after a restart')"
clean_up
exit 1
else
AVAILABLE="$AVAILABLE"
fi
else
but it is possible that something here is a quirk of my woof-nex build of tiny tiny_puduan_ascii
I'm going to make the change and see what happens. This issue comes up in my qemu test, prior to creating a save folder/file.
If we base the free space on tmpfs, I wonder if we should require a certain margin of free space.
I added the if block after the case statement here in the event that the case statement fails to identify the available space:
Code: Select all
if [ ! -f /tmp/pup_event_sizefreem ]; then
. /etc/rc.d/PUPSTATE
case $PUPMODE in
2) AVAILABLE=$(df -m | grep / | head -n 1 | awk '{print $4}');;
5|6) AVAILABLE=$(df -m | grep pup_rw | awk '{print $4}');;
7|13) AVAILABLE=$(df -m | grep pup_ro1 | awk '{print $4}');;
12) AVAILABLE=$(df -m | grep pup_rw | awk '{print $4}')
[ "$AVAILABLE" = "" ] && AVAILABLE=$(df -m | grep dev_save | awk '{print $4}');;
esac
if [ "$AVAILABLE" = "" ]; then #s243a: stuff to try if the above fails.
case $PUPMODE in
13|12) AVAILABLE=$(df -m | grep "$(mount | grep dev_save | cut -d' ' -f1)" \
| awk '{print $4}') ;;
5) AVAILABLE=$(df -m | grep '/initrd/mnt/tmpfs' | awk '{print $4}');;
esac
fi
I'm testing this now. I'm not sure if this is a quirk in my system or a result of some change to woof-CE.
Posted: Sat 22 Jun 2019, 15:02
by s243a
I had a similar type of error in pupmode 13 (ii.e. usb flash mode) where I probably repoted in the wrong spot:
http://murga-linux.com/puppy/viewtopic. ... 95#1030795
The issue was that the package manager was copying files to /initrd/pup_ro1 which shouldn't exist in pupmod 13.
I quick search give the /usr/local/petget folder, shows several places where the pup_ro1 string shows up.
Code: Select all
# grep -rn . -e 'pup_ro1'
./configure.sh:63: if [ -L /initrd/pup_ro1 ]; then
./configure.sh:66: SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`
./installed_size_preview.sh:45: if [ -L /initrd/pup_ro1 ]; then
./installed_size_preview.sh:48: SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`
./installmodes.sh:224: 7|13) AVAILABLE=$(df -m | grep pup_ro1 | awk '{print $4}');;
./petget:237: if [ -L /initrd/pup_ro1 ]; then
./petget:240: SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`
./pkg_chooser.sh:38: if [ -L /initrd/pup_ro1 ]; then
./pkg_chooser.sh:41: SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`
./removepreview.sh:131: Sx=$(echo $ALLF | grep -v '^/initrd/pup_ro1/')
./removepreview.sh:134: S=$(ls /initrd/pup_{a,y}"$ONESPEC" 2>/dev/null| grep -v '^/initrd/pup_ro1/'| tail -n 1)
./removepreview.sh:136: S=$(ls /initrd/pup_ro{?,??}"$ONESPEC" 2>/dev/null| grep -v '^/initrd/pup_ro1/'| head -n 1)
./removepreview.sh:163: [ -f "/initrd${SAVE_LAYER}${ONESPEC}" ] && rm -f "/initrd${SAVE_LAYER}${ONESPEC}" #normally /pup_ro1
Posted: Sun 23 Jun 2019, 16:52
by sc0ttman
s243a wrote:I'm not sure if the following is being done by ppm v3.0 or sc0tmann's pkg but some process seems to be moving all my files out of the /usr/lib/i386-linux-gnu/ folder....
...This time the whole i386-linux-gnu folder seems to be replaced with a symlink. I know this is standard puppy to do this but maybe there is a reason that Debian/Devaun creates the i386-linux-gnu folder (e.g. to separate architectures on multi architecture systems).
Maybe pkg
and PPM..? Don't quote me on that..
But this code in Pkg expects a symlink:
Code: Select all
# cat /usr/sbin/pkg | grep -A10 -B2 '\-linux-gnu'
# fix the symlinks to lib dirs - the linux-gnu-* dirs are symlinks in puppy,
# so make sure we dont replace them with dirs (or programs won't load)
for libdir in i386-linux-gnu i486-linux-gnu i586-linux-gnu i686-linux-gnu amd64-linux-gnu
do
if [ -d $BUILD_DIR/${PARENTPKG}-${SUFFIX}/usr/lib/${libdir}/ ];then
mv -n -u $BUILD_DIR/${PARENTPKG}-${SUFFIX}/usr/lib/${libdir}/* $BUILD_DIR/${PARENTPKG}-${SUFFIX}/usr/lib/
cd $BUILD_DIR/${PARENTPKG}-${SUFFIX}/usr/lib
rmdir ${libdir}/
ln -s ${libdir}/ .
cd -
fi
done
Posted: Sun 23 Jun 2019, 17:51
by sc0ttman
BTW ...
(and sorry mistfire for polluting your thread with Pkg stuff)
s243a wrote:Code: Select all
/ # pkg -i -f ppm-mod-3.0.pet
ash: -f: unknown operand
Use
or
The important thing:
The --ask|-a and --force|-f commands must precede all other options and commands, or they can go last... due to my crappy coding (IIRC)..
Eg
pkg --ask --force --install ppm-mod-3.0.pet
or
pkg --ask --force install ppm-mod-3.0.pet
(you can omit the double dash for the commands if u prefer)
Or... using the short (less readable) options/commands:
pkg -a -f i mod-ppm-3.0.pet
Posted: Wed 26 Jun 2019, 04:46
by s243a
sc0ttman wrote:s243a wrote:I'm not sure if the following is being done by ppm v3.0 or sc0tmann's pkg but some process seems to be moving all my files out of the /usr/lib/i386-linux-gnu/ folder....
...This time the whole i386-linux-gnu folder seems to be replaced with a symlink. I know this is standard puppy to do this but maybe there is a reason that Debian/Devaun creates the i386-linux-gnu folder (e.g. to separate architectures on multi architecture systems).
Maybe pkg
and PPM..? Don't quote me on that..
But this code in Pkg expects a symlink:
Your are correct. This is related to the "muti-arch hack" of the puppy package manager. I oppened an issue on github to discuss whether said muti-arch hack is a good or bad thing:
https://github.com/puppylinux-woof-CE/w ... ssues/1475