diff options
Diffstat (limited to 'kernels/linux-libre-lts-xtreme/PKGBUILD')
-rw-r--r-- | kernels/linux-libre-lts-xtreme/PKGBUILD | 324 |
1 files changed, 186 insertions, 138 deletions
diff --git a/kernels/linux-libre-lts-xtreme/PKGBUILD b/kernels/linux-libre-lts-xtreme/PKGBUILD index 0f1838914..2e0833eff 100644 --- a/kernels/linux-libre-lts-xtreme/PKGBUILD +++ b/kernels/linux-libre-lts-xtreme/PKGBUILD @@ -1,18 +1,18 @@ # Maintainer: David P. <megver83@parabola.nu> # Contributor: André Silva <emulatorman@hyperbola.info> # Contributor: Márcio Silva <coadde@hyperbola.info> -# Contributor: fauno <fauno@parabola.nu> +# Contributor: Nicolás Reynolds <fauno@kiwwwi.com.ar> # Contributor: Sorin-Mihai Vârgolici <smv@yobicore.org> # Contributor: Michał Masłowski <mtjm@mtjm.eu> # Contributor: Luke Shumaker <lukeshu@sbcglobal.net> # Contributor: Luke R. <g4jc@openmailbox.org> -# Based on linux package +# Based on linux-lts package -pkgbase=linux-libre-xtreme -_pkgbasever=4.13-gnu -_pkgver=4.13.13-gnu -_hardenedver=a +pkgbase=linux-libre-lts-xtreme +_pkgbasever=4.9-gnu +_pkgver=4.9.75-gnu +_knockpatchver=4.9_1 _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname _replacesoldkernels=() # '%' gets replaced with _kernelname @@ -22,16 +22,18 @@ _srcname=linux-${_pkgbasever%-*} _archpkgver=${_pkgver%-*} pkgver=${_pkgver//-/_} pkgrel=1 -rcnrel=armv7-x2 +rcnrel=armv7-x6 arch=('i686' 'x86_64' 'armv7h') -url="https://linux-libre.fsfla.org/" +url="https://wiki.parabola.nu/Xtreme" license=('GPL2') -makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'libelf') +makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'libelf') makedepends_armv7h=('git') options=('!strip') source=("https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz"{,.sign} "https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz"{,.sign} - "https://github.com/copperhead/linux-hardened/releases/download/${_pkgver%-*}.${_hardenedver}/linux-hardened-${_pkgver%-*}.${_hardenedver}.patch"{,.sig} + #"https://gnunet.org/sites/default/files/tcp_stealth_${_knockpatchver}.diff" + #"tcp_stealth_${_knockpatchver}.diff.sig::https://gnunet.org/sites/default/files/tcp_stealth_${_knockpatchver%_1}.diff_1.sig" + "https://repo.parabola.nu/other/knock/patches/linux-libre/tcp_stealth_${_knockpatchver}.diff"{,.sig} "https://repo.parabola.nu/other/linux-libre/logos/logo_linux_clut224.ppm"{,.sig} "https://repo.parabola.nu/other/linux-libre/logos/logo_linux_mono.pbm"{,.sig} "https://repo.parabola.nu/other/linux-libre/logos/logo_linux_vga16.ppm"{,.sig} @@ -41,25 +43,23 @@ source=("https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/l '90-linux.hook' # standard config files for mkinitcpio ramdisk 'linux.preset' + 'change-default-console-loglevel.patch' '0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch' '0002-fix-Atmel-maXTouch-touchscreen-support.patch' # armv7h patches - "https://repo.parabola.nu/other/rcn-libre-hardened/patches/${_pkgver%-*}/rcn-libre-hardened-${_pkgver%-*}-${rcnrel}.patch"{,.sig} - '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-disable-USB3-port-on-ODROID-XU.patch' - '0009-ARM-dove-enable-ethernet-on-D3Plug.patch' - ) -sha512sums=('9ad6866c68f29f7e4f8b53d0b857f9b3c7f6abd0054460675c76f3100db34a77c2777d7f4191831008b532cb2ab6f686d8c4f457a4d005226c73f90937963518' + "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch"{,.sig} + '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') +sha512sums=('885eb0a7fab45dc749acb4329b4330a43b704df2d5f2f5aac1811503c132ca53ca49452f9b1cc80b0826c7a4962dbe4937aecb697aa823b2543ba2cabc704816' 'SKIP' - '9c4e753de1865778a5bdece95ed4487cedf55d23d383640ec3616db4b631e971bf1ac21d7019677dde2dbd9d7469ea20f58a7b11496f7e56d6c0162bcf2d657a' + 'e3a18af2204b7f73985704ed78f21f05412868e320d9ede6c58229d5b14ff990c73cfb6c45f3311a19b63078c1838faad7bf3164da7351295421adb758b43261' 'SKIP' - '979dfd464353980de9c2166bb0fca041fa5faef0a2365678632bae94693a1de1d0867239f08cdc76bb3672a1eeaec280511c24470092f77a265fe140864704ac' + 'a00e9fc0b930021242b231dfdd15160eaefbfad4aaa0ba0426bb9a25dd14acc1825cbb1bc9c680a6d43baca797591dc219e232862f566457752ff378e03600a3' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -67,28 +67,27 @@ sha512sums=('9ad6866c68f29f7e4f8b53d0b857f9b3c7f6abd0054460675c76f3100db34a77c27 'SKIP' '7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78' 'SKIP' - '488fbc2aea9115e87cd9fa7fe6c4e8c07a3ab51c6e110ed4fcfb16da62b485fa4e29489da38963dcb2d8bf3a2f4be6f76a6004b259f91cb86639185b17fd3b4c' - '99837ae7b471d5789bdbd38e7e378c74ec88348a0696dc05ccfa6993e79f2f59e8ac2932a9c34b383ac9eb7e8bab31c4c7a87d785a35fda27db90567584198f2' - '774e8c72452d29c97917b501499399cf4c6cabc3d06d42f101e7c64af62a8d35c33a92aa5f9f48cdd5d5575bf9d0d9aca49b2ab6182fc7ae83481f8695022aea' + '33da572427ccbd809bc06adb99483a0b56e7e420c651165fb9fe9f491b1891d695b952173c31dedfe06657e2bf81ea61591f08e2b6067baf132f8abc2392c82b' + '37e106b6f5af18047d1a1f0e045e3379d7b105878e15c1a5a6e18d93860af9793423a2ea8c2054d14cd7f87b8566060aac90642ccadc62bf6214e61c0d9e7da9' + '43cb3b8eddb3844db2adb72044dbc0520f1b8e31e1e34586834b7ec499a501d3404e68291f8296aa78657544848e725c12e9b722941e2d52625fce5e99cf4a47' 'd6faa67f3ef40052152254ae43fee031365d0b1524aa0718b659eb75afc21a3f79ea8d62d66ea311a800109bed545bc8f79e8752319cd378eef2cbd3a09aba22' '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf' + 'd9d28e02e964704ea96645a5107f8b65cae5f4fb4f537e224e5e3d087fd296cb770c29ac76e0ce95d173bc420ea87fb8f187d616672a60a0cae618b0ef15b8c8' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - '32533b4e3c3c16db4794b9f0de56ce61ee27e40adea422732f596328c9a01f85dce5a3347f7a3b2326f0466cfd7667c3fde5adc90a14fb17ec652568ca8ce66b' + 'd5548e5afac67bec1d7bf754179ccad30beb453b3a5562b8c1ce34fc20b4b421528f2c90381803c8fdb8dc7757d801ee54a03f2631bab98e22f66c7d64c82b1e' 'SKIP' - '8da49af5cce12f0bf21f5985cf85d13624404bab76cc0fd7a04b3ee6c046b5dceb4ae0bb821e060405366310473042892e716f530f04d1dab9a21ca1f778dd6c' - '06f40e0f197b15dffc7c724aba9a41f2343c8528576700202f069d5cd00013e7e5e8d62153cf358d02c21e28d7cf2a66e3f5190677cb590ac07f36be58b43cab' - '9ebb57495958cfcd64f82c6dbfc823ea724d888ac6991bc983981b9a4791c0691a7aba3f7358ec8c853a4e06f098d674a7bd410beb653e0f3bb6c2cd9baad254' - '42e4c7235301c476c47e8fad82117773fe362fc7a037ab18f78cef808e6d7868aea4671e89ea95f7fe8ba84a42f7d5425c8f5cca1049327775a6a83db9ff7afb' - 'b02a0886168ff3b17ff3963b518e95c94a8ecb17409381a6e4f6ee06e6f352667f0b6f8d78e39509c54bacf4c29224f67eaf514b261625a951d35fcdd809d1f6' - '47643f83377377e7b878a78b42cb5c4261390d70912fff3e41fed8f4ec750077e62291451bde098032e199d152efb89cbe9058ffa341838f411df03e5b2cb9cb' - 'af61d42d03ae4624feee5b31e699f7f16596a2b5556a43a42e773d00ab35b72ed60777b17c75acfd690f590376fba4000efda310cb628e3788f30c970bcc7e10' - 'ef47eb4cbe69d1eab683c6b4f9ea17cc2e193e14e58e4d93da3f082401aedd8a3218a30a680a077724fda698f37389fa1a216781779b59e6bd17f44dfa569d3d' - '880f625458fe7d3f5cb7d5701f2c3e094a62a1965af2c9a1520724d0142d3535211f52bdbe1318c230e6fdb3fdfbf511a83bd81ba7e117ecbc7dcb87193286c1') + '4fa96f6c40b34c2448be34e794cebbcbe3354c8376c5a305aae9b931bf52a818522ccc91e7c4683481e4d2ba411e928cf5f6c1481666b596993d6ae4ee28eb08' + '6764e186cd5ba27817bf341cc7350309e14772c9ace5f34b05f10f42785158dc53509c58ae5961d75aae1d814190e8040c7bb2d0c6beee473725d6cc8d32c44e' + 'cd7548cd7978eff2449a58bbdca40b89a573d8d9faed6f6cf7b4a6d8b45a432d84a2ef8a041524ebb6d89cfc6e2ac1eab88c6e398c0c9b31d31b7f0e8bbee3ac' + 'ab649ebff6148df15eb6325acd2ddd0c99cc087e4722326bca8d13e70dfa60dbc40da3cb640c1ef2b67ee98b33fda79ee175519e7cc40c2d22def3c347519fd9' + '95a5a508187ebd551a2931cf8b9848b34b340d8cf725861893c1db4e10e08d8b876a3024398db07be2d76b4c88acb719b60e3d3d52f7569f52d8a799944db742' + '527fcd12a37bad8113e0fc389e10f665c16a894fa1d2ae3ed0809fe21d18164fd7590b34570f5999d8c1c569f212908db53ef9d8b3783e94eeba75666c5547d9' + 'd34d69b936266da6c4d80a042f7613d368d97539457f8428727942fc196f32c932dc8dc97c522aa4793711e73b15b963dad9d18d85f930532d9491b4a2b37b96') validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva - '65EEFE022108E2B708CBFCF7F9E712E59AF5F22A' # Daniel Micay '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P. + '76298B5BB60EDAD21B362E667585399992435BA4' # Mathias Krause ) _kernelname=${pkgbase#linux-libre} @@ -102,19 +101,22 @@ case "${CARCH}" in esac prepare() { - cd ${_srcname} + cd "${srcdir}/${_srcname}" # add upstream patch if [ "${_pkgbasever}" != "${_pkgver}" ]; then - patch -p1 -i ../patch-${_pkgbasever}-${_pkgver} + patch -p1 -i "${srcdir}/patch-${_pkgbasever}-${_pkgver}" fi + + # add Knock patch + patch -p1 -i "${srcdir}/tcp_stealth_${_knockpatchver}.diff" if [ "${CARCH}" = "armv7h" ]; then - # RCN patch (CM3 firmware deblobbed and AUFS removed) - # Note: For stability reasons, AUFS has been removed in the RCN patch. - # We are supporting AUFS in linux-libre-pck through PCK patch. - # See https://wiki.parabola.nu/PCK for further details. - git apply -v "${srcdir}/rcn-libre-hardened-${_pkgver%-*}-${rcnrel}.patch" + # RCN patch (CM3 firmware deblobbed, AUFS and RT removed) + # Note: For stability reasons, AUFS and RT have been removed in the RCN patch. + # We are supporting AUFS in linux-libre-pck through PCK patch and RT through its official + # patch in linux-libre-rt. See https://wiki.parabola.nu/PCK for further details about PCK. + git apply -v "${srcdir}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch" # ALARM patches patch -p1 -i "${srcdir}/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch" @@ -124,13 +126,8 @@ prepare() { patch -p1 -i "${srcdir}/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch" patch -p1 -i "${srcdir}/0006-set-default-cubietruck-led-triggers.patch" patch -p1 -i "${srcdir}/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch" - patch -p1 -i "${srcdir}/0008-disable-USB3-port-on-ODROID-XU.patch" - patch -p1 -i "${srcdir}/0009-ARM-dove-enable-ethernet-on-D3Plug.patch" fi - # add hardened patches - patch -Np1 -i "${srcdir}/linux-hardened-${_pkgver%-*}.${_hardenedver}.patch" - # add freedo as boot logo install -m644 -t drivers/video/logo \ "${srcdir}/logo_linux_"{clut224.ppm,vga16.ppm,mono.pbm} @@ -138,6 +135,11 @@ prepare() { # add latest fixes from stable queue, if needed # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git + # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) + # remove this when a Kconfig knob is made available by upstream + # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) + patch -p1 -i "${srcdir}/change-default-console-loglevel.patch" + # maintain the TTY over USB disconnects # http://www.coreboot.org/EHCI_Gadget_Debug patch -p1 -i "${srcdir}/0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch" @@ -147,7 +149,7 @@ prepare() { # http://www.fsfla.org/pipermail/linux-libre/2015-November/003202.html patch -p1 -i "${srcdir}/0002-fix-Atmel-maXTouch-touchscreen-support.patch" - cp -Tf ../config.${CARCH} .config + cat "${srcdir}/config.${CARCH}" > ./.config # append pkgrel to extraversion sed -ri "s|^(EXTRAVERSION =.*\S).*|\1-${pkgrel}|" Makefile @@ -171,7 +173,7 @@ prepare() { } build() { - cd ${_srcname} + cd "${srcdir}/${_srcname}" if [ "${CARCH}" = "armv7h" ]; then make ${MAKEFLAGS} LOCALVERSION= zImage modules dtbs @@ -181,18 +183,19 @@ build() { } _package() { - pkgdesc="The ${pkgbase^} kernel and modules with a handful of awesome security features [AppArmor, SMACK, TOMOYO, SELinux, YAMA, Linux-hardened]" + pkgdesc="The ${pkgbase^} kernel and modules - stable longtime supported kernel package suitable for servers with handful of awesome security features [AppArmor, SMACK, TOMOYO, SELinux, YAMA, Knock]" [ "${pkgbase}" = "linux-libre" ] && groups=('base' 'base-openrc') depends=('coreutils' 'linux-libre-firmware' 'kmod' 'mkinitcpio>=0.7') optdepends=('crda: to set the correct wireless channels of your country' - 'apparmor: to configure and enable mandatory access control for programs') + 'apparmor: to configure and enable mandatory access control for programs' + 'openssh-knock: to use SSH with TCP Stealth support') provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}" "LINUX-ABI_VERSION=${_archpkgver}") conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") backup=("etc/mkinitcpio.d/${pkgbase}.preset") install=linux.install - cd ${_srcname} + cd "${srcdir}/${_srcname}" # get kernel version _kernver="$(make LOCALVERSION= kernelrelease)" @@ -216,39 +219,37 @@ _package() { # install mkinitcpio preset file for kernel if [ "${CARCH}" = "armv7h" ]; then sed "s|/boot/vmlinuz-%PKGBASE%|${_kernver}|g - s|%PKGBASE%|${pkgbase}|g" ../linux.preset | - install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" + s|%PKGBASE%|${pkgbase}|g" "${srcdir}/linux.preset" | + install -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/linux.preset" | - install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" + install -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" fi # install pacman hook for initramfs regeneration - sed "s|%PKGBASE%|${pkgbase}|g" ../90-linux.hook | - install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook" + sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" | + install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook" # remove build and source links - rm "${pkgdir}"/lib/modules/${_kernver}/{source,build} - + rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build} # remove the firmware - rm -r "${pkgdir}/lib/firmware" - + rm -rf "${pkgdir}/lib/firmware" # make room for external modules ln -s "../extramodules-${_basekernel}${_kernelname}" "${pkgdir}/lib/modules/${_kernver}/extramodules" - # add real version for building modules and running depmod from post_install/upgrade - echo "${_kernver}" | - install -Dm644 /dev/stdin "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}/version" + mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}" + echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}/version" # Now we call depmod... depmod -b "${pkgdir}" -F System.map "${_kernver}" # move module tree /lib -> /usr/lib - mv -t "${pkgdir}/usr" "${pkgdir}/lib" + mkdir -p "${pkgdir}/usr" + mv "${pkgdir}/lib" "${pkgdir}/usr/" if [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then # add vmlinux - install -Dm644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux" + install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux" fi } @@ -258,92 +259,139 @@ _package-headers() { conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") - cd ${_srcname} - local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build" + install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}" - install -Dt "${_builddir}" -m644 Makefile .config Module.symvers - install -Dt "${_builddir}/kernel" -m644 kernel/Makefile + cd "${srcdir}/${_srcname}" + install -D -m644 Makefile \ + "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile" + install -D -m644 kernel/Makefile \ + "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile" + install -D -m644 .config \ + "${pkgdir}/usr/lib/modules/${_kernver}/build/.config" - mkdir "${_builddir}/.tmp_versions" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include" - cp -t "${_builddir}" -a include scripts + for i in acpi asm-generic config crypto drm generated keys linux math-emu \ + media net pcmcia scsi soc sound trace uapi video xen; do + cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/" + done - install -Dt "${_builddir}/arch/${KARCH}" -m644 arch/${KARCH}/Makefile - install -Dt "${_builddir}/arch/${KARCH}/kernel" -m644 arch/${KARCH}/kernel/asm-offsets.s + # copy arch includes for external modules + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}" + cp -a arch/${KARCH}/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/" + if [ "${CARCH}" = "armv7h" ]; then + for i in dove exynos omap2; do + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-${i}" + cp -a arch/${KARCH}/mach-${i}/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-${i}/" + done + for i in omap orion samsung versatile; do + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/plat-${i}" + cp -a arch/${KARCH}/plat-${i}/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/plat-${i}/" + done + fi + + # copy files necessary for later builds + cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build" + cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build" - if [[ ${CARCH} = i686 ]]; then - install -t "${_builddir}/arch/${KARCH}" -m644 arch/${KARCH}/Makefile_32.cpu + # fix permissions on scripts dir + chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions" + + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel" + + cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/" + + if [ "${CARCH}" = "i686" ]; then + cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/" fi - cp -t "${_builddir}/arch/${KARCH}" -a arch/${KARCH}/include + cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/" - install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h - install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h + # add docbook makefile + install -D -m644 Documentation/DocBook/Makefile \ + "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile" - # http://bugs.archlinux.org/task/9912 - install -Dt "${_builddir}/drivers/media/dvb-core" -m644 drivers/media/dvb-core/*.h + # add dm headers + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md" + cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md" + + # add inotify.h + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux" + cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/" + # add wireless headers + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/" + cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/" + + # add dvb headers for external modules + # in reference to: + # http://bugs.archlinux.org/task/9912 + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core" + cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/" + # and... + # http://bugs.archlinux.org/task/11194 + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/" + cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/" + + # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new + # in reference to: # http://bugs.archlinux.org/task/13146 - install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/lgdt330x.h - install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/" + cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/" + cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/" + # add dvb headers + # in reference to: # http://bugs.archlinux.org/task/20402 - install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h - install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h - install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb" + cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends" + cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners" + cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/" # add xfs and shmem for aufs building - mkdir -p "${_builddir}"/{fs/xfs,mm} + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm" + # removed in 3.17-gnu series + # cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h" # copy in Kconfig files - find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \; - - # add objtool for external module building and enabled VALIDATION_STACK option - if [[ -e tools/objtool/objtool ]]; then - install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool - fi - - # remove unneeded architectures - local _arch - for _arch in "${_builddir}"/arch/*/; do - if [[ ${_arch} != */${KARCH}/ ]]; then - rm -r "${_arch}" - fi + for i in $(find . -name "Kconfig*"); do + mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'` + cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}" done - # remove files already in linux-docs package - rm -r "${_builddir}/Documentation" - - # parabola changes - # - # since we don't want to diverge too much from arch's pkgbuild, we'll - # start marking our changes as such - if [ "${CARCH}" = "armv7h" ]; then - for i in dove exynos omap2; do - mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-${i}" - cp -a arch/${KARCH}/mach-${i}/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-${i}/" - done - for i in omap orion samsung versatile; do - mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/plat-${i}" - cp -a arch/${KARCH}/plat-${i}/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/plat-${i}/" - done + # add objtool for external module building and enabled VALIDATION_STACK option + if [ -f tools/objtool/objtool ]; then + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool" + cp -a tools/objtool/objtool ${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool/ fi - # end of parabola changes - # Fix permissions - chmod -R u=rwX,go=rX "${_builddir}" + chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build" + find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \; # strip scripts directory - local _binary _strip - while read -rd '' _binary; do - case "$(file -bi "${_binary}")" in - *application/x-sharedlib*) _strip="${STRIP_SHARED}" ;; # Libraries (.so) - *application/x-archive*) _strip="${STRIP_STATIC}" ;; # Libraries (.a) - *application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries - *) continue ;; + find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do + case "$(file -bi "${binary}")" in + *application/x-sharedlib*) # Libraries (.so) + /usr/bin/strip ${STRIP_SHARED} "${binary}";; + *application/x-archive*) # Libraries (.a) + /usr/bin/strip ${STRIP_STATIC} "${binary}";; + *application/x-executable*) # Binaries + /usr/bin/strip ${STRIP_BINARIES} "${binary}";; esac - /usr/bin/strip ${_strip} "${_binary}" - done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null) + done + + # remove unneeded architectures + find "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch -mindepth 1 -maxdepth 1 -type d -not -name "$KARCH" -exec rm -rf {} + + + # remove files already in docs package + rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.recursion-issue-01" + rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.recursion-issue-02" + rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.select-break" } _package-docs() { @@ -352,17 +400,17 @@ _package-docs() { conflicts=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") replaces=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") - cd ${_srcname} - local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build" + cd "${srcdir}/${_srcname}" - mkdir -p "${_builddir}" - cp -t "${_builddir}" -a Documentation + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build" + cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build" + find "${pkgdir}" -type f -exec chmod 444 {} \; + find "${pkgdir}" -type d -exec chmod 755 {} \; - # Fix permissions - chmod -R u=rwX,go=rX "${_builddir}" + # remove a file already in kernel package + rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile" } -# wtf is this for pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs") for _p in ${pkgname[@]}; do eval "package_${_p}() { |