Taz Fattener

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

Taz Fattener

#1 Post by s243a »

First posted about on May 26,

I'm starting a new thread to avoid derailing mistfire TazPup Alpha Thread. TazPup is in the early stages and the Idea of my script is to make it easier to instal packages when you upgrading to a new version of TazPup; so that one doesn't need to manually re-install all of the packages that one had in the previous version. Instead they can let the script do it for them.

The script lists a bunch of packages and what we want to do with them. The syntax is as follows:

Code: Select all

i - install
d - include in devX
id - both install and include in devX
I - install only in a new installations
L_i - install only in larger installations
L_d - include only in larger versions of devX
s - this should be included as part of the standard ISO , install if it is missing.
# - do nothing. The file name is only included for future reference
I've also started adding numbers. For instance:
L2_i would be for a larger installation than L_i but currently L2_i isn't implemented. I'm using a basic case structure to process the above syntax and would need more of a parsing like function for this more flexible syntax.

The script first generates three lists in the tmp directory:

Code: Select all

/tmp/InstallAndBuild/To_Install #Packages to install
/tmp/InstallAndBuild/Should_Be_Standard #Install these packages but note them separately because they may be worth including in the standard ISO. /tmp/InstallAndBuild/For_DevX #Include these packages in DevX
Then each of these lists can be separately processed but I added some variables to optionally process the list; in case we one only want to make the lists, and review them rather then actually install them and Build DevX. These options are
FirstInstall- Packages flagged with an upper case "I" will only be installed if FirstInstall=true. This is to avoid causing conflict with stuff one is working on. It might not be that useful though because I don't think the package manager will do it anyway unless one uses the -force option.
BuildDevX - DevX will only be built if this is BuildDevX=true.
InstallDev - When this is true packages flagged as "id" will both be installed and also included in devX
Large - Items prefixed with an "L_" will be processed only when Large=true.
tinypy - Install tinypy rather than the full python. When tinypy=true some packages will be included in devX but not installed. When tinypy=false the full python will be installed and no python packages will be seperatly included in devX
icu - Install Globalization Libraries if icu=true
InstallPackages - Packages will not be installed unless InstallPackages=true
The script successfully creates the list of packages and installs items from the package manager. Aside from that there are more things that I need to troubleshoot. My philosophy here was to try to include Items which I thought other packages are likely to depend on. This should make it easier to compile software.

The main workhorse here is one giant heredoc. The here doc has some interpreted text. For example:

Code: Select all

$( case $GCC_VERSION in
   1)
    echo "id /var/lib/tazpkg/installed/gcc
             id /var/lib/tazpkg/installed/gcc-lib-base
             id /var/lib/tazpkg/installed/gcc-lib-math"; ;;
   3)
    echo "id /var/lib/tazpkg/installed/gcc3"; ;;
   49)
    echo "id /var/lib/tazpkg/installed/gcc49
              id /var/lib/tazpkg/installed/gcc49-lib-base"; ;;
   54)
    echo "id /var/lib/tazpkg/installed/gcc54
              id /var/lib/tazpkg/installed/gcc54-lib-base"; ;;
   64)
    echo "id /var/lib/tazpkg/installed/gcc54
              id /var/lib/tazpkg/installed/gcc54-lib-base"; ;;
   esac          
  )
so that once can install packages based on configuration options like GCC_VERSION.

Regarding the "s" option (i.e. should be standard). This might not be the best way to phrase it. While I think these are pretty fundamental packages, I like that mistfire is trying to keep TaxPup small. For instance she rejected the idea of including Rox Filler because it is 3MB in size.

While I think Rox-Filler is pretty fundamental to puppy (for instance it is required by pmount), the drive to keep TazPup slim, lets people decide on their own what fat they want, and so I created the "s" option to say, "this is the fat that I think you really should have". But it's entirely optional, well...it is mostly optional; in that if key things aren't included by standard then people may come up with non standard ways to include what they think is missing. So if certain puppy features that people want are missing then there may be multiple proposed ways to include them so this will fracture development somewhat. This isn't to say that different I ideas aren't good but it is just saying that there might be a cost of going too slim.

That said there are certainly lots of advantages of going very slim, perhaps TazPup, will help bring many old computers back to life. I'm finding that it runs faster than lucid but at the same time has a newer glibc then lucid and consequently will better support newer browsers. Don't take my word for it though, TazPup should be bench marked against lucid to see which is faster.

Anyway, the script should be found at:
https://pastebin.com/aFvzwU6Y

I should eventually move it to github so that any changes to it can be tracked.

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

#2 Post by s243a »

Hmmm...........maybe I should of called this script "dogfood". lol

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

#3 Post by s243a »

I made the following modification

Code: Select all

      cd "$TMP"
      PKG_Name="$( basename "$PACKAGE" )"
      tazpkg get $PKG_Name
      VERSION=`tazpkg info $PKG_Name | grep 'Version' | sed 's/.*://'|cut -c 6-`
      tazpkg extract "$PKG_Name"-"$VERSION".tazpkg "$ROOT"
around line 625

This section of code is used to include a package that is not installed in your system into devX.

Getting the version seems needlessly complicated. Something that looks like a single whitespace after the colon seems to be taking up about 5 characters.

Post Reply