diff options
Diffstat (limited to 'repo/lvm2')
-rw-r--r-- | repo/lvm2/device-mapper-udev.post-install | 6 | ||||
-rw-r--r-- | repo/lvm2/device-mapper-udev.post-upgrade | 6 | ||||
-rw-r--r-- | repo/lvm2/device-mapper.xibuild | 17 | ||||
-rw-r--r-- | repo/lvm2/dmeventd.initd | 26 | ||||
-rw-r--r-- | repo/lvm2/fix-stdio-usage.patch | 49 | ||||
-rw-r--r-- | repo/lvm2/library_dir-default-config.patch | 10 | ||||
-rw-r--r-- | repo/lvm2/lvm.confd | 5 | ||||
-rw-r--r-- | repo/lvm2/lvm.initd | 38 | ||||
-rw-r--r-- | repo/lvm2/lvm2.xibuild | 65 | ||||
-rw-r--r-- | repo/lvm2/mallinfo.patch | 11 | ||||
-rw-r--r-- | repo/lvm2/mlockall-default-config.patch | 22 |
11 files changed, 255 insertions, 0 deletions
diff --git a/repo/lvm2/device-mapper-udev.post-install b/repo/lvm2/device-mapper-udev.post-install new file mode 100644 index 0000000..95a3590 --- /dev/null +++ b/repo/lvm2/device-mapper-udev.post-install @@ -0,0 +1,6 @@ +#!/bin/sh + +udevadm control --reload-rules +udevadm trigger + +exit 0 diff --git a/repo/lvm2/device-mapper-udev.post-upgrade b/repo/lvm2/device-mapper-udev.post-upgrade new file mode 100644 index 0000000..95a3590 --- /dev/null +++ b/repo/lvm2/device-mapper-udev.post-upgrade @@ -0,0 +1,6 @@ +#!/bin/sh + +udevadm control --reload-rules +udevadm trigger + +exit 0 diff --git a/repo/lvm2/device-mapper.xibuild b/repo/lvm2/device-mapper.xibuild new file mode 100644 index 0000000..ed259e6 --- /dev/null +++ b/repo/lvm2/device-mapper.xibuild @@ -0,0 +1,17 @@ +#!/bin/sh + +DESC="Device mapper userspace library and tools from LVM2" +DEPS="lvm2" + +package () { + install -Dm755 "$BUILD_ROOT"/dmeventd.initd "$PKG_DEST"/etc/init.d/dmeventd + + add_from_main sbin/dmeventd + add_from_main "usr/lib/libdevmapper.a" + add_from_main "lib/libdevmapper-event.so.*" + add_from_main "sbin/dm*" + add_from_main "usr/sbin/dm*" + add_from_main "lib/libdevmapper.so.*" + rm -f "$PKG_DEST"/usr/sbin/dmstats + +} diff --git a/repo/lvm2/dmeventd.initd b/repo/lvm2/dmeventd.initd new file mode 100644 index 0000000..c46f8ba --- /dev/null +++ b/repo/lvm2/dmeventd.initd @@ -0,0 +1,26 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/files/dmeventd.initd-2.02.67-r1,v 1.3 2014/02/08 21:17:46 robbat2 Exp $ + +PIDFILE=/run/dmeventd.pid +BIN=/sbin/dmeventd + +depend() { + # As of .67-r1, we call ALL lvm start/stop scripts with --sysinit, that + # means dmeventd is NOT notified, as it cannot be safely running + after lvm device-mapper +} + +start() { + ebegin "Starting dmeventd" + start-stop-daemon --start --exec $BIN --pidfile $PIDFILE + eend $? +} + +stop() { + ebegin "Stopping dmeventd" + start-stop-daemon --stop --exec $BIN --pidfile $PIDFILE + eend $? +} + diff --git a/repo/lvm2/fix-stdio-usage.patch b/repo/lvm2/fix-stdio-usage.patch new file mode 100644 index 0000000..5ac99fd --- /dev/null +++ b/repo/lvm2/fix-stdio-usage.patch @@ -0,0 +1,49 @@ +--- ./tools/lvmcmdline.c ++++ ./tools/lvmcmdline.c +@@ -1252,7 +1252,7 @@ + int err = is_valid_fd(STDERR_FILENO); + + if (!is_valid_fd(STDIN_FILENO) && +- !(stdin = fopen(_PATH_DEVNULL, "r"))) { ++ !freopen(_PATH_DEVNULL, "r", stdin)) { + if (err) + perror("stdin stream open"); + else +@@ -1262,7 +1262,7 @@ + } + + if (!is_valid_fd(STDOUT_FILENO) && +- !(stdout = fopen(_PATH_DEVNULL, "w"))) { ++ !freopen(_PATH_DEVNULL, "w", stdout)) { + if (err) + perror("stdout stream open"); + /* else no stdout */ +@@ -1270,7 +1270,7 @@ + } + + if (!is_valid_fd(STDERR_FILENO) && +- !(stderr = fopen(_PATH_DEVNULL, "w"))) { ++ !freopen(_PATH_DEVNULL, "w", stderr)) { + printf("stderr stream open: %s\n", + strerror(errno)); + return 0; +--- ./lib/commands/toolcontext.c ++++ ./lib/commands/toolcontext.c +@@ -1869,7 +1869,7 @@ + /* FIXME Make this configurable? */ + reset_lvm_errno(1); + +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + /* Set in/out stream buffering before glibc */ + if (set_buffering + #ifdef SYS_gettid +@@ -2274,7 +2274,7 @@ + + if (cmd->pending_delete_mem) + dm_pool_destroy(cmd->pending_delete_mem); +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + if (cmd->linebuffer) { + /* Reset stream buffering to defaults */ + if (is_valid_fd(STDIN_FILENO) && diff --git a/repo/lvm2/library_dir-default-config.patch b/repo/lvm2/library_dir-default-config.patch new file mode 100644 index 0000000..6e3b958 --- /dev/null +++ b/repo/lvm2/library_dir-default-config.patch @@ -0,0 +1,10 @@ +--- ./conf/example.conf.in.orig ++++ ./conf/example.conf.in +@@ -694,6 +694,7 @@ + # Configuration option global/library_dir. + # Search this directory first for shared libraries. + # This configuration option does not have a default value defined. ++ library_dir="/lib/device-mapper" + + # Configuration option global/locking_library. + # The external locking library to use for locking_type 2. diff --git a/repo/lvm2/lvm.confd b/repo/lvm2/lvm.confd new file mode 100644 index 0000000..9d150f6 --- /dev/null +++ b/repo/lvm2/lvm.confd @@ -0,0 +1,5 @@ +# LVM should normally only be started after mdadm-raid is available +# this is because LVM physical volumes are very often MD devices. + +rc_after="mdadm-raid" + diff --git a/repo/lvm2/lvm.initd b/repo/lvm2/lvm.initd new file mode 100644 index 0000000..db6adbe --- /dev/null +++ b/repo/lvm2/lvm.initd @@ -0,0 +1,38 @@ +#!/sbin/openrc-run + +depend() { + before checkfs fsck swap + after hwdrivers modules device-mapper +} + +dm_in_proc() { + local rc=0 i= + for i in devices misc; do + grep -qs 'device-mapper' /proc/$i + rc=$(($rc + $?)) + done + return $rc +} + +start() { + local rc=0 msg= + ebegin "Setting up the Logical Volume Manager" + if [ -e /proc/modules ] && ! dm_in_proc; then + modprobe dm-mod 2>/dev/null + fi + if [ -d /proc/lvm ] || dm_in_proc; then + vgscan --mknodes --ignorelockingfailure >/dev/null 2>&1 + vgchange --sysinit --activate y >/dev/null 2>&1 + rc=$? + else + rc=1 + fi + eend $rc +} + +stop() { + ebegin "Shutting down the Logical Volume Manager" + vgchange --ignorelockingfailure -a n >/dev/null 2>&1 + eend $? +} + diff --git a/repo/lvm2/lvm2.xibuild b/repo/lvm2/lvm2.xibuild new file mode 100644 index 0000000..1d7f0bd --- /dev/null +++ b/repo/lvm2/lvm2.xibuild @@ -0,0 +1,65 @@ +#!/bin/sh + +NAME="lvm2" +DESC="Logical Volume Manager 2 utilities" + +MAKEDEPS="linux-headers libaio util-linux" + +PKG_VER=2.02.187 +SOURCE="https://mirrors.kernel.org/sourceware/lvm2/LVM2.$PKG_VER.tgz" + +ADDITIONAL=" +dmeventd.initd +fix-stdio-usage.patch +library_dir-default-config.patch +lvm.confd +lvm.initd +mallinfo.patch +mlockall-default-config.patch +" + +prepare() { + apply_patches + sed -i "s/fmt -1/fmt/" make.tmpl.in + sed -i "s/@MKDIR_P@/mkdir -p/" make.tmpl.in + sed -i "s/@INSTALL@/install/" make.tmpl.in + sed -i "s/\$(INSTALL) -p/\$(INSTALL)/" make.tmpl.in + autoreconf -vif +} + +build() { + # during cross-compilation malloc test goes wrong + export ac_cv_func_malloc_0_nonnull=yes + export ac_cv_func_realloc_0_nonnull=yes + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/lib \ + --sbindir=/sbin \ + --localstatedir=/var \ + --disable-nls \ + --disable-readline \ + --enable-pkgconfig \ + --enable-applib \ + --with-thin=internal \ + --enable-dmeventd \ + --enable-cmdlib \ + --with-thin-check=/sbin/thin_check \ + --with-thin-dump=/sbin/thin_dump \ + --with-thin-repair=/sbin/thin_repair \ + --with-dmeventd-path=/sbin/dmeventd \ + --enable-udev_rules \ + CLDFLAGS="$LDFLAGS" \ + SHELL="/bin/bash" + make +} + +package() { + make DESTDIR="$PKG_DEST" install || return 1 + install -d "$PKG_DEST"/etc/lvm/archive "$PKG_DEST"/etc/lvm/backup + install -Dm755 "$BUILD_ROOT"/lvm.initd "$PKG_DEST"/etc/init.d/lvm + install -Dm644 "$BUILD_ROOT"/lvm.confd "$PKG_DEST"/etc/conf.d/lvm + install -Dm644 "$BUILD_ROOT"/lvm.confd "$PKG_DEST"/etc/conf.d/lvm + ln -s libdevmapper.so.1.02 "$PKG_DEST"/lib/libdevmapper.so +} diff --git a/repo/lvm2/mallinfo.patch b/repo/lvm2/mallinfo.patch new file mode 100644 index 0000000..471a6b2 --- /dev/null +++ b/repo/lvm2/mallinfo.patch @@ -0,0 +1,11 @@ +--- ./lib/mm/memlock.c.orig 2015-03-09 11:18:41.560028850 -0100 ++++ ./lib/mm/memlock.c 2015-03-09 11:19:54.504373309 -0100 +@@ -137,7 +137,7 @@ + + static void _allocate_memory(void) + { +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + void *stack_mem; + struct rlimit limit; + int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks; diff --git a/repo/lvm2/mlockall-default-config.patch b/repo/lvm2/mlockall-default-config.patch new file mode 100644 index 0000000..305ddee --- /dev/null +++ b/repo/lvm2/mlockall-default-config.patch @@ -0,0 +1,22 @@ +--- ./conf/example.conf.in.orig ++++ ./conf/example.conf.in +@@ -1352,7 +1352,7 @@ + # Use the old behavior of mlockall to pin all memory. + # Prior to version 2.02.62, LVM used mlockall() to pin the whole + # process's memory while activating devices. +- use_mlockall = 0 ++ use_mlockall = 1 + + # Configuration option activation/monitoring. + # Monitor LVs that are activated. +--- ./lib/config/defaults.h.orig ++++ ./lib/config/defaults.h +@@ -55,7 +55,7 @@ + #define DEFAULT_LVMLOCKD_LOCK_RETRIES 3 + #define DEFAULT_LVMETAD_UPDATE_WAIT_TIME 10 + #define DEFAULT_PRIORITISE_WRITE_LOCKS 1 +-#define DEFAULT_USE_MLOCKALL 0 ++#define DEFAULT_USE_MLOCKALL 1 + #define DEFAULT_METADATA_READ_ONLY 0 + #define DEFAULT_LVDISPLAY_SHOWS_FULL_DEVICE_PATH 0 + #define DEFAULT_UNKNOWN_DEVICE_NAME "[unknown]" |