summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD152
1 files changed, 83 insertions, 69 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 29fc5306efaa..9f05a2ea32bd 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,95 +1,100 @@
-# Maintainer: Matt Parnell/ilikenwf <parwok@gmail.com>
+# Maintainer: Simao Gomes Viana <xdevs23@outlook.com>
+# Original Maintainer: Matt Parnell/ilikenwf <parwok@gmail.com>
# Original PKGBUILD Contributor: Patrick Bartels <p4ddy.b@gmail.com>
# Thanks to Bregol
-pkgname="linux-zen"
-pkgver=4.0.0+507377+g7a1a41c
-pkgdesc="Featureful kernel including various new features, code and optimizations to better suit desktops"
-url="http://www.zen-kernel.org"
+pkgname="linux-nitrous-git"
+pkgver=5.3.8
+pkgdesc="Modified linux-nitrous kernel optimized for Haswell (and newer) compiled using clang"
+url="https://gitlab.com/xdevs23/linux-nitrous"
license=("GPL2")
-makedepends=("git")
-true && pkgbase="linux-zen"
-true && pkgname=("linux-zen" "linux-zen-headers")
-arch=("i686" "x86_64")
+makedepends=("git" "coreutils")
+true && pkgbase="linux-nitrous-git"
+true && pkgname=("linux-nitrous-git" "linux-nitrous-git-headers")
+arch=("x86_64")
pkgrel=1
options=("!strip")
-source=("linux-zen.conf"
- "linux-zen.preset"
- 'git://github.com/damentz/zen-kernel.git#branch=4.0/master')
+source=("linux-nitrous.conf"
+ "linux-nitrous.preset"
+ 'git+https://gitlab.com/xdevs23/linux-nitrous#branch=v5.3+')
sha256sums=('6373073ad943e068478ef1373be4eb2a7e473da8743d946f1f50cd364685ab87'
- '18fe6b2664a9a740544c4cb990efe5ec933d6e64caf9e5d0a6ced92af0027c2d'
+ '54bc90a27bb2f42aff4a460c26f88f44e2a2f6c19ec51e7fcac83c4cd1fb9968'
'SKIP')
-_CORES=1
+_CORES=$(nproc --all)
# compress the modules or not
_compress="y"
+# don't compress the package - we're just going to uncompress during install in a moment
+PKGEXT='.pkg.tar'
+
prepare() {
- cd "${srcdir}/zen-kernel"
+ cd "${srcdir}/linux-nitrous"
# Number of CPU Cores
- _CORES=$(cat /proc/cpuinfo|grep processor|wc -l)
if [ $_CORES -lt 1 ]; then
_CORES=2
fi
+
+ git reset --hard
}
pkgver() {
- cd "${srcdir}/zen-kernel"
+ cd "${srcdir}/linux-nitrous"
eval $(grep -o "^\(VERSION\|PATCHLEVEL\|SUBLEVEL\) = [0-9a-zA-Z_-]\+" Makefile | tr -d \ )
- printf "%s.%s.%s+%s+g%s" $VERSION $PATCHLEVEL $SUBLEVEL "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+ printf "%s.%s.%s" $VERSION $PATCHLEVEL $SUBLEVEL
}
build() {
- cd "${srcdir}/zen-kernel"
+ cd "${srcdir}/linux-nitrous"
# don't run depmod on 'make install'. We'll do this ourselves in packaging
sed -i '2iexit 0' scripts/depmod.sh
- if [ -e "${srcdir}/build/.config" ]; then
- msg2 "Using existing config found in build environment..."
+ if [ ! -d "${srcdir}/build" ]; then
+ msg2 "Creating build directory..."
+ mkdir -p "${srcdir}/build"
else
- if [ ! -d "${srcdir}/build" ]; then
- msg2 "Creating build directory..."
- mkdir -p "${srcdir}/build"
+ if [ -f "${srcdir}/build/.config" ]; then
+ msg "Cleaning build directory"
+
+ rm -rf "${srcdir}/build"
+
+ cd "${srcdir}/linux-nitrous"
+ make clean &> /dev/null
+ make mrproper &> /dev/null
+
+ msg "Generating new config"
+ make -C "${srcdir}/linux-nitrous/" O="${srcdir}/build" CC=clang nitrous_defconfig > /dev/null
fi
+ fi
- msg2 "Creating default config..." # also initializes the output directory
- make -C "${srcdir}/zen-kernel/" O="${srcdir}/build" defconfig > /dev/null
-
- warning "This package does not ship a kernel config."
-
- plain ""
- warning "Thus it is up to you to create a one that fits your needs."
- warning "Navigate to '${srcdir}/build'"
- warning "and either run 'make menuconfig' or if you want to use an existing config,"
- warning "save it as '.config' and run 'make oldconfig' in order to update it."
- warning "Having done that you can run 'makepkg' again."
- plain ""
-
- return 1
+ if [ ! -f "${srcdir}/build/.config" ]; then
+ msg2 "Generating config..."
+ make -C "${srcdir}/linux-nitrous/" O="${srcdir}/build" CC=clang nitrous_defconfig > /dev/null
fi
msg2 "Updating output directory Makefile..."
- make -C "${srcdir}/zen-kernel/" O="${srcdir}/build" outputmakefile
+ make -C "${srcdir}/linux-nitrous/" O="${srcdir}/build" CC=clang outputmakefile
warning "Press ENTER if you want to build the kernel or CTRL+C to abort..."
read
-
+
cd "${srcdir}/build"
- msg2 "Building kernel..."; make -j $_CORES bzImage
- msg2 "Building modules..."; make -j $_CORES modules
+
+ msg2 "Building kernel..."; make -j$_CORES CC=clang bzImage
+ msg2 "Building modules..."; make -j$_CORES CC=clang modules
}
-package_linux-zen() {
+package_linux-nitrous-git() {
depends=("coreutils" "linux-firmware" "kmod" "mkinitcpio>=0.5.20")
- optdepends=("linux-zen-headers: to build third party modules such as NVIDIA drivers or OSSv4"
+ provides=("linux-nitrous" "linux-nitrous-git")
+ optdepends=("linux-nitrous-git-headers: to build third party modules such as NVIDIA drivers or OSSv4"
"crda: to set the correct wireless channels of your country")
- backup=(etc/mkinitcpio.d/linux-zen.conf)
- install=linux-zen.install
+ backup=(etc/mkinitcpio.d/linux-nitrous.conf)
+ install=linux-nitrous.install
msg2 "Determining kernel name..."
- cd "${srcdir}/zen-kernel"
- cp "${srcdir}/build/.config" "./"
+ cd "${srcdir}/build"
_kernver="$(make kernelrelease -s)"
msg2 "Kernel release name is: $_kernver"
@@ -99,7 +104,7 @@ package_linux-zen() {
cd "${srcdir}/build"
msg2 "Installing kernel image..."
- install -D -m644 "arch/x86/boot/bzImage" "$pkgdir/boot/vmlinuz-linux-zen"
+ install -D -m644 "arch/x86/boot/bzImage" "$pkgdir/boot/vmlinuz-linux-nitrous"
msg2 "Installing modules (and firmware files)..."
make INSTALL_MOD_PATH="$pkgdir" modules_install
@@ -122,22 +127,29 @@ package_linux-zen() {
# add real version for building modules and running depmod from post_install/upgrade
mkdir -p "${pkgdir}/usr/lib/modules/extramodules-${_kernver}"
echo "${_kernver}" > "${pkgdir}/usr/lib/modules/extramodules-${_kernver}/version"
+
+ # symlink extra
+ mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}"
+ cd "${pkgdir}/usr/lib/modules/${_kernver}"
+ ln -s "../extramodules-${_kernver}" "./extramodules"
+
+ cd "${srcdir}/build"
msg2 "Removing links to source and build directory..."
rm "$pkgdir/lib/modules/$_kernver/"{build,source}
msg2 "Updating kernel version in install script..."
sed -i "s/_kernel_version=.*/_kernel_version=$_kernver/" \
- "$startdir/linux-zen.install"
+ "$startdir/linux-nitrous.install"
msg2 "Installing files for mkinitcpio..."
- install -D -m644 "${srcdir}/linux-zen.conf" \
- "$pkgdir/etc/mkinitcpio.d/linux-zen.conf"
+ install -D -m644 "${srcdir}/linux-nitrous.conf" \
+ "$pkgdir/etc/mkinitcpio.d/linux-nitrous.conf"
- install -D -m644 "${srcdir}/linux-zen.preset" \
- "$pkgdir/etc/mkinitcpio.d/linux-zen.preset"
+ install -D -m644 "${srcdir}/linux-nitrous.preset" \
+ "$pkgdir/etc/mkinitcpio.d/linux-nitrous.preset"
sed -i "s/^ALL_kver=.*$/ALL_kver=$_kernver/" \
- "$pkgdir/etc/mkinitcpio.d/linux-zen.preset"
+ "$pkgdir/etc/mkinitcpio.d/linux-nitrous.preset"
# Now we call depmod...
depmod -b "$pkgdir" -F System.map "$_kernver"
@@ -149,37 +161,39 @@ package_linux-zen() {
find "$pkgdir" -type d -name .git -exec rm -r '{}' +
}
-package_linux-zen-headers() {
+package_linux-nitrous-git-headers() {
# AUR workaround
- true && pkgdesc="Header files and scripts for building modules for linux-zen"
- true && depends=("linux-zen")
- true && provides=("linux-headers")
+ true && pkgdesc="Header files and scripts for building modules for linux-nitrous"
+ true && depends=("linux-nitrous-git")
+ true && conflicts=("linux-nitrous-headers")
+ true && provides=("linux-headers linux-nitrous-git-headers linux-nitrous-headers")
_srcdir="/usr/src/linux-$_kernver"
msg2 "Installing files necessary for 3rd party modules such as NVIDIA drivers or OSSv4..."
- mkdir -p "${pkgdir}/usr/src/linux-$_kernver/"{arch/x86,include}
-
- install -D -m644 "${srcdir}/zen-kernel/Makefile" "${pkgdir}/usr/src/linux-$_kernver/Makefile"
- install -D -m644 "${srcdir}/zen-kernel/kernel/Makefile" "${pkgdir}/usr/src/linux-$_kernver/kernel/Makefile"
+ mkdir -p "${pkgdir}/usr/src/linux-$_kernver/"{arch/x86,include,tools/objtool}
+
+ install -D -m755 "${srcdir}/build/tools/objtool/objtool" "${pkgdir}/usr/src/linux-$_kernver/tools/objtool/objtool"
+ install -D -m644 "${srcdir}/linux-nitrous/Makefile" "${pkgdir}/usr/src/linux-$_kernver/Makefile"
+ install -D -m644 "${srcdir}/linux-nitrous/kernel/Makefile" "${pkgdir}/usr/src/linux-$_kernver/kernel/Makefile"
install -D -m644 "${srcdir}/build/.config" "${pkgdir}/usr/src/linux-$_kernver/.config"
install -D -m644 "${srcdir}/build/Module.symvers" "${pkgdir}/usr/src/linux-$_kernver/Module.symvers"
install -D -m644 "${srcdir}/build/include/generated/uapi/linux/version.h" "${pkgdir}/usr/src/linux-$_kernver/include/linux/version.h"
install -D -m644 "${srcdir}/build/arch/x86/kernel/asm-offsets.s" "${pkgdir}/usr/src/linux-$_kernver/arch/x86/kernel/asm-offsets.s"
- install -D -m644 "${srcdir}/zen-kernel/arch/x86/Makefile" "${pkgdir}/usr/src/linux-$_kernver/arch/x86/Makefile"
+ install -D -m644 "${srcdir}/linux-nitrous/arch/x86/Makefile" "${pkgdir}/usr/src/linux-$_kernver/arch/x86/Makefile"
if [ "$CARCH" = "i686" ]; then
- install -D -m644 "${srcdir}/zen-kernel/arch/x86/Makefile_32.cpu" "${pkgdir}/usr/src/linux-$_kernver/arch/x86/Makefile_32.cpu"
+ install -D -m644 "${srcdir}/linux-nitrous/arch/x86/Makefile_32.cpu" "${pkgdir}/usr/src/linux-$_kernver/arch/x86/Makefile_32.cpu"
fi
- cp -a "${srcdir}/zen-kernel/scripts" "${pkgdir}/usr/src/linux-$_kernver"
+ cp -a "${srcdir}/linux-nitrous/scripts" "${pkgdir}/usr/src/linux-$_kernver"
cp -a "${srcdir}/build/scripts" "${pkgdir}/usr/src/linux-$_kernver"
- cp -a "${srcdir}/zen-kernel/include" "${pkgdir}/usr/src/linux-$_kernver"
+ cp -a "${srcdir}/linux-nitrous/include" "${pkgdir}/usr/src/linux-$_kernver"
cp -a "${srcdir}/build/include/"{generated,config} "${pkgdir}/usr/src/linux-$_kernver/include"
- cp -a "${srcdir}/zen-kernel/arch/x86/include" "${pkgdir}/usr/src/linux-$_kernver/arch/x86"
+ cp -a "${srcdir}/linux-nitrous/arch/x86/include" "${pkgdir}/usr/src/linux-$_kernver/arch/x86"
cp -a "${srcdir}/build/arch/x86/include" "${pkgdir}/usr/src/linux-$_kernver/arch/x86"
- cd "${srcdir}/zen-kernel"
+ cd "${srcdir}/linux-nitrous"
{
find drivers -type f -name "*.h";
find . -type f -name "Kconfig*";