Puppy Package Manager (modified) v3.0

Core libraries and systems
Message
Author
s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#81 Post 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.
Find me on [url=https://www.minds.com/ns_tidder]minds[/url] and on [url=https://www.pearltrees.com/s243a/puppy-linux/id12399810]pearltrees[/url].

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#82 Post 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.
Find me on [url=https://www.minds.com/ns_tidder]minds[/url] and on [url=https://www.pearltrees.com/s243a/puppy-linux/id12399810]pearltrees[/url].

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#83 Post 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
Find me on [url=https://www.minds.com/ns_tidder]minds[/url] and on [url=https://www.pearltrees.com/s243a/puppy-linux/id12399810]pearltrees[/url].

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#84 Post 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
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#85 Post 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

Code: Select all

pkg --install ppm-mod-3.0.pet -f
or

Code: Select all

pkg install ppm-mod-3.0.pet -f


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
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#86 Post 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
Find me on [url=https://www.minds.com/ns_tidder]minds[/url] and on [url=https://www.pearltrees.com/s243a/puppy-linux/id12399810]pearltrees[/url].

Post Reply