Page 1 of 1

Singly-init - patched woof-ce:testing 'init'

Posted: Wed Jun 15, 2022 9:51 am
by gyrog

It's called "Singly" because it proceses things "one at a time", unlike the current 'init'.
e.g. instead of decoding many partition id's in the 'decode_other_ids' function,
the 'process_one_sfs' function includes the decoding of any partition id for the current ".sfs" file,
as well as the processing of any boot parameter, and any "hugmungous initrd" possibility.
This eliminates the need for global variables for each ".sfs" file.

This is a patched copy of the 'init' script in the "testing" branch of woof-ce on git-hub.
The sole purpose of these patches is to implement the "one at a time" process developed in the "init-experiment" branch, the 'save' code is left untouched as much as possible.

I have uploaded 'woof-testing-singly-patches.tar.gz', 'singly-init.tar.gz', 'singly-local-initrd.tar.gz', 'singly-same-init.tar.gz', and 'singly-same-local-initrd.tar.gz', to https://www.mediafire.com/folder/oc3r96 ... nit-singly.

'woof-testing-singly-patches.tar.gz' contains the patches:
'1remove.diff', deletes slabs of code that will no longer be needed.
'2insert.diff', inserts slabs of new code.
'3update.diff', modifies parts of the remaining old code to use the new code.
'4drv-specs.diff', adds an optional facility to process a 'DRV_SPECS' file in the frugal install directory. This allows users to easily define new "?drv_...sfs" files.

'singly-init.tar.gz' contains a copy of the patched 'init' script, that includes 'DRV_SPECS' support.

'singly-local-initrd.tar.gz' contains a 'local-initrd.gz' with the "singly-init". including 'DRV_SPECS' support, in it.
It also contains a version of '/sbin/isoboot' that has a couple of minor internal changes.
The oldest Puppy I have used it with is FossaPup64.

A 'DRV_SPECS' file is a simple text file, created and maintained using a text editor, e.g.'Geany'.
An example of a 'DRV_SPECS' file that adds an appended 'sdrv...sfs' file:

Code: Select all

DRV_AP="f z s"
DRV_PRE="y b a k"

Note: The "b" and "k" are now part of the normal 'init' in woof-ce:testing.

To produce an 'init' with the same features as the current code, but using the "one at a time" process;
Apply only patches '1remove.diff', '2insert.diff', and '3update.diff', in that order.
'singly-same-init.tar.gz' contains such an 'init'.
'singly-same-local-initrd.tar.gz' has a 'local-initrd.gz' that contains such an 'init'.

Using:
Download either of the files containing a 'local-initrd.gz' file.
Extract the downloaded file into the frugal install directory of any recent Puppy whose boot entry in 'grub.cfg' was generated by FrugalPup, i.e. it supports 'local-initrd.gz' as an extra initrd.
Boot the modified Puppy, things should all work as before.
But, if you look at '/initrd/tmp/bootinit.log' you will notice a lot more information about the processing of the ".sfs" files.
If you downloaded 'singly-local-initrd.tar.gz' you can now start experimenting with a "DRV_SPECS' file.


Re: Singly-init - patched woof-ce:testing 'init'

Posted: Wed Jun 15, 2022 5:51 pm
by Clarity

Will the new INIT use SAVESPEC in the same way as it has in the past?


Re: Singly-init - patched woof-ce:testing 'init'

Posted: Thu Jun 16, 2022 12:15 pm
by gyrog
Clarity wrote: Wed Jun 15, 2022 5:51 pm

Will the new INIT use SAVESPEC in the same way as it has in the past?

Yes.


Re: Singly-init - patched woof-ce:testing 'init'

Posted: Sat Jun 18, 2022 12:24 pm
by gyrog

Just to be clear;
apart from the DRV_SPECS facility, this is a drop-in replacement for the current 'init' script.


Re: Singly-init - patched woof-ce:testing 'init'

Posted: Sat Jun 18, 2022 12:26 pm
by gyrog

Apologies to folk who have already downloaded files.

I have uploaded 'woof-testing-singly-patches-3.tar.gz', 'singly-init-3.tar.gz', and 'singly-local-initrd-3.tar.gz', to https://www.mediafire.com/folder/oc3r96 ... nit-singly.

These are updated versions (3) of the corresponding files without a version number.

The only change is extended support for a DRV_SPECS file.
It can now define the ".sfs" file to be loaded as the "?drv_...sfs" file.

The following example does a complete configure of an "sdrv":

Code: Select all

DRV_AP='f z s'
DRV_s=':/pups/my_local_setup.sfs'

The only change to the ".diff" files in 'woof-testing-singly-patches-3.tar.gz' is to '4drv-specs.diff'.