added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -0,0 +1,117 @@
From ea66faf68c93735edb1f2691cd7364b8cab83fef Mon Sep 17 00:00:00 2001
From: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Date: Mon, 26 Nov 2018 14:53:09 +0800
Subject: [PATCH 1/3] Avoid bashisms in init scripts
Upstream-Status: Inappropriate
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Rebase to 2.03.01
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
scripts/blk_availability_init_red_hat.in | 4 ++--
scripts/cmirrord_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 ++--
5 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in
index 347c395..b2e9cf9 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-2017 Red Hat, Inc. All rights reserved.
#
@@ -51,6 +51,6 @@ case "$1" in
status)
;;
*)
- echo $"Usage: $0 {start|stop|status}"
+ echo "Usage: $0 {start|stop|status}"
;;
esac
diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in
index c82f8f5..a3a321d 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
@@ -103,7 +103,7 @@ case "$1" in
;;
*)
- echo $"Usage: $0 {start|stop|restart|status}"
+ echo "Usage: $0 {start|stop|restart|status}"
;;
esac
diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in
index 176ff5d..825f6ad 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.
#
@@ -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_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in
index 95e4125..dff89cd 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.
#
@@ -127,7 +127,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.7.4

View File

@@ -0,0 +1,76 @@
From e3103459416616d3b8508e7176e897b0ae6c90f2 Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@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.khem@gmail.com>
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
lib/log/log.c | 6 ++++++
tools/lvmcmdline.c | 6 +++---
2 files changed, 9 insertions(+), 3 deletions(-)
Index: LVM2.2.02.177/lib/log/log.c
===================================================================
--- LVM2.2.02.177.orig/lib/log/log.c
+++ LVM2.2.02.177/lib/log/log.c
@@ -161,6 +161,7 @@ static void _check_and_replace_standard_
* 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
*stream = new_stream;
return 1;
}
+#else
+{
+ return (freopen(NULL, mode, *stream) != NULL);
+}
+#endif
void init_log_fn(lvm2_log_fn_t log_fn)
{
Index: LVM2.2.02.177/tools/lvmcmdline.c
===================================================================
--- LVM2.2.02.177.orig/tools/lvmcmdline.c
+++ LVM2.2.02.177/tools/lvmcmdline.c
@@ -3095,7 +3095,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
@@ -3105,7 +3105,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 */
@@ -3113,7 +3113,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;

View File

@@ -0,0 +1,27 @@
From 3ae9c0b607ec33fb07f32a41e9d28cc9068dd39a Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@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.khem@gmail.com>
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
lib/mm/memlock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: LVM2.2.02.177/lib/mm/memlock.c
===================================================================
--- LVM2.2.02.177.orig/lib/mm/memlock.c
+++ LVM2.2.02.177/lib/mm/memlock.c
@@ -151,7 +151,7 @@ static void _touch_memory(void *mem, siz
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;

View File

@@ -0,0 +1,38 @@
From 3bba45890985b877b823836e78a1c8ac3c878856 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 31 Jul 2018 15:04:29 +0800
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.jia@windriver.com>
---
configure.ac | 2 --
1 file changed, 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index e427708..aa374ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1791,8 +1791,6 @@ if test "$BUILD_DMFILEMAPD" = yes; then
fi
################################################################################
-AC_PATH_TOOL(MODPROBE_CMD, modprobe, [], [$PATH_SBIN])
-
if test -n "$MODPROBE_CMD"; then
AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.])
fi
--
2.7.4

View File

@@ -0,0 +1,73 @@
From 103ac1c1200df8190372d973e004776cffe8e659 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 26 Nov 2018 14:59:55 +0800
Subject: [PATCH 2/3] do not build manual
On some host (ubuntu 1404), build manual failed.
...
./tools/man-generator --primary lvscan lvscan.8_des
Failed to stat description file lvscan.8_des.
...
Do not build man to workaround the issue.
Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Update context for lvm2 2.03.02.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Update context for lvm2 2.03.16.
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
Makefile.in | 6 +++---
configure.ac | 1 -
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 3b7e0ec..37f14eb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -18,7 +18,7 @@ top_builddir = @top_builddir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
-SUBDIRS = libdm conf daemons include lib libdaemon man scripts tools
+SUBDIRS = libdm conf daemons include lib libdaemon scripts tools
ifeq ("@UDEV_RULES@", "yes")
SUBDIRS += udev
@@ -33,7 +33,7 @@ ifeq ($(MAKECMDGOALS),clean)
endif
# FIXME Should use intermediate Makefiles here!
ifeq ($(MAKECMDGOALS),distclean)
- SUBDIRS = conf include man test scripts \
+ SUBDIRS = conf include test scripts \
libdaemon lib tools daemons libdm \
udev po
tools.distclean: test.distclean
@@ -59,7 +59,7 @@ unit-test run-unit-test: test
daemons.device-mapper: libdm.device-mapper
tools.device-mapper: libdm.device-mapper
-device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper
+device-mapper: tools.device-mapper daemons.device-mapper
device_mapper: device-mapper
ifeq ("@INTL@", "yes")
diff --git a/configure.ac b/configure.ac
index 6def519..18a5c97 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2018,7 +2018,6 @@ libdaemon/server/Makefile
libdm/Makefile
libdm/dm-tools/Makefile
libdm/libdevmapper.pc
-man/Makefile
po/Makefile
scripts/lvm2-pvscan.service
scripts/blkdeactivate.sh
--
2.25.1

