Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

7 changed files with 167 additions and 344 deletions

View file

@ -1,6 +1,6 @@
pkgbase = linux-clear pkgbase = linux-clear
pkgdesc = Linux kernel with patches from Clear Linux which allow for higher performance. pkgdesc = Linux kernel with patches from Clear Linux which allow for higher performance.
pkgver = 6.13.2 pkgver = 6.11.7
pkgrel = 1 pkgrel = 1
url = https://git.staropensource.de/JeremyStarTM/aur-linux-clear url = https://git.staropensource.de/JeremyStarTM/aur-linux-clear
arch = x86_64 arch = x86_64
@ -18,18 +18,18 @@ pkgbase = linux-clear
makedepends = zstd makedepends = zstd
options = !strip options = !strip
options = !debug options = !debug
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.13.tar.xz source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.11.tar.xz
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.13.tar.sign source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.11.tar.sign
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.13.2.xz source = https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.11.7.xz
source = cl-linux::git+https://github.com/clearlinux-pkgs/linux.git#tag=6.13.1-1540 source = cl-linux::git+https://github.com/clearlinux-pkgs/linux.git#tag=6.11.6-1477
source = more-uarches-20241018.tar.gz::https://github.com/graysky2/kernel_compiler_patch/archive/20241018.tar.gz source = more-uarches-20241018.tar.gz::https://github.com/graysky2/kernel_compiler_patch/archive/20241018.tar.gz
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
validpgpkeys = E27E5D8A3403A2EF66873BBCDEA66FF797772CDC validpgpkeys = E27E5D8A3403A2EF66873BBCDEA66FF797772CDC
validpgpkeys = AC2B29BD34A6AFDDB3F68F35E7BFC8EC95861109 validpgpkeys = AC2B29BD34A6AFDDB3F68F35E7BFC8EC95861109
sha256sums = e79dcc6eb86695c6babfb07c2861912b635d5075c6cd1cd0567d1ea155f80d6e sha256sums = 55d2c6c025ebc27810c748d66325dd5bc601e8d32f8581d9e77673529bdacb2e
sha256sums = SKIP sha256sums = SKIP
sha256sums = 20803fd927b70f81f74d43108f1e9048aa429b970a307c522e929061d500f249 sha256sums = 4ccabe59805d7efd8165405624695255a87811cbea5c0e1d7a3981c21789b2ec
sha256sums = SKIP sha256sums = SKIP
sha256sums = b3fd8b1c5bbd39a577afcccf6f1119fdf83f6d72119f4c0811801bdd51d1bc61 sha256sums = b3fd8b1c5bbd39a577afcccf6f1119fdf83f6d72119f4c0811801bdd51d1bc61

1
.gitignore vendored
View file

@ -1,6 +1,5 @@
cl-linux cl-linux
src src
pkg
*.sign *.sign
*.xz *.xz
*.gz *.gz

16
LICENSE
View file

@ -1,16 +0,0 @@
BSD Zero Clause License
Copyright (c) 2018-2024 by Josip Ponjavic <josipponjavic@gmail.com>
Copyright (c) 2024 by JeremyStarTM <jeremystartm@staropensource.de>
Copyright (c) 2024 by Yaraslau Furman <yaro330@gmail.com>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

View file

