# Maintainer: David P. # Contributor: André Silva # Contributor: Márcio Silva # 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.10 _hrdedrel=a pkgrel=1 pkgdesc='Security-Hardened Linux-libre (with Apparmor by default)' rcnver=5.4.5 rcnrel=armv7-x13 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-Do-not-disable-interrupt-twice-on-suspend.patch 0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch 0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch 0007-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch 0008-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch 0009-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch 0010-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch 0011-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch 0012-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch 0013-pinctrl-sunrisepoint-Add-missing-Interrupt-Status-re.patch 0014-Revert-iwlwifi-mvm-fix-scan-config-command-size.patch 0015-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.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' '0d1d0dea0096f2b7aba13575588dca533386afafbab8c238c478dea88ed3b8259d566a3798a19eed35dbb89d6687ba7d0da351b840f7207f9ca6267aba7b7ac0' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' '7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78' 'SKIP' '267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1' 'SKIP' '6176a74f5a2a44ba5842d9980f2263d2cfd041bba9f3e42bdc1d8486818e4e528365ce17872b96c6327902665bc0d1ccdb6efe8e4e00dc2653dea02cb5714e87' '54f9ad1bb3a06bf075b4e3607698f559a548b58bf08a14d85d7f04f7fd481a5e12dbd3248cde29a325738dce1d38fca2df3b3832b052c82e9b0c3dfd75b537b8' 'f845b510f5da3db96ac98c2274caa35dc2db5e127071ffb7880c81416191b448a92a5e3f7263e9fdabf4a41395e1a20a61b1265f1f4ac2f41ff02bb8a80456d2' 'f01e7925b262d2874a8a991b1f27d057356a2a384d2012b61be5a631d4e4d7cf87461c8fb9e7f183831f5a829ad204897f1f0545a52df6288a0e04a5c2e31b96' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' 'a5a50f2f8f008a2a7a36de1985bd0c8ad381cb127f1192955b2312d3a3c162ed3b803503d7efc8212b3d74b96a0c6fbb30d25e572b5c9d15147e40574cef4ad2' '07e8e5998418b91acab4a4403008f1bdca96f6cd09b284ffdcfa9f660b0a2241385bd535844329dc4933403222a4c84b5297dee2ee50899700acd065273b78d5' '96f6c1c374220660aa7a1fb600848fb89cfb70e5e17060ee2715a99358258f6eab6d56535e92bac1a7f9cbb110dadfad72755cb0ffbdf8484d8df3e9a8a5ecd4' '7f8b8bc6c0834319722e4dab7d10123b8e63cfb86da27f1e443eeba7946f54eae6d5f4417fab16b796cfd3190a3f69993502efd8d134c764abb5070375354907' '4a9d908900df9883cc7989d8b71a7cace4561e5881502a6415ac0809a700b0d0536a8034da166d48e075456ba07f060bfe02246eca7af4c21a3eac977de57913' 'aabb27bebfab538678cb5687918fec1ea54d04ea2c5d366e182aeebf4f9c183b661f89520628b5934e251b48afcad62c2d1253f0520102bd8a47dfa2e74227a9' '5045e58079d58e18cdadef3bb60ff4f565629008449c003452193c77396f5110d972dcdbea87e4193339a44072569e7910c89fef3cb4933de29a609189101184' 'a59470588e64e24c58a17f15ba5654dd35feba51a0649c331cf6f4361690a55890d2989abac6e58d147ef03756a2d5db91ceb75ac2d34a355c0c29e2b32bcfc3' '1c7d83f92714f1fd84372d2a793a287fdbcd604de0c7409609fbe6e95b459554e77287cbd2793b60756b98fafb938e55fd14dce65a05eeb9c66fabbb03fd40cf' 'f7e9635f42320f26e2cc21a7507dc9e497bf1a1939f6c6e76d4adc9850bd0c24036427553f454f5221d507e2c420f29c9a3e918a932a7f22fb4b7509add02a6c' '954241c5a9582f1d9e1ca462e4a2ec91c59d510bd3401691a31ac7f3335376342a554491a47591bf9f9289a8bab8d0e45dff7e09fcdd941702271a2c3e73e766' 'c1a431785f5b7357569bfb14322a0263c974d9f848f5e3bd62469f05fd5a9242ddd5ad47c5edb7588f92da8acfa83035f050f9b0036188f005e05b9e8a2876ab' '2fe2ee5cd26298d1bc126362f86b01d653d3f9d1592490497f08bea398a1fed5607c6875ecf2ad820f644f89a85d30f7fdbd9f306e670060e943c586646a3a2f' 'd83e48c9448f48ffe4f587b07dd88fbb7bf3d2137329ac0af734fdea2d0032dd6e76ccf19c26080e14e93856c63aff10cef7ec15acb1276213ac9b20882e9709' 'c4df83eb037dd58aba7ee8fc77bbcc95a27e0e0905e278821769f3a7790c3cdff726333a8014dd223d7c74d4ce2713df29f647c94014438c128e1009d66c37d6') sha512sums_x86_64=('41fd086450db5e90695293c1212bac89283df02fce9feaa5c7a7f7a827be51713e62d45fe40001f66636f06ee2389a40369827b6862287b7d6f0a4a65fb0d7f8' 'SKIP') sha512sums_armv7h=('bc449032f904b5ef5c4506124871230587dd72849f7fed1d7e9f6ab6f530c24415dfa0f29b27fa98191a671c9646b6066fbf163b5533774307dc68f610e3958f' '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 msg2 "Applying upstream patch..." patch -Np1 -i ../patch-${_srcname##*-}-gnu-$pkgver-gnu fi msg2 "Adding freedo as boot logo..." install -m644 -t drivers/video/logo \ ../logo_linux_{clut224.ppm,vga16.ppm,mono.pbm} msg2 "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 msg2 "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 msg2 "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 msg2 "Applying patch $src..." patch -Np1 < "../$src" done fi msg2 "Setting config..." cp ../config.$CARCH .config make olddefconfig make -s kernelrelease > version msg2 "Prepared %s version %s" "$pkgbase" "$(