lvm-devel.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Zdeněk Kabeláč (@zdenek.kabelac) <gitlab@mg.gitlab.com>
To: lvm-devel@redhat.com
Subject: [Git][lvmteam/lvm2][main] 11 commits: device_mapper: pair with libdm _create_and_load_v4
Date: Fri, 13 Oct 2023 12:37:22 +0000	[thread overview]
Message-ID: <65293a02b047c_2ca52f8204c@gitlab-sidekiq-low-urgency-cpu-bound-v2-868ddd547d-75g4c.mail> (raw)



Zden?k Kabel?? pushed to branch main at LVM team / lvm2


Commits:
fb124f08 by Zdenek Kabelac at 2023-10-13T14:24:49+02:00
device_mapper: pair with libdm _create_and_load_v4

Apply same enhancement also for internal device mapper library
from the commit: 25ef7a7b1a876f491bd361369423d7309358f6c1.

- - - - -
dc8837f0 by Adam Joseph at 2023-10-13T14:25:02+02:00
configure.ac: handle --disable-shared flag

Since LVM 2.02 it appears that compiling LVM on a platform which
lacks a shared library linker/loader will fail to produce any
binaries (dmsetup, lvm2, etc).

Adds support for the standard --disable-shared flag, and
use it to disable attempts at building shared libraries.

Modified-by: zkabelac

- - - - -
48fd9fbd by Zdenek Kabelac at 2023-10-13T14:25:02+02:00
configure.ac: support for static linking

Introduce couple configure options:

--without-blkid
--without-systemd
--without-udev

These can be useful for build with --disable-shared
where those libraries are often distibuted without
their static libraries.

However such compiled static binaries then have limitted usage.

- - - - -
f117d47f by Zdenek Kabelac at 2023-10-13T14:25:02+02:00
configure.ac: version checking for new dmpd tools

New rust version of thin_check returns now also binary name in version,
so adapt the version checking to handle this variant.

- - - - -
627535f3 by Zdenek Kabelac at 2023-10-13T14:25:02+02:00
tests: use function to restart dmeventd

Move restart to single function.

- - - - -
53da6464 by Zdenek Kabelac at 2023-10-13T14:25:02+02:00
tests: fail tests when machine have suspended devs

If the machine has suspended devices present in the DM table,
it&#39;s better to fail the test.

- - - - -
061c008e by Zdenek Kabelac at 2023-10-13T14:25:02+02:00
tests: some minor enhancement of udev test

Reduce pgrep usage.

- - - - -
be2b3d5a by Zdenek Kabelac at 2023-10-13T14:25:02+02:00
tests: increase delay

- - - - -
1605d39b by Zdenek Kabelac at 2023-10-13T14:25:02+02:00
tests: comment about version checking to aux.sh

If there would be futher version checking needed,
make a notice there are now two -V formats.

- - - - -
9fa36441 by Zdenek Kabelac at 2023-10-13T14:33:56+02:00
tests: skip for missing mkfs.xfs

- - - - -
8b8b8ac1 by Zdenek Kabelac at 2023-10-13T14:33:56+02:00
configure: update

- - - - -


13 changed files:

- configure
- configure.ac
- device_mapper/ioctl/libdm-iface.c
- libdm/Makefile.in
- libdm/dm-tools/Makefile.in
- libdm/make.tmpl.in
- make.tmpl.in
- test/lib/aux.sh
- test/lib/inittest.sh
- test/shell/dmeventd-restart.sh
- test/shell/dmsecuretest.sh
- test/shell/dmstats-filemap.sh
- tools/Makefile.in


Changes:

=====================================
configure
=====================================
@@ -681,6 +681,7 @@ STATIC_LDFLAGS
 STATICDIR
 SNAPSHOTS
 SILENT_RULES
+SHARED_LINK
 SELINUX_STATIC_LIBS
 SELINUX_PC
 SBINDIR
@@ -914,6 +915,10 @@ enable_option_checking
 enable_dependency_tracking
 enable_silent_rules
 enable_static_link
+enable_shared
+with_blkid
+with_systemd
+with_udev
 with_user
 with_group
 with_device_uid
@@ -1685,6 +1690,7 @@ Optional Features:
   --disable-silent-rules  disable silent building
   --enable-static_link    use this to link the tools to their libraries
                           statically (default is dynamic linking
+  --disable-shared        disable dynamic linking
   --disable-thin_check_needs_check
                           required if thin_check version is < 0.3.0
   --disable-cache_check_needs_check
@@ -1738,6 +1744,9 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --without-blkid         do not build with blkid library
+  --without-systemd       do not build with systemd library
+  --without-udev          do not build with udev library
   --with-user=USER        set the owner of installed files [USER=]
   --with-group=GROUP      set the group owner of installed files [GROUP=]
   --with-device-uid=UID   set the owner used for new device nodes [UID=0]
@@ -9058,6 +9067,20 @@ fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STATIC_LINK" >&5
 printf "%s\n" "$STATIC_LINK" >&6; }
 
+################################################################################
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use dynamic linking" >&5
+printf %s "checking whether to use dynamic linking... " >&6; }
+# Check whether --enable-shared was given.
+if test ${enable_shared+y}
+then :
+  enableval=$enable_shared; SHARED_LINK=$enableval
+else $as_nop
+  SHARED_LINK="yes"
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SHARED_LINK" >&5
+printf "%s\n" "$SHARED_LINK" >&6; }
+
 ################################################################################
 
 
@@ -9151,6 +9174,35 @@ test "$prefix" = "NONE" && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
 
+
+
+# Check whether --with-blkid was given.
+if test ${with_blkid+y}
+then :
+  withval=$with_blkid;
+else $as_nop
+  with_blkid="yes"
+fi
+
+
+# Check whether --with-systemd was given.
+if test ${with_systemd+y}
+then :
+  withval=$with_systemd;
+else $as_nop
+  with_systemd="yes"
+fi
+
+
+# Check whether --with-udev was given.
+if test ${with_udev+y}
+then :
+  withval=$with_udev;
+else $as_nop
+  with_udev="yes"
+fi
+
+
 ################################################################################
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking file owner" >&5
 printf %s "checking file owner... " >&6; }
@@ -9627,6 +9679,7 @@ fi
 then :
 
 		THIN_CHECK_VSN=$("$THIN_CHECK_CMD" -V 2>/dev/null)
