Compare commits

..

43 commits

Author SHA1 Message Date
ff91f2b369
6.12.11-1 (clr 6.12.11-1537) 2025-01-25 11:04:45 +01:00
b96762dbcf
Bugfix 2025-01-18 11:21:45 +01:00
d39c9ba3a3
6.12.10-1 (clr 6.12.10-1535) 2025-01-17 18:01:55 +01:00
b900849c86
Prefix methods with underscores 2025-01-17 18:00:47 +01:00
ac8844f27b Clarify maintainer notice 2025-01-17 17:51:53 +01:00
030c19fe76 PKGBUILD: fix a small bug in subarch selection code
- Check if there's an option starting with CONFIG_
- Add comment describing the numerical case a bit better
2025-01-17 17:51:53 +01:00
98b82f76a0 PKGBUILD: rework subarch selection again
- switch to a switch-case statement to prettify things
- Separate generic selection into its own condition
- Make a hard-ish check for maximum supported subarch,
add comments to make sure it gets updated in the future.
- Generally comment the code better.
2025-01-17 17:51:53 +01:00
960663f242 Separate deprecated settings and their warnings 2025-01-17 17:04:01 +01:00
8425877530 Add optional verbose compilation output back 2025-01-17 17:59:47 +02:00
a24066abc9 PKGBUILD: silence build output, but print elapsed time and build speed
- We still don't want to see built targets, don't spam my terminal
- Print elapsed time to show how long the build is taking
- Print how many targets per second are built, to show the rough build speed.
2025-01-17 17:59:33 +02:00
bc997a865e Revert "PKGBUILD: make the kernel build log less verbose"
Will be replaced with a better version.

This reverts commit 2e93191001.
2025-01-17 17:59:25 +02:00
8d6b677978
Revert 37f6746dba
This commit reverts 37f6746dba.
The echo call is required otherwise the script will break.
Added a comment informing about it.
2025-01-17 14:56:26 +01:00
37f6746dba
Remove comment, use variable directly 2025-01-17 14:49:45 +01:00
ca7ba5c852 PKGBUILD: add a robust check for invalid subarch numbers
- Get rid of 'yes' invocation, it leads to infinite loops
- Separate stderr and stdout
- If stderr is not expty - print a warning and exit
2025-01-16 20:48:31 +02:00
d70024da20 PKGBUILD: untuck the way generic subarch is set
Previously a really convoluted two stage 'yes' invocation
was used with that required weird formatting.

Switch to using the good old configs enabling.
2025-01-09 20:35:22 +01:00
6258f9892c PKGBUILD: add back briefly used script flags
Some users may have switched to the new flags when they
got added, some may have not. We've reverted those
updated flags in commit: 756a7d02ae

Add support for them back with a warning.
2025-01-09 00:53:39 +02:00
abff9518a7 Merge branch 'yarost12-YF-allow-using-extra-uarches-even-with-copied-config-v2' into develop 2025-01-06 18:36:31 +01:00
3dd576acca PKGBUILD: fix and simplify major kernel version check after Jeremy's attempted fix
Ree the double quote is meant to go after the equation sign!
2025-01-06 11:26:03 +02:00
4dea0881c4 PKGBUILD: allow passing the subarch value as the Kconfig name
It'll be easier to maintain for the users instead of using fixed
numbers. The doc was also updated.
2025-01-06 11:26:02 +02:00
d0fecf90fe PKGBUILD: V2: apply extra uarches patch even when defconfig is copied
Otherwise MK8 or MCORE2 is selected which results in a misoptimization.

Also ensure that Processor family choice menu is always brought up
by breaking the config a little bit.

Code formatting pass was applied, CRLF was replaced with LF
2025-01-06 11:20:36 +02:00
795a54ebd2 Revert "PKGBUILD: apply extra uarches patch even when defconfig is copied"
This reverts commit 6da003f220.
2025-01-06 11:19:14 +02:00
2e93191001 PKGBUILD: make the kernel build log less verbose
We don't really need to see every single compiled file,
just print the errors and warnings.

vscode also formatted the entire file to remove trailing spaces.
2025-01-06 11:18:28 +02:00
476799e2f9 Ignore pkg/ folder 2025-01-06 11:17:08 +02:00
ce9c9a0c58
Deprecate build tool 2025-01-06 01:34:54 +01:00
da9d48894a
Add yarost12 as co-maintainer 2025-01-06 01:34:48 +01:00
756a7d02ae
Revert non-optimal code
This revert operation has been coordinated with the package's new co-maintainer yarost12.

