Split package

This commit is contained in:
2025-10-15 13:56:40 +03:00
parent e14b7a2b9f
commit ff6ac4b1d2
2 changed files with 299 additions and 3 deletions
+141 -2
View File
@@ -1,7 +1,7 @@
name: libblockdev
description: A library for manipulating block devices
version: 3.4.0
revision: 1
revision: 2
url: https://github.com/storaged-project/libblockdev
license: LGPL2.1-or-later
architecture: any
@@ -21,7 +21,6 @@ make_depends:
- keyutils
- kmod
- libatasmart
- libbytesize
- libnvme
- libyaml
- lvm2
@@ -37,3 +36,143 @@ downloads:
extract_to: ${BPM_SOURCE}
extract_strip_components: 1
checksum: 65ef9a37babd44b85b8ff9b273f90f9f7d5f8ff7b0c76a8edb69240325fd83f4
split_packages:
- name: libblockdev
optional_depends:
- libblockdev-btrfs
- libblockdev-crypto
- libblockdev-dm
- libblockdev-fs
- libblockdev-loop
- libblockdev-lvm
- libblockdev-mdraid
- libblockdev-mpath
- libblockdev-nvme
- libblockdev-part
- libblockdev-smart
- libblockdev-swap
- python-libblockdev
- name: libblockdev-btrfs
description: BTRFS support for libblockdev
depends:
- btrfs-progs
- glib
- glibc
- libblockdev
- libbytesize
- name: libblockdev-crypto
description: Crypto support for libblockdev
depends:
- cryptsetup
- gcc-libs
- glib
- glibc
- keyutils
- libblockdev
- cryptsetup
- nss
- util-linux
- volume_key
- name: libblockdev-dm
description: Device-mapper support for libblockdev
depends:
- lvm2
- glib
- glibc
- libblockdev
- name: libblockdev-fs
description: Filesystem support for libblockdev
depends:
- e2fsprogs
- gcc-libs
- glib
- glibc
- libblockdev
- libbytesize
- parted
- util-linux
optional_depends:
- btrfs-progs
- dosfstools
- exfatprogs
- f2fs-tools
- name: libblockdev-loop
description: Loop device support for libblockdev
depends:
- gcc-libs
- glib
- glibc
- libblockdev
- name: libblockdev-lvm
description: LVM support for libblockdev
depends:
- lvm2
- gcc-libs
- glib
- glibc
- libblockdev
- libbytesize
- libyaml
- name: libblockdev-mdraid
description: MDRAID support for libblockdev
depends:
- gcc-libs
- glib
- glibc
- libblockdev
- libbytesize
- mdadm
- name: libblockdev-mpath
description: Multipath support for libblockdev
depends:
- lvm2
- glib
- glibc
- libblockdev
- name: libblockdev-nvdimm
description: NVDIMM support for libblockdev
depends:
- glib
- glibc
- libblockdev
- ndctl
- util-linux
- name: libblockdev-nvme
description: NVME support for libblockdev
depends:
- glib
- glibc
- libblockdev
- libnvme
- name: libblockdev-part
description: Partitioning support for libblockdev
depends:
- glib
- glibc
- libblockdev
- util-linux
- name: libblockdev-smart
description: SMART support for libblockdev
depends:
- glib
- glibc
- json-glib
- libatasmart
- libblockdev
optional_depends:
- smartmontools
- name: libblockdev-swap
description: Swap support for libblockdev
depends:
- gcc-libs
- glib
- glibc
- libblockdev
- util-linux
- name: python-libblockdev
description: Python bindings for libblockdev
depends:
- glib
- libbytesize
- python3
- python-pygobject
+158 -1
View File
@@ -19,11 +19,168 @@ check() {
make check
}
_pick() {
local p="$1" f d; shift
for f; do
[ -d "$BPM_WORKDIR"/output_"$p" ] || { echo "Split package $p not found"; exit 1; }
d="$BPM_WORKDIR"/output_"$p"/"${f#$BPM_OUTPUT}"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
# The package function is executed in the source directory
# This function is used to move the compiled files into the output directory
package() {
package_libblockdev() {
make DESTDIR="$BPM_OUTPUT" install
cd "$BPM_OUTPUT"
# Move btrfs files into split package
_pick libblockdev-btrfs usr/include/blockdev/btrfs.h
_pick libblockdev-btrfs usr/lib/libbd_btrfs.*
# Move crypto files into split package
_pick libblockdev-crypto usr/include/blockdev/crypto.h
_pick libblockdev-crypto usr/lib/libbd_crypto.*
# Move device-mapper files into split package
_pick libblockdev-dm usr/include/blockdev/dm.h
_pick libblockdev-dm usr/lib/libbd_dm.*
# Move filesystem files into split package
_pick libblockdev-fs usr/bin/vfat-resize
_pick libblockdev-fs usr/include/blockdev/fs.h
_pick libblockdev-fs usr/include/blockdev/fs/*.h
_pick libblockdev-fs usr/lib/libbd_fs.*
# Move loop device files into split package
_pick libblockdev-loop usr/include/blockdev/loop.h
_pick libblockdev-loop usr/lib/libbd_loop.*
# Move lvm files into split package
_pick libblockdev-lvm etc/libblockdev/3/conf.d/10-lvm-dbus.cfg
_pick libblockdev-lvm usr/bin/lvm-cache-stats
_pick libblockdev-lvm usr/include/blockdev/lvm.h
_pick libblockdev-lvm usr/lib/libbd_lvm.*
_pick libblockdev-lvm usr/lib/libbd_lvm-dbus.*
# Move mdraid files into split package
_pick libblockdev-mdraid usr/include/blockdev/mdraid.h
_pick libblockdev-mdraid usr/lib/libbd_mdraid.*
# Move mpath files into split package
_pick libblockdev-mpath usr/include/blockdev/mpath.h
_pick libblockdev-mpath usr/lib/libbd_mpath.*
# Move nvdimm files into split package
_pick libblockdev-nvdimm usr/include/blockdev/nvdimm.h
_pick libblockdev-nvdimm usr/lib/libbd_nvdimm.*
# Move nvme files into split package
_pick libblockdev-nvme usr/include/blockdev/nvme.h
_pick libblockdev-nvme usr/lib/libbd_nvme.*
# Move part files into split package
_pick libblockdev-part usr/include/blockdev/part.h
_pick libblockdev-part usr/lib/libbd_part.*
# Move smart files into split package
_pick libblockdev-smart usr/include/blockdev/smart.h
_pick libblockdev-smart usr/lib/libbd_smart*
# Move swap files into split package
_pick libblockdev-swap usr/include/blockdev/swap.h
_pick libblockdev-swap usr/lib/libbd_swap.*
# Move python files into split package
_pick python-libblockdev usr/lib/python*
# Install package license
install -Dm644 "$BPM_SOURCE"/LICENSE "$BPM_OUTPUT"/usr/share/licenses/libblockdev/LICENSE
}
package_libblockdev-btrfs() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-btrfs
}
package_libblockdev-crypto() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-crypto
}
package_libblockdev-dm() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-dm
}
package_libblockdev-fs() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-fs
}
package_libblockdev-loop() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-loop
}
package_libblockdev-lvm() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-lvm
}
package_libblockdev-mdraid() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-mdraid
}
package_libblockdev-mpath() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-mpath
}
package_libblockdev-nvdimm() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-nvdimm
}
package_libblockdev-nvme() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-nvme
}
package_libblockdev-part() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-part
}
package_libblockdev-smart() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-smart
}
package_libblockdev-swap() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/libblockdev-swap
}
package_python-libblockdev() {
# Install package license
install -d "$BPM_OUTPUT"/usr/share/licenses/
ln -sf libblockdev "$BPM_OUTPUT"/usr/share/licenses/python-libblockdev
}