+		THIN_CHECK_VSN=${THIN_CHECK_VSN##* }  # trim away all before the first space
 		THIN_CHECK_VSN_MAJOR=$(echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $1}')
 		THIN_CHECK_VSN_MINOR=$(echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $2}')
 
@@ -10019,8 +10072,8 @@ fi
 
 fi
 
-	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether thin_check supports the needs-check flag" >&5
-printf %s "checking whether thin_check supports the needs-check flag... " >&6; }
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $THIN_CHECK_CMD ($THIN_CHECK_VSN_MAJOR.$THIN_CHECK_VSN_MINOR) supports the needs-check flag" >&5
+printf %s "checking whether $THIN_CHECK_CMD ($THIN_CHECK_VSN_MAJOR.$THIN_CHECK_VSN_MINOR) supports the needs-check flag... " >&6; }
 	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIN_CHECK_NEEDS_CHECK" >&5
 printf "%s\n" "$THIN_CHECK_NEEDS_CHECK" >&6; }
 	if test "$THIN_CHECK_NEEDS_CHECK" = "yes"
@@ -10255,12 +10308,13 @@ fi
 	if test "$CACHE_CHECK_NEEDS_CHECK" = "yes" && test "$CACHE_CONFIGURE_WARN" != "y"
 then :
 
-		$CACHE_CHECK_CMD -V 2>/dev/null >conftest.tmp
+		"$CACHE_CHECK_CMD" -V 2>/dev/null >conftest.tmp
 		read -r CACHE_CHECK_VSN < conftest.tmp
 		IFS=.- read -r CACHE_CHECK_VSN_MAJOR CACHE_CHECK_VSN_MINOR CACHE_CHECK_VSN_PATCH LEFTOVER < conftest.tmp
 		rm -f conftest.tmp
 
 		# Require version >= 0.5.4 for --clear-needs-check-flag
+		CACHE_CHECK_VSN_MAJOR=${CACHE_CHECK_VSN_MAJOR##* }
 		if test -z "$CACHE_CHECK_VSN_MAJOR" \
 			|| test -z "$CACHE_CHECK_VSN_MINOR" \
 			|| test -z "$CACHE_CHECK_VSN_PATCH"
@@ -10666,8 +10720,8 @@ fi
 
 fi
 
-	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether cache_check supports the needs-check flag" >&5
-printf %s "checking whether cache_check supports the needs-check flag... " >&6; }
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CACHE_CHECK_CMD ($CACHE_CHECK_VSN_MAJOR.$CACHE_CHECK_VSN_MINOR.$CACHE_CHECK_VSN_PATCH) supports the needs-check flag" >&5
+printf %s "checking whether $CACHE_CHECK_CMD ($CACHE_CHECK_VSN_MAJOR.$CACHE_CHECK_VSN_MINOR.$CACHE_CHECK_VSN_PATCH) supports the needs-check flag... " >&6; }
 	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CACHE_CHECK_NEEDS_CHECK" >&5
 printf "%s\n" "$CACHE_CHECK_NEEDS_CHECK" >&6; }
 	if test "$CACHE_CHECK_NEEDS_CHECK" = "yes"
@@ -12611,21 +12665,27 @@ printf "%s\n" "#define DEFAULT_USE_LVMPOLLD $DEFAULT_USE_LVMPOLLD" >>confdefs.h
 
 
 SYSTEMD_MIN_VERSION=0
-if test -n "$PKG_CONFIG" && \
+SYSTEMD_JOURNAL_SUPPORT="no"
+APP_MACHINEID_SUPPORT="no"
+
+if test "$with_systemd" = "yes"
+then :
+  if test -n "$PKG_CONFIG" && \
     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd >= 221\""; } >&5
   ($PKG_CONFIG --exists --print-errors "systemd >= 221") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  SYSTEMD_MIN_VERSION=221
+  SYSTEMD_MIN_VERSION=221 SYSTEMD_JOURNAL_SUPPORT="maybe"
 fi
-if test -n "$PKG_CONFIG" && \
+      if test -n "$PKG_CONFIG" && \
     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd >= 234\""; } >&5
   ($PKG_CONFIG --exists --print-errors "systemd >= 234") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  SYSTEMD_MIN_VERSION=234
+  SYSTEMD_MIN_VERSION=234 APP_MACHINEID_SUPPORT="maybe"
+fi
 fi
 
 ################################################################################
@@ -12639,50 +12699,44 @@ else $as_nop
   NOTIFYDBUS_SUPPORT="no"
 fi
 
-if test "$NOTIFYDBUS_SUPPORT" = "yes" && test "$SYSTEMD_MIN_VERSION" -lt 221
-then :
-  as_fn_error $? "Enabling notify-dbus requires systemd >= 221" "$LINENO" 5
-fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NOTIFYDBUS_SUPPORT" >&5
 printf "%s\n" "$NOTIFYDBUS_SUPPORT" >&6; }
 
 if test "$NOTIFYDBUS_SUPPORT" = "yes"
 then :
+  if test "$SYSTEMD_MIN_VERSION" -lt 221
+then :
+  as_fn_error $? "--enable-notify-dbus requires systemd >= 221. (--with-systemd=$with_systemd)" "$LINENO" 5
+fi
 
 printf "%s\n" "#define NOTIFYDBUS_SUPPORT 1" >>confdefs.h
 
 fi
 
 ################################################################################
-if test "$SYSTEMD_MIN_VERSION" -ge 221
+if test "$SYSTEMD_JOURNAL_SUPPORT" != "no"
 then :
-  SYSTEMD_JOURNAL_SUPPORT="maybe"
-else $as_nop
-  SYSTEMD_JOURNAL_SUPPORT="no"
-fi
-ac_fn_c_check_header_compile "$LINENO" "systemd/sd-journal.h" "ac_cv_header_systemd_sd_journal_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "systemd/sd-journal.h" "ac_cv_header_systemd_sd_journal_h" "$ac_includes_default"
 if test "x$ac_cv_header_systemd_sd_journal_h" = xyes
-then :
-  if test "$SYSTEMD_JOURNAL_SUPPORT" != "no"
 then :
   SYSTEMD_JOURNAL_SUPPORT="yes"
-fi
 else $as_nop
   SYSTEMD_JOURNAL_SUPPORT="no"
 fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to log to systemd journal" >&5
-printf %s "checking whether to log to systemd journal... " >&6; }
+fi
 # Check whether --enable-systemd-journal was given.
 if test ${enable_systemd_journal+y}
 then :
   enableval=$enable_systemd_journal; if test "$enableval" = "yes" && test "$SYSTEMD_JOURNAL_SUPPORT" = "no"
 then :
-  as_fn_error $? "Enabling systemd journal requires systemd/sd-journal.h and systemd >= 221." "$LINENO" 5
+  as_fn_error $? "--enable-systemd-journal requires systemd/sd-journal.h and systemd >= 221. (--with-systemd=$with_systemd)" "$LINENO" 5
 fi
 	      SYSTEMD_JOURNAL_SUPPORT=$enableval
 fi
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to log to systemd journal" >&5
+printf %s "checking whether to log to systemd journal... " >&6; }
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SYSTEMD_JOURNAL_SUPPORT" >&5
 printf "%s\n" "$SYSTEMD_JOURNAL_SUPPORT" >&6; }
 
@@ -12694,35 +12748,29 @@ printf "%s\n" "#define SYSTEMD_JOURNAL_SUPPORT 1" >>confdefs.h
 fi
 
 ################################################################################
-if test "$SYSTEMD_MIN_VERSION" -ge 234
+if test "$APP_MACHINEID_SUPPORT" != "no"
 then :
-  APP_MACHINEID_SUPPORT="maybe"
-else $as_nop
-  APP_MACHINEID_SUPPORT="no"
-fi
-ac_fn_c_check_header_compile "$LINENO" "systemd/sd-id128.h" "ac_cv_header_systemd_sd_id128_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "systemd/sd-id128.h" "ac_cv_header_systemd_sd_id128_h" "$ac_includes_default"
 if test "x$ac_cv_header_systemd_sd_id128_h" = xyes
-then :
-  if test "$APP_MACHINEID_SUPPORT" != "no"
 then :
   APP_MACHINEID_SUPPORT="yes"
-fi
 else $as_nop
   APP_MACHINEID_SUPPORT="no"
 fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support systemd appmachineid" >&5
-printf %s "checking whether to support systemd appmachineid... " >&6; }
+fi
 # Check whether --enable-app-machineid was given.
 if test ${enable_app_machineid+y}
 then :
   enableval=$enable_app_machineid; if test "$enableval" = "yes" && test "$APP_MACHINEID_SUPPORT" = "no"
 then :
-  as_fn_error $? "Enabling app machineid requires systemd/sd-id128.h and systemd >= 234." "$LINENO" 5
+  as_fn_error $? "--enable-app-machineid requires systemd/sd-id128.h and systemd >= 234. (--with-systemd=$with_systemd)" "$LINENO" 5
 fi
 	      APP_MACHINEID_SUPPORT=$enableval
 fi
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support systemd appmachineid" >&5
+printf %s "checking whether to support systemd appmachineid... " >&6; }
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $APP_MACHINEID_SUPPORT" >&5
 printf "%s\n" "$APP_MACHINEID_SUPPORT" >&6; }
 
@@ -12962,31 +13010,25 @@ printf "%s\n" "$SYSTEMD_RUN_CMD" >&6; }
 
 ################################################################################
 
+# TODO: possibly detect right version of blkid with BLKID_SUBLKS_FSINFO support
+#       so lvresize can check detected flag here
+#
+DEFAULT_USE_BLKID_WIPING=0
 # Check whether --enable-blkid_wiping was given.
 if test ${enable_blkid_wiping+y}
 then :
   enableval=$enable_blkid_wiping; BLKID_WIPING=$enableval
 else $as_nop
+  if test "$with_blkid" = "yes"
+then :
   BLKID_WIPING="maybe"
+else $as_nop
+  BLKID_WIPING="no"
 fi
-
-
-# TODO: possibly detect right version of blkid with BLKID_SUBLKS_FSINFO support
-#       so lvresize can check detected flag here
-#
-DEFAULT_USE_BLKID_WIPING=0
-if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"blkid >= 2.24\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "blkid >= 2.24") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  HAVE_BLKID="yes"
-else
-  HAVE_BLKID="no"
 fi
 
-if test "$HAVE_BLKID" = "yes"
+
+if test "$BLKID_WIPING" != "no"
 then :
 
 
@@ -13048,39 +13090,28 @@ fi
         # Put the nasty error message in config.log where it belongs
         echo "$BLKID_PKG_ERRORS" >&5
 
-        as_fn_error $? "Package requirements (blkid >= 2.24) were not met:
-
-$BLKID_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables BLKID_CFLAGS
-and BLKID_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
+        if test "$BLKID_WIPING" = "yes"
+then :
+  BLKID_WIPING="error"
+else $as_nop
+  BLKID_WIPING="no"
+fi
 elif test $pkg_failed = untried; then
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
 printf "%s\n" "no" >&6; }
-        { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables BLKID_CFLAGS
-and BLKID_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
+        if test "$BLKID_WIPING" = "yes"
+then :
+  BLKID_WIPING="error"
+else $as_nop
+  BLKID_WIPING="no"
+fi
 else
         BLKID_CFLAGS=$pkg_cv_BLKID_CFLAGS
         BLKID_LIBS=$pkg_cv_BLKID_LIBS
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 printf "%s\n" "yes" >&6; }
 
-
-	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for blkid.h defines BLKID_SUBLKS_FSINFO." >&5
+		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for blkid.h defines BLKID_SUBLKS_FSINFO." >&5
 printf %s "checking for blkid.h defines BLKID_SUBLKS_FSINFO.... " >&6; }
 if test ${ac_cv_have_blkid_sublks_fsinfo+y}
 then :
@@ -13092,6 +13123,7 @@ else $as_nop
 #ifndef BLKID_SUBLKS_FSINFO
 #error BLKID_SUBLKS_FSINFO is missing
 #endif
+
 int
 main (void)
 {
@@ -13111,47 +13143,38 @@ fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_blkid_sublks_fsinfo" >&5
 printf "%s\n" "$ac_cv_have_blkid_sublks_fsinfo" >&6; }
 
-	if test $ac_cv_have_blkid_sublks_fsinfo = yes
+		if test $ac_cv_have_blkid_sublks_fsinfo = yes
 then :
 
 printf "%s\n" "#define HAVE_BLKID_SUBLKS_FSINFO 1" >>confdefs.h
 
 fi
 
-fi
-
-fi
-
-if test "$BLKID_WIPING" != "no"
+		if test "$with_blkid" = "no"
 then :
-
-	if test "$HAVE_BLKID" = "yes"
-then :
-
-		BLKID_WIPING="yes"
-		BLKID_PC="blkid"
-		DEFAULT_USE_BLKID_WIPING=1
-		BLKID_STATIC_LIBS=$("$PKG_CONFIG" --static --libs blkid)
-
-printf "%s\n" "#define BLKID_WIPING_SUPPORT 1" >>confdefs.h
-
-
+  BLKID_WIPING="error"
 else $as_nop
 
-		if test "$BLKID_WIPING" = "maybe"
-then :
+			BLKID_WIPING="yes"
+			BLKID_PC="blkid"
+			DEFAULT_USE_BLKID_WIPING=1
+			# pkg_config --static  does not really work ATM...
+			BLKID_STATIC_LIBS=$("$PKG_CONFIG" --static --libs blkid)
 
-			BLKID_WIPING=no
+printf "%s\n" "#define BLKID_WIPING_SUPPORT 1" >>confdefs.h
 
-else $as_nop
 
-			as_fn_error $? "bailing out... blkid library >= 2.24 is required" "$LINENO" 5
+fi
 
 fi
 
 fi
 
+if test "$BLKID_WIPING" = "error"
+then :
+  as_fn_error $? "--enable-blkid_wiping requires blkid library >= 2.24. (--with-blkid=$with_blkid)" "$LINENO" 5
 fi
+
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable libblkid detection of signatures when wiping" >&5
 printf %s "checking whether to enable libblkid detection of signatures when wiping... " >&6; }
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BLKID_WIPING" >&5
@@ -13173,6 +13196,10 @@ fi
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $UDEV_SYNC" >&5
 printf "%s\n" "$UDEV_SYNC" >&6; }
+if test "$UDEV_SYNC" = "yes" && test "$with_udev" = "no"
+then :
+  as_fn_error $? "--enable-udev_sync requires udev >= 143. (--with-udev=$with_udev)" "$LINENO" 5
+fi
 
 if test "$UDEV_SYNC" = "yes"
 then :
@@ -13439,7 +13466,11 @@ printf "%s\n" "$CMDLIB" >&6; }
 
 if test "$CMDLIB" = "yes"
 then :
-  LVM2CMD_LIB="-llvm2cmd"
+  if test "$SHARED_LINK" = "no"
+then :
+  as_fn_error $? "--enable-cmdlib requires dynamic linking." "$LINENO" 5
+fi
+       LVM2CMD_LIB="-llvm2cmd"
 else $as_nop
   LVM2CMD_LIB=
 fi
@@ -16246,6 +16277,7 @@ AIO_LIBS=${AIO_LIBS:--laio}
 
 
 
+
 
 
 ################################################################################


=====================================
configure.ac
=====================================
@@ -185,6 +185,14 @@ AC_ARG_ENABLE(static_link,
 	      STATIC_LINK=$enableval, STATIC_LINK="no")
 AC_MSG_RESULT([$STATIC_LINK])
 
+################################################################################
+dnl -- Disables shared linking
+AC_MSG_CHECKING([whether to use dynamic linking])
+AC_ARG_ENABLE(shared,
+	      AS_HELP_STRING([--disable-shared], [disable dynamic linking]),
+	      SHARED_LINK=$enableval, SHARED_LINK="yes")
+AC_MSG_RESULT([$SHARED_LINK])
+
 ################################################################################
 dnl -- Check if compiler/linker supports PIE and RELRO
 AC_TRY_CCFLAG([-pie], [HAVE_PIE], [], [])
@@ -204,6 +212,14 @@ test "$prefix" = "NONE" && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
 
+
+AC_ARG_WITH(blkid, [AS_HELP_STRING([--without-blkid], [do not build with blkid library])],
+	    [], with_blkid="yes")
+AC_ARG_WITH(systemd, [AS_HELP_STRING([--without-systemd], [do not build with systemd library])],
+	    [], with_systemd="yes")
+AC_ARG_WITH(udev, [AS_HELP_STRING([--without-udev], [do not build with udev library])],
+	    [], with_udev="yes")
+
 ################################################################################
 dnl -- Setup the ownership of the files
 AC_MSG_CHECKING([file owner])
@@ -410,6 +426,7 @@ AS_CASE(["$THIN"],
 	])
 	AS_IF([test "$THIN_CHECK_NEEDS_CHECK" = "yes" && test "$THIN_CONFIGURE_WARN" != "y"], [
 		THIN_CHECK_VSN=$("$THIN_CHECK_CMD" -V 2>/dev/null)
+		THIN_CHECK_VSN=${THIN_CHECK_VSN##* }  # trim away all before the first space
 		THIN_CHECK_VSN_MAJOR=$(echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $1}')
 		THIN_CHECK_VSN_MINOR=$(echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $2}')
 
@@ -451,7 +468,7 @@ AS_CASE(["$THIN"],
 		])
 	])
 
