From: Chen Qi <qi.c...@windriver.com> If we enable 'cryptsetup' PACKAGECONFIG for systemd, there would be circular dependency issue among 'systemd', 'cryptsetup' and 'lvm2'.
cryptsetup only needs libdevmapper from lvm2. So we separte libdevmapper into a new recipe to solve this circular dependency issue. Signed-off-by: Chen Qi <qi.c...@windriver.com> --- .../0001-Avoid-bashisms-in-init-scripts.patch | 182 ++++++++++++ ...001-implement-libc-specific-reopen_stream.patch | 79 +++++ ...0002-Guard-use-of-mallinfo-with-__GLIBC__.patch | 30 ++ ...cntl.h-for-O_-defines-and-fcntl-signature.patch | 30 ++ ...0004-tweak-MODPROBE_CMD-for-cross-compile.patch | 38 +++ meta-oe/recipes-support/lvm2/files/lvm.conf | 326 +++++++++++++++++++++ .../recipes-support/lvm2/libdevmapper_2.02.166.bb | 31 ++ meta-oe/recipes-support/lvm2/lvm2.inc | 75 ----- .../lvm2/0001-Avoid-bashisms-in-init-scripts.patch | 182 ------------ ...001-implement-libc-specific-reopen_stream.patch | 79 ----- ...0002-Guard-use-of-mallinfo-with-__GLIBC__.patch | 30 -- ...cntl.h-for-O_-defines-and-fcntl-signature.patch | 30 -- ...0004-tweak-MODPROBE_CMD-for-cross-compile.patch | 38 --- meta-oe/recipes-support/lvm2/lvm2/lvm.conf | 326 --------------------- meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb | 73 +++++ 15 files changed, 789 insertions(+), 760 deletions(-) create mode 100644 meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch create mode 100644 meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch create mode 100644 meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch create mode 100644 meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch create mode 100644 meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch create mode 100644 meta-oe/recipes-support/lvm2/files/lvm.conf create mode 100644 meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb delete mode 100644 meta-oe/recipes-support/lvm2/lvm2/0001-Avoid-bashisms-in-init-scripts.patch delete mode 100644 meta-oe/recipes-support/lvm2/lvm2/0001-implement-libc-specific-reopen_stream.patch delete mode 100644 meta-oe/recipes-support/lvm2/lvm2/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch delete mode 100644 meta-oe/recipes-support/lvm2/lvm2/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch delete mode 100644 meta-oe/recipes-support/lvm2/lvm2/0004-tweak-MODPROBE_CMD-for-cross-compile.patch delete mode 100644 meta-oe/recipes-support/lvm2/lvm2/lvm.conf diff --git a/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch b/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch new file mode 100644 index 0000000..e86ab25 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch @@ -0,0 +1,182 @@ +From 916ea0c70fd063ab7b81f16fd917a75dc02edf4f Mon Sep 17 00:00:00 2001 +From: Peter Kjellerstedt <p...@axis.com> +Date: Fri, 17 Mar 2017 03:18:28 +0100 +Subject: [PATCH] Avoid bashisms in init scripts + +Upstream-Status: Inappropriate + +Signed-off-by: Peter Kjellerstedt <peter.kjellerst...@axis.com> +--- + scripts/blk_availability_init_red_hat.in | 4 ++-- + scripts/clvmd_init_red_hat.in | 6 +++--- + scripts/cmirrord_init_red_hat.in | 4 ++-- + scripts/lvm2_cluster_activation_red_hat.sh.in | 4 ++-- + scripts/lvm2_lvmetad_init_red_hat.in | 4 ++-- + scripts/lvm2_lvmpolld_init_red_hat.in | 4 ++-- + scripts/lvm2_monitoring_init_red_hat.in | 4 ++-- + scripts/lvm2_monitoring_init_rhel4 | 4 ++-- + 8 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in +index a84ffe7..6b855b7 100644 +--- a/scripts/blk_availability_init_red_hat.in ++++ b/scripts/blk_availability_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2012 Red Hat, Inc. All rights reserved. + # +@@ -53,6 +53,6 @@ case "$1" in + status) + ;; + *) +- echo $"Usage: $0 {start|stop|status}" ++ echo "Usage: $0 {start|stop|status}" + ;; + esac +diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in +index d7f3392..abc8011 100644 +--- a/scripts/clvmd_init_red_hat.in ++++ b/scripts/clvmd_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # clvmd - Clustered LVM Daemon init script + # +@@ -161,7 +161,7 @@ restart() { + fi + } + +-[ "$EUID" != "0" ] && { ++[ "$(id -u)" != "0" ] && { + echo "clvmd init script can only be executed as root user" + exit 4 + } +@@ -206,7 +206,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" ++ echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + rtrn=2 + ;; + esac +diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in +index d4b7e37..d442cbc 100755 +--- a/scripts/cmirrord_init_red_hat.in ++++ b/scripts/cmirrord_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # chkconfig: - 22 78 + # description: Starts and stops cmirrord +@@ -101,7 +101,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|restart|status}" ++ echo "Usage: $0 {start|stop|restart|status}" + ;; + esac + +diff --git a/scripts/lvm2_cluster_activation_red_hat.sh.in b/scripts/lvm2_cluster_activation_red_hat.sh.in +index abea026..d8cba2e 100644 +--- a/scripts/lvm2_cluster_activation_red_hat.sh.in ++++ b/scripts/lvm2_cluster_activation_red_hat.sh.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + sbindir=@sbindir@ + +@@ -54,7 +54,7 @@ case "$1" in + rtrn=$? + ;; + *) +- echo $"Usage: $0 {activate|deactivate}" ++ echo "Usage: $0 {activate|deactivate}" + rtrn=3 + ;; + esac +diff --git a/scripts/lvm2_lvmetad_init_red_hat.in b/scripts/lvm2_lvmetad_init_red_hat.in +index b2f5d50..96269a9 100644 +--- a/scripts/lvm2_lvmetad_init_red_hat.in ++++ b/scripts/lvm2_lvmetad_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2012 Red Hat, Inc. All rights reserved. + # +@@ -105,7 +105,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" ++ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" + ;; + esac + +diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in +index c521955..cdbaece 100644 +--- a/scripts/lvm2_lvmpolld_init_red_hat.in ++++ b/scripts/lvm2_lvmpolld_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2015 Red Hat, Inc. All rights reserved. + # +@@ -107,7 +107,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" ++ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" + ;; + esac + +diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in +index de7ff0d..9ff6bb7 100644 +--- a/scripts/lvm2_monitoring_init_red_hat.in ++++ b/scripts/lvm2_monitoring_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2007-2009 Red Hat, Inc. All rights reserved. + # +@@ -128,7 +128,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|restart|status|force-stop}" ++ echo "Usage: $0 {start|stop|restart|status|force-stop}" + ;; + esac + +diff --git a/scripts/lvm2_monitoring_init_rhel4 b/scripts/lvm2_monitoring_init_rhel4 +index 8eb06c5..2e8d0f7 100644 +--- a/scripts/lvm2_monitoring_init_rhel4 ++++ b/scripts/lvm2_monitoring_init_rhel4 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2007 Red Hat, Inc. All rights reserved. + # +@@ -93,7 +93,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|restart|status|force-stop}" ++ echo "Usage: $0 {start|stop|restart|status|force-stop}" + ;; + esac + +-- +2.12.0 + diff --git a/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch b/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch new file mode 100644 index 0000000..5d72402 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch @@ -0,0 +1,79 @@ +From e3103459416616d3b8508e7176e897b0ae6c90f2 Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke...@windriver.com> +Date: Tue, 25 Oct 2016 11:49:40 +0000 +Subject: [PATCH] implement libc specific reopen_stream + +musl defines stdin/stdio/stderr as constant types which means +we can not assign to them as we are doing here but works ok with glibc +therefore abstract out the _reopen_stream definition depending upon if +we are using glibc or otherwise + +Origin: +http://git.alpinelinux.org/cgit/aports/tree/main/lvm2/fix-stdio-usage.patch + +Signed-off-by: Khem Raj <raj.k...@gmail.com> +Signed-off-by: Dengke Du <dengke...@windriver.com> + +--- + lib/log/log.c | 6 ++++++ + tools/lvmcmdline.c | 6 +++--- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/lib/log/log.c b/lib/log/log.c +index c933154..3581084 100644 +--- a/lib/log/log.c ++++ b/lib/log/log.c +@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_ + * Close and reopen standard stream on file descriptor fd. + */ + int reopen_standard_stream(FILE **stream, const char *mode) ++#ifdef __GLIBC__ + { + int fd, fd_copy, new_fd; + const char *name; +@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode) + *stream = new_stream; + return 1; + } ++#else ++{ ++ return (freopen(NULL, mode, *stream) != NULL); ++} ++#endif + + void init_log_fn(lvm2_log_fn_t log_fn) + { +diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c +index 9a4deb7..f1f18e6 100644 +--- a/tools/lvmcmdline.c ++++ b/tools/lvmcmdline.c +@@ -1818,7 +1818,7 @@ static int _check_standard_fds(void) + 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 +@@ -1828,7 +1828,7 @@ static int _check_standard_fds(void) + } + + 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 */ +@@ -1836,7 +1836,7 @@ static int _check_standard_fds(void) + } + + 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; +-- +2.12.0 + diff --git a/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch b/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch new file mode 100644 index 0000000..95dcede --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch @@ -0,0 +1,30 @@ +From 3ae9c0b607ec33fb07f32a41e9d28cc9068dd39a Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke...@windriver.com> +Date: Tue, 25 Oct 2016 11:52:44 +0000 +Subject: [PATCH] Guard use of mallinfo() with __GLIBC__ + +This API is glibc-only + +Signed-off-by: Khem Raj <raj.k...@gmail.com> +Signed-off-by: Dengke Du <dengke...@windriver.com> + +--- + lib/mm/memlock.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/mm/memlock.c b/lib/mm/memlock.c +index da90144..f34f890 100644 +--- a/lib/mm/memlock.c ++++ b/lib/mm/memlock.c +@@ -150,7 +150,7 @@ static void _touch_memory(void *mem, size_t size) + + 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; +-- +2.12.0 + diff --git a/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch b/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch new file mode 100644 index 0000000..9ab1c06 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch @@ -0,0 +1,30 @@ +From b1ad91a059d99afd1ce25823b7c0a8d3ac63d2fd Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke...@windriver.com> +Date: Tue, 25 Oct 2016 11:55:49 +0000 +Subject: [PATCH 3/4] include fcntl.h for O_* defines and fcntl() signature + +On glibc _somehow_ this header gets pulled in indirectly + +Signed-off-by: Khem Raj <raj.k...@gmail.com> +Signed-off-by: Dengke Du <dengke...@windriver.com> +--- +Upstream-Status: Pending +--- + libdaemon/server/daemon-server.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c +index 6af6de9..a9590e7 100644 +--- a/libdaemon/server/daemon-server.c ++++ b/libdaemon/server/daemon-server.c +@@ -18,6 +18,7 @@ + #include "daemon-server.h" + #include "daemon-log.h" + ++#include <fcntl.h> + #include <dlfcn.h> + #include <errno.h> + #include <pthread.h> +-- +2.9.3 + diff --git a/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch b/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch new file mode 100644 index 0000000..aaeaa72 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch @@ -0,0 +1,38 @@ +From 0012ea63f6070a5d41fa380970f9c30b953237d2 Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke...@windriver.com> +Date: Tue, 25 Oct 2016 11:59:40 +0000 +Subject: [PATCH 4/4] tweak MODPROBE_CMD for cross compile + +Lvm uses variable MODPROBE_CMD at runtime, so build time detection of modprobe +is incorrect. +------ +|lvm lvcreate --thinpool wrl/pool00 --size 5556m --config devices +{ preferred_names=["^/dev/mapper/", "^/dev/md/", "^/dev/sd"] +filter=["r|/loop1$|","r|/loop2$|","r|/loop3$|","r|/loop4$|","r|/loop5$|","r|/loop6$|","r|/loop7$|"] } +|tmp/sysroots/x86_64-linux/usr/bin/modprobe: execvp failed: No such file or directory +|tmp/sysroots/x86_64-linux/usr/bin/modprobe failed: 2 +------ + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia <hongxu....@windriver.com> +Signed-off-by: Dengke Du <dengke...@windriver.com> +--- + configure.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/configure.in b/configure.in +index cc77aab..a3579f2 100644 +--- a/configure.in ++++ b/configure.in +@@ -1853,7 +1853,6 @@ if test "$UDEV_SYNC" = yes; then + fi + + ################################################################################ +-AC_PATH_TOOL(MODPROBE_CMD, modprobe) + + if test -n "$MODPROBE_CMD"; then + AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.]) +-- +2.9.3 + diff --git a/meta-oe/recipes-support/lvm2/files/lvm.conf b/meta-oe/recipes-support/lvm2/files/lvm.conf new file mode 100644 index 0000000..9e3b5fe --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/lvm.conf @@ -0,0 +1,326 @@ +# This is an example configuration file for the LVM2 system. +# It contains the default settings that would be used if there was no +# /etc/lvm/lvm.conf file. +# +# Refer to 'man lvm.conf' for further information including the file layout. +# +# To put this file in a different directory and override /etc/lvm set +# the environment variable LVM_SYSTEM_DIR before running the tools. + + +# This section allows you to configure which block devices should +# be used by the LVM system. +devices { + + # Where do you want your volume groups to appear ? + dir = "/dev" + + # An array of directories that contain the device nodes you wish + # to use with LVM2. + scan = [ "/dev" ] + + # A filter that tells LVM2 to only use a restricted set of devices. + # The filter consists of an array of regular expressions. These + # expressions can be delimited by a character of your choice, and + # prefixed with either an 'a' (for accept) or 'r' (for reject). + # The first expression found to match a device name determines if + # the device will be accepted or rejected (ignored). Devices that + # don't match any patterns are accepted. + + # Be careful if there there are symbolic links or multiple filesystem + # entries for the same device as each name is checked separately against + # the list of patterns. The effect is that if any name matches any 'a' + # pattern, the device is accepted; otherwise if any name matches any 'r' + # pattern it is rejected; otherwise it is accepted. + + # Don't have more than one filter line active at once: only one gets used. + + # Run vgscan after you change this parameter to ensure that + # the cache file gets regenerated (see below). + # If it doesn't do what you expect, check the output of 'vgscan -vvvv'. + + + # By default we accept every block device: + filter = [ "a/.*/" ] + + # Exclude the cdrom drive + # filter = [ "r|/dev/cdrom|" ] + + # When testing I like to work with just loopback devices: + # filter = [ "a/loop/", "r/.*/" ] + + # Or maybe all loops and ide drives except hdc: + # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ] + + # Use anchors if you want to be really specific + # filter = [ "a|^/dev/hda8$|", "r/.*/" ] + + # The results of the filtering are cached on disk to avoid + # rescanning dud devices (which can take a very long time). By + # default this cache file is hidden in the /etc/lvm directory. + # It is safe to delete this file: the tools regenerate it. + cache = "/etc/lvm/.cache" + + # You can turn off writing this cache file by setting this to 0. + write_cache_state = 1 + + # Advanced settings. + + # List of pairs of additional acceptable block device types found + # in /proc/devices with maximum (non-zero) number of partitions. + # types = [ "fd", 16 ] + + # If sysfs is mounted (2.6 kernels) restrict device scanning to + # the block devices it believes are valid. + # 1 enables; 0 disables. + sysfs_scan = 1 + + # By default, LVM2 will ignore devices used as components of + # software RAID (md) devices by looking for md superblocks. + # 1 enables; 0 disables. + md_component_detection = 1 +} + +# This section that allows you to configure the nature of the +# information that LVM2 reports. +log { + + # Controls the messages sent to stdout or stderr. + # There are three levels of verbosity, 3 being the most verbose. + verbose = 0 + + # Should we send log messages through syslog? + # 1 is yes; 0 is no. + syslog = 1 + + # Should we log error and debug messages to a file? + # By default there is no log file. + #file = "/var/log/lvm2.log" + + # Should we overwrite the log file each time the program is run? + # By default we append. + overwrite = 0 + + # What level of log messages should we send to the log file and/or syslog? + # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive. + # 7 is the most verbose (LOG_DEBUG). + level = 0 + + # Format of output messages + # Whether or not (1 or 0) to indent messages according to their severity + indent = 1 + + # Whether or not (1 or 0) to display the command name on each line output + command_names = 0 + + # A prefix to use before the message text (but after the command name, + # if selected). Default is two spaces, so you can see/grep the severity + # of each message. + prefix = " " + + # To make the messages look similar to the original LVM tools use: + # indent = 0 + # command_names = 1 + # prefix = " -- " + + # Set this if you want log messages during activation. + # Don't use this in low memory situations (can deadlock). + # activation = 0 +} + +# Configuration of metadata backups and archiving. In LVM2 when we +# talk about a 'backup' we mean making a copy of the metadata for the +# *current* system. The 'archive' contains old metadata configurations. +# Backups are stored in a human readeable text format. +backup { + + # Should we maintain a backup of the current metadata configuration ? + # Use 1 for Yes; 0 for No. + # Think very hard before turning this off! + backup = 1 + + # Where shall we keep it ? + # Remember to back up this directory regularly! + backup_dir = "/etc/lvm/backup" + + # Should we maintain an archive of old metadata configurations. + # Use 1 for Yes; 0 for No. + # On by default. Think very hard before turning this off. + archive = 1 + + # Where should archived files go ? + # Remember to back up this directory regularly! + archive_dir = "/etc/lvm/archive" + + # What is the minimum number of archive files you wish to keep ? + retain_min = 10 + + # What is the minimum time you wish to keep an archive file for ? + retain_days = 30 +} + +# Settings for the running LVM2 in shell (readline) mode. +shell { + + # Number of lines of history to store in ~/.lvm_history + history_size = 100 +} + + +# Miscellaneous global LVM2 settings +global { + + # The file creation mask for any files and directories created. + # Interpreted as octal if the first digit is zero. + umask = 077 + + # Allow other users to read the files + #umask = 022 + + # Enabling test mode means that no changes to the on disk metadata + # will be made. Equivalent to having the -t option on every + # command. Defaults to off. + test = 0 + + # Whether or not to communicate with the kernel device-mapper. + # Set to 0 if you want to use the tools to manipulate LVM metadata + # without activating any logical volumes. + # If the device-mapper kernel driver is not present in your kernel + # setting this to 0 should suppress the error messages. + activation = 1 + + # If we can't communicate with device-mapper, should we try running + # the LVM1 tools? + # This option only applies to 2.4 kernels and is provided to help you + # switch between device-mapper kernels and LVM1 kernels. + # The LVM1 tools need to be installed with .lvm1 suffices + # e.g. vgscan.lvm1 and they will stop working after you start using + # the new lvm2 on-disk metadata format. + # The default value is set when the tools are built. + # fallback_to_lvm1 = 0 + + # The default metadata format that commands should use - "lvm1" or "lvm2". + # The command line override is -M1 or -M2. + # Defaults to "lvm1" if compiled in, else "lvm2". + # format = "lvm1" + + # Location of proc filesystem + proc = "/proc" + + # Type of locking to use. Defaults to file-based locking (1). + # Turn locking off by setting to 0 (dangerous: risks metadata corruption + # if LVM2 commands get run concurrently). + locking_type = 1 + + # Local non-LV directory that holds file-based locks while commands are + # in progress. A directory like /tmp that may get wiped on reboot is OK. + locking_dir = "/var/lock/lvm" + + # Other entries can go here to allow you to load shared libraries + # e.g. if support for LVM1 metadata was compiled as a shared library use + # format_libraries = "liblvm2format1.so" + # Full pathnames can be given. + + # Search this directory first for shared libraries. + # library_dir = "/lib" +} + +activation { + # Device used in place of missing stripes if activating incomplete volume. + # For now, you need to set this up yourself first (e.g. with 'dmsetup') + # For example, you could make it return I/O errors using the 'error' + # target or make it return zeros. + missing_stripe_filler = "/dev/ioerror" + + # Size (in KB) of each copy operation when mirroring + mirror_region_size = 512 + + # How much stack (in KB) to reserve for use while devices suspended + reserved_stack = 256 + + # How much memory (in KB) to reserve for use while devices suspended + reserved_memory = 8192 + + # Nice value used while devices suspended + process_priority = -18 + + # If volume_list is defined, each LV is only activated if there is a + # match against the list. + # "vgname" and "vgname/lvname" are matched exactly. + # "@tag" matches any tag set in the LV or VG. + # "@*" matches if any tag defined on the host is also set in the LV or VG + # + # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ] +} + + +#################### +# Advanced section # +#################### + +# Metadata settings +# +# metadata { + # Default number of copies of metadata to hold on each PV. 0, 1 or 2. + # You might want to override it from the command line with 0 + # when running pvcreate on new PVs which are to be added to large VGs. + + # pvmetadatacopies = 1 + + # Approximate default size of on-disk metadata areas in sectors. + # You should increase this if you have large volume groups or + # you want to retain a large on-disk history of your metadata changes. + + # pvmetadatasize = 255 + + # List of directories holding live copies of text format metadata. + # These directories must not be on logical volumes! + # It's possible to use LVM2 with a couple of directories here, + # preferably on different (non-LV) filesystems, and with no other + # on-disk metadata (pvmetadatacopies = 0). Or this can be in + # addition to on-disk metadata areas. + # The feature was originally added to simplify testing and is not + # supported under low memory situations - the machine could lock up. + # + # Never edit any files in these directories by hand unless you + # you are absolutely sure you know what you are doing! Use + # the supplied toolset to make changes (e.g. vgcfgrestore). + + # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ] +#} + +# Event daemon +# +dmeventd { + # mirror_library is the library used when monitoring a mirror device. + # + # "libdevmapper-event-lvm2mirror.so" attempts to recover from + # failures. It removes failed devices from a volume group and + # reconfigures a mirror as necessary. If no mirror library is + # provided, mirrors are not monitored through dmeventd. + + mirror_library = "@libdir@/device-mapper/libdevmapper-event-lvm2mirror.so" + + # snapshot_library is the library used when monitoring a snapshot device. + # + # "libdevmapper-event-lvm2snapshot.so" monitors the filling of + # snapshots and emits a warning through syslog when the use of + # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and + # 95% of the snapshot is filled. + + snapshot_library = "@libdir@/device-mapper/libdevmapper-event-lvm2snapshot.so" + + # thin_library is the library used when monitoring a thin device. + # + # "libdevmapper-event-lvm2thin.so" monitors the filling of + # pool and emits a warning through syslog when the use of + # the pool exceeds 80%. The warning is repeated when 85%, 90% and + # 95% of the pool is filled. + + thin_library = "@libdir@/device-mapper/libdevmapper-event-lvm2thin.so" + + # Full path of the dmeventd binary. + # + # executable = "@DMEVENTD_PATH@" +} + diff --git a/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb b/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb new file mode 100644 index 0000000..462e8fb --- /dev/null +++ b/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb @@ -0,0 +1,31 @@ +require lvm2.inc + +SRC_URI[md5sum] = "c5a54ee0b86703daaad6e856439e115a" +SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655051b94" + +DEPENDS += "autoconf-archive-native" + +PACKAGECONFIG = "" + +# Unset user/group to unbreak install. +EXTRA_OECONF = "--with-user= \ + --with-group= \ + --enable-pkgconfig \ + --with-usrlibdir=${libdir} \ +" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install_append() { + # Remove things unrelated to libdevmapper + rm -rf ${D}${sysconfdir} + for i in `ls ${D}${sbindir}/*`; do + if [ $i != ${D}${sbindir}/dmsetup ]; then + rm $i + fi + done + # Remove docs + rm -rf ${D}${datadir} +} + +RRECOMMENDS_${PN} += "lvm2-udevrules" diff --git a/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-oe/recipes-support/lvm2/lvm2.inc index e295e20..cb5a9e0 100644 --- a/meta-oe/recipes-support/lvm2/lvm2.inc +++ b/meta-oe/recipes-support/lvm2/lvm2.inc @@ -18,15 +18,6 @@ S = "${WORKDIR}/LVM2.${PV}" inherit autotools-brokensep pkgconfig systemd -LVM2_PACKAGECONFIG = "dmeventd lvmetad" -LVM2_PACKAGECONFIG_append_class-target = " \ - ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \ - thin-provisioning-tools \ - udev \ -" - -PACKAGECONFIG ??= "${LVM2_PACKAGECONFIG}" - # odirect is always enabled because there currently is a bug in # lib/device/dev-io.c which prevents compiling without it. It is # better to stick to configurations that were actually tested by @@ -40,69 +31,3 @@ PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline" PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux" PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools" PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev" - -# Unset user/group to unbreak install. -EXTRA_OECONF = "--with-user= \ - --with-group= \ - --enable-realtime \ - --enable-applib \ - --enable-cmdlib \ - --enable-pkgconfig \ - --with-usrlibdir=${libdir} \ - --with-systemdsystemunitdir=${systemd_system_unitdir} \ - --disable-thin_check_needs_check \ - --with-thin-check=${sbindir}/thin_check \ - --with-thin-dump=${sbindir}/thin_dump \ - --with-thin-repair=${sbindir}/thin_repair \ - --with-thin-restore=${sbindir}/thin_restore \ -" - -CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe" - -do_install_append() { - # Install machine specific configuration file - install -d ${D}${sysconfdir}/lvm - install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf - sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - oe_runmake 'DESTDIR=${D}' install install_systemd_units - sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service - else - oe_runmake 'DESTDIR=${D}' install install_initscripts - mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d - rm -rf ${D}${sysconfdir}/rc.d - fi -} - -PACKAGE_BEFORE_PN = "${PN}-scripts libdevmapper libdevmapper-dev" - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \ - blk-availability.service" -SYSTEMD_AUTO_ENABLE = "disable" - -TARGET_CC_ARCH += "${LDFLAGS}" - -FILES_${PN} += "${libdir}/device-mapper/*.so" -FILES_${PN}-scripts = " \ - ${sbindir}/blkdeactivate \ - ${sbindir}/fsadm \ - ${sbindir}/lvmconf \ - ${sbindir}/lvmdump \ -" -# Specified explicitly for the udev rules, just in case that it does not get picked -# up automatically: -RDEPENDS_${PN}_append_class-target = " libdevmapper" -FILES_libdevmapper = "${sbindir}/dmsetup ${libdir}/libdevmapper.so.* ${nonarch_base_libdir}/udev/rules.d" -FILES_libdevmapper-dev = " \ - ${libdir}/libdevmapper.so \ - ${libdir}/pkgconfig/devmapper.pc \ - ${includedir}/libdevmapper.h \ -" - -RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash" -RDEPENDS_libdevmapper-dev = "libdevmapper (= ${EXTENDPKGV})" -RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})" - -CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf" diff --git a/meta-oe/recipes-support/lvm2/lvm2/0001-Avoid-bashisms-in-init-scripts.patch b/meta-oe/recipes-support/lvm2/lvm2/0001-Avoid-bashisms-in-init-scripts.patch deleted file mode 100644 index e86ab25..0000000 --- a/meta-oe/recipes-support/lvm2/lvm2/0001-Avoid-bashisms-in-init-scripts.patch +++ /dev/null @@ -1,182 +0,0 @@ -From 916ea0c70fd063ab7b81f16fd917a75dc02edf4f Mon Sep 17 00:00:00 2001 -From: Peter Kjellerstedt <p...@axis.com> -Date: Fri, 17 Mar 2017 03:18:28 +0100 -Subject: [PATCH] Avoid bashisms in init scripts - -Upstream-Status: Inappropriate - -Signed-off-by: Peter Kjellerstedt <peter.kjellerst...@axis.com> ---- - scripts/blk_availability_init_red_hat.in | 4 ++-- - scripts/clvmd_init_red_hat.in | 6 +++--- - scripts/cmirrord_init_red_hat.in | 4 ++-- - scripts/lvm2_cluster_activation_red_hat.sh.in | 4 ++-- - scripts/lvm2_lvmetad_init_red_hat.in | 4 ++-- - scripts/lvm2_lvmpolld_init_red_hat.in | 4 ++-- - scripts/lvm2_monitoring_init_red_hat.in | 4 ++-- - scripts/lvm2_monitoring_init_rhel4 | 4 ++-- - 8 files changed, 17 insertions(+), 17 deletions(-) - -diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in -index a84ffe7..6b855b7 100644 ---- a/scripts/blk_availability_init_red_hat.in -+++ b/scripts/blk_availability_init_red_hat.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # Copyright (C) 2012 Red Hat, Inc. All rights reserved. - # -@@ -53,6 +53,6 @@ case "$1" in - status) - ;; - *) -- echo $"Usage: $0 {start|stop|status}" -+ echo "Usage: $0 {start|stop|status}" - ;; - esac -diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in -index d7f3392..abc8011 100644 ---- a/scripts/clvmd_init_red_hat.in -+++ b/scripts/clvmd_init_red_hat.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # clvmd - Clustered LVM Daemon init script - # -@@ -161,7 +161,7 @@ restart() { - fi - } - --[ "$EUID" != "0" ] && { -+[ "$(id -u)" != "0" ] && { - echo "clvmd init script can only be executed as root user" - exit 4 - } -@@ -206,7 +206,7 @@ case "$1" in - ;; - - *) -- echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" -+ echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - rtrn=2 - ;; - esac -diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in -index d4b7e37..d442cbc 100755 ---- a/scripts/cmirrord_init_red_hat.in -+++ b/scripts/cmirrord_init_red_hat.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # chkconfig: - 22 78 - # description: Starts and stops cmirrord -@@ -101,7 +101,7 @@ case "$1" in - ;; - - *) -- echo $"Usage: $0 {start|stop|restart|status}" -+ echo "Usage: $0 {start|stop|restart|status}" - ;; - esac - -diff --git a/scripts/lvm2_cluster_activation_red_hat.sh.in b/scripts/lvm2_cluster_activation_red_hat.sh.in -index abea026..d8cba2e 100644 ---- a/scripts/lvm2_cluster_activation_red_hat.sh.in -+++ b/scripts/lvm2_cluster_activation_red_hat.sh.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - - sbindir=@sbindir@ - -@@ -54,7 +54,7 @@ case "$1" in - rtrn=$? - ;; - *) -- echo $"Usage: $0 {activate|deactivate}" -+ echo "Usage: $0 {activate|deactivate}" - rtrn=3 - ;; - esac -diff --git a/scripts/lvm2_lvmetad_init_red_hat.in b/scripts/lvm2_lvmetad_init_red_hat.in -index b2f5d50..96269a9 100644 ---- a/scripts/lvm2_lvmetad_init_red_hat.in -+++ b/scripts/lvm2_lvmetad_init_red_hat.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # Copyright (C) 2012 Red Hat, Inc. All rights reserved. - # -@@ -105,7 +105,7 @@ case "$1" in - ;; - - *) -- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" -+ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" - ;; - esac - -diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in -index c521955..cdbaece 100644 ---- a/scripts/lvm2_lvmpolld_init_red_hat.in -+++ b/scripts/lvm2_lvmpolld_init_red_hat.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # Copyright (C) 2015 Red Hat, Inc. All rights reserved. - # -@@ -107,7 +107,7 @@ case "$1" in - ;; - - *) -- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" -+ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" - ;; - esac - -diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in -index de7ff0d..9ff6bb7 100644 ---- a/scripts/lvm2_monitoring_init_red_hat.in -+++ b/scripts/lvm2_monitoring_init_red_hat.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # Copyright (C) 2007-2009 Red Hat, Inc. All rights reserved. - # -@@ -128,7 +128,7 @@ case "$1" in - ;; - - *) -- echo $"Usage: $0 {start|stop|restart|status|force-stop}" -+ echo "Usage: $0 {start|stop|restart|status|force-stop}" - ;; - esac - -diff --git a/scripts/lvm2_monitoring_init_rhel4 b/scripts/lvm2_monitoring_init_rhel4 -index 8eb06c5..2e8d0f7 100644 ---- a/scripts/lvm2_monitoring_init_rhel4 -+++ b/scripts/lvm2_monitoring_init_rhel4 -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # Copyright (C) 2007 Red Hat, Inc. All rights reserved. - # -@@ -93,7 +93,7 @@ case "$1" in - ;; - - *) -- echo $"Usage: $0 {start|stop|restart|status|force-stop}" -+ echo "Usage: $0 {start|stop|restart|status|force-stop}" - ;; - esac - --- -2.12.0 - diff --git a/meta-oe/recipes-support/lvm2/lvm2/0001-implement-libc-specific-reopen_stream.patch b/meta-oe/recipes-support/lvm2/lvm2/0001-implement-libc-specific-reopen_stream.patch deleted file mode 100644 index 5d72402..0000000 --- a/meta-oe/recipes-support/lvm2/lvm2/0001-implement-libc-specific-reopen_stream.patch +++ /dev/null @@ -1,79 +0,0 @@ -From e3103459416616d3b8508e7176e897b0ae6c90f2 Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke...@windriver.com> -Date: Tue, 25 Oct 2016 11:49:40 +0000 -Subject: [PATCH] implement libc specific reopen_stream - -musl defines stdin/stdio/stderr as constant types which means -we can not assign to them as we are doing here but works ok with glibc -therefore abstract out the _reopen_stream definition depending upon if -we are using glibc or otherwise - -Origin: -http://git.alpinelinux.org/cgit/aports/tree/main/lvm2/fix-stdio-usage.patch - -Signed-off-by: Khem Raj <raj.k...@gmail.com> -Signed-off-by: Dengke Du <dengke...@windriver.com> - ---- - lib/log/log.c | 6 ++++++ - tools/lvmcmdline.c | 6 +++--- - 2 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/lib/log/log.c b/lib/log/log.c -index c933154..3581084 100644 ---- a/lib/log/log.c -+++ b/lib/log/log.c -@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_ - * Close and reopen standard stream on file descriptor fd. - */ - int reopen_standard_stream(FILE **stream, const char *mode) -+#ifdef __GLIBC__ - { - int fd, fd_copy, new_fd; - const char *name; -@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode) - *stream = new_stream; - return 1; - } -+#else -+{ -+ return (freopen(NULL, mode, *stream) != NULL); -+} -+#endif - - void init_log_fn(lvm2_log_fn_t log_fn) - { -diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c -index 9a4deb7..f1f18e6 100644 ---- a/tools/lvmcmdline.c -+++ b/tools/lvmcmdline.c -@@ -1818,7 +1818,7 @@ static int _check_standard_fds(void) - 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 -@@ -1828,7 +1828,7 @@ static int _check_standard_fds(void) - } - - 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 */ -@@ -1836,7 +1836,7 @@ static int _check_standard_fds(void) - } - - 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; --- -2.12.0 - diff --git a/meta-oe/recipes-support/lvm2/lvm2/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch b/meta-oe/recipes-support/lvm2/lvm2/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch deleted file mode 100644 index 95dcede..0000000 --- a/meta-oe/recipes-support/lvm2/lvm2/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 3ae9c0b607ec33fb07f32a41e9d28cc9068dd39a Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke...@windriver.com> -Date: Tue, 25 Oct 2016 11:52:44 +0000 -Subject: [PATCH] Guard use of mallinfo() with __GLIBC__ - -This API is glibc-only - -Signed-off-by: Khem Raj <raj.k...@gmail.com> -Signed-off-by: Dengke Du <dengke...@windriver.com> - ---- - lib/mm/memlock.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/mm/memlock.c b/lib/mm/memlock.c -index da90144..f34f890 100644 ---- a/lib/mm/memlock.c -+++ b/lib/mm/memlock.c -@@ -150,7 +150,7 @@ static void _touch_memory(void *mem, size_t size) - - 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; --- -2.12.0 - diff --git a/meta-oe/recipes-support/lvm2/lvm2/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch b/meta-oe/recipes-support/lvm2/lvm2/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch deleted file mode 100644 index 9ab1c06..0000000 --- a/meta-oe/recipes-support/lvm2/lvm2/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b1ad91a059d99afd1ce25823b7c0a8d3ac63d2fd Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke...@windriver.com> -Date: Tue, 25 Oct 2016 11:55:49 +0000 -Subject: [PATCH 3/4] include fcntl.h for O_* defines and fcntl() signature - -On glibc _somehow_ this header gets pulled in indirectly - -Signed-off-by: Khem Raj <raj.k...@gmail.com> -Signed-off-by: Dengke Du <dengke...@windriver.com> ---- -Upstream-Status: Pending ---- - libdaemon/server/daemon-server.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c -index 6af6de9..a9590e7 100644 ---- a/libdaemon/server/daemon-server.c -+++ b/libdaemon/server/daemon-server.c -@@ -18,6 +18,7 @@ - #include "daemon-server.h" - #include "daemon-log.h" - -+#include <fcntl.h> - #include <dlfcn.h> - #include <errno.h> - #include <pthread.h> --- -2.9.3 - diff --git a/meta-oe/recipes-support/lvm2/lvm2/0004-tweak-MODPROBE_CMD-for-cross-compile.patch b/meta-oe/recipes-support/lvm2/lvm2/0004-tweak-MODPROBE_CMD-for-cross-compile.patch deleted file mode 100644 index aaeaa72..0000000 --- a/meta-oe/recipes-support/lvm2/lvm2/0004-tweak-MODPROBE_CMD-for-cross-compile.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 0012ea63f6070a5d41fa380970f9c30b953237d2 Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke...@windriver.com> -Date: Tue, 25 Oct 2016 11:59:40 +0000 -Subject: [PATCH 4/4] tweak MODPROBE_CMD for cross compile - -Lvm uses variable MODPROBE_CMD at runtime, so build time detection of modprobe -is incorrect. ------- -|lvm lvcreate --thinpool wrl/pool00 --size 5556m --config devices -{ preferred_names=["^/dev/mapper/", "^/dev/md/", "^/dev/sd"] -filter=["r|/loop1$|","r|/loop2$|","r|/loop3$|","r|/loop4$|","r|/loop5$|","r|/loop6$|","r|/loop7$|"] } -|tmp/sysroots/x86_64-linux/usr/bin/modprobe: execvp failed: No such file or directory -|tmp/sysroots/x86_64-linux/usr/bin/modprobe failed: 2 ------- - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Hongxu Jia <hongxu....@windriver.com> -Signed-off-by: Dengke Du <dengke...@windriver.com> ---- - configure.in | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/configure.in b/configure.in -index cc77aab..a3579f2 100644 ---- a/configure.in -+++ b/configure.in -@@ -1853,7 +1853,6 @@ if test "$UDEV_SYNC" = yes; then - fi - - ################################################################################ --AC_PATH_TOOL(MODPROBE_CMD, modprobe) - - if test -n "$MODPROBE_CMD"; then - AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.]) --- -2.9.3 - diff --git a/meta-oe/recipes-support/lvm2/lvm2/lvm.conf b/meta-oe/recipes-support/lvm2/lvm2/lvm.conf deleted file mode 100644 index 9e3b5fe..0000000 --- a/meta-oe/recipes-support/lvm2/lvm2/lvm.conf +++ /dev/null @@ -1,326 +0,0 @@ -# This is an example configuration file for the LVM2 system. -# It contains the default settings that would be used if there was no -# /etc/lvm/lvm.conf file. -# -# Refer to 'man lvm.conf' for further information including the file layout. -# -# To put this file in a different directory and override /etc/lvm set -# the environment variable LVM_SYSTEM_DIR before running the tools. - - -# This section allows you to configure which block devices should -# be used by the LVM system. -devices { - - # Where do you want your volume groups to appear ? - dir = "/dev" - - # An array of directories that contain the device nodes you wish - # to use with LVM2. - scan = [ "/dev" ] - - # A filter that tells LVM2 to only use a restricted set of devices. - # The filter consists of an array of regular expressions. These - # expressions can be delimited by a character of your choice, and - # prefixed with either an 'a' (for accept) or 'r' (for reject). - # The first expression found to match a device name determines if - # the device will be accepted or rejected (ignored). Devices that - # don't match any patterns are accepted. - - # Be careful if there there are symbolic links or multiple filesystem - # entries for the same device as each name is checked separately against - # the list of patterns. The effect is that if any name matches any 'a' - # pattern, the device is accepted; otherwise if any name matches any 'r' - # pattern it is rejected; otherwise it is accepted. - - # Don't have more than one filter line active at once: only one gets used. - - # Run vgscan after you change this parameter to ensure that - # the cache file gets regenerated (see below). - # If it doesn't do what you expect, check the output of 'vgscan -vvvv'. - - - # By default we accept every block device: - filter = [ "a/.*/" ] - - # Exclude the cdrom drive - # filter = [ "r|/dev/cdrom|" ] - - # When testing I like to work with just loopback devices: - # filter = [ "a/loop/", "r/.*/" ] - - # Or maybe all loops and ide drives except hdc: - # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ] - - # Use anchors if you want to be really specific - # filter = [ "a|^/dev/hda8$|", "r/.*/" ] - - # The results of the filtering are cached on disk to avoid - # rescanning dud devices (which can take a very long time). By - # default this cache file is hidden in the /etc/lvm directory. - # It is safe to delete this file: the tools regenerate it. - cache = "/etc/lvm/.cache" - - # You can turn off writing this cache file by setting this to 0. - write_cache_state = 1 - - # Advanced settings. - - # List of pairs of additional acceptable block device types found - # in /proc/devices with maximum (non-zero) number of partitions. - # types = [ "fd", 16 ] - - # If sysfs is mounted (2.6 kernels) restrict device scanning to - # the block devices it believes are valid. - # 1 enables; 0 disables. - sysfs_scan = 1 - - # By default, LVM2 will ignore devices used as components of - # software RAID (md) devices by looking for md superblocks. - # 1 enables; 0 disables. - md_component_detection = 1 -} - -# This section that allows you to configure the nature of the -# information that LVM2 reports. -log { - - # Controls the messages sent to stdout or stderr. - # There are three levels of verbosity, 3 being the most verbose. - verbose = 0 - - # Should we send log messages through syslog? - # 1 is yes; 0 is no. - syslog = 1 - - # Should we log error and debug messages to a file? - # By default there is no log file. - #file = "/var/log/lvm2.log" - - # Should we overwrite the log file each time the program is run? - # By default we append. - overwrite = 0 - - # What level of log messages should we send to the log file and/or syslog? - # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive. - # 7 is the most verbose (LOG_DEBUG). - level = 0 - - # Format of output messages - # Whether or not (1 or 0) to indent messages according to their severity - indent = 1 - - # Whether or not (1 or 0) to display the command name on each line output - command_names = 0 - - # A prefix to use before the message text (but after the command name, - # if selected). Default is two spaces, so you can see/grep the severity - # of each message. - prefix = " " - - # To make the messages look similar to the original LVM tools use: - # indent = 0 - # command_names = 1 - # prefix = " -- " - - # Set this if you want log messages during activation. - # Don't use this in low memory situations (can deadlock). - # activation = 0 -} - -# Configuration of metadata backups and archiving. In LVM2 when we -# talk about a 'backup' we mean making a copy of the metadata for the -# *current* system. The 'archive' contains old metadata configurations. -# Backups are stored in a human readeable text format. -backup { - - # Should we maintain a backup of the current metadata configuration ? - # Use 1 for Yes; 0 for No. - # Think very hard before turning this off! - backup = 1 - - # Where shall we keep it ? - # Remember to back up this directory regularly! - backup_dir = "/etc/lvm/backup" - - # Should we maintain an archive of old metadata configurations. - # Use 1 for Yes; 0 for No. - # On by default. Think very hard before turning this off. - archive = 1 - - # Where should archived files go ? - # Remember to back up this directory regularly! - archive_dir = "/etc/lvm/archive" - - # What is the minimum number of archive files you wish to keep ? - retain_min = 10 - - # What is the minimum time you wish to keep an archive file for ? - retain_days = 30 -} - -# Settings for the running LVM2 in shell (readline) mode. -shell { - - # Number of lines of history to store in ~/.lvm_history - history_size = 100 -} - - -# Miscellaneous global LVM2 settings -global { - - # The file creation mask for any files and directories created. - # Interpreted as octal if the first digit is zero. - umask = 077 - - # Allow other users to read the files - #umask = 022 - - # Enabling test mode means that no changes to the on disk metadata - # will be made. Equivalent to having the -t option on every - # command. Defaults to off. - test = 0 - - # Whether or not to communicate with the kernel device-mapper. - # Set to 0 if you want to use the tools to manipulate LVM metadata - # without activating any logical volumes. - # If the device-mapper kernel driver is not present in your kernel - # setting this to 0 should suppress the error messages. - activation = 1 - - # If we can't communicate with device-mapper, should we try running - # the LVM1 tools? - # This option only applies to 2.4 kernels and is provided to help you - # switch between device-mapper kernels and LVM1 kernels. - # The LVM1 tools need to be installed with .lvm1 suffices - # e.g. vgscan.lvm1 and they will stop working after you start using - # the new lvm2 on-disk metadata format. - # The default value is set when the tools are built. - # fallback_to_lvm1 = 0 - - # The default metadata format that commands should use - "lvm1" or "lvm2". - # The command line override is -M1 or -M2. - # Defaults to "lvm1" if compiled in, else "lvm2". - # format = "lvm1" - - # Location of proc filesystem - proc = "/proc" - - # Type of locking to use. Defaults to file-based locking (1). - # Turn locking off by setting to 0 (dangerous: risks metadata corruption - # if LVM2 commands get run concurrently). - locking_type = 1 - - # Local non-LV directory that holds file-based locks while commands are - # in progress. A directory like /tmp that may get wiped on reboot is OK. - locking_dir = "/var/lock/lvm" - - # Other entries can go here to allow you to load shared libraries - # e.g. if support for LVM1 metadata was compiled as a shared library use - # format_libraries = "liblvm2format1.so" - # Full pathnames can be given. - - # Search this directory first for shared libraries. - # library_dir = "/lib" -} - -activation { - # Device used in place of missing stripes if activating incomplete volume. - # For now, you need to set this up yourself first (e.g. with 'dmsetup') - # For example, you could make it return I/O errors using the 'error' - # target or make it return zeros. - missing_stripe_filler = "/dev/ioerror" - - # Size (in KB) of each copy operation when mirroring - mirror_region_size = 512 - - # How much stack (in KB) to reserve for use while devices suspended - reserved_stack = 256 - - # How much memory (in KB) to reserve for use while devices suspended - reserved_memory = 8192 - - # Nice value used while devices suspended - process_priority = -18 - - # If volume_list is defined, each LV is only activated if there is a - # match against the list. - # "vgname" and "vgname/lvname" are matched exactly. - # "@tag" matches any tag set in the LV or VG. - # "@*" matches if any tag defined on the host is also set in the LV or VG - # - # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ] -} - - -#################### -# Advanced section # -#################### - -# Metadata settings -# -# metadata { - # Default number of copies of metadata to hold on each PV. 0, 1 or 2. - # You might want to override it from the command line with 0 - # when running pvcreate on new PVs which are to be added to large VGs. - - # pvmetadatacopies = 1 - - # Approximate default size of on-disk metadata areas in sectors. - # You should increase this if you have large volume groups or - # you want to retain a large on-disk history of your metadata changes. - - # pvmetadatasize = 255 - - # List of directories holding live copies of text format metadata. - # These directories must not be on logical volumes! - # It's possible to use LVM2 with a couple of directories here, - # preferably on different (non-LV) filesystems, and with no other - # on-disk metadata (pvmetadatacopies = 0). Or this can be in - # addition to on-disk metadata areas. - # The feature was originally added to simplify testing and is not - # supported under low memory situations - the machine could lock up. - # - # Never edit any files in these directories by hand unless you - # you are absolutely sure you know what you are doing! Use - # the supplied toolset to make changes (e.g. vgcfgrestore). - - # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ] -#} - -# Event daemon -# -dmeventd { - # mirror_library is the library used when monitoring a mirror device. - # - # "libdevmapper-event-lvm2mirror.so" attempts to recover from - # failures. It removes failed devices from a volume group and - # reconfigures a mirror as necessary. If no mirror library is - # provided, mirrors are not monitored through dmeventd. - - mirror_library = "@libdir@/device-mapper/libdevmapper-event-lvm2mirror.so" - - # snapshot_library is the library used when monitoring a snapshot device. - # - # "libdevmapper-event-lvm2snapshot.so" monitors the filling of - # snapshots and emits a warning through syslog when the use of - # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and - # 95% of the snapshot is filled. - - snapshot_library = "@libdir@/device-mapper/libdevmapper-event-lvm2snapshot.so" - - # thin_library is the library used when monitoring a thin device. - # - # "libdevmapper-event-lvm2thin.so" monitors the filling of - # pool and emits a warning through syslog when the use of - # the pool exceeds 80%. The warning is repeated when 85%, 90% and - # 95% of the pool is filled. - - thin_library = "@libdir@/device-mapper/libdevmapper-event-lvm2thin.so" - - # Full path of the dmeventd binary. - # - # executable = "@DMEVENTD_PATH@" -} - diff --git a/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb b/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb index c81faa7..7939f05 100644 --- a/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb +++ b/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb @@ -5,4 +5,77 @@ SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655 DEPENDS += "autoconf-archive-native" +LVM2_PACKAGECONFIG = "dmeventd lvmetad" +LVM2_PACKAGECONFIG_append_class-target = " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \ + thin-provisioning-tools \ + udev \ +" + +PACKAGECONFIG ??= "${LVM2_PACKAGECONFIG}" + +# Unset user/group to unbreak install. +EXTRA_OECONF = "--with-user= \ + --with-group= \ + --enable-realtime \ + --enable-applib \ + --enable-cmdlib \ + --enable-pkgconfig \ + --with-usrlibdir=${libdir} \ + --with-systemdsystemunitdir=${systemd_system_unitdir} \ + --disable-thin_check_needs_check \ + --with-thin-check=${sbindir}/thin_check \ + --with-thin-dump=${sbindir}/thin_dump \ + --with-thin-repair=${sbindir}/thin_repair \ + --with-thin-restore=${sbindir}/thin_restore \ +" + +CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe" + +do_install_append() { + # Install machine specific configuration file + install -d ${D}${sysconfdir}/lvm + install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf + sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + oe_runmake 'DESTDIR=${D}' install install_systemd_units + sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service + else + oe_runmake 'DESTDIR=${D}' install install_initscripts + mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d + rm -rf ${D}${sysconfdir}/rc.d + fi + # Remove things related to libdevmapper + rm -f ${D}${sbindir}/dmsetup + rm -f ${D}${libdir}/libdevmapper.so.* + rm -f ${D}${libdir}/libdevmapper.so ${D}${libdir}/pkgconfig/devmapper.pc ${D}${includedir}/libdevmapper.h +} + +PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \ + blk-availability.service" +SYSTEMD_AUTO_ENABLE = "disable" + +TARGET_CC_ARCH += "${LDFLAGS}" + +FILES_${PN} += "${libdir}/device-mapper/*.so" +FILES_${PN}-scripts = " \ + ${sbindir}/blkdeactivate \ + ${sbindir}/fsadm \ + ${sbindir}/lvmconf \ + ${sbindir}/lvmdump \ +" +# Specified explicitly for the udev rules, just in case that it does not get picked +# up automatically: +FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d" +RDEPENDS_${PN}_append_class-target = " libdevmapper" + +RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash" +RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})" + +CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf" + BBCLASSEXTEND = "native nativesdk" -- 2.1.0 -- _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel