summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorAndrey Alekseev2020-09-06 16:32:00 +0400
committerAndrey Alekseev2020-09-06 16:32:00 +0400
commitd0922d87e4ea90e985ff74a03d48bff11040ea22 (patch)
treeb1dd50e9de23342cc12d2944265c131312d50c0e /PKGBUILD
downloadaur-d0922d87e4ea90e985ff74a03d48bff11040ea22.tar.gz
Initial import
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD275
1 files changed, 275 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ed78e9aebce3
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,275 @@
+# Contributor: Andrey Alekseev <andrey.android7890@gmail.com>
+# used original PKGBUILD from Manjaro linux: https://gitlab.manjaro.org/packages/core/linux58
+# https://aur.archlinux.org/packages/linux-xanmod/
+# see "PKGBUILD_change.patch" for details
+
+
+# Maintainer: Philip Müller <philm[at]manjaro[dot]org>
+# Maintainer: Bernhard Landauer <bernhard[at]manjaro[dot]org>
+# Maintainer: Helmut Stult <helmut[at]manjaro[dot]org>
+
+# Arch credits:
+# Tobias Powalowski <tpowa@archlinux.org>
+# Thomas Baechler <thomas@archlinux.org>
+
+# Cloud Server
+_server=cpx51
+
+pkgbase=linux-manjaro-xanmod
+pkgname=("${pkgbase}" "${pkgbase}-headers")
+_kernelname=-MANJARO-Xanmod
+_basekernel=5.8
+_basever=58
+_aufs=20200622
+pkgver=5.8.6
+pkgrel=1
+arch=('x86_64')
+url="http://www.kernel.org/"
+license=('custom')
+makedepends=('bc'
+ 'docbook-xsl'
+ 'elfutils'
+ 'git'
+ 'inetutils'
+ 'kmod'
+ 'xmlto')
+options=('!strip')
+source=("https://www.kernel.org/pub/linux/kernel/v5.x/linux-${_basekernel}.tar.xz"
+ "https://www.kernel.org/pub/linux/kernel/v5.x/patch-${pkgver}.xz"
+ #xanmod patch
+ "https://github.com/xanmod/linux/releases/download/${pkgver}-xanmod${xanmod}/patch-${pkgver}-xanmod${xanmod}.xz"
+ #
+ "https://aur.archlinux.org/cgit/aur.git/tree/choose-gcc-optimization.sh?h=linux-xanmod"
+ # the main kernel config files
+ 'config' 'config.aufs' 'config.anbox'
+ # ARCH Patches
+ '0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch'
+ # MANJARO Patches
+ '0001-i2c-nuvoton-nc677x-hwmon-driver.patch'
+ '0001-iomap-iomap_bmap-should-accept-unwritten-maps.patch'
+ '0001-futex.patch'
+ '0001-apparmor-patch-to-provide-compatibility-with-v2-net-rules.patch'
+ '0002-apparmor-af_unix-mediation.patch'
+ '0003-apparmor-fix-use-after-free-in-sk_peer_label.patch'
+ '0004-apparmor-fix-apparmor-mediating-locking-non-fs-unix-sockets.patch'
+
+ # Lenovo + AMD
+ '0001-lenovo-wmi2.patch'
+ '0002-pinctrl-amd.patch'
+
+ # Temp Fixes
+ 'virtualbox-temp.patch'
+
+ # Bootsplash
+ '0001-bootsplash.patch'
+ '0002-bootsplash.patch'
+ '0003-bootsplash.patch'
+ '0004-bootsplash.patch'
+ '0005-bootsplash.patch'
+ '0006-bootsplash.patch'
+ '0007-bootsplash.patch'
+ '0008-bootsplash.patch'
+ '0009-bootsplash.patch'
+ '0010-bootsplash.patch'
+ '0011-bootsplash.patch'
+ '0012-bootsplash.patch'
+ '0013-bootsplash.gitpatch')
+sha256sums=('e7f75186aa0642114af8f19d99559937300ca27acaf7451b36d4f9b0f85cf1f5'
+ 'b4ab9987a715753e64f0aa264dac91c3d7ca0651bfdd8fa5d19c8990f3b08abc'
+ 'SKIP'
+ 'SKIP'
+ '0ecba3688f213c56b443145c5ffcf3ddfbe9cb0ee4c1fc4bd1351266224ad997'
+ 'b44d81446d8b53d5637287c30ae3eb64cae0078c3fbc45fcf1081dd6699818b5'
+ 'c079a87a7de0001f5f2b7a42a822c262e31f19f2c547613885f273822c9d4dcc'
+ '986f8d802f37b72a54256f0ab84da83cb229388d58c0b6750f7c770818a18421'
+ '7823d7488f42bc4ed7dfae6d1014dbde679d8b862c9a3697a39ba0dae5918978'
+ '95745075edd597caa92b369cfbcd11a04c9e3c88c0c987c70114924e1e01df5c'
+ '78dde51123a21ec5efe9c420b309d03263001dafd8684f71c167f02e3f504f9e'
+ '98202b8ad70d02d86603294bae967874fa7b18704b5c7b867568b0fd33a08921'
+ '5cbbf3db9ea3205e9b89fe3049bea6dd626181db0cb0dc461e4cf5a400c68dd6'
+ 'c7dbec875d0c1d6782c037a1dcefff2e5bdb5fc9dffac1beea07dd8c1bdef1d7'
+ '77746aea71ffb06c685e7769b49c78e29af9b2e28209cd245e95d9cbb0dba3c9'
+ '1d58ef2991c625f6f0eb33b4cb8303932f53f1c4694e42bae24c9cd36d2ad013'
+ '427fd41ac742110d413f01daba66d5cd023b8e63fdc63242fcc96f589e66867f'
+ 'c98893aafd51e83107bb6823cbe3c63ee85c00f439c1facaed3b6ab3c0490e98'
+ 'a504f6cf84094e08eaa3cc5b28440261797bf4f06f04993ee46a20628ff2b53c'
+ 'e096b127a5208f56d368d2cb938933454d7200d70c86b763aa22c38e0ddb8717'
+ '8c1c880f2caa9c7ae43281a35410203887ea8eae750fe8d360d0c8bf80fcc6e0'
+ '1144d51e5eb980fceeec16004f3645ed04a60fac9e0c7cf88a15c5c1e7a4b89e'
+ 'dd4b69def2efacf4a6c442202ad5cb93d492c03886d7c61de87696e5a83e2846'
+ '028b07f0c954f70ca37237b62e04103e81f7c658bb8bd65d7d3c2ace301297dc'
+ 'c8b0cb231659d33c3cfaed4b1f8d7c8305ab170bdd4c77fce85270d7b6a68000'
+ '8dbb5ab3cb99e48d97d4e2f2e3df5d0de66f3721b4f7fd94a708089f53245c77'
+ 'a7aefeacf22c600fafd9e040a985a913643095db7272c296b77a0a651c6a140a'
+ 'e9f22cbb542591087d2d66dc6dc912b1434330ba3cd13d2df741d869a2c31e89'
+ '27471eee564ca3149dd271b0817719b5565a9594dc4d884fe3dc51a5f03832bc'
+ '60e295601e4fb33d9bf65f198c54c7eb07c0d1e91e2ad1e0dd6cd6e142cb266d'
+ '035ea4b2a7621054f4560471f45336b981538a40172d8f17285910d4e0e0b3ef')
+prepare() {
+ cd "${srcdir}/linux-${_basekernel}"
+
+ # Let's user choose microarchitecture optimization in GCC
+ sh ${srcdir}/choose-gcc-optimization.sh $_microarchitecture
+
+ # add upstream patch
+ msg "add upstream patch"
+ patch -p1 -i "${srcdir}/patch-${pkgver}"
+
+ local src
+ for src in "${source[@]}"; do
+ src="${src%%::*}"
+ src="${src##*/}"
+ [[ $src = *.patch ]] || continue
+ msg2 "Applying patch: $src..."
+ patch -Np1 < "../$src"
+ done
+
+ msg2 "0013-bootsplash"
+ git apply -p1 < "${srcdir}/0013-bootsplash.gitpatch"
+
+ cat "${srcdir}/config" > ./.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
+
+ msg "set extraversion to pkgrel"
+ sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
+
+ msg "don't run depmod on 'make install'"
+ # We'll do this ourselves in packaging
+ sed -i '2iexit 0' scripts/depmod.sh
+
+ msg "get kernel version"
+ make prepare
+
+ # 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
+
+ msg "rewrite configuration"
+ yes "" | make config >/dev/null
+}
+
+build() {
+ cd "${srcdir}/linux-${_basekernel}"
+
+ msg "build"
+ make ${MAKEFLAGS} LOCALVERSION= bzImage modules
+}
+
+package_linux-manjaro-xanmod() {
+ pkgdesc="The Linux kernel and modules with Xanmod patches"
+ depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=27')
+ optdepends=('crda: to set the correct wireless channels of your country')
+ provides=("linux=${pkgver}" VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE)
+
+ cd "${srcdir}/linux-${_basekernel}"
+
+ KARCH=x86
+
+ # get kernel version
+ _kernver="$(make LOCALVERSION= kernelrelease)"
+
+ mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
+ make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}/usr" INSTALL_MOD_STRIP=1 modules_install
+
+ # systemd expects to find the kernel here to allow hibernation
+ # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
+ cp arch/$KARCH/boot/bzImage "${pkgdir}/usr/lib/modules/${_kernver}/vmlinuz"
+
+ # Used by mkinitcpio to name the kernel
+ echo "${pkgbase}" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_kernver}/pkgbase"
+ echo "${_basekernel}-${CARCH}" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_kernver}/kernelbase"
+
+ # add kernel version
+ echo "${pkgver}-${pkgrel}-MANJARO x64" > "${pkgdir}/boot/${pkgbase}-${CARCH}.kver"
+
+ # make room for external modules
+ local _extramodules="extramodules-${_basekernel}${_kernelname:--MANJARO}"
+ ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"
+
+ # 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 "${pkgdir}"/usr/lib/modules/${_kernver}/{source,build}
+
+ # now we call depmod...
+ depmod -b "${pkgdir}/usr" -F System.map "${_kernver}"
+
+ # add vmlinux
+ install -Dt "${pkgdir}/usr/lib/modules/${_kernver}/build" -m644 vmlinux
+}
+
+package_linux-manjaro-xanmod-headers() {
+ pkgdesc="Header files and scripts for building modules for ${pkgbase} kernel"
+ provides=("linux-headers=$pkgver")
+
+ cd "${srcdir}/linux-${_basekernel}"
+ local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
+
+ install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
+ install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
+
+ mkdir "${_builddir}/.tmp_versions"
+
+ cp -t "${_builddir}" -a include scripts
+
+ install -Dt "${_builddir}/arch/${KARCH}" -m644 "arch/${KARCH}/Makefile"
+ install -Dt "${_builddir}/arch/${KARCH}/kernel" -m644 "arch/${KARCH}/kernel/asm-offsets.s"
+ #install -Dt "${_builddir}/arch/${KARCH}/kernel" -m644 "arch/${KARCH}/kernel/macros.s"
+
+ cp -t "${_builddir}/arch/${KARCH}" -a "arch/${KARCH}/include"
+
+ install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
+ install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
+
+ # http://bugs.archlinux.org/task/13146
+ install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
+
+ # 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
+
+ # add xfs and shmem for aufs building
+ mkdir -p "${_builddir}"/{fs/xfs,mm}
+
+ # copy in Kconfig files
+ find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
+
+ # add objtool for external module building and enabled VALIDATION_STACK option
+ install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool
+
+ # remove unneeded architectures
+ local _arch
+ for _arch in "${_builddir}"/arch/*/; do
+ [[ ${_arch} == */x86/ ]] && continue
+ rm -r "${_arch}"
+ done
+
+ # remove files already in linux-docs package
+ rm -r "${_builddir}/Documentation"
+
+ # Fix permissions
+ chmod -R u=rwX,go=rX "${_builddir}"
+
+ # 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)
+}