From 698565332d68325f08a40c20dbfa7b72c838429c Mon Sep 17 00:00:00 2001 From: EnumDev Date: Fri, 9 May 2025 14:09:46 +0300 Subject: [PATCH] Fixed dependencies, added checks, python bindings and package license --- check-version.sh | 15 +++++++++++++++ pkg.info | 6 ++++-- source.sh | 24 ++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 check-version.sh diff --git a/check-version.sh b/check-version.sh new file mode 100644 index 0000000..0a5cdc9 --- /dev/null +++ b/check-version.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Github repository +REPO="kdave/btrfs-progs" + +# Get tag name using Github Rest API +TAG_NAME=$(curl -s -L -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/"$REPO"/releases/latest | jq -r '.tag_name') + +# Get version number from tag name +VERSION=$(echo "$TAG_NAME" | rev | cut -d'-' -f1 | rev) + +# Trim 'v' character in VERSION variable +VERSION=$(echo "$VERSION" | tr -d 'v') + +echo "$VERSION" diff --git a/pkg.info b/pkg.info index c8934cd..12ec233 100644 --- a/pkg.info +++ b/pkg.info @@ -1,9 +1,11 @@ name: btrfs-progs description: BTRFS filesystem manipulation utilities version: 6.7.1 -revision: 2 +revision: 3 url: https://btrfs.readthedocs.io/ license: GPL2-only architecture: any -depends: ["lzo"] +depends: ["glibc","libgcrypt","udev","lzo","util-linux","zlib","zstd"] +optional_depends: ["e2fsprogs","python3"] +make_depends: ["e2fsprogs","python3","python-setuptools","udev","xmlto","libaio","ripgrep"] type: source diff --git a/source.sh b/source.sh index 60eabce..76f6c18 100644 --- a/source.sh +++ b/source.sh @@ -19,12 +19,36 @@ build() { make } +# The check function is executed in the source directory +# This function is used to run tests to verify the package has been compiled correctly +check() { + # Check commands taken from Arch Linux + # remove all tests, which requires real root + rm -r $(dirname $(rg -t sh -l -e SUDO_HELPER -e mount -e prepare_test) | rg 'tests/') + # prevent tests from calling function that performs 'modprobe btrfs' as this errors when not run as real root + sed -i '/^check_kernel_support$/d' tests/*.sh + # -j1 for running tests chronological + make -j1 -C tests test +} + + # The package function is executed in the source directory # This function is used to move the compiled files into the output directory package() { make DESTDIR="$BPM_OUTPUT" install + + # Install python bindings + make DESTDIR="$BPM_OUTPUT" install_python + + # Install bash completion + install -Dm644 btrfs-completion "$BPM_OUTPUT"/usr/share/bash-completion/completions/btrfs + + # Install documentation for i in 5 8; do mkdir -p "$BPM_OUTPUT"/usr/share/man/man$i install Documentation/*.$i "$BPM_OUTPUT"/usr/share/man/man$i done + + # Install package license + install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/btrfs-progs/COPYING }