master - build: Remove unused Makefiles from configure.ac
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=9384b2b5c59e9bca8c2...
Commit: 9384b2b5c59e9bca8c2054f76b62155a64c51c38
Parent: 2bc896f2a3a0023a4f45f10da3d0a22295a633ee
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Mon Apr 30 14:58:45 2018 +0100
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Mon Apr 30 14:58:45 2018 +0100
build: Remove unused Makefiles from configure.ac
Should have been in earlier patch.
---
configure | 7 +------
configure.ac | 5 -----
2 files changed, 1 insertions(+), 11 deletions(-)
diff --git a/configure b/configure
index 4cd950a..dc372c3 100755
--- a/configure
+++ b/configure
@@ -15689,7 +15689,7 @@ _ACEOF
################################################################################
-ac_config_files="$ac_config_files Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/cmirrord/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/lvm2/Makefile daemons/dmeventd/plugins/raid/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile daemons/dmeventd/plugins/thin/Makefile daemons/dmfilemapd/Makefile daemons/lvmdbusd/Makefile daemons/lvmdbusd/lvmdbusd daemons/lvmdbusd/lvmdb.py daemons/lvmdbusd/lvm_shell_proxy.py daemons/lvmdbusd/path.py daemons/lvmetad/Makefile daemons/lvmpolld/Makefile daemons/lvmlockd/Makefile conf/Makefile conf/example.conf conf/lvmlocal.conf conf/command_profile_template.profile conf/metadata_profile_template.profile include/Makefile lib/Makefile lib/format1/Makefile lib/format_pool/Makefile lib/locking/Makefile lib/mirror/Makefile include/lvm-version.h lib/raid/Makefile lib/snapshot/Makefile lib/thin/Makefile lib/cache
_segtype/Makefile libdaemon/Makefile libdaemon/client/Makefile libdaemon/server/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile liblvm/liblvm2app.pc man/Makefile po/Makefile python/Makefile python/setup.py scripts/blkdeactivate.sh scripts/blk_availability_init_red_hat scripts/blk_availability_systemd_red_hat.service scripts/clvmd_init_red_hat scripts/cmirrord_init_red_hat scripts/com.redhat.lvmdbus1.service scripts/dm_event_systemd_red_hat.service scripts/dm_event_systemd_red_hat.socket scripts/lvm2_cluster_activation_red_hat.sh scripts/lvm2_cluster_activation_systemd_red_hat.service scripts/lvm2_clvmd_systemd_red_hat.service scripts/lvm2_cmirrord_systemd_red_hat.service scripts/lvm2_lvmdbusd_systemd_red_hat.service scripts/lvm2_lvmetad_init_red_hat scripts/lvm2_lvmetad_systemd_red_hat.service scripts/lvm2_lvmetad_systemd_red_hat.socket scripts/lvm2_lvmpolld_init_red_hat scripts/lvm2_lvmpolld_systemd_red_hat.service scripts/lvm2_lvmpolld_systemd_red_hat.socket scripts/
lvm2_lvmlockd_systemd_red_hat.service scripts/lvm2_lvmlocking_systemd_red_hat.service scripts/lvm2_monitoring_init_red_hat scripts/lvm2_monitoring_systemd_red_hat.service scripts/lvm2_pvscan_systemd_red_hat@.service scripts/lvm2_tmpfiles_red_hat.conf scripts/lvmdump.sh scripts/Makefile test/Makefile test/api/Makefile test/unit/Makefile tools/Makefile udev/Makefile"
+ac_config_files="$ac_config_files Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/cmirrord/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/lvm2/Makefile daemons/dmeventd/plugins/raid/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile daemons/dmeventd/plugins/thin/Makefile daemons/dmfilemapd/Makefile daemons/lvmdbusd/Makefile daemons/lvmdbusd/lvmdbusd daemons/lvmdbusd/lvmdb.py daemons/lvmdbusd/lvm_shell_proxy.py daemons/lvmdbusd/path.py daemons/lvmetad/Makefile daemons/lvmpolld/Makefile daemons/lvmlockd/Makefile conf/Makefile conf/example.conf conf/lvmlocal.conf conf/command_profile_template.profile conf/metadata_profile_template.profile include/Makefile lib/Makefile lib/format1/Makefile lib/format_pool/Makefile lib/locking/Makefile include/lvm-version.h libdaemon/Makefile libdaemon/client/Makefile libdaemon/server/Makefile libdm/Makefile l
ibdm/libdevmapper.pc liblvm/Makefile liblvm/liblvm2app.pc man/Makefile po/Makefile python/Makefile python/setup.py scripts/blkdeactivate.sh scripts/blk_availability_init_red_hat scripts/blk_availability_systemd_red_hat.service scripts/clvmd_init_red_hat scripts/cmirrord_init_red_hat scripts/com.redhat.lvmdbus1.service scripts/dm_event_systemd_red_hat.service scripts/dm_event_systemd_red_hat.socket scripts/lvm2_cluster_activation_red_hat.sh scripts/lvm2_cluster_activation_systemd_red_hat.service scripts/lvm2_clvmd_systemd_red_hat.service scripts/lvm2_cmirrord_systemd_red_hat.service scripts/lvm2_lvmdbusd_systemd_red_hat.service scripts/lvm2_lvmetad_init_red_hat scripts/lvm2_lvmetad_systemd_red_hat.service scripts/lvm2_lvmetad_systemd_red_hat.socket scripts/lvm2_lvmpolld_init_red_hat scripts/lvm2_lvmpolld_systemd_red_hat.service scripts/lvm2_lvmpolld_systemd_red_hat.socket scripts/lvm2_lvmlockd_systemd_red_hat.service scripts/lvm2_lvmlocking_systemd_red_hat.service scripts/lvm2_monito
ring_init_red_hat scripts/lvm2_monitoring_systemd_red_hat.service scripts/lvm2_pvscan_systemd_red_hat@.service scripts/lvm2_tmpfiles_red_hat.conf scripts/lvmdump.sh scripts/Makefile test/Makefile test/api/Makefile test/unit/Makefile tools/Makefile udev/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -16416,12 +16416,7 @@ do
"lib/format1/Makefile") CONFIG_FILES="$CONFIG_FILES lib/format1/Makefile" ;;
"lib/format_pool/Makefile") CONFIG_FILES="$CONFIG_FILES lib/format_pool/Makefile" ;;
"lib/locking/Makefile") CONFIG_FILES="$CONFIG_FILES lib/locking/Makefile" ;;
- "lib/mirror/Makefile") CONFIG_FILES="$CONFIG_FILES lib/mirror/Makefile" ;;
"include/lvm-version.h") CONFIG_FILES="$CONFIG_FILES include/lvm-version.h" ;;
- "lib/raid/Makefile") CONFIG_FILES="$CONFIG_FILES lib/raid/Makefile" ;;
- "lib/snapshot/Makefile") CONFIG_FILES="$CONFIG_FILES lib/snapshot/Makefile" ;;
- "lib/thin/Makefile") CONFIG_FILES="$CONFIG_FILES lib/thin/Makefile" ;;
- "lib/cache_segtype/Makefile") CONFIG_FILES="$CONFIG_FILES lib/cache_segtype/Makefile" ;;
"libdaemon/Makefile") CONFIG_FILES="$CONFIG_FILES libdaemon/Makefile" ;;
"libdaemon/client/Makefile") CONFIG_FILES="$CONFIG_FILES libdaemon/client/Makefile" ;;
"libdaemon/server/Makefile") CONFIG_FILES="$CONFIG_FILES libdaemon/server/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index a7fcd18..edc40c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2199,12 +2199,7 @@ lib/Makefile
lib/format1/Makefile
lib/format_pool/Makefile
lib/locking/Makefile
-lib/mirror/Makefile
include/lvm-version.h
-lib/raid/Makefile
-lib/snapshot/Makefile
-lib/thin/Makefile
-lib/cache_segtype/Makefile
libdaemon/Makefile
libdaemon/client/Makefile
libdaemon/server/Makefile
6 years
master - build: remove --with-{snapshots, mirrors, raid, thin, cache} options from ./configure
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=2bc896f2a3a0023a4f4...
Commit: 2bc896f2a3a0023a4f45f10da3d0a22295a633ee
Parent: 545ca594689575fdd58877ad6f66abe1fdab815d
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Mon Apr 30 10:11:23 2018 +0100
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Mon Apr 30 10:11:23 2018 +0100
build: remove --with-{snapshots,mirrors,raid,thin,cache} options from ./configure
It now behaves as if the were all set as 'internal'
---
WHATS_NEW | 5 +++
daemons/dmeventd/plugins/Makefile.in | 18 +-----------
lib/Makefile.in | 50 +++------------------------------
lib/cache_segtype/Makefile.in | 24 ----------------
lib/mirror/Makefile.in | 26 -----------------
lib/raid/Makefile.in | 26 -----------------
lib/snapshot/Makefile.in | 26 -----------------
lib/thin/Makefile.in | 25 -----------------
man/Makefile.in | 14 +---------
test/Makefile.in | 3 --
10 files changed, 12 insertions(+), 205 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 2d085a1..205a963 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,10 @@
Version 2.02.178 -
=====================================
+ --with-snapshots switch for ./configure has been removed.
+ --with-mirrors switch for ./configure has been removed.
+ --with-raid switch for ./configure has been removed.
+ --with-thin switch for ./configure has been removed.
+ --with-cache switch for ./configure has been removed.
Extend validation of region_size for mirror segment.
Reload whole device stack when reinitilizing mirror log.
Mirrors without monitoring are WARNING and not blocking on error.
diff --git a/daemons/dmeventd/plugins/Makefile.in b/daemons/dmeventd/plugins/Makefile.in
index b164153..aea44cd 100644
--- a/daemons/dmeventd/plugins/Makefile.in
+++ b/daemons/dmeventd/plugins/Makefile.in
@@ -16,23 +16,7 @@ srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
-SUBDIRS += lvm2
-
-ifneq ("@MIRRORS@", "none")
- SUBDIRS += mirror
-endif
-
-ifneq ("@SNAPSHOTS@", "none")
- SUBDIRS += snapshot
-endif
-
-ifneq ("@RAID@", "none")
- SUBDIRS += raid
-endif
-
-ifneq ("@THIN@", "none")
- SUBDIRS += thin
-endif
+SUBDIRS += lvm2 snapshot raid thin mirrors
ifeq ($(MAKECMDGOALS),distclean)
SUBDIRS = lvm2 mirror snapshot raid thin
diff --git a/lib/Makefile.in b/lib/Makefile.in
index bd68edc..e532626 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -24,26 +24,6 @@ ifeq ("@POOL@", "shared")
SUBDIRS += format_pool
endif
-ifeq ("@SNAPSHOTS@", "shared")
- SUBDIRS += snapshot
-endif
-
-ifeq ("@MIRRORS@", "shared")
- SUBDIRS += mirror
-endif
-
-ifeq ("@RAID@", "shared")
- SUBDIRS += raid
-endif
-
-ifeq ("@THIN@", "shared")
- SUBDIRS += thin
-endif
-
-ifeq ("@CACHE@", "shared")
- SUBDIRS += cache_segtype
-endif
-
ifeq ("@CLUSTER@", "shared")
SUBDIRS += locking
endif
@@ -51,6 +31,7 @@ endif
SOURCES =\
activate/activate.c \
cache/lvmcache.c \
+ cache_segtype/cache.c \
commands/toolcontext.c \
config/config.c \
datastruct/btree.c \
@@ -108,6 +89,7 @@ SOURCES =\
metadata/snapshot_manip.c \
metadata/thin_manip.c \
metadata/vg.c \
+ mirror/mirrored.c \
misc/crc.c \
misc/lvm-exec.c \
misc/lvm-file.c \
@@ -121,9 +103,12 @@ SOURCES =\
mm/memlock.c \
notify/lvmnotify.c \
properties/prop_common.c \
+ raid/raid.c \
report/properties.c \
report/report.c \
+ snapshot/snapshot.c \
striped/striped.c \
+ thin/thin.c \
uuid/uuid.c \
zero/zero.c
@@ -150,26 +135,6 @@ ifeq ("@CLUSTER@", "internal")
SOURCES += locking/cluster_locking.c
endif
-ifeq ("@SNAPSHOTS@", "internal")
- SOURCES += snapshot/snapshot.c
-endif
-
-ifeq ("@MIRRORS@", "internal")
- SOURCES += mirror/mirrored.c
-endif
-
-ifeq ("@RAID@", "internal")
- SOURCES += raid/raid.c
-endif
-
-ifeq ("@THIN@", "internal")
- SOURCES += thin/thin.c
-endif
-
-ifeq ("@CACHE@", "internal")
- SOURCES += cache_segtype/cache.c
-endif
-
ifeq ("@DEVMAPPER@", "yes")
SOURCES +=\
activate/dev_manager.c \
@@ -204,12 +169,7 @@ ifeq ($(MAKECMDGOALS),distclean)
SUBDIRS =\
format1 \
format_pool \
- snapshot \
- mirror \
notify \
- raid \
- thin \
- cache_segtype \
locking
endif
diff --git a/lib/cache_segtype/Makefile.in b/lib/cache_segtype/Makefile.in
deleted file mode 100644
index 5c4d415..0000000
--- a/lib/cache_segtype/Makefile.in
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (C) 2013-2014 Red Hat, Inc. All rights reserved.
-#
-# This file is part of LVM2.
-#
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU General Public License v.2.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = @top_builddir@
-
-SOURCES = cache.c
-
-LIB_SHARED = liblvm2cache.$(LIB_SUFFIX)
-LIB_VERSION = $(LIB_VERSION_LVM)
-
-include $(top_builddir)/make.tmpl
-
-install: install_lvm2_plugin
diff --git a/lib/mirror/Makefile.in b/lib/mirror/Makefile.in
deleted file mode 100644
index 5c8db88..0000000
--- a/lib/mirror/Makefile.in
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright (C) 2003-2004 Sistina Software, Inc. All rights reserved.
-# Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved.
-#
-# This file is part of LVM2.
-#
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU General Public License v.2.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = @top_builddir@
-
-SOURCES = mirrored.c
-
-LIB_SHARED = liblvm2mirror.$(LIB_SUFFIX)
-LIB_VERSION = $(LIB_VERSION_LVM)
-
-include $(top_builddir)/make.tmpl
-
-install: install_lvm2_plugin
diff --git a/lib/raid/Makefile.in b/lib/raid/Makefile.in
deleted file mode 100644
index 7f5ea22..0000000
--- a/lib/raid/Makefile.in
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright (C) 2002-2004 Sistina Software, Inc. All rights reserved.
-# Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
-#
-# This file is part of LVM2.
-#
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU General Public License v.2.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = @top_builddir@
-
-SOURCES = raid.c
-
-LIB_SHARED = liblvm2raid.$(LIB_SUFFIX)
-LIB_VERSION = $(LIB_VERSION_LVM)
-
-include $(top_builddir)/make.tmpl
-
-install: install_lvm2_plugin
diff --git a/lib/snapshot/Makefile.in b/lib/snapshot/Makefile.in
deleted file mode 100644
index 40e44a2..0000000
--- a/lib/snapshot/Makefile.in
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright (C) 2002-2004 Sistina Software, Inc. All rights reserved.
-# Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved.
-#
-# This file is part of LVM2.
-#
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU General Public License v.2.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = @top_builddir@
-
-SOURCES = snapshot.c
-
-LIB_SHARED = liblvm2snapshot.$(LIB_SUFFIX)
-LIB_VERSION = $(LIB_VERSION_LVM)
-
-include $(top_builddir)/make.tmpl
-
-install: install_lvm2_plugin
diff --git a/lib/thin/Makefile.in b/lib/thin/Makefile.in
deleted file mode 100644
index 2fcf14b..0000000
--- a/lib/thin/Makefile.in
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# Copyright (C) 2011 Red Hat, Inc. All rights reserved.
-#
-# This file is part of LVM2.
-#
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU General Public License v.2.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = @top_builddir@
-
-SOURCES = thin.c
-
-LIB_SHARED = liblvm2thin.$(LIB_SUFFIX)
-LIB_VERSION = $(LIB_VERSION_LVM)
-
-include $(top_builddir)/make.tmpl
-
-install: install_lib_shared_plugin
diff --git a/man/Makefile.in b/man/Makefile.in
index a40e168..844b0ca 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -64,7 +64,6 @@ ifeq ($(MAN_ALL),"yes")
MAN8+=$(FSADMMAN) $(LVMETADMAN) $(LVMPOLLDMAN) $(LVMLOCKDMAN) $(LVMDBUSDMAN)
MAN8DM+=$(BLKDEACTIVATEMAN) $(DMEVENTDMAN) $(DMFILEMAPDMAN)
MAN8CLUSTER+=$(CLVMDMAN) $(CMIRRORDMAN)
- MAN7+=$(LVMCACHEMAN) $(LVMTHINMAN) $(LVMRAIDMAN)
else
ifeq ("@FSADM@", "yes")
MAN8+=$(FSADMMAN)
@@ -105,20 +104,9 @@ else
ifeq ("@BUILD_CMIRRORD@", "yes")
MAN8CLUSTER+=$(CMIRRORDMAN)
endif
-
- ifneq ("@CACHE@", "none")
- MAN7+=$(LVMCACHEMAN)
- endif
-
- ifneq ("@THIN@", "none")
- MAN7+=$(LVMTHINMAN)
- endif
-
- ifneq ("@RAID@", "none")
- MAN7+=$(LVMRAIDMAN)
- endif
endif
+MAN7+=$(LVMCACHEMAN) $(LVMTHINMAN) $(LVMRAIDMAN)
MAN5DIR=$(mandir)/man5
MAN7DIR=$(mandir)/man7
MAN8DIR=$(mandir)/man8
diff --git a/test/Makefile.in b/test/Makefile.in
index 097b2fa..ccf1f31 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -275,9 +275,6 @@ lib/flavour-%: $(srcdir)/lib/flavour-%.sh .lib-dir-stamp
lib/paths-common: $(srcdir)/Makefile.in .lib-dir-stamp Makefile
echo 'DM_UDEV_SYNCHRONISATION=$(dm_udev_synchronisation)' >> $@-t
- echo 'THIN=@THIN@' >> $@-t
- echo 'RAID=@RAID@' >> $@-t
- echo 'CACHE=@CACHE@' >> $@-t
echo 'LVMETAD_PIDFILE="@LVMETAD_PIDFILE@"' >> $@-t
echo 'LVMPOLLD_PIDFILE="@LVMPOLLD_PIDFILE@"' >> $@-t
echo 'DMEVENTD_PIDFILE="@DMEVENTD_PIDFILE@"' >> $@-t
6 years
master - [scripts] remove scripts/vg_convert
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=0a2b5d5748970e80c4e...
Commit: 0a2b5d5748970e80c4e288fecb1f36a5935fd412
Parent: 65d6118e4773940529063b4e6515673f88b54edb
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Mon Feb 12 16:14:32 2018 +0000
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Mon Apr 30 09:46:05 2018 +0100
[scripts] remove scripts/vg_convert
- it doesn't do anything other than tell you to run vgconvert
- it used to convert from lvm1 format, which is obsolete
---
scripts/vg_convert | 18 ------------------
1 files changed, 0 insertions(+), 18 deletions(-)
diff --git a/scripts/vg_convert b/scripts/vg_convert
deleted file mode 100755
index 6559941..0000000
--- a/scripts/vg_convert
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh -x
-
-# Original script used to convert a VG from LVM1 to LVM2 metadata format.
-# Superceded by 'vgconvert', but left here to show how to do it step-by-step.
-
-# Takes vgname as parameter. No error checking. Uses temp file 'lvmbackup'.
-
-echo "Please use the 'vgconvert' tool instead"
-exit 1
-
-./vgcfgbackup $1 || exit 1
-./vgcfgbackup --file lvmbackup $1 || exit 1
-
-CMDS=`./pvscan -u | sed -ne "s/.*PV \(.*\) with UUID \(.*\) VG $1 .*/.\/pvcreate -ff -y -M lvm2 --restorefile lvmbackup -u \2 \1 ; /p"`
-
-sh -x -c "$CMDS" || exit 1
-
-./vgcfgrestore --file lvmbackup -M lvm2 $1 || exit 1
6 years
master - [metadata-liblvm.c] comment out some dead code and add a FIXME
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=65d6118e47739405290...
Commit: 65d6118e4773940529063b4e6515673f88b54edb
Parent: 513e9e3264d6499630ba863ead3fe3701fc8ac29
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Mon Feb 12 14:14:40 2018 +0000
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Mon Apr 30 09:45:39 2018 +0100
[metadata-liblvm.c] comment out some dead code and add a FIXME
---
lib/metadata/metadata-liblvm.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/metadata/metadata-liblvm.c b/lib/metadata/metadata-liblvm.c
index b0b678a..2dc3757 100644
--- a/lib/metadata/metadata-liblvm.c
+++ b/lib/metadata/metadata-liblvm.c
@@ -575,7 +575,7 @@ static int _pvremove_single(struct cmd_context *cmd, const char *pv_name,
unsigned prompt, struct dm_list *pvslist)
{
struct device *dev;
- struct lvmcache_info *info;
+ //struct lvmcache_info *info;
int r = 0;
if (!_pvremove_check(cmd, pv_name, force_count, prompt, pvslist))
@@ -587,7 +587,8 @@ static int _pvremove_single(struct cmd_context *cmd, const char *pv_name,
goto out;
}
- info = lvmcache_info_from_pvid(dev->pvid, dev, 0);
+ // FIXME: why is this called if info is not used?
+ //info = lvmcache_info_from_pvid(dev->pvid, dev, 0);
if (!dev_test_excl(dev)) {
/* FIXME Detect whether device-mapper is still using the device */
6 years
master - build: rename configure.in -> configure.ac
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=865a9c5873a66741050...
Commit: 865a9c5873a6674105010b57a7695272f626a2c6
Parent: 877c2f2ffb3813e3236a55f07958009633dc8558
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Mon Apr 30 09:42:11 2018 +0100
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Mon Apr 30 09:42:11 2018 +0100
build: rename configure.in -> configure.ac
Squashes a warning from autotools
---
configure.ac | 2268 ++++++++++++++++++++++++++++++++++++++++++++++++
configure.in | 2268 ------------------------------------------------
include/configure.h.in | 2 +-
3 files changed, 2269 insertions(+), 2269 deletions(-)
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..a7fcd18
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,2268 @@
+###############################################################################
+## Copyright (C) 2000-2004 Sistina Software, Inc. All rights reserved.
+## Copyright (C) 2004-2016 Red Hat, Inc. All rights reserved.
+##
+## This copyrighted material is made available to anyone wishing to use,
+## modify, copy, or redistribute it subject to the terms and conditions
+## of the GNU General Public License v.2.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software Foundation,
+## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+################################################################################
+
+AC_PREREQ(2.69)
+################################################################################
+dnl -- Process this file with autoconf to produce a configure script.
+AC_INIT
+CONFIGURE_LINE="$0 $@"
+AC_CONFIG_SRCDIR([lib/device/dev-cache.h])
+AC_CONFIG_HEADERS([include/configure.h])
+
+################################################################################
+dnl -- Setup the directory where autoconf has auxilary files
+AC_CONFIG_AUX_DIR(autoconf)
+
+################################################################################
+dnl -- Get system type
+AC_CANONICAL_TARGET([])
+
+AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"])
+case "$host_os" in
+ linux*)
+ CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
+ # equivalent to -rdynamic
+ ELDFLAGS="-Wl,--export-dynamic"
+ # FIXME Generate list and use --dynamic-list=.dlopen.sym
+ CLDWHOLEARCHIVE="-Wl,-whole-archive"
+ CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
+ LDDEPS="$LDDEPS .export.sym"
+ LIB_SUFFIX=so
+ DEVMAPPER=yes
+ BUILD_LVMETAD=no
+ BUILD_LVMPOLLD=no
+ LOCKDSANLOCK=no
+ LOCKDDLM=no
+ ODIRECT=yes
+ DM_IOCTLS=yes
+ SELINUX=yes
+ CLUSTER=internal
+ FSADM=yes
+ BLKDEACTIVATE=yes
+ ;;
+ darwin*)
+ CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
+ CLDFLAGS="$CLDFLAGS"
+ ELDFLAGS=
+ CLDWHOLEARCHIVE="-all_load"
+ CLDNOWHOLEARCHIVE=
+ LIB_SUFFIX=dylib
+ DEVMAPPER=yes
+ ODIRECT=no
+ DM_IOCTLS=no
+ SELINUX=no
+ CLUSTER=none
+ FSADM=no
+ BLKDEACTIVATE=no
+ ;;
+esac
+
+################################################################################
+dnl -- Checks for programs.
+AC_PROG_SED
+AC_PROG_AWK
+save_CFLAGS=$CFLAGS
+save_CXXFLAGS=$CXXFLAGS
+AC_PROG_CC
+AC_PROG_CXX
+CFLAGS=$save_CFLAGS
+CXXFLAGS=$save_CXXFLAGS
+PATH_SBIN="$PATH:/usr/sbin:/sbin"
+
+dnl probably no longer needed in 2008, but...
+AC_PROG_GCC_TRADITIONAL
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_MKDIR_P
+AC_PROG_RANLIB
+AC_CHECK_TOOL(AR, ar)
+AC_PATH_TOOL(CFLOW_CMD, cflow)
+AC_PATH_TOOL(CSCOPE_CMD, cscope)
+AC_PATH_TOOL(CHMOD, chmod)
+AC_PATH_TOOL(WC, wc)
+AC_PATH_TOOL(SORT, sort)
+
+################################################################################
+dnl -- Check for header files.
+AC_HEADER_DIRENT
+AC_HEADER_MAJOR
+AC_HEADER_STDBOOL
+AC_HEADER_STDC
+AC_HEADER_SYS_WAIT
+AC_HEADER_TIME
+
+AC_CHECK_HEADERS([assert.h ctype.h dirent.h errno.h fcntl.h float.h \
+ getopt.h inttypes.h langinfo.h libgen.h limits.h locale.h paths.h \
+ signal.h stdarg.h stddef.h stdio.h stdlib.h string.h sys/file.h \
+ sys/ioctl.h syslog.h sys/mman.h sys/param.h sys/resource.h sys/stat.h \
+ sys/time.h sys/types.h sys/utsname.h sys/wait.h time.h \
+ unistd.h], , [AC_MSG_ERROR(bailing out)])
+
+AC_CHECK_HEADERS(termios.h sys/statvfs.h sys/timerfd.h sys/vfs.h linux/magic.h linux/fiemap.h)
+
+case "$host_os" in
+ linux*)
+ AC_CHECK_HEADERS(asm/byteorder.h linux/fs.h malloc.h,,AC_MSG_ERROR(bailing out)) ;;
+ darwin*)
+ AC_CHECK_HEADERS(machine/endian.h sys/disk.h,,AC_MSG_ERROR(bailing out)) ;;
+esac
+
+################################################################################
+dnl -- Check for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_C_INLINE
+AC_CHECK_MEMBERS([struct stat.st_rdev])
+AC_CHECK_TYPES([ptrdiff_t])
+AC_STRUCT_ST_BLOCKS
+AC_STRUCT_TM
+AC_TYPE_OFF_T
+AC_TYPE_PID_T
+AC_TYPE_SIGNAL
+AC_TYPE_SIZE_T
+AC_TYPE_MODE_T
+AC_TYPE_INT8_T
+AC_TYPE_INT16_T
+AC_TYPE_INT32_T
+AC_TYPE_INT64_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UID_T
+AC_TYPE_UINT8_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT64_T
+AX_GCC_BUILTIN([__builtin_clz])
+
+################################################################################
+dnl -- Check for functions
+AC_CHECK_FUNCS([ftruncate gethostname getpagesize gettimeofday localtime_r \
+ memchr memset mkdir mkfifo munmap nl_langinfo realpath rmdir setenv \
+ setlocale strcasecmp strchr strcspn strdup strerror strncasecmp strndup \
+ strrchr strspn strstr strtol strtoul uname], , [AC_MSG_ERROR(bailing out)])
+AC_FUNC_ALLOCA
+AC_FUNC_CLOSEDIR_VOID
+AC_FUNC_CHOWN
+AC_FUNC_FORK
+AC_FUNC_LSTAT
+AC_FUNC_MALLOC
+AC_FUNC_MEMCMP
+AC_FUNC_MKTIME
+AC_FUNC_MMAP
+AC_FUNC_REALLOC
+AC_FUNC_STAT
+AC_FUNC_STRTOD
+AC_FUNC_VPRINTF
+
+################################################################################
+dnl -- Disable dependency tracking
+AC_MSG_CHECKING(whether to enable dependency tracking)
+AC_ARG_ENABLE(dependency-tracking,
+ AC_HELP_STRING([--disable-dependency-tracking],
+ [speeds up one-time build.]),
+ USE_TRACKING=$enableval, USE_TRACKING=yes)
+AC_MSG_RESULT($USE_TRACKING)
+
+################################################################################
+dnl -- Enables statically-linked tools
+AC_MSG_CHECKING(whether to use static linking)
+AC_ARG_ENABLE(static_link,
+ AC_HELP_STRING([--enable-static_link],
+ [use this to link the tools to their libraries
+ statically (default is dynamic linking]),
+ STATIC_LINK=$enableval, STATIC_LINK=no)
+AC_MSG_RESULT($STATIC_LINK)
+
+################################################################################
+dnl -- Check if compiler/linker supports PIE and RELRO
+AC_TRY_CCFLAG([-pie], [HAVE_PIE], [], [])
+AC_SUBST(HAVE_PIE)
+AC_TRY_LDFLAGS([-Wl,-z,relro,-z,now], [HAVE_FULL_RELRO], [], [])
+AC_SUBST(HAVE_FULL_RELRO)
+
+################################################################################
+dnl -- Prefix is /usr by default, the exec_prefix default is setup later
+AC_PREFIX_DEFAULT(/usr)
+
+################################################################################
+dnl -- Clear default exec_prefix - install into /sbin rather than /usr/sbin
+test "$exec_prefix" = NONE -a "$prefix" = NONE && exec_prefix=""
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+
+################################################################################
+dnl -- Setup the ownership of the files
+AC_MSG_CHECKING(file owner)
+AC_ARG_WITH(user,
+ AC_HELP_STRING([--with-user=USER],
+ [set the owner of installed files [USER=]]),
+ OWNER=$withval)
+AC_MSG_RESULT($OWNER)
+test -n "$OWNER" && INSTALL="$INSTALL -o $OWNER"
+
+################################################################################
+dnl -- Setup the group ownership of the files
+AC_MSG_CHECKING(group owner)
+AC_ARG_WITH(group,
+ AC_HELP_STRING([--with-group=GROUP],
+ [set the group owner of installed files [GROUP=]]),
+ GROUP=$withval)
+AC_MSG_RESULT($GROUP)
+test -n "$GROUP" && INSTALL="$INSTALL -g $GROUP"
+
+################################################################################
+dnl -- Setup device node ownership
+AC_MSG_CHECKING(device node uid)
+
+AC_ARG_WITH(device-uid,
+ AC_HELP_STRING([--with-device-uid=UID],
+ [set the owner used for new device nodes [UID=0]]),
+ DM_DEVICE_UID=$withval, DM_DEVICE_UID=0)
+AC_MSG_RESULT($DM_DEVICE_UID)
+AC_DEFINE_UNQUOTED([DM_DEVICE_UID], [$DM_DEVICE_UID], [Define default owner for device node])
+
+################################################################################
+dnl -- Setup device group ownership
+AC_MSG_CHECKING(device node gid)
+
+AC_ARG_WITH(device-gid,
+ AC_HELP_STRING([--with-device-gid=GID],
+ [set the group used for new device nodes [GID=0]]),
+ DM_DEVICE_GID=$withval, DM_DEVICE_GID=0)
+AC_MSG_RESULT($DM_DEVICE_GID)
+AC_DEFINE_UNQUOTED([DM_DEVICE_GID], [$DM_DEVICE_GID], [Define default group for device node])
+
+################################################################################
+dnl -- Setup device mode
+AC_MSG_CHECKING(device node mode)
+
+AC_ARG_WITH(device-mode,
+ AC_HELP_STRING([--with-device-mode=MODE],
+ [set the mode used for new device nodes [MODE=0600]]),
+ DM_DEVICE_MODE=$withval, DM_DEVICE_MODE=0600)
+AC_MSG_RESULT($DM_DEVICE_MODE)
+AC_DEFINE_UNQUOTED([DM_DEVICE_MODE], [$DM_DEVICE_MODE], [Define default mode for device node])
+
+AC_MSG_CHECKING(when to create device nodes)
+AC_ARG_WITH(device-nodes-on,
+ AC_HELP_STRING([--with-device-nodes-on=ON],
+ [create nodes on resume or create [ON=resume]]),
+ ADD_NODE=$withval, ADD_NODE=resume)
+case "$ADD_NODE" in
+ resume) add_on=DM_ADD_NODE_ON_RESUME;;
+ create) add_on=DM_ADD_NODE_ON_CREATE;;
+ *) AC_MSG_ERROR([--with-device-nodes-on parameter invalid]);;
+esac
+AC_MSG_RESULT(on $ADD_NODE)
+AC_DEFINE_UNQUOTED([DEFAULT_DM_ADD_NODE], $add_on, [Define default node creation behavior with dmsetup create])
+
+AC_MSG_CHECKING(default name mangling)
+AC_ARG_WITH(default-name-mangling,
+ AC_HELP_STRING([--with-default-name-mangling=MANGLING],
+ [default name mangling: auto/none/hex [auto]]),
+ MANGLING=$withval, MANGLING=auto)
+case "$MANGLING" in
+ auto) mangling=DM_STRING_MANGLING_AUTO;;
+ none|disabled) mangling=DM_STRING_MANGLING_NONE;;
+ hex) mangling=DM_STRING_MANGLING_HEX;;
+ *) AC_MSG_ERROR([--with-default-name-mangling parameter invalid]);;
+esac
+AC_MSG_RESULT($MANGLING)
+AC_DEFINE_UNQUOTED([DEFAULT_DM_NAME_MANGLING], $mangling, [Define default name mangling behaviour])
+
+################################################################################
+dnl -- LVM1 tool fallback option
+AC_MSG_CHECKING(whether to enable lvm1 fallback)
+AC_ARG_ENABLE(lvm1_fallback,
+ AC_HELP_STRING([--enable-lvm1_fallback],
+ [use this to fall back and use LVM1 binaries if
+ device-mapper is missing from the kernel]),
+ LVM1_FALLBACK=$enableval, LVM1_FALLBACK=no)
+AC_MSG_RESULT($LVM1_FALLBACK)
+
+if test "$LVM1_FALLBACK" = yes; then
+ DEFAULT_FALLBACK_TO_LVM1=1
+ AC_DEFINE([LVM1_FALLBACK], 1, [Define to 1 if 'lvm' should fall back to using LVM1 binaries if device-mapper is missing from the kernel])
+else
+ DEFAULT_FALLBACK_TO_LVM1=0
+fi
+AC_DEFINE_UNQUOTED(DEFAULT_FALLBACK_TO_LVM1, [$DEFAULT_FALLBACK_TO_LVM1],
+ [Fall back to LVM1 by default if device-mapper is missing from the kernel.])
+
+################################################################################
+dnl -- format1 inclusion type
+AC_MSG_CHECKING(whether to include support for lvm1 metadata)
+AC_ARG_WITH(lvm1,
+ AC_HELP_STRING([--with-lvm1=TYPE],
+ [LVM1 metadata support: internal/shared/none [internal]]),
+ LVM1=$withval, LVM1=internal)
+
+AC_MSG_RESULT($LVM1)
+
+case "$LVM1" in
+ none|shared) ;;
+ internal) AC_DEFINE([LVM1_INTERNAL], 1,
+ [Define to 1 to include built-in support for LVM1 metadata.]) ;;
+ *) AC_MSG_ERROR([--with-lvm1 parameter invalid]) ;;
+esac
+
+################################################################################
+dnl -- format_pool inclusion type
+AC_MSG_CHECKING(whether to include support for GFS pool metadata)
+AC_ARG_WITH(pool,
+ AC_HELP_STRING([--with-pool=TYPE],
+ [GFS pool read-only support: internal/shared/none [internal]]),
+ POOL=$withval, POOL=internal)
+AC_MSG_RESULT($POOL)
+
+case "$POOL" in
+ none|shared) ;;
+ internal) AC_DEFINE([POOL_INTERNAL], 1,
+ [Define to 1 to include built-in support for GFS pool metadata.]) ;;
+ *) AC_MSG_ERROR([--with-pool parameter invalid])
+esac
+
+################################################################################
+dnl -- cluster_locking inclusion type
+AC_MSG_CHECKING(whether to include support for cluster locking)
+AC_ARG_WITH(cluster,
+ AC_HELP_STRING([--with-cluster=TYPE],
+ [cluster LVM locking support: internal/shared/none [internal]]),
+ CLUSTER=$withval)
+AC_MSG_RESULT($CLUSTER)
+
+case "$CLUSTER" in
+ none|shared) ;;
+ internal) AC_DEFINE([CLUSTER_LOCKING_INTERNAL], 1,
+ [Define to 1 to include built-in support for clustered LVM locking.]) ;;
+ *) AC_MSG_ERROR([--with-cluster parameter invalid]) ;;
+esac
+
+################################################################################
+dnl -- snapshots inclusion type
+AC_MSG_CHECKING(whether to include snapshots)
+AC_ARG_WITH(snapshots,
+ AC_HELP_STRING([--with-snapshots=TYPE],
+ [snapshot support: internal/shared/none [internal]]),
+ SNAPSHOTS=$withval, SNAPSHOTS=internal)
+AC_MSG_RESULT($SNAPSHOTS)
+
+case "$SNAPSHOTS" in
+ none|shared) ;;
+ internal) AC_DEFINE([SNAPSHOT_INTERNAL], 1,
+ [Define to 1 to include built-in support for snapshots.]) ;;
+ *) AC_MSG_ERROR([--with-snapshots parameter invalid]) ;;
+esac
+
+################################################################################
+dnl -- mirrors inclusion type
+AC_MSG_CHECKING(whether to include mirrors)
+AC_ARG_WITH(mirrors,
+ AC_HELP_STRING([--with-mirrors=TYPE],
+ [mirror support: internal/shared/none [internal]]),
+ MIRRORS=$withval, MIRRORS=internal)
+AC_MSG_RESULT($MIRRORS)
+
+case "$MIRRORS" in
+ none|shared) ;;
+ internal) AC_DEFINE([MIRRORED_INTERNAL], 1,
+ [Define to 1 to include built-in support for mirrors.]) ;;
+ *) AC_MSG_ERROR([--with-mirrors parameter invalid]) ;;
+esac
+
+################################################################################
+dnl -- raid inclusion type
+AC_MSG_CHECKING(whether to include raid)
+AC_ARG_WITH(raid,
+ AC_HELP_STRING([--with-raid=TYPE],
+ [raid support: internal/shared/none [internal]]),
+ RAID=$withval, RAID=internal)
+AC_MSG_RESULT($RAID)
+
+AC_ARG_WITH(default-mirror-segtype,
+ AC_HELP_STRING([--with-default-mirror-segtype=TYPE],
+ [default mirror segtype: raid1/mirror [raid1]]),
+ DEFAULT_MIRROR_SEGTYPE=$withval, DEFAULT_MIRROR_SEGTYPE="raid1")
+AC_ARG_WITH(default-raid10-segtype,
+ AC_HELP_STRING([--with-default-raid10-segtype=TYPE],
+ [default mirror segtype: raid10/mirror [raid10]]),
+ DEFAULT_RAID10_SEGTYPE=$withval, DEFAULT_RAID10_SEGTYPE="raid10")
+case "$RAID" in
+ none) test "$DEFAULT_MIRROR_SEGTYPE" = "raid1" && DEFAULT_MIRROR_SEGTYPE="mirror"
+ test "$DEFAULT_RAID10_SEGTYPE" = "raid10" && DEFAULT_RAID10_SEGTYPE="mirror" ;;
+ shared) ;;
+ internal) AC_DEFINE([RAID_INTERNAL], 1,
+ [Define to 1 to include built-in support for raid.]) ;;
+ *) AC_MSG_ERROR([--with-raid parameter invalid]) ;;
+esac
+
+AC_DEFINE_UNQUOTED([DEFAULT_MIRROR_SEGTYPE], ["$DEFAULT_MIRROR_SEGTYPE"],
+ [Default segtype used for mirror volumes.])
+
+AC_DEFINE_UNQUOTED([DEFAULT_RAID10_SEGTYPE], ["$DEFAULT_RAID10_SEGTYPE"],
+ [Default segtype used for raid10 volumes.])
+
+################################################################################
+AC_ARG_WITH(default-sparse-segtype,
+ AC_HELP_STRING([--with-default-sparse-segtype=TYPE],
+ [default sparse segtype: thin/snapshot [thin]]),
+ DEFAULT_SPARSE_SEGTYPE=$withval, DEFAULT_SPARSE_SEGTYPE="thin")
+
+################################################################################
+dnl -- thin provisioning
+AC_MSG_CHECKING(whether to include thin provisioning)
+AC_ARG_WITH(thin,
+ AC_HELP_STRING([--with-thin=TYPE],
+ [thin provisioning support: internal/shared/none [internal]]),
+ THIN=$withval, THIN=internal)
+AC_ARG_WITH(thin-check,
+ AC_HELP_STRING([--with-thin-check=PATH],
+ [thin_check tool: [autodetect]]),
+ THIN_CHECK_CMD=$withval, THIN_CHECK_CMD="autodetect")
+AC_ARG_WITH(thin-dump,
+ AC_HELP_STRING([--with-thin-dump=PATH],
+ [thin_dump tool: [autodetect]]),
+ THIN_DUMP_CMD=$withval, THIN_DUMP_CMD="autodetect")
+AC_ARG_WITH(thin-repair,
+ AC_HELP_STRING([--with-thin-repair=PATH],
+ [thin_repair tool: [autodetect]]),
+ THIN_REPAIR_CMD=$withval, THIN_REPAIR_CMD="autodetect")
+AC_ARG_WITH(thin-restore,
+ AC_HELP_STRING([--with-thin-restore=PATH],
+ [thin_restore tool: [autodetect]]),
+ THIN_RESTORE_CMD=$withval, THIN_RESTORE_CMD="autodetect")
+
+AC_MSG_RESULT($THIN)
+
+case "$THIN" in
+ none) test "$DEFAULT_SPARSE_SEGTYPE" = "thin" && DEFAULT_SPARSE_SEGTYPE="snapshot" ;;
+ shared) ;;
+ internal) AC_DEFINE([THIN_INTERNAL], 1,
+ [Define to 1 to include built-in support for thin provisioning.]) ;;
+ *) AC_MSG_ERROR([--with-thin parameter invalid ($THIN)]) ;;
+esac
+
+AC_DEFINE_UNQUOTED([DEFAULT_SPARSE_SEGTYPE], ["$DEFAULT_SPARSE_SEGTYPE"],
+ [Default segtype used for sparse volumes.])
+
+dnl -- thin_check needs-check flag
+AC_ARG_ENABLE(thin_check_needs_check,
+ AC_HELP_STRING([--disable-thin_check_needs_check],
+ [required if thin_check version is < 0.3.0]),
+ THIN_CHECK_NEEDS_CHECK=$enableval, THIN_CHECK_NEEDS_CHECK=yes)
+
+# Test if necessary thin tools are available
+# if not - use plain defaults and warn user
+case "$THIN" in
+ internal|shared)
+ # Empty means a config way to ignore thin checking
+ if test "$THIN_CHECK_CMD" = "autodetect"; then
+ AC_PATH_TOOL(THIN_CHECK_CMD, thin_check, [], [$PATH_SBIN])
+ if test -z "$THIN_CHECK_CMD"; then
+ AC_MSG_WARN([thin_check not found in path $PATH])
+ THIN_CHECK_CMD=/usr/sbin/thin_check
+ THIN_CONFIGURE_WARN=y
+ fi
+ fi
+ if test "$THIN_CHECK_NEEDS_CHECK" = yes; then
+ THIN_CHECK_VSN=`"$THIN_CHECK_CMD" -V 2>/dev/null`
+ THIN_CHECK_VSN_MAJOR=`echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $1}'`
+ THIN_CHECK_VSN_MINOR=`echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $2}'`
+
+ if test -z "$THIN_CHECK_VSN_MAJOR" -o -z "$THIN_CHECK_VSN_MINOR"; then
+ AC_MSG_WARN([$THIN_CHECK_CMD: Bad version "$THIN_CHECK_VSN" found])
+ THIN_CHECK_VERSION_WARN=y
+ THIN_CHECK_NEEDS_CHECK=no
+ elif test "$THIN_CHECK_VSN_MAJOR" -eq 0 -a "$THIN_CHECK_VSN_MINOR" -lt 3; then
+ AC_MSG_WARN([$THIN_CHECK_CMD: Old version "$THIN_CHECK_VSN" found])
+ THIN_CHECK_VERSION_WARN=y
+ THIN_CHECK_NEEDS_CHECK=no
+ fi
+ fi
+ # Empty means a config way to ignore thin dumping
+ if test "$THIN_DUMP_CMD" = "autodetect"; then
+ AC_PATH_TOOL(THIN_DUMP_CMD, thin_dump, [], [$PATH_SBIN])
+ test -z "$THIN_DUMP_CMD" && {
+ AC_MSG_WARN(thin_dump not found in path $PATH)
+ THIN_DUMP_CMD=/usr/sbin/thin_dump
+ THIN_CONFIGURE_WARN=y
+ }
+ fi
+ # Empty means a config way to ignore thin repairing
+ if test "$THIN_REPAIR_CMD" = "autodetect"; then
+ AC_PATH_TOOL(THIN_REPAIR_CMD, thin_repair, [], [$PATH_SBIN])
+ test -z "$THIN_REPAIR_CMD" && {
+ AC_MSG_WARN(thin_repair not found in path $PATH)
+ THIN_REPAIR_CMD=/usr/sbin/thin_repair
+ THIN_CONFIGURE_WARN=y
+ }
+ fi
+ # Empty means a config way to ignore thin restoring
+ if test "$THIN_RESTORE_CMD" = "autodetect"; then
+ AC_PATH_TOOL(THIN_RESTORE_CMD, thin_restore, [], [$PATH_SBIN])
+ test -z "$THIN_RESTORE_CMD" && {
+ AC_MSG_WARN(thin_restore not found in path $PATH)
+ THIN_RESTORE_CMD=/usr/sbin/thin_restore
+ THIN_CONFIGURE_WARN=y
+ }
+ fi
+
+ AC_MSG_CHECKING([whether thin_check supports the needs-check flag])
+ AC_MSG_RESULT([$THIN_CHECK_NEEDS_CHECK])
+ if test "$THIN_CHECK_NEEDS_CHECK" = yes; then
+ AC_DEFINE([THIN_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'thin_check' tool requires the --clear-needs-check-flag option])
+ fi
+
+ ;;
+esac
+
+AC_DEFINE_UNQUOTED([THIN_CHECK_CMD], ["$THIN_CHECK_CMD"],
+ [The path to 'thin_check', if available.])
+
+AC_DEFINE_UNQUOTED([THIN_DUMP_CMD], ["$THIN_DUMP_CMD"],
+ [The path to 'thin_dump', if available.])
+
+AC_DEFINE_UNQUOTED([THIN_REPAIR_CMD], ["$THIN_REPAIR_CMD"],
+ [The path to 'thin_repair', if available.])
+
+AC_DEFINE_UNQUOTED([THIN_RESTORE_CMD], ["$THIN_RESTORE_CMD"],
+ [The path to 'thin_restore', if available.])
+
+################################################################################
+dnl -- cache inclusion type
+AC_MSG_CHECKING(whether to include cache)
+AC_ARG_WITH(cache,
+ AC_HELP_STRING([--with-cache=TYPE],
+ [cache support: internal/shared/none [internal]]),
+ CACHE=$withval, CACHE="internal")
+AC_ARG_WITH(cache-check,
+ AC_HELP_STRING([--with-cache-check=PATH],
+ [cache_check tool: [autodetect]]),
+ CACHE_CHECK_CMD=$withval, CACHE_CHECK_CMD="autodetect")
+AC_ARG_WITH(cache-dump,
+ AC_HELP_STRING([--with-cache-dump=PATH],
+ [cache_dump tool: [autodetect]]),
+ CACHE_DUMP_CMD=$withval, CACHE_DUMP_CMD="autodetect")
+AC_ARG_WITH(cache-repair,
+ AC_HELP_STRING([--with-cache-repair=PATH],
+ [cache_repair tool: [autodetect]]),
+ CACHE_REPAIR_CMD=$withval, CACHE_REPAIR_CMD="autodetect")
+AC_ARG_WITH(cache-restore,
+ AC_HELP_STRING([--with-cache-restore=PATH],
+ [cache_restore tool: [autodetect]]),
+ CACHE_RESTORE_CMD=$withval, CACHE_RESTORE_CMD="autodetect")
+AC_MSG_RESULT($CACHE)
+
+case "$CACHE" in
+ none|shared) ;;
+ internal) AC_DEFINE([CACHE_INTERNAL], 1, [Define to 1 to include built-in support for cache.]) ;;
+ *) AC_MSG_ERROR([--with-cache parameter invalid]) ;;
+esac
+
+dnl -- cache_check needs-check flag
+AC_ARG_ENABLE(cache_check_needs_check,
+ AC_HELP_STRING([--disable-cache_check_needs_check],
+ [required if cache_check version is < 0.5]),
+ CACHE_CHECK_NEEDS_CHECK=$enableval, CACHE_CHECK_NEEDS_CHECK=yes)
+
+# Test if necessary cache tools are available
+# if not - use plain defaults and warn user
+case "$CACHE" in
+ internal|shared)
+ # Empty means a config way to ignore cache checking
+ if test "$CACHE_CHECK_CMD" = "autodetect"; then
+ AC_PATH_TOOL(CACHE_CHECK_CMD, cache_check, [], [$PATH_SBIN])
+ if test -z "$CACHE_CHECK_CMD"; then
+ AC_MSG_WARN([cache_check not found in path $PATH])
+ CACHE_CHECK_CMD=/usr/sbin/cache_check
+ CACHE_CONFIGURE_WARN=y
+ fi
+ fi
+ if test "$CACHE_CHECK_NEEDS_CHECK" = yes; then
+ $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
+ if test -z "$CACHE_CHECK_VSN_MAJOR" \
+ || test -z "$CACHE_CHECK_VSN_MINOR" \
+ || test -z "$CACHE_CHECK_VSN_PATCH"; then
+ AC_MSG_WARN([$CACHE_CHECK_CMD: Bad version "$CACHE_CHECK_VSN" found])
+ CACHE_CHECK_VERSION_WARN=y
+ CACHE_CHECK_NEEDS_CHECK=no
+ elif test "$CACHE_CHECK_VSN_MAJOR" -eq 0 ; then
+ if test "$CACHE_CHECK_VSN_MINOR" -lt 5 \
+ || test "$CACHE_CHECK_VSN_MINOR" -eq 5 -a "$CACHE_CHECK_VSN_PATCH" -lt 4; then
+ AC_MSG_WARN([$CACHE_CHECK_CMD: Old version "$CACHE_CHECK_VSN" found])
+ CACHE_CHECK_VERSION_WARN=y
+ CACHE_CHECK_NEEDS_CHECK=no
+ fi
+ if test "$CACHE_CHECK_VSN_MINOR" -lt 7 ; then
+ AC_MSG_WARN([$CACHE_CHECK_CMD: Old version "$CACHE_CHECK_VSN" does not support new cache format V2])
+ CACHE_CHECK_VERSION_WARN=y
+ fi
+ fi
+ fi
+ # Empty means a config way to ignore cache dumping
+ if test "$CACHE_DUMP_CMD" = "autodetect"; then
+ AC_PATH_TOOL(CACHE_DUMP_CMD, cache_dump, [], [$PATH_SBIN])
+ test -z "$CACHE_DUMP_CMD" && {
+ AC_MSG_WARN(cache_dump not found in path $PATH)
+ CACHE_DUMP_CMD=/usr/sbin/cache_dump
+ CACHE_CONFIGURE_WARN=y
+ }
+ fi
+ # Empty means a config way to ignore cache repairing
+ if test "$CACHE_REPAIR_CMD" = "autodetect"; then
+ AC_PATH_TOOL(CACHE_REPAIR_CMD, cache_repair, [], [$PATH_SBIN])
+ test -z "$CACHE_REPAIR_CMD" && {
+ AC_MSG_WARN(cache_repair not found in path $PATH)
+ CACHE_REPAIR_CMD=/usr/sbin/cache_repair
+ CACHE_CONFIGURE_WARN=y
+ }
+ fi
+ # Empty means a config way to ignore cache restoring
+ if test "$CACHE_RESTORE_CMD" = "autodetect"; then
+ AC_PATH_TOOL(CACHE_RESTORE_CMD, cache_restore, [], [$PATH_SBIN])
+ test -z "$CACHE_RESTORE_CMD" && {
+ AC_MSG_WARN(cache_restore not found in path $PATH)
+ CACHE_RESTORE_CMD=/usr/sbin/cache_restore
+ CACHE_CONFIGURE_WARN=y
+ }
+ fi
+
+ AC_MSG_CHECKING([whether cache_check supports the needs-check flag])
+ AC_MSG_RESULT([$CACHE_CHECK_NEEDS_CHECK])
+ if test "$CACHE_CHECK_NEEDS_CHECK" = yes; then
+ AC_DEFINE([CACHE_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'cache_check' tool requires the --clear-needs-check-flag option])
+ fi
+ ;;
+esac
+
+AC_DEFINE_UNQUOTED([CACHE_CHECK_CMD], ["$CACHE_CHECK_CMD"],
+ [The path to 'cache_check', if available.])
+
+AC_DEFINE_UNQUOTED([CACHE_DUMP_CMD], ["$CACHE_DUMP_CMD"],
+ [The path to 'cache_dump', if available.])
+
+AC_DEFINE_UNQUOTED([CACHE_REPAIR_CMD], ["$CACHE_REPAIR_CMD"],
+ [The path to 'cache_repair', if available.])
+
+AC_DEFINE_UNQUOTED([CACHE_RESTORE_CMD], ["$CACHE_RESTORE_CMD"],
+ [The path to 'cache_restore', if available.])
+
+
+################################################################################
+dnl -- Disable readline
+AC_ARG_ENABLE([readline],
+ AC_HELP_STRING([--disable-readline], [disable readline support]),
+ READLINE=$enableval, READLINE=maybe)
+
+################################################################################
+dnl -- Disable realtime clock support
+AC_MSG_CHECKING(whether to enable realtime support)
+AC_ARG_ENABLE(realtime,
+ AC_HELP_STRING([--disable-realtime], [disable realtime clock support]),
+ REALTIME=$enableval, REALTIME=yes)
+AC_MSG_RESULT($REALTIME)
+
+################################################################################
+dnl -- disable OCF resource agents
+AC_MSG_CHECKING(whether to enable OCF resource agents)
+AC_ARG_ENABLE(ocf,
+ AC_HELP_STRING([--enable-ocf],
+ [enable Open Cluster Framework (OCF) compliant resource agents]),
+ OCF=$enableval, OCF=no)
+AC_MSG_RESULT($OCF)
+AC_ARG_WITH(ocfdir,
+ AC_HELP_STRING([--with-ocfdir=DIR],
+ [install OCF files in [PREFIX/lib/ocf/resource.d/lvm2]]),
+ OCFDIR=$withval, OCFDIR='${prefix}/lib/ocf/resource.d/lvm2')
+
+################################################################################
+dnl -- Init pkg-config with dummy invokation:
+dnl -- this is required because PKG_CHECK_MODULES macro is expanded
+dnl -- to initialize the pkg-config environment only at the first invokation,
+dnl -- that would be conditional in this configure.in.
+pkg_config_init() {
+ if test "$PKGCONFIG_INIT" != 1; then
+ PKG_CHECK_MODULES(PKGCONFIGINIT, pkgconfiginit, [],
+ [AC_MSG_RESULT([pkg-config initialized])])
+ PKGCONFIG_INIT=1
+ fi
+}
+
+################################################################################
+AC_MSG_CHECKING(for default run directory)
+RUN_DIR="/run"
+test -d "/run" || RUN_DIR="/var/run"
+AC_MSG_RESULT($RUN_DIR)
+dnl -- Set up pidfile and run directory
+AH_TEMPLATE(DEFAULT_PID_DIR)
+AC_ARG_WITH(default-pid-dir,
+ AC_HELP_STRING([--with-default-pid-dir=PID_DIR],
+ [Default directory to keep PID files in. [autodetect]]),
+ DEFAULT_PID_DIR="$withval", DEFAULT_PID_DIR=$RUN_DIR)
+AC_DEFINE_UNQUOTED(DEFAULT_PID_DIR, ["$DEFAULT_PID_DIR"],
+ [Default directory to keep PID files in.])
+
+AH_TEMPLATE(DEFAULT_DM_RUN_DIR, [Name of default DM run directory.])
+AC_ARG_WITH(default-dm-run-dir,
+ AC_HELP_STRING([--with-default-dm-run-dir=DM_RUN_DIR],
+ [ Default DM run directory. [autodetect]]),
+ DEFAULT_DM_RUN_DIR="$withval", DEFAULT_DM_RUN_DIR=$RUN_DIR)
+AC_DEFINE_UNQUOTED(DEFAULT_DM_RUN_DIR, ["$DEFAULT_DM_RUN_DIR"],
+ [Default DM run directory.])
+
+AH_TEMPLATE(DEFAULT_RUN_DIR, [Name of default LVM run directory.])
+AC_ARG_WITH(default-run-dir,
+ AC_HELP_STRING([--with-default-run-dir=RUN_DIR],
+ [Default LVM run directory. [autodetect_run_dir/lvm]]),
+ DEFAULT_RUN_DIR="$withval", DEFAULT_RUN_DIR="$RUN_DIR/lvm")
+AC_DEFINE_UNQUOTED(DEFAULT_RUN_DIR, ["$DEFAULT_RUN_DIR"],
+ [Default LVM run directory.])
+
+################################################################################
+dnl -- Build cluster LVM daemon
+AC_MSG_CHECKING(whether to build cluster LVM daemon)
+AC_ARG_WITH(clvmd,
+ [ --with-clvmd=TYPE build cluster LVM Daemon
+ The following cluster manager combinations are valid:
+ * cman (RHEL5 or equivalent)
+ * cman,corosync,openais (or selection of them)
+ * singlenode (localhost only)
+ * all (autodetect)
+ * none (disable build)
+ [[none]]],
+ CLVMD=$withval, CLVMD=none)
+test "$CLVMD" = yes && CLVMD=all
+AC_MSG_RESULT($CLVMD)
+
+dnl -- If clvmd enabled without cluster locking, automagically include it
+test "$CLVMD" != none -a "$CLUSTER" = none && CLUSTER=internal
+
+dnl -- init pkgconfig if required
+test "$CLVMD" != none && pkg_config_init
+
+dnl -- Express clvmd init script Required-Start / Required-Stop
+CLVMD_CMANAGERS=""
+dnl -- On RHEL4/RHEL5, qdiskd is started from a separate init script.
+dnl -- Enable if we are build for cman.
+CLVMD_NEEDS_QDISKD=no
+
+dnl -- define build types
+if [[ `expr x"$CLVMD" : '.*gulm.*'` != 0 ]]; then
+ AC_MSG_ERROR([Since version 2.02.87 GULM locking is no longer supported.]);
+fi
+if [[ `expr x"$CLVMD" : '.*cman.*'` != 0 ]]; then
+ BUILDCMAN=yes
+ CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman"
+ CLVMD_NEEDS_QDISKD=yes
+fi
+if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then
+ BUILDCOROSYNC=yes
+ CLVMD_CMANAGERS="$CLVMD_CMANAGERS corosync"
+fi
+if [[ `expr x"$CLVMD" : '.*openais.*'` != 0 ]]; then
+ BUILDOPENAIS=yes
+ CLVMD_CMANAGERS="$CLVMD_CMANAGERS openais"
+fi
+test "$CLVMD_NEEDS_QDISKD" != no && CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd"
+
+dnl -- define a soft bailout if we are autodetecting
+soft_bailout() {
+ NOTFOUND=1
+}
+
+hard_bailout() {
+ AC_MSG_ERROR([bailing out])
+}
+
+dnl -- if clvmd=all then set soft_bailout (we do not want to error)
+dnl -- and set all builds to yes. We need to do this here
+dnl -- to skip the openais|corosync sanity check above.
+if test "$CLVMD" = all; then
+ bailout=soft_bailout
+ BUILDCMAN=yes
+ BUILDCOROSYNC=yes
+ BUILDOPENAIS=yes
+else
+ bailout=hard_bailout
+fi
+
+dnl -- helper macro to check libs without adding them to LIBS
+check_lib_no_libs() {
+ lib_no_libs_arg1=$1
+ shift
+ lib_no_libs_arg2=$1
+ shift
+ lib_no_libs_args=$@
+ AC_CHECK_LIB([$lib_no_libs_arg1],
+ [$lib_no_libs_arg2],,
+ [$bailout],
+ [$lib_no_libs_args])
+ LIBS=$ac_check_lib_save_LIBS
+}
+
+dnl -- Look for cman libraries if required.
+if test "$BUILDCMAN" = yes; then
+ PKG_CHECK_MODULES(CMAN, libcman, [HAVE_CMAN=yes],
+ [NOTFOUND=0
+ AC_CHECK_HEADERS(libcman.h,,$bailout)
+ check_lib_no_libs cman cman_init
+ if test $NOTFOUND = 0; then
+ AC_MSG_RESULT([no pkg for libcman, using -lcman])
+ CMAN_LIBS="-lcman"
+ HAVE_CMAN=yes
+ fi])
+ CHECKCONFDB=yes
+ CHECKDLM=yes
+fi
+
+dnl -- Look for corosync that is required also for openais build
+dnl -- only enough recent version of corosync ship pkg-config files.
+dnl -- We can safely rely on that to detect the correct bits.
+if test "$BUILDCOROSYNC" = yes -o "$BUILDOPENAIS" = yes; then
+ PKG_CHECK_MODULES(COROSYNC, corosync, [HAVE_COROSYNC=yes], $bailout)
+ CHECKCONFDB=yes
+ CHECKCMAP=yes
+fi
+
+dnl -- Look for corosync libraries if required.
+if test "$BUILDCOROSYNC" = yes; then
+ PKG_CHECK_MODULES(QUORUM, libquorum, [HAVE_QUORUM=yes], $bailout)
+ CHECKCPG=yes
+ CHECKDLM=yes
+fi
+
+dnl -- Look for openais libraries if required.
+if test "$BUILDOPENAIS" = yes; then
+ PKG_CHECK_MODULES(SALCK, libSaLck, [HAVE_SALCK=yes], $bailout)
+ CHECKCPG=yes
+fi
+
+dnl -- Below are checks for libraries common to more than one build.
+
+dnl -- Check confdb library.
+dnl -- mandatory for corosync < 2.0 build.
+dnl -- optional for openais/cman build.
+
+if test "$CHECKCONFDB" = yes; then
+ PKG_CHECK_MODULES(CONFDB, libconfdb,
+ [HAVE_CONFDB=yes], [HAVE_CONFDB=no])
+
+ AC_CHECK_HEADERS([corosync/confdb.h],
+ [HAVE_CONFDB_H=yes], [HAVE_CONFDB_H=no])
+
+ if test "$HAVE_CONFDB" != yes -a "$HAVE_CONFDB_H" = yes; then
+ check_lib_no_libs confdb confdb_initialize
+ AC_MSG_RESULT([no pkg for confdb, using -lconfdb])
+ CONFDB_LIBS="-lconfdb"
+ HAVE_CONFDB=yes
+ fi
+fi
+
+dnl -- Check cmap library
+dnl -- mandatory for corosync >= 2.0 build.
+
+if test "$CHECKCMAP" = yes; then
+ PKG_CHECK_MODULES(CMAP, libcmap,
+ [HAVE_CMAP=yes], [HAVE_CMAP=no])
+
+ AC_CHECK_HEADERS([corosync/cmap.h],
+ [HAVE_CMAP_H=yes], [HAVE_CMAP_H=no])
+
+ if test "$HAVE_CMAP" != yes -a "$HAVE_CMAP_H" = yes; then
+ check_lib_no_libs cmap cmap_initialize
+ AC_MSG_RESULT([no pkg for cmap, using -lcmap])
+ CMAP_LIBS="-lcmap"
+ HAVE_CMAP=yes
+ fi
+fi
+
+if test "$BUILDCOROSYNC" = yes -a \
+ "$HAVE_CMAP" != yes -a "$HAVE_CONFDB" != yes -a "$CLVMD" != all; then
+ AC_MSG_ERROR([bailing out... cmap (corosync >= 2.0) or confdb (corosync < 2.0) library is required])
+fi
+
+dnl -- Check cpg library.
+if test "$CHECKCPG" = yes; then
+ PKG_CHECK_MODULES(CPG, libcpg, [HAVE_CPG=yes], [$bailout])
+fi
+
+dnl -- Check dlm library.
+if test "$CHECKDLM" = yes; then
+ PKG_CHECK_MODULES(DLM, libdlm, [HAVE_DLM=yes],
+ [NOTFOUND=0
+ AC_CHECK_HEADERS(libdlm.h,,[$bailout])
+ check_lib_no_libs dlm dlm_lock -lpthread
+ if test $NOTFOUND = 0; then
+ AC_MSG_RESULT([no pkg for libdlm, using -ldlm])
+ DLM_LIBS="-ldlm -lpthread"
+ HAVE_DLM=yes
+ fi])
+fi
+
+dnl -- If we are autodetecting, we need to re-create
+dnl -- the depedencies checks and set a proper CLVMD,
+dnl -- together with init script Required-Start/Stop entries.
+if test "$CLVMD" = all; then
+ CLVMD=none
+ CLVMD_CMANAGERS=""
+ CLVMD_NEEDS_QDISKD=no
+ if test "$HAVE_CMAN" = yes -a \
+ "$HAVE_DLM" = yes; then
+ AC_MSG_RESULT([Enabling clvmd cman cluster manager])
+ CLVMD="$CLVMD,cman"
+ CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman"
+ CLVMD_NEEDS_QDISKD=yes
+ fi
+ if test "$HAVE_COROSYNC" = yes -a \
+ "$HAVE_QUORUM" = yes -a \
+ "$HAVE_CPG" = yes -a \
+ "$HAVE_DLM" = yes; then
+ if test "$HAVE_CONFDB" = yes -o "$HAVE_CMAP" = yes; then
+ AC_MSG_RESULT([Enabling clvmd corosync cluster manager])
+ CLVMD="$CLVMD,corosync"
+ CLVMD_CMANAGERS="$CLVMD_CMANAGERS corosync"
+ fi
+ fi
+ if test "$HAVE_COROSYNC" = yes -a \
+ "$HAVE_CPG" = yes -a \
+ "$HAVE_SALCK" = yes; then
+ AC_MSG_RESULT([Enabling clvmd openais cluster manager])
+ CLVMD="$CLVMD,openais"
+ CLVMD_CMANAGERS="$CLVMD_CMANAGERS openais"
+ fi
+ test "$CLVMD_NEEDS_QDISKD" != no && CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd"
+ test "$CLVMD" = none && AC_MSG_RESULT([Disabling clvmd build. No cluster manager detected.])
+fi
+
+dnl -- Fixup CLVMD_CMANAGERS with new corosync
+dnl -- clvmd built with corosync >= 2.0 needs dlm (either init or systemd service)
+dnl -- to be started.
+if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then
+ test "$HAVE_CMAP" = yes && CLVMD_CMANAGERS="$CLVMD_CMANAGERS dlm"
+fi
+
+################################################################################
+dnl -- clvmd pidfile
+if test "$CLVMD" != none; then
+ AC_ARG_WITH(clvmd-pidfile,
+ AC_HELP_STRING([--with-clvmd-pidfile=PATH],
+ [clvmd pidfile [PID_DIR/clvmd.pid]]),
+ CLVMD_PIDFILE=$withval,
+ CLVMD_PIDFILE="$DEFAULT_PID_DIR/clvmd.pid")
+ AC_DEFINE_UNQUOTED(CLVMD_PIDFILE, ["$CLVMD_PIDFILE"],
+ [Path to clvmd pidfile.])
+fi
+
+################################################################################
+dnl -- Build cluster mirror log daemon
+AC_MSG_CHECKING(whether to build cluster mirror log daemon)
+AC_ARG_ENABLE(cmirrord,
+ AC_HELP_STRING([--enable-cmirrord],
+ [enable the cluster mirror log daemon]),
+ CMIRRORD=$enableval, CMIRRORD=no)
+AC_MSG_RESULT($CMIRRORD)
+
+BUILD_CMIRRORD=$CMIRRORD
+
+################################################################################
+dnl -- cmirrord pidfile
+if test "$BUILD_CMIRRORD" = yes; then
+ AC_ARG_WITH(cmirrord-pidfile,
+ AC_HELP_STRING([--with-cmirrord-pidfile=PATH],
+ [cmirrord pidfile [PID_DIR/cmirrord.pid]]),
+ CMIRRORD_PIDFILE=$withval,
+ CMIRRORD_PIDFILE="$DEFAULT_PID_DIR/cmirrord.pid")
+ AC_DEFINE_UNQUOTED(CMIRRORD_PIDFILE, ["$CMIRRORD_PIDFILE"],
+ [Path to cmirrord pidfile.])
+fi
+
+################################################################################
+dnl -- Look for corosync libraries if required.
+if [[ "$BUILD_CMIRRORD" = yes ]]; then
+ pkg_config_init
+
+ AC_DEFINE([CMIRROR_HAS_CHECKPOINT], 1, [Define to 1 to include libSaCkpt.])
+ PKG_CHECK_MODULES(SACKPT, libSaCkpt, [HAVE_SACKPT=yes],
+ [AC_MSG_RESULT([no libSaCkpt, compiling without it])
+ AC_DEFINE([CMIRROR_HAS_CHECKPOINT], 0, [Define to 0 to exclude libSaCkpt.])])
+
+ if test "$HAVE_CPG" != yes; then
+ PKG_CHECK_MODULES(CPG, libcpg)
+ fi
+fi
+
+################################################################################
+dnl -- Enable debugging
+AC_MSG_CHECKING(whether to enable debugging)
+AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [enable debugging]),
+ DEBUG=$enableval, DEBUG=no)
+AC_MSG_RESULT($DEBUG)
+
+dnl -- Normally turn off optimisation for debug builds
+if test "$DEBUG" = yes; then
+ COPTIMISE_FLAG=
+else
+ CSCOPE_CMD=
+fi
+
+dnl -- Check if compiler supports -Wjump-misses-init
+AC_TRY_CCFLAG([-Wjump-misses-init], [HAVE_WJUMP], [], [])
+AC_SUBST(HAVE_WJUMP)
+AC_TRY_CCFLAG([-Wclobbered], [HAVE_WCLOBBERED], [], [])
+AC_SUBST(HAVE_WCLOBBERED)
+AC_TRY_CCFLAG([-Wsync-nand], [HAVE_WSYNCNAND], [], [])
+AC_SUBST(HAVE_WSYNCNAND)
+
+################################################################################
+dnl -- Override optimisation
+AC_MSG_CHECKING(for C optimisation flag)
+AC_ARG_WITH(optimisation,
+ AC_HELP_STRING([--with-optimisation=OPT],
+ [C optimisation flag [OPT=-O2]]),
+ COPTIMISE_FLAG=$withval)
+AC_MSG_RESULT($COPTIMISE_FLAG)
+
+################################################################################
+dnl -- Enable profiling
+AC_MSG_CHECKING(whether to gather gcov profiling data)
+AC_ARG_ENABLE(profiling,
+ AC_HELP_STRING([--enable-profiling],
+ [gather gcov profiling data]),
+ PROFILING=$enableval, PROFILING=no)
+AC_MSG_RESULT($PROFILING)
+
+if test "$PROFILING" = yes; then
+ COPTIMISE_FLAG="$COPTIMISE_FLAG -fprofile-arcs -ftest-coverage"
+ AC_PATH_TOOL(LCOV, lcov)
+ AC_PATH_TOOL(GENHTML, genhtml)
+ test -z "$LCOV" -o -z "$GENHTML" && AC_MSG_ERROR([lcov and genhtml are required for profiling])
+ AC_PATH_TOOL(GENPNG, genpng)
+ if test -n "$GENPNG"; then
+ AC_MSG_CHECKING([whether $GENPNG has all required modules])
+ if "$GENPNG" --help > /dev/null 2>&1 ; then
+ AC_MSG_RESULT(ok)
+ GENHTML="$GENHTML --frames"
+ else
+ AC_MSG_RESULT([not supported])
+ AC_MSG_WARN([GD.pm perl module is not installed])
+ GENPNG=
+ fi
+ fi
+fi
+
+################################################################################
+dnl -- Enable testing
+AC_MSG_CHECKING(whether to enable unit testing)
+AC_ARG_ENABLE(testing,
+ AC_HELP_STRING([--enable-testing],
+ [enable testing targets in the makefile]),
+ TESTING=$enableval, TESTING=no)
+AC_MSG_RESULT($TESTING)
+
+################################################################################
+dnl -- Set LVM2 testsuite data
+TESTSUITE_DATA='${datarootdir}/lvm2-testsuite'
+# double eval needed ${datarootdir} -> ${prefix}/share -> real path
+AC_DEFINE_UNQUOTED(TESTSUITE_DATA, ["$(eval echo $(eval echo $TESTSUITE_DATA))"], [Path to testsuite data])
+
+
+################################################################################
+dnl -- Enable valgrind awareness of memory pools
+AC_MSG_CHECKING(whether to enable valgrind awareness of pools)
+AC_ARG_ENABLE(valgrind_pool,
+ AC_HELP_STRING([--enable-valgrind-pool],
+ [enable valgrind awareness of pools]),
+ VALGRIND_POOL=$enableval, VALGRIND_POOL=no)
+AC_MSG_RESULT($VALGRIND_POOL)
+
+pkg_config_init
+PKG_CHECK_MODULES(VALGRIND, valgrind, [HAVE_VALGRIND=yes], [if test x$VALGRIND_POOL = xyes; then AC_MSG_ERROR(bailing out); fi])
+AC_SUBST(VALGRIND_CFLAGS)
+
+if test x$HAVE_VALGRIND = xyes; then
+ AC_DEFINE([HAVE_VALGRIND], 1, [valgrind.h found])
+fi
+
+if test x$VALGRIND_POOL = xyes; then
+ AC_DEFINE([VALGRIND_POOL], 1, [Enable a valgrind aware build of pool])
+fi
+
+################################################################################
+dnl -- Disable devmapper
+AC_MSG_CHECKING(whether to use device-mapper)
+AC_ARG_ENABLE(devmapper,
+ AC_HELP_STRING([--disable-devmapper],
+ [disable LVM2 device-mapper interaction]),
+ DEVMAPPER=$enableval)
+AC_MSG_RESULT($DEVMAPPER)
+
+if test "$DEVMAPPER" = yes; then
+ AC_DEFINE([DEVMAPPER_SUPPORT], 1, [Define to 1 to enable LVM2 device-mapper interaction.])
+fi
+
+################################################################################
+dnl -- Build lvmetad
+AC_MSG_CHECKING(whether to build LVMetaD)
+AC_ARG_ENABLE(lvmetad,
+ AC_HELP_STRING([--enable-lvmetad],
+ [enable the LVM Metadata Daemon]),
+ LVMETAD=$enableval)
+test -n "$LVMETAD" && BUILD_LVMETAD=$LVMETAD
+AC_MSG_RESULT($BUILD_LVMETAD)
+
+################################################################################
+dnl -- Build lvmpolld
+AC_MSG_CHECKING(whether to build lvmpolld)
+AC_ARG_ENABLE(lvmpolld,
+ AC_HELP_STRING([--enable-lvmpolld],
+ [enable the LVM Polling Daemon]),
+ LVMPOLLD=$enableval)
+test -n "$LVMPOLLD" && BUILD_LVMPOLLD=$LVMPOLLD
+AC_MSG_RESULT($BUILD_LVMPOLLD)
+
+################################################################################
+BUILD_LVMLOCKD=no
+
+dnl -- Build lvmlockdsanlock
+AC_MSG_CHECKING(whether to build lvmlockdsanlock)
+AC_ARG_ENABLE(lvmlockd-sanlock,
+ AC_HELP_STRING([--enable-lvmlockd-sanlock],
+ [enable the LVM lock daemon using sanlock]),
+ LOCKDSANLOCK=$enableval)
+AC_MSG_RESULT($LOCKDSANLOCK)
+
+BUILD_LOCKDSANLOCK=$LOCKDSANLOCK
+
+dnl -- Look for sanlock libraries
+if test "$BUILD_LOCKDSANLOCK" = yes; then
+ PKG_CHECK_MODULES(LOCKD_SANLOCK, libsanlock_client >= 3.3.0, [HAVE_LOCKD_SANLOCK=yes], $bailout)
+ AC_DEFINE([LOCKDSANLOCK_SUPPORT], 1, [Define to 1 to include code that uses lvmlockd sanlock option.])
+ BUILD_LVMLOCKD=yes
+fi
+
+################################################################################
+dnl -- Build lvmlockddlm
+AC_MSG_CHECKING(whether to build lvmlockddlm)
+AC_ARG_ENABLE(lvmlockd-dlm,
+ AC_HELP_STRING([--enable-lvmlockd-dlm],
+ [enable the LVM lock daemon using dlm]),
+ LOCKDDLM=$enableval)
+AC_MSG_RESULT($LOCKDDLM)
+
+BUILD_LOCKDDLM=$LOCKDDLM
+
+dnl -- Look for dlm libraries
+if test "$BUILD_LOCKDDLM" = yes; then
+ PKG_CHECK_MODULES(LOCKD_DLM, libdlm, [HAVE_LOCKD_DLM=yes], $bailout)
+ AC_DEFINE([LOCKDDLM_SUPPORT], 1, [Define to 1 to include code that uses lvmlockd dlm option.])
+ BUILD_LVMLOCKD=yes
+fi
+
+################################################################################
+dnl -- Build lvmlockd
+AC_MSG_CHECKING(whether to build lvmlockd)
+AC_MSG_RESULT($BUILD_LVMLOCKD)
+
+if test "$BUILD_LVMLOCKD" = yes; then
+ AS_IF([test "$LVMPOLLD" = no], [AC_MSG_ERROR([cannot build lvmlockd with --disable-lvmpolld.])])
+ AS_IF([test "$LVMETAD" = no], [AC_MSG_ERROR([cannot build lvmlockd with --disable-lvmetad.])])
+ AS_IF([test "$BUILD_LVMPOLLD" = no], [BUILD_LVMPOLLD=yes; AC_MSG_WARN([Enabling lvmpolld - required by lvmlockd.])])
+ AS_IF([test "$BUILD_LVMETAD" = no], [BUILD_LVMETAD=yes; AC_MSG_WARN([Enabling lvmetad - required by lvmlockd.])])
+ AC_MSG_CHECKING([defaults for use_lvmlockd])
+ AC_ARG_ENABLE(use_lvmlockd,
+ AC_HELP_STRING([--disable-use-lvmlockd],
+ [disable usage of LVM lock daemon]),
+ [case ${enableval} in
+ yes) DEFAULT_USE_LVMLOCKD=1 ;;
+ *) DEFAULT_USE_LVMLOCKD=0 ;;
+ esac], DEFAULT_USE_LVMLOCKD=1)
+ AC_MSG_RESULT($DEFAULT_USE_LVMLOCKD)
+ AC_DEFINE([LVMLOCKD_SUPPORT], 1, [Define to 1 to include code that uses lvmlockd.])
+
+ AC_ARG_WITH(lvmlockd-pidfile,
+ AC_HELP_STRING([--with-lvmlockd-pidfile=PATH],
+ [lvmlockd pidfile [PID_DIR/lvmlockd.pid]]),
+ LVMLOCKD_PIDFILE=$withval,
+ LVMLOCKD_PIDFILE="$DEFAULT_PID_DIR/lvmlockd.pid")
+ AC_DEFINE_UNQUOTED(LVMLOCKD_PIDFILE, ["$LVMLOCKD_PIDFILE"],
+ [Path to lvmlockd pidfile.])
+else
+ DEFAULT_USE_LVMLOCKD=0
+fi
+AC_DEFINE_UNQUOTED(DEFAULT_USE_LVMLOCKD, [$DEFAULT_USE_LVMLOCKD],
+ [Use lvmlockd by default.])
+
+################################################################################
+dnl -- Check lvmetad
+if test "$BUILD_LVMETAD" = yes; then
+ AC_MSG_CHECKING([defaults for use_lvmetad])
+ AC_ARG_ENABLE(use_lvmetad,
+ AC_HELP_STRING([--disable-use-lvmetad],
+ [disable usage of LVM Metadata Daemon]),
+ [case ${enableval} in
+ yes) DEFAULT_USE_LVMETAD=1 ;;
+ *) DEFAULT_USE_LVMETAD=0 ;;
+ esac], DEFAULT_USE_LVMETAD=1)
+ AC_MSG_RESULT($DEFAULT_USE_LVMETAD)
+ AC_DEFINE([LVMETAD_SUPPORT], 1, [Define to 1 to include code that uses lvmetad.])
+
+ AC_ARG_WITH(lvmetad-pidfile,
+ AC_HELP_STRING([--with-lvmetad-pidfile=PATH],
+ [lvmetad pidfile [PID_DIR/lvmetad.pid]]),
+ LVMETAD_PIDFILE=$withval,
+ LVMETAD_PIDFILE="$DEFAULT_PID_DIR/lvmetad.pid")
+ AC_DEFINE_UNQUOTED(LVMETAD_PIDFILE, ["$LVMETAD_PIDFILE"],
+ [Path to lvmetad pidfile.])
+else
+ DEFAULT_USE_LVMETAD=0
+fi
+AC_DEFINE_UNQUOTED(DEFAULT_USE_LVMETAD, [$DEFAULT_USE_LVMETAD],
+ [Use lvmetad by default.])
+
+################################################################################
+dnl -- Check lvmpolld
+if test "$BUILD_LVMPOLLD" = yes; then
+ AC_MSG_CHECKING([defaults for use_lvmpolld])
+ AC_ARG_ENABLE(use_lvmpolld,
+ AC_HELP_STRING([--disable-use-lvmpolld],
+ [disable usage of LVM Poll Daemon]),
+ [case ${enableval} in
+ yes) DEFAULT_USE_LVMPOLLD=1 ;;
+ *) DEFAULT_USE_LVMPOLLD=0 ;;
+ esac], DEFAULT_USE_LVMPOLLD=1)
+ AC_MSG_RESULT($DEFAULT_USE_LVMPOLLD)
+ AC_DEFINE([LVMPOLLD_SUPPORT], 1, [Define to 1 to include code that uses lvmpolld.])
+
+ AC_ARG_WITH(lvmpolld-pidfile,
+ AC_HELP_STRING([--with-lvmpolld-pidfile=PATH],
+ [lvmpolld pidfile [PID_DIR/lvmpolld.pid]]),
+ LVMPOLLD_PIDFILE=$withval,
+ LVMPOLLD_PIDFILE="$DEFAULT_PID_DIR/lvmpolld.pid")
+ AC_DEFINE_UNQUOTED(LVMPOLLD_PIDFILE, ["$LVMPOLLD_PIDFILE"],
+ [Path to lvmpolld pidfile.])
+else
+ DEFAULT_USE_LVMPOLLD=0
+fi
+AC_DEFINE_UNQUOTED(DEFAULT_USE_LVMPOLLD, [$DEFAULT_USE_LVMPOLLD],
+ [Use lvmpolld by default.])
+
+################################################################################
+dnl -- Check dmfilemapd
+AC_MSG_CHECKING(whether to build dmfilemapd)
+AC_ARG_ENABLE(dmfilemapd, AC_HELP_STRING([--enable-dmfilemapd],
+ [enable the dmstats filemap daemon]),
+ BUILD_DMFILEMAPD=$enableval, BUILD_DMFILEMAPD=no)
+AC_MSG_RESULT($BUILD_DMFILEMAPD)
+AC_DEFINE([DMFILEMAPD], $BUILD_DMFILEMAPD, [Define to 1 to enable the device-mapper filemap daemon.])
+
+dnl -- dmfilemapd requires FIEMAP
+if test "$BUILD_DMFILEMAPD" = yes; then
+ AC_CHECK_HEADER([linux/fiemap.h], , [AC_MSG_ERROR(--enable-dmfilemapd requires fiemap.h)])
+fi
+
+################################################################################
+dnl -- Build notifydbus
+AC_MSG_CHECKING(whether to build notifydbus)
+AC_ARG_ENABLE(notify-dbus,
+ AC_HELP_STRING([--enable-notify-dbus],
+ [enable LVM notification using dbus]),
+ NOTIFYDBUS_SUPPORT=$enableval, NOTIFYDBUS_SUPPORT=no)
+AC_MSG_RESULT($NOTIFYDBUS_SUPPORT)
+
+if test "$NOTIFYDBUS_SUPPORT" = yes; then
+ AC_DEFINE([NOTIFYDBUS_SUPPORT], 1, [Define to 1 to include code that uses dbus notification.])
+ SYSTEMD_LIBS="-lsystemd"
+fi
+
+################################################################################
+dnl -- Look for dbus libraries
+if test "$NOTIFYDBUS_SUPPORT" = yes; then
+ PKG_CHECK_MODULES(NOTIFY_DBUS, systemd >= 221, [HAVE_NOTIFY_DBUS=yes], $bailout)
+fi
+
+################################################################################
+
+dnl -- Enable blkid wiping functionality
+AC_ARG_ENABLE(blkid_wiping,
+ AC_HELP_STRING([--disable-blkid_wiping],
+ [disable libblkid detection of signatures when wiping and use native code instead]),
+ BLKID_WIPING=$enableval, BLKID_WIPING=maybe)
+
+DEFAULT_USE_BLKID_WIPING=0
+if test "$BLKID_WIPING" != no; then
+ pkg_config_init
+ PKG_CHECK_MODULES(BLKID, blkid >= 2.24,
+ [ BLKID_WIPING=yes
+ BLKID_PC="blkid"
+ DEFAULT_USE_BLKID_WIPING=1
+ AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.])
+ ], [if test "$BLKID_WIPING" = maybe; then
+ BLKID_WIPING=no
+ else
+ AC_MSG_ERROR([bailing out... blkid library >= 2.24 is required])
+ fi])
+fi
+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],
+ [Use blkid wiping by default.])
+
+################################################################################
+dnl -- Enable udev-systemd protocol to instantiate a service for background jobs
+dnl -- Requires systemd version 205 at least (including support for systemd-run)
+AC_ARG_ENABLE(udev-systemd-background-jobs,
+ AC_HELP_STRING([--disable-udev-systemd-background-jobs],
+ [disable udev-systemd protocol to instantiate a service for background job]),
+ UDEV_SYSTEMD_BACKGROUND_JOBS=$enableval,
+ UDEV_SYSTEMD_BACKGROUND_JOBS=maybe)
+
+if test "$UDEV_SYSTEMD_BACKGROUND_JOBS" != no; then
+ pkg_config_init
+ PKG_CHECK_MODULES(SYSTEMD, systemd >= 205,
+ [UDEV_SYSTEMD_BACKGROUND_JOBS=yes],
+ [if test "$UDEV_SYSTEMD_BACKGROUND_JOBS" = maybe; then
+ UDEV_SYSTEMD_BACKGROUND_JOBS=no
+ else
+ AC_MSG_ERROR([bailing out... systemd >= 205 is required])
+ fi])
+fi
+
+AC_MSG_CHECKING(whether to use udev-systemd protocol for jobs in background)
+AC_MSG_RESULT($UDEV_SYSTEMD_BACKGROUND_JOBS)
+
+################################################################################
+dnl -- Enable udev synchronisation
+AC_MSG_CHECKING(whether to enable synchronisation with udev processing)
+AC_ARG_ENABLE(udev_sync,
+ AC_HELP_STRING([--enable-udev_sync],
+ [enable synchronisation with udev processing]),
+ UDEV_SYNC=$enableval, UDEV_SYNC=no)
+AC_MSG_RESULT($UDEV_SYNC)
+
+if test "$UDEV_SYNC" = yes; then
+ pkg_config_init
+ PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"])
+ AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.])
+
+ AC_CHECK_LIB(udev, udev_device_get_is_initialized, AC_DEFINE([HAVE_LIBUDEV_UDEV_DEVICE_GET_IS_INITIALIZED], 1,
+ [Define to 1 if udev_device_get_is_initialized is available.]))
+ LIBS=$ac_check_lib_save_LIBS
+fi
+
+dnl -- Enable udev rules
+AC_MSG_CHECKING(whether to enable installation of udev rules required for synchronisation)
+AC_ARG_ENABLE(udev_rules,
+ AC_HELP_STRING([--enable-udev_rules],
+ [install rule files needed for udev synchronisation]),
+ UDEV_RULES=$enableval, UDEV_RULES=$UDEV_SYNC)
+AC_MSG_RESULT($UDEV_RULES)
+
+AC_MSG_CHECKING(whether to enable executable path detection in udev rules)
+AC_ARG_ENABLE(udev_rule_exec_detection,
+ AC_HELP_STRING([--enable-udev-rule-exec-detection],
+ [enable executable path detection in udev rules]),
+ UDEV_RULE_EXEC_DETECTION=$enableval, UDEV_RULE_EXEC_DETECTION=no)
+AC_MSG_RESULT($UDEV_RULE_EXEC_DETECTION)
+
+dnl -- Check support for built-in blkid against target udev version
+if test "$UDEV_RULE" != no ; then
+ AC_MSG_CHECKING(whether udev supports built-in blkid)
+ pkg_config_init
+ if $("$PKG_CONFIG" --atleast-version=176 libudev); then
+ UDEV_HAS_BUILTIN_BLKID=yes
+ else
+ UDEV_HAS_BUILTIN_BLKID=no
+ fi
+ AC_MSG_RESULT($UDEV_HAS_BUILTIN_BLKID)
+fi
+
+################################################################################
+dnl -- Compatibility mode
+AC_ARG_ENABLE(compat,
+ AC_HELP_STRING([--enable-compat],
+ [enable support for old device-mapper versions]),
+ DM_COMPAT=$enableval, DM_COMPAT=no)
+
+AS_IF([test "$DM_COMPAT" = yes],
+ [AC_DEFINE([DM_COMPAT], 1, [Define to enable compat protocol])
+ AC_MSG_ERROR([--enable-compat is not currently supported.
+Since device-mapper version 1.02.66, only one version (4) of the device-mapper
+ioctl protocol is supported.])])
+
+################################################################################
+dnl -- Compatible units suffix mode
+AC_ARG_ENABLE(units-compat,
+ AC_HELP_STRING([--enable-units-compat],
+ [enable output compatibility with old versions that
+ that do not use KiB-style unit suffixes]),
+ UNITS_COMPAT=$enableval, UNITS_COMPAT=no)
+
+if test "$UNITS_COMPAT" = yes; then
+ AC_DEFINE([DEFAULT_SI_UNIT_CONSISTENCY], 0, [Define to 0 to reinstate the pre-2.02.54 handling of unit suffixes.])
+fi
+
+################################################################################
+dnl -- Disable ioctl
+AC_ARG_ENABLE(ioctl,
+ AC_HELP_STRING([--disable-ioctl],
+ [disable ioctl calls to device-mapper in the kernel]),
+ DM_IOCTLS=$enableval)
+AS_IF([test "$DM_IOCTLS" = yes],
+ [AC_DEFINE([DM_IOCTLS], 1, [Define to enable ioctls calls to kernel])])
+
+################################################################################
+dnl -- Disable O_DIRECT
+AC_MSG_CHECKING(whether to enable O_DIRECT)
+AC_ARG_ENABLE(o_direct,
+ AC_HELP_STRING([--disable-o_direct], [disable O_DIRECT]),
+ ODIRECT=$enableval)
+AC_MSG_RESULT($ODIRECT)
+
+if test "$ODIRECT" = yes; then
+ AC_DEFINE([O_DIRECT_SUPPORT], 1, [Define to 1 to enable O_DIRECT support.])
+fi
+
+################################################################################
+dnl -- Enable liblvm2app.so
+AC_MSG_CHECKING(whether to build liblvm2app.so application library)
+AC_ARG_ENABLE(applib,
+ AC_HELP_STRING([--enable-applib], [build application library]),
+ APPLIB=$enableval, APPLIB=no)
+AC_MSG_RESULT($APPLIB)
+AC_SUBST([LVM2APP_LIB])
+test "$APPLIB" = yes \
+ && LVM2APP_LIB=-llvm2app \
+ || LVM2APP_LIB=
+AS_IF([test "$APPLIB"],
+ [AC_MSG_WARN([liblvm2app is deprecated. Use D-Bus API])])
+
+################################################################################
+dnl -- Enable cmdlib
+AC_MSG_CHECKING(whether to compile liblvm2cmd.so)
+AC_ARG_ENABLE(cmdlib,
+ AC_HELP_STRING([--enable-cmdlib], [build shared command library]),
+ CMDLIB=$enableval, CMDLIB=no)
+AC_MSG_RESULT($CMDLIB)
+AC_SUBST([LVM2CMD_LIB])
+test "$CMDLIB" = yes \
+ && LVM2CMD_LIB=-llvm2cmd \
+ || LVM2CMD_LIB=
+
+################################################################################
+dnl -- Enable D-Bus service
+AC_MSG_CHECKING(whether to include Python D-Bus support)
+AC_ARG_ENABLE(dbus-service,
+ AC_HELP_STRING([--enable-dbus-service], [install D-Bus support]),
+ BUILD_LVMDBUSD=$enableval, BUILD_LVMDBUSD=no)
+AC_MSG_RESULT($BUILD_LVMDBUSD)
+AS_IF([test "$NOTIFYDBUS_SUPPORT" = yes && test "BUILD_LVMDBUSD" = yes],
+ [AC_MSG_WARN([Building D-Bus support without D-Bus notifications.])])
+
+################################################################################
+dnl -- Enable Python liblvm2app bindings
+AC_MSG_CHECKING(whether to build Python wrapper for liblvm2app.so)
+AC_ARG_ENABLE(python_bindings,
+ AC_HELP_STRING([--enable-python_bindings], [build default Python applib bindings]),
+ PYTHON_BINDINGS=$enableval, PYTHON_BINDINGS=no)
+AC_MSG_RESULT($PYTHON_BINDINGS)
+
+AC_MSG_CHECKING(whether to build Python2 wrapper for liblvm2app.so)
+AC_ARG_ENABLE(python2_bindings,
+ AC_HELP_STRING([--enable-python2_bindings], [build Python2 applib bindings]),
+ PYTHON2_BINDINGS=$enableval, PYTHON2_BINDINGS=no)
+AC_MSG_RESULT($PYTHON2_BINDINGS)
+
+
+AC_MSG_CHECKING(whether to build Python3 wrapper for liblvm2app.so)
+AC_ARG_ENABLE(python3_bindings,
+ AC_HELP_STRING([--enable-python3_bindings], [build Python3 applib bindings]),
+ PYTHON3_BINDINGS=$enableval, PYTHON3_BINDINGS=no)
+AC_MSG_RESULT($PYTHON3_BINDINGS)
+
+if test "$PYTHON_BINDINGS" = yes; then
+ AC_MSG_ERROR([--enable-python-bindings is replaced by --enable-python2-bindings and --enable-python3-bindings])
+fi
+
+if test "$PYTHON2_BINDINGS" = yes; then
+ AM_PATH_PYTHON([2])
+ AC_PATH_TOOL(PYTHON2, python2)
+ test -z "$PYTHON2" && AC_MSG_ERROR([python2 is required for --enable-python2_bindings but cannot be found])
+ AC_PATH_TOOL(PYTHON2_CONFIG, python2-config)
+ test -z "$PYTHON2_CONFIG" && AC_PATH_TOOL(PYTHON2_CONFIG, python-config)
+ test -z "$PYTHON2_CONFIG" && AC_MSG_ERROR([python headers are required for --enable-python2_bindings but cannot be found])
+ PYTHON2_INCDIRS=`"$PYTHON2_CONFIG" --includes`
+ PYTHON2_LIBDIRS=`"$PYTHON2_CONFIG" --libs`
+ PYTHON2DIR=$pythondir
+ PYTHON_BINDINGS=yes
+fi
+
+if test "$PYTHON3_BINDINGS" = yes -o "$BUILD_LVMDBUSD" = yes; then
+ unset PYTHON PYTHON_CONFIG
+ unset am_cv_pathless_PYTHON ac_cv_path_PYTHON am_cv_python_platform
+ unset am_cv_python_pythondir am_cv_python_version am_cv_python_pyexecdir
+ unset ac_cv_path_PYTHON_CONFIG ac_cv_path_ac_pt_PYTHON_CONFIG
+ AM_PATH_PYTHON([3])
+ PYTHON3=$PYTHON
+ test -z "$PYTHON3" && AC_MSG_ERROR([python3 is required for --enable-python3_bindings or --enable-dbus-service but cannot be found])
+ AC_PATH_TOOL(PYTHON3_CONFIG, python3-config)
+ test -z "$PYTHON3_CONFIG" && AC_MSG_ERROR([python3 headers are required for --enable-python3_bindings or --enable-dbus-service but cannot be found])
+ PYTHON3_INCDIRS=`"$PYTHON3_CONFIG" --includes`
+ PYTHON3_LIBDIRS=`"$PYTHON3_CONFIG" --libs`
+ PYTHON3DIR=$pythondir
+ test "$PYTHON3_BINDINGS" = yes && PYTHON_BINDINGS=yes
+fi
+
+if test "$BUILD_LVMDBUSD" = yes; then
+ # To get this macro, install autoconf-archive package then run autoreconf
+ AC_PYTHON_MODULE([pyudev], [Required], python3)
+ AC_PYTHON_MODULE([dbus], [Required], python3)
+fi
+
+if test "$PYTHON_BINDINGS" = yes -o "$PYTHON2_BINDINGS" = yes -o "$PYTHON3_BINDINGS" = yes; then
+ AC_MSG_WARN([Python bindings are deprecated. Use D-Bus API])
+ test "$APPLIB" != yes && AC_MSG_ERROR([Python_bindings require --enable-applib])
+fi
+
+################################################################################
+dnl -- Enable pkg-config
+AC_ARG_ENABLE(pkgconfig,
+ AC_HELP_STRING([--enable-pkgconfig], [install pkgconfig support]),
+ PKGCONFIG=$enableval, PKGCONFIG=no)
+
+################################################################################
+dnl -- Enable installation of writable files by user
+AC_ARG_ENABLE(write_install,
+ AC_HELP_STRING([--enable-write_install],
+ [install user writable files]),
+ WRITE_INSTALL=$enableval, WRITE_INSTALL=no)
+
+################################################################################
+dnl -- Enable fsadm
+AC_MSG_CHECKING(whether to install fsadm)
+AC_ARG_ENABLE(fsadm, AC_HELP_STRING([--disable-fsadm], [disable fsadm]),
+ FSADM=$enableval)
+AC_MSG_RESULT($FSADM)
+
+################################################################################
+dnl -- Enable blkdeactivate
+AC_MSG_CHECKING(whether to install blkdeactivate)
+AC_ARG_ENABLE(blkdeactivate, AC_HELP_STRING([--disable-blkdeactivate], [disable blkdeactivate]),
+ BLKDEACTIVATE=$enableval)
+AC_MSG_RESULT($BLKDEACTIVATE)
+
+################################################################################
+dnl -- enable dmeventd handling
+AC_MSG_CHECKING(whether to use dmeventd)
+AC_ARG_ENABLE(dmeventd, AC_HELP_STRING([--enable-dmeventd],
+ [enable the device-mapper event daemon]),
+ BUILD_DMEVENTD=$enableval, BUILD_DMEVENTD=no)
+AC_MSG_RESULT($BUILD_DMEVENTD)
+
+dnl -- dmeventd currently requires internal mirror support
+if test "$BUILD_DMEVENTD" = yes; then
+ if test "$MIRRORS" != internal; then
+ AC_MSG_ERROR([--enable-dmeventd currently requires --with-mirrors=internal])
+ fi
+ if test "$CMDLIB" = no; then
+ AC_MSG_ERROR([--enable-dmeventd requires --enable-cmdlib to be used as well])
+ fi
+
+ AC_DEFINE([DMEVENTD], 1, [Define to 1 to enable the device-mapper event daemon.])
+fi
+
+################################################################################
+dnl -- getline included in recent libc
+
+AC_CHECK_LIB(c, getline, AC_DEFINE([HAVE_GETLINE], 1,
+ [Define to 1 if getline is available.]))
+
+################################################################################
+dnl -- canonicalize_file_name included in recent libc
+
+AC_CHECK_LIB(c, canonicalize_file_name,
+ AC_DEFINE([HAVE_CANONICALIZE_FILE_NAME], 1,
+ [Define to 1 if canonicalize_file_name is available.]))
+
+################################################################################
+dnl -- Check for dlopen
+AC_CHECK_LIB(dl, dlopen,
+ [AC_DEFINE([HAVE_LIBDL], 1, [Define to 1 if dynamic libraries are available.])
+ DL_LIBS="-ldl"
+ HAVE_LIBDL=yes],
+ [DL_LIBS=
+ HAVE_LIBDL=no ])
+
+################################################################################
+dnl -- Check for shared/static conflicts
+if [[ \( "$LVM1" = shared -o "$POOL" = shared -o "$CLUSTER" = shared \
+ -o "$SNAPSHOTS" = shared -o "$MIRRORS" = shared \
+ -o "$RAID" = shared -o "$CACHE" = shared \
+ \) -a "$STATIC_LINK" = yes ]]; then
+ AC_MSG_ERROR([Features cannot be 'shared' when building statically])
+fi
+
+################################################################################
+AC_CHECK_LIB(m, log10,
+ [M_LIBS="-lm"], hard_bailout)
+
+################################################################################
+AC_CHECK_LIB([pthread], [pthread_mutex_lock],
+ [PTHREAD_LIBS="-lpthread"], hard_bailout)
+
+################################################################################
+dnl -- Disable selinux
+AC_MSG_CHECKING(whether to enable selinux support)
+AC_ARG_ENABLE(selinux,
+ AC_HELP_STRING([--disable-selinux], [disable selinux support]),
+ SELINUX=$enableval)
+AC_MSG_RESULT($SELINUX)
+
+################################################################################
+dnl -- Check for selinux
+if test "$SELINUX" = yes; then
+ AC_CHECK_LIB([sepol], [sepol_check_context], [
+ AC_DEFINE([HAVE_SEPOL], 1, [Define to 1 if sepol_check_context is available.])
+ SELINUX_LIBS="-lsepol"])
+
+ AC_CHECK_LIB([selinux], [is_selinux_enabled], [
+ AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout)
+ AC_CHECK_HEADERS([selinux/label.h])
+ AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
+ SELINUX_LIBS="-lselinux $SELINUX_LIBS"
+ SELINUX_PC="libselinux"
+ HAVE_SELINUX=yes ], [
+ AC_MSG_WARN(Disabling selinux)
+ SELINUX_LIBS=
+ SELINUX_PC=
+ HAVE_SELINUX=no ])
+fi
+
+################################################################################
+dnl -- Check for realtime clock support
+RT_LIBS=
+HAVE_REALTIME=no
+if test "$REALTIME" = yes; then
+ AC_CHECK_FUNCS([clock_gettime], HAVE_REALTIME=yes)
+
+ AS_IF([test "$HAVE_REALTIME" != yes], [ # try again with -lrt
+ AC_CHECK_LIB([rt], [clock_gettime], RT_LIBS="-lrt"; HAVE_REALTIME=yes)])
+
+ if test "$HAVE_REALTIME" = yes; then
+ AC_DEFINE([HAVE_REALTIME], 1, [Define to 1 to include support for realtime clock.])
+ else
+ AC_MSG_WARN(Disabling realtime clock)
+ fi
+fi
+
+dnl Check if the system has struct stat st_ctim.
+AC_CACHE_CHECK([for struct stat has st_ctim.],
+ [ac_cv_stat_st_ctim],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+[#include <sys/stat.h>
+long bar(void) { struct stat s; return (long)(s.st_ctim.tv_sec + s.st_ctim.tv_nsec);}]
+ )], [ac_cv_stat_st_ctim=yes], [ac_cv_stat_st_ctim=no])])
+
+AC_IF_YES(ac_cv_stat_st_ctim,
+ AC_DEFINE(HAVE_STAT_ST_CTIM, 1,
+ [Define if struct stat has a field st_ctim with timespec for ctime]))
+
+################################################################################
+dnl -- Check for getopt
+AC_CHECK_HEADERS(getopt.h, AC_DEFINE([HAVE_GETOPTLONG], 1, [Define to 1 if getopt_long is available.]))
+
+################################################################################
+dnl -- Check for readline (Shamelessly copied from parted 1.4.17)
+if test "$READLINE" != no; then
+ lvm_saved_libs=$LIBS
+ AC_SEARCH_LIBS([tgetent], [tinfo ncurses curses termcap termlib],
+ READLINE_LIBS=$ac_cv_search_tgetent, [
+ if test "$READLINE" = yes; then
+ AC_MSG_ERROR(
+[termcap could not be found which is required for the
+--enable-readline option (which is enabled by default). Either disable readline
+support with --disable-readline or download and install termcap from:
+ ftp.gnu.org/gnu/termcap
+Note: if you are using precompiled packages you will also need the development
+ package as well (which may be called termcap-devel or something similar).
+Note: (n)curses also seems to work as a substitute for termcap. This was
+ not found either - but you could try installing that as well.])
+ fi])
+ dnl -- Old systems may need extra termcap dependency explicitly in LIBS
+ AC_CHECK_LIB([readline], [readline], [
+ AC_DEFINE([READLINE_SUPPORT], 1,
+ [Define to 1 to include the LVM readline shell.])
+ dnl -- Try only with -lreadline and check for different symbol
+ READLINE=yes
+ LIBS=$lvm_saved_libs
+ AC_CHECK_LIB([readline], [rl_line_buffer],
+ [ READLINE_LIBS="-lreadline" ], [
+ AC_MSG_RESULT([linking -lreadline with $READLINE_LIBS needed])
+ READLINE_LIBS="-lreadline $READLINE_LIBS"
+ ]) ], [
+ READLINE_LIBS=
+ if test "$READLINE" = yes; then
+ AC_MSG_ERROR(
+[GNU Readline could not be found which is required for the
+--enable-readline option (which is enabled by default). Either disable readline
+support with --disable-readline or download and install readline from:
+ ftp.gnu.org/gnu/readline
+Note: if you are using precompiled packages you will also need the development
+package as well (which may be called readline-devel or something similar).])
+ fi ])
+ LIBS="$READLINE_LIBS $lvm_saved_libs"
+ AC_CHECK_FUNCS([rl_completion_matches])
+ LIBS=$lvm_saved_libs
+fi
+
+################################################################################
+dnl -- Internationalisation stuff
+AC_MSG_CHECKING(whether to enable internationalisation)
+AC_ARG_ENABLE(nls,
+ AC_HELP_STRING([--enable-nls], [enable Native Language Support]),
+ INTL=$enableval, INTL=no)
+AC_MSG_RESULT($INTL)
+
+if test "$INTL" = yes; then
+# FIXME - Move this - can be device-mapper too
+ INTL_PACKAGE="lvm2"
+ AC_PATH_TOOL(MSGFMT, msgfmt)
+
+ AS_IF([test -z "$MSGFMT"], [AC_MSG_ERROR([msgfmt not found in path $PATH])])
+
+ AC_ARG_WITH(localedir,
+ AC_HELP_STRING([--with-localedir=DIR],
+ [locale-dependent data [DATAROOTDIR/locale]]),
+ localedir=$withval, localedir=${localedir-'${datarootdir}/locale'})
+ AC_DEFINE_UNQUOTED([INTL_PACKAGE], ["$INTL_PACKAGE"], [Internalization package])
+ # double eval needed ${datarootdir} -> ${prefix}/share -> real path
+ AC_DEFINE_UNQUOTED([LOCALEDIR], ["$(eval echo $(eval echo $localedir))"], [Locale-dependent data])
+fi
+
+################################################################################
+dnl -- FIXME: need to switch to regular option here --sysconfdir
+AC_ARG_WITH(confdir,
+ AC_HELP_STRING([--with-confdir=DIR],
+ [configuration files in DIR [/etc]]),
+ CONFDIR=$withval, CONFDIR='/etc')
+AC_DEFINE_UNQUOTED(DEFAULT_ETC_DIR, ["$CONFDIR"],
+ [Default system configuration directory.])
+
+AC_ARG_WITH(staticdir,
+ AC_HELP_STRING([--with-staticdir=DIR],
+ [static binaries in DIR [EPREFIX/sbin]]),
+ STATICDIR=$withval, STATICDIR='${exec_prefix}/sbin')
+
+AC_ARG_WITH(usrlibdir,
+ AC_HELP_STRING([--with-usrlibdir=DIR],
+ [usrlib in DIR [PREFIX/lib]]),
+ usrlibdir=$withval, usrlibdir='${prefix}/lib')
+
+AC_ARG_WITH(usrsbindir,
+ AC_HELP_STRING([--with-usrsbindir=DIR],
+ [usrsbin executables in DIR [PREFIX/sbin]]),
+ usrsbindir=$withval, usrsbindir='${prefix}/sbin')
+
+################################################################################
+AC_ARG_WITH(udev_prefix,
+ AC_HELP_STRING([--with-udev-prefix=UPREFIX],
+ [install udev rule files in UPREFIX [EPREFIX]]),
+ udev_prefix=$withval, udev_prefix='${exec_prefix}')
+
+AC_ARG_WITH(udevdir,
+ AC_HELP_STRING([--with-udevdir=DIR],
+ [udev rules in DIR [UPREFIX/lib/udev/rules.d]]),
+ udevdir=$withval, udevdir='${udev_prefix}/lib/udev/rules.d')
+
+################################################################################
+dnl -- Get the systemd system unit dir value from pkg_config automatically if value not given explicitly.
+dnl -- This follows the recommendation for systemd integration best practices mentioned in daemon(7) manpage.
+AC_ARG_WITH(systemdsystemunitdir,
+ AC_HELP_STRING([--with-systemdsystemunitdir=DIR],
+ [systemd service files in DIR]),
+ systemdsystemunitdir=$withval,
+ pkg_config_init
+ pkg_systemdsystemunitdir=$("$PKG_CONFIG" --variable=systemdsystemunitdir systemd))
+
+test -n "$pkg_systemdsystemunitdir" && systemdsystemunitdir=$pkg_systemdsystemunitdir
+test -z "$systemdsystemunitdir" && systemdsystemunitdir='${exec_prefix}/lib/systemd/system';
+
+systemdutildir=$("$PKG_CONFIG" --variable=systemdutildir systemd)
+test -z "$systemdutildir" && systemdutildir='${exec_prefix}/lib/systemd';
+
+################################################################################
+AC_ARG_WITH(tmpfilesdir,
+ AC_HELP_STRING([--with-tmpfilesdir=DIR],
+ [install configuration files for management of volatile files and directories in DIR [PREFIX/lib/tmpfiles.d]]),
+ tmpfilesdir=$withval, tmpfilesdir='${prefix}/lib/tmpfiles.d')
+################################################################################
+dnl -- Ensure additional headers required
+if test "$READLINE" = yes; then
+ AC_CHECK_HEADERS(readline/readline.h readline/history.h,,hard_bailout)
+fi
+AC_MSG_CHECKING(whether to enable readline)
+AC_MSG_RESULT($READLINE)
+
+if test "$BUILD_CMIRRORD" = yes; then
+ AC_CHECK_FUNCS(atexit,,hard_bailout)
+fi
+
+if test "$BUILD_LVMLOCKD" = yes; then
+ AS_IF([test "$HAVE_REALTIME" != yes], [AC_MSG_ERROR([Realtime clock support is mandatory for lvmlockd.])])
+ AC_CHECK_FUNCS(strtoull,,hard_bailout)
+fi
+
+if test "$BUILD_LVMPOLLD" = yes; then
+ AC_CHECK_FUNCS(strpbrk,,hard_bailout)
+ AC_FUNC_STRERROR_R
+fi
+
+if test "$CLVMD" != none; then
+ AC_CHECK_HEADERS(mntent.h netdb.h netinet/in.h pthread.h search.h sys/mount.h sys/socket.h sys/uio.h sys/un.h utmpx.h,,AC_MSG_ERROR(bailing out))
+ AC_CHECK_FUNCS(dup2 getmntent memmove select socket,,hard_bailout)
+ AC_FUNC_GETMNTENT
+ AC_FUNC_SELECT_ARGTYPES
+fi
+
+if test "$CLUSTER" != none; then
+ AC_CHECK_HEADERS(sys/socket.h sys/un.h,,hard_bailout)
+ AC_CHECK_FUNCS(socket,,hard_bailout)
+fi
+
+if test "$BUILD_DMEVENTD" = yes; then
+ AC_CHECK_HEADERS(arpa/inet.h,,hard_bailout)
+fi
+
+if test "$HAVE_LIBDL" = yes; then
+ AC_CHECK_HEADERS(dlfcn.h,,hard_bailout)
+fi
+
+if test "$INTL" = yes; then
+ AC_CHECK_HEADERS(libintl.h,,hard_bailout)
+fi
+
+if test "$UDEV_SYNC" = yes; then
+ AC_CHECK_HEADERS(sys/ipc.h sys/sem.h,,hard_bailout)
+fi
+
+if test "$BUILD_DMFILEMAPD" = yes; then
+ AC_CHECK_HEADERS([sys/inotify.h],,hard_bailout)
+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
+
+SYSCONFDIR="$(eval echo $(eval echo $sysconfdir))"
+
+SBINDIR="$(eval echo $(eval echo $sbindir))"
+LVM_PATH="$SBINDIR/lvm"
+AC_DEFINE_UNQUOTED(LVM_PATH, ["$LVM_PATH"], [Path to lvm binary.])
+
+USRSBINDIR="$(eval echo $(eval echo $usrsbindir))"
+CLVMD_PATH="$USRSBINDIR/clvmd"
+AC_DEFINE_UNQUOTED(CLVMD_PATH, ["$CLVMD_PATH"], [Path to clvmd binary.])
+
+FSADM_PATH="$SBINDIR/fsadm"
+AC_DEFINE_UNQUOTED(FSADM_PATH, ["$FSADM_PATH"], [Path to fsadm binary.])
+
+################################################################################
+dnl -- dmeventd pidfile and executable path
+if test "$BUILD_DMEVENTD" = yes; then
+ AC_ARG_WITH(dmeventd-pidfile,
+ AC_HELP_STRING([--with-dmeventd-pidfile=PATH],
+ [dmeventd pidfile [PID_DIR/dmeventd.pid]]),
+ DMEVENTD_PIDFILE=$withval,
+ DMEVENTD_PIDFILE="$DEFAULT_PID_DIR/dmeventd.pid")
+ AC_DEFINE_UNQUOTED(DMEVENTD_PIDFILE, ["$DMEVENTD_PIDFILE"],
+ [Path to dmeventd pidfile.])
+fi
+
+if test "$BUILD_DMEVENTD" = yes; then
+ AC_ARG_WITH(dmeventd-path,
+ AC_HELP_STRING([--with-dmeventd-path=PATH],
+ [dmeventd path [EPREFIX/sbin/dmeventd]]),
+ DMEVENTD_PATH=$withval,
+ DMEVENTD_PATH="$SBINDIR/dmeventd")
+ AC_DEFINE_UNQUOTED(DMEVENTD_PATH, ["$DMEVENTD_PATH"],
+ [Path to dmeventd binary.])
+fi
+
+################################################################################
+dnl -- various defaults
+dnl -- FIXME: need to switch to regular option here --sysconfdir
+AC_ARG_WITH(default-system-dir,
+ AC_HELP_STRING([--with-default-system-dir=DIR],
+ [default LVM system directory [/etc/lvm]]),
+ DEFAULT_SYS_DIR=$withval, DEFAULT_SYS_DIR="/etc/lvm")
+AC_DEFINE_UNQUOTED(DEFAULT_SYS_DIR, ["$DEFAULT_SYS_DIR"],
+ [Path to LVM system directory.])
+
+AC_ARG_WITH(default-profile-subdir,
+ AC_HELP_STRING([--with-default-profile-subdir=SUBDIR],
+ [default configuration profile subdir [profile]]),
+ DEFAULT_PROFILE_SUBDIR=$withval, DEFAULT_PROFILE_SUBDIR=profile)
+AC_DEFINE_UNQUOTED(DEFAULT_PROFILE_SUBDIR, ["$DEFAULT_PROFILE_SUBDIR"],
+ [Name of default configuration profile subdirectory.])
+
+AC_ARG_WITH(default-archive-subdir,
+ AC_HELP_STRING([--with-default-archive-subdir=SUBDIR],
+ [default metadata archive subdir [archive]]),
+ DEFAULT_ARCHIVE_SUBDIR=$withval, DEFAULT_ARCHIVE_SUBDIR=archive)
+AC_DEFINE_UNQUOTED(DEFAULT_ARCHIVE_SUBDIR, ["$DEFAULT_ARCHIVE_SUBDIR"],
+ [Name of default metadata archive subdirectory.])
+
+AC_ARG_WITH(default-backup-subdir,
+ AC_HELP_STRING([--with-default-backup-subdir=SUBDIR],
+ [default metadata backup subdir [backup]]),
+ DEFAULT_BACKUP_SUBDIR=$withval, DEFAULT_BACKUP_SUBDIR=backup)
+AC_DEFINE_UNQUOTED(DEFAULT_BACKUP_SUBDIR, ["$DEFAULT_BACKUP_SUBDIR"],
+ [Name of default metadata backup subdirectory.])
+
+AC_ARG_WITH(default-cache-subdir,
+ AC_HELP_STRING([--with-default-cache-subdir=SUBDIR],
+ [default metadata cache subdir [cache]]),
+ DEFAULT_CACHE_SUBDIR=$withval, DEFAULT_CACHE_SUBDIR=cache)
+AC_DEFINE_UNQUOTED(DEFAULT_CACHE_SUBDIR, ["$DEFAULT_CACHE_SUBDIR"],
+ [Name of default metadata cache subdirectory.])
+
+# Select default system locking dir, prefer /run/lock over /var/lock
+DEFAULT_SYS_LOCK_DIR="$RUN_DIR/lock"
+test -d "$DEFAULT_SYS_LOCK_DIR" || DEFAULT_SYS_LOCK_DIR="/var/lock"
+
+# Support configurable locking subdir for lvm
+AC_ARG_WITH(default-locking-dir,
+ AC_HELP_STRING([--with-default-locking-dir=DIR],
+ [default locking directory [autodetect_lock_dir/lvm]]),
+ DEFAULT_LOCK_DIR=$withval,
+ [AC_MSG_CHECKING(for default lock directory)
+ DEFAULT_LOCK_DIR="$DEFAULT_SYS_LOCK_DIR/lvm"
+ AC_MSG_RESULT($DEFAULT_LOCK_DIR)])
+AC_DEFINE_UNQUOTED(DEFAULT_LOCK_DIR, ["$DEFAULT_LOCK_DIR"],
+ [Name of default locking directory.])
+
+################################################################################
+dnl -- Setup default data alignment
+AC_ARG_WITH(default-data-alignment,
+ AC_HELP_STRING([--with-default-data-alignment=NUM],
+ [set the default data alignment in MiB [1]]),
+ DEFAULT_DATA_ALIGNMENT=$withval, DEFAULT_DATA_ALIGNMENT=1)
+AC_DEFINE_UNQUOTED(DEFAULT_DATA_ALIGNMENT, [$DEFAULT_DATA_ALIGNMENT],
+ [Default data alignment.])
+
+################################################################################
+dnl -- which kernel interface to use (ioctl only)
+AC_MSG_CHECKING(for kernel interface choice)
+AC_ARG_WITH(interface,
+ AC_HELP_STRING([--with-interface=IFACE],
+ [choose kernel interface (ioctl) [ioctl]]),
+ interface=$withval, interface=ioctl)
+test "$interface" != ioctl && AC_MSG_ERROR([--with-interface=ioctl required. fs no longer supported.])
+AC_MSG_RESULT($interface)
+
+################################################################################
+read DM_LIB_VERSION < "$srcdir"/VERSION_DM 2>/dev/null || DM_LIB_VERSION=Unknown
+AC_DEFINE_UNQUOTED(DM_LIB_VERSION, "$DM_LIB_VERSION", [Library version])
+
+DM_LIB_PATCHLEVEL=`cat "$srcdir"/VERSION_DM | $AWK -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}'`
+
+read VER < "$srcdir"/VERSION 2>/dev/null || VER=Unknown
+
+LVM_VERSION=\"$VER\"
+LVM_RELEASE_DATE="\"`echo $VER | $SED 's/.* (//;s/).*//'`\""
+VER=`echo "$VER" | $AWK '{print $1}'`
+LVM_RELEASE="\"`echo "$VER" | $AWK -F '-' '{print $2}'`\""
+VER=`echo "$VER" | $AWK -F '-' '{print $1}'`
+LVM_MAJOR=`echo "$VER" | $AWK -F '.' '{print $1}'`
+LVM_MINOR=`echo "$VER" | $AWK -F '.' '{print $2}'`
+LVM_PATCHLEVEL=`echo "$VER" | $AWK -F '[[(.]]' '{print $3}'`
+LVM_LIBAPI=`echo "$VER" | $AWK -F '[[()]]' '{print $2}'`
+
+AC_DEFINE_UNQUOTED(LVM_CONFIGURE_LINE, "$CONFIGURE_LINE", [configure command line used])
+
+################################################################################
+AC_SUBST(APPLIB)
+AC_SUBST(AWK)
+AC_SUBST(BLKID_PC)
+AC_SUBST(BUILD_CMIRRORD)
+AC_SUBST(BUILD_DMEVENTD)
+AC_SUBST(BUILD_LVMDBUSD)
+AC_SUBST(BUILD_LVMETAD)
+AC_SUBST(BUILD_LVMPOLLD)
+AC_SUBST(BUILD_LVMLOCKD)
+AC_SUBST(BUILD_LOCKDSANLOCK)
+AC_SUBST(BUILD_LOCKDDLM)
+AC_SUBST(BUILD_DMFILEMAPD)
+AC_SUBST(CACHE)
+AC_SUBST(CFLAGS)
+AC_SUBST(CFLOW_CMD)
+AC_SUBST(CHMOD)
+AC_SUBST(CLDFLAGS)
+AC_SUBST(CLDNOWHOLEARCHIVE)
+AC_SUBST(CLDWHOLEARCHIVE)
+AC_SUBST(CLUSTER)
+AC_SUBST(CLVMD)
+AC_SUBST(CLVMD_CMANAGERS)
+AC_SUBST(CLVMD_PATH)
+AC_SUBST(CMAN_CFLAGS)
+AC_SUBST(CMAN_LIBS)
+AC_SUBST(CMAP_CFLAGS)
+AC_SUBST(CMAP_LIBS)
+AC_SUBST(CMDLIB)
+AC_SUBST(CONFDB_CFLAGS)
+AC_SUBST(CONFDB_LIBS)
+AC_SUBST(CONFDIR)
+AC_SUBST(COPTIMISE_FLAG)
+AC_SUBST(CPG_CFLAGS)
+AC_SUBST(CPG_LIBS)
+AC_SUBST(CSCOPE_CMD)
+AC_SUBST(DEBUG)
+AC_SUBST(DEFAULT_ARCHIVE_SUBDIR)
+AC_SUBST(DEFAULT_BACKUP_SUBDIR)
+AC_SUBST(DEFAULT_CACHE_SUBDIR)
+AC_SUBST(DEFAULT_DATA_ALIGNMENT)
+AC_SUBST(DEFAULT_DM_RUN_DIR)
+AC_SUBST(DEFAULT_LOCK_DIR)
+AC_SUBST(DEFAULT_FALLBACK_TO_LVM1)
+AC_SUBST(DEFAULT_MIRROR_SEGTYPE)
+AC_SUBST(DEFAULT_PID_DIR)
+AC_SUBST(DEFAULT_PROFILE_SUBDIR)
+AC_SUBST(DEFAULT_RAID10_SEGTYPE)
+AC_SUBST(DEFAULT_RUN_DIR)
+AC_SUBST(DEFAULT_SPARSE_SEGTYPE)
+AC_SUBST(DEFAULT_SYS_DIR)
+AC_SUBST(DEFAULT_SYS_LOCK_DIR)
+AC_SUBST(DEFAULT_USE_BLKID_WIPING)
+AC_SUBST(DEFAULT_USE_LVMETAD)
+AC_SUBST(DEFAULT_USE_LVMPOLLD)
+AC_SUBST(DEFAULT_USE_LVMLOCKD)
+AC_SUBST(DEVMAPPER)
+AC_SUBST(DLM_CFLAGS)
+AC_SUBST(DLM_LIBS)
+AC_SUBST(DL_LIBS)
+AC_SUBST(DMEVENTD_PATH)
+AC_SUBST(DM_LIB_PATCHLEVEL)
+AC_SUBST(ELDFLAGS)
+AC_SUBST(FSADM)
+AC_SUBST(FSADM_PATH)
+AC_SUBST(BLKDEACTIVATE)
+AC_SUBST(HAVE_LIBDL)
+AC_SUBST(HAVE_REALTIME)
+AC_SUBST(HAVE_VALGRIND)
+AC_SUBST(INTL)
+AC_SUBST(JOBS)
+AC_SUBST(LDDEPS)
+AC_SUBST(LIBS)
+AC_SUBST(LIB_SUFFIX)
+AC_SUBST(LVM1)
+AC_SUBST(LVM1_FALLBACK)
+AC_SUBST(LVM_VERSION)
+AC_SUBST(LVM_LIBAPI)
+AC_SUBST(LVM_MAJOR)
+AC_SUBST(LVM_MINOR)
+AC_SUBST(LVM_PATCHLEVEL)
+AC_SUBST(LVM_PATH)
+AC_SUBST(LVM_RELEASE)
+AC_SUBST(LVM_RELEASE_DATE)
+AC_SUBST(localedir)
+AC_SUBST(MANGLING)
+AC_SUBST(MIRRORS)
+AC_SUBST(MSGFMT)
+AC_SUBST(OCF)
+AC_SUBST(OCFDIR)
+AC_SUBST(ODIRECT)
+AC_SUBST(PKGCONFIG)
+AC_SUBST(POOL)
+AC_SUBST(M_LIBS)
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PYTHON2)
+AC_SUBST(PYTHON3)
+AC_SUBST(PYTHON_BINDINGS)
+AC_SUBST(PYTHON2_BINDINGS)
+AC_SUBST(PYTHON3_BINDINGS)
+AC_SUBST(PYTHON2_INCDIRS)
+AC_SUBST(PYTHON3_INCDIRS)
+AC_SUBST(PYTHON2_LIBDIRS)
+AC_SUBST(PYTHON3_LIBDIRS)
+AC_SUBST(PYTHON2DIR)
+AC_SUBST(PYTHON3DIR)
+AC_SUBST(QUORUM_CFLAGS)
+AC_SUBST(QUORUM_LIBS)
+AC_SUBST(RAID)
+AC_SUBST(RT_LIBS)
+AC_SUBST(READLINE_LIBS)
+AC_SUBST(REPLICATORS)
+AC_SUBST(SACKPT_CFLAGS)
+AC_SUBST(SACKPT_LIBS)
+AC_SUBST(SALCK_CFLAGS)
+AC_SUBST(SALCK_LIBS)
+AC_SUBST(SBINDIR)
+AC_SUBST(SELINUX_LIBS)
+AC_SUBST(SELINUX_PC)
+AC_SUBST(SYSCONFDIR)
+AC_SUBST(SYSTEMD_LIBS)
+AC_SUBST(SNAPSHOTS)
+AC_SUBST(STATICDIR)
+AC_SUBST(STATIC_LINK)
+AC_SUBST(TESTING)
+AC_SUBST(TESTSUITE_DATA)
+AC_SUBST(THIN)
+AC_SUBST(THIN_CHECK_CMD)
+AC_SUBST(THIN_DUMP_CMD)
+AC_SUBST(THIN_REPAIR_CMD)
+AC_SUBST(THIN_RESTORE_CMD)
+AC_SUBST(CACHE_CHECK_CMD)
+AC_SUBST(CACHE_DUMP_CMD)
+AC_SUBST(CACHE_REPAIR_CMD)
+AC_SUBST(CACHE_RESTORE_CMD)
+AC_SUBST(UDEV_PC)
+AC_SUBST(UDEV_RULES)
+AC_SUBST(UDEV_SYNC)
+AC_SUBST(UDEV_SYSTEMD_BACKGROUND_JOBS)
+AC_SUBST(UDEV_RULE_EXEC_DETECTION)
+AC_SUBST(UDEV_HAS_BUILTIN_BLKID)
+AC_SUBST(USE_TRACKING)
+AC_SUBST(USRSBINDIR)
+AC_SUBST(VALGRIND_POOL)
+AC_SUBST(WRITE_INSTALL)
+AC_SUBST(DMEVENTD_PIDFILE)
+AC_SUBST(LVMETAD_PIDFILE)
+AC_SUBST(LVMPOLLD_PIDFILE)
+AC_SUBST(LVMLOCKD_PIDFILE)
+AC_SUBST(CLVMD_PIDFILE)
+AC_SUBST(CMIRRORD_PIDFILE)
+AC_SUBST(interface)
+AC_SUBST(kerneldir)
+AC_SUBST(missingkernel)
+AC_SUBST(kernelvsn)
+AC_SUBST(tmpdir)
+AC_SUBST(udev_prefix)
+AC_SUBST(udevdir)
+AC_SUBST(systemdsystemunitdir)
+AC_SUBST(systemdutildir)
+AC_SUBST(tmpfilesdir)
+AC_SUBST(usrlibdir)
+AC_SUBST(usrsbindir)
+
+################################################################################
+dnl -- First and last lines should not contain files to generate in order to
+dnl -- keep utility scripts running properly
+AC_CONFIG_FILES([
+Makefile
+make.tmpl
+daemons/Makefile
+daemons/clvmd/Makefile
+daemons/cmirrord/Makefile
+daemons/dmeventd/Makefile
+daemons/dmeventd/libdevmapper-event.pc
+daemons/dmeventd/plugins/Makefile
+daemons/dmeventd/plugins/lvm2/Makefile
+daemons/dmeventd/plugins/raid/Makefile
+daemons/dmeventd/plugins/mirror/Makefile
+daemons/dmeventd/plugins/snapshot/Makefile
+daemons/dmeventd/plugins/thin/Makefile
+daemons/dmfilemapd/Makefile
+daemons/lvmdbusd/Makefile
+daemons/lvmdbusd/lvmdbusd
+daemons/lvmdbusd/lvmdb.py
+daemons/lvmdbusd/lvm_shell_proxy.py
+daemons/lvmdbusd/path.py
+daemons/lvmetad/Makefile
+daemons/lvmpolld/Makefile
+daemons/lvmlockd/Makefile
+conf/Makefile
+conf/example.conf
+conf/lvmlocal.conf
+conf/command_profile_template.profile
+conf/metadata_profile_template.profile
+include/Makefile
+lib/Makefile
+lib/format1/Makefile
+lib/format_pool/Makefile
+lib/locking/Makefile
+lib/mirror/Makefile
+include/lvm-version.h
+lib/raid/Makefile
+lib/snapshot/Makefile
+lib/thin/Makefile
+lib/cache_segtype/Makefile
+libdaemon/Makefile
+libdaemon/client/Makefile
+libdaemon/server/Makefile
+libdm/Makefile
+libdm/libdevmapper.pc
+liblvm/Makefile
+liblvm/liblvm2app.pc
+man/Makefile
+po/Makefile
+python/Makefile
+python/setup.py
+scripts/blkdeactivate.sh
+scripts/blk_availability_init_red_hat
+scripts/blk_availability_systemd_red_hat.service
+scripts/clvmd_init_red_hat
+scripts/cmirrord_init_red_hat
+scripts/com.redhat.lvmdbus1.service
+scripts/dm_event_systemd_red_hat.service
+scripts/dm_event_systemd_red_hat.socket
+scripts/lvm2_cluster_activation_red_hat.sh
+scripts/lvm2_cluster_activation_systemd_red_hat.service
+scripts/lvm2_clvmd_systemd_red_hat.service
+scripts/lvm2_cmirrord_systemd_red_hat.service
+scripts/lvm2_lvmdbusd_systemd_red_hat.service
+scripts/lvm2_lvmetad_init_red_hat
+scripts/lvm2_lvmetad_systemd_red_hat.service
+scripts/lvm2_lvmetad_systemd_red_hat.socket
+scripts/lvm2_lvmpolld_init_red_hat
+scripts/lvm2_lvmpolld_systemd_red_hat.service
+scripts/lvm2_lvmpolld_systemd_red_hat.socket
+scripts/lvm2_lvmlockd_systemd_red_hat.service
+scripts/lvm2_lvmlocking_systemd_red_hat.service
+scripts/lvm2_monitoring_init_red_hat
+scripts/lvm2_monitoring_systemd_red_hat.service
+scripts/lvm2_pvscan_systemd_red_hat@.service
+scripts/lvm2_tmpfiles_red_hat.conf
+scripts/lvmdump.sh
+scripts/Makefile
+test/Makefile
+test/api/Makefile
+test/unit/Makefile
+tools/Makefile
+udev/Makefile
+])
+AC_OUTPUT
+
+AS_IF([test -n "$THIN_CONFIGURE_WARN"],
+ [AC_MSG_WARN([Support for thin provisioning is limited since some thin provisioning tools are missing!])])
+
+AS_IF([test -n "$THIN_CHECK_VERSION_WARN"],
+ [AC_MSG_WARN([You should also install latest thin_check vsn 0.7.0 (or later) for lvm2 thin provisioning])])
+
+AS_IF([test -n "$CACHE_CONFIGURE_WARN"],
+ [AC_MSG_WARN([Support for cache is limited since some cache tools are missing!])])
+
+AS_IF([test -n "$CACHE_CHECK_VERSION_WARN"],
+ [AC_MSG_WARN([You should install latest cache_check vsn 0.7.0 to use lvm2 cache metadata format 2])])
+
+
+AS_IF([test "$ODIRECT" != yes],
+ [AC_MSG_WARN([O_DIRECT disabled: low-memory pvmove may lock up])])
diff --git a/configure.in b/configure.in
deleted file mode 100644
index a7fcd18..0000000
--- a/configure.in
+++ /dev/null
@@ -1,2268 +0,0 @@
-###############################################################################
-## Copyright (C) 2000-2004 Sistina Software, Inc. All rights reserved.
-## Copyright (C) 2004-2016 Red Hat, Inc. All rights reserved.
-##
-## This copyrighted material is made available to anyone wishing to use,
-## modify, copy, or redistribute it subject to the terms and conditions
-## of the GNU General Public License v.2.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software Foundation,
-## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-################################################################################
-
-AC_PREREQ(2.69)
-################################################################################
-dnl -- Process this file with autoconf to produce a configure script.
-AC_INIT
-CONFIGURE_LINE="$0 $@"
-AC_CONFIG_SRCDIR([lib/device/dev-cache.h])
-AC_CONFIG_HEADERS([include/configure.h])
-
-################################################################################
-dnl -- Setup the directory where autoconf has auxilary files
-AC_CONFIG_AUX_DIR(autoconf)
-
-################################################################################
-dnl -- Get system type
-AC_CANONICAL_TARGET([])
-
-AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"])
-case "$host_os" in
- linux*)
- CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
- # equivalent to -rdynamic
- ELDFLAGS="-Wl,--export-dynamic"
- # FIXME Generate list and use --dynamic-list=.dlopen.sym
- CLDWHOLEARCHIVE="-Wl,-whole-archive"
- CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
- LDDEPS="$LDDEPS .export.sym"
- LIB_SUFFIX=so
- DEVMAPPER=yes
- BUILD_LVMETAD=no
- BUILD_LVMPOLLD=no
- LOCKDSANLOCK=no
- LOCKDDLM=no
- ODIRECT=yes
- DM_IOCTLS=yes
- SELINUX=yes
- CLUSTER=internal
- FSADM=yes
- BLKDEACTIVATE=yes
- ;;
- darwin*)
- CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
- CLDFLAGS="$CLDFLAGS"
- ELDFLAGS=
- CLDWHOLEARCHIVE="-all_load"
- CLDNOWHOLEARCHIVE=
- LIB_SUFFIX=dylib
- DEVMAPPER=yes
- ODIRECT=no
- DM_IOCTLS=no
- SELINUX=no
- CLUSTER=none
- FSADM=no
- BLKDEACTIVATE=no
- ;;
-esac
-
-################################################################################
-dnl -- Checks for programs.
-AC_PROG_SED
-AC_PROG_AWK
-save_CFLAGS=$CFLAGS
-save_CXXFLAGS=$CXXFLAGS
-AC_PROG_CC
-AC_PROG_CXX
-CFLAGS=$save_CFLAGS
-CXXFLAGS=$save_CXXFLAGS
-PATH_SBIN="$PATH:/usr/sbin:/sbin"
-
-dnl probably no longer needed in 2008, but...
-AC_PROG_GCC_TRADITIONAL
-AC_PROG_INSTALL
-AC_PROG_LN_S
-AC_PROG_MAKE_SET
-AC_PROG_MKDIR_P
-AC_PROG_RANLIB
-AC_CHECK_TOOL(AR, ar)
-AC_PATH_TOOL(CFLOW_CMD, cflow)
-AC_PATH_TOOL(CSCOPE_CMD, cscope)
-AC_PATH_TOOL(CHMOD, chmod)
-AC_PATH_TOOL(WC, wc)
-AC_PATH_TOOL(SORT, sort)
-
-################################################################################
-dnl -- Check for header files.
-AC_HEADER_DIRENT
-AC_HEADER_MAJOR
-AC_HEADER_STDBOOL
-AC_HEADER_STDC
-AC_HEADER_SYS_WAIT
-AC_HEADER_TIME
-
-AC_CHECK_HEADERS([assert.h ctype.h dirent.h errno.h fcntl.h float.h \
- getopt.h inttypes.h langinfo.h libgen.h limits.h locale.h paths.h \
- signal.h stdarg.h stddef.h stdio.h stdlib.h string.h sys/file.h \
- sys/ioctl.h syslog.h sys/mman.h sys/param.h sys/resource.h sys/stat.h \
- sys/time.h sys/types.h sys/utsname.h sys/wait.h time.h \
- unistd.h], , [AC_MSG_ERROR(bailing out)])
-
-AC_CHECK_HEADERS(termios.h sys/statvfs.h sys/timerfd.h sys/vfs.h linux/magic.h linux/fiemap.h)
-
-case "$host_os" in
- linux*)
- AC_CHECK_HEADERS(asm/byteorder.h linux/fs.h malloc.h,,AC_MSG_ERROR(bailing out)) ;;
- darwin*)
- AC_CHECK_HEADERS(machine/endian.h sys/disk.h,,AC_MSG_ERROR(bailing out)) ;;
-esac
-
-################################################################################
-dnl -- Check for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_C_INLINE
-AC_CHECK_MEMBERS([struct stat.st_rdev])
-AC_CHECK_TYPES([ptrdiff_t])
-AC_STRUCT_ST_BLOCKS
-AC_STRUCT_TM
-AC_TYPE_OFF_T
-AC_TYPE_PID_T
-AC_TYPE_SIGNAL
-AC_TYPE_SIZE_T
-AC_TYPE_MODE_T
-AC_TYPE_INT8_T
-AC_TYPE_INT16_T
-AC_TYPE_INT32_T
-AC_TYPE_INT64_T
-AC_TYPE_SSIZE_T
-AC_TYPE_UID_T
-AC_TYPE_UINT8_T
-AC_TYPE_UINT16_T
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
-AX_GCC_BUILTIN([__builtin_clz])
-
-################################################################################
-dnl -- Check for functions
-AC_CHECK_FUNCS([ftruncate gethostname getpagesize gettimeofday localtime_r \
- memchr memset mkdir mkfifo munmap nl_langinfo realpath rmdir setenv \
- setlocale strcasecmp strchr strcspn strdup strerror strncasecmp strndup \
- strrchr strspn strstr strtol strtoul uname], , [AC_MSG_ERROR(bailing out)])
-AC_FUNC_ALLOCA
-AC_FUNC_CLOSEDIR_VOID
-AC_FUNC_CHOWN
-AC_FUNC_FORK
-AC_FUNC_LSTAT
-AC_FUNC_MALLOC
-AC_FUNC_MEMCMP
-AC_FUNC_MKTIME
-AC_FUNC_MMAP
-AC_FUNC_REALLOC
-AC_FUNC_STAT
-AC_FUNC_STRTOD
-AC_FUNC_VPRINTF
-
-################################################################################
-dnl -- Disable dependency tracking
-AC_MSG_CHECKING(whether to enable dependency tracking)
-AC_ARG_ENABLE(dependency-tracking,
- AC_HELP_STRING([--disable-dependency-tracking],
- [speeds up one-time build.]),
- USE_TRACKING=$enableval, USE_TRACKING=yes)
-AC_MSG_RESULT($USE_TRACKING)
-
-################################################################################
-dnl -- Enables statically-linked tools
-AC_MSG_CHECKING(whether to use static linking)
-AC_ARG_ENABLE(static_link,
- AC_HELP_STRING([--enable-static_link],
- [use this to link the tools to their libraries
- statically (default is dynamic linking]),
- STATIC_LINK=$enableval, STATIC_LINK=no)
-AC_MSG_RESULT($STATIC_LINK)
-
-################################################################################
-dnl -- Check if compiler/linker supports PIE and RELRO
-AC_TRY_CCFLAG([-pie], [HAVE_PIE], [], [])
-AC_SUBST(HAVE_PIE)
-AC_TRY_LDFLAGS([-Wl,-z,relro,-z,now], [HAVE_FULL_RELRO], [], [])
-AC_SUBST(HAVE_FULL_RELRO)
-
-################################################################################
-dnl -- Prefix is /usr by default, the exec_prefix default is setup later
-AC_PREFIX_DEFAULT(/usr)
-
-################################################################################
-dnl -- Clear default exec_prefix - install into /sbin rather than /usr/sbin
-test "$exec_prefix" = NONE -a "$prefix" = NONE && exec_prefix=""
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-
-################################################################################
-dnl -- Setup the ownership of the files
-AC_MSG_CHECKING(file owner)
-AC_ARG_WITH(user,
- AC_HELP_STRING([--with-user=USER],
- [set the owner of installed files [USER=]]),
- OWNER=$withval)
-AC_MSG_RESULT($OWNER)
-test -n "$OWNER" && INSTALL="$INSTALL -o $OWNER"
-
-################################################################################
-dnl -- Setup the group ownership of the files
-AC_MSG_CHECKING(group owner)
-AC_ARG_WITH(group,
- AC_HELP_STRING([--with-group=GROUP],
- [set the group owner of installed files [GROUP=]]),
- GROUP=$withval)
-AC_MSG_RESULT($GROUP)
-test -n "$GROUP" && INSTALL="$INSTALL -g $GROUP"
-
-################################################################################
-dnl -- Setup device node ownership
-AC_MSG_CHECKING(device node uid)
-
-AC_ARG_WITH(device-uid,
- AC_HELP_STRING([--with-device-uid=UID],
- [set the owner used for new device nodes [UID=0]]),
- DM_DEVICE_UID=$withval, DM_DEVICE_UID=0)
-AC_MSG_RESULT($DM_DEVICE_UID)
-AC_DEFINE_UNQUOTED([DM_DEVICE_UID], [$DM_DEVICE_UID], [Define default owner for device node])
-
-################################################################################
-dnl -- Setup device group ownership
-AC_MSG_CHECKING(device node gid)
-
-AC_ARG_WITH(device-gid,
- AC_HELP_STRING([--with-device-gid=GID],
- [set the group used for new device nodes [GID=0]]),
- DM_DEVICE_GID=$withval, DM_DEVICE_GID=0)
-AC_MSG_RESULT($DM_DEVICE_GID)
-AC_DEFINE_UNQUOTED([DM_DEVICE_GID], [$DM_DEVICE_GID], [Define default group for device node])
-
-################################################################################
-dnl -- Setup device mode
-AC_MSG_CHECKING(device node mode)
-
-AC_ARG_WITH(device-mode,
- AC_HELP_STRING([--with-device-mode=MODE],
- [set the mode used for new device nodes [MODE=0600]]),
- DM_DEVICE_MODE=$withval, DM_DEVICE_MODE=0600)
-AC_MSG_RESULT($DM_DEVICE_MODE)
-AC_DEFINE_UNQUOTED([DM_DEVICE_MODE], [$DM_DEVICE_MODE], [Define default mode for device node])
-
-AC_MSG_CHECKING(when to create device nodes)
-AC_ARG_WITH(device-nodes-on,
- AC_HELP_STRING([--with-device-nodes-on=ON],
- [create nodes on resume or create [ON=resume]]),
- ADD_NODE=$withval, ADD_NODE=resume)
-case "$ADD_NODE" in
- resume) add_on=DM_ADD_NODE_ON_RESUME;;
- create) add_on=DM_ADD_NODE_ON_CREATE;;
- *) AC_MSG_ERROR([--with-device-nodes-on parameter invalid]);;
-esac
-AC_MSG_RESULT(on $ADD_NODE)
-AC_DEFINE_UNQUOTED([DEFAULT_DM_ADD_NODE], $add_on, [Define default node creation behavior with dmsetup create])
-
-AC_MSG_CHECKING(default name mangling)
-AC_ARG_WITH(default-name-mangling,
- AC_HELP_STRING([--with-default-name-mangling=MANGLING],
- [default name mangling: auto/none/hex [auto]]),
- MANGLING=$withval, MANGLING=auto)
-case "$MANGLING" in
- auto) mangling=DM_STRING_MANGLING_AUTO;;
- none|disabled) mangling=DM_STRING_MANGLING_NONE;;
- hex) mangling=DM_STRING_MANGLING_HEX;;
- *) AC_MSG_ERROR([--with-default-name-mangling parameter invalid]);;
-esac
-AC_MSG_RESULT($MANGLING)
-AC_DEFINE_UNQUOTED([DEFAULT_DM_NAME_MANGLING], $mangling, [Define default name mangling behaviour])
-
-################################################################################
-dnl -- LVM1 tool fallback option
-AC_MSG_CHECKING(whether to enable lvm1 fallback)
-AC_ARG_ENABLE(lvm1_fallback,
- AC_HELP_STRING([--enable-lvm1_fallback],
- [use this to fall back and use LVM1 binaries if
- device-mapper is missing from the kernel]),
- LVM1_FALLBACK=$enableval, LVM1_FALLBACK=no)
-AC_MSG_RESULT($LVM1_FALLBACK)
-
-if test "$LVM1_FALLBACK" = yes; then
- DEFAULT_FALLBACK_TO_LVM1=1
- AC_DEFINE([LVM1_FALLBACK], 1, [Define to 1 if 'lvm' should fall back to using LVM1 binaries if device-mapper is missing from the kernel])
-else
- DEFAULT_FALLBACK_TO_LVM1=0
-fi
-AC_DEFINE_UNQUOTED(DEFAULT_FALLBACK_TO_LVM1, [$DEFAULT_FALLBACK_TO_LVM1],
- [Fall back to LVM1 by default if device-mapper is missing from the kernel.])
-
-################################################################################
-dnl -- format1 inclusion type
-AC_MSG_CHECKING(whether to include support for lvm1 metadata)
-AC_ARG_WITH(lvm1,
- AC_HELP_STRING([--with-lvm1=TYPE],
- [LVM1 metadata support: internal/shared/none [internal]]),
- LVM1=$withval, LVM1=internal)
-
-AC_MSG_RESULT($LVM1)
-
-case "$LVM1" in
- none|shared) ;;
- internal) AC_DEFINE([LVM1_INTERNAL], 1,
- [Define to 1 to include built-in support for LVM1 metadata.]) ;;
- *) AC_MSG_ERROR([--with-lvm1 parameter invalid]) ;;
-esac
-
-################################################################################
-dnl -- format_pool inclusion type
-AC_MSG_CHECKING(whether to include support for GFS pool metadata)
-AC_ARG_WITH(pool,
- AC_HELP_STRING([--with-pool=TYPE],
- [GFS pool read-only support: internal/shared/none [internal]]),
- POOL=$withval, POOL=internal)
-AC_MSG_RESULT($POOL)
-
-case "$POOL" in
- none|shared) ;;
- internal) AC_DEFINE([POOL_INTERNAL], 1,
- [Define to 1 to include built-in support for GFS pool metadata.]) ;;
- *) AC_MSG_ERROR([--with-pool parameter invalid])
-esac
-
-################################################################################
-dnl -- cluster_locking inclusion type
-AC_MSG_CHECKING(whether to include support for cluster locking)
-AC_ARG_WITH(cluster,
- AC_HELP_STRING([--with-cluster=TYPE],
- [cluster LVM locking support: internal/shared/none [internal]]),
- CLUSTER=$withval)
-AC_MSG_RESULT($CLUSTER)
-
-case "$CLUSTER" in
- none|shared) ;;
- internal) AC_DEFINE([CLUSTER_LOCKING_INTERNAL], 1,
- [Define to 1 to include built-in support for clustered LVM locking.]) ;;
- *) AC_MSG_ERROR([--with-cluster parameter invalid]) ;;
-esac
-
-################################################################################
-dnl -- snapshots inclusion type
-AC_MSG_CHECKING(whether to include snapshots)
-AC_ARG_WITH(snapshots,
- AC_HELP_STRING([--with-snapshots=TYPE],
- [snapshot support: internal/shared/none [internal]]),
- SNAPSHOTS=$withval, SNAPSHOTS=internal)
-AC_MSG_RESULT($SNAPSHOTS)
-
-case "$SNAPSHOTS" in
- none|shared) ;;
- internal) AC_DEFINE([SNAPSHOT_INTERNAL], 1,
- [Define to 1 to include built-in support for snapshots.]) ;;
- *) AC_MSG_ERROR([--with-snapshots parameter invalid]) ;;
-esac
-
-################################################################################
-dnl -- mirrors inclusion type
-AC_MSG_CHECKING(whether to include mirrors)
-AC_ARG_WITH(mirrors,
- AC_HELP_STRING([--with-mirrors=TYPE],
- [mirror support: internal/shared/none [internal]]),
- MIRRORS=$withval, MIRRORS=internal)
-AC_MSG_RESULT($MIRRORS)
-
-case "$MIRRORS" in
- none|shared) ;;
- internal) AC_DEFINE([MIRRORED_INTERNAL], 1,
- [Define to 1 to include built-in support for mirrors.]) ;;
- *) AC_MSG_ERROR([--with-mirrors parameter invalid]) ;;
-esac
-
-################################################################################
-dnl -- raid inclusion type
-AC_MSG_CHECKING(whether to include raid)
-AC_ARG_WITH(raid,
- AC_HELP_STRING([--with-raid=TYPE],
- [raid support: internal/shared/none [internal]]),
- RAID=$withval, RAID=internal)
-AC_MSG_RESULT($RAID)
-
-AC_ARG_WITH(default-mirror-segtype,
- AC_HELP_STRING([--with-default-mirror-segtype=TYPE],
- [default mirror segtype: raid1/mirror [raid1]]),
- DEFAULT_MIRROR_SEGTYPE=$withval, DEFAULT_MIRROR_SEGTYPE="raid1")
-AC_ARG_WITH(default-raid10-segtype,
- AC_HELP_STRING([--with-default-raid10-segtype=TYPE],
- [default mirror segtype: raid10/mirror [raid10]]),
- DEFAULT_RAID10_SEGTYPE=$withval, DEFAULT_RAID10_SEGTYPE="raid10")
-case "$RAID" in
- none) test "$DEFAULT_MIRROR_SEGTYPE" = "raid1" && DEFAULT_MIRROR_SEGTYPE="mirror"
- test "$DEFAULT_RAID10_SEGTYPE" = "raid10" && DEFAULT_RAID10_SEGTYPE="mirror" ;;
- shared) ;;
- internal) AC_DEFINE([RAID_INTERNAL], 1,
- [Define to 1 to include built-in support for raid.]) ;;
- *) AC_MSG_ERROR([--with-raid parameter invalid]) ;;
-esac
-
-AC_DEFINE_UNQUOTED([DEFAULT_MIRROR_SEGTYPE], ["$DEFAULT_MIRROR_SEGTYPE"],
- [Default segtype used for mirror volumes.])
-
-AC_DEFINE_UNQUOTED([DEFAULT_RAID10_SEGTYPE], ["$DEFAULT_RAID10_SEGTYPE"],
- [Default segtype used for raid10 volumes.])
-
-################################################################################
-AC_ARG_WITH(default-sparse-segtype,
- AC_HELP_STRING([--with-default-sparse-segtype=TYPE],
- [default sparse segtype: thin/snapshot [thin]]),
- DEFAULT_SPARSE_SEGTYPE=$withval, DEFAULT_SPARSE_SEGTYPE="thin")
-
-################################################################################
-dnl -- thin provisioning
-AC_MSG_CHECKING(whether to include thin provisioning)
-AC_ARG_WITH(thin,
- AC_HELP_STRING([--with-thin=TYPE],
- [thin provisioning support: internal/shared/none [internal]]),
- THIN=$withval, THIN=internal)
-AC_ARG_WITH(thin-check,
- AC_HELP_STRING([--with-thin-check=PATH],
- [thin_check tool: [autodetect]]),
- THIN_CHECK_CMD=$withval, THIN_CHECK_CMD="autodetect")
-AC_ARG_WITH(thin-dump,
- AC_HELP_STRING([--with-thin-dump=PATH],
- [thin_dump tool: [autodetect]]),
- THIN_DUMP_CMD=$withval, THIN_DUMP_CMD="autodetect")
-AC_ARG_WITH(thin-repair,
- AC_HELP_STRING([--with-thin-repair=PATH],
- [thin_repair tool: [autodetect]]),
- THIN_REPAIR_CMD=$withval, THIN_REPAIR_CMD="autodetect")
-AC_ARG_WITH(thin-restore,
- AC_HELP_STRING([--with-thin-restore=PATH],
- [thin_restore tool: [autodetect]]),
- THIN_RESTORE_CMD=$withval, THIN_RESTORE_CMD="autodetect")
-
-AC_MSG_RESULT($THIN)
-
-case "$THIN" in
- none) test "$DEFAULT_SPARSE_SEGTYPE" = "thin" && DEFAULT_SPARSE_SEGTYPE="snapshot" ;;
- shared) ;;
- internal) AC_DEFINE([THIN_INTERNAL], 1,
- [Define to 1 to include built-in support for thin provisioning.]) ;;
- *) AC_MSG_ERROR([--with-thin parameter invalid ($THIN)]) ;;
-esac
-
-AC_DEFINE_UNQUOTED([DEFAULT_SPARSE_SEGTYPE], ["$DEFAULT_SPARSE_SEGTYPE"],
- [Default segtype used for sparse volumes.])
-
-dnl -- thin_check needs-check flag
-AC_ARG_ENABLE(thin_check_needs_check,
- AC_HELP_STRING([--disable-thin_check_needs_check],
- [required if thin_check version is < 0.3.0]),
- THIN_CHECK_NEEDS_CHECK=$enableval, THIN_CHECK_NEEDS_CHECK=yes)
-
-# Test if necessary thin tools are available
-# if not - use plain defaults and warn user
-case "$THIN" in
- internal|shared)
- # Empty means a config way to ignore thin checking
- if test "$THIN_CHECK_CMD" = "autodetect"; then
- AC_PATH_TOOL(THIN_CHECK_CMD, thin_check, [], [$PATH_SBIN])
- if test -z "$THIN_CHECK_CMD"; then
- AC_MSG_WARN([thin_check not found in path $PATH])
- THIN_CHECK_CMD=/usr/sbin/thin_check
- THIN_CONFIGURE_WARN=y
- fi
- fi
- if test "$THIN_CHECK_NEEDS_CHECK" = yes; then
- THIN_CHECK_VSN=`"$THIN_CHECK_CMD" -V 2>/dev/null`
- THIN_CHECK_VSN_MAJOR=`echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $1}'`
- THIN_CHECK_VSN_MINOR=`echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $2}'`
-
- if test -z "$THIN_CHECK_VSN_MAJOR" -o -z "$THIN_CHECK_VSN_MINOR"; then
- AC_MSG_WARN([$THIN_CHECK_CMD: Bad version "$THIN_CHECK_VSN" found])
- THIN_CHECK_VERSION_WARN=y
- THIN_CHECK_NEEDS_CHECK=no
- elif test "$THIN_CHECK_VSN_MAJOR" -eq 0 -a "$THIN_CHECK_VSN_MINOR" -lt 3; then
- AC_MSG_WARN([$THIN_CHECK_CMD: Old version "$THIN_CHECK_VSN" found])
- THIN_CHECK_VERSION_WARN=y
- THIN_CHECK_NEEDS_CHECK=no
- fi
- fi
- # Empty means a config way to ignore thin dumping
- if test "$THIN_DUMP_CMD" = "autodetect"; then
- AC_PATH_TOOL(THIN_DUMP_CMD, thin_dump, [], [$PATH_SBIN])
- test -z "$THIN_DUMP_CMD" && {
- AC_MSG_WARN(thin_dump not found in path $PATH)
- THIN_DUMP_CMD=/usr/sbin/thin_dump
- THIN_CONFIGURE_WARN=y
- }
- fi
- # Empty means a config way to ignore thin repairing
- if test "$THIN_REPAIR_CMD" = "autodetect"; then
- AC_PATH_TOOL(THIN_REPAIR_CMD, thin_repair, [], [$PATH_SBIN])
- test -z "$THIN_REPAIR_CMD" && {
- AC_MSG_WARN(thin_repair not found in path $PATH)
- THIN_REPAIR_CMD=/usr/sbin/thin_repair
- THIN_CONFIGURE_WARN=y
- }
- fi
- # Empty means a config way to ignore thin restoring
- if test "$THIN_RESTORE_CMD" = "autodetect"; then
- AC_PATH_TOOL(THIN_RESTORE_CMD, thin_restore, [], [$PATH_SBIN])
- test -z "$THIN_RESTORE_CMD" && {
- AC_MSG_WARN(thin_restore not found in path $PATH)
- THIN_RESTORE_CMD=/usr/sbin/thin_restore
- THIN_CONFIGURE_WARN=y
- }
- fi
-
- AC_MSG_CHECKING([whether thin_check supports the needs-check flag])
- AC_MSG_RESULT([$THIN_CHECK_NEEDS_CHECK])
- if test "$THIN_CHECK_NEEDS_CHECK" = yes; then
- AC_DEFINE([THIN_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'thin_check' tool requires the --clear-needs-check-flag option])
- fi
-
- ;;
-esac
-
-AC_DEFINE_UNQUOTED([THIN_CHECK_CMD], ["$THIN_CHECK_CMD"],
- [The path to 'thin_check', if available.])
-
-AC_DEFINE_UNQUOTED([THIN_DUMP_CMD], ["$THIN_DUMP_CMD"],
- [The path to 'thin_dump', if available.])
-
-AC_DEFINE_UNQUOTED([THIN_REPAIR_CMD], ["$THIN_REPAIR_CMD"],
- [The path to 'thin_repair', if available.])
-
-AC_DEFINE_UNQUOTED([THIN_RESTORE_CMD], ["$THIN_RESTORE_CMD"],
- [The path to 'thin_restore', if available.])
-
-################################################################################
-dnl -- cache inclusion type
-AC_MSG_CHECKING(whether to include cache)
-AC_ARG_WITH(cache,
- AC_HELP_STRING([--with-cache=TYPE],
- [cache support: internal/shared/none [internal]]),
- CACHE=$withval, CACHE="internal")
-AC_ARG_WITH(cache-check,
- AC_HELP_STRING([--with-cache-check=PATH],
- [cache_check tool: [autodetect]]),
- CACHE_CHECK_CMD=$withval, CACHE_CHECK_CMD="autodetect")
-AC_ARG_WITH(cache-dump,
- AC_HELP_STRING([--with-cache-dump=PATH],
- [cache_dump tool: [autodetect]]),
- CACHE_DUMP_CMD=$withval, CACHE_DUMP_CMD="autodetect")
-AC_ARG_WITH(cache-repair,
- AC_HELP_STRING([--with-cache-repair=PATH],
- [cache_repair tool: [autodetect]]),
- CACHE_REPAIR_CMD=$withval, CACHE_REPAIR_CMD="autodetect")
-AC_ARG_WITH(cache-restore,
- AC_HELP_STRING([--with-cache-restore=PATH],
- [cache_restore tool: [autodetect]]),
- CACHE_RESTORE_CMD=$withval, CACHE_RESTORE_CMD="autodetect")
-AC_MSG_RESULT($CACHE)
-
-case "$CACHE" in
- none|shared) ;;
- internal) AC_DEFINE([CACHE_INTERNAL], 1, [Define to 1 to include built-in support for cache.]) ;;
- *) AC_MSG_ERROR([--with-cache parameter invalid]) ;;
-esac
-
-dnl -- cache_check needs-check flag
-AC_ARG_ENABLE(cache_check_needs_check,
- AC_HELP_STRING([--disable-cache_check_needs_check],
- [required if cache_check version is < 0.5]),
- CACHE_CHECK_NEEDS_CHECK=$enableval, CACHE_CHECK_NEEDS_CHECK=yes)
-
-# Test if necessary cache tools are available
-# if not - use plain defaults and warn user
-case "$CACHE" in
- internal|shared)
- # Empty means a config way to ignore cache checking
- if test "$CACHE_CHECK_CMD" = "autodetect"; then
- AC_PATH_TOOL(CACHE_CHECK_CMD, cache_check, [], [$PATH_SBIN])
- if test -z "$CACHE_CHECK_CMD"; then
- AC_MSG_WARN([cache_check not found in path $PATH])
- CACHE_CHECK_CMD=/usr/sbin/cache_check
- CACHE_CONFIGURE_WARN=y
- fi
- fi
- if test "$CACHE_CHECK_NEEDS_CHECK" = yes; then
- $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
- if test -z "$CACHE_CHECK_VSN_MAJOR" \
- || test -z "$CACHE_CHECK_VSN_MINOR" \
- || test -z "$CACHE_CHECK_VSN_PATCH"; then
- AC_MSG_WARN([$CACHE_CHECK_CMD: Bad version "$CACHE_CHECK_VSN" found])
- CACHE_CHECK_VERSION_WARN=y
- CACHE_CHECK_NEEDS_CHECK=no
- elif test "$CACHE_CHECK_VSN_MAJOR" -eq 0 ; then
- if test "$CACHE_CHECK_VSN_MINOR" -lt 5 \
- || test "$CACHE_CHECK_VSN_MINOR" -eq 5 -a "$CACHE_CHECK_VSN_PATCH" -lt 4; then
- AC_MSG_WARN([$CACHE_CHECK_CMD: Old version "$CACHE_CHECK_VSN" found])
- CACHE_CHECK_VERSION_WARN=y
- CACHE_CHECK_NEEDS_CHECK=no
- fi
- if test "$CACHE_CHECK_VSN_MINOR" -lt 7 ; then
- AC_MSG_WARN([$CACHE_CHECK_CMD: Old version "$CACHE_CHECK_VSN" does not support new cache format V2])
- CACHE_CHECK_VERSION_WARN=y
- fi
- fi
- fi
- # Empty means a config way to ignore cache dumping
- if test "$CACHE_DUMP_CMD" = "autodetect"; then
- AC_PATH_TOOL(CACHE_DUMP_CMD, cache_dump, [], [$PATH_SBIN])
- test -z "$CACHE_DUMP_CMD" && {
- AC_MSG_WARN(cache_dump not found in path $PATH)
- CACHE_DUMP_CMD=/usr/sbin/cache_dump
- CACHE_CONFIGURE_WARN=y
- }
- fi
- # Empty means a config way to ignore cache repairing
- if test "$CACHE_REPAIR_CMD" = "autodetect"; then
- AC_PATH_TOOL(CACHE_REPAIR_CMD, cache_repair, [], [$PATH_SBIN])
- test -z "$CACHE_REPAIR_CMD" && {
- AC_MSG_WARN(cache_repair not found in path $PATH)
- CACHE_REPAIR_CMD=/usr/sbin/cache_repair
- CACHE_CONFIGURE_WARN=y
- }
- fi
- # Empty means a config way to ignore cache restoring
- if test "$CACHE_RESTORE_CMD" = "autodetect"; then
- AC_PATH_TOOL(CACHE_RESTORE_CMD, cache_restore, [], [$PATH_SBIN])
- test -z "$CACHE_RESTORE_CMD" && {
- AC_MSG_WARN(cache_restore not found in path $PATH)
- CACHE_RESTORE_CMD=/usr/sbin/cache_restore
- CACHE_CONFIGURE_WARN=y
- }
- fi
-
- AC_MSG_CHECKING([whether cache_check supports the needs-check flag])
- AC_MSG_RESULT([$CACHE_CHECK_NEEDS_CHECK])
- if test "$CACHE_CHECK_NEEDS_CHECK" = yes; then
- AC_DEFINE([CACHE_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'cache_check' tool requires the --clear-needs-check-flag option])
- fi
- ;;
-esac
-
-AC_DEFINE_UNQUOTED([CACHE_CHECK_CMD], ["$CACHE_CHECK_CMD"],
- [The path to 'cache_check', if available.])
-
-AC_DEFINE_UNQUOTED([CACHE_DUMP_CMD], ["$CACHE_DUMP_CMD"],
- [The path to 'cache_dump', if available.])
-
-AC_DEFINE_UNQUOTED([CACHE_REPAIR_CMD], ["$CACHE_REPAIR_CMD"],
- [The path to 'cache_repair', if available.])
-
-AC_DEFINE_UNQUOTED([CACHE_RESTORE_CMD], ["$CACHE_RESTORE_CMD"],
- [The path to 'cache_restore', if available.])
-
-
-################################################################################
-dnl -- Disable readline
-AC_ARG_ENABLE([readline],
- AC_HELP_STRING([--disable-readline], [disable readline support]),
- READLINE=$enableval, READLINE=maybe)
-
-################################################################################
-dnl -- Disable realtime clock support
-AC_MSG_CHECKING(whether to enable realtime support)
-AC_ARG_ENABLE(realtime,
- AC_HELP_STRING([--disable-realtime], [disable realtime clock support]),
- REALTIME=$enableval, REALTIME=yes)
-AC_MSG_RESULT($REALTIME)
-
-################################################################################
-dnl -- disable OCF resource agents
-AC_MSG_CHECKING(whether to enable OCF resource agents)
-AC_ARG_ENABLE(ocf,
- AC_HELP_STRING([--enable-ocf],
- [enable Open Cluster Framework (OCF) compliant resource agents]),
- OCF=$enableval, OCF=no)
-AC_MSG_RESULT($OCF)
-AC_ARG_WITH(ocfdir,
- AC_HELP_STRING([--with-ocfdir=DIR],
- [install OCF files in [PREFIX/lib/ocf/resource.d/lvm2]]),
- OCFDIR=$withval, OCFDIR='${prefix}/lib/ocf/resource.d/lvm2')
-
-################################################################################
-dnl -- Init pkg-config with dummy invokation:
-dnl -- this is required because PKG_CHECK_MODULES macro is expanded
-dnl -- to initialize the pkg-config environment only at the first invokation,
-dnl -- that would be conditional in this configure.in.
-pkg_config_init() {
- if test "$PKGCONFIG_INIT" != 1; then
- PKG_CHECK_MODULES(PKGCONFIGINIT, pkgconfiginit, [],
- [AC_MSG_RESULT([pkg-config initialized])])
- PKGCONFIG_INIT=1
- fi
-}
-
-################################################################################
-AC_MSG_CHECKING(for default run directory)
-RUN_DIR="/run"
-test -d "/run" || RUN_DIR="/var/run"
-AC_MSG_RESULT($RUN_DIR)
-dnl -- Set up pidfile and run directory
-AH_TEMPLATE(DEFAULT_PID_DIR)
-AC_ARG_WITH(default-pid-dir,
- AC_HELP_STRING([--with-default-pid-dir=PID_DIR],
- [Default directory to keep PID files in. [autodetect]]),
- DEFAULT_PID_DIR="$withval", DEFAULT_PID_DIR=$RUN_DIR)
-AC_DEFINE_UNQUOTED(DEFAULT_PID_DIR, ["$DEFAULT_PID_DIR"],
- [Default directory to keep PID files in.])
-
-AH_TEMPLATE(DEFAULT_DM_RUN_DIR, [Name of default DM run directory.])
-AC_ARG_WITH(default-dm-run-dir,
- AC_HELP_STRING([--with-default-dm-run-dir=DM_RUN_DIR],
- [ Default DM run directory. [autodetect]]),
- DEFAULT_DM_RUN_DIR="$withval", DEFAULT_DM_RUN_DIR=$RUN_DIR)
-AC_DEFINE_UNQUOTED(DEFAULT_DM_RUN_DIR, ["$DEFAULT_DM_RUN_DIR"],
- [Default DM run directory.])
-
-AH_TEMPLATE(DEFAULT_RUN_DIR, [Name of default LVM run directory.])
-AC_ARG_WITH(default-run-dir,
- AC_HELP_STRING([--with-default-run-dir=RUN_DIR],
- [Default LVM run directory. [autodetect_run_dir/lvm]]),
- DEFAULT_RUN_DIR="$withval", DEFAULT_RUN_DIR="$RUN_DIR/lvm")
-AC_DEFINE_UNQUOTED(DEFAULT_RUN_DIR, ["$DEFAULT_RUN_DIR"],
- [Default LVM run directory.])
-
-################################################################################
-dnl -- Build cluster LVM daemon
-AC_MSG_CHECKING(whether to build cluster LVM daemon)
-AC_ARG_WITH(clvmd,
- [ --with-clvmd=TYPE build cluster LVM Daemon
- The following cluster manager combinations are valid:
- * cman (RHEL5 or equivalent)
- * cman,corosync,openais (or selection of them)
- * singlenode (localhost only)
- * all (autodetect)
- * none (disable build)
- [[none]]],
- CLVMD=$withval, CLVMD=none)
-test "$CLVMD" = yes && CLVMD=all
-AC_MSG_RESULT($CLVMD)
-
-dnl -- If clvmd enabled without cluster locking, automagically include it
-test "$CLVMD" != none -a "$CLUSTER" = none && CLUSTER=internal
-
-dnl -- init pkgconfig if required
-test "$CLVMD" != none && pkg_config_init
-
-dnl -- Express clvmd init script Required-Start / Required-Stop
-CLVMD_CMANAGERS=""
-dnl -- On RHEL4/RHEL5, qdiskd is started from a separate init script.
-dnl -- Enable if we are build for cman.
-CLVMD_NEEDS_QDISKD=no
-
-dnl -- define build types
-if [[ `expr x"$CLVMD" : '.*gulm.*'` != 0 ]]; then
- AC_MSG_ERROR([Since version 2.02.87 GULM locking is no longer supported.]);
-fi
-if [[ `expr x"$CLVMD" : '.*cman.*'` != 0 ]]; then
- BUILDCMAN=yes
- CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman"
- CLVMD_NEEDS_QDISKD=yes
-fi
-if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then
- BUILDCOROSYNC=yes
- CLVMD_CMANAGERS="$CLVMD_CMANAGERS corosync"
-fi
-if [[ `expr x"$CLVMD" : '.*openais.*'` != 0 ]]; then
- BUILDOPENAIS=yes
- CLVMD_CMANAGERS="$CLVMD_CMANAGERS openais"
-fi
-test "$CLVMD_NEEDS_QDISKD" != no && CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd"
-
-dnl -- define a soft bailout if we are autodetecting
-soft_bailout() {
- NOTFOUND=1
-}
-
-hard_bailout() {
- AC_MSG_ERROR([bailing out])
-}
-
-dnl -- if clvmd=all then set soft_bailout (we do not want to error)
-dnl -- and set all builds to yes. We need to do this here
-dnl -- to skip the openais|corosync sanity check above.
-if test "$CLVMD" = all; then
- bailout=soft_bailout
- BUILDCMAN=yes
- BUILDCOROSYNC=yes
- BUILDOPENAIS=yes
-else
- bailout=hard_bailout
-fi
-
-dnl -- helper macro to check libs without adding them to LIBS
-check_lib_no_libs() {
- lib_no_libs_arg1=$1
- shift
- lib_no_libs_arg2=$1
- shift
- lib_no_libs_args=$@
- AC_CHECK_LIB([$lib_no_libs_arg1],
- [$lib_no_libs_arg2],,
- [$bailout],
- [$lib_no_libs_args])
- LIBS=$ac_check_lib_save_LIBS
-}
-
-dnl -- Look for cman libraries if required.
-if test "$BUILDCMAN" = yes; then
- PKG_CHECK_MODULES(CMAN, libcman, [HAVE_CMAN=yes],
- [NOTFOUND=0
- AC_CHECK_HEADERS(libcman.h,,$bailout)
- check_lib_no_libs cman cman_init
- if test $NOTFOUND = 0; then
- AC_MSG_RESULT([no pkg for libcman, using -lcman])
- CMAN_LIBS="-lcman"
- HAVE_CMAN=yes
- fi])
- CHECKCONFDB=yes
- CHECKDLM=yes
-fi
-
-dnl -- Look for corosync that is required also for openais build
-dnl -- only enough recent version of corosync ship pkg-config files.
-dnl -- We can safely rely on that to detect the correct bits.
-if test "$BUILDCOROSYNC" = yes -o "$BUILDOPENAIS" = yes; then
- PKG_CHECK_MODULES(COROSYNC, corosync, [HAVE_COROSYNC=yes], $bailout)
- CHECKCONFDB=yes
- CHECKCMAP=yes
-fi
-
-dnl -- Look for corosync libraries if required.
-if test "$BUILDCOROSYNC" = yes; then
- PKG_CHECK_MODULES(QUORUM, libquorum, [HAVE_QUORUM=yes], $bailout)
- CHECKCPG=yes
- CHECKDLM=yes
-fi
-
-dnl -- Look for openais libraries if required.
-if test "$BUILDOPENAIS" = yes; then
- PKG_CHECK_MODULES(SALCK, libSaLck, [HAVE_SALCK=yes], $bailout)
- CHECKCPG=yes
-fi
-
-dnl -- Below are checks for libraries common to more than one build.
-
-dnl -- Check confdb library.
-dnl -- mandatory for corosync < 2.0 build.
-dnl -- optional for openais/cman build.
-
-if test "$CHECKCONFDB" = yes; then
- PKG_CHECK_MODULES(CONFDB, libconfdb,
- [HAVE_CONFDB=yes], [HAVE_CONFDB=no])
-
- AC_CHECK_HEADERS([corosync/confdb.h],
- [HAVE_CONFDB_H=yes], [HAVE_CONFDB_H=no])
-
- if test "$HAVE_CONFDB" != yes -a "$HAVE_CONFDB_H" = yes; then
- check_lib_no_libs confdb confdb_initialize
- AC_MSG_RESULT([no pkg for confdb, using -lconfdb])
- CONFDB_LIBS="-lconfdb"
- HAVE_CONFDB=yes
- fi
-fi
-
-dnl -- Check cmap library
-dnl -- mandatory for corosync >= 2.0 build.
-
-if test "$CHECKCMAP" = yes; then
- PKG_CHECK_MODULES(CMAP, libcmap,
- [HAVE_CMAP=yes], [HAVE_CMAP=no])
-
- AC_CHECK_HEADERS([corosync/cmap.h],
- [HAVE_CMAP_H=yes], [HAVE_CMAP_H=no])
-
- if test "$HAVE_CMAP" != yes -a "$HAVE_CMAP_H" = yes; then
- check_lib_no_libs cmap cmap_initialize
- AC_MSG_RESULT([no pkg for cmap, using -lcmap])
- CMAP_LIBS="-lcmap"
- HAVE_CMAP=yes
- fi
-fi
-
-if test "$BUILDCOROSYNC" = yes -a \
- "$HAVE_CMAP" != yes -a "$HAVE_CONFDB" != yes -a "$CLVMD" != all; then
- AC_MSG_ERROR([bailing out... cmap (corosync >= 2.0) or confdb (corosync < 2.0) library is required])
-fi
-
-dnl -- Check cpg library.
-if test "$CHECKCPG" = yes; then
- PKG_CHECK_MODULES(CPG, libcpg, [HAVE_CPG=yes], [$bailout])
-fi
-
-dnl -- Check dlm library.
-if test "$CHECKDLM" = yes; then
- PKG_CHECK_MODULES(DLM, libdlm, [HAVE_DLM=yes],
- [NOTFOUND=0
- AC_CHECK_HEADERS(libdlm.h,,[$bailout])
- check_lib_no_libs dlm dlm_lock -lpthread
- if test $NOTFOUND = 0; then
- AC_MSG_RESULT([no pkg for libdlm, using -ldlm])
- DLM_LIBS="-ldlm -lpthread"
- HAVE_DLM=yes
- fi])
-fi
-
-dnl -- If we are autodetecting, we need to re-create
-dnl -- the depedencies checks and set a proper CLVMD,
-dnl -- together with init script Required-Start/Stop entries.
-if test "$CLVMD" = all; then
- CLVMD=none
- CLVMD_CMANAGERS=""
- CLVMD_NEEDS_QDISKD=no
- if test "$HAVE_CMAN" = yes -a \
- "$HAVE_DLM" = yes; then
- AC_MSG_RESULT([Enabling clvmd cman cluster manager])
- CLVMD="$CLVMD,cman"
- CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman"
- CLVMD_NEEDS_QDISKD=yes
- fi
- if test "$HAVE_COROSYNC" = yes -a \
- "$HAVE_QUORUM" = yes -a \
- "$HAVE_CPG" = yes -a \
- "$HAVE_DLM" = yes; then
- if test "$HAVE_CONFDB" = yes -o "$HAVE_CMAP" = yes; then
- AC_MSG_RESULT([Enabling clvmd corosync cluster manager])
- CLVMD="$CLVMD,corosync"
- CLVMD_CMANAGERS="$CLVMD_CMANAGERS corosync"
- fi
- fi
- if test "$HAVE_COROSYNC" = yes -a \
- "$HAVE_CPG" = yes -a \
- "$HAVE_SALCK" = yes; then
- AC_MSG_RESULT([Enabling clvmd openais cluster manager])
- CLVMD="$CLVMD,openais"
- CLVMD_CMANAGERS="$CLVMD_CMANAGERS openais"
- fi
- test "$CLVMD_NEEDS_QDISKD" != no && CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd"
- test "$CLVMD" = none && AC_MSG_RESULT([Disabling clvmd build. No cluster manager detected.])
-fi
-
-dnl -- Fixup CLVMD_CMANAGERS with new corosync
-dnl -- clvmd built with corosync >= 2.0 needs dlm (either init or systemd service)
-dnl -- to be started.
-if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then
- test "$HAVE_CMAP" = yes && CLVMD_CMANAGERS="$CLVMD_CMANAGERS dlm"
-fi
-
-################################################################################
-dnl -- clvmd pidfile
-if test "$CLVMD" != none; then
- AC_ARG_WITH(clvmd-pidfile,
- AC_HELP_STRING([--with-clvmd-pidfile=PATH],
- [clvmd pidfile [PID_DIR/clvmd.pid]]),
- CLVMD_PIDFILE=$withval,
- CLVMD_PIDFILE="$DEFAULT_PID_DIR/clvmd.pid")
- AC_DEFINE_UNQUOTED(CLVMD_PIDFILE, ["$CLVMD_PIDFILE"],
- [Path to clvmd pidfile.])
-fi
-
-################################################################################
-dnl -- Build cluster mirror log daemon
-AC_MSG_CHECKING(whether to build cluster mirror log daemon)
-AC_ARG_ENABLE(cmirrord,
- AC_HELP_STRING([--enable-cmirrord],
- [enable the cluster mirror log daemon]),
- CMIRRORD=$enableval, CMIRRORD=no)
-AC_MSG_RESULT($CMIRRORD)
-
-BUILD_CMIRRORD=$CMIRRORD
-
-################################################################################
-dnl -- cmirrord pidfile
-if test "$BUILD_CMIRRORD" = yes; then
- AC_ARG_WITH(cmirrord-pidfile,
- AC_HELP_STRING([--with-cmirrord-pidfile=PATH],
- [cmirrord pidfile [PID_DIR/cmirrord.pid]]),
- CMIRRORD_PIDFILE=$withval,
- CMIRRORD_PIDFILE="$DEFAULT_PID_DIR/cmirrord.pid")
- AC_DEFINE_UNQUOTED(CMIRRORD_PIDFILE, ["$CMIRRORD_PIDFILE"],
- [Path to cmirrord pidfile.])
-fi
-
-################################################################################
-dnl -- Look for corosync libraries if required.
-if [[ "$BUILD_CMIRRORD" = yes ]]; then
- pkg_config_init
-
- AC_DEFINE([CMIRROR_HAS_CHECKPOINT], 1, [Define to 1 to include libSaCkpt.])
- PKG_CHECK_MODULES(SACKPT, libSaCkpt, [HAVE_SACKPT=yes],
- [AC_MSG_RESULT([no libSaCkpt, compiling without it])
- AC_DEFINE([CMIRROR_HAS_CHECKPOINT], 0, [Define to 0 to exclude libSaCkpt.])])
-
- if test "$HAVE_CPG" != yes; then
- PKG_CHECK_MODULES(CPG, libcpg)
- fi
-fi
-
-################################################################################
-dnl -- Enable debugging
-AC_MSG_CHECKING(whether to enable debugging)
-AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [enable debugging]),
- DEBUG=$enableval, DEBUG=no)
-AC_MSG_RESULT($DEBUG)
-
-dnl -- Normally turn off optimisation for debug builds
-if test "$DEBUG" = yes; then
- COPTIMISE_FLAG=
-else
- CSCOPE_CMD=
-fi
-
-dnl -- Check if compiler supports -Wjump-misses-init
-AC_TRY_CCFLAG([-Wjump-misses-init], [HAVE_WJUMP], [], [])
-AC_SUBST(HAVE_WJUMP)
-AC_TRY_CCFLAG([-Wclobbered], [HAVE_WCLOBBERED], [], [])
-AC_SUBST(HAVE_WCLOBBERED)
-AC_TRY_CCFLAG([-Wsync-nand], [HAVE_WSYNCNAND], [], [])
-AC_SUBST(HAVE_WSYNCNAND)
-
-################################################################################
-dnl -- Override optimisation
-AC_MSG_CHECKING(for C optimisation flag)
-AC_ARG_WITH(optimisation,
- AC_HELP_STRING([--with-optimisation=OPT],
- [C optimisation flag [OPT=-O2]]),
- COPTIMISE_FLAG=$withval)
-AC_MSG_RESULT($COPTIMISE_FLAG)
-
-################################################################################
-dnl -- Enable profiling
-AC_MSG_CHECKING(whether to gather gcov profiling data)
-AC_ARG_ENABLE(profiling,
- AC_HELP_STRING([--enable-profiling],
- [gather gcov profiling data]),
- PROFILING=$enableval, PROFILING=no)
-AC_MSG_RESULT($PROFILING)
-
-if test "$PROFILING" = yes; then
- COPTIMISE_FLAG="$COPTIMISE_FLAG -fprofile-arcs -ftest-coverage"
- AC_PATH_TOOL(LCOV, lcov)
- AC_PATH_TOOL(GENHTML, genhtml)
- test -z "$LCOV" -o -z "$GENHTML" && AC_MSG_ERROR([lcov and genhtml are required for profiling])
- AC_PATH_TOOL(GENPNG, genpng)
- if test -n "$GENPNG"; then
- AC_MSG_CHECKING([whether $GENPNG has all required modules])
- if "$GENPNG" --help > /dev/null 2>&1 ; then
- AC_MSG_RESULT(ok)
- GENHTML="$GENHTML --frames"
- else
- AC_MSG_RESULT([not supported])
- AC_MSG_WARN([GD.pm perl module is not installed])
- GENPNG=
- fi
- fi
-fi
-
-################################################################################
-dnl -- Enable testing
-AC_MSG_CHECKING(whether to enable unit testing)
-AC_ARG_ENABLE(testing,
- AC_HELP_STRING([--enable-testing],
- [enable testing targets in the makefile]),
- TESTING=$enableval, TESTING=no)
-AC_MSG_RESULT($TESTING)
-
-################################################################################
-dnl -- Set LVM2 testsuite data
-TESTSUITE_DATA='${datarootdir}/lvm2-testsuite'
-# double eval needed ${datarootdir} -> ${prefix}/share -> real path
-AC_DEFINE_UNQUOTED(TESTSUITE_DATA, ["$(eval echo $(eval echo $TESTSUITE_DATA))"], [Path to testsuite data])
-
-
-################################################################################
-dnl -- Enable valgrind awareness of memory pools
-AC_MSG_CHECKING(whether to enable valgrind awareness of pools)
-AC_ARG_ENABLE(valgrind_pool,
- AC_HELP_STRING([--enable-valgrind-pool],
- [enable valgrind awareness of pools]),
- VALGRIND_POOL=$enableval, VALGRIND_POOL=no)
-AC_MSG_RESULT($VALGRIND_POOL)
-
-pkg_config_init
-PKG_CHECK_MODULES(VALGRIND, valgrind, [HAVE_VALGRIND=yes], [if test x$VALGRIND_POOL = xyes; then AC_MSG_ERROR(bailing out); fi])
-AC_SUBST(VALGRIND_CFLAGS)
-
-if test x$HAVE_VALGRIND = xyes; then
- AC_DEFINE([HAVE_VALGRIND], 1, [valgrind.h found])
-fi
-
-if test x$VALGRIND_POOL = xyes; then
- AC_DEFINE([VALGRIND_POOL], 1, [Enable a valgrind aware build of pool])
-fi
-
-################################################################################
-dnl -- Disable devmapper
-AC_MSG_CHECKING(whether to use device-mapper)
-AC_ARG_ENABLE(devmapper,
- AC_HELP_STRING([--disable-devmapper],
- [disable LVM2 device-mapper interaction]),
- DEVMAPPER=$enableval)
-AC_MSG_RESULT($DEVMAPPER)
-
-if test "$DEVMAPPER" = yes; then
- AC_DEFINE([DEVMAPPER_SUPPORT], 1, [Define to 1 to enable LVM2 device-mapper interaction.])
-fi
-
-################################################################################
-dnl -- Build lvmetad
-AC_MSG_CHECKING(whether to build LVMetaD)
-AC_ARG_ENABLE(lvmetad,
- AC_HELP_STRING([--enable-lvmetad],
- [enable the LVM Metadata Daemon]),
- LVMETAD=$enableval)
-test -n "$LVMETAD" && BUILD_LVMETAD=$LVMETAD
-AC_MSG_RESULT($BUILD_LVMETAD)
-
-################################################################################
-dnl -- Build lvmpolld
-AC_MSG_CHECKING(whether to build lvmpolld)
-AC_ARG_ENABLE(lvmpolld,
- AC_HELP_STRING([--enable-lvmpolld],
- [enable the LVM Polling Daemon]),
- LVMPOLLD=$enableval)
-test -n "$LVMPOLLD" && BUILD_LVMPOLLD=$LVMPOLLD
-AC_MSG_RESULT($BUILD_LVMPOLLD)
-
-################################################################################
-BUILD_LVMLOCKD=no
-
-dnl -- Build lvmlockdsanlock
-AC_MSG_CHECKING(whether to build lvmlockdsanlock)
-AC_ARG_ENABLE(lvmlockd-sanlock,
- AC_HELP_STRING([--enable-lvmlockd-sanlock],
- [enable the LVM lock daemon using sanlock]),
- LOCKDSANLOCK=$enableval)
-AC_MSG_RESULT($LOCKDSANLOCK)
-
-BUILD_LOCKDSANLOCK=$LOCKDSANLOCK
-
-dnl -- Look for sanlock libraries
-if test "$BUILD_LOCKDSANLOCK" = yes; then
- PKG_CHECK_MODULES(LOCKD_SANLOCK, libsanlock_client >= 3.3.0, [HAVE_LOCKD_SANLOCK=yes], $bailout)
- AC_DEFINE([LOCKDSANLOCK_SUPPORT], 1, [Define to 1 to include code that uses lvmlockd sanlock option.])
- BUILD_LVMLOCKD=yes
-fi
-
-################################################################################
-dnl -- Build lvmlockddlm
-AC_MSG_CHECKING(whether to build lvmlockddlm)
-AC_ARG_ENABLE(lvmlockd-dlm,
- AC_HELP_STRING([--enable-lvmlockd-dlm],
- [enable the LVM lock daemon using dlm]),
- LOCKDDLM=$enableval)
-AC_MSG_RESULT($LOCKDDLM)
-
-BUILD_LOCKDDLM=$LOCKDDLM
-
-dnl -- Look for dlm libraries
-if test "$BUILD_LOCKDDLM" = yes; then
- PKG_CHECK_MODULES(LOCKD_DLM, libdlm, [HAVE_LOCKD_DLM=yes], $bailout)
- AC_DEFINE([LOCKDDLM_SUPPORT], 1, [Define to 1 to include code that uses lvmlockd dlm option.])
- BUILD_LVMLOCKD=yes
-fi
-
-################################################################################
-dnl -- Build lvmlockd
-AC_MSG_CHECKING(whether to build lvmlockd)
-AC_MSG_RESULT($BUILD_LVMLOCKD)
-
-if test "$BUILD_LVMLOCKD" = yes; then
- AS_IF([test "$LVMPOLLD" = no], [AC_MSG_ERROR([cannot build lvmlockd with --disable-lvmpolld.])])
- AS_IF([test "$LVMETAD" = no], [AC_MSG_ERROR([cannot build lvmlockd with --disable-lvmetad.])])
- AS_IF([test "$BUILD_LVMPOLLD" = no], [BUILD_LVMPOLLD=yes; AC_MSG_WARN([Enabling lvmpolld - required by lvmlockd.])])
- AS_IF([test "$BUILD_LVMETAD" = no], [BUILD_LVMETAD=yes; AC_MSG_WARN([Enabling lvmetad - required by lvmlockd.])])
- AC_MSG_CHECKING([defaults for use_lvmlockd])
- AC_ARG_ENABLE(use_lvmlockd,
- AC_HELP_STRING([--disable-use-lvmlockd],
- [disable usage of LVM lock daemon]),
- [case ${enableval} in
- yes) DEFAULT_USE_LVMLOCKD=1 ;;
- *) DEFAULT_USE_LVMLOCKD=0 ;;
- esac], DEFAULT_USE_LVMLOCKD=1)
- AC_MSG_RESULT($DEFAULT_USE_LVMLOCKD)
- AC_DEFINE([LVMLOCKD_SUPPORT], 1, [Define to 1 to include code that uses lvmlockd.])
-
- AC_ARG_WITH(lvmlockd-pidfile,
- AC_HELP_STRING([--with-lvmlockd-pidfile=PATH],
- [lvmlockd pidfile [PID_DIR/lvmlockd.pid]]),
- LVMLOCKD_PIDFILE=$withval,
- LVMLOCKD_PIDFILE="$DEFAULT_PID_DIR/lvmlockd.pid")
- AC_DEFINE_UNQUOTED(LVMLOCKD_PIDFILE, ["$LVMLOCKD_PIDFILE"],
- [Path to lvmlockd pidfile.])
-else
- DEFAULT_USE_LVMLOCKD=0
-fi
-AC_DEFINE_UNQUOTED(DEFAULT_USE_LVMLOCKD, [$DEFAULT_USE_LVMLOCKD],
- [Use lvmlockd by default.])
-
-################################################################################
-dnl -- Check lvmetad
-if test "$BUILD_LVMETAD" = yes; then
- AC_MSG_CHECKING([defaults for use_lvmetad])
- AC_ARG_ENABLE(use_lvmetad,
- AC_HELP_STRING([--disable-use-lvmetad],
- [disable usage of LVM Metadata Daemon]),
- [case ${enableval} in
- yes) DEFAULT_USE_LVMETAD=1 ;;
- *) DEFAULT_USE_LVMETAD=0 ;;
- esac], DEFAULT_USE_LVMETAD=1)
- AC_MSG_RESULT($DEFAULT_USE_LVMETAD)
- AC_DEFINE([LVMETAD_SUPPORT], 1, [Define to 1 to include code that uses lvmetad.])
-
- AC_ARG_WITH(lvmetad-pidfile,
- AC_HELP_STRING([--with-lvmetad-pidfile=PATH],
- [lvmetad pidfile [PID_DIR/lvmetad.pid]]),
- LVMETAD_PIDFILE=$withval,
- LVMETAD_PIDFILE="$DEFAULT_PID_DIR/lvmetad.pid")
- AC_DEFINE_UNQUOTED(LVMETAD_PIDFILE, ["$LVMETAD_PIDFILE"],
- [Path to lvmetad pidfile.])
-else
- DEFAULT_USE_LVMETAD=0
-fi
-AC_DEFINE_UNQUOTED(DEFAULT_USE_LVMETAD, [$DEFAULT_USE_LVMETAD],
- [Use lvmetad by default.])
-
-################################################################################
-dnl -- Check lvmpolld
-if test "$BUILD_LVMPOLLD" = yes; then
- AC_MSG_CHECKING([defaults for use_lvmpolld])
- AC_ARG_ENABLE(use_lvmpolld,
- AC_HELP_STRING([--disable-use-lvmpolld],
- [disable usage of LVM Poll Daemon]),
- [case ${enableval} in
- yes) DEFAULT_USE_LVMPOLLD=1 ;;
- *) DEFAULT_USE_LVMPOLLD=0 ;;
- esac], DEFAULT_USE_LVMPOLLD=1)
- AC_MSG_RESULT($DEFAULT_USE_LVMPOLLD)
- AC_DEFINE([LVMPOLLD_SUPPORT], 1, [Define to 1 to include code that uses lvmpolld.])
-
- AC_ARG_WITH(lvmpolld-pidfile,
- AC_HELP_STRING([--with-lvmpolld-pidfile=PATH],
- [lvmpolld pidfile [PID_DIR/lvmpolld.pid]]),
- LVMPOLLD_PIDFILE=$withval,
- LVMPOLLD_PIDFILE="$DEFAULT_PID_DIR/lvmpolld.pid")
- AC_DEFINE_UNQUOTED(LVMPOLLD_PIDFILE, ["$LVMPOLLD_PIDFILE"],
- [Path to lvmpolld pidfile.])
-else
- DEFAULT_USE_LVMPOLLD=0
-fi
-AC_DEFINE_UNQUOTED(DEFAULT_USE_LVMPOLLD, [$DEFAULT_USE_LVMPOLLD],
- [Use lvmpolld by default.])
-
-################################################################################
-dnl -- Check dmfilemapd
-AC_MSG_CHECKING(whether to build dmfilemapd)
-AC_ARG_ENABLE(dmfilemapd, AC_HELP_STRING([--enable-dmfilemapd],
- [enable the dmstats filemap daemon]),
- BUILD_DMFILEMAPD=$enableval, BUILD_DMFILEMAPD=no)
-AC_MSG_RESULT($BUILD_DMFILEMAPD)
-AC_DEFINE([DMFILEMAPD], $BUILD_DMFILEMAPD, [Define to 1 to enable the device-mapper filemap daemon.])
-
-dnl -- dmfilemapd requires FIEMAP
-if test "$BUILD_DMFILEMAPD" = yes; then
- AC_CHECK_HEADER([linux/fiemap.h], , [AC_MSG_ERROR(--enable-dmfilemapd requires fiemap.h)])
-fi
-
-################################################################################
-dnl -- Build notifydbus
-AC_MSG_CHECKING(whether to build notifydbus)
-AC_ARG_ENABLE(notify-dbus,
- AC_HELP_STRING([--enable-notify-dbus],
- [enable LVM notification using dbus]),
- NOTIFYDBUS_SUPPORT=$enableval, NOTIFYDBUS_SUPPORT=no)
-AC_MSG_RESULT($NOTIFYDBUS_SUPPORT)
-
-if test "$NOTIFYDBUS_SUPPORT" = yes; then
- AC_DEFINE([NOTIFYDBUS_SUPPORT], 1, [Define to 1 to include code that uses dbus notification.])
- SYSTEMD_LIBS="-lsystemd"
-fi
-
-################################################################################
-dnl -- Look for dbus libraries
-if test "$NOTIFYDBUS_SUPPORT" = yes; then
- PKG_CHECK_MODULES(NOTIFY_DBUS, systemd >= 221, [HAVE_NOTIFY_DBUS=yes], $bailout)
-fi
-
-################################################################################
-
-dnl -- Enable blkid wiping functionality
-AC_ARG_ENABLE(blkid_wiping,
- AC_HELP_STRING([--disable-blkid_wiping],
- [disable libblkid detection of signatures when wiping and use native code instead]),
- BLKID_WIPING=$enableval, BLKID_WIPING=maybe)
-
-DEFAULT_USE_BLKID_WIPING=0
-if test "$BLKID_WIPING" != no; then
- pkg_config_init
- PKG_CHECK_MODULES(BLKID, blkid >= 2.24,
- [ BLKID_WIPING=yes
- BLKID_PC="blkid"
- DEFAULT_USE_BLKID_WIPING=1
- AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.])
- ], [if test "$BLKID_WIPING" = maybe; then
- BLKID_WIPING=no
- else
- AC_MSG_ERROR([bailing out... blkid library >= 2.24 is required])
- fi])
-fi
-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],
- [Use blkid wiping by default.])
-
-################################################################################
-dnl -- Enable udev-systemd protocol to instantiate a service for background jobs
-dnl -- Requires systemd version 205 at least (including support for systemd-run)
-AC_ARG_ENABLE(udev-systemd-background-jobs,
- AC_HELP_STRING([--disable-udev-systemd-background-jobs],
- [disable udev-systemd protocol to instantiate a service for background job]),
- UDEV_SYSTEMD_BACKGROUND_JOBS=$enableval,
- UDEV_SYSTEMD_BACKGROUND_JOBS=maybe)
-
-if test "$UDEV_SYSTEMD_BACKGROUND_JOBS" != no; then
- pkg_config_init
- PKG_CHECK_MODULES(SYSTEMD, systemd >= 205,
- [UDEV_SYSTEMD_BACKGROUND_JOBS=yes],
- [if test "$UDEV_SYSTEMD_BACKGROUND_JOBS" = maybe; then
- UDEV_SYSTEMD_BACKGROUND_JOBS=no
- else
- AC_MSG_ERROR([bailing out... systemd >= 205 is required])
- fi])
-fi
-
-AC_MSG_CHECKING(whether to use udev-systemd protocol for jobs in background)
-AC_MSG_RESULT($UDEV_SYSTEMD_BACKGROUND_JOBS)
-
-################################################################################
-dnl -- Enable udev synchronisation
-AC_MSG_CHECKING(whether to enable synchronisation with udev processing)
-AC_ARG_ENABLE(udev_sync,
- AC_HELP_STRING([--enable-udev_sync],
- [enable synchronisation with udev processing]),
- UDEV_SYNC=$enableval, UDEV_SYNC=no)
-AC_MSG_RESULT($UDEV_SYNC)
-
-if test "$UDEV_SYNC" = yes; then
- pkg_config_init
- PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"])
- AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.])
-
- AC_CHECK_LIB(udev, udev_device_get_is_initialized, AC_DEFINE([HAVE_LIBUDEV_UDEV_DEVICE_GET_IS_INITIALIZED], 1,
- [Define to 1 if udev_device_get_is_initialized is available.]))
- LIBS=$ac_check_lib_save_LIBS
-fi
-
-dnl -- Enable udev rules
-AC_MSG_CHECKING(whether to enable installation of udev rules required for synchronisation)
-AC_ARG_ENABLE(udev_rules,
- AC_HELP_STRING([--enable-udev_rules],
- [install rule files needed for udev synchronisation]),
- UDEV_RULES=$enableval, UDEV_RULES=$UDEV_SYNC)
-AC_MSG_RESULT($UDEV_RULES)
-
-AC_MSG_CHECKING(whether to enable executable path detection in udev rules)
-AC_ARG_ENABLE(udev_rule_exec_detection,
- AC_HELP_STRING([--enable-udev-rule-exec-detection],
- [enable executable path detection in udev rules]),
- UDEV_RULE_EXEC_DETECTION=$enableval, UDEV_RULE_EXEC_DETECTION=no)
-AC_MSG_RESULT($UDEV_RULE_EXEC_DETECTION)
-
-dnl -- Check support for built-in blkid against target udev version
-if test "$UDEV_RULE" != no ; then
- AC_MSG_CHECKING(whether udev supports built-in blkid)
- pkg_config_init
- if $("$PKG_CONFIG" --atleast-version=176 libudev); then
- UDEV_HAS_BUILTIN_BLKID=yes
- else
- UDEV_HAS_BUILTIN_BLKID=no
- fi
- AC_MSG_RESULT($UDEV_HAS_BUILTIN_BLKID)
-fi
-
-################################################################################
-dnl -- Compatibility mode
-AC_ARG_ENABLE(compat,
- AC_HELP_STRING([--enable-compat],
- [enable support for old device-mapper versions]),
- DM_COMPAT=$enableval, DM_COMPAT=no)
-
-AS_IF([test "$DM_COMPAT" = yes],
- [AC_DEFINE([DM_COMPAT], 1, [Define to enable compat protocol])
- AC_MSG_ERROR([--enable-compat is not currently supported.
-Since device-mapper version 1.02.66, only one version (4) of the device-mapper
-ioctl protocol is supported.])])
-
-################################################################################
-dnl -- Compatible units suffix mode
-AC_ARG_ENABLE(units-compat,
- AC_HELP_STRING([--enable-units-compat],
- [enable output compatibility with old versions that
- that do not use KiB-style unit suffixes]),
- UNITS_COMPAT=$enableval, UNITS_COMPAT=no)
-
-if test "$UNITS_COMPAT" = yes; then
- AC_DEFINE([DEFAULT_SI_UNIT_CONSISTENCY], 0, [Define to 0 to reinstate the pre-2.02.54 handling of unit suffixes.])
-fi
-
-################################################################################
-dnl -- Disable ioctl
-AC_ARG_ENABLE(ioctl,
- AC_HELP_STRING([--disable-ioctl],
- [disable ioctl calls to device-mapper in the kernel]),
- DM_IOCTLS=$enableval)
-AS_IF([test "$DM_IOCTLS" = yes],
- [AC_DEFINE([DM_IOCTLS], 1, [Define to enable ioctls calls to kernel])])
-
-################################################################################
-dnl -- Disable O_DIRECT
-AC_MSG_CHECKING(whether to enable O_DIRECT)
-AC_ARG_ENABLE(o_direct,
- AC_HELP_STRING([--disable-o_direct], [disable O_DIRECT]),
- ODIRECT=$enableval)
-AC_MSG_RESULT($ODIRECT)
-
-if test "$ODIRECT" = yes; then
- AC_DEFINE([O_DIRECT_SUPPORT], 1, [Define to 1 to enable O_DIRECT support.])
-fi
-
-################################################################################
-dnl -- Enable liblvm2app.so
-AC_MSG_CHECKING(whether to build liblvm2app.so application library)
-AC_ARG_ENABLE(applib,
- AC_HELP_STRING([--enable-applib], [build application library]),
- APPLIB=$enableval, APPLIB=no)
-AC_MSG_RESULT($APPLIB)
-AC_SUBST([LVM2APP_LIB])
-test "$APPLIB" = yes \
- && LVM2APP_LIB=-llvm2app \
- || LVM2APP_LIB=
-AS_IF([test "$APPLIB"],
- [AC_MSG_WARN([liblvm2app is deprecated. Use D-Bus API])])
-
-################################################################################
-dnl -- Enable cmdlib
-AC_MSG_CHECKING(whether to compile liblvm2cmd.so)
-AC_ARG_ENABLE(cmdlib,
- AC_HELP_STRING([--enable-cmdlib], [build shared command library]),
- CMDLIB=$enableval, CMDLIB=no)
-AC_MSG_RESULT($CMDLIB)
-AC_SUBST([LVM2CMD_LIB])
-test "$CMDLIB" = yes \
- && LVM2CMD_LIB=-llvm2cmd \
- || LVM2CMD_LIB=
-
-################################################################################
-dnl -- Enable D-Bus service
-AC_MSG_CHECKING(whether to include Python D-Bus support)
-AC_ARG_ENABLE(dbus-service,
- AC_HELP_STRING([--enable-dbus-service], [install D-Bus support]),
- BUILD_LVMDBUSD=$enableval, BUILD_LVMDBUSD=no)
-AC_MSG_RESULT($BUILD_LVMDBUSD)
-AS_IF([test "$NOTIFYDBUS_SUPPORT" = yes && test "BUILD_LVMDBUSD" = yes],
- [AC_MSG_WARN([Building D-Bus support without D-Bus notifications.])])
-
-################################################################################
-dnl -- Enable Python liblvm2app bindings
-AC_MSG_CHECKING(whether to build Python wrapper for liblvm2app.so)
-AC_ARG_ENABLE(python_bindings,
- AC_HELP_STRING([--enable-python_bindings], [build default Python applib bindings]),
- PYTHON_BINDINGS=$enableval, PYTHON_BINDINGS=no)
-AC_MSG_RESULT($PYTHON_BINDINGS)
-
-AC_MSG_CHECKING(whether to build Python2 wrapper for liblvm2app.so)
-AC_ARG_ENABLE(python2_bindings,
- AC_HELP_STRING([--enable-python2_bindings], [build Python2 applib bindings]),
- PYTHON2_BINDINGS=$enableval, PYTHON2_BINDINGS=no)
-AC_MSG_RESULT($PYTHON2_BINDINGS)
-
-
-AC_MSG_CHECKING(whether to build Python3 wrapper for liblvm2app.so)
-AC_ARG_ENABLE(python3_bindings,
- AC_HELP_STRING([--enable-python3_bindings], [build Python3 applib bindings]),
- PYTHON3_BINDINGS=$enableval, PYTHON3_BINDINGS=no)
-AC_MSG_RESULT($PYTHON3_BINDINGS)
-
-if test "$PYTHON_BINDINGS" = yes; then
- AC_MSG_ERROR([--enable-python-bindings is replaced by --enable-python2-bindings and --enable-python3-bindings])
-fi
-
-if test "$PYTHON2_BINDINGS" = yes; then
- AM_PATH_PYTHON([2])
- AC_PATH_TOOL(PYTHON2, python2)
- test -z "$PYTHON2" && AC_MSG_ERROR([python2 is required for --enable-python2_bindings but cannot be found])
- AC_PATH_TOOL(PYTHON2_CONFIG, python2-config)
- test -z "$PYTHON2_CONFIG" && AC_PATH_TOOL(PYTHON2_CONFIG, python-config)
- test -z "$PYTHON2_CONFIG" && AC_MSG_ERROR([python headers are required for --enable-python2_bindings but cannot be found])
- PYTHON2_INCDIRS=`"$PYTHON2_CONFIG" --includes`
- PYTHON2_LIBDIRS=`"$PYTHON2_CONFIG" --libs`
- PYTHON2DIR=$pythondir
- PYTHON_BINDINGS=yes
-fi
-
-if test "$PYTHON3_BINDINGS" = yes -o "$BUILD_LVMDBUSD" = yes; then
- unset PYTHON PYTHON_CONFIG
- unset am_cv_pathless_PYTHON ac_cv_path_PYTHON am_cv_python_platform
- unset am_cv_python_pythondir am_cv_python_version am_cv_python_pyexecdir
- unset ac_cv_path_PYTHON_CONFIG ac_cv_path_ac_pt_PYTHON_CONFIG
- AM_PATH_PYTHON([3])
- PYTHON3=$PYTHON
- test -z "$PYTHON3" && AC_MSG_ERROR([python3 is required for --enable-python3_bindings or --enable-dbus-service but cannot be found])
- AC_PATH_TOOL(PYTHON3_CONFIG, python3-config)
- test -z "$PYTHON3_CONFIG" && AC_MSG_ERROR([python3 headers are required for --enable-python3_bindings or --enable-dbus-service but cannot be found])
- PYTHON3_INCDIRS=`"$PYTHON3_CONFIG" --includes`
- PYTHON3_LIBDIRS=`"$PYTHON3_CONFIG" --libs`
- PYTHON3DIR=$pythondir
- test "$PYTHON3_BINDINGS" = yes && PYTHON_BINDINGS=yes
-fi
-
-if test "$BUILD_LVMDBUSD" = yes; then
- # To get this macro, install autoconf-archive package then run autoreconf
- AC_PYTHON_MODULE([pyudev], [Required], python3)
- AC_PYTHON_MODULE([dbus], [Required], python3)
-fi
-
-if test "$PYTHON_BINDINGS" = yes -o "$PYTHON2_BINDINGS" = yes -o "$PYTHON3_BINDINGS" = yes; then
- AC_MSG_WARN([Python bindings are deprecated. Use D-Bus API])
- test "$APPLIB" != yes && AC_MSG_ERROR([Python_bindings require --enable-applib])
-fi
-
-################################################################################
-dnl -- Enable pkg-config
-AC_ARG_ENABLE(pkgconfig,
- AC_HELP_STRING([--enable-pkgconfig], [install pkgconfig support]),
- PKGCONFIG=$enableval, PKGCONFIG=no)
-
-################################################################################
-dnl -- Enable installation of writable files by user
-AC_ARG_ENABLE(write_install,
- AC_HELP_STRING([--enable-write_install],
- [install user writable files]),
- WRITE_INSTALL=$enableval, WRITE_INSTALL=no)
-
-################################################################################
-dnl -- Enable fsadm
-AC_MSG_CHECKING(whether to install fsadm)
-AC_ARG_ENABLE(fsadm, AC_HELP_STRING([--disable-fsadm], [disable fsadm]),
- FSADM=$enableval)
-AC_MSG_RESULT($FSADM)
-
-################################################################################
-dnl -- Enable blkdeactivate
-AC_MSG_CHECKING(whether to install blkdeactivate)
-AC_ARG_ENABLE(blkdeactivate, AC_HELP_STRING([--disable-blkdeactivate], [disable blkdeactivate]),
- BLKDEACTIVATE=$enableval)
-AC_MSG_RESULT($BLKDEACTIVATE)
-
-################################################################################
-dnl -- enable dmeventd handling
-AC_MSG_CHECKING(whether to use dmeventd)
-AC_ARG_ENABLE(dmeventd, AC_HELP_STRING([--enable-dmeventd],
- [enable the device-mapper event daemon]),
- BUILD_DMEVENTD=$enableval, BUILD_DMEVENTD=no)
-AC_MSG_RESULT($BUILD_DMEVENTD)
-
-dnl -- dmeventd currently requires internal mirror support
-if test "$BUILD_DMEVENTD" = yes; then
- if test "$MIRRORS" != internal; then
- AC_MSG_ERROR([--enable-dmeventd currently requires --with-mirrors=internal])
- fi
- if test "$CMDLIB" = no; then
- AC_MSG_ERROR([--enable-dmeventd requires --enable-cmdlib to be used as well])
- fi
-
- AC_DEFINE([DMEVENTD], 1, [Define to 1 to enable the device-mapper event daemon.])
-fi
-
-################################################################################
-dnl -- getline included in recent libc
-
-AC_CHECK_LIB(c, getline, AC_DEFINE([HAVE_GETLINE], 1,
- [Define to 1 if getline is available.]))
-
-################################################################################
-dnl -- canonicalize_file_name included in recent libc
-
-AC_CHECK_LIB(c, canonicalize_file_name,
- AC_DEFINE([HAVE_CANONICALIZE_FILE_NAME], 1,
- [Define to 1 if canonicalize_file_name is available.]))
-
-################################################################################
-dnl -- Check for dlopen
-AC_CHECK_LIB(dl, dlopen,
- [AC_DEFINE([HAVE_LIBDL], 1, [Define to 1 if dynamic libraries are available.])
- DL_LIBS="-ldl"
- HAVE_LIBDL=yes],
- [DL_LIBS=
- HAVE_LIBDL=no ])
-
-################################################################################
-dnl -- Check for shared/static conflicts
-if [[ \( "$LVM1" = shared -o "$POOL" = shared -o "$CLUSTER" = shared \
- -o "$SNAPSHOTS" = shared -o "$MIRRORS" = shared \
- -o "$RAID" = shared -o "$CACHE" = shared \
- \) -a "$STATIC_LINK" = yes ]]; then
- AC_MSG_ERROR([Features cannot be 'shared' when building statically])
-fi
-
-################################################################################
-AC_CHECK_LIB(m, log10,
- [M_LIBS="-lm"], hard_bailout)
-
-################################################################################
-AC_CHECK_LIB([pthread], [pthread_mutex_lock],
- [PTHREAD_LIBS="-lpthread"], hard_bailout)
-
-################################################################################
-dnl -- Disable selinux
-AC_MSG_CHECKING(whether to enable selinux support)
-AC_ARG_ENABLE(selinux,
- AC_HELP_STRING([--disable-selinux], [disable selinux support]),
- SELINUX=$enableval)
-AC_MSG_RESULT($SELINUX)
-
-################################################################################
-dnl -- Check for selinux
-if test "$SELINUX" = yes; then
- AC_CHECK_LIB([sepol], [sepol_check_context], [
- AC_DEFINE([HAVE_SEPOL], 1, [Define to 1 if sepol_check_context is available.])
- SELINUX_LIBS="-lsepol"])
-
- AC_CHECK_LIB([selinux], [is_selinux_enabled], [
- AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout)
- AC_CHECK_HEADERS([selinux/label.h])
- AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
- SELINUX_LIBS="-lselinux $SELINUX_LIBS"
- SELINUX_PC="libselinux"
- HAVE_SELINUX=yes ], [
- AC_MSG_WARN(Disabling selinux)
- SELINUX_LIBS=
- SELINUX_PC=
- HAVE_SELINUX=no ])
-fi
-
-################################################################################
-dnl -- Check for realtime clock support
-RT_LIBS=
-HAVE_REALTIME=no
-if test "$REALTIME" = yes; then
- AC_CHECK_FUNCS([clock_gettime], HAVE_REALTIME=yes)
-
- AS_IF([test "$HAVE_REALTIME" != yes], [ # try again with -lrt
- AC_CHECK_LIB([rt], [clock_gettime], RT_LIBS="-lrt"; HAVE_REALTIME=yes)])
-
- if test "$HAVE_REALTIME" = yes; then
- AC_DEFINE([HAVE_REALTIME], 1, [Define to 1 to include support for realtime clock.])
- else
- AC_MSG_WARN(Disabling realtime clock)
- fi
-fi
-
-dnl Check if the system has struct stat st_ctim.
-AC_CACHE_CHECK([for struct stat has st_ctim.],
- [ac_cv_stat_st_ctim],
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-[#include <sys/stat.h>
-long bar(void) { struct stat s; return (long)(s.st_ctim.tv_sec + s.st_ctim.tv_nsec);}]
- )], [ac_cv_stat_st_ctim=yes], [ac_cv_stat_st_ctim=no])])
-
-AC_IF_YES(ac_cv_stat_st_ctim,
- AC_DEFINE(HAVE_STAT_ST_CTIM, 1,
- [Define if struct stat has a field st_ctim with timespec for ctime]))
-
-################################################################################
-dnl -- Check for getopt
-AC_CHECK_HEADERS(getopt.h, AC_DEFINE([HAVE_GETOPTLONG], 1, [Define to 1 if getopt_long is available.]))
-
-################################################################################
-dnl -- Check for readline (Shamelessly copied from parted 1.4.17)
-if test "$READLINE" != no; then
- lvm_saved_libs=$LIBS
- AC_SEARCH_LIBS([tgetent], [tinfo ncurses curses termcap termlib],
- READLINE_LIBS=$ac_cv_search_tgetent, [
- if test "$READLINE" = yes; then
- AC_MSG_ERROR(
-[termcap could not be found which is required for the
---enable-readline option (which is enabled by default). Either disable readline
-support with --disable-readline or download and install termcap from:
- ftp.gnu.org/gnu/termcap
-Note: if you are using precompiled packages you will also need the development
- package as well (which may be called termcap-devel or something similar).
-Note: (n)curses also seems to work as a substitute for termcap. This was
- not found either - but you could try installing that as well.])
- fi])
- dnl -- Old systems may need extra termcap dependency explicitly in LIBS
- AC_CHECK_LIB([readline], [readline], [
- AC_DEFINE([READLINE_SUPPORT], 1,
- [Define to 1 to include the LVM readline shell.])
- dnl -- Try only with -lreadline and check for different symbol
- READLINE=yes
- LIBS=$lvm_saved_libs
- AC_CHECK_LIB([readline], [rl_line_buffer],
- [ READLINE_LIBS="-lreadline" ], [
- AC_MSG_RESULT([linking -lreadline with $READLINE_LIBS needed])
- READLINE_LIBS="-lreadline $READLINE_LIBS"
- ]) ], [
- READLINE_LIBS=
- if test "$READLINE" = yes; then
- AC_MSG_ERROR(
-[GNU Readline could not be found which is required for the
---enable-readline option (which is enabled by default). Either disable readline
-support with --disable-readline or download and install readline from:
- ftp.gnu.org/gnu/readline
-Note: if you are using precompiled packages you will also need the development
-package as well (which may be called readline-devel or something similar).])
- fi ])
- LIBS="$READLINE_LIBS $lvm_saved_libs"
- AC_CHECK_FUNCS([rl_completion_matches])
- LIBS=$lvm_saved_libs
-fi
-
-################################################################################
-dnl -- Internationalisation stuff
-AC_MSG_CHECKING(whether to enable internationalisation)
-AC_ARG_ENABLE(nls,
- AC_HELP_STRING([--enable-nls], [enable Native Language Support]),
- INTL=$enableval, INTL=no)
-AC_MSG_RESULT($INTL)
-
-if test "$INTL" = yes; then
-# FIXME - Move this - can be device-mapper too
- INTL_PACKAGE="lvm2"
- AC_PATH_TOOL(MSGFMT, msgfmt)
-
- AS_IF([test -z "$MSGFMT"], [AC_MSG_ERROR([msgfmt not found in path $PATH])])
-
- AC_ARG_WITH(localedir,
- AC_HELP_STRING([--with-localedir=DIR],
- [locale-dependent data [DATAROOTDIR/locale]]),
- localedir=$withval, localedir=${localedir-'${datarootdir}/locale'})
- AC_DEFINE_UNQUOTED([INTL_PACKAGE], ["$INTL_PACKAGE"], [Internalization package])
- # double eval needed ${datarootdir} -> ${prefix}/share -> real path
- AC_DEFINE_UNQUOTED([LOCALEDIR], ["$(eval echo $(eval echo $localedir))"], [Locale-dependent data])
-fi
-
-################################################################################
-dnl -- FIXME: need to switch to regular option here --sysconfdir
-AC_ARG_WITH(confdir,
- AC_HELP_STRING([--with-confdir=DIR],
- [configuration files in DIR [/etc]]),
- CONFDIR=$withval, CONFDIR='/etc')
-AC_DEFINE_UNQUOTED(DEFAULT_ETC_DIR, ["$CONFDIR"],
- [Default system configuration directory.])
-
-AC_ARG_WITH(staticdir,
- AC_HELP_STRING([--with-staticdir=DIR],
- [static binaries in DIR [EPREFIX/sbin]]),
- STATICDIR=$withval, STATICDIR='${exec_prefix}/sbin')
-
-AC_ARG_WITH(usrlibdir,
- AC_HELP_STRING([--with-usrlibdir=DIR],
- [usrlib in DIR [PREFIX/lib]]),
- usrlibdir=$withval, usrlibdir='${prefix}/lib')
-
-AC_ARG_WITH(usrsbindir,
- AC_HELP_STRING([--with-usrsbindir=DIR],
- [usrsbin executables in DIR [PREFIX/sbin]]),
- usrsbindir=$withval, usrsbindir='${prefix}/sbin')
-
-################################################################################
-AC_ARG_WITH(udev_prefix,
- AC_HELP_STRING([--with-udev-prefix=UPREFIX],
- [install udev rule files in UPREFIX [EPREFIX]]),
- udev_prefix=$withval, udev_prefix='${exec_prefix}')
-
-AC_ARG_WITH(udevdir,
- AC_HELP_STRING([--with-udevdir=DIR],
- [udev rules in DIR [UPREFIX/lib/udev/rules.d]]),
- udevdir=$withval, udevdir='${udev_prefix}/lib/udev/rules.d')
-
-################################################################################
-dnl -- Get the systemd system unit dir value from pkg_config automatically if value not given explicitly.
-dnl -- This follows the recommendation for systemd integration best practices mentioned in daemon(7) manpage.
-AC_ARG_WITH(systemdsystemunitdir,
- AC_HELP_STRING([--with-systemdsystemunitdir=DIR],
- [systemd service files in DIR]),
- systemdsystemunitdir=$withval,
- pkg_config_init
- pkg_systemdsystemunitdir=$("$PKG_CONFIG" --variable=systemdsystemunitdir systemd))
-
-test -n "$pkg_systemdsystemunitdir" && systemdsystemunitdir=$pkg_systemdsystemunitdir
-test -z "$systemdsystemunitdir" && systemdsystemunitdir='${exec_prefix}/lib/systemd/system';
-
-systemdutildir=$("$PKG_CONFIG" --variable=systemdutildir systemd)
-test -z "$systemdutildir" && systemdutildir='${exec_prefix}/lib/systemd';
-
-################################################################################
-AC_ARG_WITH(tmpfilesdir,
- AC_HELP_STRING([--with-tmpfilesdir=DIR],
- [install configuration files for management of volatile files and directories in DIR [PREFIX/lib/tmpfiles.d]]),
- tmpfilesdir=$withval, tmpfilesdir='${prefix}/lib/tmpfiles.d')
-################################################################################
-dnl -- Ensure additional headers required
-if test "$READLINE" = yes; then
- AC_CHECK_HEADERS(readline/readline.h readline/history.h,,hard_bailout)
-fi
-AC_MSG_CHECKING(whether to enable readline)
-AC_MSG_RESULT($READLINE)
-
-if test "$BUILD_CMIRRORD" = yes; then
- AC_CHECK_FUNCS(atexit,,hard_bailout)
-fi
-
-if test "$BUILD_LVMLOCKD" = yes; then
- AS_IF([test "$HAVE_REALTIME" != yes], [AC_MSG_ERROR([Realtime clock support is mandatory for lvmlockd.])])
- AC_CHECK_FUNCS(strtoull,,hard_bailout)
-fi
-
-if test "$BUILD_LVMPOLLD" = yes; then
- AC_CHECK_FUNCS(strpbrk,,hard_bailout)
- AC_FUNC_STRERROR_R
-fi
-
-if test "$CLVMD" != none; then
- AC_CHECK_HEADERS(mntent.h netdb.h netinet/in.h pthread.h search.h sys/mount.h sys/socket.h sys/uio.h sys/un.h utmpx.h,,AC_MSG_ERROR(bailing out))
- AC_CHECK_FUNCS(dup2 getmntent memmove select socket,,hard_bailout)
- AC_FUNC_GETMNTENT
- AC_FUNC_SELECT_ARGTYPES
-fi
-
-if test "$CLUSTER" != none; then
- AC_CHECK_HEADERS(sys/socket.h sys/un.h,,hard_bailout)
- AC_CHECK_FUNCS(socket,,hard_bailout)
-fi
-
-if test "$BUILD_DMEVENTD" = yes; then
- AC_CHECK_HEADERS(arpa/inet.h,,hard_bailout)
-fi
-
-if test "$HAVE_LIBDL" = yes; then
- AC_CHECK_HEADERS(dlfcn.h,,hard_bailout)
-fi
-
-if test "$INTL" = yes; then
- AC_CHECK_HEADERS(libintl.h,,hard_bailout)
-fi
-
-if test "$UDEV_SYNC" = yes; then
- AC_CHECK_HEADERS(sys/ipc.h sys/sem.h,,hard_bailout)
-fi
-
-if test "$BUILD_DMFILEMAPD" = yes; then
- AC_CHECK_HEADERS([sys/inotify.h],,hard_bailout)
-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
-
-SYSCONFDIR="$(eval echo $(eval echo $sysconfdir))"
-
-SBINDIR="$(eval echo $(eval echo $sbindir))"
-LVM_PATH="$SBINDIR/lvm"
-AC_DEFINE_UNQUOTED(LVM_PATH, ["$LVM_PATH"], [Path to lvm binary.])
-
-USRSBINDIR="$(eval echo $(eval echo $usrsbindir))"
-CLVMD_PATH="$USRSBINDIR/clvmd"
-AC_DEFINE_UNQUOTED(CLVMD_PATH, ["$CLVMD_PATH"], [Path to clvmd binary.])
-
-FSADM_PATH="$SBINDIR/fsadm"
-AC_DEFINE_UNQUOTED(FSADM_PATH, ["$FSADM_PATH"], [Path to fsadm binary.])
-
-################################################################################
-dnl -- dmeventd pidfile and executable path
-if test "$BUILD_DMEVENTD" = yes; then
- AC_ARG_WITH(dmeventd-pidfile,
- AC_HELP_STRING([--with-dmeventd-pidfile=PATH],
- [dmeventd pidfile [PID_DIR/dmeventd.pid]]),
- DMEVENTD_PIDFILE=$withval,
- DMEVENTD_PIDFILE="$DEFAULT_PID_DIR/dmeventd.pid")
- AC_DEFINE_UNQUOTED(DMEVENTD_PIDFILE, ["$DMEVENTD_PIDFILE"],
- [Path to dmeventd pidfile.])
-fi
-
-if test "$BUILD_DMEVENTD" = yes; then
- AC_ARG_WITH(dmeventd-path,
- AC_HELP_STRING([--with-dmeventd-path=PATH],
- [dmeventd path [EPREFIX/sbin/dmeventd]]),
- DMEVENTD_PATH=$withval,
- DMEVENTD_PATH="$SBINDIR/dmeventd")
- AC_DEFINE_UNQUOTED(DMEVENTD_PATH, ["$DMEVENTD_PATH"],
- [Path to dmeventd binary.])
-fi
-
-################################################################################
-dnl -- various defaults
-dnl -- FIXME: need to switch to regular option here --sysconfdir
-AC_ARG_WITH(default-system-dir,
- AC_HELP_STRING([--with-default-system-dir=DIR],
- [default LVM system directory [/etc/lvm]]),
- DEFAULT_SYS_DIR=$withval, DEFAULT_SYS_DIR="/etc/lvm")
-AC_DEFINE_UNQUOTED(DEFAULT_SYS_DIR, ["$DEFAULT_SYS_DIR"],
- [Path to LVM system directory.])
-
-AC_ARG_WITH(default-profile-subdir,
- AC_HELP_STRING([--with-default-profile-subdir=SUBDIR],
- [default configuration profile subdir [profile]]),
- DEFAULT_PROFILE_SUBDIR=$withval, DEFAULT_PROFILE_SUBDIR=profile)
-AC_DEFINE_UNQUOTED(DEFAULT_PROFILE_SUBDIR, ["$DEFAULT_PROFILE_SUBDIR"],
- [Name of default configuration profile subdirectory.])
-
-AC_ARG_WITH(default-archive-subdir,
- AC_HELP_STRING([--with-default-archive-subdir=SUBDIR],
- [default metadata archive subdir [archive]]),
- DEFAULT_ARCHIVE_SUBDIR=$withval, DEFAULT_ARCHIVE_SUBDIR=archive)
-AC_DEFINE_UNQUOTED(DEFAULT_ARCHIVE_SUBDIR, ["$DEFAULT_ARCHIVE_SUBDIR"],
- [Name of default metadata archive subdirectory.])
-
-AC_ARG_WITH(default-backup-subdir,
- AC_HELP_STRING([--with-default-backup-subdir=SUBDIR],
- [default metadata backup subdir [backup]]),
- DEFAULT_BACKUP_SUBDIR=$withval, DEFAULT_BACKUP_SUBDIR=backup)
-AC_DEFINE_UNQUOTED(DEFAULT_BACKUP_SUBDIR, ["$DEFAULT_BACKUP_SUBDIR"],
- [Name of default metadata backup subdirectory.])
-
-AC_ARG_WITH(default-cache-subdir,
- AC_HELP_STRING([--with-default-cache-subdir=SUBDIR],
- [default metadata cache subdir [cache]]),
- DEFAULT_CACHE_SUBDIR=$withval, DEFAULT_CACHE_SUBDIR=cache)
-AC_DEFINE_UNQUOTED(DEFAULT_CACHE_SUBDIR, ["$DEFAULT_CACHE_SUBDIR"],
- [Name of default metadata cache subdirectory.])
-
-# Select default system locking dir, prefer /run/lock over /var/lock
-DEFAULT_SYS_LOCK_DIR="$RUN_DIR/lock"
-test -d "$DEFAULT_SYS_LOCK_DIR" || DEFAULT_SYS_LOCK_DIR="/var/lock"
-
-# Support configurable locking subdir for lvm
-AC_ARG_WITH(default-locking-dir,
- AC_HELP_STRING([--with-default-locking-dir=DIR],
- [default locking directory [autodetect_lock_dir/lvm]]),
- DEFAULT_LOCK_DIR=$withval,
- [AC_MSG_CHECKING(for default lock directory)
- DEFAULT_LOCK_DIR="$DEFAULT_SYS_LOCK_DIR/lvm"
- AC_MSG_RESULT($DEFAULT_LOCK_DIR)])
-AC_DEFINE_UNQUOTED(DEFAULT_LOCK_DIR, ["$DEFAULT_LOCK_DIR"],
- [Name of default locking directory.])
-
-################################################################################
-dnl -- Setup default data alignment
-AC_ARG_WITH(default-data-alignment,
- AC_HELP_STRING([--with-default-data-alignment=NUM],
- [set the default data alignment in MiB [1]]),
- DEFAULT_DATA_ALIGNMENT=$withval, DEFAULT_DATA_ALIGNMENT=1)
-AC_DEFINE_UNQUOTED(DEFAULT_DATA_ALIGNMENT, [$DEFAULT_DATA_ALIGNMENT],
- [Default data alignment.])
-
-################################################################################
-dnl -- which kernel interface to use (ioctl only)
-AC_MSG_CHECKING(for kernel interface choice)
-AC_ARG_WITH(interface,
- AC_HELP_STRING([--with-interface=IFACE],
- [choose kernel interface (ioctl) [ioctl]]),
- interface=$withval, interface=ioctl)
-test "$interface" != ioctl && AC_MSG_ERROR([--with-interface=ioctl required. fs no longer supported.])
-AC_MSG_RESULT($interface)
-
-################################################################################
-read DM_LIB_VERSION < "$srcdir"/VERSION_DM 2>/dev/null || DM_LIB_VERSION=Unknown
-AC_DEFINE_UNQUOTED(DM_LIB_VERSION, "$DM_LIB_VERSION", [Library version])
-
-DM_LIB_PATCHLEVEL=`cat "$srcdir"/VERSION_DM | $AWK -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}'`
-
-read VER < "$srcdir"/VERSION 2>/dev/null || VER=Unknown
-
-LVM_VERSION=\"$VER\"
-LVM_RELEASE_DATE="\"`echo $VER | $SED 's/.* (//;s/).*//'`\""
-VER=`echo "$VER" | $AWK '{print $1}'`
-LVM_RELEASE="\"`echo "$VER" | $AWK -F '-' '{print $2}'`\""
-VER=`echo "$VER" | $AWK -F '-' '{print $1}'`
-LVM_MAJOR=`echo "$VER" | $AWK -F '.' '{print $1}'`
-LVM_MINOR=`echo "$VER" | $AWK -F '.' '{print $2}'`
-LVM_PATCHLEVEL=`echo "$VER" | $AWK -F '[[(.]]' '{print $3}'`
-LVM_LIBAPI=`echo "$VER" | $AWK -F '[[()]]' '{print $2}'`
-
-AC_DEFINE_UNQUOTED(LVM_CONFIGURE_LINE, "$CONFIGURE_LINE", [configure command line used])
-
-################################################################################
-AC_SUBST(APPLIB)
-AC_SUBST(AWK)
-AC_SUBST(BLKID_PC)
-AC_SUBST(BUILD_CMIRRORD)
-AC_SUBST(BUILD_DMEVENTD)
-AC_SUBST(BUILD_LVMDBUSD)
-AC_SUBST(BUILD_LVMETAD)
-AC_SUBST(BUILD_LVMPOLLD)
-AC_SUBST(BUILD_LVMLOCKD)
-AC_SUBST(BUILD_LOCKDSANLOCK)
-AC_SUBST(BUILD_LOCKDDLM)
-AC_SUBST(BUILD_DMFILEMAPD)
-AC_SUBST(CACHE)
-AC_SUBST(CFLAGS)
-AC_SUBST(CFLOW_CMD)
-AC_SUBST(CHMOD)
-AC_SUBST(CLDFLAGS)
-AC_SUBST(CLDNOWHOLEARCHIVE)
-AC_SUBST(CLDWHOLEARCHIVE)
-AC_SUBST(CLUSTER)
-AC_SUBST(CLVMD)
-AC_SUBST(CLVMD_CMANAGERS)
-AC_SUBST(CLVMD_PATH)
-AC_SUBST(CMAN_CFLAGS)
-AC_SUBST(CMAN_LIBS)
-AC_SUBST(CMAP_CFLAGS)
-AC_SUBST(CMAP_LIBS)
-AC_SUBST(CMDLIB)
-AC_SUBST(CONFDB_CFLAGS)
-AC_SUBST(CONFDB_LIBS)
-AC_SUBST(CONFDIR)
-AC_SUBST(COPTIMISE_FLAG)
-AC_SUBST(CPG_CFLAGS)
-AC_SUBST(CPG_LIBS)
-AC_SUBST(CSCOPE_CMD)
-AC_SUBST(DEBUG)
-AC_SUBST(DEFAULT_ARCHIVE_SUBDIR)
-AC_SUBST(DEFAULT_BACKUP_SUBDIR)
-AC_SUBST(DEFAULT_CACHE_SUBDIR)
-AC_SUBST(DEFAULT_DATA_ALIGNMENT)
-AC_SUBST(DEFAULT_DM_RUN_DIR)
-AC_SUBST(DEFAULT_LOCK_DIR)
-AC_SUBST(DEFAULT_FALLBACK_TO_LVM1)
-AC_SUBST(DEFAULT_MIRROR_SEGTYPE)
-AC_SUBST(DEFAULT_PID_DIR)
-AC_SUBST(DEFAULT_PROFILE_SUBDIR)
-AC_SUBST(DEFAULT_RAID10_SEGTYPE)
-AC_SUBST(DEFAULT_RUN_DIR)
-AC_SUBST(DEFAULT_SPARSE_SEGTYPE)
-AC_SUBST(DEFAULT_SYS_DIR)
-AC_SUBST(DEFAULT_SYS_LOCK_DIR)
-AC_SUBST(DEFAULT_USE_BLKID_WIPING)
-AC_SUBST(DEFAULT_USE_LVMETAD)
-AC_SUBST(DEFAULT_USE_LVMPOLLD)
-AC_SUBST(DEFAULT_USE_LVMLOCKD)
-AC_SUBST(DEVMAPPER)
-AC_SUBST(DLM_CFLAGS)
-AC_SUBST(DLM_LIBS)
-AC_SUBST(DL_LIBS)
-AC_SUBST(DMEVENTD_PATH)
-AC_SUBST(DM_LIB_PATCHLEVEL)
-AC_SUBST(ELDFLAGS)
-AC_SUBST(FSADM)
-AC_SUBST(FSADM_PATH)
-AC_SUBST(BLKDEACTIVATE)
-AC_SUBST(HAVE_LIBDL)
-AC_SUBST(HAVE_REALTIME)
-AC_SUBST(HAVE_VALGRIND)
-AC_SUBST(INTL)
-AC_SUBST(JOBS)
-AC_SUBST(LDDEPS)
-AC_SUBST(LIBS)
-AC_SUBST(LIB_SUFFIX)
-AC_SUBST(LVM1)
-AC_SUBST(LVM1_FALLBACK)
-AC_SUBST(LVM_VERSION)
-AC_SUBST(LVM_LIBAPI)
-AC_SUBST(LVM_MAJOR)
-AC_SUBST(LVM_MINOR)
-AC_SUBST(LVM_PATCHLEVEL)
-AC_SUBST(LVM_PATH)
-AC_SUBST(LVM_RELEASE)
-AC_SUBST(LVM_RELEASE_DATE)
-AC_SUBST(localedir)
-AC_SUBST(MANGLING)
-AC_SUBST(MIRRORS)
-AC_SUBST(MSGFMT)
-AC_SUBST(OCF)
-AC_SUBST(OCFDIR)
-AC_SUBST(ODIRECT)
-AC_SUBST(PKGCONFIG)
-AC_SUBST(POOL)
-AC_SUBST(M_LIBS)
-AC_SUBST(PTHREAD_LIBS)
-AC_SUBST(PYTHON2)
-AC_SUBST(PYTHON3)
-AC_SUBST(PYTHON_BINDINGS)
-AC_SUBST(PYTHON2_BINDINGS)
-AC_SUBST(PYTHON3_BINDINGS)
-AC_SUBST(PYTHON2_INCDIRS)
-AC_SUBST(PYTHON3_INCDIRS)
-AC_SUBST(PYTHON2_LIBDIRS)
-AC_SUBST(PYTHON3_LIBDIRS)
-AC_SUBST(PYTHON2DIR)
-AC_SUBST(PYTHON3DIR)
-AC_SUBST(QUORUM_CFLAGS)
-AC_SUBST(QUORUM_LIBS)
-AC_SUBST(RAID)
-AC_SUBST(RT_LIBS)
-AC_SUBST(READLINE_LIBS)
-AC_SUBST(REPLICATORS)
-AC_SUBST(SACKPT_CFLAGS)
-AC_SUBST(SACKPT_LIBS)
-AC_SUBST(SALCK_CFLAGS)
-AC_SUBST(SALCK_LIBS)
-AC_SUBST(SBINDIR)
-AC_SUBST(SELINUX_LIBS)
-AC_SUBST(SELINUX_PC)
-AC_SUBST(SYSCONFDIR)
-AC_SUBST(SYSTEMD_LIBS)
-AC_SUBST(SNAPSHOTS)
-AC_SUBST(STATICDIR)
-AC_SUBST(STATIC_LINK)
-AC_SUBST(TESTING)
-AC_SUBST(TESTSUITE_DATA)
-AC_SUBST(THIN)
-AC_SUBST(THIN_CHECK_CMD)
-AC_SUBST(THIN_DUMP_CMD)
-AC_SUBST(THIN_REPAIR_CMD)
-AC_SUBST(THIN_RESTORE_CMD)
-AC_SUBST(CACHE_CHECK_CMD)
-AC_SUBST(CACHE_DUMP_CMD)
-AC_SUBST(CACHE_REPAIR_CMD)
-AC_SUBST(CACHE_RESTORE_CMD)
-AC_SUBST(UDEV_PC)
-AC_SUBST(UDEV_RULES)
-AC_SUBST(UDEV_SYNC)
-AC_SUBST(UDEV_SYSTEMD_BACKGROUND_JOBS)
-AC_SUBST(UDEV_RULE_EXEC_DETECTION)
-AC_SUBST(UDEV_HAS_BUILTIN_BLKID)
-AC_SUBST(USE_TRACKING)
-AC_SUBST(USRSBINDIR)
-AC_SUBST(VALGRIND_POOL)
-AC_SUBST(WRITE_INSTALL)
-AC_SUBST(DMEVENTD_PIDFILE)
-AC_SUBST(LVMETAD_PIDFILE)
-AC_SUBST(LVMPOLLD_PIDFILE)
-AC_SUBST(LVMLOCKD_PIDFILE)
-AC_SUBST(CLVMD_PIDFILE)
-AC_SUBST(CMIRRORD_PIDFILE)
-AC_SUBST(interface)
-AC_SUBST(kerneldir)
-AC_SUBST(missingkernel)
-AC_SUBST(kernelvsn)
-AC_SUBST(tmpdir)
-AC_SUBST(udev_prefix)
-AC_SUBST(udevdir)
-AC_SUBST(systemdsystemunitdir)
-AC_SUBST(systemdutildir)
-AC_SUBST(tmpfilesdir)
-AC_SUBST(usrlibdir)
-AC_SUBST(usrsbindir)
-
-################################################################################
-dnl -- First and last lines should not contain files to generate in order to
-dnl -- keep utility scripts running properly
-AC_CONFIG_FILES([
-Makefile
-make.tmpl
-daemons/Makefile
-daemons/clvmd/Makefile
-daemons/cmirrord/Makefile
-daemons/dmeventd/Makefile
-daemons/dmeventd/libdevmapper-event.pc
-daemons/dmeventd/plugins/Makefile
-daemons/dmeventd/plugins/lvm2/Makefile
-daemons/dmeventd/plugins/raid/Makefile
-daemons/dmeventd/plugins/mirror/Makefile
-daemons/dmeventd/plugins/snapshot/Makefile
-daemons/dmeventd/plugins/thin/Makefile
-daemons/dmfilemapd/Makefile
-daemons/lvmdbusd/Makefile
-daemons/lvmdbusd/lvmdbusd
-daemons/lvmdbusd/lvmdb.py
-daemons/lvmdbusd/lvm_shell_proxy.py
-daemons/lvmdbusd/path.py
-daemons/lvmetad/Makefile
-daemons/lvmpolld/Makefile
-daemons/lvmlockd/Makefile
-conf/Makefile
-conf/example.conf
-conf/lvmlocal.conf
-conf/command_profile_template.profile
-conf/metadata_profile_template.profile
-include/Makefile
-lib/Makefile
-lib/format1/Makefile
-lib/format_pool/Makefile
-lib/locking/Makefile
-lib/mirror/Makefile
-include/lvm-version.h
-lib/raid/Makefile
-lib/snapshot/Makefile
-lib/thin/Makefile
-lib/cache_segtype/Makefile
-libdaemon/Makefile
-libdaemon/client/Makefile
-libdaemon/server/Makefile
-libdm/Makefile
-libdm/libdevmapper.pc
-liblvm/Makefile
-liblvm/liblvm2app.pc
-man/Makefile
-po/Makefile
-python/Makefile
-python/setup.py
-scripts/blkdeactivate.sh
-scripts/blk_availability_init_red_hat
-scripts/blk_availability_systemd_red_hat.service
-scripts/clvmd_init_red_hat
-scripts/cmirrord_init_red_hat
-scripts/com.redhat.lvmdbus1.service
-scripts/dm_event_systemd_red_hat.service
-scripts/dm_event_systemd_red_hat.socket
-scripts/lvm2_cluster_activation_red_hat.sh
-scripts/lvm2_cluster_activation_systemd_red_hat.service
-scripts/lvm2_clvmd_systemd_red_hat.service
-scripts/lvm2_cmirrord_systemd_red_hat.service
-scripts/lvm2_lvmdbusd_systemd_red_hat.service
-scripts/lvm2_lvmetad_init_red_hat
-scripts/lvm2_lvmetad_systemd_red_hat.service
-scripts/lvm2_lvmetad_systemd_red_hat.socket
-scripts/lvm2_lvmpolld_init_red_hat
-scripts/lvm2_lvmpolld_systemd_red_hat.service
-scripts/lvm2_lvmpolld_systemd_red_hat.socket
-scripts/lvm2_lvmlockd_systemd_red_hat.service
-scripts/lvm2_lvmlocking_systemd_red_hat.service
-scripts/lvm2_monitoring_init_red_hat
-scripts/lvm2_monitoring_systemd_red_hat.service
-scripts/lvm2_pvscan_systemd_red_hat@.service
-scripts/lvm2_tmpfiles_red_hat.conf
-scripts/lvmdump.sh
-scripts/Makefile
-test/Makefile
-test/api/Makefile
-test/unit/Makefile
-tools/Makefile
-udev/Makefile
-])
-AC_OUTPUT
-
-AS_IF([test -n "$THIN_CONFIGURE_WARN"],
- [AC_MSG_WARN([Support for thin provisioning is limited since some thin provisioning tools are missing!])])
-
-AS_IF([test -n "$THIN_CHECK_VERSION_WARN"],
- [AC_MSG_WARN([You should also install latest thin_check vsn 0.7.0 (or later) for lvm2 thin provisioning])])
-
-AS_IF([test -n "$CACHE_CONFIGURE_WARN"],
- [AC_MSG_WARN([Support for cache is limited since some cache tools are missing!])])
-
-AS_IF([test -n "$CACHE_CHECK_VERSION_WARN"],
- [AC_MSG_WARN([You should install latest cache_check vsn 0.7.0 to use lvm2 cache metadata format 2])])
-
-
-AS_IF([test "$ODIRECT" != yes],
- [AC_MSG_WARN([O_DIRECT disabled: low-memory pvmove may lock up])])
diff --git a/include/configure.h.in b/include/configure.h.in
index a4c93d6..89f7a22 100644
--- a/include/configure.h.in
+++ b/include/configure.h.in
@@ -1,4 +1,4 @@
-/* include/configure.h.in. Generated from configure.in by autoheader. */
+/* include/configure.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 to use libblkid detection of signatures when wiping. */
#undef BLKID_WIPING_SUPPORT
6 years
master - [lvmetad.h] Use static inline functions to stub out functions.
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=513e9e3264d6499630b...
Commit: 513e9e3264d6499630ba863ead3fe3701fc8ac29
Parent: 475626fb6c8f2d714dcf8b7aea727430756fc571
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Mon Feb 12 13:41:27 2018 +0000
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Mon Apr 30 09:45:13 2018 +0100
[lvmetad.h] Use static inline functions to stub out functions.
The macros were causing warnings because the arguments were percieved as
unused.
---
lib/cache/lvmetad.h | 76 +++++++++++++++++++++++++++++---------------------
1 files changed, 44 insertions(+), 32 deletions(-)
diff --git a/lib/cache/lvmetad.h b/lib/cache/lvmetad.h
index d47ce41..73c2645 100644
--- a/lib/cache/lvmetad.h
+++ b/lib/cache/lvmetad.h
@@ -17,6 +17,8 @@
#include "config-util.h"
+#include <stdint.h>
+
struct volume_group;
struct cmd_context;
struct dm_config_tree;
@@ -163,38 +165,48 @@ void lvmetad_clear_disabled(struct cmd_context *cmd);
# else /* LVMETAD_SUPPORT */
-# define lvmetad_disconnect() do { } while (0)
-# define lvmetad_connect(cmd) (0)
-# define lvmetad_make_unused(cmd) do { } while (0)
-# define lvmetad_used() (0)
-# define lvmetad_set_socket(a) do { } while (0)
-# define lvmetad_socket_present() (0)
-# define lvmetad_pidfile_present() (0)
-# define lvmetad_set_token(a) do { } while (0)
-# define lvmetad_release_token() do { } while (0)
-# define lvmetad_vg_update(vg) (1)
-# define lvmetad_vg_update_pending(vg) (1)
-# define lvmetad_vg_update_finish(vg) (1)
-# define lvmetad_vg_remove_pending(vg) (1)
-# define lvmetad_vg_remove_finish(vg) (1)
-# define lvmetad_pv_found(cmd, pvid, dev, fmt, label_sector, vg, found_vgnames, changed_vgnames) (1)
-# define lvmetad_pv_gone(devno, pv_name) (1)
-# define lvmetad_pv_gone_by_dev(dev) (1)
-# define lvmetad_pv_list_to_lvmcache(cmd) (1)
-# define lvmetad_pv_lookup(cmd, pvid, found) (0)
-# define lvmetad_pv_lookup_by_dev(cmd, dev, found) (0)
-# define lvmetad_vg_list_to_lvmcache(cmd) (1)
-# define lvmetad_get_vgnameids(cmd, vgnameids) do { } while (0)
-# define lvmetad_vg_lookup(cmd, vgname, vgid) (NULL)
-# define lvmetad_pvscan_single(cmd, dev, found_vgnames, changed_vgnames) (0)
-# define lvmetad_pvscan_all_devs(cmd, do_wait) (0)
-# define lvmetad_vg_clear_outdated_pvs(vg) do { } while (0)
-# define lvmetad_validate_global_cache(cmd, force) do { } while (0)
-# define lvmetad_vg_is_foreign(cmd, vgname, vgid) (0)
-# define lvmetad_token_matches(cmd) (1)
-# define lvmetad_is_disabled(cmd, reason) (0)
-# define lvmetad_set_disabled(cmd, reason) do { } while (0)
-# define lvmetad_clear_disabled(cmd) do { } while (0)
+static inline int lvmetad_connect(struct cmd_context *cmd) {return 0;}
+static inline void lvmetad_disconnect(void) {}
+static inline void lvmetad_make_unused(struct cmd_context *cmd) {}
+static inline int lvmetad_used(void) {return 0;}
+static inline void lvmetad_set_socket(const char *thing) {}
+static inline int lvmetad_socket_present(void) {return 0;}
+static inline int lvmetad_pidfile_present(void) {return 0;}
+static inline void lvmetad_set_token(const struct dm_config_value *filter) {}
+static inline void lvmetad_release_token(void) {}
+static inline int lvmetad_vg_update_pending(struct volume_group *vg) {return 1;}
+static inline int lvmetad_vg_update_finish(struct volume_group *vg) {return 1;}
+static inline int lvmetad_vg_remove_pending(struct volume_group *vg) {return 1;}
+static inline int lvmetad_vg_remove_finish(struct volume_group *vg) {return 1;}
+static inline int lvmetad_pv_found(struct cmd_context *cmd, const struct id *pvid, struct device *dev,
+ const struct format_type *fmt, uint64_t label_sector,
+ struct volume_group *vg,
+ struct dm_list *found_vgnames,
+ struct dm_list *changed_vgnames) {return 1;}
+static inline int lvmetad_pv_gone(dev_t devno, const char *pv_name) {return 1;}
+static inline int lvmetad_pv_gone_by_dev(struct device *dev) {return 1;}
+static inline int lvmetad_pv_list_to_lvmcache(struct cmd_context *cmd) {return 1;}
+static inline int lvmetad_pv_lookup(struct cmd_context *cmd, struct id pvid, int *found) {return 0;}
+static inline int lvmetad_pv_lookup_by_dev(struct cmd_context *cmd, struct device *dev, int *found) {return 0;}
+static inline int lvmetad_vg_list_to_lvmcache(struct cmd_context *cmd) {return 1;}
+static inline int lvmetad_get_vgnameids(struct cmd_context *cmd, struct dm_list *vgnameids) {return 0;}
+static inline struct volume_group *lvmetad_vg_lookup(struct cmd_context *cmd,
+ const char *vgname, const char *vgid) {return NULL;}
+static inline int lvmetad_pvscan_single(struct cmd_context *cmd, struct device *dev,
+ struct dm_list *found_vgnames,
+ struct dm_list *changed_vgnames) {return 0;}
+
+static inline int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) {return 0;}
+
+static inline int lvmetad_vg_clear_outdated_pvs(struct volume_group *vg) {return 0;}
+static inline void lvmetad_validate_global_cache(struct cmd_context *cmd, int force) {}
+static inline int lvmetad_token_matches(struct cmd_context *cmd) {return 1;}
+
+static inline int lvmetad_vg_is_foreign(struct cmd_context *cmd, const char *vgname, const char *vgid) {return 0;}
+
+static inline int lvmetad_is_disabled(struct cmd_context *cmd, const char **reason) {return 0;}
+static inline void lvmetad_set_disabled(struct cmd_context *cmd, const char *reason) {}
+static inline void lvmetad_clear_disabled(struct cmd_context *cmd) {}
# endif /* LVMETAD_SUPPORT */
6 years
master - [build] uncomment 'serial 3' in an m4 file.
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=475626fb6c8f2d714dc...
Commit: 475626fb6c8f2d714dcf8b7aea727430756fc571
Parent: 865a9c5873a6674105010b57a7695272f626a2c6
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Mon Feb 12 09:22:10 2018 +0000
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Mon Apr 30 09:44:27 2018 +0100
[build] uncomment 'serial 3' in an m4 file.
Squashes another autoreconf warning
---
acinclude.m4 | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index cd02300..4ac611d 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -155,7 +155,7 @@ AC_DEFUN([AC_TRY_LDFLAGS],
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 3
+serial 3
AC_DEFUN([AX_GCC_BUILTIN], [
AS_VAR_PUSHDEF([ac_var], [ax_cv_have_$1])
6 years
master - tests: add also snapshot monitoring
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=b904d6653dcecb83a54...
Commit: b904d6653dcecb83a5404a89d00bdd6750cea568
Parent: fade45b1d14c90eac7c6cc41019ef946659a8fb5
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sat Apr 28 22:18:00 2018 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Apr 30 10:41:51 2018 +0200
tests: add also snapshot monitoring
---
test/shell/dmeventd-restart.sh | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/test/shell/dmeventd-restart.sh b/test/shell/dmeventd-restart.sh
index 87e3e40..58575fc 100644
--- a/test/shell/dmeventd-restart.sh
+++ b/test/shell/dmeventd-restart.sh
@@ -24,6 +24,9 @@ lvchange --monitor y $vg/4way
lvcreate -aey --type mirror -m 2 --nosync --ignoremonitoring -l1 -n 3way $vg
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
@@ -50,4 +53,7 @@ lvchange --monitor y --verbose $vg/3way 2>&1 | tee lvchange.out
pgrep -o dmeventd >LOCAL_DMEVENTD
not grep 'already monitored' lvchange.out
+lvchange --monitor y --verbose $vg/$lv2 2>&1 | tee lvchange.out
+not grep 'already monitored' lvchange.out
+
vgremove -ff $vg
6 years
master - mirror: improve table update
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=fade45b1d14c90eac7c...
Commit: fade45b1d14c90eac7c6cc41019ef946659a8fb5
Parent: dd7ac793a02553c9c7a14b9715d5a6ad636aa065
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sat Apr 28 22:14:47 2018 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Apr 30 10:41:51 2018 +0200
mirror: improve table update
Shift refresh of mirror table right into monitor_dev_for_events().
Use !vg_write_lock_held() to recognize use of lvchange/vgchange.
(this shall change if this would no longer work, but requires
futher some API changes).
With this patch dm mirror table is only refreshed when necassary.
Also update WARNING message about mirror usage without monitoring
and display LV name.
---
lib/activate/activate.c | 14 ++++++++++++++
lib/mirror/mirrored.c | 11 ++++++-----
tools/lvchange.c | 4 ----
3 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index 7a2a945..a7113f1 100644
--- a/lib/activate/activate.c
+++ b/lib/activate/activate.c
@@ -1857,6 +1857,7 @@ int monitor_dev_for_events(struct cmd_context *cmd, const struct logical_volume
int (*monitor_fn) (struct lv_segment *s, int e);
uint32_t s;
static const struct lv_activate_opts zlaopts = { 0 };
+ struct lv_activate_opts mirr_laopts = { .origin_only = 1 };
struct lvinfo info;
const char *dso = NULL;
int new_unmonitor;
@@ -2057,6 +2058,19 @@ int monitor_dev_for_events(struct cmd_context *cmd, const struct logical_volume
} else
continue;
+ if (!vg_write_lock_held() && lv_is_mirror(lv)) {
+ mirr_laopts.exclusive = lv_is_active_exclusive_locally(lv) ? 1 : 0;
+ /*
+ * Commands vgchange and lvchange do use read-only lock when changing
+ * monitoring (--monitor y|n). All other use cases hold 'write-lock'
+ * so they skip this dm mirror table refreshing step.
+ */
+ if (!_lv_activate_lv(lv, &mirr_laopts)) {
+ stack;
+ r = 0;
+ }
+ }
+
/* Check [un]monitor results */
/* Try a couple times if pending, but not forever... */
for (i = 0;; i++) {
diff --git a/lib/mirror/mirrored.c b/lib/mirror/mirrored.c
index 10828e8..7c5c0a6 100644
--- a/lib/mirror/mirrored.c
+++ b/lib/mirror/mirrored.c
@@ -315,12 +315,13 @@ static int _add_log(struct dm_pool *mem, struct lv_segment *seg,
log_flags |= DM_NOSYNC;
if (_block_on_error_available && !(seg->status & PVMOVE)) {
- if (dmeventd_monitor_mode() > 0)
+ if (dmeventd_monitor_mode() == 0) {
+ log_warn_suppress(seg->lv->vg->cmd->mirror_warn_printed,
+ "WARNING: Mirror %s without monitoring will not react on failures.",
+ display_lvname(seg->lv));
+ seg->lv->vg->cmd->mirror_warn_printed = 1; /* Do not print this more then once */
+ } else
log_flags |= DM_BLOCK_ON_ERROR;
- else {
- log_warn_suppress(seg->lv->vg->cmd->mirror_warn_printed, "WARNING: Mirrors without monitoring will not react on failures.");
- seg->lv->vg->cmd->mirror_warn_printed = 1;
- }
}
return dm_tree_node_add_mirror_target_log(node, region_size, clustered, log_dlid, area_count, log_flags);
diff --git a/tools/lvchange.c b/tools/lvchange.c
index e1be4cb..0aac5ac 100644
--- a/tools/lvchange.c
+++ b/tools/lvchange.c
@@ -1603,10 +1603,6 @@ static int _lvchange_monitor_poll_single(struct cmd_context *cmd,
struct logical_volume *lv,
struct processing_handle *handle)
{
- /* Mirror is using different table line when un/monitored */
- if (lv_is_mirror(lv) && !lv_refresh(cmd, lv))
- return_ECMD_FAILED;
-
if (arg_is_set(cmd, monitor_ARG) &&
!_lvchange_monitoring(cmd, lv))
return_ECMD_FAILED;
6 years