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
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
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.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 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
)
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.