Package: evms
Version: 2.5.3-7
Severity: normal
Tags: patch

The maintainer of initramfs-tools has requested that the evms package
take over ownership of the evms-specific hooks in initramfs-tools.  He
has refused to fix evms specific problems reported to him in the current
package in favor of forcing responsibility over to the evms folks.

This patch updates EVMS to conflict on initramfs-tools prior to the
next version, when he will *hopefully* remove the old evms hooks, and
provides proper versions of the hooks.

These have been tested on a system that boots from an evms root located
inside an lvm2 container, located inside a raid5 md region.  I've tried
to make everything generic to work under any evms configuration.

Do not try to use the evms scripts currently in initramfs-tools, they're
just simply hosed at this point.  Feel free to contact me for more info.
We ideally should time an evms release in sync with intramfs-tools when
they get around to removing their scripts.

Paul



-- Package-specific info:

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (650, 'testing'), (600, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14-2-686-smp
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages evms depends on:
ii  libc6                         2.3.5-6    GNU C Library: Shared libraries an
ii  libevms-2.5                   2.5.3-7    Enterprise Volume Management Syste

Versions of packages evms recommends:
ii  evms-cli                      2.5.3-7    Enterprise Volume Management Syste
ii  evms-gui                      2.5.3-7    Enterprise Volume Management Syste
ii  evms-ncurses                  2.5.3-7    Enterprise Volume Management Syste

-- no debconf information
diff -u -N -r old/evms-2.5.3/debian/control evms-2.5.3/debian/control
--- debian/control      2005-11-22 00:32:08.365940317 -0800
+++ debian/control      2005-11-22 00:24:35.844022437 -0800
@@ -11,7 +11,8 @@
 Depends: ${shlibs:Depends}
 Recommends: evms-gui | evms-ncurses, evms-cli
 Suggests: kernel-patch-evms, evms-ha
-Enhances: initrd-tools, devfsd
+Enhances: initrd-tools, initramfs-tools, devfsd
+Conflicts: initramfs-tools (<= 0.39)
 Description: Enterprise Volume Management System (core)
  The EVMS project provides unparalleled flexibility and extensibility
  in managing storage. This project represents a new approach to
@@ -148,7 +149,7 @@
 
 Package: evms-bootdebug
 Architecture: any
-Depends: evms-cli, evms-ncurses, initramfs-tools (>= 0.33)
+Depends: evms-cli, evms-ncurses, initramfs-tools (>= 0.39)
 Description: Enterprise Volume Management System (boot-time debugger)
  The EVMS project provides unparalleled flexibility and extensibility
  in managing storage. This project represents a new approach to
diff -u -N -r old/evms-2.5.3/debian/evms-bootdebug.dirs 
evms-2.5.3/debian/evms-bootdebug.dirs
--- debian/evms-bootdebug.dirs  2005-11-22 00:32:08.357941521 -0800
+++ debian/evms-bootdebug.dirs  1969-12-31 16:00:00.000000000 -0800
@@ -1,2 +0,0 @@
-/usr/share/initramfs-tools/hooks/
-/usr/share/initramfs-tools/scripts/local-top/
diff -u -N -r old/evms-2.5.3/debian/hooks_evms evms-2.5.3/debian/hooks_evms
--- debian/hooks_evms   1969-12-31 16:00:00.000000000 -0800
+++ debian/hooks_evms   2005-11-21 23:32:32.383111827 -0800
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+PREREQ=""
+
+prereqs()
+{
+       echo "$PREREQ"
+}
+
+case $1 in
+prereqs)
+       prereqs
+       exit 0
+       ;;
+esac
+
+. /usr/share/initramfs-tools/hook-functions
+
+if [ ! -x /sbin/evms_activate ]; then
+       exit 0
+fi
+
+copy_exec /sbin/evms_activate /sbin
+cp /etc/evms.conf ${DESTDIR}/etc
+
+EVMS_VERSION=$(/usr/sbin/evms_query info | grep "EVMS Version" | awk '{ print 
$3; }')
+
+mkdir -p ${DESTDIR}/lib/evms/${EVMS_VERSION}
+
+for x in bbr bbr_seg bsd disk dos drivelink gpt lvm2 mac md multipath; do
+       copy_exec /lib/evms/${EVMS_VERSION}/${x}* /lib/evms/${EVMS_VERSION}
+done
+
+for x in dm_mod linear raid0 raid1 raid10 raid5 raid6; do
+        manual_add_modules ${x}
+done
diff -u -N -r old/evms-2.5.3/debian/hooks_evms_bootdebug 
evms-2.5.3/debian/hooks_evms_bootdebug
--- debian/hooks_evms_bootdebug 2005-11-22 00:32:08.342943778 -0800
+++ debian/hooks_evms_bootdebug 2005-11-21 23:32:41.323740969 -0800
@@ -21,8 +21,8 @@
 fi
 
 # The main binaries
