# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=device-mapper
# NOTE: keep version in sync with main/lvm2
pkgver=2.03.35
pkgrel=3
pkgdesc="Device mapper userspace library and tools from LVM2"
url="https://sourceware.org/lvm2/"
arch="all"
options="!check"  # Test tries to use real /dev/mapper/control.
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
makedepends_host="linux-headers libaio-dev util-linux-dev util-linux-static"
source="https://mirrors.kernel.org/sourceware/lvm2/LVM2.$pkgver.tgz
	dmeventd.initd
	"
install="device-mapper-udev.post-install device-mapper-udev.post-upgrade"
subpackages="
	$pkgname-static:dm_static
	$pkgname-libs:dm_libs
	$pkgname-event-libs:dm_event_libs
	$pkgname-dev
	$pkgname-doc
	$pkgname-dmeventd
	$pkgname-dmeventd-openrc:dmeventd_openrc
	$pkgname-udev:udev:noarch
	"
builddir="$srcdir/LVM2.$pkgver"

build() {
	# during cross-compilation malloc test goes wrong
	export ac_cv_func_malloc_0_nonnull=yes
	export ac_cv_func_realloc_0_nonnull=yes

	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--sbindir=/sbin \
		--localstatedir=/var \
		--enable-static_link \
		--disable-dependency-tracking \
		--disable-nls \
		--disable-readline \
		--enable-pkgconfig \
		--enable-dmeventd \
		--enable-cmdlib \
		--with-thin=internal \
		--enable-udev_rules \
		--enable-write_install \
		--disable-blkdeactivate \
		CLDFLAGS="$LDFLAGS"
	make device-mapper
}

package() {
	make DESTDIR="$pkgdir" install_device-mapper
}

dm_static() {
	pkgdesc="Device-mapper static libraries and binaries"
	provides="device-mapper-event-static=$pkgver-r$pkgrel"
	amove usr/lib/libdevmapper*.a usr/sbin/dm*.static
}

dm_libs() {
	pkgdesc="Device-mapper shared library"
	depends=
	amove usr/lib/libdevmapper.so.*
}

dm_event_libs() {
	pkgdesc="Device-mapper event daemon shared library"
	depends=
	amove usr/lib/libdevmapper-event.so.*
}

dmeventd() {
	pkgdesc="Device-mapper event daemon"
	replaces="lvm2-dmeventd"
	amove sbin/dmeventd
}

dmeventd_openrc() {
	pkgdesc="Device-mapper event daemon (OpenRC init scripts)"
	install_if="device-mapper-dmeventd=$pkgver-r$pkgrel openrc"
	replaces="lvm2-dmeventd-openrc"
	install -Dm755 "$srcdir"/dmeventd.initd "$subpkgdir"/etc/init.d/dmeventd
}

dev() {
	default_dev
	replaces="lvm2-dev"
}

udev() {
	pkgdesc="Device mapper udev rules"
	depends="device-mapper=$pkgver-r$pkgrel"
	install_if="device-mapper-libs=$pkgver-r$pkgrel eudev"
	amove usr/lib/udev/rules.d
}

sha512sums="
e925a7685b1a4d96046187e495627176b7c623418116f01fda6a26e607f9c2d2c3f70fe996a6bbe043d79e0e084a4a7385c853114747e61c2bebc42a16d61f11  LVM2.2.03.35.tgz
ca06220065525e93347efb7a5746a367cf55cb03574e50eed29bd7c4eae036bdd199b52c42d81811b6e742649e73ab8e66525f663bed66f9d1d82d0efde50332  dmeventd.initd
"
