site  contact  subhomenews

dir2sfs utility for SFS package manager

October 23, 2018 — BarryK

As posted about recently, I am working toward the EasyOS Package Manager based on SFS mega-packages, not on individual PET, DEB, or whatever, packages. This has tremendous advantages and is very container-friendly, see this post:

SFS packages will require some enhancements, including a new package-database format. I have extended the Puppy-standard package database format, and (mostly) written a utility 'dir2sfs', which will convert a folder into a SFS file.

There will be various meta-data inside the SFS file, that is a story for later. Regarding the extended database format, the 'dir2sfs' utility will bring up this GUI window:


It will generate a one-line database entry, just like the Puppy database format, but with more fields, and some fields redefined.

Notice that the URL for the SFS package is hard-coded. I decided to do it this way, as it makes it easy for anyone who wants to contribute SFS packages to Easy and host them somewhere of their choosing. In the case of ibiblio, where there may be mirrors, I might introduce a notation to indicate "ibiblio mirror".

An SFS package will normally be downloaded and installed in a container. There are decisions to be made here, hence lots of little "?" buttons to provide guidance. The SFS will be in one container, but could have more than one app and hence more than one icon on the desktop. Container install mode is "individual", "desk", or "terminal" -- the latter two will create a single icon on the desktop.

Note, the above snapshot is just to illustrate the GUI. In practice, the 'devx' SFS would be a development environment, so Install mode of "desk" or "terminal" would be appropriate.

Notice in the above snapshot, the dependency is "q&eq0.9.7". This is just an example. It means that the container must have 'q.sfs' version 0.9.7 as the bottom layer.

Another example, "rust&ge4.5,q", which means the 'rust' SFS version 4.5, and q.sfs underneath -- if no version given, then it is just the current version in EasyOS.

These SFS packages do not have to be EasyOS packages, they could be Puppy Linux, even some other Linux distro, as long as a base-SFS dependency is available.

Notice the naming of SFS files. In the above snapshot it is "devx_0.9.7-r0_pyro64.sfs". I have adopted the DEB naming, which is "<name>_<version>-<release>_<arch>.sfs".

There is a lot more to do, this is just a progress report.

EDIT 2018-11-02:
Many changes, see updated dir2sfs here: 

Tags: easy