Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
Posted Feb 15, 2014 22:23 UTC (Sat) by mdeslaur (subscriber, #55004)In reply to: Shuttleworth: Losing graciously by jspaleta
Parent article: Shuttleworth: Losing graciously
Anyone can stick systemd in a PPA. It's not the package that is the problem, it's everything else around it. There's a massive amount of integration work required to make it work, and none of that is suitable for an LTS release. Our users expect the LTS releases to be rock solid.
Just wait until the next release or so, it will likely be available in the archive as a preview with some of the integration work done.
Posted Feb 15, 2014 22:49 UTC (Sat)
by jspaleta (subscriber, #50639)
[Link] (13 responses)
https://launchpad.net/ubuntu/trusty/+source/systemd/204-5...
The only thing that is keeping systemd from being a viable non-default alternative init for Ubuntu users to _choose_ to use are Ubuntu specific policies and patched applied on top of the merged debian package that neuter systemd as an installable alt init. The Debian maintainers did the work to make it possible to install systemd safely and then choose to enable it and use it. Ubuntu as a derivative undid that work with a set of patches. Didn't have to be this way. In fact that's incredibly short sighted given the possible future where Debian adopts systemd as a default.
And I might add that Ubuntu specifically targetted systemd to neuter as an alterative init. minit sits happily in universe and can be installed without disrupting the system.
And I am not being overly dramatic. This is the unfortunate reality where Ubuntu's past short-sighted and myopic release managing decisions have created problems for itself by throwing away the benefits of the work Debian is doing to provide a sane approach to alternative init packaging. And its just well... ironic...exactly like "... a free ride when you've already paid..." in fact. Just like "... good advice that you just can't take...". Indeed "...who would have thought that it figured?" Oh wait.. me. I thought that.
-jef
Posted Feb 16, 2014 0:17 UTC (Sun)
by mdeslaur (subscriber, #55004)
[Link] (12 responses)
> systemd could be installable and user selectable just like in Debian right now...way ahead of the Ubuntu freeze.
Sure, if someone did all the integration work necessary to make it installable and user selectable. So you're saying we should have had engineers working on this, just _in case_ we switched to systemd at some point? As I've said before, having it packaged is just a small part of the issue, and having a package in universe that basically renders your system unbootable upon installation wouldn't have been a good idea.
> if that Debian vote had happenend in November, could the Ubuntu packaging patchset have been modified in time to get systemd packaging back to what it looks like in Debian and have systemd be installable as an alternative init side-by-side with upstart?
No. The packaging is trivial. Making the system boot is not. Ubuntu boot relies mostly on Upstart jobs, there are no sysv init scripts there to boot off of unlike Debian.
> time to undo the craptastic Ubuntu patches for the systmd packaging that disfigure the work done by the Debian maintainers
This is just insulting. The patches exist to make GNOME usable with Upstart since it depends on logind. Debian simply forces the user to install systemd if they want to use GNOME.
> The only thing that is keeping systemd from being a viable non-default alternative init for Ubuntu users to _choose_ to use are Ubuntu specific policies and patched applied on top of the merged debian package that neuter systemd as an installable alt init.
No, you don't understand the issues at all.
> And I might add that Ubuntu specifically targetted systemd to neuter as an alterative init. minit sits happily in universe and can be installed without disrupting the system.
Have you actually tried booting Ubuntu with minit instead of Upstart? :)
> And I am not being overly dramatic.
Yes, you are. Systemd will be available in a next Ubuntu release. Patience.
> This is the unfortunate reality where Ubuntu's past short-sighted and myopic release managing decisions have created problems for itself by throwing away the benefits of the work Debian is doing to provide a sane approach to alternative init packaging.
Once again, this is insulting. Debian didn't provide a sane approach that we could use, they simply forced systemd as a dependency to run GNOME.
Seriously, at least research stuff _a bit_ before you post uninformed opinions.
Posted Feb 16, 2014 0:41 UTC (Sun)
by Siosm (subscriber, #86882)
[Link]
How could an Ubuntu boot be so different from everybody else boot that it would require work not already done by other maintainers in other distributions?
The tedious work of porting all the init scripts to systemd service units has already been done. I really don't understand where work remains apart from testing that it actually work.
Posted Feb 16, 2014 1:12 UTC (Sun)
by jspaleta (subscriber, #50639)
[Link] (6 responses)
If Ubuntu didn't want to provide the systemd-sysvinit package which makes /sbin/init (and related) a symlink(s) to systemd's binary... that's reasonable.
But choosing explicitly to not give users the ability to even install the systemd binary to even play with it as an alternative using the kernel commandline arguments to choose the init... that's clearly a punitive decision meant to keep Ubuntu users from having the option. Having the systemd binary on disk in no way impacts the ability to provide a rock solid default experience at all...for any release...whether it be an lts or not.
However, splitting out the systemd-services package as a new binary package in Ubuntu instead of providing the systemd package and then deliberately leaving out several binaries under /lib/systemd/ was unwarrented by any technical reason whatsoever. When Ubuntu introduced systemd-shim in Ubuntu they should have figured out how to use the packaging system correctly for shim and systemd to be parallel installable or have the packages conflict instead of preferentially maiming the systemd implementation as packaged to force a preference for shim. I mean,holy crap man, there is a whole alternative system already in place to handle the complexity of this sort of parallel installable replacement if a single packaging Conflict is deemed unworkable. Delibrately ripping out bits of competing implementations from inside well constrained directory namespaces inside packaging is a horrible horrible hack and terrible packaging management policy. Terrible. Just yuck. If -shim as a fork of the code base needs to be installable.. then fracking namespace it as a fork and treat it as a fork and make the fracking competing implementations conflict at the packaging level.
But now that Ubuntu maintainers have _finally_ deemed it worthwhile to get shim into Debian, the Debian maintainer collaboration will sort out how best to support -shim as an alternative without horribly maiming systemd packaging in the process of making a space for shim. You know, the hard integration work Ubuntu punted on actually doing when introducing -shim. And Ubuntu will _eventually_ get to benefit from that much better packaging work. It's really a shame that Canonical doesn't make it a policy to push changes into Debian first and benefit from clean merges as a way to minimize exact this sort of thing from happening as was seen with -shim.
And I have to say the accusation that I'm not doing research rankles a bit. I've probably done more research than anyone in this discussion (other than the systemd developers who I'm sure have a much better understanding of init systems outside of linux than I do currently). But there's always more research to do. Until I get greenlighted for the Google neural implant, I expect there will be gaps in my knowledge. Please, if you would be so kind as to provide me some pointers to material to read up on that would give me a better understanding of the technical issues in the decision which necessitated explicitly removing /lib/systemd/systemd and /bin/systemd from the deb packaging in Ubuntu as inherited from Debian when Ubuntu decided to disembowel the Debian packaging for systemd.
Posted Feb 16, 2014 22:37 UTC (Sun)
by rgmoore (✭ supporter ✭, #75)
[Link] (5 responses)
That seems like an excessively strong claim. It's clearly an attempt to prevent users from using systemd at all, but it can equally easily be explained as an attempt to avoid support problems. One of the roles of distributions is to make choices about the system they're going to provide and support, and Ubuntu has frequently come down on the side of restricting user choice to make the system more coherent and easier to support. Refusing to provide a choice of init systems- a choice that is largely invisible to the user but has the potential to make the system harder to support- seems like a perfectly legitimate move, especially for a LTS release.
Posted Feb 16, 2014 22:46 UTC (Sun)
by jspaleta (subscriber, #50639)
[Link] (4 responses)
Ubuntu does not have a policy with regard to limiting choice in inits. Ubuntu made a set of technical decisions to explicitly cripple systemd packaging by undoing integration work Debian maintainers had already done and by delibrately choosing to keep the systemd init binary out of the packaging payload.
They did not so neuter minit packaging by removing functioning binaries from that package. Users can install minit as packaged, and then reconfigure their system to use minit as an alternative init system. The choices made for the systemd packaging very delibrately make it impossible for users to experiment with systemd on Ubuntu using provided packaging. It is easier to get Ubuntu booting up using minit than systemd at present only because of the packaging choices ubuntu maintainers made to cripple systemd entirely as an option.
Posted Feb 17, 2014 20:37 UTC (Mon)
by foom (subscriber, #14868)
[Link]
Minit is only present in Ubuntu ("universe") because it was brought over by virtue of being in Debian; ubuntu copies packages from debian by default, when there's not an explicit reason to change them. I'll bet that nobody has actually ever used minit on Ubuntu.
On the other hand, parts of systemd are necessary for a functional desktop on Ubuntu, and it needed to be modified. Given that, why SHOULD they include an untested, known-to-not-work init system along for the ride with the pieces they needed?
There is no hope of systemd pid1 actually working on Ubuntu as is (due to the native upstart jobs taking overĀ from sysvinit scripts for some critical services); given that, it really doesn't matter if the systemd binary package is easily available or not...If some user is technically inclined enough to be able to patch the system boot process to work with systemd init in Ubuntu, recompiling systemd while you're at it is certainly not a real impediment.
Posted Feb 24, 2014 21:31 UTC (Mon)
by cas (guest, #52554)
[Link] (2 responses)
more likely, the ubuntu devs had a similar reaction to what I had when I realised that a routine apt-get dist-upgrade in debian sid a few months back was not only going to upgrade gnome and everything else, it was going to install systemd. my reaction was "fuck that, apt-get purge gnome". i had switched to XFCE long ago (after giving up on gnome3) and was only keeping gnome installed so that I could check it out every so often - see if gnome 3 had improved to the point of usability yet. i won't be doing that any more. upgrading a desktop environment or a window manager or whatever should not force a major change in the machine's init - a switch in init systems should only happen after a deliberate, conscious choice by the system admin....not as a side-effect of some other upgrade.
Posted Feb 24, 2014 22:05 UTC (Mon)
by jspaleta (subscriber, #50639)
[Link]
Unfortunately Ubuntu's knee-jerk, irrational approach to forking and maiming the systemd packaging was not and is not a sustainable technical solution to the problem. It was and is a terrible packaging hack.
The better approach, is to stand up the alternative implementation of logind which will work without systemd as PID=1 (even if its a fork of systemd originally) as a new package in the repository, with payloads designed not to interfere or overwrite systemd namespaced files.
I'm sure Debian will figure out how to adequately package multiple implementations of the logind service provider in a way that lets users use the implementation that works best for the init system they are running. As soon as multiple logind implementation exists....that is. So far there's isn't a second implementation to package, as the existing Ubuntu "solution" cannot be adopted by Debian, without significant rework.
Posted Feb 24, 2014 22:30 UTC (Mon)
by nybble41 (subscriber, #55106)
[Link]
Posted Feb 16, 2014 1:34 UTC (Sun)
by jspaleta (subscriber, #50639)
[Link] (3 responses)
My understanding is the exact opposite. Most of the installable services in Ubuntu are still controlled by sysvinit scripts and have not "gone native" and picked up a unit file in their packaging. What has gone upstart native is early boot for required services up to mounting and a very narrow set of services that make up the very narrowly defined desktop boot configuration for the Ubuntu desktop default (and not even everything one could consider desktop relevant either).
But please, prove me wrong. Can you provide me with a full list of packages in the Ubuntu repository which drop files into /etc/init/ as compared to the full list of packages which drop files into /etc/init.d/ so we can make an accurate judgement as to where upstart native unit file adoption actually stands.
Posted Feb 16, 2014 3:29 UTC (Sun)
by cesarb (subscriber, #6266)
[Link] (1 responses)
That's actually quite easy.
http://archive.ubuntu.com/ubuntu/dists/precise/Contents-a...
That's the full list for the latest 64-bit Ubuntu LTS, in plain text. Just search for ^etc/init within it. Similar lists can be found for 32-bit and other Ubuntu releases.
Posted Feb 16, 2014 13:48 UTC (Sun)
by Darkmere (subscriber, #53695)
[Link]
Posted Feb 21, 2014 15:35 UTC (Fri)
by cdmiller (guest, #2813)
[Link]
acpid -> /lib/init/upstart-job
Now stuff not linked to /etc/init:
bootlogd
Other server appear follow suit, so in the current LTS (12.04) more central system stuff with Upstart support than application daemons (apache, nginx, ssh, samba, openldap, ...). The same can be said of the older LTS 10.04.
Shuttleworth: Losing graciously
systemd could be installable and user selectable just like in Debian right now...way ahead of the Ubuntu freeze.
That changelog for dec 2013 is fantastic. Again...if that Debian vote had happenend in November, could the Ubuntu packaging patchset have been modified in time to get systemd packaging back to what it looks like in Debian and have systemd be installable as an alternative init side-by-side with upstart? I think there would be. I mean hell man, we are talking about cramming in cgmanager into the LTS and it didn't even exist as a codebase publicly until after the fall vUDS discussion. C'mon. If there's enough time to shoehorn the "unstable and undocumented" cgmanager into the "rock solid LTS release" then there's time to undo the craptastic Ubuntu patches for the systmd packaging that disfigure the work done by the Debian maintainers.
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
But choosing explicitly to not give users the ability to even install the systemd binary to even play with it as an alternative using the kernel commandline arguments to choose the init... that's clearly a punitive decision meant to keep Ubuntu users from having the option.
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
Ubuntu does not have a policy with regard to limiting choice in inits. Ubuntu made a set of technical decisions to explicitly cripple systemd packaging by undoing integration work Debian maintainers had already done and by delibrately choosing to keep the systemd init binary out of the packaging payload.
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
Shuttleworth: Losing graciously
143 unique packages install into /etc/init/
1103 install into /etc/init.d/
124 packages install into both /etc/init and /etc/init.d
Shuttleworth: Losing graciously
atd -> /lib/init/upstart-job
console-setup -> /lib/init/upstart-job
cron -> /lib/init/upstart-job
dmesg -> /lib/init/upstart-job
hostname -> /lib/init/upstart-job
hwclock -> /lib/init/upstart-job
hwclock-save -> /lib/init/upstart-job
module-init-tools -> /lib/init/upstart-job
network-interface -> /lib/init/upstart-job
network-interface-container -> /lib/init/upstart-job
network-interface-security -> /lib/init/upstart-job
passwd -> /lib/init/upstart-job
plymouth -> /lib/init/upstart-job
plymouth-log -> /lib/init/upstart-job
plymouth-ready -> /lib/init/upstart-job
plymouth-splash -> /lib/init/upstart-job
plymouth-stop -> /lib/init/upstart-job
plymouth-upstart-bridge -> /lib/init/upstart-job
procps -> /lib/init/upstart-job
resolvconf -> /lib/init/upstart-job
rsyslog -> /lib/init/upstart-job
setvtrgb -> /lib/init/upstart-job
udev -> /lib/init/upstart-job
udev-fallback-graphics -> /lib/init/upstart-job
udev-finish -> /lib/init/upstart-job
udevmonitor -> /lib/init/upstart-job
udevtrigger -> /lib/init/upstart-job
vsftpd -> /lib/init/upstart-job
xinetd -> /lib/init/upstart-job
grub-common
halt
killprocs
libnss-ldap
networking
nginx
ntp
ondemand
puppet
rc
rc.local
rcS
README
reboot
rsync
sendsigs
single
skeleton
ssh
stop-bootlogd
stop-bootlogd-single
sudo
umountfs
umountnfs.sh
umountroot
urandom
x11-common
