Bringing S6/66 init-system to GoboLinux

Hi there!

I am currently attempting to bring the s6 init-system with the 66 toolset to GoboLinux.

I have packaged every tool needed so far and pushed an experimental 66 branch on my github. Everything needed is in commit 2b5c698.

You will need to install the following packages, ideally in the order specified below:

  • SkaLibs
  • ExecLine
  • S6
  • S6-RC
  • ObLibs
  • 66
  • 66-Tools
  • Boot-66serv

Some other dependencies will prompt to install as a drive-by.

For some context:
boot-66serv is special sauce by 66’s dev Eric Vidal, in an attempt to provide a portable service that boots any machine.
66-scandir create sets up the necessary default at /run/66/scandir, that would be Data/Variable/run in gobo. Then 66-svcanctl start makes the scandir ready to accept any service.
Example service files can be found here and here.

That’s the theory.

Now before I do that, I’d like to ensure sure the packages have been build correctly.
The only issue I have noticed while packaging the above, was while building Boot-66serv. Compile --debug Boot-66serv shows the following errors, even before the actual build step begins:

adding dependency /Programs/S6-Portable-Utils/
adding dependency /Programs/IPRoute2/5.6.
mount -t overlay none -o lowerdir=/Programs/66/,upperdir=/Users/root/.local/Runner/1617212769-Compile-9BeJse/upper_layer/bin,workdir=/Users/root/.local/Runner/1617212769-Compile-9BeJse/write_layer/bin /System/Index/bin
mount -t overlay none -o lowerdir=/Programs/66/,upperdir=/Users/root/.local/Runner/1617212769-Compile-9BeJse/upper_layer/include,workdir=/Users/root/.local/Runner/1617212769-Compile-9BeJse/write_layer/include /System/Index/include
mount -t overlay none -o lowerdir=/Programs/66/,upperdir=/Users/root/.local/Runner/1617212769-Compile-9BeJse/upper_layer/lib,workdir=/Users/root/.local/Runner/1617212769-Compile-9BeJse/write_layer/lib /System/Index/lib
mount -t overlay none -o lowerdir=/Programs/66/,upperdir=/Users/root/.local/Runner/1617212769-Compile-9BeJse/upper_layer/share,workdir=/Users/root/.local/Runner/1617212769-Compile-9BeJse/write_layer/share /System/Index/share
Creating wrapper /Users/root/.local/Runner/1617212769-Compile-9BeJse/wrapper
/Programs/Compile/017-GIT/bin/../Functions/Compile: line 575: 66_path=/Programs/66/ No such file or directory
/Programs/Compile/017-GIT/bin/../Functions/Compile: line 576: 66_settings_path=/Programs/66/Settings: No such file or directory
/Programs/Compile/017-GIT/bin/../Functions/Compile: line 577: 66_variable_path=/Data/Variable: No such file or directory
/Programs/Compile/017-GIT/bin/../Functions/Compile: line 575: 66_tools_path=/Programs/66-Tools/ No such file or directory
/Programs/Compile/017-GIT/bin/../Functions/Compile: line 576: 66_tools_settings_path=/Programs/66-Tools/Settings: No such file or directory
/Programs/Compile/017-GIT/bin/../Functions/Compile: line 577: 66_tools_variable_path=/Data/Variable: No such file or directory
FetchArchive: /Data/Compile/Archives/boot-66serv-v2.3.0.tar.gz is complete and matches MD5/SHA checksum.

Though later on, the actual build step and installation appears to go about correctly.

Is this anything to worry about and possibly a bug in Compile?

Thanks in advance!


PS: Oh and please don’t hesitate to point out anything obvious I might have missed above! Like issues I might stumble upon after initializing the new init. Or obvious missing steps before I reboot my machine and end up in an undefined state :sweat_smile: (@lucasvr)

Hi there! The problem here is that the program name starts with a number (66) – and Compile uses the program name as prefix when defining some internal variables. The error you are seeing comes from Bash, which complains that variable names cannot begin with a number.

The problem will go away if you name the program something else, such as Sixty-six.