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/PKGBUILD324
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}() {