# Maintainer: Kyle De'Vir (QuartzDragon) # Contributor: Jan Alexander Steffens (heftig) # Contributor: Tobias Powalowski # Contributor: Thomas Baechler ### BUILD OPTIONS # Set these variables to ANYTHING that is not null to enable them # Tweak kernel options prior to a build via nconfig _makenconfig= # Compile ONLY probed modules # As of mainline 2.6.32, running with this option will only build the modules # that you currently have probed in your system VASTLY reducing the number of # modules built and the build time to do it. # # WARNING - ALL modules must be probed or loaded via a config file BEFORE you # begin making the pkg unless you're running modprobed-db (AUR) and building # this with makepkg as the user who is keeping the database. # # To keep track of which modules are needed for your specific system/hardware, # give module_db script a try: https://aur.archlinux.org/packages/modprobed-db # This PKGBUILD will call it directly to probe all the modules you have logged! # # More at this wiki page ---> https://wiki.archlinux.org/index.php/Modprobed-db _localmodcfg= pkgbase=linux-zen-bcachefs-git _srcver=4.19.5-zen1 pkgver=${_srcver//-/.} pkgrel=1 arch=(x86_64) url="https://evilpiepirate.org/git/" license=(GPL2) makedepends=(xmlto kmod inetutils bc libelf git python-sphinx graphviz) options=('!strip') _srcname=bcachefs source=( "$_srcname::git+https://evilpiepirate.org/git/bcachefs.git" config # the main kernel config file 60-linux.hook # pacman hook for depmod 90-linux.hook # pacman hook for initramfs regeneration linux.preset # standard config files for mkinitcpio ramdisk ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) sha256sums=('SKIP' 'be046217822dbf2b269cbda928dab61005d895981df9ce553081cd42d9f2251d' 'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21' '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919' 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65') _kernelname=${pkgbase#linux} : ${_kernelname:=-ARCH} prepare() { cd $_srcname msg2 "Adding patches from zen-kernel repository..." git remote add upstream-zen https://github.com/zen-kernel/zen-kernel git pull upstream-zen v$_srcver msg2 "Revert 4.19/muqss due to strange buggy interactions with bcachefs..." git revert -m 1 9731135d7610a36bbe4cce0dbcd0d942e7436e94 msg2 "Setting version..." scripts/setlocalversion --save-scmversion echo "-$pkgrel" > localversion.10-pkgrel echo "$_kernelname" > localversion.20-pkgname local src for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" [[ $src = *.patch ]] || continue msg2 "Applying patch $src..." patch -Np1 < "../$src" done msg2 "Setting config..." cp ../config .config ### Optionally load needed modules for the make localmodconfig # See https://aur.archlinux.org/packages/modprobed-db if [ -n "$_localmodcfg" ]; then if [ -f $HOME/.config/modprobed.db ]; then msg "Found a modprobed-db database for Steven Rostedt's make localmodconfig" make LSMOD=$HOME/.config/modprobed.db localmodconfig else msg "Running Steven Rostedt's make localmodconfig now" make localmodconfig fi fi make olddefconfig make -s kernelrelease > ../version msg2 "Prepared %s version %s" "$pkgbase" "$(<../version)" [[ -z "$_makenconfig" ]] || make nconfig # save configuration for later reuse cat .config > "${startdir}/config.last" } build() { cd $_srcname make bzImage modules htmldocs } _package() { pkgdesc="The ${pkgbase/linux/Linux} kernel and modules" [[ $pkgbase = linux ]] && groups=(base) depends=(coreutils linux-firmware kmod mkinitcpio bcachefs-tools) optdepends=('crda: to set the correct wireless channels of your country') backup=("etc/mkinitcpio.d/$pkgbase.preset") install=linux.install local kernver="$( "$startdir/$install.pkg" true && install=$install.pkg # fill in mkinitcpio preset and pacman hooks sed "$subst" ../linux.preset | install -Dm644 /dev/stdin \ "$pkgdir/etc/mkinitcpio.d/$pkgbase.preset" sed "$subst" ../60-linux.hook | install -Dm644 /dev/stdin \ "$pkgdir/usr/share/libalpm/hooks/60-$pkgbase.hook" sed "$subst" ../90-linux.hook | install -Dm644 /dev/stdin \ "$pkgdir/usr/share/libalpm/hooks/90-$pkgbase.hook" msg2 "Fixing permissions..." chmod -Rc u=rwX,go=rX "$pkgdir" } _package-headers() { pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel" local builddir="$pkgdir/usr/lib/modules/$(