diff --git a/repo/bcachefs-tools-git/PKGBUILD b/repo/bcachefs-tools-git/PKGBUILD new file mode 100644 index 0000000..a909a9c --- /dev/null +++ b/repo/bcachefs-tools-git/PKGBUILD @@ -0,0 +1,58 @@ +# Maintainer: Kyle De'Vir (QuartzDragon) + +pkgname=bcachefs-tools-git +pkgver=1107 +pkgrel=4 +pkgdesc="BCacheFS filesystem utilities" +url="https://github.com/koverstreet/bcachefs-tools" +arch=("x86_64") +license=("GPL2") +install="$pkgname.install" + +provides=(bcachefs-tools) +dependsarray="attr cargo clang fuse3 git keyutils libaio libscrypt libsodium liburcu libutil-linux pkgconf python-docutils systemd valgrind zlib" +makedepends=(${dependsarray}) +depends=(${dependsarray}) + +options=('!strip') + +_reponame="bcachefs-tools" +_repo_url="https://github.com/koverstreet/$_reponame" + +source=( + "git+$_repo_url" + "add-mkinitcpio-hook-for-Arch.patch" +) +sha512sums=('SKIP' + 'e75e0fc9576990d910acf5a3eafb1f83ab7d407bddcc210c9926b048ceb3ef018749654ca6a6ebdfab45a3e00031f6bb3537d2f3f19e3a7ec3be7c470d4ce7df') + +prepare() { + cd "$srcdir/$_reponame" + + PName="add-mkinitcpio-hook-for-Arch.patch" + msg2 "Patching with $PName ..." + patch -Np1 -i "../$PName" +} + +pkgver() { + cd "$srcdir/$_reponame" + + echo "$(git rev-list --count HEAD)" +} + +build() { + cd "$srcdir/$_reponame" + + make +} + +package() { + cd "$srcdir/$_reponame" + + make DESTDIR="$pkgdir" PREFIX="/usr" ROOT_SBINDIR="/usr/bin" INITRAMFS_DIR="/etc/initcpio" install + + install -Dm644 "arch/etc/initcpio/hooks/bcachefs" \ + "$pkgdir/etc/initcpio/hooks/bcachefs" + install -Dm644 "arch/etc/initcpio/install/bcachefs" \ + "$pkgdir/etc/initcpio/install/bcachefs" +} diff --git a/repo/bcachefs-tools-git/add-mkinitcpio-hook-for-Arch.patch b/repo/bcachefs-tools-git/add-mkinitcpio-hook-for-Arch.patch new file mode 100644 index 0000000..cb2fbaa --- /dev/null +++ b/repo/bcachefs-tools-git/add-mkinitcpio-hook-for-Arch.patch @@ -0,0 +1,130 @@ +From ad41c2fb76a96f772d75f3b4b7687fcd29aa0574 Mon Sep 17 00:00:00 2001 +From: Christophe B Billheimer +Date: Sat, 28 Jul 2018 22:54:36 -0400 +Subject: [PATCH] add mkinitcpio hook for Arch and sample /etc/mkinitcpio.conf + +--- + arch/etc/initcpio/hooks/bcachefs | 14 +++++++ + arch/etc/initcpio/install/bcachefs | 17 ++++++++ + arch/etc/mkinitcpio.conf | 66 ++++++++++++++++++++++++++++++ + 3 files changed, 97 insertions(+) + create mode 100644 arch/etc/initcpio/hooks/bcachefs + create mode 100644 arch/etc/initcpio/install/bcachefs + create mode 100644 arch/etc/mkinitcpio.conf + +diff --git a/arch/etc/initcpio/hooks/bcachefs b/arch/etc/initcpio/hooks/bcachefs +new file mode 100644 +index 0000000..cc2ed7e +--- /dev/null ++++ b/arch/etc/initcpio/hooks/bcachefs +@@ -0,0 +1,14 @@ ++#!/usr/bin/ash ++ ++run_hook() { ++ ++# check if $root needs unlocking ++if bcachefs unlock -c $root >/dev/null 2>&1; then ++ echo "Unlocking $root:" ++ while true; do ++ bcachefs unlock $root && break ++ done ++fi ++} ++ ++# vim: set ft=sh ts=4 sw=4 et: +diff --git a/arch/etc/initcpio/install/bcachefs b/arch/etc/initcpio/install/bcachefs +new file mode 100644 +index 0000000..67ce186 +--- /dev/null ++++ b/arch/etc/initcpio/install/bcachefs +@@ -0,0 +1,17 @@ ++#!/bin/bash ++ ++build() { ++ add_module "bcachefs" ++ add_binary "bcachefs" ++ ++ add_runscript ++ ++} ++ ++help() { ++ cat <' for ++# help on a given hook. ++# 'base' is _required_ unless you know precisely what you are doing. ++# 'udev' is _required_ in order to automatically load modules ++# 'filesystems' is _required_ unless you specify your fs modules in MODULES ++# Examples: ++## This setup specifies all modules in the MODULES setting above. ++## No raid, lvm2, or encrypted root is needed. ++# HOOKS="base" ++# ++## This setup will autodetect all modules for your system and should ++## work as a sane default ++# HOOKS="base udev autodetect block filesystems" ++# ++## This setup will generate a 'full' image which supports most systems. ++## No autodetection is done. ++# HOOKS="base udev block filesystems" ++# ++## This setup assembles a pata mdadm array with an encrypted root FS. ++## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. ++# HOOKS="base udev block mdadm encrypt filesystems" ++# ++## This setup loads an lvm2 volume group on a usb device. ++# HOOKS="base udev block lvm2 filesystems" ++# ++## NOTE: If you have /usr on a separate partition, you MUST include the ++# usr, fsck and shutdown hooks. ++HOOKS=(base udev autodetect modconf block filesystems bcachefs keyboard fsck) ++ ++# COMPRESSION ++# Use this to compress the initramfs image. By default, gzip compression ++# is used. Use 'cat' to create an uncompressed image. ++#COMPRESSION="gzip" ++#COMPRESSION="bzip2" ++#COMPRESSION="lzma" ++#COMPRESSION="xz" ++#COMPRESSION="lzop" ++#COMPRESSION="lz4" ++ ++# COMPRESSION_OPTIONS ++# Additional options for the compressor ++#COMPRESSION_OPTIONS="" + diff --git a/repo/bcachefs-tools-git/bcachefs-tools-git.install b/repo/bcachefs-tools-git/bcachefs-tools-git.install new file mode 100644 index 0000000..6baeb4a --- /dev/null +++ b/repo/bcachefs-tools-git/bcachefs-tools-git.install @@ -0,0 +1,16 @@ +post_upgrade() { + echo "If you haven't already, please manually add 'bcachefs' to mkinitcpio.conf variables 'MODULES=()' and 'HOOKS=()', and also add '/usr/bin/bcachefs' to 'BINARIES=()'" + echo "and then run 'mkinitcpio -p linux-bcachefs-git'" +} + +post_install() { + echo "Please manually add 'bcachefs' to mkinitcpio.conf variables 'MODULES=()' and 'HOOKS=()', and also add '/usr/bin/bcachefs' to 'BINARIES=()'" + echo "and then run 'mkinitcpio -p linux-bcachefs-git'" +} + +post_remove() { + echo "Please manually remove 'bcachefs' from mkinitcpio.conf variables 'MODULES=()' and 'HOOKS=()', and also remove '/usr/bin/bcachefs' from 'BINARIES=()'" + echo "and then run 'mkinitcpio -p linux-bcachefs-git'" +} + +# vim:set ft=sh ts=8 sts=2 sw=2 et: \ No newline at end of file