@ -1,3 +0,0 @@
# Maintainers
- [JeremyStarTM](https://git.staropensource.de/JeremyStarTM) <jeremystartm (at) staropensource (dot) de>
- [yarost12](https://git.staropensource.de/yarost12) <yaro330 (at) gmail (com) com>

241
PKGBUILD
View file

@ -1,12 +1,5 @@
#!/usr/bin/env bash # Maintainer: JeremyStarTM <jeremystartm@staropensource.de>
# shellcheck disable=SC2034 disable=SC2048 disable=SC2086 disable=SC2154 # Maintainer: Josip Ponjavic <josipponjavic at gmail dot com>
# This PKGBUILD is/was authored by:
# - JeremyStarTM <jeremystartm@staropensource.de>
# - yarost12 <yaro330@gmail.com>
# - Josip Ponjavic <josipponjavic at gmail dot com>
#
# For a list of maintainers see MAINTAINERS.md
### BUILD OPTIONS ### BUILD OPTIONS
# You can modify these settings by executing "env _<setting>=<value> makepkg" # You can modify these settings by executing "env _<setting>=<value> makepkg"
@ -39,17 +32,6 @@
# Set to anything but null to activate. # Set to anything but null to activate.
: "${_use_current:=""}" : "${_use_current:=""}"
# Apply selected optimizations chosen by
# the package maintainers to the config.
#
# Only takes effect if '_use_current'
# is enabled. Keep disabled if you want
# to reuse your existing kernel configuration
# without any changes being applied to it.
#
# Set to anything but null to activate.
: "${_optimize_defconfig:=""}"
# Determines whether the kernel configuration should be # Determines whether the kernel configuration should be
# copied into the source tree before compilation starts. # copied into the source tree before compilation starts.
# #
@ -66,17 +48,9 @@
# Set to anything but null to activate. # Set to anything but null to activate.
: "${_localmodcfg:=""}" : "${_localmodcfg:=""}"
# Optionally select a sub architecture by number or its Kconfig name, # Optionally select a sub architecture by number or
# for example MCORE2 or MZEN4. # leave blank, which will require user interaction during the build.
# # Note that the default option is 41.
# Leaving it blank will require user interaction during the build.
# Note that the default option is empty.
#
# Important notice for maintainers:
# Make sure to update the '_subarch'
# section inside update_defconfig()
# if this list is updated on updating
# the kernel compiler patchset.
# #
# 1. AMD Opteron/Athlon64/Hammer/K8 (MK8) # 1. AMD Opteron/Athlon64/Hammer/K8 (MK8)
# 2. AMD Opteron/Athlon64/Hammer/K8 with SSE3 (MK8SSE3) # 2. AMD Opteron/Athlon64/Hammer/K8 with SSE3 (MK8SSE3)
@ -123,18 +97,6 @@
# 43. AMD-Native optimizations autodetected by the compiler (MNATIVE_AMD) # 43. AMD-Native optimizations autodetected by the compiler (MNATIVE_AMD)
: "${_subarch:=""}" : "${_subarch:=""}"
# Selects the x86-64 microarchitecture to compile for.
# This value is only used by the GENERIC_CPU
# subarchitecture and is required.
# Can be either '1', '2', '3' or '4'
#
# Set to '1' by default
#
# For more information see:
# https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
: "${_subarch_microarch:="1"}"
# Enable compilation with LLVM # Enable compilation with LLVM
# Be warned, this is largely untested by me (JeremyStarTM). It *should* work, # Be warned, this is largely untested by me (JeremyStarTM). It *should* work,
# but if it doesn't, write a comment and I'll fix it. # but if it doesn't, write a comment and I'll fix it.
@ -151,37 +113,18 @@
# Set to anything but null to activate. # Set to anything but null to activate.
: "${_debug:=""}" : "${_debug:=""}"
# Show full compilation output
# Enabling this will cause 'make' to display
# all targets currently compiling instead of
# the 'pv' magic we're doing.
#
# Active by default.
# Set to 'n' or 'false' to show the 'pv' output.
: "${_show_compile:="y"}"
### BUILD OPTIONS END ### BUILD OPTIONS END
### DEPRECATED BUILD OPTIONS START
# See '_use_current'
: "${_reuse_current:=""}"
# See '_optimize_defconfig'
: "${_update_kconfig_on_reuse:=""}"
### DEPRECATED BUILD OPTIONS END
# Kernel version # Kernel version
_kernel_major=6.13 _kernel_major=6.11
_kernel_minor=2 _kernel_minor=7
# Clear Linux patches version # Clear Linux patches version
_clr=6.13.1-1540 _clr=6-1477
# kernel_compiler_patch version # kernel_compiler_patch version
_kernelcompilerpatch="20241018" _kernelcompilerpatch="20241018"
# Source directory names # Source directory names
_src_linux=linux-${_kernel_major} _src_linux=linux-${_kernel_major}
_src_clr=${_kernel_major}.${_clr}
# Package information # Package information
pkgbase=linux-clear pkgbase=linux-clear
@ -193,37 +136,25 @@ url="https://git.staropensource.de/JeremyStarTM/aur-linux-clear"
license=(GPL-2.0-only) license=(GPL-2.0-only)
makedepends=("bc" "cpio" "gettext" "git" "libelf" "pahole" "perl" "python" "tar" "xz" "zstd") makedepends=("bc" "cpio" "gettext" "git" "libelf" "pahole" "perl" "python" "tar" "xz" "zstd")
[[ -n "${_use_llvm_to}" ]] && makedepends+=("clang" "llvm" "lld") [[ -n "${_use_llvm_to}" ]] && makedepends+=("clang" "llvm" "lld")
[[ -z "${_show_compile}" ]] && makedepends+=("pv")
options=("!strip" "!debug") options=("!strip" "!debug")
[[ "${_debug}" == "y" ]] && options=("!strip") [[ "${_debug}" == "y" ]] && options=("!strip")
source=( source=(
"https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${_kernel_major}.tar.xz" "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${_kernel_major}.tar.xz"
"https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${_kernel_major}.tar.sign" "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${_kernel_major}.tar.sign"
"https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-${_kernel_major}.${_kernel_minor}.xz" "https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-${_kernel_major}.${_kernel_minor}.xz"
"cl-linux::git+https://github.com/clearlinux-pkgs/linux.git#tag=${_clr}" "cl-linux::git+https://github.com/clearlinux-pkgs/linux.git#tag=${_src_clr}"
"more-uarches-${_kernelcompilerpatch}.tar.gz::https://github.com/graysky2/kernel_compiler_patch/archive/${_kernelcompilerpatch}.tar.gz" "more-uarches-${_kernelcompilerpatch}.tar.gz::https://github.com/graysky2/kernel_compiler_patch/archive/${_kernelcompilerpatch}.tar.gz"
) )
[[ -n "${_use_llvm_lto}" ]] && BUILD_FLAGS=("LLVM=1" "LLVM_IAS=1") [[ -n "${_use_llvm_lto}" ]] && BUILD_FLAGS=("LLVM=1" "LLVM_IAS=1")
export "KBUILD_BUILD_HOST=archlinux" export KBUILD_BUILD_HOST=archlinux
export "KBUILD_BUILD_USER=${pkgbase}" export KBUILD_BUILD_USER=${pkgbase}
export "KBUILD_BUILD_TIMESTAMP=$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
# Check for deprecated settings prepare() {
_check_deprecated_settings() { cd "${_src_linux}" || exit 1
if [ -n "${_update_kconfig_on_reuse}" ]; then
warning "Please switch to using '_update_kconfig_on_reuse' flag instead of '_optimize_defconfig'"
_optimize_defconfig="y"
fi
if [ -n "${_reuse_current}" ]; then
warning "Please switch to using '_use_current' flag instead of '_reuse_current'"
_use_current="y"
fi
}
# Applies all patches
_apply_patches() {
# Patch with kernel version patches # Patch with kernel version patches
patch -Np1 -i ../patch-${_kernel_major}.${_kernel_minor} || true patch -Np1 -i ../patch-${_kernel_major}.${_kernel_minor} || true
@ -242,41 +173,6 @@ _apply_patches() {
patch -Np1 -i "${srcdir}/cl-linux/${i}" || true patch -Np1 -i "${srcdir}/cl-linux/${i}" || true
done done
# Patch with kernel_compiler_patch patches.
# Do this before any defconfig invocations so we
# have all of the extra selectable uarches ready and selectable
patch -Np1 -i "$srcdir/kernel_compiler_patch-$_kernelcompilerpatch/more-ISA-levels-and-uarches-for-kernel-6.1.79+.patch"
}
# Allows user to modify the kernel config
_modify_defconfig() {
[[ -n "$_makemenuconfig" ]] && make ${BUILD_FLAGS[*]} menuconfig
[[ -n "$_makexconfig" ]] && make ${BUILD_FLAGS[*]} xconfig
[[ -n "$_makenconfig" ]] && make ${BUILD_FLAGS[*]} nconfig
# Don't crash if all three are false
true
}
# Copies the kernel config
_copy_defconfig() {
local _cur_major_ver="$(uname -r | grep -o '[0-9]*[0-9]\.[0-9]*[0-9]')"
[[ "${_cur_major_ver}" != "${_kernel_major}" ]] &&
warning "Major version was updated, you should regen the defconfig"
if [[ -s /proc/config.gz ]]; then
# modprobe configs
zcat /proc/config.gz > ./.config
make ${BUILD_FLAGS[*]} olddefconfig
else
warning "Your kernel was not compiled with IKCONFIG_PROC."
warning "Unable to read kernel configuration, aborting."
exit
fi
}
# Updates the kernel config
_update_defconfig() {
# Copy configuration file (if found) # Copy configuration file (if found)
if [ -f "${startdir}/kconfig" ]; then if [ -f "${startdir}/kconfig" ]; then
echo ":: Using configuration file \"${startdir}/kconfig\"" echo ":: Using configuration file \"${startdir}/kconfig\""
@ -364,67 +260,28 @@ _update_defconfig() {
make ${BUILD_FLAGS[*]} olddefconfig make ${BUILD_FLAGS[*]} olddefconfig
diff -u $srcdir/cl-linux/config .config || : diff -u $srcdir/cl-linux/config .config || :
# Here we slightly break the config by removing one of the # Patch with kernel_compiler_patch patches
# members of the 'Processor family' selection. # This must be executed after olddefconfig
# This causes oldconfig to always invoke that selection. # to allow for the next section to run.
sed -i '/CONFIG_GENERIC_CPU/d' .config || : patch -Np1 -i "$srcdir/kernel_compiler_patch-$_kernelcompilerpatch/more-ISA-levels-and-uarches-for-kernel-6.1.79+.patch"
# For a slim chance that someone is building X86_32
sed -i '/CONFIG_M686/d' .config || :
case ${_subarch} in # Set subarch automatically
"") [[ -n "${_subarch}" ]] && yes "${_subarch}" | make ${BUILD_FLAGS[*]} oldconfig
# Ask for subarch if none provided # Ask for subarch
make "${BUILD_FLAGS[@]}" oldconfig [[ -z "${_subarch}" ]] && make ${BUILD_FLAGS[*]} oldconfig
;;
"41" | "GENERIC_CPU")
scripts/config -e GENERIC_CPU
scripts/config --set-val X86_64_VERSION "${_subarch_microarch}"
make "${BUILD_FLAGS[@]}" oldconfig
;;
[1-9]|[1-3][0-9]|[4][0-3]|43)
# 1 to 9, 10 to 39, 40 to 43
# 43 is the last supported value here, refer to the _subarch
# documentation above and keep the last section of this check
# in sync with the supported value.
# stderr checks below shouldn't be needed with the above check in place,
# but will be left in-place regardless in case of future updates
# breaking something
# We're only interested in stderr # Optionally use the configuration of the running kernel
{ # Written originally by nous, see
local __ERROR=$(echo "${_subarch}" | make "${BUILD_FLAGS[@]}" oldconfig 2>&1 1>&$out) # https://web.archive.org/web/20110711231356/https://aur.archlinux.org/packages.php?ID=40191 (package doesn't exist anymore)
} {out}>/dev/null [[ -n "${_use_current}" ]] &&
if [[ -s /proc/config.gz ]]; then
# Invoke echo to sanitize the __ERROR, it can contain a newline or a \r # modprobe configs
# symbol, thus breaking the script zcat /proc/config.gz > ./.config
if [[ -n "$(echo $__ERROR)" ]]; then
warning "Selected subarch: ${_subarch} is not supported"
exit
fi
;;
*)
# String - check if it exists in .config and if it does - set it
if grep -q -e "CONFIG_${_subarch}[[:space:]]" -e "CONFIG_${_subarch}=" .config; then
# Check if option exists in .config
scripts/config -e "${_subarch}"
make "${BUILD_FLAGS[@]}" olddefconfig
else else
warning "Unrecognized subarch value: ${_subarch}" warning "Your kernel was not compiled with IKCONFIG_PROC."
warning "Unable to read kernel configuration, aborting."
exit exit
fi fi
;;
esac
}
# Prepares the installation
prepare() {
cd "${_src_linux}" || exit 1
_check_deprecated_settings
_apply_patches
[[ -n "${_use_current}" ]] && _copy_defconfig
[[ -n "${_optimize_defconfig}" ]] || [[ -z "${_use_current}" ]] && _update_defconfig
# Read and apply modprobed database # Read and apply modprobed database
# See https://aur.archlinux.org/packages/modprobed-db # See https://aur.archlinux.org/packages/modprobed-db
@ -435,28 +292,23 @@ prepare() {
echo ":: No modprobed.db file was found at ${HOME}/.config, skipping" echo ":: No modprobed.db file was found at ${HOME}/.config, skipping"
fi fi
# Open configuration editors
_modify_defconfig
# Save configuration
# shellcheck disable=SC2015
[[ -n "${_copyfinalconfig}" ]] && cp -Tf ./.config "${startdir}/kconfig-new" || true
# Write kernel version # Write kernel version
make -s kernelrelease > version make -s kernelrelease > version
# Open configuration editors
[[ -n "$_makemenuconfig" ]] && make ${BUILD_FLAGS[*]} menuconfig
[[ -n "$_makexconfig" ]] && make ${BUILD_FLAGS[*]} xconfig
[[ -n "$_makenconfig" ]] && make ${BUILD_FLAGS[*]} nconfig
# Save configuration
[[ -n "${_copyfinalconfig}" ]] && cp -Tf ./.config "${startdir}/kconfig-new" || true
} }
# Build kernel
build() { build() {
cd "${_src_linux}" || exit 1 cd "${_src_linux}" || exit 1
if [[ "${_show_compile}" == "n" ]] || [[ "${_show_compile}" == "false" ]]; then
make ${BUILD_FLAGS[*]} all | pv -l -F "Elapsed time: %t, targets per sec: %a" > /dev/null
else
make ${BUILD_FLAGS[*]} all make ${BUILD_FLAGS[*]} all
fi
} }
# Packages the kernel package
_package() { _package() {
pkgdesc="${pkgdesc} This package includes the kernel and compiled modules." pkgdesc="${pkgdesc} This package includes the kernel and compiled modules."
depends=("coreutils" "kmod" "initramfs") depends=("coreutils" "kmod" "initramfs")
@ -466,7 +318,7 @@ _package() {
install=linux.install install=linux.install
cd "${_src_linux}" || exit 1 cd "${_src_linux}" || exit 1
local "modulesdir=${pkgdir}/usr/lib/modules/$(<version)" local modulesdir="${pkgdir}/usr/lib/modules/$(<version)"
# Create boot image # Create boot image
# systemd expects to find the kernel there to allow hibernation # systemd expects to find the kernel there to allow hibernation
@ -484,13 +336,12 @@ _package() {
rm "${modulesdir}"/build rm "${modulesdir}"/build
} }
# Packages the headers package
_package-headers() { _package-headers() {
pkgdesc="${pkgdesc} This package includes header files and scripts for building kernel modules." pkgdesc="${pkgdesc} This package includes header files and scripts for building kernel modules."
depends=("pahole") depends=("pahole")
cd "${_src_linux}" || exit 1 cd "${_src_linux}" || exit 1
local "builddir=${pkgdir}/usr/lib/modules/$(<version)/build" local builddir="${pkgdir}/usr/lib/modules/$(<version)/build"
install -Dt "${builddir}" -m644 .config Makefile Module.symvers System.map \ install -Dt "${builddir}" -m644 .config Makefile Module.symvers System.map \
localversion.* version vmlinux localversion.* version vmlinux
@ -567,8 +418,8 @@ _package-headers() {
pkgname=("$pkgbase" "$pkgbase-headers") pkgname=("$pkgbase" "$pkgbase-headers")
for _p in "${pkgname[@]}"; do for _p in "${pkgname[@]}"; do
eval "package_$_p() { eval "package_$_p() {
$(declare -f "_package${_p#"$pkgbase"}") $(declare -f "_package${_p#$pkgbase}")
_package${_p#"$pkgbase"} _package${_p#$pkgbase}
}" }"
done done
@ -579,8 +430,8 @@ validpgpkeys=(
"E27E5D8A3403A2EF66873BBCDEA66FF797772CDC" # Sasha Levin "E27E5D8A3403A2EF66873BBCDEA66FF797772CDC" # Sasha Levin
"AC2B29BD34A6AFDDB3F68F35E7BFC8EC95861109" # Ben Hutchings "AC2B29BD34A6AFDDB3F68F35E7BFC8EC95861109" # Ben Hutchings
) )
sha256sums=("e79dcc6eb86695c6babfb07c2861912b635d5075c6cd1cd0567d1ea155f80d6e" sha256sums=("55d2c6c025ebc27810c748d66325dd5bc601e8d32f8581d9e77673529bdacb2e"
"SKIP" "SKIP"
"20803fd927b70f81f74d43108f1e9048aa429b970a307c522e929061d500f249" "4ccabe59805d7efd8165405624695255a87811cbea5c0e1d7a3981c21789b2ec"
"SKIP" "SKIP"
"b3fd8b1c5bbd39a577afcccf6f1119fdf83f6d72119f4c0811801bdd51d1bc61") "b3fd8b1c5bbd39a577afcccf6f1119fdf83f6d72119f4c0811801bdd51d1bc61")

View file

@ -15,14 +15,11 @@ The PKGBUILD file supports customization via environment variables. Here's a lis
- `_makenconfig`: Invokes `make nconfig` (ncurses-based nicer configuration menu) before compilation starts - `_makenconfig`: Invokes `make nconfig` (ncurses-based nicer configuration menu) before compilation starts
- `_makexconfig`: Invokes `make xconfig` (X11-based GUI configuration menu) before compilation starts - `_makexconfig`: Invokes `make xconfig` (X11-based GUI configuration menu) before compilation starts
- `_use_current`: Will use the configuration of the running kernel, if the running kernel is compiled with `IKCONFIG_PROC` - `_use_current`: Will use the configuration of the running kernel, if the running kernel is compiled with `IKCONFIG_PROC`
- `_optimize_defconfig`: Applies package maintainer-picked configuration changes to your defconfig. Only takes effect with `_use_current` being enabled
- `_copyfinalconfig`: Copies the final kernel configuration into the repository root as `kconfig-new` before compilation starts - `_copyfinalconfig`: Copies the final kernel configuration into the repository root as `kconfig-new` before compilation starts
- `_localmodcfg`: Only compiles modules found in modprobed-db's database (which decreases compilation time and kernel size) - `_localmodcfg`: Only compiles modules found in modprobed-db's database (which decreases compilation time and kernel size)
- `_use_llvm_lto`: Compiles the kernel with LLVM instead of GCC. Should work, if not open an issue - `_use_llvm_lto`: Compiles the kernel with LLVM instead of GCC. Should work, if not open an issue
- `_subarch`: Specifies the subarchitecture to compile for (see the [PKGBUILD file](https://git.staropensource.de/JeremyStarTM/aur-linux-clear/src/branch/develop/PKGBUILD) for a list of all subarches). Default is `41` (Generic x86-64), which is compatible with all amd64 processors. Must be a number - `_subarch`: Specifies the sub architecture to compile for (see the [PKGBUILD file](https://git.staropensource.de/JeremyStarTM/aur-linux-clear/src/branch/develop/PKGBUILD) for a list of all subarches). Default is `41` (Generic x86-64), which is compatible with all amd64 processors. Must be a number
- `_subarch_microarch`: Specifies the microarchitecture to compile for. Only applies to and is required by the `GENERIC_CPU` subarch. Must be a number between `1` and `4` ([click for more information](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels))
- `_debug`: Force enables debug options when set to `y`, force disables debug options when set to `n` or uses the config defaults when unset - `_debug`: Force enables debug options when set to `y`, force disables debug options when set to `n` or uses the config defaults when unset
- `_show_compile`: Enables verbose-er compilation output and displays all executing `make` targets. Set to `y` by default, set to `n` for 'pv' output
All of these variables just need to be set for them to apply, except for `_subarch` and `_debug`. See their descriptions for more information. All of these variables just need to be set for them to apply, except for `_subarch` and `_debug`. See their descriptions for more information.
@ -37,16 +34,9 @@ This command only needs to be executed once.
Please only submit issues if they aren't bug reports about the package or help requests. Please only submit issues if they aren't bug reports about the package or help requests.
Please keep them on the AUR only. This prevents unnecessary signups. Please keep them on the AUR only. This prevents unnecessary signups.
## Branches
This repository (at least if you view it on [sos!git](https://git.staropensource.de/JeremyStarTM/aur-linux-clear))
has two branches: `master` and `develop`. The `master` branch is the stable branch, where stable changes
are introduced. The `develop` branch is (as you might have already guessed) the development branch.
Please only submit PRs to the `develop` branch. Pull requests to the `master` branch will be rejected.
## License ## License
The linux-clear package is licensed under the BSD Zero-Clause License. This package does not yet have a license as the original repository (before [me](https://git.staropensource.de/JeremyStarTM) becoming it's maintainer) did not have one yet.
I ([JeremyStarTM](https://git.staropensource.de/JeremyStarTM)) negotiated it with [metak](https://aur.archlinux.org/account/metak) (the previous maintainer) and [yarost12](https://git.staropensource.de/yarost12) (co-maintainer). I have contacted [metak](https://aur.archlinux.org/account/metak) (the previous maintainer) to negotiate a license.
## Build tool ## Build tool
~~*If you want a dead simple way to compile this package, you can [try out my build tool](https://git.staropensource.de/JeremyStarTM/jstm-optimized). It includes a few no nonsense changes to the kernel configuration and allows you to configure the PKGBUILD in a simple manner to decrease build time. If you don't want that, using `makepkg` as-is works fine too.*~~ Deprecated until rewrite. *If you want a dead simple way to compile this package, you can [try out my build tool](https://git.staropensource.de/JeremyStarTM/jstm-optimized). It includes a few no nonsense changes to the kernel configuration and allows you to configure the PKGBUILD in a simple manner to decrease build time. If you don't want that, using `makepkg` as-is works fine too.*

View file

@ -1,14 +1,14 @@
#!/usr/bin/env bash #!/bin/bash
function _5_2_2_2_changes() { _5_2_2_2_changes() {
echo ":: Update 5.2.2-2: A new command line option was added: add page_alloc.shuffle=1" echo ":: A new command line option was added: add page_alloc.shuffle=1"
} }
function _5_2_9_6_changes() { _5_2_9_6_changes() {
echo ":: Update 5.2.9-6: Microcode is no longer builtin. See https://wiki.archlinux.org/index.php/Microcode" echo ":: Microcode is no longer builtin. See https://wiki.archlinux.org/index.php/Microcode"
} }
function post_install() { post_install() {
echo ":: Clear Linux bundles a custom command line which must be applied manually on other distributions." echo ":: Clear Linux bundles a custom command line which must be applied manually on other distributions."
echo " This is their default command line:" echo " This is their default command line:"
echo " quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests initcall_debug" echo " quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests initcall_debug"
@ -17,13 +17,15 @@ function post_install() {
echo " rootfstype=ext4,btrfs,xfs,f2fs tsc=reliable rw" echo " rootfstype=ext4,btrfs,xfs,f2fs tsc=reliable rw"
} }
function post_upgrade() { post_upgrade() {
local version upgrades=( local v upgrades=(
5.2.2-2 5.2.2-2
5.2.9-6 5.2.9-6
) )
for version in "${upgrades[@]}"; do for v in "${upgrades[@]}"; do
[[ $(vercmp "${version}" "$2") -eq 1 ]] && "_${version//[.-]/_}_changes" if [[ $(vercmp "${v}" "$2") -eq 1 ]]; then
"_${v//[.-]/_}_changes"
fi
done done
} }