summaryrefslogtreecommitdiff
path: root/staging/lvm2
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-06-17 00:03:04 +0000
committerroot <root@rshg054.dnsready.net>2012-06-17 00:03:04 +0000
commit608992f17d5473f8270f0779d3b9bcfe8fbdfa1c (patch)
tree01a9cf1b9b9ca1fd37e5c0a7f67f077633459f02 /staging/lvm2
parentf186b4cb8562b60dd4e1f5331f248caf547c8839 (diff)
Sun Jun 17 00:03:04 UTC 2012
Diffstat (limited to 'staging/lvm2')
-rw-r--r--staging/lvm2/11-dm-initramfs.rules3
-rw-r--r--staging/lvm2/PKGBUILD65
-rw-r--r--staging/lvm2/lvm.service16
-rw-r--r--staging/lvm2/lvm2_hook24
-rw-r--r--staging/lvm2/lvm2_install31
5 files changed, 139 insertions, 0 deletions
diff --git a/staging/lvm2/11-dm-initramfs.rules b/staging/lvm2/11-dm-initramfs.rules
new file mode 100644
index 000000000..d2c167324
--- /dev/null
+++ b/staging/lvm2/11-dm-initramfs.rules
@@ -0,0 +1,3 @@
+# needed with new udev/mkinitcpio and as implemented in dracut:
+# <http://git.kernel.org/?p=boot/dracut/dracut.git;a=commitdiff;h=12b9736228f2b34c15a9cb63be79cf7b6e865b54>
+SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", ACTION=="add|change", OPTIONS="db_persist"
diff --git a/staging/lvm2/PKGBUILD b/staging/lvm2/PKGBUILD
new file mode 100644
index 000000000..02e48d1aa
--- /dev/null
+++ b/staging/lvm2/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 161875 2012-06-16 00:54:28Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgbase=lvm2
+pkgname=('lvm2' 'device-mapper')
+pkgver=2.02.96
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://sourceware.org/lvm2/"
+license=('GPL2' 'LGPL2.1')
+groups=('base')
+source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${pkgver}.tgz{,.asc}
+ lvm2_install
+ lvm2_hook
+ 11-dm-initramfs.rules
+ lvm.service)
+sha1sums=('29d5097f0ca92c7665f29f862eca78bcf981ff6f'
+ '12e9016485c415c344524e6e75e23dfa6ca097ac'
+ '3e1680f9b76ce9150d08865d99db90fd15532271'
+ 'cedc9948123c870f9c5aa3357d0075b41a9c8135'
+ 'f6a554eea9557c3c236df2943bb6e7e723945c41'
+ '17df8689630a77e46899a8bd56997d9db896d5af')
+
+build() {
+ cd "${srcdir}/LVM2.${pkgver}"
+ unset LDFLAGS
+
+ ./configure --prefix=/ --sbindir=/sbin --sysconfdir=/etc --localstatedir=/var --datarootdir=/usr/share \
+ --includedir=/usr/include --with-usrlibdir=/usr/lib --libdir=/usr/lib --with-udev-prefix=/usr \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system --enable-pkgconfig --enable-readline \
+ --enable-dmeventd --enable-cmdlib --enable-applib --enable-udev_sync --enable-udev_rules
+ make
+}
+
+package_device-mapper() {
+ pkgdesc="Device mapper userspace library and tools"
+ url="http://sourceware.org/dm/"
+ depends=('glibc' 'udev')
+
+ cd "${srcdir}/LVM2.${pkgver}"
+ make DESTDIR="${pkgdir}" install_device-mapper
+ # extra udev rule for device-mapper in initramfs
+ install -D -m644 "${srcdir}/11-dm-initramfs.rules" "${pkgdir}/usr/lib/initcpio/udev/11-dm-initramfs.rules"
+}
+
+package_lvm2() {
+ pkgdesc="Logical Volume Manager 2 utilities"
+ depends=('bash' "device-mapper>=${pkgver}" 'udev' 'readline')
+ conflicts=('lvm' 'mkinitcpio<0.7')
+ backup=('etc/lvm/lvm.conf')
+ options=('!makeflags')
+
+ cd "${srcdir}/LVM2.${pkgver}"
+ make DESTDIR="${pkgdir}" install_lvm2
+ # install applib
+ make -C liblvm DESTDIR="${pkgdir}" install
+ # /etc directories
+ install -d "${pkgdir}"/etc/lvm/{archive,backup}
+ # mkinitcpio hook
+ install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/usr/lib/initcpio/hooks/lvm2"
+ install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/usr/lib/initcpio/install/lvm2"
+ # systemd unit
+ install -D -m644 "${srcdir}/lvm.service" "${pkgdir}/usr/lib/systemd/system/lvm.service"
+}
diff --git a/staging/lvm2/lvm.service b/staging/lvm2/lvm.service
new file mode 100644
index 000000000..277d5a773
--- /dev/null
+++ b/staging/lvm2/lvm.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=LVM activation
+DefaultDependencies=no
+Requires=systemd-udev-settle.service
+After=systemd-udev-settle.service
+Before=basic.target shutdown.target
+Conflicts=shutdown.target
+
+[Service]
+ExecStart=/sbin/vgchange --sysinit --available y
+Type=oneshot
+TimeoutSec=0
+RemainAfterExit=yes
+
+[Install]
+WantedBy=basic.target
diff --git a/staging/lvm2/lvm2_hook b/staging/lvm2/lvm2_hook
new file mode 100644
index 000000000..e69b3349a
--- /dev/null
+++ b/staging/lvm2/lvm2_hook
@@ -0,0 +1,24 @@
+#!/usr/bin/ash
+
+run_hook() {
+ local pvdev
+
+ modprobe -q dm-mod >/dev/null 2>&1
+
+ # If the lvmwait= parameter has been specified on the command line
+ # wait for the device(s) before trying to activate the volume group(s)
+ for pvdev in ${lvmwait//,/ }; do
+ poll_device ${pvdev} ${rootdelay}
+ done
+
+ msg "Activating logical volumes..."
+ [ -d /etc/lvm ] && lvm vgscan
+
+ if [ -n "$quiet" ]; then
+ lvm vgchange --sysinit -a y >/dev/null
+ else
+ lvm vgchange --sysinit -a y
+ fi
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/staging/lvm2/lvm2_install b/staging/lvm2/lvm2_install
new file mode 100644
index 000000000..145ce49b2
--- /dev/null
+++ b/staging/lvm2/lvm2_install
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+build() {
+ local mod
+ for mod in dm-mod dm-snapshot dm-mirror; do
+ add_module "$mod"
+ done
+
+ add_binary "/sbin/lvm"
+ add_binary "/sbin/dmsetup"
+ add_file "/usr/lib/udev/rules.d/10-dm.rules"
+ add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
+ add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
+ add_file "/usr/lib/udev/rules.d/11-dm-lvm.rules"
+ add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
+
+ add_runscript
+}
+
+help() {
+ cat <<HELPEOF
+This hook loads the necessary modules for an LVM2 root device.
+
+The optional lvmwait= parameter followed by a comma-separated
+list of device names can be given on the command line.
+It will cause the hook to wait until all given devices exist
+before trying to scan and activate any volume groups.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et: