diff options
author | Daniel Bermond | 2018-09-21 19:45:53 +0000 |
---|---|---|
committer | Daniel Bermond | 2018-09-21 19:47:33 +0000 |
commit | b6815c67e6d38f82684b0854703d58dc3d11da5b (patch) | |
tree | 79ae2c25d971f33005869805178f78816fc97b45 /PKGBUILD | |
parent | 98e3c6cc41febd43b2cdfaa8ae37948bcda8fac8 (diff) | |
download | aur-b6815c67e6d38f82684b0854703d58dc3d11da5b.tar.gz |
Updated to version 4.18.9
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 580 |
1 files changed, 284 insertions, 296 deletions
@@ -1,4 +1,4 @@ -# Maintainer: Jonas Heinrich <onny@project-insanity.org> +# Maintainer : Daniel Bermond < yahoo-com: danielbermond > # Contributor: Jonas Heinrich <onny@project-insanity.org> # Contributor: André Silva <emulatorman@riseup.net> # Contributor: Márcio Silva <coadde@riseup.net> @@ -12,404 +12,392 @@ pkgbase=linux-libre # Build stock kernel #pkgbase=linux-libre-custom # Build kernel with a different name -_pkgbasever=4.14-gnu -_pkgver=4.14-gnu +_srcbasever=4.18-gnu +_srcver=4.18.9-gnu _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname _replacesoldkernels=() # '%' gets replaced with _kernelname _replacesoldmodules=() # '%' gets replaced with _kernelname -_srcname=linux-${_pkgbasever%-*} -_archpkgver=${_pkgver%-*} -pkgver=${_pkgver//-/_} +_srcname=linux-${_srcbasever%-*} +_archpkgver=${_srcver%-*} +pkgver=${_srcver//-/_} pkgrel=1 -rcnrel=armv7-x0 -arch=('i686' 'x86_64' 'armv7h') +rcnrel=armv7-x9 +arch=(i686 x86_64 armv7h) url="https://linux-libre.fsfla.org/" -license=('GPL2') -makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'libelf') -makedepends_armv7h=('git') +license=(GPL2) +makedepends=(xmlto kmod inetutils bc libelf python-sphinx graphviz) options=('!strip') -source=("https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz" - "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" -# "https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz.sign" - "https://git.hyperbola.info:50100/kernels/linux-libre_logos.git/plain/logo_linux_clut224.ppm" - "https://git.hyperbola.info:50100/kernels/linux-libre_logos.git/plain/logo_linux_clut224.ppm.sig" - "https://git.hyperbola.info:50100/kernels/linux-libre_logos.git/plain/logo_linux_mono.pbm" - "https://git.hyperbola.info:50100/kernels/linux-libre_logos.git/plain/logo_linux_mono.pbm.sig" - "https://git.hyperbola.info:50100/kernels/linux-libre_logos.git/plain/logo_linux_vga16.ppm" - "https://git.hyperbola.info:50100/kernels/linux-libre_logos.git/plain/logo_linux_vga16.ppm.sig" - # the main kernel config files - 'config.i686' 'config.x86_64' 'config.armv7h' - # pacman hook for initramfs regeneration - '90-linux.hook' - # standard config files for mkinitcpio ramdisk - 'linux.preset' - '0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch' - '0002-fix-Atmel-maXTouch-touchscreen-support.patch' - # armv7h patches - #"https://git.hyperbola.info:50100/kernels/rcn-libre.git/plain/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch" - #"https://git.hyperbola.info:50100/kernels/rcn-libre.git/plain/${_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-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch' - '0007-set-default-cubietruck-led-triggers.patch' - '0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch' - '0009-disable-USB3-port-on-ODROID-XU.patch' - '0010-ARM-dove-enable-ethernet-on-D3Plug.patch') -sha512sums=('0d4b0b8ec1ffc39c59295adf56f6a2cccf77cad56d8a8bf8072624bbb52ba3e684147ebed91d1528d2685423dd784c5fca0f3650f874f2b93cfc6b7689b9a87f' +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/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} + # 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' + # armv7h patches + "https://repo.parabola.nu/other/rcn-libre/patches/${_srcver%-*}/rcn-libre-${_srcver%-*}-$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-ARM-dove-enable-ethernet-on-D3Plug.patch' + '0009-power-add-power-sequence-library.patch' + '0010-usb-core-add-power-sequence-handling-for-USB-devices.patch' + '0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch' + '0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch' + '0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch' + '0014-ARM-mvebu-declare-asm-symbols-as-character-arrays-in.patch' + # other patches + '0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch' + '0002-fix-Atmel-maXTouch-touchscreen-support.patch' + '0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch' +) +validpgpkeys=( + '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva + '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P. +) +sha512sums=('0c221c6e84eb5bc270ef79454bf407079daed84534afb1d449d40fa46e42868a471d3063016a4eb3f68d42879e18ee314ab30716116805fee35b5084b23df2a9' + 'SKIP' + '72486a515539b2420daa6fb41c41f5994dbc4572bdacd80f75fb965398b6e12ed06c491ddab263adc36c5d48da52e1b5cf1145f4f808665dffc64ba16bfc90d4' 'SKIP' -# '2cb1afa8755071d8cb386403bf0f8cb81b0c6e1b77da08e6af379cd289f95c70953f25390766fe66de13ba4e4af41aebe3e4ce8277ca1fc1de512242272cb4e6' -# 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' '267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1' 'SKIP' '7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78' 'SKIP' - 'f4fd3bae8b74db65c47e622ffaa7b1a03ef990ace5d5bd268eb3df2d93003f881573826b6c1b31351b3213d14e782bf74db624e6cb2f17456080b6859e16fb6d' - 'f9bbce89bedce5e5f38c8be3be7114cb21bee5e8ff3a05cd6a3f9f794e8306c819feff119caf7aa8b4ab02d9a988f25406d575f6b0383f7ec6ad562cbae4c025' - 'a5202f6f467227ad4fe092c62b9289bc637c726cf2bd8c788546393c90416ecf5cd405608771faba1f1437b9f96699abd6a793b958e61ac829b39981ae18f8b6' - 'd6faa67f3ef40052152254ae43fee031365d0b1524aa0718b659eb75afc21a3f79ea8d62d66ea311a800109bed545bc8f79e8752319cd378eef2cbd3a09aba22' + '022d0fa19f0550140161253dd362a9f23fc88276965f0ab9dea3c8e1ff15d2878f71c1a3efafda113ffd632bcaab90d143b301b221c8a1180be0fe11139880ff' + 'c8da5520813bce50806fab22b433e53b614ead2e9d757a0e2847d542b0d0aac0ce80357cc63afcea3c37fc7530f385e6cd65f931c73d4331877f6012396ce032' + '6d80dd0352e2e99b6537adeb6d077004aa4d5c8c832efd80fd2c9e36d9fa3c75e3190d22678644e856e422862d226a8fac2a65c558454602c5da98a267a437f2' + '7ad5be75ee422dda3b80edd2eb614d8a9181e2c8228cd68b3881e2fb95953bf2dea6cbe7900ce1013c9de89b2802574b7b24869fc5d7a95d3cc3112c4d27063a' + '4a8b324aee4cccf3a512ad04ce1a272d14e5b05c8de90feb82075f55ea3845948d817e1b0c6f298f5816834ddd3e5ce0a0e2619866289f3c1ab8fd2f35f04f44' '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf' + '41d00af3409e8ae91aa0423ef73a5d4c5ed4ba4e2244ef37d8b8a3c8d4e379c26e45fef21274d8e2c795ef545a3212b735fc1b5b5a8b6338c8a72ca29c5167c0' + 'SKIP' + '8a12b4477f716214266b83785335515bc0d1b1ee5c728803945e0db613caca2df02939a681716cbb51039f9a003c7e7048d882271691fd8c20f273a4a8b78f01' + '47838b54f76595fd0dda8699bccf55aeefbe9031da965b50fadf2a8f8bb34c2e12b8c4b29cca5f6e6b3ce2704464dc1966565185641ab1b64ce2575591a79de7' + '067ed33621353496c19b88746b9b1ab875e8a1bde3954f4aa4e8c353389e0d15551e4edaa173e98f8dfe48877b7edec40abc68f423511dcaf5db81d998560acf' + 'cec08c029509c6c07f1addb6ac1338b61ded296eac5dd3d66449429090ae0743a09cf93d8da46082784e463ee44d42fea669d362cec8ef36aa0527a0a20f1271' + '4cd1491b69a130f7e0a2bf93c542f962e50ed2b727a96b71bfe5c2444db1abf5dba559135feecc3c02e122f717a71982d73f7432fefa9da309ce2406add591e5' + '796e6808297a9e037c9a8912d796347f83d2c17e0162920a792216e3d6ef0e860a93c1a2c41797f1fa59cbbcaa2ace7a088ebc36dcb699ee17b95a47e39f2dda' + '41a5f8d2fd1d82fac38afb8b15631d35d9a15f779cf60963943af2807b8caf40461e212bd0081b46dd39e08d3a4ad94910700ab4bee8460fe99d725a22f7b1e2' + 'e18ab92d1c4fcc9782ad9fdb456d3be397e17f9ec5e897242ba891c9cbb738bc616981447a7593bb907c5dd231035b000282e0e6f522cd6921a200d3b089aec8' + '85551c55a66885d765808ceb2c7f31cd911ec7c42212a7801883cee35881171de4d26d053d6c62cbec4474c437061e05ac5857b5038e64b7c14e7df3bb5985b1' + 'a690b4ae030fe9657b2629bbe8d38b74415db06f293d0413c74b5ef88f85693f61926ff9b83fbd099ae25a11bf03b9f7cdf947ae2c52434282b3a583b280d78c' + '28d26ca6ffc095cac0574fadb7621ea0674d542deee3bb03d251ee3a6597107002cd24d88850ca9e0a987438c86b4c61b0d146d09f29bf57ca21f04e733b6865' + 'e1b00e33bcdbc663041df21a2fa84743eebaf904204ea9b7458e4dde7bc61b17faa22c09038283e26291458427ebd9a53bf463b1bc8bc28d147d1a186426b232' + 'c3a3ceed29b8513f478cad877507c7d2171453d24346c4d62ebf34c3f35ed13ebce2ca6f7200e97693ea900f504528685fe5b59c641ccfe36bc9bc257106f157' + '073c48fea2989334451b9020e8151c0385b07affcb2bc5f778fd5f9d2d8182e40dcd04edde4d53648c1ed8cea4721afc04267a72e429be3612d2f77f5d0fd459' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - 'b3c214cc9adf22858f21ea8b0b919bd167257c2f624e98718d486b7fb82f1cfd17f578f799c13c26948bc2cb23e9eb6de0ef9299cbe49afb63929778eda24026' - 'db14593a4a0c0371e2cc2bcdcb0a4ac2abec96945dbb455393c5ef5140eca8ffb857dfee818087e4dfe261e9725a9e40a5d7e4c9774bca96560e3628743d7955' - '5ed2d772ff47517b21ba5f848ee2792a85e5e2a3d80a2aa4f0eef2acc445c20c630e6033bb180754d5cfcf11b19dbfa939b14e00bbe2acaacde02f90e3ddbb48' - '41ee45da195f7350d1c4febe21d127bccddac796adac840296a9f7ea405ad8484751658cf5174bed0ec20497d907a4429d77b0a506798136ad52c2e6e2474d0d' - '4e4dcb143ce096971ee0d77eaf513f2013d0c23a4f24462fdb9363560860bc392893100b1fe4509101427151e5d3e643dd3f3c5769fb7da1f8182879d8c5eed3' - '6c6d8250a44c0771035c3f0fe5fdfd2789f984b084df0b55fa2c17ff7b9aa3cd6cc0572fc84b230678c0fe40688f90c973b8af5e98c0e743aa73e2cd19102a6b' - '178f75b381a3c67069d8ab99ad4805fac28e40a5213ea9aa7b73913540dadee905055552dd9a5541287503b49f175dd3b85445a4b6ceae7413119297cf3a2656' - '2528481b6b1fbf7f1a39832e20ed66398cd2bc13a6bec296c351a4f571b5158c86b30993ebf450ae7a983dc82b05cd4917b19b9648665f64f328cc59cbb167fc' - '981a24d1309910c6700aaa1d8bba866c0c3fd7cf6a15a1a4b10ec69b05072775f32ef707cbfc209355aa72237880431e74213d3b5b8c6e16247cb5d943380ad2' - '3b17a9b3aac558f739320b50c84ecb44affbb26709b0f970b6f6e8f96b56aee644d92f61a0cf27c774a6c347dfc3676b4b657c4cac9ff678fb12c59fc7bcdc80') -validpgpkeys=( - '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva - 'C92BAA713B8D53D3CAE63FC9E6974752F9704456' # André Silva - '684D54A189305A9CC95446D36B888913DDB59515' # Márcio Silva -) + '78b8020105e7aafb84f32de6a7fb12b5dcb466f1d36d5188d78064d3d11a2a996a7ea4c7f9ba8a927fb9e4bbbfc6ac2913d03aa8b8257d8a771a93b7b8658092') _kernelname=${pkgbase#linux-libre} _replacesarchkernel=("${_replacesarchkernel[@]/\%/${_kernelname}}") _replacesoldkernels=("${_replacesoldkernels[@]/\%/${_kernelname}}") _replacesoldmodules=("${_replacesoldmodules[@]/\%/${_kernelname}}") -case "${CARCH}" in +case "$CARCH" in i686|x86_64) KARCH=x86;; armv7h) KARCH=arm;; esac prepare() { - cd "${srcdir}/${_srcname}" + cd $_srcname # add upstream patch - if [ "${_pkgbasever}" != "${_pkgver}" ]; then - patch -p1 -i "${srcdir}/patch-${_pkgbasever}-${_pkgver}" + if [ "$_srcbasever" != "$_srcver" ]; then + patch -p1 -i ../patch-$_srcbasever-$_srcver fi - if [ "${CARCH}" = "armv7h" ]; then - # RCN patch (CM3 firmware deblobbed and AUFS removed) + if [ "$CARCH" = "armv7h" ]; then + # RCN patch (CM3 firmware deblobbed and AUFS/WireGuard removed) # Note: For stability reasons, AUFS has been removed in the RCN patch. - git apply -v "${srcdir}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch" + # We are supporting AUFS in linux-libre-pck through PCK patch. + # See https://wiki.parabola.nu/PCK for further details. + patch -p1 -i ../rcn-libre-${_srcver%-*}-$rcnrel.patch # ALARM patches - patch -p1 -i "${srcdir}/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch" - patch -p1 -i "${srcdir}/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch" - patch -p1 -i "${srcdir}/0003-SMILE-Plug-device-tree-file.patch" - patch -p1 -i "${srcdir}/0004-fix-mvsdio-eMMC-timing.patch" - patch -p1 -i "${srcdir}/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch" - patch -p1 -i "${srcdir}/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch" - patch -p1 -i "${srcdir}/0007-set-default-cubietruck-led-triggers.patch" - patch -p1 -i "${srcdir}/0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch" - patch -p1 -i "${srcdir}/0009-disable-USB3-port-on-ODROID-XU.patch" - patch -p1 -i "${srcdir}/0010-ARM-dove-enable-ethernet-on-D3Plug.patch" + patch -p1 -i ../0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch + patch -p1 -i ../0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch + patch -p1 -i ../0003-SMILE-Plug-device-tree-file.patch + patch -p1 -i ../0004-fix-mvsdio-eMMC-timing.patch + patch -p1 -i ../0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch + patch -p1 -i ../0006-set-default-cubietruck-led-triggers.patch + patch -p1 -i ../0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch + patch -p1 -i ../0008-ARM-dove-enable-ethernet-on-D3Plug.patch + patch -p1 -i ../0009-power-add-power-sequence-library.patch + patch -p1 -i ../0010-usb-core-add-power-sequence-handling-for-USB-devices.patch + patch -p1 -i ../0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch + patch -p1 -i ../0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch + patch -p1 -i ../0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch + patch -p1 -i ../0014-ARM-mvebu-declare-asm-symbols-as-character-arrays-in.patch fi # add freedo as boot logo install -m644 -t drivers/video/logo \ - "${srcdir}/logo_linux_"{clut224.ppm,vga16.ppm,mono.pbm} + ../logo_linux_{clut224.ppm,vga16.ppm,mono.pbm} - # add latest fixes from stable queue, if needed - # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git + # Arch's linux patches + patch -p1 -i ../0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.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" + patch -p1 -i ../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 - patch -p1 -i "${srcdir}/0002-fix-Atmel-maXTouch-touchscreen-support.patch" - - cat "${srcdir}/config.${CARCH}" > ./.config - - # append pkgrel to extraversion - sed -ri "s|^(EXTRAVERSION =.*\S).*|\1-${pkgrel}|" Makefile + patch -p1 -i ../0002-fix-Atmel-maXTouch-touchscreen-support.patch - # don't run depmod on 'make install'. We'll do this ourselves in packaging - sed -i '2iexit 0' scripts/depmod.sh + msg2 "Setting version..." + scripts/setlocalversion --save-scmversion + echo "-$pkgrel" > localversion.10-pkgrel + echo "$_kernelname" > localversion.20-pkgname - # get kernel version - make prepare + msg2 "Setting config..." + cp ../config.$CARCH .config + make olddefconfig - # load configuration - # Configure the kernel. Replace the line below with one of your choice. - #make menuconfig # CLI menu for configuration - #make nconfig # new CLI menu for configuration - #make xconfig # X-based configuration - #make oldconfig # using old config from previous kernel version - # ... or manually edit .config - - # rewrite configuration - yes "" | make config >/dev/null + make -s kernelrelease > ../version + msg2 "Prepared %s version %s" "$pkgbase" "$(<../version)" } build() { - cd "${srcdir}/${_srcname}" - - if [ "${CARCH}" = "armv7h" ]; then - make ${MAKEFLAGS} LOCALVERSION= zImage modules dtbs - elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - make ${MAKEFLAGS} LOCALVERSION= bzImage modules + cd $_srcname + if [ "$CARCH" = "armv7h" ]; then + make $MAKEFLAGS zImage modules dtbs htmldocs + elif [ "$CARCH" = "x86_64" ] || [ "$CARCH" = "i686" ]; then + make bzImage modules htmldocs fi } _package() { pkgdesc="The ${pkgbase^} kernel and modules" - [ "${pkgbase}" = "linux" ] && groups=('base') - depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7') + [[ $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}}") - conflicts=("${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") - replaces=("${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") - backup=("etc/mkinitcpio.d/${pkgbase}.preset") + provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}" "LINUX-ABI_VERSION=${_srcver%%-*}") + conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") + replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") + backup=("etc/mkinitcpio.d/$pkgbase.preset") install=linux.install - cd "${srcdir}/${_srcname}" + local kernver="$(<version)" - # get kernel version - _kernver="$(make LOCALVERSION= kernelrelease)" - _basekernel=${_kernver%%-*} - _basekernel=${_basekernel%.*} + cd $_srcname - mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot} - make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install - if [ "${CARCH}" = "armv7h" ]; then - make LOCALVERSION= INSTALL_DTBS_PATH="${pkgdir}/boot/dtbs/${pkgbase}" dtbs_install - cp arch/$KARCH/boot/zImage "${pkgdir}/boot/vmlinuz-${pkgbase}" - elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}" + msg2 "Installing boot image..." + if [ "$CARCH" = "armv7h" ]; then + make INSTALL_DTBS_PATH="$pkgdir/boot/dtbs/$pkgbase" dtbs_install + cp arch/$KARCH/boot/zImage "$pkgdir/boot/vmlinuz-$pkgbase" + elif [ "$CARCH" = "x86_64" ] || [ "$CARCH" = "i686" ]; then + install -Dm644 "$(make -s image_name)" "$pkgdir/boot/vmlinuz-$pkgbase" fi - # set correct depmod command for install - sed -e "s|%PKGBASE%|${pkgbase}|g;s|%KERNVER%|${_kernver}|g" \ - "${startdir}/${install}" > "${startdir}/${install}.pkg" - true && install=${install}.pkg - - # install mkinitcpio preset file for kernel - if [ "${CARCH}" = "armv7h" ]; then - sed "s|/boot/vmlinuz-%PKGBASE%|${_kernver}|g - 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 -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" - fi + msg2 "Installing modules..." + local modulesdir="$pkgdir/usr/lib/modules/$kernver" + mkdir -p "$modulesdir" + make INSTALL_MOD_PATH="$pkgdir/usr" modules_install - # install pacman hook for initramfs regeneration - sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/90-linux.hook" | - install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook" + # a place for external modules, + # with version file for building modules and running depmod from hook + local extramodules="extramodules$_kernelname" + local extradir="$pkgdir/usr/lib/modules/$extramodules" + install -Dt "$extradir" -m644 ../version + ln -sr "$extradir" "$modulesdir/extramodules" # remove build and source links - rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build} - # remove the 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 - 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 - mkdir -p "${pkgdir}/usr" - mv "${pkgdir}/lib" "${pkgdir}/usr/" - - if [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - # add vmlinux - install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux" + rm "$modulesdir"/{source,build} + + msg2 "Installing hooks..." + # sed expression for following substitutions + if [ "$CARCH" = "armv7h" ]; then + local subst=" + s|/boot/vmlinuz-%PKGBASE%|$kernver|g + s|%PKGBASE%|$pkgbase|g + s|%KERNVER%|$kernver|g + s|%EXTRAMODULES%|$extramodules|g + " + else + local subst=" + s|%PKGBASE%|$pkgbase|g + s|%KERNVER%|$kernver|g + s|%EXTRAMODULES%|$extramodules|g + " fi + + # hack to allow specifying an initially nonexisting install file + sed "$subst" "$startdir/$install" > "$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=("${_replacesoldkernels[@]/%/-headers}") - replaces=("${_replacesoldkernels[@]/%/-headers}") - - install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}" + conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") + replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") - 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" + local builddir="$pkgdir/usr/lib/modules/$(<version)/build" - mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include" + cd $_srcname - 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 - - # 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 + msg2 "Installing build files..." + install -Dt "$builddir" -m644 Makefile .config Module.symvers System.map vmlinux + install -Dt "$builddir/kernel" -m644 kernel/Makefile + install -Dt "$builddir/arch/$KARCH" -m644 arch/$KARCH/Makefile + if [[ $CARCH = i686 ]]; then + install -Dt "$builddir/arch/$KARCH" -m644 arch/$KARCH/Makefile_32.cpu fi + cp -t "$builddir" -a scripts - # copy files necessary for later builds - cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build" - cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build" - - # 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}/" + # 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 - cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/" - - # add docbook makefile - # install -D -m644 Documentation/DocBook/Makefile \ - # "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile" - - # 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 xfs and shmem for aufs building + mkdir -p "$builddir"/{fs/xfs,mm} - # 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/" + # ??? + mkdir "$builddir/.tmp_versions" - # 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/" + msg2 "Installing headers..." + cp -t "$builddir" -a include + cp -t "$builddir/arch/$KARCH" -a arch/$KARCH/include + install -Dt "$builddir/arch/$KARCH/kernel" -m644 arch/$KARCH/kernel/asm-offsets.s - # 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/" + install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h + install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h - # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new - # in reference to: # http://bugs.archlinux.org/task/13146 - 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/" + install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h - # add dvb headers - # in reference to: # http://bugs.archlinux.org/task/20402 - 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 "${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 - 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}" + 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 + + msg2 "Installing KConfig files..." + find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \; + + msg2 "Removing unneeded architectures..." + local arch + for arch in "$builddir"/arch/*/; do + [[ $arch = */$KARCH/ ]] && continue + echo "Removing $(basename "$arch")" + rm -r "$arch" 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 + msg2 "Removing documentation..." + rm -r "$builddir/Documentation" - 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 - 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}";; + # 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 + fi + # end of Parabola changes + + msg2 "Removing broken symlinks..." + find -L "$builddir" -type l -printf 'Removing %P\n' -delete + + msg2 "Removing loose objects..." + find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete + + msg2 "Stripping build tools..." + local file + while read -rd '' file; do + case "$(file -bi "$file")" in + application/x-sharedlib\;*) # Libraries (.so) + strip -v $STRIP_SHARED "$file" ;; + application/x-archive\;*) # Libraries (.a) + strip -v $STRIP_STATIC "$file" ;; + application/x-executable\;*) # Binaries + strip -v $STRIP_BINARIES "$file" ;; + application/x-pie-executable\;*) # Relocatable binaries + strip -v $STRIP_SHARED "$file" ;; esac - done + done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0) - # remove unneeded architectures - find "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch -mindepth 1 -maxdepth 1 -type d -not -name "$KARCH" -exec rm -rf {} + + msg2 "Adding symlink..." + mkdir -p "$pkgdir/usr/src" + ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase-$pkgver" - # 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" + msg2 "Fixing permissions..." + chmod -Rc u=rwX,go=rX "$pkgdir" } _package-docs() { pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase^} kernel" provides=("${_replacesarchkernel[@]/%/-docs=${_archpkgver}}") - conflicts=("${_replacesoldkernels[@]/%/-docs}") - replaces=("${_replacesoldkernels[@]/%/-docs}") - - cd "${srcdir}/${_srcname}" - - 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 {} \; + conflicts=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") + replaces=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") + + local builddir="$pkgdir/usr/lib/modules/$(<version)/build" + + cd $_srcname + + msg2 "Installing documentation..." + mkdir -p "$builddir" + cp -t "$builddir" -a Documentation + + msg2 "Removing doctrees..." + rm -r "$builddir/Documentation/output/.doctrees" + + msg2 "Moving HTML docs..." + local src dst + while read -rd '' src; do + dst="$builddir/Documentation/${src#$builddir/Documentation/output/}" + mkdir -p "${dst%/*}" + mv "$src" "$dst" + rmdir -p --ignore-fail-on-non-empty "${src%/*}" + done < <(find "$builddir/Documentation/output" -type f -print0) + + msg2 "Adding symlink..." + mkdir -p "$pkgdir/usr/share/doc" + ln -sr "$builddir/Documentation" "$pkgdir/usr/share/doc/$pkgbase" + + msg2 "Fixing permissions..." + chmod -Rc u=rwX,go=rX "$pkgdir" } -pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs") -for _p in ${pkgname[@]}; do - eval "package_${_p}() { - $(declare -f "_package${_p#${pkgbase}}") - _package${_p#${pkgbase}} +pkgname=("$pkgbase" "$pkgbase-headers" "$pkgbase-docs") +for _p in "${pkgname[@]}"; do + eval "package_$_p() { + $(declare -f "_package${_p#$pkgbase}") + _package${_p#$pkgbase} }" done # vim:set ts=8 sts=2 sw=2 et: - |