Merge lp:~pitti/ubiquity/systemd into lp:ubiquity
| Status: | Merged |
|---|---|
| Merged at revision: | 6250 |
| Proposed branch: | lp:~pitti/ubiquity/systemd |
| Merge into: | lp:ubiquity |
| Diff against target: |
286 lines (+140/-76) 8 files modified
d-i/update-control (+1/-0) debian/changelog (+12/-0) debian/control (+1/-1) debian/oem-config.oem-config.service (+36/-0) debian/rules (+2/-0) debian/ubiquity.ubiquity.service (+10/-0) debian/ubiquity.ubiquity.upstart (+1/-75) scripts/start-ubiquity-dm (+77/-0) |
| To merge this branch: | bzr merge lp:~pitti/ubiquity/systemd |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Ubuntu Installer Team | 2015-01-15 | Pending | |
|
Review via email:
|
|||
Description of the Change
Port to systemd. For ubiquity-dm I factorized the script as almost all of it is re-usable. For oem-config.service I replicated the necessary shell logic as most of upstart's one can be replaced with systemd directives like Condition=*.
I tested this on today's live image, with upgrading to udisks2 2.1.4-1git3 (for bug 1410851), otherwise ubiquity can't start. I used "init=/bin/systemd
break=casper-
ensured that in ubiquity-only mode ubiquity-dm comes up properly. I did a full test install, and aside from having to work around bug 1408495 the install went fine.
I also tested oem-config by installing systemd-sysv and the local oem-config
debs, rebooted, ran oem-config-prepare, and ran through it.
I didn't test oem-config-debconf, as I currently don't know how. Ubuntu, Kubuntu etc. don't have alternates any more, server's OEM mode doesn't work (just filed bug 1411124), and Mythbuntu etc. don't have vivid images. I tried to install oem-config on a server install, but that brings in tons of desktop/graphical packages, thus I believe that oem-config isn't actually meant for text mode, and that the debconf frontend is just for preseeding?
However, I believe it's not necessary to port oem-config-
| Dimitri John Ledkov (xnox) wrote : | # |
| Martin Pitt (pitti) wrote : | # |
> Doesn't ubiquity job need "SuccessExitSta
I wouldn't like to do that. The cases are either when the script has a bug, or if the "something more serious has happened, e.g. debconf locked?!" case is reached; in both cases I think it's desirable to call the unit "failed" and not paper over such things.
> To try server oem-config (which should work)
Ah, thanks, that seems to pull in a reasonable set of packages. I did that plus create an "oem" user, ran sudo oem-config-prepare, and now get the debconf stuff. I'll test that with systemd.
| Martin Pitt (pitti) wrote : | # |
I tested oem-config text mode: Under upstart I do see the initial debconf screen, but the keyboard is completely dead. Perhaps because the job is running on its own private PTY? Under systemd, oem-config runs noninteractively due to a lot of "Inappropriate ioctl for device" and purges itself, but of you don't see anything because there's no PTY at all.
So the text mode debconf has to get wired in differently; presumably there are a few TTY* options missing, otherwise it won't get a terminal at all.
| Martin Pitt (pitti) wrote : | # |
I adjusted the unit now to grab and use a proper TTY, and stop the getty. This now works well, I went through all the dialogs, verified that my user got created, the locale changed, openssh installed, and oem-config got purged. Another reboot after that also worked as expected.


Doesn't ubiquity job need "SuccessExitSta tus=1" -> to port "normal exit 0 1" from upstart?
oem-config/ubiquity is a pain to install direct - as usually the wrong type of frontend is pulled in. To try server oem-config (which should work) could you attempt something like: frontend- debconf oem-config-debconf oem-config
$ sudo apt-get install ubiquity-
We had server oem-config bugs before and i thought we fixed them up for trusty srus or some such. Let me look at the bug you filed.