Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 

The time now is Sun 09 Aug 2020, 01:22
All times are UTC - 4
 Forum index » Advanced Topics » Cutting edge
Taz Fattener
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [3 Posts]  
Author Message

Joined: 02 Sep 2014
Posts: 2626

PostPosted: Mon 28 May 2018, 00:00    Post subject:  Taz Fattener
Subject description: A Script to Auotomatically Add Packages to TazzPup

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:


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:


/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:

$( case $GCC_VERSION in
    echo "id /var/lib/tazpkg/installed/gcc
             id /var/lib/tazpkg/installed/gcc-lib-base
             id /var/lib/tazpkg/installed/gcc-lib-math"; ;;
    echo "id /var/lib/tazpkg/installed/gcc3"; ;;
    echo "id /var/lib/tazpkg/installed/gcc49
              id /var/lib/tazpkg/installed/gcc49-lib-base"; ;;
    echo "id /var/lib/tazpkg/installed/gcc54
              id /var/lib/tazpkg/installed/gcc54-lib-base"; ;;
    echo "id /var/lib/tazpkg/installed/gcc54
              id /var/lib/tazpkg/installed/gcc54-lib-base"; ;;

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:

I should eventually move it to github so that any changes to it can be tracked.
Back to top
View user's profile Send private message Visit poster's website 

Joined: 02 Sep 2014
Posts: 2626

PostPosted: Mon 28 May 2018, 00:36    Post subject:  

Hmmm...........maybe I should of called this script "dogfood". lol
Back to top
View user's profile Send private message Visit poster's website 

Joined: 02 Sep 2014
Posts: 2626

PostPosted: Mon 28 May 2018, 02:20    Post subject:  

I made the following modification

      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.
Back to top
View user's profile Send private message Visit poster's website 
Display posts from previous:   Sort by:   
Page 1 of 1 [3 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Cutting edge
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum

Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0463s ][ Queries: 11 (0.0091s) ][ GZIP on ]