View File

@@ -0,0 +1,36 @@
From e213ed33a28704f6f538df41a91b7ce95594a4f8 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 15 Oct 2019 18:12:54 +0800
Subject: [PATCH] start lvm2-monitor.service after tmp.mount
The lvm2-monitor.service reqires the existence of locking_dir
("/tmp/lock/lvm"), and unit tmp.mount is to mount /tmp.
So start lvm2-monitor.service after tmp.mount
Upstream-Status: Inappropriate [oe specific]
Rebase to v2_03_05
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Rebase to v2_03_16
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
scripts/lvm2_monitoring_systemd_red_hat.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/lvm2_monitoring_systemd_red_hat.service.in b/scripts/lvm2_monitoring_systemd_red_hat.service.in
index c0c96e3..2a99a37 100644
--- a/scripts/lvm2_monitoring_systemd_red_hat.service.in
+++ b/scripts/lvm2_monitoring_systemd_red_hat.service.in
@@ -2,7 +2,7 @@
Description=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling
Documentation=man:dmeventd(8) man:lvcreate(8) man:lvchange(8) man:vgchange(8)
Requires=dm-event.socket
-After=dm-event.socket dm-event.service
+After=dm-event.socket dm-event.service tmp.mount
Before=local-fs-pre.target shutdown.target
DefaultDependencies=no
Conflicts=shutdown.target
--
2.25.1

View File

@@ -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 = "/tmp/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@"
}

View File

@@ -0,0 +1,28 @@
configure.ac: override CONFIGURE_LINE
For reproducible binaries, we need to report a constant CONFIGURE_LINE.
Upstream-Status: Pending
Signed-off-by: Joe Slater <joe.slater@windriver.com>
--- git.orig/configure.ac
+++ git/configure.ac
@@ -15,7 +15,15 @@ AC_PREREQ(2.69)
################################################################################
dnl -- Process this file with autoconf to produce a configure script.
AC_INIT
-CONFIGURE_LINE="$0 $@"
+
+dnl per reproducible-builds.org check SOURCE_DATE_EPOCH
+dnl
+if test -z "${SOURCE_DATE_EPOCH+set}" ; then
+ CONFIGURE_LINE="$0 $@"
+else
+ CONFIGURE_LINE="configure options are not available for reproducible builds"
+fi
+
AC_CONFIG_SRCDIR([lib/device/dev-cache.h])
AC_CONFIG_HEADERS([include/configure.h])

View File

@@ -0,0 +1,17 @@
# Break circular dependencies, only populate sysroot (header,
# libraries) to other recipe for compiling, recipe lvm2
# generates package libdevmapper
require lvm2.inc
DEPENDS += "autoconf-archive-native"
TARGET_CC_ARCH += "${LDFLAGS}"
do_install() {
oe_runmake 'DESTDIR=${D}' -C libdm install
}
# Do not generate package libdevmapper
PACKAGES = ""
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,63 @@
HOMEPAGE = "https://www.sourceware.org/lvm2/"
SECTION = "utils"
DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \
file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24"
DEPENDS += "libaio"
SRC_URI = "git://sourceware.org/git/lvm2.git;branch=main \
file://lvm.conf \
file://0001-implement-libc-specific-reopen_stream.patch \
file://0002-Guard-use-of-mallinfo-with-__GLIBC__.patch \
file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \
file://0001-Avoid-bashisms-in-init-scripts.patch \
file://0005-do-not-build-manual.patch \
file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
file://reproducible-build.patch \
"
SRCREV = "6d1e894a867681af7a811ed63bc435f3aa55fec8"
S = "${WORKDIR}/git"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\_\d+)+)"
inherit autotools-brokensep pkgconfig systemd
LVM2_PACKAGECONFIG = "dmeventd"
LVM2_PACKAGECONFIG:append:class-target = " \
${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
"
# 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
# upstream...
PACKAGECONFIG ??= "odirect ${LVM2_PACKAGECONFIG}"
PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd"
PACKAGECONFIG[odirect] = "--enable-o_direct,--disable-o_direct"
PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
# NOTE: Add thin-provisioning-tools only if your distro policy allows GPL-3.0 license
PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools"
# Unset user/group to unbreak install.
EXTRA_OECONF = "--with-user= \
--with-group= \
--enable-realtime \
--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 \
"
# gold doesn't like multiple dm_bitset_parse_list definitions in libdm/.exported_symbols.DM_1_02_138 and libdm/.exported_symbols.DM_1_02_129
# after it was uncommented in the later in 2.03.12 with https://github.com/lvmteam/lvm2/commit/60eb608d66c2056a78e81f27db3da14139d9faab
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd", '', d)}"

View File

@@ -0,0 +1,73 @@
From ddf36613f3408ce42f15b03b4e9c6ad8478b97f8 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 2 Mar 2021 01:33:05 -0800
Subject: [PATCH] fix command /bin/findmnt, /bin/lsblk, /bin/sort not found
In oe-core (util-linux and coreutils), the commands locates in
${bindir} rather than /bin, add BINDIR to configure it
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
configure.ac | 3 +++
scripts/blkdeactivate.sh.in | 7 ++++---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 4811d4a3d..137b31a82 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1611,6 +1611,8 @@ fi
SYSCONFDIR="$(eval echo $(eval echo $sysconfdir))"
+BINDIR="$(eval echo $(eval echo $bindir))"
+
SBINDIR="$(eval echo $(eval echo $sbindir))"
LVM_PATH="$SBINDIR/lvm"
AC_DEFINE_UNQUOTED(LVM_PATH, ["$LVM_PATH"], [Path to lvm binary.])
@@ -1829,6 +1831,7 @@ AC_SUBST(SACKPT_CFLAGS)
AC_SUBST(SACKPT_LIBS)
AC_SUBST(SALCK_CFLAGS)
AC_SUBST(SALCK_LIBS)
+AC_SUBST(BINDIR)
AC_SUBST(SBINDIR)
AC_SUBST(SELINUX_LIBS)
AC_SUBST(SELINUX_PC)
diff --git a/scripts/blkdeactivate.sh.in b/scripts/blkdeactivate.sh.in
index 7c517b87b..7ef1bb766 100644
--- a/scripts/blkdeactivate.sh.in
+++ b/scripts/blkdeactivate.sh.in
@@ -42,13 +42,14 @@ VDO="/bin/vdo"
sbindir="@SBINDIR@"
DMSETUP="$sbindir/dmsetup"
+bindir="@BINDIR@"
LVM="$sbindir/lvm"
if "$UMOUNT" --help | grep -- "--all-targets" >"$DEV_DIR/null"; then
UMOUNT_OPTS="--all-targets "
else
UMOUNT_OPTS=""
- FINDMNT="/bin/findmnt -r --noheadings -u -o TARGET"
+ FINDMNT="$bindir/findmnt -r --noheadings -u -o TARGET"
FINDMNT_READ="read -r mnt"
fi
DMSETUP_OPTS=""
@@ -57,10 +58,10 @@ MDADM_OPTS=""
MPATHD_OPTS=""
VDO_OPTS=""
-LSBLK="/bin/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT"
+LSBLK="$bindir/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT"
LSBLK_VARS="local devtype local kname local name local mnt"
LSBLK_READ="read -r devtype kname name mnt"
-SORT_MNT="/bin/sort -r -u -k 4"
+SORT_MNT="$bindir/sort -r -u -k 4"
# Do not show tool errors by default (only done/skipping summary
# message provided by this script) and no verbose mode by default.
--
2.29.2

View File

@@ -0,0 +1,95 @@
require lvm2.inc
SRC_URI += " \
file://0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch \
"
DEPENDS += "autoconf-archive-native"
inherit multilib_script
MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/lvm/lvm.conf"
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
# We don't want init scripts/systemd units for native SDK utilities
if [ "${PN}" != "nativesdk-lvm2" ]; then
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
fi
}
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)} \
blk-availability.service"
SYSTEMD_AUTO_ENABLE = "disable"
TARGET_CC_ARCH += "${LDFLAGS}"
EXTRA_OECONF:append:class-nativesdk = " --with-confdir=${sysconfdir}"
DEPENDS += "util-linux"
LVM2_PACKAGECONFIG:append:class-target = " \
udev \
"
PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev,${PN}-udevrules"
PACKAGES =+ "libdevmapper"
FILES:libdevmapper = " \
${libdir}/libdevmapper.so.* \
${sbindir}/dmsetup \
${sbindir}/dmstats \
"
FILES:${PN} += " \
${libdir}/device-mapper/*.so \
${systemd_system_unitdir}/lvm2-pvscan@.service \
"
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} = "bash"
RDEPENDS:${PN}-udevrules = "libdevmapper"
RDEPENDS:${PN}:append:class-target = " libdevmapper"
RDEPENDS:${PN}:append:class-nativesdk = " libdevmapper"
RDEPENDS:${PN}-scripts = "${PN} (= ${EXTENDPKGV}) \
bash \
util-linux-lsblk \
util-linux-findmnt \
coreutils \
"
RRECOMMENDS:${PN}:class-target = "${PN}-scripts (= ${EXTENDPKGV})"
CONFFILES:${PN} += "${sysconfdir}/lvm/lvm.conf"
SYSROOT_PREPROCESS_FUNCS:append = " remove_libdevmapper_sysroot_preprocess"
remove_libdevmapper_sysroot_preprocess() {
rm -f ${SYSROOT_DESTDIR}${libdir}/libdevmapper.so* \
${SYSROOT_DESTDIR}${sbindir}/dmsetup \
${SYSROOT_DESTDIR}${sbindir}/dmstats \
${SYSROOT_DESTDIR}${includedir}/libdevmapper.h \
${SYSROOT_DESTDIR}${libdir}/pkgconfig/devmapper.pc
}
BBCLASSEXTEND = "native nativesdk"