tiny_puduan_ascii-PreAlpha11.5 (made via a woof-next fork)

Under development: PCMCIA, wireless, etc.
Message
Author
s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#16 Post by s243a »

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:

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 ]; 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
https://pastebin.com/0gLTFNdv

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:
That symlink is there for old utilites that have /initrd/pup_ro1 hardcoded, rather than being coded the better way.
https://github.com/puppylinux-woof-CE/w ... -504771021

More about this topic can be found in the thread:
Process Substitution & The pup initr0/init
After more thought I think the following is more what I want:

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
I'm wondering if the missing symlink is due to not having the right version of aufs-tools. For some reason I have a mount.aufs binary that requires too new a version of libc. I'm not sure how I would have got this "too new" version because my libc is newer than the one in devaun ascii.

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.
https://gitlab.com/sc0ttj/Pkg/blob/mast ... /pkg#L4918

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)
https://gitlab.com/sc0ttj/Pkg/blob/mast ... /pkg#L4820

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).
/woof-code/rootfs-skeleton/usr/local/petget/installpkg.sh#L26

Code: Select all

tar -x --strip=2 --directory=${DIRECTSAVEPATH}/ -f ${tarball} #120102. 120107 remove --unlink-first
/woof-code/rootfs-skeleton/usr/local/petget/installpkg.sh#L254
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:

#17 Post by s243a »

Related to the previous post:

Code: Select all

# set $DIRECTSAVEPATH (where we want to install pkgs)
if [ $PUPMODE -eq 3 -o $PUPMODE -eq 7 -o $PUPMODE -eq 13 ];then
  DIRECTSAVEPATH="/initrd${SAVE_LAYER}" #SAVE_LAYER is in /etc/rc.d/PUPSTATE.
elif [ "$PUPMODE" = "2" ]; then
  DIRECTSAVEPATH=""
fi
https://gitlab.com/sc0ttj/Pkg/blob/mast ... n/pkg#L147

Code: Select all

          # some old types need this extra step
          if [ -f "${CURDIR}/${PKGNAME}.tar.$TAREXT" ];then
            cd "${CURDIR}/${PKGNAME}/" 1>/dev/null
            tar --absolute-names $tarops "./${PKGNAME}.tar.$TAREXT" ${DIRECTSAVEPATH}/ 2> $TMPDIR/$SELF-cp-errlog #260713
            sync
            rm -f  "./${PKGNAME}.tar.$TAREXT" 1>/dev/null
            cd - 1>/dev/null
          fi
https://gitlab.com/sc0ttj/Pkg/blob/mast ... /pkg#L4563


The following explimation sounds wrong to me:

The above tar command might delete the pup_ro1 symlink. For some reason this isn't a problem if the following mount statment works:

Code: Select all

busybox mount -t aufs -o remount,udba=reval unionfs / #remount with faster evaluation mode.
can also use the full version of mount instead if one has a working "mount.aufs".

However, if the mount fails, then tar extracts stuff to a new directory called pup_ro1 and the symlink is broken.

...but I think I"m looking in the right area

I just don't completly understand why the symlink breaks if mount fails.
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:

#18 Post by s243a »

I was thinking that if I write a wrapper script for busybox, that there might be the possibility of handling options not supported by busybox. The goal would be so that the wrapper script could handle these options well enough that coreutils wouldn't be required for sc0ttman's package manager "i.e. pkg".
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

#19 Post by sc0ttman »

s243a wrote:I was thinking that if I write a wrapper script for busybox, that there might be the possibility of handling options not supported by busybox. The goal would be so that the wrapper script could handle these options well enough that coreutils wouldn't be required for sc0ttman's package manager "i.e. pkg".
You are clearly doing lots of work, so why not try some fixes for Pkg itself, to remove those deps? ..

It's surely less work than a lot of the other stuff you have been willing to get stuck into...

The quickest way may be to remove core utils after boot (manually delete/move stuff), replace with busybox, and keep running/fixing Pkg till it works again..

