From ff6ac4b1d2b77afa22dab2fb860bc0d3c96dae38 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Wed, 15 Oct 2025 13:56:40 +0300 Subject: [PATCH] Split package --- pkg.info | 143 +++++++++++++++++++++++++++++++++++++++++++++++- source.sh | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 299 insertions(+), 3 deletions(-) diff --git a/pkg.info b/pkg.info index cf21b8e..a6132d4 100644 --- a/pkg.info +++ b/pkg.info @@ -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 diff --git a/source.sh b/source.sh index d422d77..ac92040 100644 --- a/source.sh +++ b/source.sh @@ -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 +}