Bug#751029: Please split kpartx off from multipath-tools

Phillip Susi psusi at ubuntu.com
Mon Jun 9 17:47:02 UTC 2014


Package: src:multipath-tools
Version: 0.5.0-1
Tags: patch

Two years ago we made some changes to dmraid and multipath-tools in Ubuntu and I'd like to get them merged upstream.  The changes involve having dmraid disable its internal partition detection code, and rely instead on kpartx to activate partitions, since it understands gpt, but dmraid does not.  In the process of this, I noticed that there was a multipath-tools-boot package that you could use if you require the ability to boot from multipath, but there was no similar package for kpartx.  The attached patch creates a kpartx-boot and similar udeb packages so that those needing to boot from dmraid can install just kpartx without pulling in multipath-tools along with it.
-------------- next part --------------
=== modified file 'debian/changelog'
--- debian/changelog	2014-03-09 16:52:09 +0000
+++ debian/changelog	2014-06-09 17:10:19 +0000
@@ -1,3 +1,11 @@
+multipath-tools (0.5.0-2) unstable; urgency=low
+
+  * Split kpartx initramfs bits part of multipath-tools-boot
+    into kpartx-boot for dmraid
+  * Split kpartx out of multipth-tools-udeb into kpartx-udeb
+
+ -- Phillip Susi <psusi at ubuntu.com>  Mon, 09 Jun 2014 11:45:08 -0400
+
 multipath-tools (0.5.0-1) unstable; urgency=low
 
   * [955018b] Imported Upstream version 0.5.0

=== modified file 'debian/control'
--- debian/control	2014-03-09 16:52:09 +0000
+++ debian/control	2014-06-09 17:06:36 +0000
@@ -44,10 +44,16 @@
  Kpartx can be used to set up device mappings for the partitions of any
  partitioned block device. It is part of the Linux multipath-tools.
 
+Package: kpartx-boot
+Architecture: all
+Depends: ${misc:Depends}, initramfs-tools, kpartx (= ${source:Version})
+Description: Provides kpartx during boot
+ This package makes kpartx availible during boot to activate partitions
+
 Package: multipath-tools-boot
 Architecture: all
 Depends: ${misc:Depends}, initramfs-tools, 
- multipath-tools (>= ${source:Version}), multipath-tools (<< ${source:Version}.1~)
+ multipath-tools (= ${source:Version}), kpartx-boot (= ${source:Version})
 Replaces: multipath-tools-initramfs (<< 1.0.1+nmu1)
 Breaks: multipath-tools-initramfs (<< 1.0.1+nmu1)
 Description: Support booting from multipath devices
@@ -63,7 +69,7 @@
 Package: multipath-udeb
 Package-Type: udeb
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, multipath-modules
+Depends: ${shlibs:Depends}, ${misc:Depends}, multipath-modules, kpartx-udeb
 Section: debian-installer
 Description: maintain multipath block device access - udeb package
  This is a udeb, or a microdeb, for the debian-installer.
@@ -71,3 +77,14 @@
  These tools are in charge of maintaining the disk multipath device maps and
  react to path and map events.
 
+Package: kpartx-udeb
+Package-Type: udeb
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Section: debian-installer
+Description: create device mappings for partitions - udeb package
+ This is a udeb, or a microdeb, for the debian-installer.
+ .
+Kpartx can be used to set up device mappings for the partitions of any
+partitioned block device. It is part of the Linux multipath-tools.
+

=== modified file 'debian/initramfs/hooks'
--- debian/initramfs/hooks	2011-03-05 03:22:32 +0000
+++ debian/initramfs/hooks	2014-06-09 15:57:28 +0000
@@ -27,7 +27,7 @@
 
 add_udev_rules()
 {
-  for rules in 60-multipath.rules 60-kpartx.rules; do
+  for rules in 60-multipath.rules; do
     if [ -e /lib/udev/rules.d/$rules ]; then
       cp -p /lib/udev/rules.d/$rules $DESTDIR/lib/udev/rules.d/
     fi
@@ -35,10 +35,6 @@
 }
 
 copy_exec /sbin/multipath 		/sbin
