# Maintainer: David P. # Contributor: André Silva # Contributor: Márcio Silva # Contributor: Nicolás Reynolds # Contributor: Sorin-Mihai Vârgolici # Contributor: Michał Masłowski # Contributor: Luke Shumaker # Contributor: Luke R. # Based on linux-zen package pkgbase=linux-libre-pck _srcbasever=4.20-gnu _srcver=4.20.12-gnu _pckver=pck1 _replacesarchkernel=('linux-zen') _replacesoldkernels=() _replacesoldmodules=() _srcname=linux-${_srcbasever%-*} _archpkgver=${_srcver%-*} pkgver=${_srcver//-/.${_pckver}_} pkgrel=1 arch=(i686 x86_64 armv7h) url="https://wiki.parabola.nu/PCK" license=(GPL2) makedepends=(xmlto kmod inetutils bc libelf python-sphinx graphviz) options=('!strip') source=( "https://linux-libre.fsfla.org/pub/linux-libre/releases/$_srcbasever/linux-libre-$_srcbasever.tar.xz"{,.sign} "https://linux-libre.fsfla.org/pub/linux-libre/releases/$_srcver/patch-$_srcbasever-$_srcver.xz"{,.sign} "https://repo.parabola.nu/other/pck/patches/$_srcver/patch-$_srcver-$_pckver.patch"{,.sig} # the main kernel config files config.i686 config.x86_64 config.armv7h # pacman hooks for depmod and initramfs regeneration 60-linux.hook 90-linux.hook # standard config files for mkinitcpio ramdisk linux.preset ) validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P. ) sha512sums=('a4a0a25fd490c051deb32ff84ba51e8807bfc8db1ad46c22c7807e9be2e5db5e1c22c211e47fca2509d5d75d64626fb28e9bbc8ccadc565f27fe9c8e47e12dc4' 'SKIP' 'f29855be66305a0f07673a903529cef79e4d915f2db11541ba2a6f64e2f6fd875baf3a7bc81061f491c97d3895dca8d2df099179295bb6499f1b0d950031ab55' 'SKIP' '8cea2c63129b79535f49177266e2af2f4a0980d99ad27b51aad1faf4997929d54fd5d806289b517996682d3a25357fad85aa1e8b0711b420cb2363231e1ae571' 'SKIP' 'bc5b865cd38106a31313f7c9719474f5e3ea7f32b5793e8b28be0983ea78a73c09462df74c5e6cfcc723235f70dba06916578d2b248a7267a21c4c0dbf885356' '22d01f1738abdb41bc4c04b81598db680eb47c018d11c226b186120761f2e1c042aaff4b4e40d146cf787420946863d427c1cc63085c88ac5d7d725b8a14c61e' '384248a62da5b522735059914db6780e111e69b461fe1b1ae3105088fdb78ef4e30357dfcdbe165c71c6edb0262faf203e4455448862c2fcd39e82b425dc89ad' '7ad5be75ee422dda3b80edd2eb614d8a9181e2c8228cd68b3881e2fb95953bf2dea6cbe7900ce1013c9de89b2802574b7b24869fc5d7a95d3cc3112c4d27063a' '2718b58dbbb15063bacb2bde6489e5b3c59afac4c0e0435b97fe720d42c711b6bcba926f67a8687878bd51373c9cf3adb1915a11666d79ccb220bf36e0788ab7' '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf') _kernelname=${pkgbase#linux-libre} _replacesarchkernel=("${_replacesarchkernel[@]/\%/${_kernelname}}") _replacesoldkernels=("${_replacesoldkernels[@]/\%/${_kernelname}}") _replacesoldmodules=("${_replacesoldmodules[@]/\%/${_kernelname}}") case "$CARCH" in i686|x86_64) KARCH=x86;; armv7h) KARCH=arm;; esac prepare() { cd $_srcname # add upstream patch if [ "$_srcbasever" != "$_srcver" ]; then patch -p1 -i ../patch-$_srcbasever-$_srcver fi # add PCK patch patch -p1 -i ../patch-$_srcver-$_pckver.patch msg2 "Setting version..." scripts/setlocalversion --save-scmversion echo "-$pkgrel" > localversion.10-pkgrel echo "$_kernelname" > localversion.20-pkgname msg2 "Setting config..." cp ../config.$CARCH .config make olddefconfig make -s kernelrelease > ../version msg2 "Prepared %s version %s" "$pkgbase" "$(<../version)" } build() { cd $_srcname if [ "$CARCH" = "armv7h" ]; then make zImage modules dtbs htmldocs elif [ "$CARCH" = "x86_64" ] || [ "$CARCH" = "i686" ]; then make bzImage modules htmldocs fi } _package() { pkgdesc="The ${pkgbase^} kernel and modules with a handful of awesome features not merged into mainline [AUFS, BFQ, BFS, UKSM]" [[ $pkgbase = linux-libre ]] && groups=(base base-openrc) depends=(coreutils linux-libre-firmware kmod mkinitcpio) optdepends=('crda: to set the correct wireless channels of your country') provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}" "LINUX-ABI_VERSION=${_srcver%%-*}") conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") 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^} kernel" provides=("${_replacesarchkernel[@]/%/-headers=${_archpkgver}}") conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") local builddir="$pkgdir/usr/lib/modules/$(