added core/lvm2

This commit is contained in:
Kevin Mihelich 2012-06-02 17:18:04 -04:00
parent 2a9ba4c9a7
commit c67ce9cea6
4 changed files with 127 additions and 0 deletions

View file

@ -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"

69
core/lvm2/PKGBUILD Normal file
View file

@ -0,0 +1,69 @@
# $Id: PKGBUILD 160346 2012-06-01 12:56:43Z dreisner $
# Maintainer: Eric Bélanger <eric@archlinux.org>
# Maintainer: Thomas Bächler <thomas@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - rebuild, remove when bumped upstream
pkgbase=lvm2
pkgname=('lvm2' 'device-mapper')
pkgver=2.02.95
pkgrel=6.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)
sha1sums=('f61dfbd8e9219291d11de3d70f0b3d20a29fae85'
'45f5e31045065e7bdf5d6f2e21c857b4978024b4'
'3e1680f9b76ce9150d08865d99db90fd15532271'
'cedc9948123c870f9c5aa3357d0075b41a9c8135'
'f6a554eea9557c3c236df2943bb6e7e723945c41')
build() {
cd "${srcdir}/LVM2.${pkgver}"
unset LDFLAGS
# libudev.so.1.0.0 compat
sed -i 's,udev_get_dev_path([^)]\+),"/dev",' \
tools/dmsetup.c \
lib/misc/lvm-wrappers.c
./configure --prefix=/ --sysconfdir=/etc --localstatedir=/var --datarootdir=/usr/share \
--includedir=/usr/include --with-usrlibdir=/usr/lib --libdir=/usr/lib --with-udev-prefix=/usr \
--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"
}

24
core/lvm2/lvm2_hook Normal file
View file

@ -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:

31
core/lvm2/lvm2_install Normal file
View file

@ -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: