# Maintainer: David P. # Based on linux package _replacesarchkernel=('linux%') # '%' gets replaced with kernel suffix _replacesoldkernels=() # '%' gets replaced with kernel suffix _replacesoldmodules=() # '%' gets replaced with kernel suffix pkgbase=linux-libre-xtreme pkgver=5.4.13 _hrdedrel=a pkgrel=1 pkgdesc='Security-Hardened Linux-libre (with Apparmor by default)' rcnver=5.4.12 rcnrel=armv7-x15 url='https://wiki.parabola.nu/Xtreme' arch=(i686 x86_64 armv7h) license=(GPL2) makedepends=( bc kmod libelf xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick ) options=('!strip') _srcname=linux-5.4 source=( "https://linux-libre.fsfla.org/pub/linux-libre/releases/${_srcname##*-}-gnu/linux-libre-${_srcname##*-}-gnu.tar.xz"{,.sign} "https://linux-libre.fsfla.org/pub/linux-libre/releases/$pkgver-gnu/patch-${_srcname##*-}-gnu-$pkgver-gnu.xz"{,.sign} "https://repo.parabola.nu/other/linux-libre/logos/logo_linux_"{clut224.ppm,vga16.ppm,mono.pbm}{,.sig} config.i686 config.x86_64 config.armv7h # the main kernel config files linux-armv7h.preset # armv7h preset file for mkinitcpio ramdisk # maintain the TTY over USB disconnects # http://www.coreboot.org/EHCI_Gadget_Debug 0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch # fix Atmel maXTouch touchscreen support # https://labs.parabola.nu/issues/877 # http://www.fsfla.org/pipermail/linux-libre/2015-November/003202.html 0002-fix-Atmel-maXTouch-touchscreen-support.patch # extracted patches from Arch Linux kernel sources 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch 0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch 0004-PCI-pciehp-Prevent-deadlock-on-disconnect.patch 0005-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch 0006-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch 0007-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch 0008-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch 0009-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch 0010-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch 0011-pinctrl-sunrisepoint-Add-missing-Interrupt-Status-re.patch 0012-Revert-iwlwifi-mvm-fix-scan-config-command-size.patch 0013-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch 0014-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch ) source_armv7h=( # RCN patch (CM3 firmware deblobbed and bloatware removed) "https://repo.parabola.nu/other/rcn-libre/patches/$rcnver/rcn-libre-$rcnver-$rcnrel.patch"{,.sig} # Arch Linux ARM patches 0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch 0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch 0003-SMILE-Plug-device-tree-file.patch 0004-fix-mvsdio-eMMC-timing.patch 0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch 0006-set-default-cubietruck-led-triggers.patch 0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch 0008-ARM-dove-enable-ethernet-on-D3Plug.patch 0009-USB-Armory-MkII-support.patch ) source_x86_64=("https://github.com/anthraxx/linux-hardened/releases/download/$pkgver.$_hrdedrel/linux-hardened-$pkgver.$_hrdedrel.patch"{,.sig}) validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva '65EEFE022108E2B708CBFCF7F9E712E59AF5F22A' # Daniel Micay '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P. 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak ) sha512sums=('0d0915133864eb031adfc6700066147dcf3e768a50a31c39754950c95ef4fd322dc701cd50af49c403ef0325adfcb07e354d5e46c1be3dcdd719a7a55c963f37' 'SKIP' '42d6dce820e801297bc05fbe23296e44d803c31bf023e9a30c57a39e8f1b2506d1c54f403494b05ed711ca54c90abe1731c1e2cfd7b7f54e4c9c253fc06bdab6' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' '7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78' 'SKIP' '267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1' 'SKIP' '6176a74f5a2a44ba5842d9980f2263d2cfd041bba9f3e42bdc1d8486818e4e528365ce17872b96c6327902665bc0d1ccdb6efe8e4e00dc2653dea02cb5714e87' '75853183eed65a381fc9dd7cfe1028efbc9deac22f25d1b382bdecd5b511f8dcd2a39ed1aa551af330f2bdb2aac514a42e012bdc989004d2326bdf4afc35f7b0' 'cf833d7eab1d19091e0d7859a90569c07e7ba5cc67312cfbfde18c01de8306edc14daf2649ecc09673876fc2057b3bb5ead4decdf4329d214fdaf5b6506ac5de' 'f01e7925b262d2874a8a991b1f27d057356a2a384d2012b61be5a631d4e4d7cf87461c8fb9e7f183831f5a829ad204897f1f0545a52df6288a0e04a5c2e31b96' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' '0598a2a1aaae286e4681e7e8696bb82b992d8917735b33a333c449695d6dbad0c35127704219c6274e327b3112ad2f7bbf45961112e341948651ecfd3e712458' '955b233a754ae5005d247b6192fb776507481ee0c887672d75238cdd5fe55d24327d3e3c3e04b5daf41ac3249977c0b1a5f0be4fd4d77e41783c05b0dfc68477' '57075f7a032071bda7fe047c7560032df2e037259425fbd3f230631880490f98841d337ea61d47d8d5993ec39311832ba2f967ad382a1678c0ddf1a77d43aad2' 'd93abdd716c20c63352a13adf5217a3431f5a35e9aab7bbee272c06e81649d75bdc7cc52033c85dee295a05dbe2db69da03d4fcc0a8220f060f237dc698ae3aa' '5ee06e83dbf614dcf18d938a89ef1639d9b78b6764baad530d8039679af9b0c9d99fd7e81984bbc6c911f428ce5800d2c843b504d283e63a38a9359f5fd2f8f8' '8c3bd587d9ad6ea287931d3e17c4159139653ab58bdbebc945bb416ddf6564d94171389fed83cf73828a1a3b30ac52cb4922efdcac9227b5a57b4c04433bb9d6' '30be3ef2bd74dc5002be776991e4dcba08a87773ede451efc3ed2ae87853111b47503989b834c80b5a8b550eb3ee1804a4b3f76ca0057b09a86d01b3fba054ef' '74fa48f77088cffb3d9c442db2828ca5fa6534c144231e7ba07085c168f24206cc30b642ea2417fe7965cbf9f7f38445283637b3abf5d02150efd5752a073848' 'cd04bdac9f0347a2fffda160e149b24b57d75e7b563700f576a32871b0b52ac7c04e1dcaf7ddabf4c5e886db9c7f09d32bbeb391384d3d5056da211b043dec9b' 'd75549345dc622feb20beecabd06871d95037a7b8475427c2ad01f10c87ee01bc7d2a026262c4ba9efc053e5c58c099bb05cf6072afded8314acf795025da85f' 'ed3bfc8ca3bd23e17962ee4ad0943277b9451ffb6ccc467ac5c7ba86c85a220da7fbe2ab0b0887411089303210565ec66e141df0ca61e8566079a4312d519ee6' '8e7bf1c70ae91ca3de031b0e12ea555028c94c2c9de35b72890a5f9d354b557d049fd3aeefa71ac29d466d8b679d70351eddda5cd5882992f2159d1c9ad00ad5' '3bd1f7971fc4cea850115cabc429fa430ff20bc310030c7dd421e3c12b2ae2896047581da8371d4be14b9f201cb10fecb61425d73a04e7d4acc51bbc14d2e429' 'f35ae1e4215f3dd5ce1680962e157f02807ed8151d98dc9c34570926ba713f3747957c199db65efa72691ac4ca1aaaa40dea69f35ec24be20a0f93f9156aaee7') sha512sums_x86_64=('3b689d27d4453d32a4f42a6095028be4fe034fc8ff23fb0a290a42dc85c48f83b604f04207abff444ad05c42559e38d518c40a79597b968200e5d9c8c2075833' 'SKIP') sha512sums_armv7h=('6d1e07ed008522faa61ad61491ba90bfd5aed97817825dc1f140ce3d099e091fbff2398936e7d6bbf7d04d5250dc73f622022f1dba9af1052c936cf72e4e934a' 'SKIP' 'b576a9c40ba59485c350f71b9234d9e71f245e25b26382bd2f67019f3309c3b5705a6020eae0a9dfccacc763fb2056a5937c0a8ff4e64f99ba1d60f0b2acb03f' '85a13a274d4cbaca3ddbe8eaf883f1a1184765f8d09d6d40bb32defbe0876cb0153513e8db8671d7fc053e383ced793b74245ff29364a760e1a52bb36ebc8e85' 'f9ce0bb4f06be6f742d8a31384e90fdab1a4686f14d5a8845e0c341dcfa62ae59db933237174223de9b32f9d91f99125c20ede7dff664755f1d42ea0cecdefdb' 'b32623904f984118ebdd8ec31816885d73776ed80a68fa23925e67451f28a8f080dd8545307bb2f857435894adfa8b3db7c8a99aa02b8b3f2b5f8e3223d98a47' 'd114f1e69504413e81dd67684f5b1ce69aa09d5bc768c7eee96a7d6b7ec47b32cd8f02593c878b0e9091475467de36a3d7c478e34a39148fa849548f53637b84' 'bc0c6b1726679498393be8d4c417c62e1f356fe5c617c71ff23532652fdd5f314e5bfc6172eaca79cd4806b81031bf2f879d7d1a6050ad4c616c04e6bdf93c2a' 'b13bea6412580325dba0d02cf0dc712e860f659569ffcb968aa4836fdb2882448cfee4659a675a70affccae02c8d2589d80b7239eef5ae7b615162aeaa76f3bb' 'cff59f974651614587313674455a968ae5390a5ca825d204f0e2f8de2b422d577b007f5297a398e2afeb33ed0d324d34ad58ff4cd56e645bd4ca9a6bdc1354c5' '54adbec4b6b85cda901df7d2b3eb1f517f10d3528326e60c7afa4b49ccc7cfb43b0d1f574ceb5d7d03c94a0fbcc97c0ef785258292dd26ed46728355da27332c') _replacesarchkernel=("${_replacesarchkernel[@]/\%/${pkgbase#linux-libre}}") _replacesoldkernels=("${_replacesoldkernels[@]/\%/${pkgbase#linux-libre}}") _replacesoldmodules=("${_replacesoldmodules[@]/\%/${pkgbase#linux-libre}}") case "$CARCH" in i686|x86_64) KARCH=x86;; armv7h) KARCH=arm;; esac export KBUILD_BUILD_HOST=parabola export KBUILD_BUILD_USER=$pkgbase export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" prepare() { cd $_srcname if [ "${_srcname##*-}" != "$pkgver" ]; then echo "Applying upstream patch..." patch -Np1 < "../patch-${_srcname##*-}-gnu-$pkgver-gnu" fi echo "Adding freedo as boot logo..." install -m644 -t drivers/video/logo \ ../logo_linux_{clut224.ppm,vga16.ppm,mono.pbm} echo "Setting version..." scripts/setlocalversion --save-scmversion echo "-$pkgrel" > localversion.10-pkgrel echo "${pkgbase#linux-libre}" > localversion.20-pkgname if [ "$CARCH" = "armv7h" ]; then local src_armv7h for src_armv7h in "${source_armv7h[@]}"; do src_armv7h="${src_armv7h%%::*}" src_armv7h="${src_armv7h##*/}" [[ $src_armv7h = *.patch ]] || continue echo "Applying patch $src_armv7h..." patch -Np1 < "../$src_armv7h" done fi if [ "$CARCH" = "x86_64" ]; then local src_x86_64 for src_x86_64 in "${source_x86_64[@]}"; do src_x86_64="${src_x86_64%%::*}" src_x86_64="${src_x86_64##*/}" [[ src_x86_64 = *.patch ]] || continue echo "Applying patch $src_x86_64..." patch -Np1 < "../$src_x86_64" done else local src for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" [[ $src = *.patch ]] || continue echo "Applying patch $src..." patch -Np1 < "../$src" done fi echo "Setting config..." cp ../config.$CARCH .config make olddefconfig make -s kernelrelease > version echo "Prepared %s version %s" "$pkgbase" "$(