[Pkg-sysvinit-devel] Bug#385722: please consider splitting off sysvutils

Petter Reinholdtsen pere at hungry.com
Tue Sep 12 07:49:40 UTC 2006


I gave this another try, this time using version 2.86.ds1-21 both in
the changelog entry and in the replaces header, and upgrading from
version 2.86.ds1-21~1.  It failed.  Here is the error:

  # dpkg -i *-21*.deb
  [...]
  Unpacking sysvinit-utils (from sysvinit-utils_2.86.ds1-21_i386.deb ...
  Replacing files in old package sysvinit ...
  dpkg: regarding sysvinit_2.86.ds1-21_i386.deb containing sysvinit, pre-dependency problem:
   sysvinit pre-depends on sysvinit-utils
    sysvinit-utils is unpacked, but has never been configured.
  dpkg: error processing sysvinit_2.86.ds1-21_i386.deb (--install):
   pre-dependency problem - not installing sysvinit
  Setting up sysv-rc (2.86.ds1-21) ...
  [...]
  Errors were encountered while processing:
   sysvinit_2.86.ds1-21_i386.deb
  #

The problem was solved by running the dpkg -i call again, and this
time sysvinit found its predepend and dpkg was happy.

I fail to understand why dpkg isn't ordering the install in a way to
make sure sysvinit-utils are configured before sysvinit is installed,
but until I can be sure we do not run into problems with this split, I
will wait.  This is the patch I used this time, relative to the
current svn.

Index: debian/control
===================================================================
--- debian/control	(revisjon 912)
+++ debian/control	(arbeidskopi)
@@ -9,9 +9,7 @@
 Package: sysvinit
 Essential: yes
 Architecture: any
-Conflicts: last
-Replaces: last
-Pre-Depends: initscripts, sysv-rc (>= 2.86.ds1-1.2) | file-rc (>> 0.7.0)
+Pre-Depends: initscripts, sysv-rc (>= 2.86.ds1-1.2) | file-rc (>> 0.7.0), sysvinit-utils
 Depends: ${shlibs:Depends}
 Description: System-V-like init utilities
  This package contains programs required for booting
@@ -22,6 +20,18 @@
  to run as process number 1 until the system halts. All
  other processes are descended from it.
 
+Package: sysvinit-utils
+Essential: yes
+Architecture: any
+Conflicts: last
+Replaces: last, sysvinit (<< 2.86.ds1-21)
+Depends: ${shlibs:Depends}
+Description: System-V-like utilities
+ This package contains the important System-V-like utilities.
+ .
+ Specifically, this package includes:
+ killall5, last, lastb, mesg, pidof
+
 Package: sysv-rc
 Architecture: all
 Recommends: lsb-base (>= 3.0-6)
@@ -35,7 +45,7 @@
 
 Package: initscripts
 Architecture: any
-Depends: ${shlibs:Depends}, ${glibc:Depends}, ${mount:Depends}, e2fsprogs (>= 1.32+1.33-WIP-2003.04.14-1), debianutils (>= 2.13.1), lsb-base (>= 3.0-6)
+Depends: ${shlibs:Depends}, ${glibc:Depends}, ${mount:Depends}, e2fsprogs (>= 1.32+1.33-WIP-2003.04.14-1), debianutils (>= 2.13.1), lsb-base (>= 3.0-6), sysvinit-utils
 Conflicts: mdutils, sysv-rc (<< 2.86.ds1-1.2), sysvinit (<< 2.86.ds1-12)
 Replaces: mdutils, sysvinit (<< 2.85-12), libc6, libc6.1, libc0.1, libc0.3
 Description: Scripts for initializing and shutting down the system
Index: debian/changelog
===================================================================
--- debian/changelog	(revisjon 915)
+++ debian/changelog	(arbeidskopi)
@@ -1,4 +1,4 @@
-sysvinit (2.86.ds1-21~1) unstable; urgency=low
+sysvinit (2.86.ds1-21) unstable; urgency=low
 
   * Correct status report handling in umountnfs.sh.  Based on patch
     from Markus Schoder. (Closes: #386893)
@@ -20,6 +20,9 @@
   * Now that mtab is properly updated by mtab.sh before mountall.sh,
     there is no need to have special handling of proc file systems.
     Remove the code from mountall.sh. (Closes: #359651)
+  * Split killall5, last, lastb, mesg and pidof out of the sysvinit
+    package into a new sysvinit-utils package to make it easier to
+    replace sysvinit. (Closes: #385722)
 
  -- Petter Reinholdtsen <pere at debian.org>  Mon, 11 Sep 2006 00:44:44 +0200
 
Index: debian/rules
===================================================================
--- debian/rules	(revisjon 912)
+++ debian/rules	(arbeidskopi)
@@ -96,8 +96,22 @@
 	rm -f $(tmp)/sbin/halt
 	rm -f $(tmp)/sbin/reboot
 endif
+	rm -f $(tmp)/usr/share/man/man8/killall5.8
+	rm -f $(tmp)/usr/share/man/man1/last.1
+	rm -f $(tmp)/usr/share/man/man1/lastb.1
+	rm -f $(tmp)/usr/share/man/man1/mesg.1
+	rm -f $(tmp)/usr/share/man/man8/pidof.8
 	rm -f $(tmp)/usr/share/man/man1/mountpoint.1
+	rm -f $(tmp)/sbin/killall5
+	rm -f $(tmp)/usr/bin/last
+	rm -f $(tmp)/usr/bin/lastb
+	rm -f $(tmp)/usr/bin/mesg
+	rm -f $(tmp)/bin/pidof
 	rm -f $(tmp)/bin/mountpoint
+	rmdir $(tmp)/usr/share/man/man1
+	rmdir $(tmp)/usr/sbin
+	rmdir $(tmp)/usr/bin
+	rmdir $(tmp)/bin
 	gzip -9f $(tmp)/usr/share/man/man*/*.[0-9]
 	install -o root -g root -m 644 debian/copyright \
 	  $(tmp)$(doc)/sysvinit/copyright
@@ -108,6 +122,43 @@
 	dpkg --build $(tmp) ..
 	rm -rf $(tmp)
 	#
+	# sysvinit-utils package
+	#
+	-rm -rf $(tmp)
+	install -d -o root -g root -m 755 $(tmp)
+	install -d -o root -g root -m 755 $(tmp)/DEBIAN
+	install -d -o root -g root -m 755 $(tmp)$(doc)/sysvinit-utils
+	install -o root -g root -m 644 doc/Changelog \
+		$(tmp)$(doc)/sysvinit-utils/changelog
+	install -o root -g root -m 644 debian/changelog \
+		$(tmp)$(doc)/sysvinit-utils/changelog.Debian
+	gzip -9f $(tmp)$(doc)/sysvinit-utils/changelog*
+	install -d -o root -g root -m 755 $(tmp)/{bin,sbin,lib,usr}
+	install -d -o root -g root -m 755 $(tmp)/usr/bin
+	install -d -o root -g root -m 755 $(tmp)/usr/share/man
+	install -d -o root -g root -m 755 $(tmp)/usr/share/man/man{1,8}
+	install -o root -g root -m 755 src/killall5 $(tmp)/sbin
+	install -o root -g root -m 755 src/last $(tmp)/usr/bin
+	install -o root -g root -m 755 src/mesg $(tmp)/usr/bin
+	strip -s -R .comment $(tmp)/sbin/killall5
+	strip -s -R .comment $(tmp)/usr/bin/last
+	strip -s -R .comment $(tmp)/usr/bin/mesg
+	ln -sf ../sbin/killall5 $(tmp)/bin/pidof
+	ln -sf last $(tmp)/usr/bin/lastb
+	install -o root -g root -m 644 man/killall5.8 $(tmp)/usr/share/man/man8
+	install -o root -g root -m 644 man/last.1 $(tmp)/usr/share/man/man1
+	install -o root -g root -m 644 man/lastb.1 $(tmp)/usr/share/man/man1
+	install -o root -g root -m 644 man/mesg.1 $(tmp)/usr/share/man/man1
+	install -o root -g root -m 644 man/pidof.8 $(tmp)/usr/share/man/man8
+	gzip -9f $(tmp)/usr/share/man/man*/*.[0-9]
+	install -o root -g root -m 644 debian/copyright \
+	  $(tmp)$(doc)/sysvinit-utils/copyright
+	cat COPYRIGHT >> $(tmp)$(doc)/sysvinit-utils/copyright
+	dpkg-shlibdeps src/init
+	dpkg-gencontrol -psysvinit-utils -P$(tmp) -isp
+	dpkg --build $(tmp) ..
+	rm -rf $(tmp)
+	#
 	# initscripts package
 	#
 	-rm -rf $(tmp)




More information about the Pkg-sysvinit-devel mailing list