Bug 780469

Summary: zypper dup from 12.1 to 12.2 gives non working desktop because sysvinit is still the init system
Product: [openSUSE] openSUSE 12.2 Reporter: James Bottomley <James.Bottomley>
Component: BasesystemAssignee: Stephan Kulow <coolo>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: David, lnussel, meissner
Version: Final   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 12.2   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description James Bottomley 2012-09-14 12:48:02 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0

Apparently, because a lot of functionality was taken out of udev and placed into systemd, sysvinit can no longer work properly in openSUSE 12.2.  This caused a complete desktop device failure after my zypper dup upgrade from 12.1 to 12.2 because sysvinit was still the default init system and the consolekit acl changes needed for things like sound and bluetooth no longer happen (because systemd now does them) so those services just end up being non functional.

I upgraded to systemd (with zypper update systemd-sysvinit, which causes it to deinstall sysvinit) and everything is now working, but there should be some way of getting this to happen automatically on upgrade



Reproducible: Always

Steps to Reproduce:
1.
2.
3.



I'd guess this is pretty serious for upgrade because it means everyone upgrading from 12.1 with sysvinit now finds their desktop is broken and doesn't know how to fix it.  If it can't be fixed quickly, it does need documenting.
Comment 1 Marcus Meissner 2012-09-15 08:00:26 UTC
sysvinit is actually supposed to work still. there might be some other hickup.
Comment 2 James Bottomley 2012-09-15 08:17:34 UTC
(In reply to comment #1)
> sysvinit is actually supposed to work still. there might be some other hickup.

I'm afraid I don't think it can without downgrading from udev-182.  The problem is that in udev-182, udev-acl has been removed.  This is the piece of udev consolekit uses to add acls for desktop users to get access to all their peripherals and devices.  Equivalent functionality is present in systemd.  When udev-acl was removed we were told that equivalent functionality would be added to consolekit (which would enable non-systemd booting systems to continue to function), but that never materialised.

The net result is that when any distribution goes to udev-182 or beyond, it is forced to use systemd as its init system.
Comment 3 Ludwig Nussel 2012-09-17 07:12:10 UTC
when you installed 12.1 or upgraded to it the default already was systemd. You deliberately installed sysvinit so zypper dup won't revert that. Feel free to add a note about that behavior to the upgrade page though (http://en.opensuse.org/Upgrade).

wrt udev-acl see bug 769570
Comment 4 James Bottomley 2012-09-17 07:35:12 UTC
(In reply to comment #3)
> when you installed 12.1 or upgraded to it the default already was systemd. You
> deliberately installed sysvinit so zypper dup won't revert that.

Don't be silly.  12.1 was upgraded from 11.3 (and so before).  Since sysvinit was the default in 11.3, upgrade to 12.1 didn't alter that.  This is how I got 12.2 with sysvinit and, since upgrade is a fairly common path for the install base, it's how most people will get into this situation.

Even if the user chooses to install sysvinit in 12.2, it's still wrong to offer a choice of an init system that can no longer work.

Either way this is a bug that needs resolving.
Comment 5 Michael Andres 2012-09-17 11:29:05 UTC
MO this has to be solved on package dependency level.

Coolo: If the above is true, systemd should probably replace sysvinit and it's dependencies should express this.
Comment 6 Stephan Kulow 2013-02-06 17:32:51 UTC
aaa_base conflicts with sysvinit, so sysvinit is gone