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:

#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]

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

#36 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
The actual command is:

Code: Select all

/usr/sbin/remasterpup2
At this point though it might take some troubleshooting to get it to work :(

I have done some of this troubleshooting and will give it a try.
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:

#37 Post by s243a »

s243a wrote:
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: 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.
I found another related bug to this. The following command from sc0tmann's pkg is an issue:

Code: Select all

busybox mount -t aufs -o remount,udba=reval unionfs /
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:

#38 Post by darry19662018 »

keep up the good work mate - you have made huge strides with getting this working.:)

By the way I had to install fuse don't know whether that has any bearing?
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:

#39 Post by s243a »

darry19662018 wrote:keep up the good work mate - you have made huge strides with getting this working.:)
thanks for your encouragment :)
By the way I had to install fuse don't know whether that has any bearing?
I don't think that fuse is required but I'll keep this in mind just in case I'm wrong.

Anway, regarding how busybox is split I have a plan for the wrapper function.

I'm going to create a directory called:

Code: Select all

/bin/bb_utils
that will link each busybox util to either busybox.nosuid or busybox.suid.

I have a rough outline of the script (not tested yet):
https://pastebin.com/411AzLuR

which will create all the necessary symlinks and a wrapper function that will simply take the command passed to busybox and call the coresponding util located in /bin/bb_utils.

One can if they want to test to see if an ap works with only busybox utilities (rather than the full version), simply prepend /bin/bb_utils to the PATH variable.

Now regarding as to why tinycore may have done this. I belive that for the busybox login manager to work correctly the suid bit needs to be set but perhaps for some applets busybox allows elevated privlages that others think it shouldn't allow elevated privalges. If that happens to be the case then having these apps in a seperate multi-call binary would prevent busybox from doing this.

P.S. for the above script that I'm starting to write, I probably also want to redirect (i.e. change the symlink of) each util symlinked to busybox to the appopriate binary.

Edit: I've done some testing of the mk_busybox_utils in the above link. It is working okay now so I'll try to remaster.
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:

#40 Post by s243a »

I noticed something else regarding the remaster script. After fixing a bunch of errors (i.e. installing mising dependencies for the remaster script), I get an error that my pup is too old. However, the Irony here is that the DISTRO_IDSTRING doesn't exist on newer versions of puppy:

Code: Select all

if [ ! "$DISTRO_IDSTRING" ];then #101107
  #need some stuff in here if want to support older puppies. maybe also more fixes needed further down.
 /usr/lib/gtkdialog/box_ok "RemasterPup" error "Sorry, your Puppy is too old for this script"
 exit
else
/woof-code/rootfs-packages/puppycore_noarch/usr/sbin/remasterpup2#L673 (s243a .. first commit)
/woof-code/rootfs-skeleton/usr/sbin/remasterpup2#L142 (woof-CE f27b1c0 on Oct 1, 2016)

in woof-CE the code was changed in Oct 14, 2016 but I don't know when said change was merged into the master branch. I keep hering about "frequent rebacing" and I don't know how one is to keep track of it all! I think that the removal of the ID string was part of the "rationalization" branch and I think that said branch was a fairly recent topic on this forum.

Anway, I updated remasterpup2 on May 31 but for some reason these updates didn't get reinstalled into the rootfs that I was building. I will troubleshoot this later. For now I will copy the newer version of this file and remaster. Once I have sucesfully remastered I will tourbleshoot my build process.
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