eric wroteOk, so
tested on virtualbox with fresh installation from last Arch ISO with mate as desktop environment.
note : an user was created with this : useradd -m -g users -G floppy,storage,disk,video,scanner,network,audio,optical...............
........... install the marvel with -S s6-suite eudev-obarun consolekit2 ............
Here is an improvisation to the instructions Eric posted in transforming an Arch installation to Obarun, I transformed a Manjaro 17.0.1 LXDE installation into Obarun over Manjaro's repositories.
It worked but networking stuff is a little weird (networkmanager) but this is where I am writing from
Also published at
https://sysdfree.wordpress.com/196/
Please if you try, you are undertaking a conscious risk so back anything you want kept up before. Also please report any obstacles.
This is more of a learning experience/experiment that can make us better understand the beauty of the "marvel"
======================
1 first remove automatic login or DM
we left autologin as it was and just removed the DM, in our case it was lightdm. If you are working on a new installation to replicate this it might be best to leave autologin off and use a normal loging in user.
2 pass to console
Although Eric advised to pass to console, we just worked on terminal from within the desktop as it is easier to copy past things back and forth and make notes of output.
If you have more than one kernels installed, and Manjaro has a wide variety of kernels available, you can just leave the active kernel and remove the rest so you can speed up the process, as every other system file that will be installed will need to update all kernels.
3 general step to follow :
append pacman.conf with obarun repo and SigLevel set to Never
The Obarun repositories MUST go before Core (Manjaro's main repository) so it will be Obarun, core, extra, community.
# [obarun-testing]
# SigLevel = Never
# SigLevel = Required
# Server = [url]https://repo.obarun.org/$arch/testing[/url]
[obarun]
SigLevel = Never
# SigLevel = Required
Server = [url]https://repo.obarun.org/$arch[/url]
synchronize : # pacman -Syy
install obarun-keyring # pacman -S obarun-keyring
modify pacman.conf setting SigLevel to Required
synchronize again with -Syy
After you use # pacman -Syy to update, # pacman -S obarun-keyring
then re-edit /etc/pacman.conf erase the Siglevel = Never and leave Siglevel = Required and take the # comment sign out from in front. You can use the Obarun testing repository or you can leave it commented for whenever you need to use it, if ever.
Also modify this line and add the obarun-keyring so your database will be tested for signatures from Manjaro, Arch, and Obarun.
SyncFirst = manjaro-system archlinux-keyring manjaro-keyring obarun-keyring
4 install applysys pacopts
# sudo pacman -S applysys pacopts
keep a list of the active daemons so you can activate the appropriate services later
systemctl list-units --state=running | grep -v systemd | awk '{print $1}' | grep service > daemon.list
# gaemon.list
in our case:
accounts-daemon.service
cronie.service
dbus.service
lvm2-lvmetad.service
ModemManager.service
NetworkManager.service
ntpd.service
pamac-system.service
polkit.service
rtkit-daemon.service
udisks2.service
user@ 1000.service
5 remove crap with -Rnsudd systemd libsystemd systemd-sysvcompat
# sudo pacman -Rnsudd systemd libsystemd systemd-sysvcompat
6 install the marvel with -S s6-suite eudev-obarun consolekit2
# sudo pacman -S s6-suite eudev-obarun consolekit2
and a marvel it is!
:: There are 12 members in group s6-suite:
:: Repository obarun
1) execline 2) mdevd 3) s6 4) s6-boot 5) s6-dns 6) s6-linux-init 7) s6-linux-utils 8) s6-networking 9) s6-portable-utils
10) s6-rc 11) s6opts 12) skalibs
Install all 12
7 launch pacopts origin command and replace all packages with the good one when it ask you. be carefull
of the messages when filesystem is installed and make the necessaries change about x.pacnew files.
$ sudo pacopts origin (and output to compare yours)
:: package accountsservice do not come from obarun repository
:: package bluez do not come from obarun repository
:: package bluez-libs do not come from obarun repository
:: package crda do not come from obarun repository
:: package cups do not come from obarun repository
:: package cups-filters do not come from obarun repository
:: package cups-pdf do not come from obarun repository
:: package dbus do not come from obarun repository
:: package device-mapper do not come from obarun repository
:: package dhcpcd do not come from obarun repository
:: package dmraid do not come from obarun repository
:: package filesystem do not come from obarun repository
:: package gtk2 do not come from obarun repository
:: package gvfs do not come from obarun repository
:: package gvfs-afc do not come from obarun repository
:: package gvfs-gphoto2 do not come from obarun repository
:: package gvfs-mtp do not come from obarun repository
:: package gvfs-nfs do not come from obarun repository
:: package gvfs-smb do not come from obarun repository
:: package iptables do not come from obarun repository
:: package libcups do not come from obarun repository
:: package libgudev do not come from obarun repository
:: package libinput do not come from obarun repository
:: package libmbim do not come from obarun repository
:: package libmm-glib do not come from obarun repository
:: package libnm do not come from obarun repository
:: package libnm-glib do not come from obarun repository
:: package libpulse do not come from obarun repository
:: package libusb do not come from obarun repository
:: package libwacom do not come from obarun repository
:: package libwbclient do not come from obarun repository
:: package lsb-release do not come from obarun repository
:: package lvm2 do not come from obarun repository
:: package mkinitcpio do not come from obarun repository
:: package modemmanager do not come from obarun repository
:: package networkmanager do not come from obarun repository
:: package nfs-utils do not come from obarun repository
:: package nfsidmap do not come from obarun repository
:: package openssh do not come from obarun repository
:: package openvpn do not come from obarun repository
:: package pcmciautils do not come from obarun repository
:: package pcsclite do not come from obarun repository
:: package polkit do not come from obarun repository
:: package procps-ng do not come from obarun repository
:: package pulseaudio do not come from obarun repository
:: package pulseaudio-bluetooth do not come from obarun repository
:: package pulseaudio-zeroconf do not come from obarun repository
:: package qt5-base do not come from obarun repository
:: package rpcbind do not come from obarun repository
:: package rtkit do not come from obarun repository
:: package samba do not come from obarun repository
:: package smbclient do not come from obarun repository
:: package subversion do not come from obarun repository
:: package udisks2 do not come from obarun repository
:: package upower do not come from obarun repository
:: package xdg-user-dirs do not come from obarun repository
:: package xf86-input-evdev do not come from obarun repository
:: package xf86-input-libinput do not come from obarun repository
:: package xf86-video-amdgpu do not come from obarun repository
:: package xf86-video-ati do not come from obarun repository
:: package xf86-video-intel do not come from obarun repository
:: package xf86-video-nouveau do not come from obarun repository
:: Do you want to replace this package(s)? [y|n] Y (yes yes yes)
resolving dependencies...
replace all of the above by hitting y y y to all.
You may encounter a problem, a pkg that does not want to be replaced easy. Remove and reinstall, it will automatically come from Obarun as obarun's repository is above (Arch Core system extra community on pacman.conf))
the following are replacement .conf files that came from replacing the appropriate Manjaro pkgs with Obarun's.
Some don't require much attention and some do, do a little research on your own. Shells for example are important for Obarun as it is heavy on zsh and there is extensive work done on that shell. You will learn to love it as we did.
(1/1) upgrading filesystem [# ############################################] 100%
warning: /etc/vconsole.conf saved as /etc/vconsole.conf.pacsave
warning: /etc/locale.conf saved as /etc/locale.conf.pacsave
warning: /etc/hostname saved as /etc/hostname.pacsave
warning: /etc/shells installed as /etc/shells.pacnew
warning: /etc/gshadow installed as /etc/gshadow.pacnew
warning: /etc/group installed as /etc/group.pacnew
warning: /etc/crypttab installed as /etc/crypttab.pacnew
warning: /etc/hosts installed as /etc/hosts.pacnew
warning: /etc/passwd installed as /etc/passwd.pacnew
warning: /etc/shadow installed as /etc/shadow.pacnew
warning: /etc/resolv.conf installed as /etc/resolv.conf.pacnew
lsb-release-1.4-15-any 18,4 KiB 3,59M/s 00:00 [# #################################] 100%
(1/1) checking keys in keyring [# #################################] 100%
(1/1) checking package integrity [# #################################] 100%
(1/1) loading package files [# #################################] 100%
(1/1) checking for file conflicts [# #################################] 100%
error: failed to commit transaction (conflicting files)
lsb-release: /etc/lsb-release exists in filesystem
Errors occurred, no packages were upgraded.
resolving dependencies...
looking for conflicting packages...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: pulseaudio-bluetooth: installing pulseaudio (11.1-2) breaks dependency 'pulseaudio=11.1-1'
:: pulseaudio-zeroconf: installing pulseaudio (11.1-2) breaks dependency 'pulseaudio=11.1-1'
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: pulseaudio-zeroconf: installing pulseaudio (11.1-2) breaks dependency 'pulseaudio=11.1-1'
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: pulseaudio-bluetooth: installing pulseaudio (11.1-2) breaks dependency 'pulseaudio=11.1-1'
resolving dependencies...
looking for conflicting packages...
sudo pacman -Rnsudd lib32-libcanberra-pulse lib32-libpulse libcanberra-pulse manjaro-pulse pavucontrol pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-ctl pulseaudio-zeroconf xfce4-volumed-pulse libpulse manjaro-lxde-xfce4-volumed-pulse xfce4-volumed-pulse
sudo pacman -S lsb-release --force
You will be removing pulseaudio with the above command and when you are all done, if audio does not work with alsa you can install it all back but in a way that will work on Obarun and s6.
lsb-release does not want to upgrade, it is the same version with obarun's, so use force to force it in place.
New optional dependencies for xdg-user-dirs
xdg-user-dirs-s6rcserv: xdg-user-dirs rc service
resolving dependencies...
8 modify the s6.conf to suit your needs
# sudo nano /etc/s6/s6.conf
launch pacopts service and install the service that you need when it ask you.
9 sudo pacopts service
10 sudo pacman -S xorg
Trust us on this one, unexplained in detail, but there are packages in Manjaro that have identical version numbers with Obarun, and you don't want you X to be confused. So by reinstalling over it you are forcing everything on Xorg to come from Obarun. There may be a more scientific way, but this is one that works.
11 run # sudo pacman -Su
update and upgrade everything.
12 kill the pid 1 with kill 1 command then press CTRL-C when the tty appear(this will reboot the machine)
after the reboot, log on and enable service with s6opts program
finally reboot for the last time
done
You don't need to hit ctrl-c or anything else # sudo kill 1 reboots the system fine and this is from a terminal in desktop..
Obviously, i think this pseudo conversion need improvement, so test it and make a report
It worked fine in Arch, it needed a little more pushing and shoving on Manjaro.
error: missing 'systemd' dependency for 'colord'
error: missing 'libpulse' dependency for 'conky'
error: missing 'libpulse' dependency for 'ffmpeg'
error: missing 'libpulse' dependency for 'gst-plugins-good'
error: missing 'libsystemd' dependency for 'libatasmart'
error: missing 'libsystemd' dependency for 'util-linux'
Take each one on the list and reinstall as an obarun pkg. Due to version numbers and signatures from Manjaro and Arch pacopts does not pick them up as "foreign" packages and their dependencies are different than what they are in Obarun.
Simply:
# pacman -S colord ffmpeg gst-plugins-good libatasmart util-linux
which don't have libsystemd dependencies on them.
For conky, if you like conky, in Obarun, it is best to use the AUR package conky-git that will compile on your new system.
If you want yaourt do # sudo pacman -S yaourt. If you like the yaourt tui do # yaourt -S yaourt-gui
Then use yaourt or yaourt-gui to install the conky-git package: # yaourt -S conky-git
13 # sudo s6opts list (will give you an output like this:)
current -> Default
previous -> Default
Classic service(s)
networkmanager :: up (pid 730) 1933 seconds
Rc longruns service(s)
s6rc-fdholder :: down (exitcode 0) 1942 seconds, ready 1942 seconds
s6rc-oneshot-runner :: up (pid 260) 1941 seconds, ready 1941 seconds
Rc oneshots service(s)
Rc bundles
All
You may need to add the networkmanager service manually, somehow it wasn't automatically installed.
# sudo pacman -S networkmanager networkmanager-s6rcserv networkmanager-s6serv
# sudo s6opts enable networkmanager (for next time you boot)
# sudo s6opts up networkmanager (for immidiate effect)