Beta-2 is here. Documentation is now complete.
https://git.obarun.org/Obarun/66/-/releases/0.7.0.0-beta-2.
We are really really near to provide a tag for production. Please people, help us testing it.
Beta-2 is here. Documentation is now complete.
https://git.obarun.org/Obarun/66/-/releases/0.7.0.0-beta-2.
We are really really near to provide a tag for production. Please people, help us testing it.
I'm a bit late to the party. I might have some time to test these on a non-critical machine near the end of this week. Do you have a general release date in mind or is this a "when it's ready" type thing?
I already use this release on my personnal machine 66, oblibs and 66-tools
I also use boot@-66serv
You can also use boot-user@-66serv and scandir@-66serv
You need to update the skarnet package to the lastest:
s6-rc is no longer supported.
you can quickly get the thing using the following script to build the necessary, change the path
variable value at the begin of the script
#!/bin/sh
set -e
path="/home/<user>/Documents/66/build" ## changeme
tag=1
if [ "$1" == "commit" ]; then
tag=0
fi
skalibs_tag="v2.14.1.0"
execline_tag="v2.9.4.0"
s6_tag="v2.12.0.3"
s6_portable_utils_tag="v2.3.0.3"
s6_linux_utils_tag="v2.6.2.0"
oblibs_tag="0.2.0.2"
ss_tag="0.7.0.0-beta-3"
ss_tools_tag="0.1.0.0"
boot_66serv_tag="3.0.0"
boot_user_66serv_tag="0.5.0"
scandir_66serv_tag="0.4.1"
check_tag(){
if ((tag)); then
git checkout tags/"${1}"
fi
}
## skalibs
build_skalibs(){
oblog making skalibs
cd $path
if ! cd $path/skalibs; then
git clone git://git.skarnet.org/skalibs
fi
cd $path/skalibs
check_tag "${skalibs_tag}"
./configure \
--prefix=/usr \
--with-default-path=/usr/bin \
--disable-shared
make install || return 1
}
## execline
build_execline(){
oblog making execline
cd $path
if ! cd $path/execline; then
git clone git://git.skarnet.org/execline
fi
cd $path/execline
check_tag "${execline_tag}"
./configure \
--prefix=/usr \
--libexecdir=/usr/libexec \
--bindir=/usr/bin \
--sbindir=/usr/bin \
--shebangdir=/usr/bin \
--with-lib=/usr/lib/skalibs \
--disable-shared
make install || return 1
}
## s6
build_s6(){
oblog making s6
cd $path
if ! cd $path/s6; then
git clone git://git.skarnet.org/s6
fi
cd $path/s6
check_tag "${s6_tag}"
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/bin \
--with-lib=/usr/lib/skalibs \
--with-lib=/usr/lib/execline \
--disable-shared
make install || return 1
}
## s6-portable-utils
build_s6_portable_utils(){
oblog making s6-portable-utils
cd $path
if ! cd $path/s6-portable-utils; then
git clone git://git.skarnet.org/s6-portable-utils
fi
cd $path/s6-portable-utils
check_tag "${s6_portable_utils_tag}"
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/bin \
--with-lib=/usr/lib/skalibs \
--disable-shared
make install || return 1
}
## s6-linux-utils
build_s6_linux_utils(){
oblog making s6-linux-utils
cd $path
if ! cd $path/s6-linux-utils; then
git clone git://git.skarnet.org/s6-linux-utils
fi
cd $path/s6-linux-utils
check_tag "${s6_linux_utils_tag}"
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/bin \
--with-lib=/usr/lib/skalibs \
--disable-shared
make install || return 1
}
## oblibs
build_oblibs(){
oblog making oblibs
cd $path
if ! cd $path/oblibs; then
git clone https://git.obarun.org/obarun/oblibs
fi
cd $path/oblibs
check_tag "${oblibs_tag}"
./configure \
--prefix=/usr \
--with-lib=/usr/lib/skalibs \
--with-lib=/usr/lib/execline \
--disable-shared
make install || return 1
}
## 66
build_66(){
oblog making 66
cd $path
if ! cd $path/66; then
git clone https://git.obarun.org/obarun/66
fi
cd $path/66
# check_tag "${ss_tag}"
git switch dev
./configure \
--bindir=/usr/bin \
--shebangdir=/usr/bin \
--with-s6-log-timestamp=iso \
--with-s6-log-user=s6log \
--with-lib=/usr/lib/skalibs \
--with-lib=/usr/lib/execline \
--with-lib=/usr/lib/s6 \
--with-lib=/usr/lib/oblibs \
--disable-shared
make install || return 1
}
## 66-tools
build_66_tools(){
oblog making 66-tools
cd $path
if ! cd $path/66-tools; then
git clone https://git.obarun.org/obarun/66-tools
fi
cd $path/66-tools
check_tag "${ss_tools_tag}"
./configure \
--bindir=/usr/bin \
--with-lib=/usr/lib/skalibs \
--with-lib=/usr/lib/execline \
--with-lib=/usr/lib/oblibs \
--disable-shared
make install || return 1
}
# boot-66serv
build_boot_66serv(){
oblog making boot-66serv
cd $path
if ! cd $path/boot-66serv; then
git clone https://git.obarun.org/obmods/boot-66serv
fi
cd $path/boot-66serv
check_tag "${boot_66serv_tag}"
./configure \
--bindir=/usr/bin
make install || return 1
}
build_boot_user_66serv(){
oblog making boot-user-66serv
cd $path
if ! cd $path/boot-user-66serv; then
git clone https://git.obarun.org/obmods/boot-user-66serv
fi
cd $path/boot-user-66serv
check_tag "${boot_user_66serv_tag}"
./configure \
--bindir=/usr/bin
make install || return 1
}
build_scandir_66serv(){
oblog making scandir-66serv
cd $path
if ! cd $path/scandir-66serv; then
git clone https://git.obarun.org/obmods/scandir-66serv
fi
cd $path/scandir-66serv
check_tag "${scandir_66serv_tag}"
./configure \
--bindir=/usr/bin
make install || return 1
}
_run() {
if ! ${1} ; then
printf "%s" "unable to build ${1#*_}"
exit 1
fi
}
_run build_skalibs
_run build_execline
_run build_s6
_run build_s6_linux_utils
_run build_s6_portable_utils
_run build_oblibs
_run build_66
_run build_66_tools
_run build_boot_66serv
_run build_boot_user_66serv
_run build_scandir_66serv
You also may want to take look at Rosetta Stone and upgrade pages not be confuse with the new interface. All docs are complete. Refers to it or just ask me 🙂.
Many thanks for your interest.
In short to get a bootable system, i assume that all packages are installed
# 66 enable boot@system
# 66 tree admin -o groups=boot boot
# 66 reboot ## if it's not working you can force it with 66 reboot -f. This will depends how to make the migration of the 66 program(fresh install, migrate from old tools, etc)
The 66 tree admin
command can be avoid if you provide a seed file to configure the boot tree at its creation. You can find the file here. To do so, just create a file at /etc/66/seed/boot with the following:
allow = root
groups = boot
Then, with the seed file you just need to do
# 66 enable boot@system
# 66 reboot
You may want to configure your boot sequence
# 66 configure boot@system ## launch the editor
# 66 reconfigure boot@system ## apply the changes
# 66 reboot
Took longer than I expected, but here's the report.
What works:
Obvious showstoppers:
66 enable cupsd
fails.Everything was built at the latest available tag, the following versions were changed from your script above.
skalibs_tag="v2.14.1.0"
s6_tag="v2.12.0.3"
oblibs_tag="0.2.0.1"
ss_tag="0.7.0.0-beta-3"
66 was failing to build with "stack_clean_string_g undeclared", I had to git checkout the oblibs tag for some reason. Once I got past that everything build fine though.
Do you know why 66 wouldn't be able to find service files provided by -66serv packages? Is there some extra configuration that needs to be done aside from the steps above?
Depending of the flags passed to 66. If you built with the default, service is localized at /etc/66/service
and /usr/share/66/service
for root and $HOME/.66/service
, /etc/66/service/user
and /usr/share/66/service/user
for regular user, in that order of precedence.
So, actually -66serv
package install the service at /usr/lib/66/service
.
Well, the beta-2 and obviously 3 changed the place for user service. User service must be set at user subdirectory,/etc/66/service/user
or /usr/share/66/service/user
or $HOME/.66/service
.
If you want to keep the old place meaning replacing /usr/share/66/service by /usr/lib/66/service you need to define the flag --with-system-service=/usr/lib
cdop 66 was failing to build with "stack_clean_string_g undeclared", I had to git checkout the oblibs tag for some reason. Once I got past that everything build fine though.
Found the bug, it's due to oblibs_tag="0.2.0.1"
where it should be oblibs_tags="0.2.0.1"
(note the s at the end of tags). I have corrected the script that i posted you.
eric If you want to keep the old place meaning replacing /usr/share/66/service by /usr/lib/66/service you need to define the flag --with-system-service=/usr/lib
I just copied the service files I needed from the old directory to the new one. After that I could enable/start the services as expected. But I needed to poke around quite a bit to get to the xfce desktop, because there are still some rough edges.
Some field notes for other testers:
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session startxfce4
or similar.@eric the only thing that's a bit confusing to me is that some services started from one tree end up in another tree. Example: my boot-user@ module , started in the session tree, says it belongs in tree=root. Weirder, it appears in both trees when I do 66 tree status -g
. Same thing with scandir@.
TL;DR: Simpler setups should just work or require only minimal intervention. If you have more complicated tree graphs you might wan't to wait a bit until you have some time to kill. X display managers may cause some pain related to autostart, but no flakiness was detected on the boot sequence once tree setups are correct.
It might be a few days until I have time to do a deeper dive on this, but I'll chime in once X autostart is working for me again.
cdop @eric the only thing that's a bit confusing to me is that some services started from one tree end up in another tree. Example: my boot-user@ module , started in the session tree, says it belongs in tree=root. Weirder, it appears in both trees when I do 66 tree status -g. Same thing with scandir@.
It seems normal, but can please you post the output of the 66 tree status -g
command?
It can be little confusing like you said, but it allow to get all depends/requiredby of a service whatever the tree used.
cdop You might want to disable X display managers (lxdm, sddm, etc.) while testing this. Use startx and .xinitrc instead. If you need console management/dbus to work you can just do the usual exec ck-launch-session dbus-launch --sh-syntax --exit-with-session startxfce4 or similar.
Take care of the issues. Some commits was made to fix bugs related to module as regular user.
We reached the preprod tag
https://git.obarun.org/Obarun/66/-/releases/0.7.0.0-preprod
So, beta tester should expect an operational program. This release marks the completion of code development for the upcoming production release, with the focus shifting primarily to bug fixes from this point onward.
Documentation for the upcoming release is online. It's strongly encouraged to read this documentation to familiarize yourself with the new 66 user interface. Also, take a look to these particular documentation pages:
The necessaries packages will be soon provided on its corresponding testing repositories. An announce will be made about this. A migration (and rollback) instructions will also be provided at the same time. So, if you have already activated the testing repositories, be careful to not update without checking first the package concerned.
eric It seems normal, but can please you post the output of the 66 tree status -g command?
I don't know if this is still relevant, but here it is. I just compiled and installed the preprod version with all the updated tags:
# 66 tree status -g
Name : global
Current : no
Enabled : yes
Allowed : root
Groups : admin
Depends : \
└─None
Required by : \
└─None
Contents : \
└─None
Name : boot
Current : no
Enabled : no
Allowed : root
Groups : boot
Depends : \
└─None
Required by : \
└─None
Contents : \
├─boot@system:system-hostname (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-run (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-tmp (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-proc (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:system-sysctl (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:udevd-log (pid=278, state=Enabled, type=classic, tree=boot)
├─boot@system:tty-earlier@tty12 (pid=196, state=Enabled, type=classic, tree=boot)
├─boot@system (pid=up, state=Enabled, type=module, tree=boot)
├─boot@system:populate-run (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:populate-tmp (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-sys (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:populate-sys (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-dev (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-pts (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-shm (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:populate-dev (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-cgroups (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:system-hwclock (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:modules-kernel (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:system-random (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:modules-system (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:udevd (pid=451, state=Enabled, type=classic, tree=boot)
├─boot@system:udevadm (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:system-fontnkey (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:system-fsck (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-fstab (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:system-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-rw (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:local-loop (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:local-time (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:local-authfiles (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:local-sethostname (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:local-tmpfiles (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:mount-netfs (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:local-dmesg (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:local-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:runtime-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:canopy (pid=up, state=Enabled, type=oneshot, tree=boot)
├─boot@system:tty-rc@tty1 (pid=983, state=Enabled, type=classic, tree=boot)
└─boot@system:tty-rc@tty2 (pid=985, state=Enabled, type=classic, tree=boot)
Name : root
Current : yes
Enabled : yes
Allowed : root
Groups : admin
Depends : \
└─None
Required by : \
└─session (Enabled)
Contents : \
├─cupsd-log (pid=917, state=Enabled, type=classic, tree=root)
├─openntpd-log (pid=924, state=Enabled, type=classic, tree=root)
├─wpa_supplicant-log (pid=919, state=Enabled, type=classic, tree=root)
├─dbus-log (pid=923, state=Enabled, type=classic, tree=root)
├─networkmanager-log (pid=926, state=Enabled, type=classic, tree=root)
├─consolekit-log (pid=925, state=Enabled, type=classic, tree=root)
├─boot-user@davide:mount-run@davide (pid=up, state=Enabled, type=oneshot, tree=root)
├─scandir@davide (pid=up, state=Enabled, type=module, tree=session)
├─cupsd (pid=930, state=Enabled, type=classic, tree=root)
├─openntpd (pid=934, state=Enabled, type=classic, tree=root)
├─wpa_supplicant (pid=1010, state=Enabled, type=classic, tree=root)
├─dbus (pid=937, state=Enabled, type=classic, tree=root)
├─networkmanager (pid=938, state=Enabled, type=classic, tree=root)
├─consolekit (pid=1009, state=Enabled, type=classic, tree=root)
└─boot-user@davide (pid=up, state=Enabled, type=module, tree=root)
Name : session
Current : no
Enabled : yes
Allowed : root
Groups : admin
Depends : \
└─root (Enabled)
Required by : \
└─None
Contents : \
├─scandir@davide:setenv@davide (pid=up, state=Enabled, type=oneshot, tree=session)
├─scandir@davide:svscan@davide-log (pid=912, state=Enabled, type=classic, tree=session)
├─scandir@davide (pid=up, state=Enabled, type=module, tree=session)
├─boot-user@davide:mount-run@davide (pid=up, state=Enabled, type=oneshot, tree=root)
├─scandir@davide:svscan@davide (pid=946, state=Enabled, type=classic, tree=session)
└─boot-user@davide (pid=up, state=Enabled, type=module, tree=root)
I haven't tested the X display managers again but I don't see issues with anything else.
Hey @eric if I want to start the trees boot, net and finally global, is this command right?
sudo 66 tree admin -o depends=boot,net
@wastelander
You missed the name of the tree at the command line, right?
In theory yes, but you don't need to depends on boot. The tree boot is always launched at boot time. So any other trees are sure to already have the boot tree started.
Can you describe a little more what your try to accomplish? For example, what you want to do with the net tree?
@eric i wanted to start a net tree after boot but before global. I didn't write the name of the global tree at the end of the command because I thought that being global a default tree the name was unneeded:) however I would need the net tree with wpa_supplicant and dhcpd/dhclient enabled, while connmand would stay in global and so start later.
You have different way to accomplish this
If your tree is already create you can administrate it to make requiredby dependency changes
$ sudo 66 tree admin -o requiredby=global net
or you can do
$ sudo 66 tree admin -o depends=net global
You have the exact same result, global
will start after net
. Passing through the first command allow to make correct interdependence without the need to touch an existing tree, and so, you can configure it at creation time too
$ sudo 66 tree create -o requiredby=global net
This is the shortest way.
For the sake of the example
enable wpa_supplicant
, dhcpcd
, and dhclient
at net tree :
$ sudo 66 -t net enable wpa_supplicant@wlan0 dhclient@enp0s6 dhcpcd
and enable to global connmand
$ sudo 66 enable connmand
I don't known what you do exactly but this configuration will make conflicts between dhcpcd
and connmand
, you should only use one network manager at a time.
you can for example disable connmand
and start it manually when you need it by a 66 start
command.
Thank you so much @eric , you really cleared out all my doubts:). Yes, sure, I would just want to enable either connmand or dhcpcd, the reason why I would not enable connmand is that sometimes it doesn't connect when using a VPN, so I should manually create a wpa_supplicant-wlan0.conf file and just leave the wpa_supplicant@wlan0 enabled in the net tree.
Just tested it and it's working great, though dbus seems to create duplicate in both global and session tree when I uncomment sddm in the display-manager line in boot-user@ module file. Also it cannot find consolekit service file after uncommenting the console-tracker line in same module.
edit: the duplicate entry is fine with me since it just relists the same pid.
parse: info: launch configure script of module: boot-user@orb
boot-user@orb: info: add dependency:
boot-user@orb: info: set environment at .xsession file to: /home/orb/.66/conf/svscan@orb
boot-user@orb: warning: move existing /home/orb/.xsession file to /home/orb/.xsession-53857301382.backup
boot-user@orb: info: create /home/orb/.xsession
boot-user@orb: fatal: the consolekit frontend service file do not exist on your system -- please install it and try again
Name : global
Current : no
Enabled : yes
Allowed : root
Groups : admin
Depends : \
└─None
Required by : \
└─session (Enabled)
Contents : \
├─wpa_supplicant-log (pid=1157, state=Enabled, type=classic, tree=global)
├─connmand-log (pid=1051, state=Enabled, type=classic, tree=global)
├─dbus-log (pid=1046, state=Enabled, type=classic, tree=session)
├─ntpclient-log (pid=1156, state=Enabled, type=classic, tree=global)
├─seatd-log (pid=1050, state=Enabled, type=classic, tree=global)
├─wpa_supplicant (pid=1198, state=Enabled, type=classic, tree=global)
├─dbus (pid=1060, state=Enabled, type=classic, tree=session)
├─ntpclient (pid=4009, state=Enabled, type=classic, tree=global)
├─seatd (pid=1073, state=Enabled, type=classic, tree=global)
└─connmand (pid=1079, state=Enabled, type=classic, tree=global)
Name : session
Current : no
Enabled : yes
Allowed : root
Groups : admin
Depends : \
└─global (Enabled)
Required by : \
└─None
Contents : \
├─consolekit-log (pid=1110, state=Enabled, type=classic, tree=session)
├─dbus-log (pid=1046, state=Enabled, type=classic, tree=session)
├─sddm-log (pid=1270, state=Enabled, type=classic, tree=session)
├─scandir@orb (pid=up, state=Enabled, type=module, tree=session)
├─scandir@orb:setenv@orb (pid=up, state=Enabled, type=oneshot, tree=session)
├─scandir@orb:svscan@orb-log (pid=1167, state=Enabled, type=classic, tree=session)
├─boot-user@orb:mount-run@orb (pid=up, state=Enabled, type=oneshot, tree=session)
├─dbus (pid=1060, state=Enabled, type=classic, tree=session)
├─scandir@orb:svscan@orb (pid=1197, state=Enabled, type=classic, tree=session)
├─consolekit (pid=1119, state=Enabled, type=classic, tree=session)
├─sddm (pid=0, state=Enabled, type=classic, tree=session)
└─boot-user@orb (pid=up, state=Enabled, type=module, tree=session)
Smooth transition otherwise, thanks for the clarity😎
Wat-now dbus seems to create duplicate in both global and session tree
Nope, even on global
tree your get dbus (pid=1060, state=Enabled, type=classic, tree=session)
. So the last parameter is tree=session
and show you the associated tree of the dbus service. You also should transfert it to global
. In practice this doesn't change anything, i mean you will get a good start order of the services, but it's little weird as your tree session depends on global
. That means that consolekit will ask for dbus (66 will start it for sure) where dbus can be already up if you transfert it to global
.
Simply you can do:
66 -t global enable dbus
Wat-now Also it cannot find consolekit service file after uncommenting the console-tracker line in same module
That's odd as your consolekit daemon seems running. Do you have the frontend at file at /etc/66/service
, /usr/share/66/service
?
eric
You also should transfert it toglobal
It was in global until i enabled sddm, so it seems when I do that, it transfers it from the global tree into the session tree. Unless.... I should start sddm in global tree as well?
eric Do you have the frontend at file at /etc/66/service, /usr/share/66/service?
yes
Powered by Obarun