Merge lp:~xnox/ubuntu/utopic/upstart/core-split into lp:ubuntu/utopic/upstart

Proposed by Dimitri John Ledkov
Status: Merged
Merged at revision: 1581
Proposed branch: lp:~xnox/ubuntu/utopic/upstart/core-split
Merge into: lp:ubuntu/utopic/upstart
Diff against target: 266 lines (+113/-38)
13 files modified
debian/changelog (+6/-0)
debian/control (+24/-7)
debian/rules (+8/-16)
debian/upstart-bin.dirs (+0/-1)
debian/upstart-bin.install (+33/-10)
debian/upstart-dconf-bridge.install (+2/-0)
debian/upstart-dconf-bridge.manpages (+0/-2)
debian/upstart-monitor.install (+2/-0)
debian/upstart-monitor.manpages (+0/-1)
debian/upstart.dirs (+1/-0)
debian/upstart.install (+33/-0)
debian/upstart.links (+3/-0)
debian/xsession.d/99upstart (+1/-1)
To merge this branch: bzr merge lp:~xnox/ubuntu/utopic/upstart/core-split
Reviewer Review Type Date Requested Status
Martin Pitt Approve
Steve Langasek Pending
Ubuntu branches Pending
Review via email: mp+229431@code.launchpad.net

Description of the change

Split upstart into upstart (/sbin/init provider) and upstart-core (all other binaries).

/sbin/reboot, shutdown, runlevel shipped in (upstart) package
/sbin/init (upstart) is a symlink to /sbin/upstart (upstart-core)
/sbin/telinit (upstart) is a symlink to /lib/sysvinit/telinit (upstart-core)

The "funny" location for telinit serves dual purpose. Not needed for session init, thus not on the path without upstart package installed, yet available in the default fallback location that systemctl is configure for such that when one is running upstart as pid 1 and installs systemd-sysvinit, systemctl will use upstart's telinit as a fallback when not booted with systemd.

To post a comment you must log in.
Revision history for this message
Martin Pitt (pitti) wrote :

Thanks for this! This will allow us to retain session upstart with systemd-sysv.

There are a few inline comments, and I believe this will move /etc/bash_completion.d/upstart and /etc/X11/Xsession.d/{00,99}upstart to the new upstart-core binary. Thus this needs some dpkg-maintscript-helper bits for the maintainer files for upgrades.

/etc/logrotate.d/upstart and /etc/dbus-1/system.d/Upstart.conf should remain in "upstart" itself, thus don't require a transition. This should be fixed in the *.install files.

review: Needs Fixing
Revision history for this message
Steve Langasek (vorlon) wrote :

On Mon, Aug 04, 2014 at 11:09:45AM -0000, Martin Pitt wrote:
> Review: Needs Fixing
>
> Thanks for this! This will allow us to retain session upstart with systemd-sysv.
>
> There are a few inline comments, and I believe this will move
> /etc/bash_completion.d/upstart and /etc/X11/Xsession.d/{00,99}upstart to
> the new upstart-core binary. Thus this needs some dpkg-maintscript-helper
> bits for the maintainer files for upgrades.

Moving a conffile between packages does not require maintscript-helper
handling, only moving a conffile to a different path on disk. Moving it
between packages only requires the use of Replaces:.

--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
<email address hidden> <email address hidden>

1588. By Dimitri John Ledkov