This commit reverts the following commits:
0bc05764dc
a50b50bd58
166084968d
ff0209bf6e
e8b74c03b1
5f6ce75201
10f612396a

This commit will revert the repository to it's state in commit 683ce48c96 (tag kernel6.12.6_clr6.12.4-1518_pkg1), with the following commits added:
8e623b5eb2
9b161b9007
2025-01-06 01:26:31 +01:00
9b161b9007
Relicense to 0BSD 2024-12-30 22:29:08 +01:00
8e623b5eb2
Add branches section 2024-12-23 01:00:08 +01:00
0bc05764dc
Fix compilation issue
See https://aur.archlinux.org/pkgbase/linux-clear#comment-1003116
2024-12-23 00:50:18 +01:00
a50b50bd58
Add another variable 2024-12-22 19:20:39 +01:00
166084968d
Fix mention 2024-12-22 19:19:55 +01:00
ff0209bf6e
Update PKGBUILD configuration section 2024-12-22 19:18:23 +01:00
e8b74c03b1
Add check for '_reuse_file' 2024-12-22 19:11:54 +01:00
5f6ce75201
Make logging work with newlines, add _error func 2024-12-22 19:11:36 +01:00
10f612396a
Make a bunch of changes
This commit:
- inlines some functions
- adds PKGBUILD debugging support
- renames of functions to avoid makepkg function collisions
- renames of configuration variables
- a smol logging facility
- changes some if statements
- fixes of some bugs
- makes the code a bit smaller
2024-12-22 18:59:35 +01:00
683ce48c96
6.12.6-1 (clr 6.12.4-1518) 2024-12-22 08:39:32 +01:00
6da003f220 PKGBUILD: apply extra uarches patch even when defconfig is copied
Otherwise some default value is set which will result in a misoptimization.
2024-12-12 00:34:11 +02:00
bfacea4fa1
6.12.4-1 (clr 6.12.4-1518) 2024-12-11 19:54:22 +01:00
d9caba7166
Update upgrade script 2024-12-05 15:12:22 +01:00
d156a5c849
Format 'GENERIC_CPU' mention as code 2024-12-05 15:05:16 +01:00
4c73a14ca9
6.12.1-3 (clr 6.12.1-1493) add _subarch_microarch option 2024-12-05 15:01:24 +01:00
c90341bfae
6.12.1-2 (clr 6.12.1-1493) 2024-12-04 19:32:08 +01:00
406586d172
Add '_optimize_defconfig' envvar to README 2024-12-04 19:27:55 +01:00
7 changed files with 231 additions and 95 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.12.1 pkgver = 6.12.11
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
@ -16,12 +16,13 @@ pkgbase = linux-clear
makedepends = tar makedepends = tar
makedepends = xz makedepends = xz
makedepends = zstd makedepends = zstd
makedepends = pv
options = !strip options = !strip
options = !debug options = !debug
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.tar.xz source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.tar.xz
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.tar.sign source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.tar.sign
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.12.1.xz source = https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.12.11.xz
source = cl-linux::git+https://github.com/clearlinux-pkgs/linux.git#tag=6.12.1-1493 source = cl-linux::git+https://github.com/clearlinux-pkgs/linux.git#tag=6.12.11-1537
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
@ -29,7 +30,7 @@ pkgbase = linux-clear
validpgpkeys = AC2B29BD34A6AFDDB3F68F35E7BFC8EC95861109 validpgpkeys = AC2B29BD34A6AFDDB3F68F35E7BFC8EC95861109
sha256sums = b1a2562be56e42afb3f8489d4c2a7ac472ac23098f1ef1c1e40da601f54625eb sha256sums = b1a2562be56e42afb3f8489d4c2a7ac472ac23098f1ef1c1e40da601f54625eb
sha256sums = SKIP sha256sums = SKIP
sha256sums = 7013d2a29f02ca7508c7d6264afafdc0c0ee38cf5eef350e7b7f34f1393f2518 sha256sums = 86b8dc37ea5abb31bc829820f0ee6c340815e7b9f9907657374b2c085487b70f
sha256sums = SKIP sha256sums = SKIP
sha256sums = b3fd8b1c5bbd39a577afcccf6f1119fdf83f6d72119f4c0811801bdd51d1bc61 sha256sums = b3fd8b1c5bbd39a577afcccf6f1119fdf83f6d72119f4c0811801bdd51d1bc61

