[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