(Ideally where I can check the changes in a PR or at least a diff, and incorporate it into Pkg..)
[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:

#20 Post by s243a »

sc0ttman wrote:
s243a wrote:I was thinking that if I write a wrapper script for busybox, that there might be the possibility of handling options not supported by busybox. The goal would be so that the wrapper script could handle these options well enough that coreutils wouldn't be required for sc0ttman's package manager "i.e. pkg".
You are clearly doing lots of work, so why not try some fixes for Pkg itself, to remove those deps? ..

It's surely less work than a lot of the other stuff you have been willing to get stuck into...

The quickest way may be to remove core utils after boot (manually delete/move stuff), replace with busybox, and keep running/fixing Pkg till it works again..

(Ideally where I can check the changes in a PR or at least a diff, and incorporate it into Pkg..)
I'm not sure if this is an easy or hard thing to do but it's not the most critical thing that I need at the moment.

At the moment, I will be experimenting with integrating Mistire's ppm 3 with with pkg. I think that many of the changes in Mistfire's ppm3 have been incorporated into Woof-CE, so I might eventually get in better sync with the woof-CE ppm. For the moment, I"m more interested in Mistfire's version because (at this moment) I can't keep pace with all changes in woof-CE. Also, I'm interested in back compatibility and Mistire's ppm was built for older versions of puppy than the bleeding edge woof-CE code is likely built for.
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:

#21 Post by s243a »

Apologizes for being slow on updating this. I've put off easier fixes while I dig both into Sc0ttmann's and Mistfire's package managers because I think that this is a critical piece.

Tonight I look at Mistfire's first post in the PPMv3 thread for some inscite:
The repo information is implemented by list (csv). The files are located in .packages/database

PET_REPO_LIST - PET Repo list
PET_DB_REPO - Repo list for package database
PET_ORDER_LIST - Priority list for searching packages
COMPAT_REPO_LIST - Compatible distro repo list
COMPAT_DB_REPO - Repo list for Compatible distro package database
http://murga-linux.com/puppy/viewtopic. ... 901#914058

The key info here is the file "/root/.packages/database/COMPAT_DB_REPO"

Here is what I have for this file in Tiny_Devaun

Code: Select all

z|http://packages.devuan.org/merged/dists/ascii/main/binary-i386/Packages.xz|Packages-devuan-ascii-main
z|http://packages.devuan.org/merged/dists/ascii/contrib/binary-i386/Packages.xz|Packages-devuan-ascii-contrib
z|http://packages.devuan.org/merged/dists/ascii/non-free/binary-i386/Packages.xz|Packages-devuan-ascii-non-free
z|http://packages.devuan.org/merged/dists/ascii/main/binary-i386/Packages.xz|Packages-devuan-ascii-main
z|http://packages.devuan.org/merged/dists/ascii/contrib/binary-i386/Packages.xz|Packages-devuan-ascii-contrib
z|http://packages.devuan.org/merged/dists/ascii/non-free/binary-i386/Packages.xz|Packages-devuan-ascii-non-free
We can see that this file gives the complete path to the DB file for the repo and it doesn't depend on the DISTRO_SPEC file. This is important. In Sc0tmann's thread, I noted that I think that there should be enough info in Sc0tmann's package to be able to update the repo despite errors in DISTRO_SPECS.

Such robustness would make it easier for people to configure "pkg".

My Post: http://murga-linux.com/puppy/viewtopic. ... 57#1030857
Sc0ttman's reply: http://murga-linux.com/puppy/viewtopic. ... 98#1030898

I will note that Mistfire's approach is more explicit. Conversly to infer this exact path from one of the pkg configuration files (in sc0tman's ppm) such as :

Code: Select all

/root/.pkg/pkgrc
/root/.pkg/sources
/root/.pkg/sources-all
requires some knowledge about how the repos are structured but perhaps most versions of linux structure their repos in very standard ways.

I will also note that that sc0tman provides a more standard way of adding repos:

