Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
dcore:development [2015/01/12 07:23] – [Package management scripts guide] LichenSymbiont | dcore:development [2015/05/21 16:32] (current) – page is replaced by [[dcore:sce-import]]; left un-linked for reference by original author sm8ps | ||
---|---|---|---|
Line 1: | Line 1: | ||
===== Development ===== | ===== Development ===== | ||
==== Package management scripts guide ==== | ==== Package management scripts guide ==== | ||
- | The scripts have quite a lot of fluff, without sufficient | + | The scripts have quite a lot of complicated stuff, without sufficient |
So here is my (LichenSymbiont) guide to the scripts. | So here is my (LichenSymbiont) guide to the scripts. | ||
Line 7: | Line 7: | ||
It also uses some more complex awk programs, so you should learn a bit about the [[http:// | It also uses some more complex awk programs, so you should learn a bit about the [[http:// | ||
And of course you need to know bash scripting, so here is a [[http:// | And of course you need to know bash scripting, so here is a [[http:// | ||
+ | And understand some pitfalls in Bash (some applicable to Ash): [[http:// | ||
- | **Starting with a general | + | ** First a quick summary of the most important parts of the scripts: ** |
+ | |||
+ | importsce is the command-line package manager (script), which calls deb2sce for getting the .deb files, and collecting them into the .sce package. | ||
+ | It also calls the update function for the indices of Debian packages (debGetEnv). | ||
+ | |||
+ | As you should expect, it must handle the regular Debian and Ubuntu package repository mirrors. | ||
+ | Beyound that, it also downloads the dCore specific dependencies, | ||
+ | It also contains specific packages compiled for dCore (fltk library, flwm_topside and others). | ||
+ | |||
+ | The scripts are complicated, | ||
+ | |||
+ | **SCE packages:** | ||
A sce package is a [[http:// | A sce package is a [[http:// | ||
Line 15: | Line 27: | ||
But you can add new files to an already created file-system. Read about it [[http:// | But you can add new files to an already created file-system. Read about it [[http:// | ||
This allows for the creation of SquashFS files that stores all your favorite programs, in one file, by just incrementally adding them (this is not a feature of importsce yet). | This allows for the creation of SquashFS files that stores all your favorite programs, in one file, by just incrementally adding them (this is not a feature of importsce yet). | ||
+ | |||
+ | Then sce packages are mounted as [[https:// | ||
+ | loadsce also loads all the dependencies of a package. | ||
** importsce: ** | ** importsce: ** | ||
Line 23: | Line 38: | ||
- First it sets global variables for the script, and sets up the /tmp directory. | - First it sets global variables for the script, and sets up the /tmp directory. | ||
+ | - Then removes temporary files (potentially left from a previous run of the scripts). | ||
+ | - Then it sets the mirrors to the dCore specific packages and the file with extra dependency information for packages. | ||
- Then importsce sets a bunch of variables from the options used when calling the command. Then from its config file, if it exists (though it doesn' | - Then importsce sets a bunch of variables from the options used when calling the command. Then from its config file, if it exists (though it doesn' | ||
- | - Then sets the target .sce file to be created. | + | |
- | - Then acquires the mirror to the special dCore packages (like Xprogs and flwm_topside), | + | |
- | - Then downloads the latest file containing these packages. | + | - And enters the /tmp directory. |
- | - And extracts its content into a bunch of text-files. | + | - Then downloads |
+ | - Then extracts its content into a bunch of text-files. | ||
+ | - Then checks if the target package is to be excluded (and exits if it's on the excluded list). | ||
- Then it checks if a .lst file (file containing a list of packages to download) is being used, and changes the targetted .sce accordingly. | - Then it checks if a .lst file (file containing a list of packages to download) is being used, and changes the targetted .sce accordingly. | ||
- | - Here I skip a few checks... | + | - Then it checks |
- Then it let's you enter a package name, if no target it specified (why is this so far down the script?). And exits the script if you don't specify anything. | - Then it let's you enter a package name, if no target it specified (why is this so far down the script?). And exits the script if you don't specify anything. | ||
- Then it checks if it can find the package in the package indices (both regular repos, and meta-packages and special dCore packages). This is done through the debGetEnv script, which also stores the relevant repo in the DEBINX variable. | - Then it checks if it can find the package in the package indices (both regular repos, and meta-packages and special dCore packages). This is done through the debGetEnv script, which also stores the relevant repo in the DEBINX variable. |