1
.gitignore vendored
View file

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

16
LICENSE Normal file
View file

@ -0,0 +1,16 @@
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.

3
MAINTAINERS.md Normal file
View file

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

159
PKGBUILD
View file

@ -1,8 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck disable=SC2034 disable=SC2048 disable=SC2086 disable=SC2154 # shellcheck disable=SC2034 disable=SC2048 disable=SC2086 disable=SC2154
# Maintainer: JeremyStarTM <jeremystartm@staropensource.de>
# Maintainer: Josip Ponjavic <josipponjavic at gmail dot com> # This PKGBUILD is/was authored by:
# Contributor: yarost12 <yaro330@gmail.com> # - 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"
@ -62,9 +66,17 @@
# Set to anything but null to activate. # Set to anything but null to activate.
: "${_localmodcfg:=""}" : "${_localmodcfg:=""}"
# Optionally select a sub architecture by number or # Optionally select a sub architecture by number or its Kconfig name,
# leave blank, which will require user interaction during the build. # for example MCORE2 or MZEN4.
# 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)
@ -111,6 +123,18 @@
# 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.
@ -127,13 +151,32 @@
# 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.
#
# Set to anything but null to activate.
: "${_show_compile:=""}"
### 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.12 _kernel_major=6.12
_kernel_minor=1 _kernel_minor=11
# Clear Linux patches version # Clear Linux patches version
_clr=1-1493 _clr=11-1537
# kernel_compiler_patch version # kernel_compiler_patch version
_kernelcompilerpatch="20241018" _kernelcompilerpatch="20241018"
# Source directory names # Source directory names
@ -150,6 +193,7 @@ 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=(
@ -166,8 +210,20 @@ 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
_check_deprecated_settings() {
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 # Applies all patches
apply_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
@ -185,10 +241,15 @@ 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 # Allows user to modify the kernel config
modify_defconfig() { _modify_defconfig() {
[[ -n "$_makemenuconfig" ]] && make ${BUILD_FLAGS[*]} menuconfig [[ -n "$_makemenuconfig" ]] && make ${BUILD_FLAGS[*]} menuconfig
[[ -n "$_makexconfig" ]] && make ${BUILD_FLAGS[*]} xconfig [[ -n "$_makexconfig" ]] && make ${BUILD_FLAGS[*]} xconfig
[[ -n "$_makenconfig" ]] && make ${BUILD_FLAGS[*]} nconfig [[ -n "$_makenconfig" ]] && make ${BUILD_FLAGS[*]} nconfig
@ -198,8 +259,8 @@ modify_defconfig() {
} }
# Copies the kernel config # Copies the kernel config
copy_defconfig() { _copy_defconfig() {
local "_cur_major_ver=$(zcat /proc/config.gz | grep Linux | grep -o '[0-9]*[0-9]\.[0-9]*[0-9]')" local _cur_major_ver="$(uname -r | grep -o '[0-9]*[0-9]\.[0-9]*[0-9]')"
[[ "${_cur_major_ver}" != "${_kernel_major}" ]] && [[ "${_cur_major_ver}" != "${_kernel_major}" ]] &&
warning "Major version was updated, you should regen the defconfig" warning "Major version was updated, you should regen the defconfig"
@ -215,7 +276,7 @@ copy_defconfig() {
} }
# Updates the kernel config # Updates the kernel config
update_defconfig() { _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\""
@ -303,25 +364,67 @@ update_defconfig() {
make ${BUILD_FLAGS[*]} olddefconfig make ${BUILD_FLAGS[*]} olddefconfig
diff -u $srcdir/cl-linux/config .config || : diff -u $srcdir/cl-linux/config .config || :
# Patch with kernel_compiler_patch patches # Here we slightly break the config by removing one of the
# This must be executed after olddefconfig # members of the 'Processor family' selection.
# to allow for the next section to run. # This causes oldconfig to always invoke that selection.
patch -Np1 -i "$srcdir/kernel_compiler_patch-$_kernelcompilerpatch/more-ISA-levels-and-uarches-for-kernel-6.1.79+.patch" sed -i '/CONFIG_GENERIC_CPU/d' .config || :
# For a slim chance that someone is building X86_32
sed -i '/CONFIG_M686/d' .config || :
# Set subarch automatically case ${_subarch} in
[[ -n "${_subarch}" ]] && yes "${_subarch}" | make ${BUILD_FLAGS[*]} oldconfig "")
# Ask for subarch # Ask for subarch if none provided
[[ -z "${_subarch}" ]] && make ${BUILD_FLAGS[*]} oldconfig 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
{
local __ERROR=$(echo "${_subarch}" | make "${BUILD_FLAGS[@]}" oldconfig 2>&1 1>&$out)
} {out}>/dev/null
# Invoke echo to sanitize the __ERROR, it can contain a newline or a \r
# symbol, thus breaking the script
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
warning "Unrecognized subarch value: ${_subarch}"
exit
fi
;;
esac
} }
# Prepares the installation # Prepares the installation
prepare() { prepare() {
cd "${_src_linux}" || exit 1 cd "${_src_linux}" || exit 1
apply_patches _check_deprecated_settings
_apply_patches
[[ -n "${_use_current}" ]] && copy_defconfig [[ -n "${_use_current}" ]] && _copy_defconfig
[[ -n "${_optimize_defconfig}" ]] || [[ -z "${_use_current}" ]] && update_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
@ -333,7 +436,7 @@ prepare() {
fi fi
# Open configuration editors # Open configuration editors
modify_defconfig _modify_defconfig
# Save configuration # Save configuration
# shellcheck disable=SC2015 # shellcheck disable=SC2015
@ -346,7 +449,11 @@ prepare() {
# Build kernel # Build kernel
build() { build() {
cd "${_src_linux}" || exit 1 cd "${_src_linux}" || exit 1
if [ -n "${_show_compile}" ]; then
make ${BUILD_FLAGS[*]} all make ${BUILD_FLAGS[*]} all
else
make ${BUILD_FLAGS[*]} all | pv -l -F "Elapsed time: %t, targets per sec: %a" > /dev/null
fi
} }
# Packages the kernel package # Packages the kernel package
@ -474,6 +581,6 @@ validpgpkeys=(
) )
sha256sums=("b1a2562be56e42afb3f8489d4c2a7ac472ac23098f1ef1c1e40da601f54625eb" sha256sums=("b1a2562be56e42afb3f8489d4c2a7ac472ac23098f1ef1c1e40da601f54625eb"
"SKIP" "SKIP"
"7013d2a29f02ca7508c7d6264afafdc0c0ee38cf5eef350e7b7f34f1393f2518" "86b8dc37ea5abb31bc829820f0ee6c340815e7b9f9907657374b2c085487b70f"
"SKIP" "SKIP"
"b3fd8b1c5bbd39a577afcccf6f1119fdf83f6d72119f4c0811801bdd51d1bc61") "b3fd8b1c5bbd39a577afcccf6f1119fdf83f6d72119f4c0811801bdd51d1bc61")

View file

@ -15,11 +15,14 @@ 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 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_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
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.
@ -34,9 +37,16 @@ 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
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. The linux-clear package is licensed under the BSD Zero-Clause License.
I have contacted [metak](https://aur.archlinux.org/account/metak) (the previous maintainer) to negotiate a license. 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).
## 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.* ~~*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.

View file

@ -1,14 +1,14 @@
#!/bin/bash #!/usr/bin/env bash
_5_2_2_2_changes() { function _5_2_2_2_changes() {
echo ":: A new command line option was added: add page_alloc.shuffle=1" echo ":: Update 5.2.2-2: A new command line option was added: add page_alloc.shuffle=1"
} }
_5_2_9_6_changes() { function _5_2_9_6_changes() {
echo ":: Microcode is no longer builtin. See https://wiki.archlinux.org/index.php/Microcode" echo ":: Update 5.2.9-6: Microcode is no longer builtin. See https://wiki.archlinux.org/index.php/Microcode"
} }
post_install() { function 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,15 +17,13 @@ post_install() {
echo " rootfstype=ext4,btrfs,xfs,f2fs tsc=reliable rw" echo " rootfstype=ext4,btrfs,xfs,f2fs tsc=reliable rw"
} }
post_upgrade() { function post_upgrade() {
local v upgrades=( local version upgrades=(
5.2.2-2 5.2.2-2
5.2.9-6 5.2.9-6
) )
for v in "${upgrades[@]}"; do for version in "${upgrades[@]}"; do
if [[ $(vercmp "${v}" "$2") -eq 1 ]]; then [[ $(vercmp "${version}" "$2") -eq 1 ]] && "_${version//[.-]/_}_changes"
"_${v//[.-]/_}_changes"
fi
done done
} }