Code: Select all

    # for each repo in $apt_sources_list, use `ppa2pup` to update the repo
    for line in $apt_sources_list
    do
      [ "$line" = "" ] && continue
      [ "$line" = "\n" ] && continue

      local ppa_repo_url="$(echo ${line//|/ } | cut -f1 -d" ")"
      local ppa_repo_name=$(cat ~/.pkg/sources-all | grep -m1 $ppa_repo_url | cut -f1 -d'|')

      # if a PPA repo, get a user-friendly repo name from the /etc/sources.list entry
      if [ "$ppa_repo_name" = "" ];then
        ppa_repo_name="$(echo ${line} | cut -f3 -d'|')-$(echo $line | cut -f2 -d':' | cut -f1 -d '/' | tr -d '-' | tr -d '_')"
      fi

      echo
      echo "Processing:  ${line//|/ }"

      ANSWER=y
      if [ "$ASK" = true ];then
        # ask user to update repo
        bash -c 'read -r -N 1 -p "Update repo $ppa_repo_name? [y/n] " ANSWER; echo $ANSWER > /tmp/pkg/ANSWER'
        echo
        ANSWER="$(cat /tmp/pkg/ANSWER)"
      fi

      if [ "$ANSWER" = 'y' ] || [ "$ANSWER" = 'Y' ];then
        echo "Please wait..."
        ppa2pup ${line//|/ } 1>/dev/null && echo -e "${green}Success${endcolour}: Updated repo '$ppa_repo_name'"
        retval=$?
      fi
    done
https://gitlab.com/sc0ttj/Pkg/blob/mast ... /pkg#L1776

That is with pkg if a repo follows the debian formant (but not the standard puppy format) then you can add it by updating /etc/sources.list. Note this is slower than the way that the puppy package manager does it but will make it easier to add repos that don't fit puppies standard format (e.g. the tor repo).
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:

#22 Post by s243a »

I thought I would add a bit more info on how Mistfire's PPMv3 made this change. Recall from the previous post that the file "COMPAT_DB_REPO" contains the complete path the the package DB file (AKA the REPO doc file).

Each line of this file is contactenated into a space seperated string:

Code: Select all

for line1 in `cat /root/.packages/database/COMPAT_DB_REPO`
do
  if [ "$COMPATDOCREPOS" == "" ]; then
    COMPATDOCREPOS="$line1"
  else
    COMPATDOCREPOS="$COMPATDOCREPOS $line1"
  fi
done
*around line 61 to 68 of /usr/bin/sync-repo

and the result is stored in a variable in the following the file "DISTRO_COMPAT_REPOS"

Code: Select all

echo "PKG_DOCS_DISTRO_COMPAT='$COMPATDOCREPOS'" >> /root/.packages/DISTRO_COMPAT_REPOS
*around line 78 of /usr/bin/sync-repo

Note that this file is the standard puppy file. The main thing we are doing here is putting the full paths to the repo DB file into the var PKG_DOCS_DISTRO_COMPAT. I had some issues (about a year or more ago) when I tried this approach with the tor REPO and had to make some hacky mods to 0setup but perhaps this is no longer an issue with the puppy package manager or perhaps Mistfire modified 0setup just enough to make it work. Note that 0Setup still contains references to DISTRO_SPECS so it might be possible to use these vars in the path if one wants to.
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].

darry19662018
Posts: 721
Joined: Sat 31 Mar 2018, 08:01
Location: Rakaia
Contact:

#23 Post by darry19662018 »

First of all thank you very much for this new exciting Pup.

I have one question regarding installing puppy linux firewall - I got this message when it installed.


Is there an answer to fixing this, otherwise enjoying this test release.

Connected fine to internet and pkgdialog enabled me to install Pfind.
Puppy Linux Wiki: [url]http://wikka.puppylinux.com/HomePage[/url]

[url]https://freemedia.neocities.org/[/url]

darry19662018
Posts: 721
Joined: Sat 31 Mar 2018, 08:01
Location: Rakaia
Contact:

#24 Post by darry19662018 »

I have been working with this iso and have go quite a lot working including mpv and a working firewall, isomaster, retrovol, pfind, xarchive and peasy firewall monitor as well as getting ntp, ntpd set-up working for correct system time.

I made an iso using isomaster as remaster2 wouldn't work here is my first working iso
https://archive.org/details/tiny_puduan ... a11revised

iso: https://archive.org/download/tiny_pudua ... sed%29.iso
Puppy Linux Wiki: [url]http://wikka.puppylinux.com/HomePage[/url]

[url]https://freemedia.neocities.org/[/url]

darry19662018
Posts: 721
Joined: Sat 31 Mar 2018, 08:01
Location: Rakaia
Contact:

#25 Post by darry19662018 »

Well this Pup is quite a journey.

Got .pet installing working by finding a missing link to .petget in /usr/sbin which links to /usr/local/petget

Found that installwatch probably needs to be installed.
Pwallpaper so that wallpaper can be changed.

There was no firewall so installed from the very reliable pkgdialog
Linux-firewall 2.0-rc9-patched-3-1 and peasy firewall monitor.

Will not install from package manager - mpv this really added a quite a few libs should have used one OscarTalks .pets.

To get time to work properly installed I installed ntp and ntpd.
Puppy Linux Wiki: [url]http://wikka.puppylinux.com/HomePage[/url]

