@mikeslr
Thanks for clicking the Thank You button.
They can be unloaded when not needed and make it easy to test the utility of updating applications: unload the old, load the new, test and revert if necessary as the old is not over-written. Often a reboot isn't necessary,
A reboot or even a restart of the X server usually could be avoided, if one knows what's locking the .sfs from unloading. A good example is KdenLive used from a .sfs modules. When KdenLive is started there's some other programs started in front of KdenLive or started simultaneously. On the latest KdenLive versions these programs are: klogd klauncher kdeinit5 - earlier versions would have kdeinit4 instead of kdeinit5. If one at least kills klauncher kdeinit5 the .sfs module of KdenLive will unload without any problems or being refused to unload.
That's why I created the new SFS PLUS 2 and its RunScripts - which I will upload an updated version within a few days. The issue on editing an existing RunScript is solved now and it fills out the forms almost automated immediately, as soon as the .sfs module is opened/mounted by the SFS PLUS 2 GUI. So, creating a RunScript to run programs from .sfs modules has become much more easy as it ever was.
These RunScripts have option to unload the .sfs module automatically after exiting the program. They also have a section to define those programs to be killed after the program is exited and before trying to automatically unload the .sfs module.
Example section/definition from the KdenLive RunScript
Code: Select all
ProgsToKill="klogd klauncher kdeinit5"
Apart from my extended use of the additional alphabet .sfs modules in my OS I definitely prefer the use of .sfs modules to load/unload via sfs_load. As a side note: I think shinobar's sfs_load still is one of the best on top programs ever developed for Puppy Linux!
As for the use of the additional alphabet .sfs modules there was multiple reasons for me to do extended possibilities for its use. My main Puppy is my own Woof-CE build from Bionic64 called ArtStudio64, which is a full featured Audio, Graphics and Video Workstation. Here's what I do use my additional alphabet .sfs modules for:
adrv = testing and (if wanted or chosen to) keep system updates from the original developer (Bionic64 = 666philb)
bdrv = testing/keeping some of my own developments like the SFS PLUS 2, JWM Right-Click Substitute etc.
cdrv = testing additional programs, perhaps to be added later to the base .sfs, currently some Audio programs
gdrv = additional Graphics programs dependencies, currently stuff like image magick
mdrv = additional Music programs, everything that I want to use but don't want to have inside the base .sfs
ndrv = testing new programs to decide later to keep or to drop them, currently ZynFusion Synthesizer, Gluqlo screensaver etc.
vdrv = additional Video programs, currently testing peek GIF Screen-Video recorder
ydrv = additional files extracted from the devx .sfs, plus some development dependencies
Rebuilding each one of the above listed additional alphabet .sfs modules takes much less time than to rebuild the base .sfs module.
By the way: the modified init scripts have an additional option to be able to boot Puppy with and/or without to load the additional alphabet .sfs modules: padrvs=off - default is padrvs=on.
For the 64bit versions there's also an option to choose to boot with and/or without the 32bit compatibility .sfs module: pcompatsfs=on - default is pcompatsfs=off. Though, this .sfs module needs to be renamed then. E.g. compat32_ArtStudio64_1.0.0.sfs or another e.g. compat32_bionicpup64_8.0.sfs. I never understood why the 32bit compatibility doesn't follow the naming rules of the Puppy as they are used for all those other .sfs modules.