-	AC_MSG_CHECKING([whether thin_check supports the needs-check flag])
+	AC_MSG_CHECKING([whether $THIN_CHECK_CMD ($THIN_CHECK_VSN_MAJOR.$THIN_CHECK_VSN_MINOR) supports the needs-check flag])
 	AC_MSG_RESULT([$THIN_CHECK_NEEDS_CHECK])
 	AS_IF([test "$THIN_CHECK_NEEDS_CHECK" = "yes"], [
 		AC_DEFINE([THIN_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'thin_check' tool requires the --clear-needs-check-flag option])
@@ -521,12 +538,13 @@ AS_CASE(["$CACHE"],
 		])
 	])
 	AS_IF([test "$CACHE_CHECK_NEEDS_CHECK" = "yes" && test "$CACHE_CONFIGURE_WARN" != "y"], [
-		$CACHE_CHECK_CMD -V 2>/dev/null >conftest.tmp
+		"$CACHE_CHECK_CMD" -V 2>/dev/null >conftest.tmp
 		read -r CACHE_CHECK_VSN < conftest.tmp
 		IFS=.- read -r CACHE_CHECK_VSN_MAJOR CACHE_CHECK_VSN_MINOR CACHE_CHECK_VSN_PATCH LEFTOVER < conftest.tmp
 		rm -f conftest.tmp
 
 		# Require version >= 0.5.4 for --clear-needs-check-flag
+		CACHE_CHECK_VSN_MAJOR=${CACHE_CHECK_VSN_MAJOR##* }
 		AS_IF([test -z "$CACHE_CHECK_VSN_MAJOR" \
 			|| test -z "$CACHE_CHECK_VSN_MINOR" \
 			|| test -z "$CACHE_CHECK_VSN_PATCH"], [
@@ -574,7 +592,7 @@ AS_CASE(["$CACHE"],
 		])
 	])
 
-	AC_MSG_CHECKING([whether cache_check supports the needs-check flag])
+	AC_MSG_CHECKING([whether $CACHE_CHECK_CMD ($CACHE_CHECK_VSN_MAJOR.$CACHE_CHECK_VSN_MINOR.$CACHE_CHECK_VSN_PATCH) supports the needs-check flag])
 	AC_MSG_RESULT([$CACHE_CHECK_NEEDS_CHECK])
 	AS_IF([test "$CACHE_CHECK_NEEDS_CHECK" = "yes"], [
 		AC_DEFINE([CACHE_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'cache_check' tool requires the --clear-needs-check-flag option])
@@ -1012,8 +1030,12 @@ AC_DEFINE_UNQUOTED(DEFAULT_USE_LVMPOLLD, [$DEFAULT_USE_LVMPOLLD],
 
 
 SYSTEMD_MIN_VERSION=0
-PKG_CHECK_EXISTS(systemd >= 221, [SYSTEMD_MIN_VERSION=221])
-PKG_CHECK_EXISTS(systemd >= 234, [SYSTEMD_MIN_VERSION=234])
+SYSTEMD_JOURNAL_SUPPORT="no"
+APP_MACHINEID_SUPPORT="no"
+
+AS_IF([test "$with_systemd" = "yes"],
+      PKG_CHECK_EXISTS(systemd >= 221, [SYSTEMD_MIN_VERSION=221 SYSTEMD_JOURNAL_SUPPORT="maybe"])
+      PKG_CHECK_EXISTS(systemd >= 234, [SYSTEMD_MIN_VERSION=234 APP_MACHINEID_SUPPORT="maybe"]))
 
 ################################################################################
 dnl -- Build notifydbus
@@ -1022,26 +1044,24 @@ AC_ARG_ENABLE(notify-dbus,
 	      AS_HELP_STRING([--enable-notify-dbus],
 			     [enable LVM notification using dbus]),
 	      NOTIFYDBUS_SUPPORT=$enableval, NOTIFYDBUS_SUPPORT="no")
-AS_IF([test "$NOTIFYDBUS_SUPPORT" = "yes" && test "$SYSTEMD_MIN_VERSION" -lt 221],
-      [AC_MSG_ERROR([Enabling notify-dbus requires systemd >= 221])])
 AC_MSG_RESULT([$NOTIFYDBUS_SUPPORT])
 
 AS_IF([test "$NOTIFYDBUS_SUPPORT" = "yes"],
+      AS_IF([test "$SYSTEMD_MIN_VERSION" -lt 221],
+            [AC_MSG_ERROR([--enable-notify-dbus requires systemd >= 221. (--with-systemd=$with_systemd)])])
       AC_DEFINE([NOTIFYDBUS_SUPPORT], 1, [Define to 1 to include code that uses dbus notification.]))
 
 ################################################################################
 dnl -- Build with systemd journaling when the header file is present
-AS_IF([test "$SYSTEMD_MIN_VERSION" -ge 221], [SYSTEMD_JOURNAL_SUPPORT="maybe"], [SYSTEMD_JOURNAL_SUPPORT="no"])
-AC_CHECK_HEADER([systemd/sd-journal.h],
-		[AS_IF([test "$SYSTEMD_JOURNAL_SUPPORT" != "no"], [SYSTEMD_JOURNAL_SUPPORT="yes"])],
-                [SYSTEMD_JOURNAL_SUPPORT="no"])
-AC_MSG_CHECKING([whether to log to systemd journal])
+AS_IF([test "$SYSTEMD_JOURNAL_SUPPORT" != "no"],
+      AC_CHECK_HEADER([systemd/sd-journal.h], [SYSTEMD_JOURNAL_SUPPORT="yes"], [SYSTEMD_JOURNAL_SUPPORT="no"]))
 AC_ARG_ENABLE(systemd-journal,
 	      AS_HELP_STRING([--disable-systemd-journal],
 			     [disable LVM systemd journaling]),
 	      AS_IF([test "$enableval" = "yes" && test "$SYSTEMD_JOURNAL_SUPPORT" = "no"],
-		    AC_MSG_ERROR([Enabling systemd journal requires systemd/sd-journal.h and systemd >= 221.]))
+		    AC_MSG_ERROR([--enable-systemd-journal requires systemd/sd-journal.h and systemd >= 221. (--with-systemd=$with_systemd)]))
 	      SYSTEMD_JOURNAL_SUPPORT=$enableval, [])
+AC_MSG_CHECKING([whether to log to systemd journal])
 AC_MSG_RESULT([$SYSTEMD_JOURNAL_SUPPORT])
 
 AS_IF([test "$SYSTEMD_JOURNAL_SUPPORT" = "yes"],
@@ -1049,17 +1069,15 @@ AS_IF([test "$SYSTEMD_JOURNAL_SUPPORT" = "yes"],
 
 ################################################################################
 dnl -- Build appmachineid when header file sd-id128.h is present
-AS_IF([test "$SYSTEMD_MIN_VERSION" -ge 234], [APP_MACHINEID_SUPPORT="maybe"], [APP_MACHINEID_SUPPORT="no"])
-AC_CHECK_HEADER([systemd/sd-id128.h],
-		[AS_IF([test "$APP_MACHINEID_SUPPORT" != "no"], [APP_MACHINEID_SUPPORT="yes"])],
-		[APP_MACHINEID_SUPPORT="no"])
-AC_MSG_CHECKING([whether to support systemd appmachineid])
+AS_IF([test "$APP_MACHINEID_SUPPORT" != "no"],
+      [AC_CHECK_HEADER([systemd/sd-id128.h], [APP_MACHINEID_SUPPORT="yes"], [APP_MACHINEID_SUPPORT="no"])])
 AC_ARG_ENABLE(app-machineid,
 	      AS_HELP_STRING([--disable-app-machineid],
 			     [disable LVM system ID using app-specific machine-id]),
 	      AS_IF([test "$enableval" = "yes" && test "$APP_MACHINEID_SUPPORT" = "no"],
-		    AC_MSG_ERROR([Enabling app machineid requires systemd/sd-id128.h and systemd >= 234.]))
+		    AC_MSG_ERROR([--enable-app-machineid requires systemd/sd-id128.h and systemd >= 234. (--with-systemd=$with_systemd)]))
 	      APP_MACHINEID_SUPPORT=$enableval, [])
+AC_MSG_CHECKING([whether to support systemd appmachineid])
 AC_MSG_RESULT([$APP_MACHINEID_SUPPORT])
 
 AS_IF([test "$APP_MACHINEID_SUPPORT" = "yes"],
@@ -1084,49 +1102,44 @@ AC_MSG_RESULT([$SYSTEMD_RUN_CMD])
 ################################################################################
 
 dnl -- Enable blkid wiping functionality
-AC_ARG_ENABLE(blkid_wiping,
-	      AS_HELP_STRING([--disable-blkid_wiping],
-			     [disable libblkid detection of signatures when wiping and use native code instead]),
-	      BLKID_WIPING=$enableval, BLKID_WIPING="maybe")
-
 # TODO: possibly detect right version of blkid with BLKID_SUBLKS_FSINFO support
 #       so lvresize can check detected flag here
 #
 DEFAULT_USE_BLKID_WIPING=0
-PKG_CHECK_EXISTS([blkid >= 2.24], [HAVE_BLKID="yes"], [HAVE_BLKID="no"])
+AC_ARG_ENABLE(blkid_wiping,
+	      AS_HELP_STRING([--disable-blkid_wiping],
+			     [disable libblkid detection of signatures when wiping and use native code instead]),
+	      BLKID_WIPING=$enableval,
+	      [AS_IF([test "$with_blkid" = "yes"], [BLKID_WIPING="maybe"], [BLKID_WIPING="no"])])
 
-AS_IF([test "$HAVE_BLKID" = "yes"], [
+AS_IF([test "$BLKID_WIPING" != "no"], [
 	PKG_CHECK_MODULES([BLKID], [blkid >= 2.24], [
-
-	AC_CACHE_CHECK([for blkid.h defines BLKID_SUBLKS_FSINFO.],
-		[ac_cv_have_blkid_sublks_fsinfo],
-		[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <blkid/blkid.h>
+		AC_CACHE_CHECK([for blkid.h defines BLKID_SUBLKS_FSINFO.],
+			[ac_cv_have_blkid_sublks_fsinfo],
+			[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <blkid/blkid.h>
 #ifndef BLKID_SUBLKS_FSINFO
 #error BLKID_SUBLKS_FSINFO is missing
-#endif])],
-		[ac_cv_have_blkid_sublks_fsinfo="yes"], [ac_cv_have_blkid_sublks_fsinfo="no"])])
-
-	AC_IF_YES(ac_cv_have_blkid_sublks_fsinfo,
-		  AC_DEFINE(HAVE_BLKID_SUBLKS_FSINFO, 1,
-			    [Define if blkid.h has BLKID_SUBLKS_FSINFO]))
-	])
+#endif
+			])], [ac_cv_have_blkid_sublks_fsinfo="yes"], [ac_cv_have_blkid_sublks_fsinfo="no"])])
+
+		AC_IF_YES(ac_cv_have_blkid_sublks_fsinfo,
+			  AC_DEFINE(HAVE_BLKID_SUBLKS_FSINFO, 1,
+				    [Define if blkid.h has BLKID_SUBLKS_FSINFO]))
+
+		AS_IF([test "$with_blkid" = "no"], [BLKID_WIPING="error"], [
+			BLKID_WIPING="yes"
+			BLKID_PC="blkid"
+			DEFAULT_USE_BLKID_WIPING=1
+			# pkg_config --static  does not really work ATM...
+			BLKID_STATIC_LIBS=$("$PKG_CONFIG" --static --libs blkid)
+			AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.])
+		      ])
+      ], [AS_IF([test "$BLKID_WIPING" = "yes"], [BLKID_WIPING="error"], [BLKID_WIPING="no"])])
 ])
 