[url]https://freemedia.neocities.org/[/url]

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#26 Post by Lobster »

This pre-alpha is interesting. 8)

It would be an ideal base for those of us interested in:
- learning about cli
- security base Puppy
- return to minimal/core pup honing

Bravo guys :D

Puppy Linux
Inspired by Chihuahua
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

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

#27 Post by s243a »

darry19662018 wrote:Well this Pup is quite a journey.
It's quite preliminary but the bugs posted in this thread thus far will help alot. :)
Got .pet installing working by finding a missing link to .petget in /usr/sbin which links to /usr/local/petget
Alternatively, one could create a script that calls "pkg -i". Thanks for noticing this :). What I think I will do is create a script that calls "pkg -i" by default but if not installed will try some fallbacks like petget.
Found that installwatch probably needs to be installed.
Pwallpaper so that wallpaper can be changed.
I'll look into this. As a side note wallpapers aren't a big thing to me, which means if I add it it might eventually be pushed out of the main sfs to something like the adrv or an extra_sfs.
There was no firewall so installed from the very reliable pkgdialog
Linux-firewall 2.0-rc9-patched-3-1 and peasy firewall monitor.
I'm glad pkg is working well for you. When running in pmedia=usb mode it had some major issues for me.

**as a side note I prefer just using IPTABLES rather then a specific firewall ap.
Will not install from package manager - mpv this really added a quite a few libs should have used one OscarTalks .pets.
I'll also look into that. Note that at this moment pkg might be installing more libs than are needed.
To get time to work properly installed I installed ntp and ntpd.
Thanks for the tip. I'll add this in the next release.
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:

#28 Post by s243a »

darry19662018 wrote:I have been working with this iso and have go quite a lot working including mpv and a working firewall, isomaster, retrovol, pfind, xarchive and peasy firewall monitor as well as getting ntp, ntpd set-up working for correct system time.

I made an iso using isomaster as remaster2 wouldn't work here is my first working iso
https://archive.org/details/tiny_puduan ... a11revised

iso: https://archive.org/download/tiny_pudua ... sed%29.iso
I think I'll give your technique a try mostly as a way to test changes that I've made to pkg:

https://pastebin.com/Q8KUt6wa

but I'll post both yours and my remaster in the second post. Most of the upcomming changes to "pkg" are related to coding style (using variables instead of explict paths) but such changes will allow better integration with mistfire's package manager (i.e. PPMv3). However, one of the changes is semi-criticle for running in pmedia=usb mode.
http://murga-linux.com/puppy/viewtopic. ... 58#1030958

I will add the changes to my woof-next github fork once they've been tested more.

P.S. one aspect of this integration is to use (when it exists) the subdirectory "package-files" for the files ending in ".file". If one makes my changes to pkg then if said path exists (e.g. /var/packages/package-files) then one must move these files into this sub directory.
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:

#29 Post by s243a »

s243a wrote:
Will not install from package manager - mpv this really added a quite a few libs should have used one OscarTalks .pets.
I'll also look into that. Note that at this moment pkg might be installing more libs than are needed.
Just to clarify here. There are two issues. One is whether or not pkg looking in the right place to see if a package is installed.
1. For instance if there is a file like:

Code: Select all

/var/packages/package-files/pkgname.files
or
/var/packages/builtin_files/pkgname
then pkg shouldn't (in my opinon) install the package. In the case of the first path the issue is that I need to better integrate pkg with mistfire's PPMv3 (see previous post about how to do this). In the second case I need to verify whether or not pkg does this properly. This might not be default behavor (need to verify).

I did notice though, that I do have an issue with the way that I syncked the dpkg build (via woof-next) with the puppy package managers (e.g. PPMv3 & pkg). The issue is that for some reason if I look in:

Code: Select all

/var/lib/dpkg/info
that for some files listed in

Code: Select all

/var/lib/dpkg/status
there is no coresponding file with either of the following forms:

Code: Select all

/var/lib/dpkg/info/pkgname.list
or
/var/lib/dpkg/info/pkgname:i386.list
In which case I'll have to generate said list rather than relying on dpkg to generate it.
Last edited by s243a on Wed 10 Jul 2019, 18:37, edited 8 times in total.
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].

darry19662018
Posts: 721
Joined: Sat 31 Mar 2018, 08:01
Location: Rakaia
Contact:

#30 Post by darry19662018 »