Split upstart package into upstart & upstart-core. (LP: #1351306)

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

No dpkg-maintscripts-helper bits are needed, as no conffiles are renamed nor removed. For conffiles that are taken over by the new package, they are correctly become owned by the new package. (Can be verified with "dpkg --status upstart-core" for example).

Should system upstart jobs be shipped in upstart or upstart-core? If shipped in "upstart-core", one will have ability to boot system with "init=/sbin/upstart", similarly how it's currently done with systemd package. At the moment I ship system upstart jobs in upstart.

Fixed logrotate & dbus files. Fixed cron file to keep "upstart" name.

1589. By Dimitri John Ledkov

Fix cron name.

1590. By Dimitri John Ledkov

Use upstart-bin, not -core name.

Revision history for this message
Martin Pitt (pitti) wrote :

Ah, thanks for the conffile heads-up. I seem to remember that changed conffiles cause dpkg conffile prompts if they don't get migrated properly (in all times that I looked at moving conffiles I had to add dpkg-maintscript-helper), but if you tested that changed conffiles are being handled correctly now, that's fine.

I built the branch and did a binary debdiff review:

The manpages for init, telinit, restart etc. went to -bin, but I believe they should stay in "upstart" to avoid a potential conflict?

/var/log/upstart/ should also stay in "upstart".

One emergent issue for renaming the apport hook (see inline comment).

Otherwise, LGTM.

review: Needs Fixing
1591. By Dimitri John Ledkov

Reshuffle system-init binaries and manpages.

1592. By Dimitri John Ledkov

Make apport hook operate on source.

1593. By Dimitri John Ledkov

Make user session execute upstart, not init.

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Reshuffled manpages & binaries, et.al.

Revision history for this message
Martin Pitt (pitti) wrote :

Thanks for the fixes!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2014-07-28 10:23:11 +0000
3+++ debian/changelog 2014-08-04 15:04:41 +0000
4@@ -1,3 +1,9 @@
5+upstart (1.13.1-0ubuntu3) UNRELEASED; urgency=medium
6+
7+ * Split upstart package into upstart & upstart-bin. (LP: #1351306)
8+
9+ -- Dimitri John Ledkov <xnox@ubuntu.com> Sun, 03 Aug 2014 18:28:09 +0100
10+
11 upstart (1.13.1-0ubuntu2) utopic; urgency=medium
12
13 * Cherry-pick cgmanager text fix from upstream.
14
15=== modified file 'debian/control'
16--- debian/control 2014-06-05 18:04:53 +0000
17+++ debian/control 2014-08-04 15:04:41 +0000
18@@ -15,17 +15,34 @@
19
20 Package: upstart
21 Architecture: any
22-Depends: ${shlibs:Depends}, ${misc:Depends}, sysvinit-utils, initscripts, mountall, ifupdown (>= 0.6.10ubuntu5), libjson0 (>= 0.10-1.1ubuntu1), debianutils (>= 4)
23+Depends: upstart-bin (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, sysvinit-utils, initscripts, mountall, ifupdown (>= 0.6.10ubuntu5), libjson0 (>= 0.10-1.1ubuntu1), debianutils (>= 4)
24 Suggests: python3, graphviz, bash-completion, upstart-monitor
25 Replaces: upstart-job, sysvinit, upstart-compat-sysv, startup-tasks, system-services
26 Conflicts: upstart-job, sysvinit, upstart-compat-sysv, startup-tasks, system-services, lxcguest
27 Provides: upstart-job, upstart-compat-sysv, startup-tasks, system-services
28-Breaks: libc6 (<< 2.12.1-0ubuntu12), friendly-recovery (<< 0.2.13)
29-Multi-Arch: foreign
30-Description: event-based init daemon
31- upstart is a replacement for the /sbin/init daemon which handles
32- starting of tasks and services during boot, stopping them during
33- shutdown and supervising them while the system is running.
34+Breaks: libc6 (<< 2.12.1-0ubuntu12), friendly-recovery (<< 0.2.13), initramfs-tools (<< 0.103ubuntu8)
35+Multi-Arch: foreign
36+Description: event-based init daemon - sysv compat
37+ upstart is a replacement for the /sbin/init daemon which handles
38+ starting of tasks and services during boot, stopping them during
39+ shutdown and supervising them while the system is running.
40+ .
41+ This package provides sysv compatible binaries.
42+
43+Package: upstart-bin
44+Architecture: any
45+Depends: ${shlibs:Depends}, ${misc:Depends}, sysvinit-utils, initscripts, libjson0 (>= 0.10-1.1ubuntu1), debianutils (>= 4)
46+Suggests: python3, graphviz, bash-completion, upstart-monitor
47+Replaces: upstart (<= 1.13.1-0ubuntu2)
48+Breaks: upstart (<= 1.13.1-0ubuntu2)
49+Multi-Arch: foreign
50+Description: event-based init daemon - essential binaries
51+ upstart is a replacement for the /sbin/init daemon which handles
52+ starting of tasks and services during boot, stopping them during
53+ shutdown and supervising them while the system is running.
54+ .
55+ This package provides all essential upstart components, sufficient
56+ for running user sessions managed by upstart.
57
58 Package: upstart-monitor
59 Architecture: all
60
61=== modified file 'debian/rules'
62--- debian/rules 2013-11-30 07:02:51 +0000
63+++ debian/rules 2014-08-04 15:04:41 +0000
64@@ -19,7 +19,8 @@
65
66 override_dh_auto_configure:
67 dh_auto_configure -- --exec-prefix= --enable-selinux \
68- --disable-silent-rules --disable-abi-check
69+ --disable-silent-rules --disable-abi-check \
70+ --program-transform-name="s/^init$$/upstart/"
71
72 override_dh_auto_build:
73 dh_auto_build --parallel
74@@ -47,21 +48,12 @@
75 # Remove the appropriate dconf files from the upstart package - they
76 # will be added used by the upstart-dconf-bridge.install file.
77 override_dh_install:
78- dh_install
79- install -m 644 debian/upstart.apport \
80- debian/upstart/usr/share/apport/package-hooks/upstart.py
81- rm debian/upstart/sbin/upstart-dconf-bridge
82- rm debian/upstart/usr/share/upstart/sessions/upstart-dconf-bridge.conf
83+ dh_install --list-missing
84+ install -m 644 debian/upstart-bin.apport \
85+ debian/upstart-bin/usr/share/apport/package-hooks/source_upstart.py
86+ rm debian/upstart-bin/usr/share/upstart/sessions/upstart-dconf-bridge.conf
87 rm debian/upstart/etc/init/upstart-event-bridge.conf
88 rm debian/upstart/etc/init/upstart-dbus-bridge.conf
89
90-# Remove the following man pages from the upstart package; they will be
91-# added to the upstart-monitor and upstart-dconf-bridge packages via
92-# their .manpages files, but removing the files here is simpler than
93-# specifying every other section 8 manpage in the upstart packages
94-# .manpages file.
95-override_dh_installman:
96- dh_installman
97- rm debian/upstart/usr/share/man/man8/upstart-monitor.8*
98- rm debian/upstart/usr/share/man/man8/upstart-dconf-bridge.8*
99- rm debian/upstart/usr/share/man/man7/dconf-event.7*
100+override_dh_installcron:
101+ dh_installcron -p upstart-bin --name upstart
102
103=== renamed file 'debian/upstart.apport' => 'debian/upstart-bin.apport'
104=== renamed file 'debian/upstart.bash-completion' => 'debian/upstart-bin.bash-completion'
105=== renamed file 'debian/upstart.dirs' => 'debian/upstart-bin.dirs'
106--- debian/upstart.dirs 2013-11-30 07:02:51 +0000
107+++ debian/upstart-bin.dirs 2014-08-04 15:04:41 +0000
108@@ -1,2 +1,1 @@
109-var/log/upstart
110 usr/share/apport/package-hooks
111
112=== renamed file 'debian/upstart.docs' => 'debian/upstart-bin.docs'
113=== renamed file 'debian/upstart.install' => 'debian/upstart-bin.install'
114--- debian/upstart.install 2014-05-27 14:14:59 +0000
115+++ debian/upstart-bin.install 2014-08-04 15:04:41 +0000
116@@ -1,17 +1,40 @@
117-debian/conf/*.conf etc/init/
118-etc/init/*.conf
119-etc/dbus-1/system.d/Upstart.conf
120 bin/init-checkconf usr/bin/
121 bin/initctl2dot usr/bin/
122-sbin/*
123-debian/upstart-job lib/init/
124-debian/apparmor-profile-load lib/init/
125-debian/migrate-inittab.pl usr/lib/upstart/
126+sbin/initctl
127+sbin/telinit lib/sysvinit/
128+sbin/reload
129+sbin/restart
130+sbin/start
131+sbin/status
132+sbin/stop
133+sbin/upstart
134+sbin/upstart-dbus-bridge
135+sbin/upstart-event-bridge
136+sbin/upstart-file-bridge
137 debian/running-in-container bin/
138 usr/share/upstart/sessions/*
139 debian/user-conf/*.conf usr/share/upstart/sessions/
140 debian/xsession.d/* etc/X11/Xsession.d/
141 debian/upstart-xsessions etc/
142-usr/share/man/man5/*
143-usr/share/man/man7/*
144-usr/share/man/man8/*
145+usr/share/man/man7/upstart.7
146+usr/share/man/man7/starting.7
147+usr/share/man/man7/stopping.7
148+usr/share/man/man7/dbus-event.7
149+usr/share/man/man7/session-end.7
150+usr/share/man/man7/file-event.7
151+usr/share/man/man7/startup.7
152+usr/share/man/man7/started.7
153+usr/share/man/man7/stopped.7
154+usr/share/man/man8/upstart-event-bridge.8
155+usr/share/man/man8/init-checkconf.8
156+usr/share/man/man8/upstart.8
157+usr/share/man/man8/upstart-file-bridge.8
158+usr/share/man/man8/upstart-dbus-bridge.8
159+usr/share/man/man8/initctl2dot.8
160+usr/share/man/man8/initctl.8
161+usr/share/man/man5/upstart.5
162+usr/share/man/man8/start.8
163+usr/share/man/man8/restart.8
164+usr/share/man/man8/status.8
165+usr/share/man/man8/stop.8
166+usr/share/man/man8/reload.8
167
168=== renamed file 'debian/upstart.maintscript' => 'debian/upstart-bin.maintscript'
169=== renamed file 'debian/upstart.manpages' => 'debian/upstart-bin.manpages'
170=== renamed file 'debian/upstart.postinst' => 'debian/upstart-bin.postinst'
171=== renamed file 'debian/upstart.cron.daily' => 'debian/upstart-bin.upstart.cron.daily'
172=== modified file 'debian/upstart-dconf-bridge.install'
173--- debian/upstart-dconf-bridge.install 2013-08-27 14:28:44 +0000
174+++ debian/upstart-dconf-bridge.install 2014-08-04 15:04:41 +0000
175@@ -1,2 +1,4 @@
176 sbin/upstart-dconf-bridge
177 usr/share/upstart/sessions/upstart-dconf-bridge.conf
178+usr/share/man/man8/upstart-dconf-bridge.8
179+usr/share/man/man7/dconf-event.7
180
181=== removed file 'debian/upstart-dconf-bridge.manpages'
182--- debian/upstart-dconf-bridge.manpages 2013-08-27 14:28:44 +0000
183+++ debian/upstart-dconf-bridge.manpages 1970-01-01 00:00:00 +0000
184@@ -1,2 +0,0 @@
185-debian/tmp/usr/share/man/man8/upstart-dconf-bridge.8
186-debian/tmp/usr/share/man/man7/dconf-event.7
187
188=== modified file 'debian/upstart-monitor.install'
189--- debian/upstart-monitor.install 2013-03-25 13:54:54 +0000
190+++ debian/upstart-monitor.install 2014-08-04 15:04:41 +0000
191@@ -1,3 +1,5 @@
192 bin/upstart-monitor usr/bin/
193 usr/share/icons/hicolor/scalable/apps/upstart-monitor.svg
194 usr/share/applications/upstart-monitor.desktop
195+usr/share/man/man8/upstart-monitor.8
196+usr/share/upstart/icons/upstart-monitor.svg
197
198=== removed file 'debian/upstart-monitor.manpages'
199--- debian/upstart-monitor.manpages 2013-03-25 13:54:54 +0000
200+++ debian/upstart-monitor.manpages 1970-01-01 00:00:00 +0000
201@@ -1,1 +0,0 @@
202-debian/tmp/usr/share/man/man8/upstart-monitor.8
203
204=== added file 'debian/upstart.dirs'
205--- debian/upstart.dirs 1970-01-01 00:00:00 +0000
206+++ debian/upstart.dirs 2014-08-04 15:04:41 +0000
207@@ -0,0 +1,1 @@
208+var/log/upstart
209
210=== added file 'debian/upstart.install'
211--- debian/upstart.install 1970-01-01 00:00:00 +0000
212+++ debian/upstart.install 2014-08-04 15:04:41 +0000
213@@ -0,0 +1,33 @@
214+debian/conf/*.conf etc/init/
215+etc/init/*.conf
216+etc/dbus-1/system.d/Upstart.conf
217+sbin/halt
218+sbin/poweroff
219+sbin/reboot
220+sbin/runlevel
221+sbin/shutdown
222+sbin/upstart-local-bridge
223+sbin/upstart-socket-bridge
224+sbin/upstart-udev-bridge
225+debian/upstart-job lib/init/
226+debian/apparmor-profile-load lib/init/
227+debian/migrate-inittab.pl usr/lib/upstart/
228+usr/share/man/man7/control-alt-delete.7
229+usr/share/man/man7/keyboard-request.7
230+usr/share/man/man7/runlevel.7
231+usr/share/man/man7/socket-event.7
232+usr/share/man/man7/power-status-changed.7
233+usr/share/man/man8/shutdown.8
234+usr/share/man/man8/upstart-local-bridge.8
235+usr/share/man/man8/upstart-udev-bridge.8
236+usr/share/man/man8/runlevel.8
237+usr/share/man/man8/reboot.8
238+usr/share/man/man8/upstart-socket-bridge.8
239+usr/share/man/man8/telinit.8
240+usr/share/man/man5/inittab.5
241+usr/share/man/man7/net-device-added.7
242+usr/share/man/man7/drm-device-added.7
243+usr/share/man/man7/graphics-device-added.7
244+usr/share/man/man7/net-device-removed.7
245+usr/share/man/man8/poweroff.8
246+usr/share/man/man8/halt.8
247
248=== added file 'debian/upstart.links'
249--- debian/upstart.links 1970-01-01 00:00:00 +0000
250+++ debian/upstart.links 2014-08-04 15:04:41 +0000
251@@ -0,0 +1,3 @@
252+sbin/upstart sbin/init
253+lib/sysvinit/telinit sbin/telinit
254+usr/share/man/man5/upstart.5.gz usr/share/man/man5/init.5.gz
255
256=== modified file 'debian/xsession.d/99upstart'
257--- debian/xsession.d/99upstart 2013-05-31 21:13:11 +0000
258+++ debian/xsession.d/99upstart 2014-08-04 15:04:41 +0000
259@@ -9,6 +9,6 @@
260 ;;
261 esac
262
263- STARTUP="init --user"
264+ STARTUP="upstart --user"
265 unset UPSTART
266 fi

Subscribers

People subscribed via source and target branches