jobextra/libblockdev/PKGBUILD-arch
2024-04-01 03:27:11 +03:00

359 lines
7.9 KiB
Plaintext

# Maintainer: Felix Yan <felixonmars@archlinux.org>
pkgbase=libblockdev
pkgname=(
libblockdev
libblockdev-{btrfs,crypto,dm,fs,loop,lvm,mdraid,mpath,nvdimm,nvme,part,swap}
python-libblockdev
)
pkgver=3.1.1
pkgrel=1
pkgdesc="A library for manipulating block devices"
arch=('x86_64')
url="https://github.com/storaged-project/libblockdev"
license=(LGPL-2.1-or-later)
makedepends=(
'autoconf-archive'
'btrfs-progs'
'cryptsetup'
'device-mapper'
'dosfstools'
'e2fsprogs'
'exfatprogs'
'gcc-libs'
'glib2'
'glibc'
'gobject-introspection'
'gtk-doc'
'kmod'
'keyutils'
'libbytesize'
'libnvme'
'lvm2'
'mdadm'
'ndctl'
'nss'
'parted'
'python'
'systemd-libs'
'util-linux'
'util-linux-libs'
'volume_key'
)
source=(
"$url/releases/download/$pkgver-1/$pkgname-$pkgver.tar.gz"
)
sha512sums=('44628d9e68a467f8a5d5e65e12d5d6ffb4d9b953c846acd9f6da257eab5ccd79309651d6b20092fa700fb4340f1f718ceef11141203da676d088824aa9d03481')
b2sums=('b3dbdc7226524d544193b609ced8a9fee725268ba2201b639c22103fcae6d047c94fb1b848e489525300242cb235d688934193894a06279a4dc0e0b33dff6e96')
_pick() {
local p="$1" f d; shift
for f; do
d="$srcdir/$p/${f#$pkgdir/}"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
build() {
local configure_options=(
--prefix=/usr
--sysconfdir=/etc
)
cd $pkgname-$pkgver
./configure "${configure_options[@]}"
# prevent libtool from overlinking everything
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make
}
check() {
cd $pkgname-$pkgver
make check
}
package_libblockdev() {
depends=(
glib2 libglib-2.0.so libgio-2.0.so libgobject-2.0.so
glibc
kmod libkmod.so
systemd-libs libudev.so
)
optdepends=(
'libblockdev-btrfs: for BTRFS support'
'libblockdev-crypto: for crypto support'
'libblockdev-dm: for device-mapper support'
'libblockdev-fs: for filesystem support'
'libblockdev-loop: for loop device support'
'libblockdev-lvm: for LVM support'
'libblockdev-mdraid: for MDRAID support'
'libblockdev-mpath: for multipath support'
'libblockdev-nvdimm: for NVDIMM support'
'libblockdev-nvme: for NVME support'
'libblockdev-part: for partitioning support'
'libblockdev-swap: for swap support'
'python-libblockdev: for Python support'
)
provides=(
libbd_utils.so
libblockdev.so
)
conflicts=(libblockdev-utils)
replaces=(libblockdev-utils)
make DESTDIR="$pkgdir" install -C $pkgname-$pkgver
cd "$pkgdir"
_pick $pkgbase-btrfs usr/include/blockdev/btrfs.h
_pick $pkgbase-btrfs usr/lib/libbd_btrfs.*
_pick $pkgbase-crypto usr/include/blockdev/crypto.h
_pick $pkgbase-crypto usr/lib/libbd_crypto.*
_pick $pkgbase-dm usr/include/blockdev/dm.h
_pick $pkgbase-dm usr/lib/libbd_dm.*
_pick $pkgbase-fs usr/bin/vfat-resize # the libbd_fs.so library calls this executable
_pick $pkgbase-fs usr/include/blockdev/fs.h
_pick $pkgbase-fs usr/include/blockdev/fs/*.h
_pick $pkgbase-fs usr/lib/libbd_fs.*
_pick $pkgbase-loop usr/include/blockdev/loop.h
_pick $pkgbase-loop usr/lib/libbd_loop.*
_pick $pkgbase-lvm etc/libblockdev/3/conf.d/10-lvm-dbus.cfg
_pick $pkgbase-lvm usr/bin/lvm-cache-stats
_pick $pkgbase-lvm usr/include/blockdev/lvm.h
_pick $pkgbase-lvm usr/lib/libbd_lvm.*
_pick $pkgbase-lvm usr/lib/libbd_lvm-dbus.*
_pick $pkgbase-mdraid usr/include/blockdev/mdraid.h
_pick $pkgbase-mdraid usr/lib/libbd_mdraid.*
_pick $pkgbase-mpath usr/include/blockdev/mpath.h
_pick $pkgbase-mpath usr/lib/libbd_mpath.*
_pick $pkgbase-nvdimm usr/include/blockdev/nvdimm.h
_pick $pkgbase-nvdimm usr/lib/libbd_nvdimm.*
_pick $pkgbase-nvme usr/include/blockdev/nvme.h
_pick $pkgbase-nvme usr/lib/libbd_nvme.*
_pick $pkgbase-part usr/include/blockdev/part.h
_pick $pkgbase-part usr/lib/libbd_part.*
_pick $pkgbase-swap usr/include/blockdev/swap.h
_pick $pkgbase-swap usr/lib/libbd_swap.*
_pick python-$pkgbase usr/lib/python*
}
package_libblockdev-btrfs() {
pkgdesc+=" - BTRFS support"
depends=(
btrfs-progs
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
libbytesize
)
provides=(libbd_btrfs.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-crypto() {
pkgdesc+=" - crypto support"
depends=(
cryptsetup libcryptsetup.so
gcc-libs
glib2 libglib-2.0.so
glibc
keyutils libkeyutils.so
"libblockdev=$pkgver" libbd_utils.so
nss
util-linux-libs libblkid.so
volume_key
)
provides=(libbd_crypto.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-dm() {
pkgdesc+=" - device mapper support"
depends=(
device-mapper libdevmapper.so
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
)
provides=(libbd_dm.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-fs() {
pkgdesc+=" - filesystem support"
depends=(
e2fsprogs libext2fs.so libe2p.so
gcc-libs
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
libbytesize
parted
util-linux-libs libblkid.so libmount.so libuuid.so
)
optdepends=(
'btrfs-progs: for BTRFS filesystem support'
'dosfstools: for VFAT filesystem support'
'exfatprogs: for exFAT filesystem support'
'f2fs-tools: for F2FS filesystem support'
'nilfs-utils: for nilfs filesystem support'
'ntfs-3g: for NTFS filesystem support'
'udftools: for UDF filesystem support'
'xfsprogs: for XFS filesystem support'
)
provides=(libbd_fs.so)
conflicts=(libblockdev-tools)
replaces=(libblockdev-tools)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-loop() {
pkgdesc+=" - loop device support"
depends=(
gcc-libs
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
)
provides=(libbd_loop.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-lvm() {
pkgdesc+=" - LVM support"
depends=(
device-mapper libdevmapper.so
gcc-libs
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so libblockdev.so
libbytesize
)
provides=(
libbd_lvm.so
libbd_lvm-dbus.so
)
conflicts=(
libblockdev-lvm-dbus
libblockdev-tools
)
replaces=(
libblockdev-lvm-dbus
libblockdev-tools
)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-mdraid() {
pkgdesc+=" - MDRAID support"
depends=(
gcc-libs
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
libbytesize
mdadm # the libbd_mdraid.so library calls the mdadm executable
)
provides=(libbd_mdraid.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-mpath() {
pkgdesc+=" - multipath device support"
depends=(
device-mapper libdevmapper.so
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
)
provides=(libbd_mpath.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-nvdimm() {
pkgdesc+=" - NVDIMM support"
depends=(
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
ndctl
util-linux-libs libuuid.so
)
provides=(libbd_nvdimm.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-nvme() {
pkgdesc+=" - NVME support"
depends=(
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
libnvme
)
provides=(libbd_nvme.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-part() {
pkgdesc+=" - partitioning support"
depends=(
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
util-linux-libs libfdisk.so
)
provides=(libbd_part.so)
mv -v $pkgname/* "$pkgdir"
}
package_libblockdev-swap() {
pkgdesc+=" - swap device support"
depends=(
gcc-libs
glib2 libglib-2.0.so
glibc
"libblockdev=$pkgver" libbd_utils.so
util-linux-libs libblkid.so
)
provides=(libbd_swap.so)
mv -v $pkgname/* "$pkgdir"
}
package_python-libblockdev() {
pkgdesc+=" - Python support"
depends=(
python
gobject-introspection-runtime
libbytesize
)
mv -v $pkgname/* "$pkgdir"
}