-cp /sbin/evms ${DESTDIR}/sbin/
-cp /sbin/evmsn ${DESTDIR}/sbin/
+copy_exec /sbin/evms /sbin
+copy_exec /sbin/evmsn /sbin
 
 # It's useful to have somewhere the engine can log to
 mkdir -p ${DESTDIR}/var/log/
@@ -39,15 +39,19 @@
 cp /lib/evms/${EVMS_VERSION}/* ${DESTDIR}/lib/evms/${EVMS_VERSION}
 
 # We'll also need some support tools for the different filesystems.
-cp /sbin/{mkswap,badblocks} ${DESTDIR}/sbin/
-cp /sbin/{mke2fs,resize2fs,e2fsck,tune2fs} ${DESTDIR}/sbin/
+
+sbin_files="mkswap badblocks mke2fs resize2fs e2fsck tune2fs"
+
 if [ -x /sbin/reiserfsck ]; then
-       cp /sbin/{reiserfsck,resize_reiserfs,mkreiserfs} ${DESTDIR}/sbin/
+       sbin_files="${sbin_files} reiserfsck resize_reiserfs mkreiserfs"
 fi
 if [ -x /sbin/jfs_fsck ]; then
-       cp /sbin/{jfs_fsck,jfs_mkfs} ${DESTDIR}/sbin/
+       sbin_files="${sbin_files} jfs_fsck jfs_mkfs"
 fi
 if [ -x /sbin/fsck.xfs ]; then
-       cp /sbin/{fsck,mkfs}.xfs ${DESTDIR}/sbin/
+       sbin_files="${sbin_files} fsck.xfs mkfs.xfs"
 fi
 
+for file in ${sbin_files} ; do
+       copy_exec /sbin/${file} /sbin
+done
diff -u -N -r old/evms-2.5.3/debian/local-top_evms 
evms-2.5.3/debian/local-top_evms
--- debian/local-top_evms       1969-12-31 16:00:00.000000000 -0800
+++ debian/local-top_evms       2005-11-21 22:07:47.653536459 -0800
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+PREREQ=""
+
+prereqs()
+{
+       echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+       prereqs
+       exit 0
+       ;;
+esac
+
+evms=${ROOT#/dev/evms/}
+case ${evms} in
+       /*)
+               exit 0
+               ;;
+esac
+unset evms
+
+for module in dm-mod linear raid0 raid1 raid10 raid5 raid6 ; do
+       modprobe -q $module
+done
+
+/sbin/evms_activate
diff -u -N -r old/evms-2.5.3/debian/rules evms-2.5.3/debian/rules
--- debian/rules        2005-11-22 00:32:08.360941070 -0800
+++ debian/rules        2005-11-22 00:08:43.161330725 -0800
@@ -97,6 +97,7 @@
                $(CURDIR)/debian/evms-udeb/sbin
 
        dh_movefiles
+       dh_installdirs
 
        mkdir -p $(CURDIR)/debian/evms/usr/share/bug/evms
        install -m 755 debian/bug 
$(CURDIR)/debian/evms/usr/share/bug/evms/script
@@ -117,9 +118,22 @@
        install -m 644 debian/evms.mkinitrd.probe \
                $(CURDIR)/debian/evms/usr/share/initrd-tools/probe.d/evms
 
-       dh_installdirs
-       install debian/hooks_evms_bootdebug 
$(CURDIR)/debian/evms-bootdebug/usr/share/initramfs-tools/hooks/evms_bootdebug
-       install debian/local-top_evms_bootdebug 
$(CURDIR)/debian/evms-bootdebug/usr/share/initramfs-tools/scripts/local-top/evms_bootdebug
+
+       mkdir -p $(CURDIR)/debian/evms/usr/share/initramfs-tools/hooks
+       install debian/hooks_evms \
+               $(CURDIR)/debian/evms/usr/share/initramfs-tools/hooks/evms
+       mkdir -p 
$(CURDIR)/debian/evms/usr/share/initramfs-tools/scripts/local-top
+       install debian/local-top_evms \
+               
$(CURDIR)/debian/evms/usr/share/initramfs-tools/scripts/local-top/evms
+
+       mkdir -p $(CURDIR)/debian/evms-bootdebug/usr/share/initramfs-tools/hooks
+       install debian/hooks_evms_bootdebug \
+               
$(CURDIR)/debian/evms-bootdebug/usr/share/initramfs-tools/hooks/evms_bootdebug
+       mkdir -p 
$(CURDIR)/debian/evms-bootdebug/usr/share/initramfs-tools/scripts/local-top
+       install debian/local-top_evms_bootdebug \
+               
$(CURDIR)/debian/evms-bootdebug/usr/share/initramfs-tools/scripts/local-top/evms_bootdebug
+
+
 
 binary-indep: build-indep
        dh_testdir -i

Reply via email to