I'm going to put up my second iso as well at archive.org because it includes my final fixes such as working petget.

Thanks for your replies.

https://archive.org/download/tiny_pudua ... vised2.iso

Still using isomaster method at this stage as remaster2 doesn't work and neither does Shinobar's program.
Puppy Linux Wiki: [url]http://wikka.puppylinux.com/HomePage[/url]

[url]https://freemedia.neocities.org/[/url]

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

#31 Post by s243a »

s243a wrote:
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:

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 ]; 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
https://pastebin.com/0gLTFNdv

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:
That symlink is there for old utilites that have /initrd/pup_ro1 hardcoded, rather than being coded the better way.
https://github.com/puppylinux-woof-CE/w ... -504771021

More about this topic can be found in the thread:
Process Substitution & The pup initr0/init
After more thought I think the following is more what I want:

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
I'm wondering if the missing symlink is due to not having the right version of aufs-tools. For some reason I have a mount.aufs binary that requires too new a version of libc. I'm not sure how I would have got this "too new" version because my libc is newer than the one in devaun ascii.

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.
https://gitlab.com/sc0ttj/Pkg/blob/mast ... /pkg#L4918

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)
https://gitlab.com/sc0ttj/Pkg/blob/mast ... /pkg#L4820

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).
/woof-code/rootfs-skeleton/usr/local/petget/installpkg.sh#L26

Code: Select all

tar -x --strip=2 --directory=${DIRECTSAVEPATH}/ -f ${tarball} #120102. 120107 remove --unlink-first
/woof-code/rootfs-skeleton/usr/local/petget/installpkg.sh#L254
related to how tinycore splits up the busybox apps between busybox and busybox.suid. I want to do something like the following:

Code: Select all

if [ ! $1 ]; then 
  busybox mount || busybox.suid mount || mount-FULL || exit 1
  exit 0
fi
which is a replacement to the following line in the puppy mount script:

Code: Select all

[ ! $1 ] && exec busybox mount
/rootfs-skeleton/bin/mount#L17

So basically I'm using some fallback commands here in case busybox doesn't have the mount applet. If I created the wrapper script that I suggested above then I wouldn't need to do this but I think the less code that depends on said wrapper script the more robust the code will be.

I'm not an expert on everything linux so I don't know if my code is equivalent but the best I can tell is that all the exec does is to avoid executing the remainder of the script. I think the same thing can be acompblished with the exit command.
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:

#32 Post by s243a »

Another thing that I noticed is that the save button on the desktop seems to delete the symlinks /initrd/pup_ro1 and /initrd/pup_rw. I posted a related question about this on github:
I noticed in my build ( a woof-next fork) clicking the save button on the desktop causes the symlinks /initrd/pup_ro1 and /initrd/pup_rw to disapear. I looked in both the files snapmergepuppy and save2flash and I can't see any place where these symlinks are recreated and I don't know what layer in which these symlinks are supposed to reside. I did notice though that in a lot of the snapmergepuppy code the initrd directory is excluded.

This means that I can't troubleshoot this issue at the moment. Maybe, I'll add a hack at the end of snapmerge puppy to fix these symlinks if they are missing.
https://github.com/puppylinux-woof-CE/w ... -510318923
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].

darry19662018
Posts: 721
Joined: Sat 31 Mar 2018, 08:01
Location: Rakaia
Contact:

#33 Post by darry19662018 »

This Pup is coming a long nicely. Look forward to the next release - I use this regularly now set up with clipgrab and basic multimedia setup.
Puppy Linux Wiki: [url]http://wikka.puppylinux.com/HomePage[/url]

[url]https://freemedia.neocities.org/[/url]

darry19662018
Posts: 721
Joined: Sat 31 Mar 2018, 08:01
Location: Rakaia
Contact:

#34 Post by darry19662018 »

Puppy Linux Wiki: [url]http://wikka.puppylinux.com/HomePage[/url]

[url]https://freemedia.neocities.org/[/url]

darry19662018
Posts: 721
Joined: Sat 31 Mar 2018, 08:01
Location: Rakaia
Contact:

#35 Post by darry19662018 »

Right finally made a smaller iso with my additions to the original iso as described earlier using an adrv instead of a save folder - using dir2sfs and isomaster https://archive.org/download/tiny_pudua ... 966%29.iso
Puppy Linux Wiki: [url]http://wikka.puppylinux.com/HomePage[/url]

[url]https://freemedia.neocities.org/[/url]

Post Reply