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😎

  • eric replied to this.

    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 to global

      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

      Hum, maybe a little glitch exist with the boot-user@ service. Need to check that
      Anyway, you don't need to switch sddm. Sddm is not "mandatory" for a system (even dbus, but dbus can be largely used by other service) and as long as global is started first sddm will find up dbus when it will be its turn to be up.

      But again, it's just a question of esthetic, your services will be started in a good order anyway

      a month later

      It's working very nicely as I have been testing but there is one quirk I've run into that may be addressed:

      1st when I use sudo 66 reconfigure boot-user@orb it takes that module from session tree and populates global tree instead

      Can you give us the complete process you did to get this behavior? for instance, what the key=value changed before launching the reconfigure command. I would like to reproduce it, this is not expected.
      A workaround can be:

      sudo 66 -t <treename> enable boot-user@orb

      and you should get boot-user@orb associated to <treename>.

      My user tree doesn't seem to start automatically, after logging in through SDDM the tree services remain pid=0 or uninitialized:

      $ 66 -z tree status -g
      Name        : global
      Current     : no
      Enabled     : yes
      Allowed     : myuser
      Groups      : user
      Depends     : \
                    └─None
      Required by : \
                    └─None
      Contents    : \
                    ├─dbus@myuser-log (pid=0, state=Enabled, type=classic, tree=global)
                    ├─xdg-user-dirs (pid=unitialized, state=Enabled, type=oneshot, tree=global)
                    └─dbus@myuser (pid=0, state=Enabled, type=classic, tree=global)

      eric what the key=value changed before launching the reconfigure command

      CONSOLE_TRACKER=consolekit and consolekit is already started in the global tree. That is what seems to cause the behavior. Yes, the workaround works and even without using the session treename it works just like:

      sudo 66 enable boot-user@orb and still populates the session tree.

      • eric replied to this.

        eric
        Thank you, that helped me solve it. My ~/.xsessions was

        list=( $(ls -A1 /home/myuser/.66/conf/svscan@myuser) )
        for i in ${list[@]};do
            var=( $(</home/myuser/.66/conf/svscan@myuser/${i}) )
            for j in ${var[@]}; do
                export ${j}
            done
        done
        
        66-all up

        I replaced 66-all up with 66 tree start.

        Wat-now

        Wat-now without using the session treename

        yes, this is expected as the boot-user@ define @intree = session. May a little glitch can exist with the reconfigure command on this module. Let see if someone else get the same behavior using the reconfigure command.

        my system also locked up after running 66 reconfigure boot@system (just change env to enable handling of swap). also, the installed obarun-install/obarun-install-themes are still from the last version before these 66 changes. also the ones from repo. would have been a "convinient" source for steps to rebuild boot/global/session things!

        • eric replied to this.

          Difficult to help you if you don't provide more information like logs.
          About the obarun-install just update when it ask you to do it.

          negative boot/global/session things

          It depends on what you had in the trees.

          Please provide more information.

          ive just reinstalled system manually, not using obarun-install and setup a sway environment. had to recompiled sway since some compoments depends on libsystemd. sadly, i cant get waybar to compile so im running without a good bar for now

          Ok, so

          Enable the boot@ service:

          $ sudo 66 enable boot@system

          Configure the boot@ service using your preferred editor (replace nano with your editor of choice):

          $ sudo 66 configure -e nano boot@system

          Apply the changes:

          $ sudo 66 reconfigure boot@system

          Enable all other services that you require. For example:

          $ sudo 66 enable boot-user@oblive wpa_supplicant consolekit connmand openntpd

          Configure the boot-user@oblive service using your preferred editor (replace nano with your editor of choice):

          $ sudo 66 configure -e nano boot-user@oblive

          Apply the changes:

          $ sudo 66 reconfigure boot-user@oblive

          Enable user-specific services. For instance:

          $ 66 enable dbus@oblive

          This is the base for an X machine. It's up to you to improve it with your needs. Don't hesitate to ask

          @eric thanks. that helps. i also found out that i could just run "obarun-install" on the already installed system and this will update both obarun-install/themes (only to updat and not to install).

          4 days later

          I just finished updating my main box to the new 66 tools. No issues whatsoever.

          Great work, everyone.

          Please advise whether it is possible to enable boot-user@orb and boot-user@greeter in session tree. I'm trying to establish greetd as an alternative DM since, I'm finding sddm to be a pain in the neck because it's sometimes not closing down its xorg instances when I shut the service down.

          % sudo 66 tree start session        
          signal: info: Successfully started service: wpa_supplicant
          signal: info: Successfully started service: wpa_supplicant-log
          signal: info: Successfully started service: connmand
          signal: info: Successfully started service: dbus-log
          signal: info: Successfully started service: dbus
          signal: info: Successfully started service: connmand-log
          signal: info: Successfully started service: ntpclient
          signal: info: Successfully started service: ntpclient-log
          signal: info: Successfully started service: seatd
          signal: info: Successfully started service: seatd-log
          signal: info: Successfully started service: cupsd
          signal: info: Successfully started service: cupsd-log
          signal: info: Successfully started service: consolekit
          signal: info: Successfully started service: consolekit-log
          tree: info: Successfully started tree: global
          start: info: Initialized successfully: sddm
          start: info: Initialized successfully: sddm-log
          start: info: Initialized successfully: scandir@orb
          start: info: Initialized successfully: boot-user@orb
          start: info: Initialized successfully: scandir@greeter
          start: info: Initialized successfully: boot-user@greeter
          signal: info: Successfully started service: consolekit-log
          signal: info: Successfully started service: consolekit
          signal: info: Successfully started service: dbus
          signal: info: Successfully started service: dbus-log
          signal: info: Successfully started service: sddm-log
          signal: info: Successfully started service: sddm
          signal: info: Initialized successfully: scandir@orb:setenv@orb
          signal: info: Initialized successfully: scandir@orb:svscan@orb-log
          signal: info: Initialized successfully: scandir@orb:svscan@orb
          signal: info: Initialized successfully: scandir@greeter:setenv@greeter
          signal: info: Initialized successfully: scandir@greeter:svscan@greeter-log
          signal: info: Initialized successfully: scandir@greeter:svscan@greeter
          signal: info: Successfully started service: scandir@greeter:svscan@greeter-log
          signal: info: Successfully started service: scandir@orb:svscan@orb-log
          signal: warning: unable to start service: scandir@greeter:setenv@greeter -- exited with signal: 111
          signal: warning: unable to start service: scandir@greeter -- exited with signal: 111
          tree: warning: unable to start tree: session -- exited with signal: 1
          % sudo 66 reconfigure boot-user@orb     
          signal: info: Successfully stopped service: boot-user@orb
          stop: info: Unsupervised successfully: boot-user@orb
          stop: fatal: unable to find hash id of: boot-user@orb:mount-run@orb -- please make a bug reports
          
          Name        : session
          Current     : no
          Enabled     : yes
          Allowed     : root
          Groups      : admin
          Depends     : \
                        └─global (Enabled)
          Required by : \
                        └─None
          Contents    : \
                        ├─consolekit-log (pid=1116, state=Enabled, type=classic, tree=global)
                        ├─dbus-log (pid=1111, state=Enabled, type=classic, tree=global)
                        ├─sddm-log (pid=2959, state=Enabled, type=classic, tree=session)
                        ├─scandir@orb:setenv@orb (pid=down, state=Enabled, type=oneshot, tree=session)
                        ├─scandir@orb:svscan@orb-log (pid=3138, state=Enabled, type=classic, tree=session)
                        ├─scandir@orb (pid=down, state=Enabled, type=module, tree=session)
                        ├─boot-user@orb:mount-run@orb (pid=unitialized, state=Enabled, type=oneshot, tree=session)
                        ├─scandir@greeter (pid=down, state=Enabled, type=module, tree=session)
                        ├─scandir@greeter:setenv@greeter (pid=down, state=Enabled, type=oneshot, tree=session)
                        ├─scandir@greeter:svscan@greeter-log (pid=3137, state=Enabled, type=classic, tree=session)
                        ├─boot-user@greeter:mount-run@greeter (pid=unitialized, state=Enabled, type=oneshot, tree=session)
                        ├─dbus (pid=1124, state=Enabled, type=classic, tree=global)
                        ├─scandir@orb:svscan@orb (pid=0, state=Enabled, type=classic, tree=session)
                        ├─boot-user@greeter (pid=down, state=Enabled, type=module, tree=session)
                        ├─scandir@greeter:svscan@greeter (pid=0, state=Enabled, type=classic, tree=session)
                        ├─consolekit (pid=1156, state=Enabled, type=classic, tree=global)
                        ├─sddm (pid=2963, state=Enabled, type=classic, tree=session)
                        └─boot-user@orb (pid=down, state=Enabled, type=module, tree=session)```
          
          part of /run/66/log/runtime-branch/current:```signal: tracing: Initiating process of: scandir@orb
          signal: tracing: requested flags to build the graph:  topropagate wantup
          signal: tracing: Initiating process of: scandir@greeter
          signal: tracing: Initiating process of: boot-user@greeter
          signal: tracing: waiting dependencies for: boot-user@greeter
          signal: tracing: requested flags to build the graph:  topropagate wantup
          signal: tracing: add service: scandir@orb:setenv@orb to the graph selection
          signal: tracing: add service: scandir@orb:svscan@orb-log to the graph selection
          signal: tracing: add service: scandir@greeter:setenv@greeter to the graph selection
          signal: tracing: add service: scandir@orb:svscan@orb to the graph selection
          signal: tracing: add service: scandir@greeter:svscan@greeter-log to the graph selection
          signal: tracing: copy: /var/lib/66/system/service/svc/scandir@orb:setenv@orb to: /run/66/state/0/scandir@orb:setenv@orb
          signal: tracing: add service: scandir@greeter:svscan@greeter to the graph selection
          signal: tracing: copy: /var/lib/66/system/service/svc/scandir@greeter:setenv@greeter to: /run/66/state/0/scandir@greeter:setenv@greeter
          signal: tracing: remove directory: /run/66/state/0/scandir@greeter:setenv@greeter/.resolve
          signal: tracing: symlink: /run/66/state/0/scandir@greeter:setenv@greeter/.resolve to: /var/lib/66/system/service/svc/scandir@greeter:setenv@greeter/.resolve
          signal: tracing: write status file at: /run/66/state/0/scandir@greeter:setenv@greeter/state/status
          signal: tracing: copy: /var/lib/66/system/service/svc/scandir@greeter:svscan@greeter-log to: /run/66/state/0/scandir@greeter:svscan@greeter-log
          signal: tracing: remove directory: /run/66/state/0/scandir@greeter:svscan@greeter-log/.resolve
          signal: tracing: symlink: /run/66/state/0/scandir@greeter:svscan@greeter-log/.resolve to: /var/lib/66/system/service/svc/scandir@greeter:svscan@greeter-log/.resolve
          signal: tracing: symlink: /run/66/scandir/0/scandir@greeter:svscan@greeter-log to: /run/66/state/0/scandir@greeter:svscan@greeter-log
          signal: tracing: create file: /run/66/scandir/0/scandir@greeter:svscan@greeter-log/down
          signal: tracing: create fifo: /run/66/state/0/scandir@greeter:svscan@greeter-log/event
          signal: tracing: write status file at: /run/66/state/0/scandir@greeter:svscan@greeter-log/state/status
          signal: tracing: copy: /var/lib/66/system/service/svc/scandir@greeter:svscan@greeter to: /run/66/state/0/scandir@greeter:svscan@greeter
          signal: tracing: remove directory: /run/66/state/0/scandir@greeter:svscan@greeter/.resolve
          signal: tracing: symlink: /run/66/state/0/scandir@greeter:svscan@greeter/.resolve to: /var/lib/66/system/service/svc/scandir@greeter:svscan@greeter/.resolve
          signal: tracing: symlink: /run/66/scandir/0/scandir@greeter:svscan@greeter to: /run/66/state/0/scandir@greeter:svscan@greeter
          signal: tracing: create file: /run/66/scandir/0/scandir@greeter:svscan@greeter/down
          signal: tracing: store fdholder entry: scandir@greeter:svscan@greeter-log
          signal: tracing: store identifier: pipe:66-r-scandir@greeter:svscan@greeter-log
          signal: tracing: store identifier: pipe:66-w-scandir@greeter:svscan@greeter-log
          signal: tracing: create fdholder autofilled file
          signal: tracing: create fifo: /run/66/state/0/scandir@greeter:svscan@greeter/event
          signal: tracing: write status file at: /run/66/state/0/scandir@greeter:svscan@greeter/state/status
          signal: tracing: sending -twR signal to: /run/66/scandir/0/fdholder
          signal: tracing: subcribe to fifo: /run/66/state/0/scandir@greeter:svscan@greeter-log/event
          signal: tracing: subcribe to fifo: /run/66/state/0/scandir@greeter:svscan@greeter/event
          signal: tracing: send signal: a to scandir: /run/66/scandir/0
          signal: tracing: waiting for events on fifo...
          signal: tracing: create directory: /var/log/66/scandir@greeter:setenv@greeter
          signal: tracing: write status file at: /run/66/state/0/scandir@greeter:setenv@greeter/state/status
          signal: info: Initialized successfully: scandir@greeter:setenv@greeter
          signal: tracing: clean event directory: /run/66/state/0/scandir@greeter:svscan@greeter-log/event
          signal: tracing: write status file at: /run/66/state/0/scandir@greeter:svscan@greeter-log/state/status
          signal: info: Initialized successfully: scandir@greeter:svscan@greeter-log
          signal: tracing: clean event directory: /run/66/state/0/scandir@greeter:svscan@greeter/event
          signal: tracing: create directory: /var/log/66/scandir@greeter:svscan@greeter
          signal: tracing: write status file at: /run/66/state/0/scandir@greeter:svscan@greeter/state/status
          signal: info: Initialized successfully: scandir@greeter:svscan@greeter
          signal: tracing: Initiating process of: scandir@greeter:setenv@greeter
          signal: tracing: sending up to: /run/66/scandir/0/scandir@greeter:setenv@greeter
          signal: tracing: Initiating process of: scandir@greeter:svscan@greeter-log
          signal: tracing: sending -wU -u to: /run/66/scandir/0/scandir@greeter:svscan@greeter-log
          signal: tracing: Initiating process of: scandir@greeter:svscan@greeter
          signal: tracing: waiting dependencies for: scandir@greeter:svscan@greeter
          signal: tracing: write status file at: /run/66/state/0/scandir@greeter:svscan@greeter-log/state/status
          signal: tracing: delete down file: /run/66/scandir/0/scandir@greeter:svscan@greeter-log/down
          signal: info: Successfully started service: scandir@greeter:svscan@greeter-log
          signal: tracing: sends notification U to: scandir@greeter:svscan@greeter from: scandir@greeter:svscan@greeter-log
          signal: tracing: scandir@greeter:svscan@greeter acknowledges: U from: scandir@greeter:svscan@greeter-log
          signal: tracing: remove directory: /run/66/state/0/scandir@orb:setenv@orb/.resolve
          signal: tracing: symlink: /run/66/state/0/scandir@orb:setenv@orb/.resolve to: /var/lib/66/system/service/svc/scandir@orb:setenv@orb/.resolve
          signal: tracing: write status file at: /run/66/state/0/scandir@orb:setenv@orb/state/status
          signal: tracing: copy: /var/lib/66/system/service/svc/scandir@orb:svscan@orb-log to: /run/66/state/0/scandir@orb:svscan@orb-log
          signal: tracing: remove directory: /run/66/state/0/scandir@orb:svscan@orb-log/.resolve
          signal: tracing: symlink: /run/66/state/0/scandir@orb:svscan@orb-log/.resolve to: /var/lib/66/system/service/svc/scandir@orb:svscan@orb-log/.resolve
          signal: tracing: symlink: /run/66/scandir/0/scandir@orb:svscan@orb-log to: /run/66/state/0/scandir@orb:svscan@orb-log
          signal: tracing: create file: /run/66/scandir/0/scandir@orb:svscan@orb-log/down
          signal: tracing: create fifo: /run/66/state/0/scandir@orb:svscan@orb-log/event
          signal: tracing: write status file at: /run/66/state/0/scandir@orb:svscan@orb-log/state/status
          signal: tracing: copy: /var/lib/66/system/service/svc/scandir@orb:svscan@orb to: /run/66/state/0/scandir@orb:svscan@orb
          signal: warning: unable to start service: scandir@greeter:setenv@greeter -- exited with signal: 111
          signal: tracing: sends notification F to: scandir@greeter:svscan@greeter from: scandir@greeter:setenv@greeter
          signal: warning: unable to start service: scandir@greeter -- exited with signal: 111
          signal: tracing: sends notification F to: boot-user@greeter from: scandir@greeter
          start: warning: unable to handle services selection
          tree: warning: unable to start tree: session -- exited with signal: 1
          runtime-branch: fatal: crashed! -- Your machine is operational but some runtime service failed to start correctly. Please see the complete boot log at /run/66/log/0/runtime-branch/current file for further information.

          Powered by Obarun