-AS_IF([test "$BLKID_WIPING" != "no"], [
-	AS_IF([test "$HAVE_BLKID" = "yes"], [
-		BLKID_WIPING="yes"
-		BLKID_PC="blkid"
-		DEFAULT_USE_BLKID_WIPING=1
-		BLKID_STATIC_LIBS=$("$PKG_CONFIG" --static --libs blkid)
-		AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.])
-	], [
-		AS_IF([test "$BLKID_WIPING" = "maybe"], [
-			BLKID_WIPING=no
-		], [
-			AC_MSG_ERROR([bailing out... blkid library >= 2.24 is required])
-		])
-	])
-])
+AS_IF([test "$BLKID_WIPING" = "error"],
+	[AC_MSG_ERROR([--enable-blkid_wiping requires blkid library >= 2.24. (--with-blkid=$with_blkid)])])
+
 AC_MSG_CHECKING([whether to enable libblkid detection of signatures when wiping])
 AC_MSG_RESULT([$BLKID_WIPING])
 AC_DEFINE_UNQUOTED(DEFAULT_USE_BLKID_WIPING, [$DEFAULT_USE_BLKID_WIPING],
@@ -1140,6 +1153,8 @@ AC_ARG_ENABLE(udev_sync,
 			     [enable synchronization with udev processing]),
 	      UDEV_SYNC=$enableval, UDEV_SYNC="no")
 AC_MSG_RESULT([$UDEV_SYNC])