-copy_exec /sbin/kpartx    		/sbin
-copy_exec /sbin/dmsetup			/sbin
-copy_exec /lib/udev/dmsetup_env		/lib/udev
-copy_exec /lib/udev/kpartx_id		/lib/udev
 mkdir -p $DESTDIR/lib/multipath/
 for x in /lib/multipath/*; do
     copy_exec $x /lib/multipath/

=== added file 'debian/initramfs/kpartx.hook'
--- debian/initramfs/kpartx.hook	1970-01-01 00:00:00 +0000
+++ debian/initramfs/kpartx.hook	2014-06-09 15:59:55 +0000
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+PREREQS="udev"
+
+prereqs() { echo "$PREREQS"; }
+
+case $1 in
+prereqs)
+        prereqs
+        exit 0
+        ;;
+esac
+
+. /usr/share/initramfs-tools/hook-functions
+
+copy_exec /sbin/kpartx /sbin
+copy_exec /sbin/dmsetup                 /sbin
+copy_exec /lib/udev/dmsetup_env         /lib/udev
+copy_exec /lib/udev/kpartx_id           /lib/udev
+cp -p /lib/udev/rules.d/60-kpartx.rules $DESTDIR/lib/udev/rules.d/

=== added file 'debian/kpartx-boot.postinst'
--- debian/kpartx-boot.postinst	1970-01-01 00:00:00 +0000
+++ debian/kpartx-boot.postinst	2014-06-09 16:00:48 +0000
@@ -0,0 +1,34 @@
+#!/bin/sh
+# postinst script for kpartx-boot
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+case "$1" in
+    configure)
+	if [ -x /usr/sbin/update-initramfs -a -e /etc/initramfs-tools/initramfs.conf ]; then
+		update-initramfs -u
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

=== added file 'debian/kpartx-boot.postrm'
--- debian/kpartx-boot.postrm	1970-01-01 00:00:00 +0000
+++ debian/kpartx-boot.postrm	2014-06-09 16:00:48 +0000
@@ -0,0 +1,45 @@
+#!/bin/sh
+# postrm script for kpartx-boot
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postrm> `remove'
+#        * <postrm> `purge'
+#        * <old-postrm> `upgrade' <new-version>
+#        * <new-postrm> `failed-upgrade' <old-version>
+#        * <new-postrm> `abort-install'
+#        * <new-postrm> `abort-install' <old-version>
+#        * <new-postrm> `abort-upgrade' <old-version>
+#        * <disappearer's-postrm> `disappear' <overwriter>
+#          <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove)
+	if [ -x /usr/sbin/update-initramfs -a -e /etc/initramfs-tools/initramfs.conf ]; then
+		update-initramfs -u
+	fi
+    ;;
+
+    purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

=== added file 'debian/kpartx-udeb.install'
--- debian/kpartx-udeb.install	1970-01-01 00:00:00 +0000
+++ debian/kpartx-udeb.install	2014-06-09 17:07:15 +0000
@@ -0,0 +1,1 @@
+/sbin/kpartx

=== modified file 'debian/multipath-udeb.install'
--- debian/multipath-udeb.install	2010-01-23 00:14:04 +0000
+++ debian/multipath-udeb.install	2014-06-09 17:07:25 +0000
@@ -1,4 +1,3 @@
 /sbin/multipath
 /lib/multipath/
 /lib/libmultipath.so.*
-/sbin/kpartx

=== modified file 'debian/rules'
--- debian/rules	2013-11-05 12:38:57 +0000
+++ debian/rules	2014-06-09 16:02:16 +0000
@@ -60,6 +60,7 @@
 	dh_install -X.rules --fail-missing --sourcedir=$(CURDIR)/debian/tmp
 	# initramfs stuff:
 	install -D -m 755 debian/initramfs/hooks $(INITRAMFS)/hooks/multipath
+	install -D -m 755 debian/initramfs/kpartx.hook $(CURDIR)/debian/kpartx-boot/usr/share/initramfs-tools/hooks/kpartx
 	install -D -m 755 debian/initramfs/local-top \
 		$(INITRAMFS)/scripts/local-top/multipath
 	install -D -m 755 debian/initramfs/init-top \

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 553 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-lvm-maintainers/attachments/20140609/d7ff5612/attachment.sig>


More information about the pkg-lvm-maintainers mailing list