summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-lts-xtreme/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'kernels/linux-libre-lts-xtreme/PKGBUILD')
-rw-r--r--kernels/linux-libre-lts-xtreme/PKGBUILD434
1 files changed, 199 insertions, 235 deletions
diff --git a/kernels/linux-libre-lts-xtreme/PKGBUILD b/kernels/linux-libre-lts-xtreme/PKGBUILD
index 2e0833eff..f173fbb58 100644
--- a/kernels/linux-libre-lts-xtreme/PKGBUILD
+++ b/kernels/linux-libre-lts-xtreme/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: David P. <megver83@parabola.nu>
# Contributor: André Silva <emulatorman@hyperbola.info>
# Contributor: Márcio Silva <coadde@hyperbola.info>
-# Contributor: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+# Contributor: fauno <fauno@parabola.nu>
# Contributor: Sorin-Mihai Vârgolici <smv@yobicore.org>
# Contributor: Michał Masłowski <mtjm@mtjm.eu>
# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
@@ -11,7 +11,7 @@
pkgbase=linux-libre-lts-xtreme
_pkgbasever=4.9-gnu
-_pkgver=4.9.75-gnu
+_pkgver=4.9.92-gnu
_knockpatchver=4.9_1
_replacesarchkernel=('linux%') # '%' gets replaced with _kernelname
@@ -23,41 +23,47 @@ _archpkgver=${_pkgver%-*}
pkgver=${_pkgver//-/_}
pkgrel=1
rcnrel=armv7-x6
-arch=('i686' 'x86_64' 'armv7h')
+arch=('x86_64' 'i686' 'armv7h')
url="https://wiki.parabola.nu/Xtreme"
license=('GPL2')
-makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'libelf')
+makedepends=('xmlto' '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://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}
- # 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'
- '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/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')
+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://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}
+ # 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/${_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'
+ '0008-disable-USB3-port-on-ODROID-XU.patch'
+ '0009-ARM-dove-enable-ethernet-on-D3Plug.patch'
+ # other patches
+ '0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch'
+ '0002-fix-Atmel-maXTouch-touchscreen-support.patch'
+)
+validpgpkeys=(
+ '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
+ '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P.
+)
sha512sums=('885eb0a7fab45dc749acb4329b4330a43b704df2d5f2f5aac1811503c132ca53ca49452f9b1cc80b0826c7a4962dbe4937aecb697aa823b2543ba2cabc704816'
'SKIP'
- 'e3a18af2204b7f73985704ed78f21f05412868e320d9ede6c58229d5b14ff990c73cfb6c45f3311a19b63078c1838faad7bf3164da7351295421adb758b43261'
+ '1dfe3c74d450c0b1ecd73e84d34b71297bcaf70eb9a495dc8a501e809e35e4c962de4cffdf45c73a73fd3612a7a347e0ebe301d7e25ceb3649db99ae0fc462b3'
'SKIP'
'a00e9fc0b930021242b231dfdd15160eaefbfad4aaa0ba0426bb9a25dd14acc1825cbb1bc9c680a6d43baca797591dc219e232862f566457752ff378e03600a3'
'SKIP'
@@ -67,28 +73,25 @@ sha512sums=('885eb0a7fab45dc749acb4329b4330a43b704df2d5f2f5aac1811503c132ca53ca4
'SKIP'
'7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78'
'SKIP'
- '33da572427ccbd809bc06adb99483a0b56e7e420c651165fb9fe9f491b1891d695b952173c31dedfe06657e2bf81ea61591f08e2b6067baf132f8abc2392c82b'
- '37e106b6f5af18047d1a1f0e045e3379d7b105878e15c1a5a6e18d93860af9793423a2ea8c2054d14cd7f87b8566060aac90642ccadc62bf6214e61c0d9e7da9'
- '43cb3b8eddb3844db2adb72044dbc0520f1b8e31e1e34586834b7ec499a501d3404e68291f8296aa78657544848e725c12e9b722941e2d52625fce5e99cf4a47'
- 'd6faa67f3ef40052152254ae43fee031365d0b1524aa0718b659eb75afc21a3f79ea8d62d66ea311a800109bed545bc8f79e8752319cd378eef2cbd3a09aba22'
+ 'aaf88ac19f892dc0ab3e19582309c851baab296c7f3edfa47d18460fa12c25b9c08a08143b16d6780b7e5ca57d413c6890df6d3cc0926072dd6d1a476891122b'
+ 'a7ed96ca23a8c0d434514b8d379d17bad8f6db915f92cd982f3abbe70f0035ad190c0b4d1d29157e702ccc06789b1a1fe08e0d8c1cec90d943bc1f5007a9d4e6'
+ '469191c3ff5a458c8d708b1d791bcf0fc7d97446943354717675bed79f4a61f51a51b09f991c5bc71a7bbf3d5333879276a55f9ca8edb6caa9f12aae8ea73d1f'
+ '7ad5be75ee422dda3b80edd2eb614d8a9181e2c8228cd68b3881e2fb95953bf2dea6cbe7900ce1013c9de89b2802574b7b24869fc5d7a95d3cc3112c4d27063a'
+ '4a8b324aee4cccf3a512ad04ce1a272d14e5b05c8de90feb82075f55ea3845948d817e1b0c6f298f5816834ddd3e5ce0a0e2619866289f3c1ab8fd2f35f04f44'
'2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf'
- 'd9d28e02e964704ea96645a5107f8b65cae5f4fb4f537e224e5e3d087fd296cb770c29ac76e0ce95d173bc420ea87fb8f187d616672a60a0cae618b0ef15b8c8'
- '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af'
- 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168'
- 'd5548e5afac67bec1d7bf754179ccad30beb453b3a5562b8c1ce34fc20b4b421528f2c90381803c8fdb8dc7757d801ee54a03f2631bab98e22f66c7d64c82b1e'
+ '5ff744265ad80f6d2bd310b247de86e98854db6d9134cd3a656ef4e90db4cf59c5dadc554e96a8ef8b7677447a0c9623b360cc34a6786078be09ab536f48d3f4'
'SKIP'
- '4fa96f6c40b34c2448be34e794cebbcbe3354c8376c5a305aae9b931bf52a818522ccc91e7c4683481e4d2ba411e928cf5f6c1481666b596993d6ae4ee28eb08'
- '6764e186cd5ba27817bf341cc7350309e14772c9ace5f34b05f10f42785158dc53509c58ae5961d75aae1d814190e8040c7bb2d0c6beee473725d6cc8d32c44e'
- 'cd7548cd7978eff2449a58bbdca40b89a573d8d9faed6f6cf7b4a6d8b45a432d84a2ef8a041524ebb6d89cfc6e2ac1eab88c6e398c0c9b31d31b7f0e8bbee3ac'
- 'ab649ebff6148df15eb6325acd2ddd0c99cc087e4722326bca8d13e70dfa60dbc40da3cb640c1ef2b67ee98b33fda79ee175519e7cc40c2d22def3c347519fd9'
- '95a5a508187ebd551a2931cf8b9848b34b340d8cf725861893c1db4e10e08d8b876a3024398db07be2d76b4c88acb719b60e3d3d52f7569f52d8a799944db742'
- '527fcd12a37bad8113e0fc389e10f665c16a894fa1d2ae3ed0809fe21d18164fd7590b34570f5999d8c1c569f212908db53ef9d8b3783e94eeba75666c5547d9'
- 'd34d69b936266da6c4d80a042f7613d368d97539457f8428727942fc196f32c932dc8dc97c522aa4793711e73b15b963dad9d18d85f930532d9491b4a2b37b96')
-validpgpkeys=(
- '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
- '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P.
- '76298B5BB60EDAD21B362E667585399992435BA4' # Mathias Krause
-)
+ 'ba44aa1252aa1b172e0bc8bbbff864ff60cad6739b2aed2f6a2402848aa65cdb8a8ca6bb9341569b089d60dfd83c3bdd744b5810061ac76b19f0d337afe4cc8d'
+ '738bc2874351d9e1b94319e6caf615b49753155c99dc9318a1ce9eced50f87627a7331762951f55e2bea8abdb97b80a617a08f3f0bc735e56ff831a8bbb19816'
+ 'f45d8d417eb3f4b6e02e337480bd99a8ebb4b9ac004c53a5432255e5841578fb64530663b6eacb3c8f40aaade8e1dc1e584aa1cf4b560103119e4b32e19b66c3'
+ '25ee5d9859d3df2d054fd6d53fe6b8931d6ac9f85533c54f3dd926fce917c81bd96cb3858189a20cf28a32b43efd1566cb5513f7db18a0bb8ead1a4e8a7be6fc'
+ 'a1aa8272760da0c8d2772cc8a57d8600f08db176206afd2a155055d2969bf0295f342a156841964a07de53fbf0356385b604ad75e5556569872dfad1863b2c27'
+ 'b58efc374344d10290371f3dfe8a124f855015d3ce169ccf538e6c1476092abf7ac689f0f10fb6a191fa19545b49ce13957ada066b37415f37dd5989ff93db37'
+ 'd2326e2e3ef6f2f5e911e6ad2fc3ac33b6f53fc5bb03e61d0e8371e6c7199028b226356926472ba676ca68a6cc57d33856c662615ed5b52566570670d0f96c89'
+ 'bc47549f2a79a79659d4d53f739e091c1e8f54cef8c1776be2034675cbb43f584a128607b1d4dd6a9f465706bb1470c6cb4277877dd3218e7280f503babf8300'
+ 'd90f3a3b74d65b84c4c2c229d10d2bb854e39e3429ba1469f8bb286819d559c68e00302de2be5043cf274b39a58686dc822c60afe1c553c4c967ef168d98af05'
+ '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af'
+ 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168')
_kernelname=${pkgbase#linux-libre}
_replacesarchkernel=("${_replacesarchkernel[@]/\%/${_kernelname}}")
@@ -101,45 +104,44 @@ case "${CARCH}" in
esac
prepare() {
- cd "${srcdir}/${_srcname}"
+ cd ${_srcname}
# add upstream patch
if [ "${_pkgbasever}" != "${_pkgver}" ]; then
- patch -p1 -i "${srcdir}/patch-${_pkgbasever}-${_pkgver}"
+ patch -p1 -i ../patch-${_pkgbasever}-${_pkgver}
fi
-
- # add Knock patch
- patch -p1 -i "${srcdir}/tcp_stealth_${_knockpatchver}.diff"
+ # add Knock patch
+ patch -p1 -i ../tcp_stealth_${_knockpatchver}.diff
+
if [ "${CARCH}" = "armv7h" ]; then
- # 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"
+ # 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 ../rcn-libre-${_pkgver%-*}-${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-set-default-cubietruck-led-triggers.patch"
- patch -p1 -i "${srcdir}/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.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-disable-USB3-port-on-ODROID-XU.patch
+ patch -p1 -i ../0009-ARM-dove-enable-ethernet-on-D3Plug.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}
+
+ # security patches
# 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"
@@ -149,7 +151,12 @@ prepare() {
# 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
+ cp -Tf ../config.$CARCH .config
+
+ if [ "${_kernelname}" != "" ]; then
+ sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
+ sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
+ fi
# append pkgrel to extraversion
sed -ri "s|^(EXTRAVERSION =.*\S).*|\1-${pkgrel}|" Makefile
@@ -173,7 +180,7 @@ prepare() {
}
build() {
- cd "${srcdir}/${_srcname}"
+ cd ${_srcname}
if [ "${CARCH}" = "armv7h" ]; then
make ${MAKEFLAGS} LOCALVERSION= zImage modules dtbs
@@ -183,27 +190,27 @@ build() {
}
_package() {
- 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]"
+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'
'openssh-knock: to use SSH with TCP Stealth support')
- provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}" "LINUX-ABI_VERSION=${_archpkgver}")
+ provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}")
conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}")
replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}")
backup=("etc/mkinitcpio.d/${pkgbase}.preset")
install=linux.install
- cd "${srcdir}/${_srcname}"
+ cd ${_srcname}
# get kernel version
_kernver="$(make LOCALVERSION= kernelrelease)"
_basekernel=${_kernver%%-*}
_basekernel=${_basekernel%.*}
- mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
- make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
+ mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
+ make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}/usr" 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}"
@@ -211,46 +218,52 @@ _package() {
cp arch/$KARCH/boot/bzImage "${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
+ # make room for external modules
+ local _extramodules="extramodules-${_basekernel}${_kernelname:--lts}"
+ ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"
- # install pacman hook for initramfs regeneration
- sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" |
- install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook"
+ # add real version for building modules and running depmod from hook
+ echo "${_kernver}" |
+ install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version"
# 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"
+ rm "${pkgdir}"/usr/lib/modules/${_kernver}/{source,build}
- # Now we call depmod...
- depmod -b "${pkgdir}" -F System.map "${_kernver}"
+ # now we call depmod...
+ depmod -b "${pkgdir}/usr" -F System.map "${_kernver}"
- # move module tree /lib -> /usr/lib
- mkdir -p "${pkgdir}/usr"
- mv "${pkgdir}/lib" "${pkgdir}/usr/"
+ # add vmlinux
+ install -Dt "${pkgdir}/usr/lib/modules/${_kernver}/build" -m644 vmlinux
- if [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then
- # add vmlinux
- install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
+ # 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
+ "
+ elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then
+ 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
+
+ # install mkinitcpio preset file
+ sed "${_subst}" ../linux.preset |
+ install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+
+ # install pacman hooks
+ 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"
}
_package-headers() {
@@ -259,139 +272,93 @@ _package-headers() {
conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}")
replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}")
- install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
+ cd ${_srcname}
+ local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
- 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"
+ install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
+ install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
+ mkdir "${_builddir}/.tmp_versions"
- 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
+ cp -t "${_builddir}" -a include scripts
- # 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"
-
- # 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}/"
+ install -Dt "${_builddir}/arch/${KARCH}" -m644 arch/${KARCH}/Makefile
+ install -Dt "${_builddir}/arch/${KARCH}/kernel" -m644 arch/${KARCH}/kernel/asm-offsets.s
+
+ if [[ ${CARCH} = i686 ]]; then
+ install -t "${_builddir}/arch/${KARCH}" -m644 arch/${KARCH}/Makefile_32.cpu
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"
+ cp -t "${_builddir}/arch/${KARCH}" -a arch/${KARCH}/include
- # 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/"
+ install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
+ install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
- # 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:
+ install -Dt "${_builddir}/drivers/media/dvb-core" -m644 drivers/media/dvb-core/*.h
+
# 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/"
+ 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
# 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"
+ mkdir -p "${_builddir}"/{fs/xfs,mm}
# 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}"
- done
+ find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
# 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/
+ 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
+ [[ ${_arch} == */${KARCH}/ ]] && continue
+ rm -r "${_arch}"
+ done
- chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
- find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
+ # 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
+ fi
+ # end of parabola changes
- # 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}";;
- esac
- done
+ # remove now broken symlinks
+ find -L "${_builddir}" -type l -printf 'Removing %P\n' -delete
- # remove unneeded architectures
- find "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch -mindepth 1 -maxdepth 1 -type d -not -name "$KARCH" -exec rm -rf {} +
+ # Fix permissions
+ chmod -R u=rwX,go=rX "${_builddir}"
- # 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"
+ # 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 ;;
+ esac
+ /usr/bin/strip ${_strip} "${_binary}"
+ done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null)
}
_package-docs() {
@@ -400,15 +367,14 @@ _package-docs() {
conflicts=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}")
replaces=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}")
- cd "${srcdir}/${_srcname}"
+ cd ${_srcname}
+ local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
- 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 {} \;
+ mkdir -p "${_builddir}"
+ cp -t "${_builddir}" -a Documentation
- # remove a file already in kernel package
- rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
+ # Fix permissions
+ chmod -R u=rwX,go=rX "${_builddir}"
}
pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
@@ -418,5 +384,3 @@ for _p in ${pkgname[@]}; do
_package${_p#${pkgbase}}
}"
done
-
-# vim:set ts=8 sts=2 sw=2 et: