summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD580
1 files changed, 284 insertions, 296 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 723b05e56343..5d406a6114e3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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:
-