+AS_IF([test "$UDEV_SYNC" = "yes" && test "$with_udev" = "no"],
+	[AC_MSG_ERROR([--enable-udev_sync requires udev >= 143. (--with-udev=$with_udev)])])
 
 AS_IF([test "$UDEV_SYNC" = "yes"], [
 	PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"])
@@ -1218,7 +1233,10 @@ AC_ARG_ENABLE(cmdlib,
 	      CMDLIB=$enableval, CMDLIB="no")
 AC_MSG_RESULT([$CMDLIB])
 AC_SUBST([LVM2CMD_LIB])
-AS_IF([test "$CMDLIB" = "yes"], [LVM2CMD_LIB="-llvm2cmd"], [LVM2CMD_LIB=])
+AS_IF([test "$CMDLIB" = "yes"],
+      [AS_IF([test "$SHARED_LINK" = "no"],
+	     [AC_MSG_ERROR([--enable-cmdlib requires dynamic linking.])])
+       LVM2CMD_LIB="-llvm2cmd"], [LVM2CMD_LIB=])
 
 ################################################################################
 dnl -- Enable D-Bus service
@@ -1322,7 +1340,7 @@ AC_MSG_RESULT([$BUILD_DMFILEMAPD])
 
 dnl -- dmfilemapd requires FIEMAP
 AS_IF([test "$BUILD_DMFILEMAPD" = "yes"],
-      [AC_CHECK_HEADER([linux/fiemap.h], [],    
+      [AC_CHECK_HEADER([linux/fiemap.h], [],
 		      ,[AC_MSG_ERROR(--enable-dmfilemapd requires fiemap.h)])
        AC_DEFINE([DMFILEMAPD], 1, [Define to 1 to enable the device-mapper filemap daemon.])])
 
@@ -1892,6 +1910,7 @@ AC_SUBST(SBINDIR)
 AC_SUBST(SELINUX_LIBS)
 AC_SUBST(SELINUX_PC)
 AC_SUBST(SELINUX_STATIC_LIBS)
+AC_SUBST(SHARED_LINK)
 AC_SUBST(SILENT_RULES)
 AC_SUBST(SNAPSHOTS)
 AC_SUBST(STATICDIR)


=====================================
device_mapper/ioctl/libdm-iface.c
=====================================
@@ -1620,7 +1620,7 @@ static int _check_uevent_generated(struct dm_ioctl *dmi)
 static int _create_and_load_v4(struct dm_task *dmt)
 {
 	struct dm_task *task;
-	int r;
+	int r, ioctl_errno = 0;
 	uint32_t cookie;
 
 	/* Use new task struct to create the device */
@@ -1646,8 +1646,10 @@ static int _create_and_load_v4(struct dm_task *dmt)
 	task->cookie_set = dmt->cookie_set;
 	task->add_node = dmt->add_node;
 
-	if (!dm_task_run(task))
+	if (!dm_task_run(task)) {
+		ioctl_errno = task->ioctl_errno;
 		goto_bad;
+	}
 
 	dm_task_destroy(task);
 
@@ -1673,6 +1675,8 @@ static int _create_and_load_v4(struct dm_task *dmt)
 	task->ima_measurement = dmt->ima_measurement;
 
 	r = dm_task_run(task);
+	if (!r)
+		ioctl_errno = task->ioctl_errno;
 
 	task->head = NULL;
 	task->tail = NULL;
@@ -1719,12 +1723,18 @@ static int _create_and_load_v4(struct dm_task *dmt)
 	if (!dm_task_run(dmt))
 		log_error("Failed to revert device creation.");
 
+	if (ioctl_errno != 0)
+		dmt->ioctl_errno =  ioctl_errno;
+
 	return 0;
 
       bad:
 	dm_task_destroy(task);
 	_udev_complete(dmt);
 
+	if (ioctl_errno != 0)
+		dmt->ioctl_errno =  ioctl_errno;
+
 	return 0;
 }
 


=====================================
libdm/Makefile.in
=====================================
@@ -47,7 +47,9 @@ endif
 
 LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX)
 LIB_VERSION = $(LIB_VERSION_DM)
+ifeq ("@SHARED_LINK@", "yes")
 TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION) .symver_check
+endif
 
 CFLOW_LIST = $(SOURCES)
 CFLOW_LIST_TARGET = libdevmapper.cflow
@@ -103,7 +105,12 @@ install_dynamic: install_ at interface@
 
 install_static: install_ at interface@_static
 
+ifeq ("@SHARED_LINK@", "yes")
 install_ioctl: install_lib_shared
+endif
+ifeq ("@STATIC_LINK@", "yes")
+install_ioctl: install_ioctl_static
+endif
 
 install_pkgconfig: libdevmapper.pc
 	@echo "    [INSTALL] $<"


=====================================
libdm/dm-tools/Makefile.in
=====================================
@@ -19,13 +19,15 @@ top_builddir = @top_builddir@
 all: device-mapper
 
 SOURCES2 = dmsetup.c
-TARGETS_DM = dmsetup
 
 CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES2))
 CFLOW_TARGET := $(TARGETS_DM)
 -include $(top_builddir)/libdm/libdevmapper.cflow
 
-install_device-mapper: install_dmsetup_dynamic
+ifeq ("@SHARED_LINK@", "yes")
+  TARGETS_DM += dmsetup
+  install_device-mapper: install_dmsetup_dynamic
+endif
 
 ifeq ("@STATIC_LINK@", "yes")
   TARGETS_DM += dmsetup.static
@@ -35,8 +37,11 @@ endif
 # dmfilemapd support
 ifeq ("@BUILD_DMFILEMAPD@", "yes")
   SOURCES2 += dmfilemapd.c
-  TARGETS_DM += dmfilemapd
-  install_dmfilemapd: install_dmfilemapd_dynamic
+
+  ifeq ("@SHARED_LINK@", "yes")
+     TARGETS_DM += dmfilemapd
+     install_dmfilemapd: install_dmfilemapd_dynamic
+  endif
 
   ifeq ("@STATIC_LINK@", "yes")
     TARGETS_DM += dmfilemapd.static


=====================================
libdm/make.tmpl.in
=====================================
@@ -318,7 +318,12 @@ SUBDIRS.cflow := $(SUBDIRS:=.cflow)
 SUBDIRS.clean := $(SUBDIRS:=.clean)
 SUBDIRS.distclean := $(SUBDIRS:=.distclean)
 
-TARGETS += $(LIB_SHARED) $(LIB_STATIC)
+ifeq ("@SHARED_LINK@", "yes")
+  TARGETS += $(LIB_SHARED)
+endif
+ifeq ("@STATIC_LINK@", "yes")
+  TARGETS += $(LIB_STATIC)
+endif
 
 all: $(SUBDIRS) $(TARGETS)
 


=====================================
make.tmpl.in
=====================================
@@ -373,7 +373,12 @@ SUBDIRS.cflow := $(SUBDIRS:=.cflow)
 SUBDIRS.clean := $(SUBDIRS:=.clean)
 SUBDIRS.distclean := $(SUBDIRS:=.distclean)
 
-TARGETS += $(LIB_SHARED) $(LIB_STATIC)
+ifeq ("@SHARED_LINK@", "yes")
+  TARGETS += $(LIB_SHARED)
+endif
+ifeq ("@STATIC_LINK@", "yes")
+  TARGETS += $(LIB_STATIC)
+endif
 
 INTERNAL_LIBS = \
 	$(top_builddir)/libdaemon/client/libdaemonclient.a \


=====================================
test/lib/aux.sh
=====================================
@@ -1732,6 +1732,7 @@ thin_pool_error_works_32() {
 }
 
 thin_restore_needs_more_volumes() {
+	# Note: new version prints thin_restore first
 	case $("$LVM_TEST_THIN_RESTORE_CMD" -V) in
 		# With older version of thin-tool we got slightly more compact metadata
 		0.[0-6]*|0.7.0*) return 0 ;;
