diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ce0f12d --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# ---> ArchLinuxPackages +*.tar +*.tar.* +*.jar +*.exe +*.msi +*.zip +*.tgz +*.log +*.log.* +*.sig + +pkg/ +src/ + + +# ---> Archives +*.7z +*.rar +*.gz +*.bzip +*.bz2 +*.xz +*.lzma +*.cab + +# ---> systemd +*.service +*.socket +*.timer + +# ---> snap +*.snap +*.service +*.timer +*.socket diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..ce87760 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,95 @@ +# Maintainer: Kira <[@kira](https://dev.kira-linux.org/kira)> + +pkgname=bcachefs-tools +pkgver=1.38.8 +pkgrel=1 +pkgdesc='BCacheFS filesystem utilities' +arch=('x86_64') +url='https://bcachefs.org/' +license=('GPL-2.0-only') +_tools_depends=( + glibc + keyutils libkeyutils.so + libaio libaio.so + libgcc + libsodium libsodium.so + libunwind libunwind.so + liburcu + lz4 + libudev.so + udev + util-linux-libs libblkid.so libuuid.so + zlib libz.so + zstd libzstd.so +) +makedepends=( + ${_tools_depends[@]} + rust + rust-bindgen + clang + git + jq + llvm + pkgconf +) +options=(!lto) + +source=( + https://github.com/koverstreet/bcachefs-tools/archive/refs/tags/v${pkgver}.tar.gz +) +sha256sums=('b1c516bd0da3c4f879748d4cd0cdbd1eb5e7734d54421fb743d16e63a2e015bb') +b2sums=('3dd8bbe1b3306e5f20d9c04d7e8f775e9be73e36b4b81868d1336969a24d143219db6b6d6580786761c2e7c5b129bfedb9dd3a9025d648acc35727cb3dba4695') + +build() { + cd ${pkgname}-${pkgver} + + # this uses malloc_usable_size, which is incompatible with fortification level 3 + # https://github.com/koverstreet/bcachefs-tools/issues/237 + export CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" + export CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" + + make \ + LIBEXECDIR=/usr/lib \ + DESTDIR="${pkgdir}" \ + ROOT_SBINDIR="/usr/bin" \ + INITRAMFS_DIR=/usr/lib/initcpio +} + +package() { + depends=( + ${_tools_depends[@]} + ) + cd ${pkgname}-${pkgver} + + # this uses malloc_usable_size, which is incompatible with fortification level 3 + # https://github.com/koverstreet/bcachefs-tools/issues/237 + export CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" + export CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" + + make \ + PREFIX="/usr" \ + LIBEXECDIR=/usr/lib \ + DESTDIR="${pkgdir}" \ + ROOT_SBINDIR="/usr/bin" \ + INITRAMFS_DIR=/usr/lib/initcpio \ + install + + # replace incompatible initcpio hooks + # rm -rf "${pkgdir}"/usr/lib/initcpio/* + # install -dm755 "${pkgdir}"/usr/lib/initcpio/{hooks,install} + # install -Dm644 arch/etc/initcpio/hooks/bcachefs "${pkgdir}"/usr/lib/initcpio/hooks/ + # install -Dm644 arch/etc/initcpio/install/bcachefs "${pkgdir}"/usr/lib/initcpio/install/ + + # we do not have initcpio hookers on Kira Linux + rm -rf "${pkgdir}"/usr/lib/initcpio + + # remove dkms module from the main package + rm -rf "${pkgdir}"/usr/src + + # package completions + install -dm755 "${pkgdir}"/usr/share/{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions} + "${pkgdir}"/usr/bin/bcachefs completions bash > "${pkgdir}"/usr/share/bash-completion/completions/bcachefs + "${pkgdir}"/usr/bin/bcachefs completions fish > "${pkgdir}"/usr/share/fish/vendor_completions.d/bcachefs.fish + "${pkgdir}"/usr/bin/bcachefs completions zsh > "${pkgdir}"/usr/share/zsh/site-functions/_bcachefs +} +