@@ -1741,13 +1742,15 @@ thin_restore_needs_more_volumes() {
 }
 
 udev_wait() {
-	pgrep udev >/dev/null || return 0
-	which udevadm &>/dev/null || return 0
-	if test -n "${1-}" ; then
-		udevadm settle --exit-if-exists="$1" 2>/dev/null || true
-	else
-		udevadm settle --timeout=15 2>/dev/null || true
-	fi
+	local arg="--timeout=15"
+	test -n "${1-}" && arg="--exit-if-exists=$1"
+
+	test -f UDEV_PID || {
+		pgrep udev >UDEV_PID 2>/dev/null || return 0
+		which udevadm &>/dev/null || { echo "" >UDEV_PID ; return 0 ; }
+	}
+
+	test ! -s UDEV_PID || { udevadm settle "$arg" 2>/dev/null || true ; }
 }
 
 # wait_for_sync <VG/LV>


=====================================
test/lib/inittest.sh
=====================================
@@ -81,7 +81,10 @@ PREFIX="${COMMON_PREFIX}$$"
 
 # Check we are not conflickting with some exiting setup
 if test -z "$SKIP_ROOT_DM_CHECK" ; then
-	dmsetup table | not grep "${PREFIX}[^0-9]" || die "DM table already has devices with prefix $PREFIX!"
+	d=$(dmsetup info -c -o name --noheadings --rows -S "suspended=Suspended||name=~${PREFIX}[^0-9]")
+	test "$d" = "No devices found" || {
+		die "DM table already has either suspended or $PREFIX prefixed devices: $d"
+	}
 fi
 
 test -n "$LVM_TEST_DIR" || LVM_TEST_DIR=${TMPDIR:-/tmp}


=====================================
test/shell/dmeventd-restart.sh
=====================================
@@ -15,6 +15,21 @@ SKIP_WITH_LVMPOLLD=1
 
 . lib/inittest
 
+_restart_dmeventd() {
+	#rm -f debug.log*
+
+	dmeventd -R -fldddd -e "$PWD/test_nologin" > debug.log_DMEVENTD_$RANDOM 2>&1 &
+	echo $! >LOCAL_DMEVENTD
+
+	for i in $(seq 1 10); do
+		test "$(pgrep -o dmeventd)" = "$(< LOCAL_DMEVENTD)" && break
+		sleep .1
+	done
+	# wait a bit, so we talk to the new dmeventd later
+	# On some systems init of selinux contex may take a while...
+	sleep .5
+}
+
 aux prepare_dmeventd
 
 aux prepare_vg 5
@@ -27,9 +42,7 @@ lvchange --monitor y $vg/3way
 lvcreate -aey -l1 -n $lv1 $vg
 lvcreate -s -l1 -n $lv2 $vg/$lv1
 
-dmeventd -R -f &
-echo $! >LOCAL_DMEVENTD
-sleep 2 # wait a bit, so we talk to the new dmeventd later
+_restart_dmeventd
 
 check lv_field $vg/3way seg_monitor "monitored"
 check lv_field $vg/4way seg_monitor "monitored"
@@ -43,11 +56,10 @@ test -e LOCAL_CLVMD || grep 'already monitored' lvchange.out
 kill -9 "$(< LOCAL_DMEVENTD)"
 rm LOCAL_DMEVENTD debug.log*
 
-dmeventd -R -f &
-echo $! >LOCAL_DMEVENTD
+_restart_dmeventd
 
 # wait longer as tries 5s to communicate with killed daemon
-sleep 7
+sleep 6
 # now dmeventd should not be running
 not pgrep dmeventd
 rm LOCAL_DMEVENTD
@@ -63,16 +75,8 @@ test -e LOCAL_CLVMD || not grep 'already monitored' lvchange.out
 lvchange --monitor y --verbose $vg/$lv2 2>&1 | tee lvchange.out
 test -e LOCAL_CLVMD || not grep 'already monitored' lvchange.out
 
-rm -f debug.log*
-dmeventd -R -f -e "$PWD/test_nologin" -ldddd > debug.log_DMEVENTD_$RANDOM 2>&1 &
-echo $! >LOCAL_DMEVENTD
-
-for i in $(seq 1 10); do
-  test "$(pgrep -o dmeventd)" = "$(< LOCAL_DMEVENTD)" && break
-  sleep .1
-done
+_restart_dmeventd
 
-sleep 1 # wait a bit, so we talk to the new dmeventd later
 kill -INT "$(< LOCAL_DMEVENTD)"
 sleep 1
 


=====================================
test/shell/dmsecuretest.sh
=====================================
@@ -40,8 +40,9 @@ for j in empty existing ; do
 
 "$i" "$dev1" "$DMTEST" >cmdout 2>&1 &
 PID=$!
-sleep .5
+sleep .6
 
+# 0 8192 crypt aes-xts-plain64 434e0cbab02ca68ffba9268222c3789d703fe62427b78b308518b3228f6a2122 0 253:0 8192
 # crypt device should be loaded
 dmsetup status "$DMTEST"
 


=====================================
test/shell/dmstats-filemap.sh
=====================================
@@ -15,6 +15,8 @@ SKIP_WITH_LVMLOCKD=1
 
 . lib/inittest
 
+which mkfs.xfs || skip
+
 # Don't attempt to test stats with driver < 4.33.00
 aux driver_at_least 4 33 || skip
 


=====================================
tools/Makefile.in
=====================================
@@ -100,10 +100,12 @@ CLEAN_TARGETS = liblvm2cmd.$(LIB_SUFFIX) $(TARGETS_DM) \
 	$(LDDEPS) .exported_symbols_generated cmds.h \
 	command-lines-input.h command-count.h man-generator.c
 
+ifeq ("@SHARED_LINK@", "yes")
 ifeq ("@CMDLIB@", "yes")
 	TARGETS += liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION)
 	INSTALL_LVM_TARGETS += $(INSTALL_CMDLIB_TARGETS)
 endif
+endif
 
 EXPORTED_HEADER = $(srcdir)/lvm2cmd.h
 EXPORTED_FN_PREFIX = lvm2



View it on GitLab: https://gitlab.com/lvmteam/lvm2/-/compare/0ff027ae2c40066e2dd49cb4a377884d7e10dcf2...8b8b8ac1f8a0196cd6e8f03f3eae5891dca077d3

-- 
View it on GitLab: https://gitlab.com/lvmteam/lvm2/-/compare/0ff027ae2c40066e2dd49cb4a377884d7e10dcf2...8b8b8ac1f8a0196cd6e8f03f3eae5891dca077d3
You're receiving this email because of your account on gitlab.com.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/lvm-devel/attachments/20231013/9910de8a/attachment-0001.htm>

                 reply	other threads:[~2023-10-13 12:37 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=65293a02b047c_2ca52f8204c@gitlab-sidekiq-low-urgency-cpu-bound-v2-868ddd547d-75g4c.mail \
    --to=gitlab@mg.gitlab.com \
    --cc=lvm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).