forked from pool/kernel-source-longterm
Compare commits
223 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 55f4eead38 | |||
| 0a7e39079e | |||
| a37e8568cc | |||
| 5047e36ca3 | |||
| bc2f0d6e78 | |||
| 6d5d265347 | |||
| e3c7a4ed6f | |||
| de18e7f809 | |||
| debea8eb76 | |||
| 60296faf92 | |||
| 496d964f4a | |||
| 5c9cf1c3e0 | |||
| 50c06d2433 | |||
| 3bc1412b83 | |||
| b08036a115 | |||
| f63e5e4411 | |||
| 40c49f7d83 | |||
| 204a250637 | |||
| 513d23067f | |||
| 1e2fb1d4c0 | |||
| ac4ff89aea | |||
| 06b02cd915 | |||
| 70a0543438 | |||
| d0d50a714b | |||
| 09af648bf6 | |||
| f1a392652a | |||
| 95fa0ebebd | |||
| b44bb6c6bb | |||
| bca21626a5 | |||
| d9b6c1f471 | |||
| fc6fa3f0b0 | |||
| dd84dd581a | |||
| a71d9a6f7f | |||
| 58a164abdc | |||
| 9e6de0e53e | |||
| a858bbca64 | |||
| e8b794a378 | |||
| 3d47b3890f | |||
| a9671eb853 | |||
| 19d6a48ebd | |||
| d0e0046c99 | |||
| 945d687af9 | |||
| d9c322b588 | |||
| 7da8154bd3 | |||
| 2ae0a197db | |||
| f44b872830 | |||
| 786361d97b | |||
| e72e4c9cae | |||
| 68d71014f1 | |||
| 66db83034a | |||
| 89fb6c9a98 | |||
| 5140bc01be | |||
| 403644878d | |||
| 9cbe9427fc | |||
| 4919c77dfd | |||
| 8514800ad1 | |||
| 0c7ab8a508 | |||
| c913262420 | |||
| 50d99d89a5 | |||
| f32c114ee8 | |||
| 292291f0b8 | |||
| 345a74351d | |||
| d0cfea9f21 | |||
| 2a274dff40 | |||
| 3408d0cb29 | |||
| cdc5e0c030 | |||
| c22983e611 | |||
| e74f974b17 | |||
| 8e13351d37 | |||
| 61cfb7e2dc | |||
| 85ccbbd6c9 | |||
| 79b59e8f32 | |||
| 496426c02f | |||
| e469d3984f | |||
| dbe7b4b5db | |||
| 9f19a2a3a3 | |||
| 745a3de524 | |||
| ee1d601832 | |||
| 6eb6c9bb77 | |||
| f5a226401e | |||
| 1d3a50e3da | |||
| 300e83419e | |||
| 6773d8a651 | |||
| be28d345f8 | |||
| 012033e0b6 | |||
| 9c98a43415 | |||
| ae32dc3b48 | |||
| 2b290dd5a3 | |||
| 036529a5e1 | |||
| 393e7713de | |||
| 2c1555b372 | |||
| f593ec89b0 | |||
| ec8315349f | |||
| 07ffc37541 | |||
| 35fb52ebcb | |||
| df75098c2d | |||
| 1928c0b638 | |||
| 4b9e0f488f | |||
| 448728557b | |||
| d58b14c613 | |||
| 67cff08530 | |||
| c98d085d00 | |||
| caf76024cd | |||
| 0a4cd6bdd7 | |||
| e935dbbe4d | |||
| 80914ed909 | |||
| 39aaf5cd52 | |||
| c6bb1d8c07 | |||
| 2dbef5a4cb | |||
| a547999d0e | |||
| c5d3ac2c24 | |||
| f6c0d71ae9 | |||
| 837f1196cd | |||
| 6bfa161eba | |||
| e734da9d07 | |||
| 2e959edfdd | |||
| f938a9f4b2 | |||
| 952f4fb161 | |||
| fb0942c621 | |||
| f3fe53bb84 | |||
| e05d52866f | |||
| 0d7f228645 | |||
| dfab38fa51 | |||
| 69fcfc5add | |||
| b6716aa367 | |||
| 6a10de4db3 | |||
| 8582c8c099 | |||
| dd8792b3df | |||
| cd43fad672 | |||
| a74c74e8f1 | |||
| 2bac50dda2 | |||
| 56ae243eb3 | |||
| 1e7b8fc0cf | |||
| ab786b11bd | |||
| afdf0bfda8 | |||
| 5ffb8a24ec | |||
| 69d7498b58 | |||
| d5edd04d4c | |||
| a0bf8ca902 | |||
| 2542ff2dbb | |||
| 60108915b6 | |||
| ac54a82dc9 | |||
| 7b89efbd0f | |||
| 64e847bd9e | |||
| 38067cbb47 | |||
| 80be07dfe8 | |||
| fd1fdf4ffb | |||
| 551db86958 | |||
| d0baa5b984 | |||
| aeb7508a16 | |||
| e0ded4e310 | |||
| 7efc1f09b7 | |||
| c07d642f06 | |||
| d17b9417d3 | |||
| 7cdbf72e3d | |||
| a4d18b9d99 | |||
| 60b057170d | |||
| 0ad53091ca | |||
| 033ae07dba | |||
| e7df17eba0 | |||
| 499d688079 | |||
| 1cc8b0b06f | |||
| e78a893692 | |||
| 7f374024a0 | |||
| cf049d7e56 | |||
| 294d87067c | |||
| 114374ab83 | |||
| 2f5edff561 | |||
| be8c703808 | |||
| 4d240113e1 | |||
| d383a358b7 | |||
| 65e6378212 | |||
| 1da6a8d239 | |||
| c7df09a0fe | |||
| b18952a00c | |||
| f55c01025e | |||
| 6d57c81438 | |||
| 4a72fae0c9 | |||
| 31db85ed06 | |||
| 0b6d3a3468 | |||
| 2f698d2c75 | |||
| 6451e8d99e | |||
| c8d45fcd25 | |||
| 44a0a0c854 | |||
| b6a44f5b26 | |||
| 30f5508f36 | |||
| 9a2c0d522f | |||
| 723dce70b9 | |||
| abc4c510e5 | |||
| a6c86ff25c | |||
| c40bd676c8 | |||
| 718fdc4b89 | |||
| f862564093 | |||
| 0ed42925dc | |||
| a6a9a03004 | |||
| eb0785c054 | |||
| b3d18e3591 | |||
| 03c36631ea | |||
| e57da533c2 | |||
| 2de9728010 | |||
| d202329d27 | |||
| 146073b984 | |||
| 5d54bcb59f | |||
| f5c320c7eb | |||
| c7d9938ea5 | |||
| 2b4bdc1549 | |||
| eb87aceda8 | |||
| 984be02868 | |||
| d03e25680a | |||
| c8efae79db | |||
| dce9227161 | |||
| f7bbdd63cf | |||
| 6b9a423979 | |||
| 01b4085137 | |||
| f8de263029 | |||
| 51f54c11ed | |||
| d086c7a592 | |||
| e8c21f3c40 | |||
| 79ca623409 | |||
| a73dc4a10d | |||
| 03f7aee182 | |||
| 96ddf3e8a2 | |||
| 90221b23bf |
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -21,3 +21,5 @@
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.?z filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
28
README.SUSE
28
README.SUSE
@@ -187,8 +187,17 @@ will report one of the following:
|
||||
* third-party support: "supported: external",
|
||||
* unsupported modules: no supported tag.
|
||||
|
||||
At runtime, the setting of the "unsupported" kernel command line parameter and
|
||||
`/proc/sys/kernel/unsupported` determines whether unsupported modules can be
|
||||
At runtime, the support status of a module can be obtained by reading
|
||||
`/sys/module/$MODULE/supported`.
|
||||
|
||||
Note that this information is available only if the module was not built
|
||||
directly into the kernel. Builtin modules are implicitly supported.
|
||||
|
||||
The aggregated support status for the entire kernel can be inspected by reading
|
||||
`/sys/kernel/supported`. The value is also included in Oopses.
|
||||
|
||||
The setting of the "unsupported" kernel command line parameter and
|
||||
`/proc/sys/kernel/unsupported` controls whether unsupported modules can be
|
||||
loaded or not, and whether or not loading an unsupported module causes a warning
|
||||
in the system log:
|
||||
|
||||
@@ -196,9 +205,9 @@ in the system log:
|
||||
* 1 = warn when loading unsupported modules,
|
||||
* 2 = don't warn.
|
||||
|
||||
Irrespective of this setting, loading an externally supported or unsupported
|
||||
module both set a kernel taint flag. The taint flags are included in Oopses. The
|
||||
taint status of the kernel can be inspected in `/proc/sys/kernel/tainted`.
|
||||
Irrespective of this setting, loading an unsupported module sets a kernel taint
|
||||
flag. The taint status of the kernel can be inspected in
|
||||
`/proc/sys/kernel/tainted`. The taint flags are also included in Oopses.
|
||||
Relevant bits have the following meaning:
|
||||
|
||||
| Bit | Log | Number | Reason that got the kernel tainted |
|
||||
@@ -209,7 +218,9 @@ Relevant bits have the following meaning:
|
||||
| 16 | ␣/X | 65536 | module with third-party support was loaded |
|
||||
| 31 | ␣/N | 2147483648 | unsupported module was loaded |
|
||||
|
||||
Bits 16 and 31 are specific to the SUSE kernels.
|
||||
Bits 16 and 31 are specific to the SUSE kernels. Since SLE15-SP6, loading an
|
||||
externally supported module does not taint the kernel, but bit 16 (X) is still
|
||||
tracked per module and can be read in `/sys/module/$MODULE/taint`.
|
||||
|
||||
Out-of-tree modules do not have the supported flag set by default; that
|
||||
is, they are marked as unsupported. For building externally supported
|
||||
@@ -411,9 +422,8 @@ General:
|
||||
|
||||
Loadable kernel modules:
|
||||
|
||||
* Peter Jay Salzman, Michael Burian, Ori Pomerantz: The Linux Kernel Module
|
||||
Programming Guide, Version 2.6,
|
||||
<https://tldp.org/LDP/lkmpg/2.6/html/index.html>.
|
||||
* The Linux Kernel Module Programming Guide,
|
||||
<https://sysprog21.github.io/lkmpg/>.
|
||||
|
||||
Kernel module packages:
|
||||
|
||||
|
||||
@@ -5,29 +5,45 @@
|
||||
#
|
||||
# please keep them sorted alphabetically
|
||||
declare -a IGNORED_CONFIGS_RE=(
|
||||
'ARCH_USING_PATCHABLE_FUNCTION_ENTRY'
|
||||
'AS_IS_\(GNU\|LLVM\)'
|
||||
'AS_HAS_[A-Z0-9_]*'
|
||||
'AS_VERSION'
|
||||
'AS_WRUSS' # x86_32
|
||||
'BUILTIN_RETURN_ADDRESS_STRIPS_PAC'
|
||||
'CC_ASM_FLAG_OUTPUT_BROKEN'
|
||||
'CC_CAN_[A-Z_]*'
|
||||
'CC_IMPLICIT_FALLTHROUGH'
|
||||
'CC_IS_\(CLANG\|GCC\)'
|
||||
'CC_HAS_[A-Z_]*'
|
||||
'CC_HAVE_[A-Z_]*'
|
||||
'CC_VERSION_TEXT'
|
||||
'CLANG_VERSION'
|
||||
'DRM_MSM_VALIDATE_XML'
|
||||
'DYNAMIC_SIGFRAME'
|
||||
'FTRACE_MCOUNT_USE_[A-Z_]*'
|
||||
'GCC_ASM_FLAG_OUTPUT_BROKEN'
|
||||
'GCC_ASM_GOTO_OUTPUT_BROKEN'
|
||||
'GCC_ASM_GOTO_OUTPUT_WORKAROUND'
|
||||
'GCC_VERSION'
|
||||
'G*CC[0-9]*_NO_[A-Z_]*'
|
||||
'HAS_LTO_CLANG'
|
||||
'HAVE_[A-Z]*_COMPILER'
|
||||
'HAVE_RUST'
|
||||
'HAVE_SHADOW_CALL_STACK'
|
||||
'LD_CAN_[A-Z_]*'
|
||||
'LD_IS_\(BFD\|LLD\)'
|
||||
'LD_VERSION'
|
||||
'LLD_VERSION'
|
||||
'OBJTOOL'
|
||||
'PAHOLE_HAS_[A-Z0-9_]*'
|
||||
'PAHOLE_VERSION'
|
||||
'RISCV_ISA_[A-Z_]*'
|
||||
'RUSTC_SUPPORTS_[A-Z0-9_]*'
|
||||
'TOOLCHAIN_HAS_[A-Z_]*'
|
||||
'TOOLCHAIN_NEEDS_[A-Z_]*'
|
||||
'TOOLS_SUPPORT_[A-Z_]*'
|
||||
'USE_X86_SEG_SUPPORT'
|
||||
)
|
||||
|
||||
declare -a SED_ARGS=()
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
|
||||
# Once the brp script is reasonably widespread, we will remove the specfile
|
||||
# hack and this script
|
||||
if test -x /usr/lib/rpm/brp-suse.d/brp-99-compress-vmlinux; then
|
||||
exit 0
|
||||
fi
|
||||
vmlinux=$1
|
||||
if test -e "$vmlinux" -a -e "$vmlinux.gz"; then
|
||||
# Deliberately not using gzip -n; the vmlinux image has a predictable
|
||||
# timestamp (bnc#880848#c20)
|
||||
gzip -k -9 -f "$vmlinux"
|
||||
fi
|
||||
@@ -1,77 +0,0 @@
|
||||
#! /bin/bash
|
||||
|
||||
export LANG=POSIX
|
||||
|
||||
path=(.)
|
||||
while test $# -gt 0; do
|
||||
case "$1" in
|
||||
--patches)
|
||||
path[${#path[@]}]=$2
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "Usage $0 [--patches <dir>]" >&2
|
||||
exit 1
|
||||
esac
|
||||
done
|
||||
if test "${path[*]}" = "."; then
|
||||
path=(. ..)
|
||||
fi
|
||||
|
||||
|
||||
source $(dirname $0)/config.sh
|
||||
parse_srcversion()
|
||||
{
|
||||
local IFS=.
|
||||
set -- ${SRCVERSION%%-*}
|
||||
VERSION=$1
|
||||
PATCHLEVEL=${2:-0}
|
||||
SUBLEVEL=${3:-0}
|
||||
EXTRAVERSION=${SRCVERSION#${SRCVERSION%%-*}}
|
||||
}
|
||||
parse_srcversion
|
||||
|
||||
EXTRA_SYMBOLS=$(set -- $([ -e $(dirname $0)/extra-symbols ] && cat $(dirname $0)/extra-symbols) ; echo $*)
|
||||
|
||||
series=$(mktemp)
|
||||
tmp_files="$series"
|
||||
trap 'rm -rf $tmp_files' EXIT
|
||||
warned=false
|
||||
while read patch; do
|
||||
dir=${patch%/*}
|
||||
for p in "${path[@]}"; do
|
||||
if test -e "$p/$patch"; then
|
||||
echo "$p/$patch"
|
||||
continue 2
|
||||
fi
|
||||
done
|
||||
for p in "${path[@]}"; do
|
||||
if test -e "$p/$dir.tar.bz2"; then
|
||||
echo "unpacking $p/$dir.tar.bz2" >&2
|
||||
if ! $warned; then
|
||||
echo "pass --patches <directory with unpacked tarballs> to avoid this" >&2
|
||||
warned=true
|
||||
fi
|
||||
tmp_files="$tmp_files $dir"
|
||||
tar -xjf "$p/$dir.tar.bz2"
|
||||
echo "$patch"
|
||||
continue 2
|
||||
fi
|
||||
done
|
||||
echo "Can't find $patch" >&2
|
||||
exit 1
|
||||
done >"$series" < <($(dirname $0)/guards $EXTRA_SYMBOLS <series.conf)
|
||||
|
||||
# Parse all the changes to KERNELRELEASE out of all patches and
|
||||
# convert them to shell code that can be evaluated. Evaluate it.
|
||||
eval "$( {
|
||||
<"$series" xargs awk '
|
||||
/^--- |^\+\+\+ / \
|
||||
{ M = match($2, /^[^\/]+\/Makefile( \t|$)/) }
|
||||
M && /^+(VERSION|PATCHLEVEL|SUBLEVEL|EXTRAVERSION)/ \
|
||||
{ print }
|
||||
' || echo exit 1 ; } \
|
||||
| sed -e 's,^+,,' -e 's, *= *\(.*\),="\1",'
|
||||
)"
|
||||
|
||||
echo "$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION"
|
||||
BIN
config.addon.tar.bz2
LFS
BIN
config.addon.tar.bz2
LFS
Binary file not shown.
@@ -12,7 +12,7 @@
|
||||
- -syms x86_64/debug
|
||||
- x86_64/syzkaller
|
||||
- x86_64/vanilla
|
||||
- -syms x86_64/kvmsmall
|
||||
- -syms x86_64/kvmsmall
|
||||
+x86_64 x86_64/longterm
|
||||
|
||||
# ARM architectures
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# The version of the main tarball to use
|
||||
SRCVERSION=6.6
|
||||
SRCVERSION=6.12
|
||||
# variant of the kernel-source package, either empty or "-rt"
|
||||
VARIANT=-longterm
|
||||
# enable kernel module compression
|
||||
@@ -21,3 +21,5 @@ BUGZILLA_PRODUCT="openSUSE Tumbleweed"
|
||||
BUILD_HTML=Yes
|
||||
# build documentation in PDF format
|
||||
BUILD_PDF=No
|
||||
# Generate compile_commands.json
|
||||
GENERATE_COMPILE_COMMANDS=Yes
|
||||
|
||||
BIN
config.tar.bz2
LFS
BIN
config.tar.bz2
LFS
Binary file not shown.
184
constraints.in
184
constraints.in
@@ -1,184 +0,0 @@
|
||||
<constraints>
|
||||
<!-- Default 35GB for binary packages -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
@BINARY_PACKAGES_XML@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">35</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">4</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 8GB RAM for kernel-syzkaller -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<package>kernel-syzkaller</package>
|
||||
<package>kernel-source@VARIANT@:kernel-syzkaller</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">8</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 8GB for kernel-source@VARIANT@ -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<package>kernel-source@VARIANT@</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">8</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
<hostlabel exclude="true">SLOW_DISK</hostlabel>
|
||||
</overwrite>
|
||||
|
||||
<!-- 4GB for kernel-docs@VARIANT@ -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<package>kernel-docs@VARIANT@</package>
|
||||
<package>kernel-source@VARIANT@:kernel-docs@VARIANT@</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">4</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 24GB for binary packages on armv6/7 -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>armv7l</arch>
|
||||
<arch>armv6l</arch>
|
||||
@BINARY_PACKAGES_XML@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">24</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 16GB of disk and 2GB of memory for binary package on s390x -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>s390x</arch>
|
||||
@BINARY_PACKAGES_XML@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">16</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">2</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 8 CPUs for binary packages on x86 -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>x86_64</arch>
|
||||
<arch>riscv64</arch>
|
||||
@BINARY_PACKAGES_XML@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<jobs>8</jobs>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 4 CPUs for binary packages on POWER -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>ppc</arch>
|
||||
<arch>ppc64</arch>
|
||||
<arch>ppc64le</arch>
|
||||
@BINARY_PACKAGES_XML@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<jobs>4</jobs>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 2 CPUs for binary packages on ARM -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
<arch>armv6l</arch>
|
||||
<arch>armv7l</arch>
|
||||
@BINARY_PACKAGES_XML@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<jobs>2</jobs>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- Build on recent ARMv8.1 to avoid slow builders -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<cpu>
|
||||
<flag>asimdrdm</flag>
|
||||
</cpu>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 45GB for binary packages on aarch64 and x86-->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
<arch>x86_64</arch>
|
||||
@BINARY_PACKAGES_XML@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">45</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<!-- 52GB for binary packages on riscv64-->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>riscv64</arch>
|
||||
@BINARY_PACKAGES_XML@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">52</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>x86_64</arch>
|
||||
<package>kernel-obs-qa</package>
|
||||
<package>kernel-source@VARIANT@:kernel-obs-qa</package>
|
||||
</conditions>
|
||||
<sandbox>kvm</sandbox>
|
||||
</overwrite>
|
||||
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>x86_64</arch>
|
||||
<package>kernel-obs-qa-xen</package>
|
||||
<package>kernel-source@VARIANT@:kernel-obs-qa-xen</package>
|
||||
</conditions>
|
||||
<sandbox>xen</sandbox>
|
||||
</overwrite>
|
||||
</constraints>
|
||||
|
||||
107
dtb.spec.in.in
107
dtb.spec.in.in
@@ -1,107 +0,0 @@
|
||||
#
|
||||
# spec file for package $NAME
|
||||
#
|
||||
# Copyright (c) @YEAR@ SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define srcversion @SRCVERSION@
|
||||
%define patchversion @PATCHVERSION@
|
||||
%define variant @VARIANT@%{nil}
|
||||
|
||||
%include %_sourcedir/kernel-spec-macros
|
||||
|
||||
%(chmod +x %_sourcedir/{@SCRIPTS@})
|
||||
|
||||
Name: $NAME
|
||||
Version: @RPMVERSION@
|
||||
%if 0%{?is_kotd}
|
||||
Release: <RELEASE>.g@COMMIT@
|
||||
%else
|
||||
Release: @RELEASE@
|
||||
%endif
|
||||
Summary: Device Tree files for $MACHINES
|
||||
License: GPL-2.0-only
|
||||
Group: System/Boot
|
||||
URL: https://www.kernel.org/
|
||||
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
|
||||
$ARCH_RESTRICTIONS
|
||||
%else
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
BuildRequires: cpp
|
||||
BuildRequires: dtc >= 1.4.3
|
||||
BuildRequires: xz
|
||||
Requires: kernel = %version
|
||||
@SOURCES@
|
||||
|
||||
%description
|
||||
Device Tree files for $MACHINES.
|
||||
|
||||
$SUBPKG_DESC
|
||||
|
||||
%prep
|
||||
# Unpack all sources and patches
|
||||
%setup -q -c -T -a 0 @UNPACK_PATCHES@
|
||||
cd linux-%srcversion
|
||||
%_sourcedir/apply-patches %_sourcedir/series.conf ..
|
||||
|
||||
|
||||
%build
|
||||
source=linux-%srcversion
|
||||
cp $source/COPYING .
|
||||
SRCDIR=$PWD/$source
|
||||
mkdir pp
|
||||
PPDIR=$PWD/pp
|
||||
export DTC_FLAGS="-R 4 -p 0x1000"
|
||||
DTC_FLAGS="$DTC_FLAGS -@"
|
||||
|
||||
cd $source/$DTS_folder
|
||||
for dts in $ALL_SUPPORTED_DTB; do
|
||||
target=${dts%*.dts}
|
||||
mkdir -p $PPDIR/$(dirname $target)
|
||||
cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I$SRCDIR/include/ -I$SRCDIR/scripts/dtc/include-prefixes/ -P $target.dts -o $PPDIR/$target.dts
|
||||
dtc $DTC_FLAGS -I dts -O dtb -i ./$(dirname $target) -o $PPDIR/$target.dtb $PPDIR/$target.dts
|
||||
done
|
||||
|
||||
%define dtbdir /boot/dtb-%kernelrelease
|
||||
|
||||
%install
|
||||
|
||||
cd pp
|
||||
for dts in $ALL_SUPPORTED_DTB; do
|
||||
target=${dts%*.dts}
|
||||
install -m 755 -d %{buildroot}%{dtbdir}/$(dirname $target)
|
||||
# install -m 644 COPYING %{buildroot}%{dtbdir}/$(dirname $target)
|
||||
install -m 644 $target.dtb %{buildroot}%{dtbdir}/$(dirname $target)
|
||||
%ifarch %arm aarch64 riscv64
|
||||
# HACK: work around U-Boot ignoring vendor dir
|
||||
baselink=%{dtbdir}/$(basename $target).dtb
|
||||
ln -s $target.dtb %{buildroot}$baselink
|
||||
%ifarch %arm
|
||||
case $dts in
|
||||
$SUBPKG_CASE
|
||||
esac
|
||||
echo $baselink >> ../$pkgname.list
|
||||
%else
|
||||
vendordir=$(basename $(dirname $target))
|
||||
echo $baselink >> ../dtb-$vendordir.list
|
||||
%endif
|
||||
%endif
|
||||
done
|
||||
cd -
|
||||
|
||||
$SUBPKG_POST
|
||||
$SUBPKG_FILES
|
||||
%changelog
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use File::Spec;
|
||||
use Getopt::Long;
|
||||
use Getopt::Long qw(:config no_ignore_case);
|
||||
use strict;
|
||||
|
||||
&main();
|
||||
@@ -19,6 +19,12 @@ sub main
|
||||
&output($dev, $ndev, $dev_output, $ndev_output);
|
||||
}
|
||||
|
||||
sub rpm_quote_filename
|
||||
{
|
||||
# technically should also quote % -> %% " -> \" \ -> \\
|
||||
return map { "\"$_\"" } @_;
|
||||
}
|
||||
|
||||
sub scan
|
||||
{
|
||||
# Normalize file path, mainly to strip away the ending forward slash,
|
||||
@@ -53,8 +59,14 @@ sub scan
|
||||
$is_devel ? push(@dev, $abs_path) : push(@ndev, $abs_path);
|
||||
}
|
||||
|
||||
push(@dev, &calc_dirs($abs_loc, \@dev));
|
||||
push(@ndev, &calc_dirs($abs_loc, \@ndev));
|
||||
my @dev_dirs = calc_dirs($abs_loc, \@dev);
|
||||
my @ndev_dirs = calc_dirs($abs_loc, \@ndev);
|
||||
@dev = rpm_quote_filename(@dev);
|
||||
@ndev = rpm_quote_filename(@ndev);
|
||||
@dev_dirs = map { "\%dir $_" } rpm_quote_filename(@dev_dirs);
|
||||
@ndev_dirs = map { "\%dir $_" } rpm_quote_filename(@ndev_dirs);
|
||||
push(@dev, @dev_dirs);
|
||||
push(@ndev, @ndev_dirs);
|
||||
return (\@dev, \@ndev);
|
||||
}
|
||||
|
||||
@@ -75,7 +87,7 @@ sub calc_dirs
|
||||
# This loop also makes sure that $base itself is included.
|
||||
}
|
||||
|
||||
return map { "\%dir $_" } keys %dirs;
|
||||
return keys %dirs;
|
||||
}
|
||||
|
||||
sub output
|
||||
|
||||
4
guards
4
guards
@@ -26,7 +26,7 @@
|
||||
#
|
||||
|
||||
use FileHandle;
|
||||
use Getopt::Long;
|
||||
use Getopt::Long qw(:config no_ignore_case);
|
||||
use strict;
|
||||
|
||||
# Prototypes
|
||||
@@ -205,7 +205,7 @@ if ($check) {
|
||||
# This is not an error if the entries are mutually exclusive...
|
||||
}
|
||||
}
|
||||
exit $problems ? 1 : 0;
|
||||
exit ($problems ? 1 : 0);
|
||||
|
||||
} elsif ($list) {
|
||||
parse($fh, sub {
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifdef __x86_64__
|
||||
/*
|
||||
* Force the linker to use the older memcpy variant, so that the user programs
|
||||
* work on older systems
|
||||
*/
|
||||
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
|
||||
#endif
|
||||
2
kabi.pl
2
kabi.pl
@@ -2,7 +2,7 @@
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Getopt::Long;
|
||||
use Getopt::Long qw(:config no_ignore_case);
|
||||
use Data::Dumper;
|
||||
|
||||
# ( { sym => regexp, mod => regexp, fail => 0/1 }, ... )
|
||||
|
||||
BIN
kabi.tar.bz2
LFS
BIN
kabi.tar.bz2
LFS
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,187 +0,0 @@
|
||||
#
|
||||
# spec file for package kernel-docs@VARIANT@
|
||||
#
|
||||
# Copyright (c) @YEAR@ SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define srcversion @SRCVERSION@
|
||||
%define patchversion @PATCHVERSION@
|
||||
%define git_commit @COMMIT_FULL@
|
||||
%define variant @VARIANT@%{nil}
|
||||
%define build_html @BUILD_HTML@
|
||||
%define build_pdf @BUILD_PDF@
|
||||
|
||||
%include %_sourcedir/kernel-spec-macros
|
||||
|
||||
%(chmod +x %_sourcedir/{@SCRIPTS@})
|
||||
|
||||
Name: kernel-docs@VARIANT@
|
||||
Summary: Kernel Documentation
|
||||
License: GPL-2.0-only
|
||||
Group: Documentation/Man
|
||||
Version: @RPMVERSION@
|
||||
%if 0%{?is_kotd}
|
||||
Release: <RELEASE>.g@COMMIT@
|
||||
%else
|
||||
Release: @RELEASE@
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
|
||||
BuildRequires: bash-sh
|
||||
%endif
|
||||
# TW (4.13 or later) no longer needs xmlto
|
||||
%if 0%{?sle_version}
|
||||
BuildRequires: xmlto
|
||||
%endif
|
||||
%if %build_pdf || %build_html
|
||||
# ReST handling
|
||||
BuildRequires: ImageMagick
|
||||
BuildRequires: graphviz
|
||||
BuildRequires: graphviz-gd
|
||||
BuildRequires: graphviz-gnome
|
||||
%if ! 0%{?suse_version} || 0%{?suse_version} > 1500
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: python3-PyYAML
|
||||
BuildRequires: python3-Sphinx
|
||||
BuildRequires: texlive-amscls
|
||||
%else
|
||||
%if 0%{?suse_version} && 0%{?suse_version} < 1500
|
||||
BuildRequires: python-packaging
|
||||
BuildRequires: python-six
|
||||
BuildRequires: python-Sphinx
|
||||
%else
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: python3-Sphinx < 3
|
||||
%endif
|
||||
%endif
|
||||
BuildRequires: texlive-anyfontsize
|
||||
%if %build_pdf
|
||||
%if 0%{?suse_version} && 0%{?suse_version} < 1500
|
||||
BuildRequires: python-Sphinx-latex
|
||||
%else
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: python3-Sphinx-latex
|
||||
%endif
|
||||
BuildRequires: texlive-adjustbox
|
||||
BuildRequires: texlive-dejavu
|
||||
BuildRequires: texlive-dejavu-fonts
|
||||
BuildRequires: texlive-glyphlist
|
||||
BuildRequires: texlive-makeindex
|
||||
BuildRequires: texlive-varwidth
|
||||
BuildRequires: texlive-xetex
|
||||
BuildRequires: texlive-zapfding
|
||||
%endif
|
||||
%endif
|
||||
URL: https://www.kernel.org/
|
||||
Provides: %name = %version-%source_rel
|
||||
Provides: %name-srchash-%git_commit
|
||||
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
|
||||
BuildArch: noarch
|
||||
%else
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
@SOURCES@
|
||||
|
||||
%description
|
||||
A few basic documents from the current kernel sources.
|
||||
|
||||
%source_timestamp
|
||||
|
||||
%if %build_pdf
|
||||
%package pdf
|
||||
Summary: Kernel Documentation (PDF)
|
||||
Group: Documentation/Other
|
||||
|
||||
%description pdf
|
||||
These are PDF documents built from the current kernel sources.
|
||||
|
||||
%source_timestamp
|
||||
%endif
|
||||
|
||||
%if %build_html
|
||||
%package html
|
||||
Summary: Kernel Documentation (HTML)
|
||||
Group: Documentation/HTML
|
||||
|
||||
%description html
|
||||
These are HTML documents built from the current kernel sources.
|
||||
|
||||
%source_timestamp
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -q -c -T -a 0 @UNPACK_PATCHES@
|
||||
cp -a linux-%srcversion/{COPYING,CREDITS,MAINTAINERS,README} .
|
||||
cp %_sourcedir/old_changelog.txt .
|
||||
cd linux-%srcversion
|
||||
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
|
||||
|
||||
%build
|
||||
cd linux-%srcversion
|
||||
export LANG=en_US.utf8
|
||||
%if %build_html
|
||||
mkdir -p html
|
||||
make %{?make_arg} O=$PWD/html \
|
||||
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
|
||||
PYTHON=python3 \
|
||||
%endif
|
||||
htmldocs
|
||||
%endif
|
||||
%if %build_pdf
|
||||
mkdir -p pdf
|
||||
make %{?make_arg} O=$PWD/pdf \
|
||||
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
|
||||
PYTHON=python3 \
|
||||
%endif
|
||||
pdfdocs
|
||||
%endif
|
||||
|
||||
%install
|
||||
cd linux-%srcversion
|
||||
%if %build_html
|
||||
install -d %{buildroot}%{_datadir}/doc/kernel/html/rst
|
||||
cp -a html/Documentation/output/* %{buildroot}%{_datadir}/doc/kernel/html/rst || true
|
||||
%endif
|
||||
|
||||
%if %build_pdf
|
||||
install -d %{buildroot}%{_datadir}/doc/kernel/pdf
|
||||
for i in pdf/Documentation/output/latex/*.pdf; do
|
||||
cp -a $i %{buildroot}%{_datadir}/doc/kernel/pdf
|
||||
done
|
||||
%endif
|
||||
|
||||
%files
|
||||
%if 0%{?suse_version} && 0%{?suse_version} < 1500
|
||||
%doc COPYING
|
||||
%else
|
||||
%license COPYING
|
||||
%endif
|
||||
%doc CREDITS MAINTAINERS README
|
||||
%doc old_changelog.txt
|
||||
|
||||
%if %build_pdf
|
||||
%files pdf
|
||||
%dir %{_datadir}/doc/kernel
|
||||
%docdir %{_datadir}/doc/kernel/pdf
|
||||
%{_datadir}/doc/kernel/pdf
|
||||
%endif
|
||||
|
||||
%if %build_html
|
||||
%files html
|
||||
%dir %{_datadir}/doc/kernel
|
||||
%docdir %{_datadir}/doc/kernel/html
|
||||
%{_datadir}/doc/kernel/html
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
56938
kernel-longterm.changes
56938
kernel-longterm.changes
File diff suppressed because it is too large
Load Diff
1946
kernel-longterm.spec
1946
kernel-longterm.spec
File diff suppressed because it is too large
Load Diff
@@ -73,27 +73,27 @@ END { exit(! good) }
|
||||
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
|
||||
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/kmp-pre --name "%{-n*}-kmp-%1" \
|
||||
--version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
|
||||
--flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
|
||||
--flavor "%1" --usrmerged "%{usrmerged}" "$@"
|
||||
%post -n %{-n*}-kmp-%1
|
||||
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
|
||||
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/kmp-post --name "%{-n*}-kmp-%1" \
|
||||
--version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
|
||||
--flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
|
||||
--flavor "%1" --usrmerged "%{usrmerged}" "$@"
|
||||
%preun -n %{-n*}-kmp-%1
|
||||
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
|
||||
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/kmp-preun --name "%{-n*}-kmp-%1" \
|
||||
--version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
|
||||
--flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
|
||||
--flavor "%1" --usrmerged "%{usrmerged}" "$@"
|
||||
%postun -n %{-n*}-kmp-%1
|
||||
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
|
||||
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/kmp-postun --name "%{-n*}-kmp-%1" \
|
||||
--version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
|
||||
--flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
|
||||
--flavor "%1" --usrmerged "%{usrmerged}" "$@"
|
||||
%posttrans -n %{-n*}-kmp-%1
|
||||
%{-b:KMP_NEEDS_MKINITRD=1; export KMP_NEEDS_MKINITRD}
|
||||
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/kmp-posttrans --name "%{-n*}-kmp-%1" \
|
||||
--version "%_this_kmp_version" --release "%{-r*}" --kernelrelease "%2" \
|
||||
--flavor "%1" --usrmerged "0%{?usrmerged}" "$@"
|
||||
--flavor "%1" --usrmerged "%{usrmerged}" "$@"
|
||||
%files -n %{-n*}-kmp-%1
|
||||
%{-f:%{expand:%(cd %_sourcedir; cat %{-f*})}}
|
||||
%{!-f:%defattr (-,root,root)}
|
||||
|
||||
@@ -1,183 +0,0 @@
|
||||
#
|
||||
# spec file for package kernel-obs-build
|
||||
#
|
||||
# Copyright (c) @YEAR@ SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
# needsrootforbuild
|
||||
|
||||
|
||||
#!BuildIgnore: post-build-checks
|
||||
|
||||
%define patchversion @PATCHVERSION@
|
||||
%define variant @VARIANT@%{nil}
|
||||
|
||||
%include %_sourcedir/kernel-spec-macros
|
||||
|
||||
Name: kernel-obs-build
|
||||
BuildRequires: coreutils
|
||||
BuildRequires: device-mapper
|
||||
BuildRequires: util-linux
|
||||
|
||||
%if 0%{?suse_version}
|
||||
%if "@OBS_BUILD_VARIANT@"
|
||||
%define kernel_flavor @OBS_BUILD_VARIANT@
|
||||
%else
|
||||
%ifarch %ix86
|
||||
%define kernel_flavor -pae
|
||||
%else
|
||||
%ifarch armv7l armv7hl
|
||||
%define kernel_flavor -lpae
|
||||
%else
|
||||
%define kernel_flavor -default
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
BuildRequires: kernel%kernel_flavor-srchash-@COMMIT_FULL@
|
||||
|
||||
%if 0%{?rhel_version}
|
||||
BuildRequires: kernel
|
||||
%define kernel_flavor ""
|
||||
%endif
|
||||
|
||||
%if ! 0%{?is_kotd} || %{?is_kotd_qa}%{!?is_kotd_qa:0}
|
||||
ExclusiveArch: @ARCHS@
|
||||
%else
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
BuildRequires: dracut
|
||||
Summary: package kernel and initrd for OBS VM builds
|
||||
License: GPL-2.0-only
|
||||
Group: SLES
|
||||
Version: @RPMVERSION@
|
||||
%if 0%{?is_kotd}
|
||||
Release: <RELEASE>.g@COMMIT@
|
||||
%else
|
||||
Release: @RELEASE@
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1550 || 0%{?sle_version} > 150200
|
||||
BuildRequires: zstd
|
||||
%endif
|
||||
|
||||
%description
|
||||
This package is repackaging already compiled kernels to make them usable
|
||||
inside of Open Build Service (OBS) VM builds. An initrd with some basic
|
||||
kernel modules is generated as well, but further kernel modules can be
|
||||
loaded during build when installing the kernel package.
|
||||
|
||||
%prep
|
||||
|
||||
%build
|
||||
# set 'date of last password change' to a static value (bsc#1189305)
|
||||
sed -i 's/^\(root:\*:\)[1-9][0-9]*\(::::::\)/\142\2/' /etc/shadow
|
||||
mkdir -p /usr/lib/dracut/modules.d/80obs
|
||||
cat > /usr/lib/dracut/modules.d/80obs/module-setup.sh <<EOF
|
||||
#!/bin/bash
|
||||
|
||||
# called by dracut
|
||||
check() {
|
||||
return 0
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
installkernel() {
|
||||
hostonly='' instmods obs
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
install() {
|
||||
inst_hook pre-udev 10 "\$moddir"/setup_obs.sh
|
||||
}
|
||||
EOF
|
||||
chmod a+rx /usr/lib/dracut/modules.d/80obs/module-setup.sh
|
||||
cat > /usr/lib/dracut/modules.d/80obs/setup_obs.sh <<EOF
|
||||
#!/bin/sh
|
||||
info "Loading kernel modules for OBS"
|
||||
info " Loop..."
|
||||
modprobe -q loop max_loop=64
|
||||
info " binfmt misc..."
|
||||
modprobe -q binfmt_misc
|
||||
EOF
|
||||
chmod a+rx /usr/lib/dracut/modules.d/80obs/setup_obs.sh
|
||||
# Configure systemd in kernel-obs-build's initrd not to limit TasksMax,
|
||||
# we run with build as PID 1 (boo#965564)
|
||||
echo "DefaultTasksMax=infinity" >> /etc/systemd/system.conf
|
||||
echo "DefaultTasksAccounting=no" >> /etc/systemd/system.conf
|
||||
echo 127.0.0.1 localhost > /etc/hosts # omit build-machine host name (boo#1084909)
|
||||
|
||||
# a longer list to have them also available for qemu cross builds where x86_64 kernel runs in eg. arm env.
|
||||
# this list of modules where available on build workers of build.opensuse.org, so we stay compatible.
|
||||
export KERNEL_MODULES="loop dm-crypt essiv dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 reiserfs btrfs xfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth overlay 9p 9pnet_virtio qemu_fw_cfg"
|
||||
|
||||
# manually load all modules to make sure they're available
|
||||
for i in $KERNEL_MODULES; do
|
||||
(
|
||||
echo "info ' $i'"
|
||||
echo "modprobe -q $i"
|
||||
) >> /usr/lib/dracut/modules.d/80obs/setup_obs.sh
|
||||
done
|
||||
|
||||
ROOT=""
|
||||
[ -e "/dev/vda" ] && ROOT="-d /dev/vda"
|
||||
[ -e /dev/hda1 ] && ROOT="-d /dev/hda1" # for xen builds
|
||||
%define kernel_name vmlinu?
|
||||
%ifarch s390 s390x
|
||||
%define kernel_name image
|
||||
%endif
|
||||
%ifarch %arm
|
||||
%define kernel_name zImage
|
||||
%endif
|
||||
%ifarch aarch64 riscv64
|
||||
%define kernel_name Image
|
||||
%endif
|
||||
|
||||
# --host-only mode is needed for unlimited TasksMax workaround (boo#965564)
|
||||
dracut --reproducible --host-only --no-hostonly-cmdline \
|
||||
--no-early-microcode --nofscks --strip --hardlink \
|
||||
--drivers="$KERNEL_MODULES" --force /tmp/initrd.kvm \
|
||||
%if 0%{?suse_version} > 1550 || 0%{?sle_version} > 150200
|
||||
--compress "zstd -19 -T0" \
|
||||
%endif
|
||||
$(echo /boot/%{kernel_name}-*%{kernel_flavor} | sed -n -e 's,[^-]*-\(.*'%{kernel_flavor}'\),\1,p')
|
||||
|
||||
#cleanup
|
||||
rm -rf /usr/lib/dracut/modules.d/80obs
|
||||
|
||||
%install
|
||||
install -d -m 0755 %{buildroot}
|
||||
cp -v /boot/%{kernel_name}-*%{kernel_flavor} %{buildroot}/.build.kernel.kvm
|
||||
cp -v /tmp/initrd.kvm %{buildroot}/.build.initrd.kvm
|
||||
|
||||
# inform worker kernel parameters to invoke
|
||||
CMDLINE="elevator=noop nmi_watchdog=0 rw ia32_emulation=1"
|
||||
echo "$CMDLINE" > %{buildroot}/.build.cmdline.kvm
|
||||
|
||||
# inform worker about availability of virtio-serial
|
||||
touch %{buildroot}/.build.console.kvm
|
||||
if grep -qx CONFIG_VIRTIO_CONSOLE=y /boot/config-*%{kernel_flavor} ; then
|
||||
echo "virtio" > %{buildroot}/.build.console.kvm
|
||||
fi
|
||||
|
||||
#inform worker about arch
|
||||
#see obs-build commit e47399d738e51
|
||||
uname -m > %{buildroot}/.build.hostarch.kvm
|
||||
|
||||
%files
|
||||
/.build.cmdline.*
|
||||
/.build.console.*
|
||||
/.build.hostarch.*
|
||||
/.build.initrd.*
|
||||
/.build.kernel.*
|
||||
|
||||
%changelog
|
||||
@@ -1,76 +0,0 @@
|
||||
#
|
||||
# spec file for package kernel-obs-qa
|
||||
#
|
||||
# Copyright (c) @YEAR@ SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
# needsrootforbuild
|
||||
|
||||
|
||||
%define patchversion @PATCHVERSION@
|
||||
%define variant @VARIANT@%{nil}
|
||||
|
||||
%include %_sourcedir/kernel-spec-macros
|
||||
|
||||
Name: kernel-obs-qa
|
||||
BuildRequires: kernel-default
|
||||
# kernel-obs-build must be also configured as VMinstall, but is required
|
||||
# here as well to avoid that qa and build package build parallel
|
||||
BuildRequires: kernel-obs-build
|
||||
BuildRequires: modutils
|
||||
%if ! 0%{?is_kotd} || %{?is_kotd_qa}%{!?is_kotd_qa:0}
|
||||
ExclusiveArch: @ARCHS@
|
||||
%else
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
Summary: Basic QA tests for the kernel
|
||||
License: GPL-2.0-only
|
||||
Group: SLES
|
||||
Version: @RPMVERSION@
|
||||
%if 0%{?is_kotd}
|
||||
Release: <RELEASE>.g@COMMIT@
|
||||
%else
|
||||
Release: @RELEASE@
|
||||
%endif
|
||||
|
||||
%description
|
||||
This package is using the kernel compiled within Open Build Service(OBS)
|
||||
projects and runs basic tests.
|
||||
|
||||
%prep
|
||||
|
||||
%build
|
||||
|
||||
%check
|
||||
# More tests are comming, currently the main test is the existens of
|
||||
# this spec file. It does trigger a build within OBS VM which is using
|
||||
# the kernel of the same project.
|
||||
|
||||
# test suites should be packaged in other packages, but build required
|
||||
# and called here.
|
||||
|
||||
krel=$(uname -r)
|
||||
if test ! -d "/lib/modules/$krel/kernel" && test ! -d "/usr/lib/modules/$krel/kernel"; then
|
||||
echo "Kernel package for $krel not installed; exiting"
|
||||
exit 0
|
||||
fi
|
||||
/sbin/modprobe loop
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}/usr/share/%name
|
||||
touch %{buildroot}/usr/share/%name/logfile
|
||||
|
||||
%files
|
||||
/usr/share/%name
|
||||
|
||||
%changelog
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package kernel-source-longterm
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2026 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -16,24 +16,21 @@
|
||||
#
|
||||
|
||||
|
||||
%define srcversion 6.6
|
||||
%define patchversion 6.6.50
|
||||
%define git_commit e2ac9495079bda452d5e19af61c25c52dd6f89f7
|
||||
%define srcversion 6.12
|
||||
%define patchversion 6.12.68
|
||||
%define git_commit 6a162b8bd53815766e70047d2f150f19a2ef1971
|
||||
%define variant -longterm%{nil}
|
||||
%define gcc_package gcc
|
||||
%define gcc_compiler gcc
|
||||
|
||||
%include %_sourcedir/kernel-spec-macros
|
||||
|
||||
%define src_install_dir usr/src/linux-%kernelrelease%variant
|
||||
|
||||
# if undefined use legacy location of before SLE15
|
||||
%if %{undefined _rpmmacrodir}
|
||||
%define _rpmmacrodir /etc/rpm
|
||||
%endif
|
||||
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,arch-symbols,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
|
||||
|
||||
Name: kernel-source-longterm
|
||||
Version: 6.6.50
|
||||
Version: 6.12.68
|
||||
%if 0%{?is_kotd}
|
||||
Release: <RELEASE>.ge2ac949
|
||||
Release: <RELEASE>.g6a162b8
|
||||
%else
|
||||
Release: 0
|
||||
%endif
|
||||
@@ -47,8 +44,18 @@ BuildRequires: bash-sh
|
||||
%endif
|
||||
BuildRequires: coreutils
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: sed
|
||||
Requires(post): coreutils sed
|
||||
BuildArch: noarch
|
||||
Prefix: /usr/src
|
||||
|
||||
%define src_install_dir usr/src/linux-%kernelrelease%variant
|
||||
|
||||
# if undefined use legacy location of before SLE15
|
||||
%if %{undefined _rpmmacrodir}
|
||||
%define _rpmmacrodir /etc/rpm
|
||||
%endif
|
||||
|
||||
Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz
|
||||
%if "https://www.kernel.org/pub/linux/kernel/v6.x/" != ""
|
||||
Source1: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.sign
|
||||
@@ -73,31 +80,13 @@ Source47: modversions
|
||||
Source48: macros.kernel-source
|
||||
Source49: kernel-module-subpackage
|
||||
Source50: kabi.pl
|
||||
Source51: mkspec
|
||||
Source52: kernel-source%variant.changes
|
||||
Source53: kernel-source.spec.in
|
||||
Source54: kernel-binary.spec.in
|
||||
Source55: kernel-syms.spec.in
|
||||
Source56: kernel-docs.spec.in
|
||||
Source57: kernel-cert-subpackage
|
||||
Source58: constraints.in
|
||||
Source60: config.sh
|
||||
Source61: compute-PATCHVERSION.sh
|
||||
Source62: old-flavors
|
||||
Source63: arch-symbols
|
||||
Source64: package-descriptions
|
||||
Source65: kernel-spec-macros
|
||||
Source67: log.sh
|
||||
Source68: host-memcpy-hack.h
|
||||
Source69: try-disable-staging-driver
|
||||
Source70: kernel-obs-build.spec.in
|
||||
Source71: kernel-obs-qa.spec.in
|
||||
Source72: compress-vmlinux.sh
|
||||
Source73: dtb.spec.in.in
|
||||
Source74: mkspec-dtb
|
||||
Source75: release-projects
|
||||
Source76: check-module-license
|
||||
Source77: klp-symbols
|
||||
Source78: modules.fips
|
||||
Source79: splitflist
|
||||
Source80: mergedep
|
||||
@@ -122,12 +111,7 @@ Source113: patches.kabi.tar.bz2
|
||||
Source114: patches.drm.tar.bz2
|
||||
Source120: kabi.tar.bz2
|
||||
Source121: sysctl.tar.bz2
|
||||
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
|
||||
BuildArch: noarch
|
||||
%else
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
Prefix: /usr/src
|
||||
Requires(post): coreutils sed
|
||||
# Source is only complete with devel files.
|
||||
Requires: kernel-devel%variant = %version-%source_rel
|
||||
Provides: %name = %version-%source_rel
|
||||
@@ -148,10 +132,9 @@ Recommends: dwarves >= 1.22
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
|
||||
Recommends: kernel-install-tools
|
||||
%endif
|
||||
Recommends: %gcc_package
|
||||
%obsolete_rebuilds %name
|
||||
|
||||
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
|
||||
|
||||
# Force bzip2 instead of lzma compression to
|
||||
# 1) allow install on older dist versions, and
|
||||
# 2) decrease build times (bsc#962356 boo#1175882)
|
||||
@@ -166,8 +149,15 @@ Linux kernel sources with many fixes and improvements.
|
||||
|
||||
|
||||
%source_timestamp
|
||||
|
||||
%post
|
||||
%relink_function
|
||||
|
||||
relink linux-%kernelrelease%variant /usr/src/linux%variant
|
||||
|
||||
%files -f nondevel.files
|
||||
|
||||
%package -n kernel-devel%variant
|
||||
%obsolete_rebuilds kernel-devel%variant
|
||||
Summary: Development files needed for building kernel modules
|
||||
Group: Development/Sources
|
||||
AutoReqProv: off
|
||||
@@ -175,13 +165,24 @@ Provides: kernel-devel%variant = %version-%source_rel
|
||||
Provides: multiversion(kernel)
|
||||
Requires: kernel-macros
|
||||
Requires(post): coreutils
|
||||
%obsolete_rebuilds kernel-devel%variant
|
||||
|
||||
%description -n kernel-devel%variant
|
||||
Kernel-level headers and Makefiles required for development of
|
||||
external kernel modules.
|
||||
|
||||
|
||||
%source_timestamp
|
||||
|
||||
%post -n kernel-devel%variant
|
||||
%relink_function
|
||||
|
||||
relink linux-%kernelrelease%variant /usr/src/linux%variant
|
||||
|
||||
%files -n kernel-devel%variant -f devel.files
|
||||
%ghost /usr/src/linux%variant
|
||||
%doc /usr/share/doc/packages/*
|
||||
|
||||
# Note: The kernel-macros package intentionally does not provide
|
||||
# multiversion(kernel) nor is its name decorated with the variant (-rt)
|
||||
%package -n kernel-macros
|
||||
@@ -192,8 +193,17 @@ Provides: kernel-subpackage-macros
|
||||
%description -n kernel-macros
|
||||
This package provides the rpm macros and templates for Kernel Module Packages
|
||||
|
||||
|
||||
%source_timestamp
|
||||
|
||||
%if "%variant" == ""
|
||||
%files -n kernel-macros
|
||||
%{_rpmmacrodir}/macros.kernel-source
|
||||
/usr/lib/rpm/kernel-*-subpackage
|
||||
%dir /usr/lib/rpm/kernel
|
||||
/usr/lib/rpm/kernel/*
|
||||
%endif
|
||||
|
||||
%package vanilla
|
||||
%obsolete_rebuilds %name-vanilla
|
||||
Summary: Vanilla Linux kernel sources with minor build fixes
|
||||
@@ -213,6 +223,11 @@ Vanilla Linux kernel sources with minor build fixes.
|
||||
|
||||
%source_timestamp
|
||||
|
||||
%if %do_vanilla
|
||||
%files vanilla
|
||||
/usr/src/linux-%kernelrelease-vanilla
|
||||
%endif
|
||||
|
||||
%prep
|
||||
|
||||
echo "Symbol(s): %symbols"
|
||||
@@ -237,6 +252,8 @@ fi
|
||||
linux-%kernelrelease%variant linux-%kernelrelease-vanilla
|
||||
cd linux-%kernelrelease-vanilla
|
||||
%_sourcedir/apply-patches --vanilla %_sourcedir/series.conf %my_builddir %symbols
|
||||
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
|
||||
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
|
||||
rm -f $(find . -name ".gitignore")
|
||||
# Hardlink duplicate files automatically (from package fdupes).
|
||||
%fdupes $PWD
|
||||
@@ -245,6 +262,8 @@ cd ..
|
||||
|
||||
cd linux-%kernelrelease%variant
|
||||
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
|
||||
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
|
||||
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
|
||||
rm -f $(find . -name ".gitignore")
|
||||
|
||||
if [ -f %_sourcedir/localversion ] ; then
|
||||
@@ -284,8 +303,9 @@ popd
|
||||
|
||||
find %{buildroot}/usr/src/linux* -type f -name '*.[ch]' -perm /0111 -exec chmod -v a-x {} +
|
||||
# OBS checks don't like /usr/bin/env in script interpreter lines
|
||||
grep -Elr '^#! */usr/bin/env ' %{buildroot}/usr/src/linux* | while read f; do
|
||||
sed -re '1 { s_^#! */usr/bin/env +/_#!/_ ; s_^#! */usr/bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f"
|
||||
grep -Elr '^#! */(usr/)?bin/env ' %{buildroot}/usr/src/linux* | while read f; do
|
||||
sed -re '1 { s_^#! */usr/bin/env +/_#!/_ ; s_^#! */usr/bin/env +([^/])_#!/usr/bin/\1_ }' \
|
||||
-e '1 { s_^#! */bin/env +/_#!/_ ; s_^#! */bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f"
|
||||
done
|
||||
# kernel-source and kernel-$flavor-devel are built independently, but the
|
||||
# shipped sources (/usr/src/linux/) need to be older than generated files
|
||||
@@ -293,37 +313,6 @@ done
|
||||
# the future and be thus lower than the timestamps of files built from the
|
||||
# source (bnc#669669).
|
||||
ts="$(head -n1 %_sourcedir/source-timestamp)"
|
||||
find %buildroot/usr/src/linux* ! -type l | xargs touch -d "$ts"
|
||||
|
||||
%post
|
||||
%relink_function
|
||||
|
||||
relink linux-%kernelrelease%variant /usr/src/linux%variant
|
||||
|
||||
%post -n kernel-devel%variant
|
||||
%relink_function
|
||||
|
||||
relink linux-%kernelrelease%variant /usr/src/linux%variant
|
||||
|
||||
%files -f nondevel.files
|
||||
|
||||
%files -n kernel-devel%variant -f devel.files
|
||||
%ghost /usr/src/linux%variant
|
||||
%doc /usr/share/doc/packages/*
|
||||
|
||||
%if "%variant" == ""
|
||||
%files -n kernel-macros
|
||||
%{_rpmmacrodir}/macros.kernel-source
|
||||
/usr/lib/rpm/kernel-*-subpackage
|
||||
%dir /usr/lib/rpm/kernel
|
||||
/usr/lib/rpm/kernel/*
|
||||
%endif
|
||||
|
||||
|
||||
%if %do_vanilla
|
||||
|
||||
%files vanilla
|
||||
/usr/src/linux-%kernelrelease-vanilla
|
||||
%endif
|
||||
find %buildroot/usr/src/linux* ! -type l -print0 | xargs -0 touch -d "$ts"
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -1,329 +0,0 @@
|
||||
#
|
||||
# spec file for package kernel-source@VARIANT@
|
||||
#
|
||||
# Copyright (c) @YEAR@ SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define srcversion @SRCVERSION@
|
||||
%define patchversion @PATCHVERSION@
|
||||
%define git_commit @COMMIT_FULL@
|
||||
%define variant @VARIANT@%{nil}
|
||||
|
||||
%include %_sourcedir/kernel-spec-macros
|
||||
|
||||
%define src_install_dir usr/src/linux-%kernelrelease%variant
|
||||
|
||||
# if undefined use legacy location of before SLE15
|
||||
%if %{undefined _rpmmacrodir}
|
||||
%define _rpmmacrodir /etc/rpm
|
||||
%endif
|
||||
|
||||
Name: kernel-source@VARIANT@
|
||||
Version: @RPMVERSION@
|
||||
%if 0%{?is_kotd}
|
||||
Release: <RELEASE>.g@COMMIT@
|
||||
%else
|
||||
Release: @RELEASE@
|
||||
%endif
|
||||
Summary: The Linux Kernel Sources
|
||||
License: GPL-2.0-only
|
||||
Group: Development/Sources
|
||||
URL: https://www.kernel.org/
|
||||
AutoReqProv: off
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
|
||||
BuildRequires: bash-sh
|
||||
%endif
|
||||
BuildRequires: coreutils
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: sed
|
||||
Requires(post): coreutils sed
|
||||
Source0: @TARBALL_URL@linux-%srcversion.tar.xz
|
||||
%if "@TARBALL_URL@" != ""
|
||||
Source1: @TARBALL_URL@linux-%srcversion.tar.sign
|
||||
Source2: linux.keyring
|
||||
%endif
|
||||
Source3: kernel-source.rpmlintrc
|
||||
Source14: series.conf
|
||||
Source16: guards
|
||||
Source17: apply-patches
|
||||
Source19: kernel-binary-conflicts
|
||||
Source20: obsolete-kmps
|
||||
Source21: config.conf
|
||||
Source23: supported.conf
|
||||
Source33: check-for-config-changes
|
||||
Source35: group-source-files.pl
|
||||
Source36: README.PATCH-POLICY.SUSE
|
||||
Source37: README.SUSE
|
||||
Source38: README.KSYMS
|
||||
Source40: source-timestamp
|
||||
Source46: split-modules
|
||||
Source47: modversions
|
||||
Source48: macros.kernel-source
|
||||
Source49: kernel-module-subpackage
|
||||
Source50: kabi.pl
|
||||
Source51: mkspec
|
||||
Source52: kernel-source%variant.changes
|
||||
Source53: kernel-source.spec.in
|
||||
Source54: kernel-binary.spec.in
|
||||
Source55: kernel-syms.spec.in
|
||||
Source56: kernel-docs.spec.in
|
||||
Source57: kernel-cert-subpackage
|
||||
Source58: constraints.in
|
||||
Source60: config.sh
|
||||
Source61: compute-PATCHVERSION.sh
|
||||
Source62: old-flavors
|
||||
Source63: arch-symbols
|
||||
Source64: package-descriptions
|
||||
Source65: kernel-spec-macros
|
||||
Source67: log.sh
|
||||
Source68: host-memcpy-hack.h
|
||||
Source69: try-disable-staging-driver
|
||||
Source70: kernel-obs-build.spec.in
|
||||
Source71: kernel-obs-qa.spec.in
|
||||
Source72: compress-vmlinux.sh
|
||||
Source73: dtb.spec.in.in
|
||||
Source74: mkspec-dtb
|
||||
Source75: release-projects
|
||||
Source76: check-module-license
|
||||
Source77: klp-symbols
|
||||
Source78: modules.fips
|
||||
Source79: splitflist
|
||||
Source80: mergedep
|
||||
Source81: moddep
|
||||
Source82: modflist
|
||||
Source83: kernel-subpackage-build
|
||||
Source84: kernel-subpackage-spec
|
||||
Source85: kernel-default-base.spec.txt
|
||||
Source86: old_changelog.txt
|
||||
Source100: config.tar.bz2
|
||||
Source101: config.addon.tar.bz2
|
||||
Source102: patches.arch.tar.bz2
|
||||
Source103: patches.drivers.tar.bz2
|
||||
Source104: patches.fixes.tar.bz2
|
||||
Source105: patches.rpmify.tar.bz2
|
||||
Source106: patches.suse.tar.bz2
|
||||
Source108: patches.addon.tar.bz2
|
||||
Source109: patches.kernel.org.tar.bz2
|
||||
Source110: patches.apparmor.tar.bz2
|
||||
Source111: patches.rt.tar.bz2
|
||||
Source113: patches.kabi.tar.bz2
|
||||
Source114: patches.drm.tar.bz2
|
||||
Source120: kabi.tar.bz2
|
||||
Source121: sysctl.tar.bz2
|
||||
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
|
||||
BuildArch: noarch
|
||||
%else
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
Prefix: /usr/src
|
||||
# Source is only complete with devel files.
|
||||
Requires: kernel-devel%variant = %version-%source_rel
|
||||
Provides: %name = %version-%source_rel
|
||||
Provides: %name-srchash-%git_commit
|
||||
Provides: linux
|
||||
Provides: multiversion(kernel)
|
||||
# extra packages needed for building a kernel from scratch
|
||||
Recommends: bc
|
||||
Recommends: bison
|
||||
Recommends: flex
|
||||
Recommends: libelf-devel
|
||||
Recommends: openssl-devel
|
||||
# pahole needed for BTF
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
|
||||
Recommends: dwarves >= 1.22
|
||||
%endif
|
||||
# dracut no longer carries installkernel
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
|
||||
Recommends: kernel-install-tools
|
||||
%endif
|
||||
%obsolete_rebuilds %name
|
||||
|
||||
%(chmod +x %_sourcedir/{@SCRIPTS@})
|
||||
|
||||
# Force bzip2 instead of lzma compression to
|
||||
# 1) allow install on older dist versions, and
|
||||
# 2) decrease build times (bsc#962356 boo#1175882)
|
||||
%define _binary_payload w9.bzdio
|
||||
|
||||
%define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
|
||||
|
||||
%define do_vanilla "%variant" == ""
|
||||
|
||||
%description
|
||||
Linux kernel sources with many fixes and improvements.
|
||||
|
||||
|
||||
%source_timestamp
|
||||
%package -n kernel-devel%variant
|
||||
%obsolete_rebuilds kernel-devel%variant
|
||||
Summary: Development files needed for building kernel modules
|
||||
Group: Development/Sources
|
||||
AutoReqProv: off
|
||||
Provides: kernel-devel%variant = %version-%source_rel
|
||||
Provides: multiversion(kernel)
|
||||
Requires: kernel-macros
|
||||
Requires(post): coreutils
|
||||
|
||||
%description -n kernel-devel%variant
|
||||
Kernel-level headers and Makefiles required for development of
|
||||
external kernel modules.
|
||||
|
||||
%source_timestamp
|
||||
|
||||
# Note: The kernel-macros package intentionally does not provide
|
||||
# multiversion(kernel) nor is its name decorated with the variant (-rt)
|
||||
%package -n kernel-macros
|
||||
Summary: RPM macros for building Kernel Module Packages
|
||||
Group: Development/Sources
|
||||
Provides: kernel-subpackage-macros
|
||||
|
||||
%description -n kernel-macros
|
||||
This package provides the rpm macros and templates for Kernel Module Packages
|
||||
|
||||
%source_timestamp
|
||||
|
||||
%package vanilla
|
||||
%obsolete_rebuilds %name-vanilla
|
||||
Summary: Vanilla Linux kernel sources with minor build fixes
|
||||
Group: Development/Sources
|
||||
AutoReqProv: off
|
||||
Provides: %name-vanilla = %version-%source_rel
|
||||
Provides: multiversion(kernel)
|
||||
Requires: kernel-macros
|
||||
# dracut no longer carries installkernel
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
|
||||
Recommends: kernel-install-tools
|
||||
%endif
|
||||
|
||||
%description vanilla
|
||||
Vanilla Linux kernel sources with minor build fixes.
|
||||
|
||||
|
||||
%source_timestamp
|
||||
|
||||
%prep
|
||||
|
||||
echo "Symbol(s): %symbols"
|
||||
|
||||
# Unpack all sources and patches
|
||||
%setup -q -c -T @UNPACK_PATCHES@
|
||||
|
||||
%build
|
||||
%install
|
||||
mkdir -p %{buildroot}/usr/src
|
||||
pushd %{buildroot}/usr/src
|
||||
|
||||
# Unpack the vanilla kernel sources
|
||||
tar -xf %{S:0}
|
||||
find . -xtype l -delete -printf "deleted '%f'\n"
|
||||
if test "%srcversion" != "%kernelrelease%variant"; then
|
||||
mv linux-%srcversion linux-%kernelrelease%variant
|
||||
fi
|
||||
|
||||
%if %do_vanilla
|
||||
cp -al \
|
||||
linux-%kernelrelease%variant linux-%kernelrelease-vanilla
|
||||
cd linux-%kernelrelease-vanilla
|
||||
%_sourcedir/apply-patches --vanilla %_sourcedir/series.conf %my_builddir %symbols
|
||||
rm -f $(find . -name ".gitignore")
|
||||
# Hardlink duplicate files automatically (from package fdupes).
|
||||
%fdupes $PWD
|
||||
cd ..
|
||||
%endif
|
||||
|
||||
cd linux-%kernelrelease%variant
|
||||
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
|
||||
rm -f $(find . -name ".gitignore")
|
||||
|
||||
if [ -f %_sourcedir/localversion ] ; then
|
||||
cat %_sourcedir/localversion > localversion
|
||||
fi
|
||||
# Hardlink duplicate files automatically (from package fdupes).
|
||||
%fdupes $PWD
|
||||
cd ..
|
||||
popd
|
||||
|
||||
# Install the documentation and example Kernel Module Package.
|
||||
DOC=/usr/share/doc/packages/%name-%kernelrelease
|
||||
mkdir -p %buildroot/$DOC
|
||||
cp %_sourcedir/README.SUSE %buildroot/$DOC
|
||||
ln -s $DOC/README.SUSE %buildroot/%src_install_dir/
|
||||
|
||||
%if "%variant" == ""
|
||||
install -m 755 -d %{buildroot}%{_rpmmacrodir}
|
||||
install -m 644 %_sourcedir/macros.kernel-source %{buildroot}%{_rpmmacrodir}
|
||||
echo "%%kernel_module_directory %{kernel_module_directory}" >> %{buildroot}%{_rpmmacrodir}/macros.kernel-source
|
||||
|
||||
install -m 755 -d %{buildroot}/usr/lib/rpm
|
||||
install -m 644 %_sourcedir/kernel-{module,cert}-subpackage \
|
||||
%{buildroot}/usr/lib/rpm/
|
||||
install -m 755 -d %{buildroot}/usr/lib/rpm/kernel
|
||||
install -m 755 %_sourcedir/{splitflist,mergedep,moddep,modflist,kernel-subpackage-build} %{buildroot}/usr/lib/rpm/kernel
|
||||
install -m 644 %_sourcedir/kernel-subpackage-spec %{buildroot}/usr/lib/rpm/kernel
|
||||
install -m 644 %_sourcedir/kernel-spec-macros %{buildroot}/usr/lib/rpm/kernel
|
||||
install -m 644 -T %_sourcedir/kernel-default-base.spec.txt %{buildroot}/usr/lib/rpm/kernel/kernel-default-base.spec
|
||||
%endif
|
||||
|
||||
pushd "%buildroot"
|
||||
perl "%_sourcedir/group-source-files.pl" \
|
||||
-D "$OLDPWD/devel.files" -N "$OLDPWD/nondevel.files" \
|
||||
-L "%src_install_dir"
|
||||
popd
|
||||
|
||||
find %{buildroot}/usr/src/linux* -type f -name '*.[ch]' -perm /0111 -exec chmod -v a-x {} +
|
||||
# OBS checks don't like /usr/bin/env in script interpreter lines
|
||||
grep -Elr '^#! */usr/bin/env ' %{buildroot}/usr/src/linux* | while read f; do
|
||||
sed -re '1 { s_^#! */usr/bin/env +/_#!/_ ; s_^#! */usr/bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f"
|
||||
done
|
||||
# kernel-source and kernel-$flavor-devel are built independently, but the
|
||||
# shipped sources (/usr/src/linux/) need to be older than generated files
|
||||
# (/usr/src/linux-obj). We rely on the git commit timestamp to not point into
|
||||
# the future and be thus lower than the timestamps of files built from the
|
||||
# source (bnc#669669).
|
||||
ts="$(head -n1 %_sourcedir/source-timestamp)"
|
||||
find %buildroot/usr/src/linux* ! -type l | xargs touch -d "$ts"
|
||||
|
||||
%post
|
||||
%relink_function
|
||||
|
||||
relink linux-%kernelrelease%variant /usr/src/linux%variant
|
||||
|
||||
%post -n kernel-devel%variant
|
||||
%relink_function
|
||||
|
||||
relink linux-%kernelrelease%variant /usr/src/linux%variant
|
||||
|
||||
%files -f nondevel.files
|
||||
|
||||
%files -n kernel-devel%variant -f devel.files
|
||||
%ghost /usr/src/linux%variant
|
||||
%doc /usr/share/doc/packages/*
|
||||
|
||||
%if "%variant" == ""
|
||||
%files -n kernel-macros
|
||||
%{_rpmmacrodir}/macros.kernel-source
|
||||
/usr/lib/rpm/kernel-*-subpackage
|
||||
%dir /usr/lib/rpm/kernel
|
||||
/usr/lib/rpm/kernel/*
|
||||
%endif
|
||||
|
||||
|
||||
%if %do_vanilla
|
||||
|
||||
%files vanilla
|
||||
/usr/src/linux-%kernelrelease-vanilla
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
@@ -11,8 +11,10 @@
|
||||
%endif
|
||||
|
||||
# TW is usrmerged
|
||||
%if %{undefined usrmerged} && 0%{?suse_version} >= 1550
|
||||
%if 0%{?suse_version} >= 1550
|
||||
%define usrmerged 1
|
||||
%else
|
||||
%define usrmerged 0
|
||||
%endif
|
||||
|
||||
# source_rel is the package release string, without the rebuild counter
|
||||
@@ -68,7 +70,7 @@
|
||||
rm -f "$2" && ln -s "$1" "$2" \
|
||||
}
|
||||
|
||||
%if 0%{?usrmerged}
|
||||
%if %{usrmerged}
|
||||
%define kernel_module_directory /usr/lib/modules
|
||||
%else
|
||||
%define kernel_module_directory /lib/modules
|
||||
|
||||
@@ -60,7 +60,11 @@ while read name mode size mtime link; do
|
||||
(( p != 0 )) || p=''
|
||||
if (( t == 0100000 )); then
|
||||
install -D -m "${p:-0644}" /dev/null "$RPM_BUILD_ROOT$name"
|
||||
dd if=/dev/null bs=1 count=0 status=none seek="$size" of="$RPM_BUILD_ROOT$name"
|
||||
if [ -f "$RPM_BUILD_ROOT$name".xz ] ; then xzcat "$RPM_BUILD_ROOT$name".xz > "$RPM_BUILD_ROOT$name"
|
||||
elif [ -f "$RPM_BUILD_ROOT$name".gz ] ; then zcat "$RPM_BUILD_ROOT$name".gz > "$RPM_BUILD_ROOT$name"
|
||||
elif [ -f "$RPM_BUILD_ROOT$name".zst ] ; then zstdcat "$RPM_BUILD_ROOT$name".zst > "$RPM_BUILD_ROOT$name"
|
||||
else dd if=/dev/null bs=1 count=0 status=none seek="$size" of="$RPM_BUILD_ROOT$name"
|
||||
fi
|
||||
touch -h --date="@$mtime" "$RPM_BUILD_ROOT$name"
|
||||
elif (( t == 0040000 )); then
|
||||
install -d -m "${p:-0755}" "$RPM_BUILD_ROOT$name"
|
||||
|
||||
@@ -91,6 +91,11 @@ There is no reason to install this package.
|
||||
|
||||
%install
|
||||
|
||||
# get rid of /usr/lib/rpm/brp-strip-debug
|
||||
# strip removes too much from the vmlinux ELF binary
|
||||
export NO_BRP_STRIP_DEBUG=true
|
||||
export STRIP_KEEP_SYMTAB='*/vmlinux*'
|
||||
|
||||
echo "%{?modules}" | tr ', ' '\n\n' > request-modules
|
||||
%scriptdir/kernel-subpackage-build %kernel_package_name %rpm_kver-%rpm_krel %package_name-%version-%release
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package kernel-syms-longterm
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2026 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -16,44 +16,34 @@
|
||||
#
|
||||
|
||||
|
||||
%define git_commit e2ac9495079bda452d5e19af61c25c52dd6f89f7
|
||||
%define git_commit 6a162b8bd53815766e70047d2f150f19a2ef1971
|
||||
%define variant -longterm%{nil}
|
||||
|
||||
%include %_sourcedir/kernel-spec-macros
|
||||
|
||||
Name: kernel-syms-longterm
|
||||
Summary: Kernel Symbol Versions (modversions)
|
||||
License: GPL-2.0-only
|
||||
Group: Development/Sources
|
||||
Version: 6.6.50
|
||||
%if %using_buildservice
|
||||
Version: 6.12.68
|
||||
%if 0%{?is_kotd}
|
||||
Release: <RELEASE>.ge2ac949
|
||||
Release: <RELEASE>.g6a162b8
|
||||
%else
|
||||
Release: 0
|
||||
%endif
|
||||
%else
|
||||
%define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0)
|
||||
Release: %kernel_source_release
|
||||
%endif
|
||||
Summary: Kernel Symbol Versions (modversions)
|
||||
License: GPL-2.0-only
|
||||
Group: Development/Sources
|
||||
URL: https://www.kernel.org/
|
||||
AutoReqProv: off
|
||||
BuildRequires: coreutils
|
||||
ExclusiveArch: aarch64 x86_64
|
||||
Prefix: /usr/src
|
||||
AutoReqProv: off
|
||||
Source: README.KSYMS
|
||||
%ifarch aarch64 x86_64
|
||||
Requires: kernel-longterm-devel = %version-%source_rel
|
||||
%endif
|
||||
Requires: pesign-obs-integration
|
||||
Requires: kernel-devel%variant = %version-%source_rel
|
||||
Provides: %name = %version-%source_rel
|
||||
Provides: %name-srchash-%git_commit
|
||||
Provides: multiversion(kernel)
|
||||
Source: README.KSYMS
|
||||
Requires: kernel-devel%variant = %version-%source_rel
|
||||
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
|
||||
ExclusiveArch: aarch64 x86_64
|
||||
%else
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
Prefix: /usr/src
|
||||
|
||||
# Force bzip2 instead of lzma compression to
|
||||
# 1) allow install on older dist versions, and
|
||||
@@ -70,13 +60,14 @@ package dependencies.
|
||||
|
||||
|
||||
%source_timestamp
|
||||
%prep
|
||||
|
||||
%install
|
||||
install -m 644 -D %{SOURCE0} %buildroot/%_docdir/%name/README.SUSE
|
||||
|
||||
%files
|
||||
%dir %_docdir/%name
|
||||
%_docdir/%name/README.SUSE
|
||||
|
||||
%prep
|
||||
|
||||
%install
|
||||
install -m 644 -D %{SOURCE0} %buildroot/%_docdir/%name/README.SUSE
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
#
|
||||
# spec file for package kernel-syms@VARIANT@
|
||||
#
|
||||
# Copyright (c) @YEAR@ SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define git_commit @COMMIT_FULL@
|
||||
%define variant @VARIANT@%{nil}
|
||||
|
||||
%include %_sourcedir/kernel-spec-macros
|
||||
|
||||
Name: kernel-syms@VARIANT@
|
||||
Summary: Kernel Symbol Versions (modversions)
|
||||
License: GPL-2.0-only
|
||||
Group: Development/Sources
|
||||
Version: @RPMVERSION@
|
||||
%if %using_buildservice
|
||||
%if 0%{?is_kotd}
|
||||
Release: <RELEASE>.g@COMMIT@
|
||||
%else
|
||||
Release: @RELEASE@
|
||||
%endif
|
||||
%else
|
||||
%define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0)
|
||||
Release: %kernel_source_release
|
||||
%endif
|
||||
URL: https://www.kernel.org/
|
||||
AutoReqProv: off
|
||||
BuildRequires: coreutils
|
||||
@REQUIRES@
|
||||
Requires: pesign-obs-integration
|
||||
Provides: %name = %version-%source_rel
|
||||
Provides: %name-srchash-%git_commit
|
||||
Provides: multiversion(kernel)
|
||||
Source: README.KSYMS
|
||||
Requires: kernel-devel%variant = %version-%source_rel
|
||||
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
|
||||
ExclusiveArch: @ARCHS@
|
||||
%else
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
Prefix: /usr/src
|
||||
|
||||
# Force bzip2 instead of lzma compression to
|
||||
# 1) allow install on older dist versions, and
|
||||
# 2) decrease build times (bsc#962356 boo#1175882)
|
||||
%define _binary_payload w9.bzdio
|
||||
|
||||
%description
|
||||
Kernel symbols, such as functions and variables, have version
|
||||
information attached to them. This package contains the symbol versions
|
||||
for the standard kernels.
|
||||
|
||||
This package is needed for compiling kernel module packages with proper
|
||||
package dependencies.
|
||||
|
||||
|
||||
%source_timestamp
|
||||
%prep
|
||||
|
||||
%install
|
||||
install -m 644 -D %{SOURCE0} %buildroot/%_docdir/%name/README.SUSE
|
||||
|
||||
%files
|
||||
%dir %_docdir/%name
|
||||
%_docdir/%name/README.SUSE
|
||||
|
||||
%changelog
|
||||
72
klp-symbols
72
klp-symbols
@@ -1,72 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
export LC_COLLATE=C
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Tool to generate list of symbols that are used to build kernel livepatches"
|
||||
echo
|
||||
echo "Usage: ${0##*/} kernel_build_dir klp_symbols"
|
||||
echo " kernel_build_dir Directory where to find the built kernel binaries"
|
||||
echo " klp_symbols Output file with the list of symbols"
|
||||
}
|
||||
|
||||
if test "$1" == "-h" -o "$1" == "--help" -o $# -ne 2 ; then
|
||||
usage >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
KLP_DATA_VERSION="0.1"
|
||||
KERNEL_BUILD_DIR="$1"
|
||||
KLP_SYMBOLS="$2"
|
||||
|
||||
VMLINUX="$KERNEL_BUILD_DIR/vmlinux"
|
||||
MODVER_DIR="$KERNEL_BUILD_DIR/.tmp_versions"
|
||||
|
||||
if ! test -f "$VMLINUX" ; then
|
||||
echo "Error: Cannot open file: $VMLINUX" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! test -d "$MODVER_DIR" ; then
|
||||
# kernel >= 5.3 has *.mod in the build tree
|
||||
mod_cnt=$(find "$KERNEL_BUILD_DIR" -name '*.mod' | wc -l)
|
||||
if [ $mod_cnt -eq 0 ]; then
|
||||
echo "Error: Directory does not exist: $MODVER_DIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
MODVER_DIR="$KERNEL_BUILD_DIR"
|
||||
fi
|
||||
|
||||
get_symbols()
|
||||
{
|
||||
nm -f posix "$1" | grep -v '\( [UN] \)\|\(\.L\|__crc_\)' | cut -d\ -f1
|
||||
}
|
||||
|
||||
echo "klp-convert-symbol-data.$KLP_DATA_VERSION" > "$KLP_SYMBOLS"
|
||||
echo "*vmlinux" >> "$KLP_SYMBOLS"
|
||||
get_symbols "$VMLINUX" >> "$KLP_SYMBOLS"
|
||||
|
||||
find "$MODVER_DIR" -iname '*.mod' | sort | while read KMOD ; do
|
||||
if [ "$MODVER_DIR" = "$KERNEL_BUILD_DIR" ]; then
|
||||
# kernel >= 5.3, just replace the suffix
|
||||
KO_FILE="${KMOD%.mod}.ko"
|
||||
else
|
||||
# kernel <= 5.2, read .ko path and file from .mod file
|
||||
KO_FILE="$(head -n1 $KMOD)"
|
||||
fi
|
||||
|
||||
# obtain module name and its object file by processing .ko file name
|
||||
NO_SUFFIX="$(basename -s .ko $KO_FILE)"
|
||||
KMOD_NAME="$(echo $NO_SUFFIX | sed 's/-/_/g')"
|
||||
OBJ_FILE="$(dirname $KO_FILE)/$NO_SUFFIX.o"
|
||||
|
||||
# write module name to Symbols file
|
||||
echo "*$KMOD_NAME" >> "$KLP_SYMBOLS"
|
||||
|
||||
# extract symbols from object file and write them to Symbols file
|
||||
get_symbols "$OBJ_FILE" >> "$KLP_SYMBOLS"
|
||||
done
|
||||
|
||||
exit 0
|
||||
19
linux-6.12.tar.sign
Normal file
19
linux-6.12.tar.sign
Normal file
@@ -0,0 +1,19 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Comment: This signature is for the .tar version of the archive
|
||||
Comment: git archive --format tar --prefix=linux-6.12/ v6.12
|
||||
Comment: git version 2.47.0
|
||||
|
||||
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmc6xcwACgkQONu9yGCS
|
||||
aT65NhAAvh7QiDnvnOlH/ZI9TVDE70GYARPN0OQTE+7YmtwYYxtDmIWpl5V4gjcK
|
||||
jYZYWkNWZxyIi/dzZFoY8JMEwxdPfchkc2nqJxgHbZGTWudcLnTWxIRnzlEjs+7B
|
||||
B7XIlCTGYMi3hYweHNZcDzvAFp+WA2e130ZTHeJSpEy7jkdcRxnKP4kYkE52bmOr
|
||||
iK0MgfPhlDY90K9T/XQ1j0CdU9ekpwXXc+vfNPtPz4H5VpAkIvLzFmu/9oYtGBlf
|
||||
8w4wel6GlzYsZL8XJmBgK2GyhHXLKeEAsTFGoJSnZBwgqfr9ux9iVNCUgfMNyBh/
|
||||
sPp0ZzVWnqk5CsLTO/bzV64ckRLyBp9nfTekZAjnADqXPTEfDKEGKL/AUV8AFQPE
|
||||
AvZzFAV8aOFQAUkofvQyJiD61UVjziNlxh0bXLcJrTdJbNqsEQlx4Z6mWWLeufrU
|
||||
7UWboDuR0+MNGUIVCxFjYF30Zb18hIxxnZ++9+MhtbY0+aAUpJUkHm6HpNls2JtI
|
||||
0M0iUjTYtlohcadLCo+IdO0+8/HiN1rtDy+PypTNvVI5aoS9gPuJPXMGE+rSgUAk
|
||||
M0XrPcKrekJPgkL0rQJ+CfHSodsex6de9mzmPA/RHB4iwSqkAHSShs5KXzY6jy+T
|
||||
fv5YOM+4AArm5xL1uDDDINp/a3tg5Nsv49ghfeYj6IzJPJ84ciw=
|
||||
=pvFU
|
||||
-----END PGP SIGNATURE-----
|
||||
BIN
linux-6.12.tar.xz
LFS
Normal file
BIN
linux-6.12.tar.xz
LFS
Normal file
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Comment: This signature is for the .tar version of the archive
|
||||
Comment: git archive --format tar --prefix=linux-6.6/ v6.6
|
||||
Comment: git version 2.42.0
|
||||
|
||||
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmU/R9oACgkQONu9yGCS
|
||||
aT5mBBAAnQMFnUUwlXa/cHTZ0NxyQxVv7B8k/TrvbOqbd6/AQpO6WnOorpqVKite
|
||||
rrvqz96FCDIsWAr7k4fzGvJhFlAmwyGsFb2kusiLekRBufKFiMyXl91wVm1pYtpS
|
||||
FBC7HqCc9/LV/O5Mg/I2uWZ0PBYhRjiVCQonGQPx3lDgLEd2JnMLkADJhEONl9cD
|
||||
IMayZGNV9rBUzS7cUBILk8QoBiod5P/RjwHb9Dn/oUev2r3iX09RN+bzIQroVX0B
|
||||
I9bX1ipOSmPfdUy3Vr3JUS3n5VACjhwwYBwhzRIzJ038pWHn9fmBWspExAdOyOLl
|
||||
cpqAzZ6befPT78/VqLyobhAsmRgfnOce8IzS0CU0wUenHGJkj1FthkLO1zNs9aZs
|
||||
CyDZi9Z5iwocSaN6JHBk/fV3eG0vkH6k5jPEM8+DxJv+TcpXuM4JR47ymteB7qUt
|
||||
UNCJQdOhTsAtQHVMwIaGUPOFI9rYmfiw9eippLRQF2juyYNHOZSHBZk9ZMG4V1zU
|
||||
yhFhOrzERZ7LInXfiQAldxE4RFxWanNo7pBCy5SUBP8gcVjkLmicNXiuvPZe/q0e
|
||||
ARLLOF5kB4H3rPwWzBuyp0yxADSgnLFPXmy/rh6hSCU2n3myQeI9hLu+sLCK40vu
|
||||
/80rKPDiEdumGgtkHYfsus6HAbSv4MYaMYpMzpcWFxkTPz4xJbQ=
|
||||
=wBW2
|
||||
-----END PGP SIGNATURE-----
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0
|
||||
size 140064536
|
||||
167
log.sh
167
log.sh
@@ -1,167 +0,0 @@
|
||||
#! /bin/bash
|
||||
|
||||
# log.sh - Automate insertion of patches into a kernel rpm tree managed
|
||||
# with series.conf
|
||||
#
|
||||
# Usage example:
|
||||
#
|
||||
# osc branch openSUSE:11.3/kernel-source
|
||||
# osc co home:philipsb:branches:openSUSE:11.3:Update:Test/kernel-source
|
||||
# mv ~/linux-2.6/driver-fix-for-something.patch .
|
||||
# echo -e "\tpatches.drivers/driver-fix-for-something.patch" >> series.conf
|
||||
# ./log.sh
|
||||
# osc commit
|
||||
|
||||
#############################################################################
|
||||
# Copyright (c) 2004-2006,2008-2010 Novell, Inc.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of version 2 of the GNU General Public License as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, contact Novell, Inc.
|
||||
#
|
||||
# To contact Novell about this file by physical or electronic mail,
|
||||
# you may find current contact information at www.novell.com
|
||||
#############################################################################
|
||||
|
||||
# Construct a changes entry and commit log from a patch.
|
||||
|
||||
CHANGES=kernel-source.changes
|
||||
|
||||
trap 'rm -rf "$tmpdir"' EXIT
|
||||
tmpdir=$(mktemp -d /tmp/${0##*/}.XXXXXX)
|
||||
message=$tmpdir/message
|
||||
|
||||
log_entry() {
|
||||
local entry=$1
|
||||
|
||||
echo "$entry" \
|
||||
| fmt --width 65 \
|
||||
| sed -e '1s/^/- /' -e '2,$s/^/ /' \
|
||||
>> $message
|
||||
}
|
||||
|
||||
|
||||
patch_meta() {
|
||||
local patch=$1
|
||||
|
||||
subject=$(formail -c -x Subject < "$patch" \
|
||||
| sed -e 's, *\[[#/ A-Za-z0-9-]*\],,')
|
||||
subject=${subject## }
|
||||
subject=${subject%.}
|
||||
|
||||
set -- $(formail -c -x References -x Reference < "$patch")
|
||||
references="$*"
|
||||
}
|
||||
|
||||
patch_log_entry() {
|
||||
local patch=$1 subject references old_subj old_ref old_patch="$tmpdir/old"
|
||||
|
||||
git show "HEAD:$patch" >"$old_patch" 2>/dev/null
|
||||
patch_meta "$old_patch"
|
||||
old_subj="$subject"
|
||||
old_ref="$references"
|
||||
|
||||
patch_meta "$patch"
|
||||
|
||||
local msg
|
||||
if test -z "$subject" -o "$subject" != "$old_subj"; then
|
||||
msg="$subject${references:+ ($references)}"
|
||||
elif test "$references" != "$old_ref"; then
|
||||
if test -n "$references"; then
|
||||
msg="Update references ($references)"
|
||||
fi
|
||||
else
|
||||
msg="Refresh"
|
||||
fi
|
||||
|
||||
log_entry "$patch: $msg${msg:+.}"
|
||||
}
|
||||
|
||||
find_patches() {
|
||||
osc diff series.conf \
|
||||
| sed -n "s/^+\s*\(patches.*\)/\1/p"
|
||||
}
|
||||
|
||||
for file in "$@" $(find_patches); do
|
||||
dirname=$(dirname $file)
|
||||
basename=$(basename $file)
|
||||
archive=$dirname.tar.bz2
|
||||
|
||||
if [ ! -f $basename ]; then
|
||||
echo "ERROR: $basename added to series.conf but doesn't exist in $PWD"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d $dirname ]; then
|
||||
tar xvf $archive
|
||||
fi
|
||||
|
||||
mv $basename $dirname
|
||||
rm $archive
|
||||
tar cfj $archive $dirname
|
||||
|
||||
files[${#files[@]}]=$file
|
||||
done
|
||||
|
||||
if [ ${#files[@]} -eq 0 ]; then
|
||||
echo "No modified files" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for file in "${files[@]}"; do
|
||||
if [ "${file:0:1}" = - ]; then
|
||||
log_entry "${file:1}: Delete."
|
||||
else
|
||||
case "$file" in
|
||||
config/*)
|
||||
if [ -z "$configs_updated" ]; then
|
||||
log_entry "Update config files."
|
||||
configs_updated=1
|
||||
fi
|
||||
;;
|
||||
|
||||
patches.*)
|
||||
patch_log_entry "$file"
|
||||
;;
|
||||
|
||||
kabi/*/symvers-* | kabi/*/symtypes-* | kabi/*/symsets-* )
|
||||
if [ -z "$symvers_updated" ]; then
|
||||
log_entry "Update reference module symbol versions."
|
||||
symvers_updated=1
|
||||
fi
|
||||
;;
|
||||
|
||||
series.conf)
|
||||
# don't log changes in there
|
||||
;;
|
||||
|
||||
*)
|
||||
log_entry "$file: "
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -s $message ]; then
|
||||
echo "- " >> $message
|
||||
fi
|
||||
|
||||
if osc vc $CHANGES $message; then
|
||||
entry=$(sed -ne '1,2d' -e '/^--*$/!p' -e '/^--*$/q' $CHANGES)
|
||||
entry=${entry##$'\n'}
|
||||
entry=${entry%%$'\n'}
|
||||
fi
|
||||
|
||||
for c in *.changes; do
|
||||
[ $c = $CHANGES ] && continue
|
||||
cp $CHANGES $c
|
||||
done
|
||||
@@ -6,6 +6,7 @@ else \
|
||||
print( "" ) \
|
||||
end
|
||||
}
|
||||
%usrmerged %{lua: susever = rpm.expand('%{?suse_version}'); if susever ~= '' and tonumber(susever) > 1550 then print('1') else print('0') end }
|
||||
%kernel_module_package_release 1
|
||||
%kernel_module_package_buildreqs modutils kernel-syms kmod-compat suse-kernel-rpm-scriptlets %kernel_build_shell_package
|
||||
|
||||
|
||||
587
mkspec
587
mkspec
@@ -1,587 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Copy;
|
||||
use Getopt::Long;
|
||||
|
||||
my $dir = ".";
|
||||
my $rpmrelease;
|
||||
my $patches="";
|
||||
|
||||
GetOptions(
|
||||
"patches=s" => \$patches,
|
||||
"release=s" => \$rpmrelease
|
||||
) or die "Usage: $0 [--release <release>] [--patches <dir>]\n";
|
||||
|
||||
# flavor -> [supported archs]
|
||||
my %flavor_archs = parse_config_conf();
|
||||
# subset to include in kernel-syms
|
||||
my %syms_flavor_archs = parse_config_conf("syms");
|
||||
|
||||
my %all_archs = parse_config_conf("needs_updating");
|
||||
my @all_archs;
|
||||
for my $flavor (keys(%all_archs)) {
|
||||
push(@all_archs, arch2rpm(@{$all_archs{$flavor}}));
|
||||
}
|
||||
@all_archs = sort(uniq(@all_archs));
|
||||
my $all_archs = join(" ", @all_archs);
|
||||
|
||||
# template name -> template body
|
||||
my %templates = read_spec_templates();
|
||||
|
||||
my @kmps = read_kmps();
|
||||
|
||||
# config.sh variables
|
||||
my %vars = parse_config_sh();
|
||||
my ($srcversion, $variant, $obs_build_variant) =
|
||||
($vars{'SRCVERSION'}, $vars{'VARIANT'}, $vars{'OBS_BUILD_VARIANT'});
|
||||
$obs_build_variant = ($obs_build_variant ? $variant : "" );
|
||||
my $compress_modules = 'none';
|
||||
my $compress_vmlinux = 'gz';
|
||||
if (defined($vars{'COMPRESS_MODULES'})) {
|
||||
$compress_modules = $vars{'COMPRESS_MODULES'};
|
||||
}
|
||||
if (defined($vars{'COMPRESS_VMLINUX'})) {
|
||||
$compress_vmlinux = $vars{'COMPRESS_VMLINUX'};
|
||||
}
|
||||
sub detect_false {
|
||||
my $arg = $_[0];
|
||||
return "" if not $arg;
|
||||
return $arg =~ /^(0+|no|none)$/i ? "" : $arg;
|
||||
}
|
||||
my $build_dtbs = detect_false $vars{'BUILD_DTBS'};
|
||||
my $multibuild = detect_false $vars{'MULTIBUILD'};
|
||||
my $livepatch = detect_false $vars{'LIVEPATCH'};
|
||||
my $livepatch_rt = detect_false $vars{'LIVEPATCH_RT'};
|
||||
sub to_bool {
|
||||
return detect_false($_[0]) ? 1 : 0 ;
|
||||
}
|
||||
my $sb_efi_only = to_bool $vars{'SB_EFI_ONLY'};
|
||||
my $split_base = to_bool $vars{'SPLIT_BASE'};
|
||||
my $split_optional = to_bool $vars{'SPLIT_OPTIONAL'};
|
||||
my $supported_modules_check = to_bool $vars{'SUPPORTED_MODULES_CHECK'};
|
||||
my $build_pdf = to_bool $vars{'BUILD_PDF'};
|
||||
my $build_html = to_bool $vars{'BUILD_HTML'};
|
||||
|
||||
if (!defined ($rpmrelease)) {
|
||||
$rpmrelease = $vars{'RELEASE'} || 0;
|
||||
}
|
||||
|
||||
# package name -> [summary, description, extra kmp deps]
|
||||
my %binary_descriptions = parse_descriptions();
|
||||
|
||||
# arch -> flavor -> [obsoleted packages]
|
||||
my %obsolete_packages = parse_old_flavors();
|
||||
|
||||
$patches="--patches $patches" if $patches;
|
||||
my $patchversion = `$dir/compute-PATCHVERSION.sh $patches`;
|
||||
chomp $patchversion;
|
||||
my $rpmversion = $patchversion;
|
||||
# stuff the -rcX tag into the rpm version if possible;
|
||||
$rpmversion =~ s/\.0-rc/~rc/;
|
||||
$rpmversion =~ s/-rc\d+//;
|
||||
$rpmversion =~ s/-/./g;
|
||||
|
||||
$rpmrelease =~ s/-/./g;
|
||||
|
||||
my $sources = join("\n", $templates{source} =~ /^Source\d+:[^\n]*/msg);
|
||||
# Do not include the signature and keyring as source in the binary packages
|
||||
# The sources are not really included anyway, and for non-upstream tarballs these files do not exist
|
||||
$sources = join("\n", grep { $_ !~ /[.](?:keyring|tar[.]sign)\s*$/ } $sources =~ /^[^\n]*/msg);
|
||||
# Find all SourceN: foo.tar.(bz2|xz) lines and generate the NoSource:
|
||||
# lines and the %setup line
|
||||
my @tarballs = ($sources =~ /^Source(\d+):[^\n]*\.tar\.(?:bz2|xz)/msg);
|
||||
my $nosource = $sources;
|
||||
$nosource =~ s/^Source(\d+):.*?$/NoSource: $1/mg;
|
||||
|
||||
# Source0 (the linux tarball) is unpacked manually
|
||||
@tarballs = grep { $_ > 0 } @tarballs;
|
||||
my $unpack_patches = join(" ", map { "-a $_" } @tarballs);
|
||||
# List of scripts to automatically chmod +x before build
|
||||
my $scripts = join(",", grep { is_script($_) }
|
||||
($sources =~ /\nSource\d+:\s*([^\s]*)/mg));
|
||||
|
||||
my $tarball_url;
|
||||
if ($srcversion =~ /^(\d+)(?:\.\d+)*(-rc\d+)?$/) {
|
||||
$tarball_url = "https://www.kernel.org/pub/linux/kernel/v$1.x/";
|
||||
$tarball_url = "" if $2; # kernel.org has no tarballs for rc kernels
|
||||
# rc tarballs only available from git as https://git.kernel.org/torvalds/t/linux-*.gz
|
||||
} else {
|
||||
# kernel.org has no tarballs for linux-next or vanilla snapshots
|
||||
$tarball_url = "";
|
||||
}
|
||||
|
||||
my $commit = get_commit();
|
||||
my $commit_full = get_commit(1);
|
||||
|
||||
my %macros = (
|
||||
VARIANT => $variant,
|
||||
OBS_BUILD_VARIANT => $obs_build_variant . "%{nil}",
|
||||
SRCVERSION => $srcversion,
|
||||
PATCHVERSION => $patchversion,
|
||||
RPMVERSION => $rpmversion,
|
||||
TARBALL_URL => $tarball_url,
|
||||
RELEASE => $rpmrelease,
|
||||
COMMIT => $commit,
|
||||
COMMIT_FULL => $commit_full,
|
||||
SOURCES => $sources . "\n# These files are found in the kernel-source package:\n" . $nosource,
|
||||
UNPACK_PATCHES => $unpack_patches,
|
||||
SCRIPTS => $scripts,
|
||||
LIVEPATCH => $livepatch,
|
||||
LIVEPATCH_RT => $livepatch_rt,
|
||||
SB_EFI_ONLY => $sb_efi_only,
|
||||
SPLIT_BASE => $split_base,
|
||||
SPLIT_OPTIONAL => $split_optional,
|
||||
SUPPORTED_MODULES_CHECK => $supported_modules_check,
|
||||
BUILD_PDF => $build_pdf,
|
||||
BUILD_HTML => $build_html,
|
||||
YEAR => (localtime time)[5] + 1900,
|
||||
COMPRESS_MODULES => $compress_modules,
|
||||
COMPRESS_VMLINUX => $compress_vmlinux,
|
||||
);
|
||||
|
||||
# binary spec files
|
||||
my $kmp_definitions = "";
|
||||
my @kmp_definitions;
|
||||
for my $kmp (@kmps) {
|
||||
my ($summary, $description, $deps);
|
||||
if (!exists($binary_descriptions{$kmp})) {
|
||||
print STDERR "warning: no description for $kmp found\n";
|
||||
($summary = $kmp) =~ s/-kmp$//;
|
||||
$summary .= " kernel modules";
|
||||
$description = "$summary.";
|
||||
$deps = "";
|
||||
} else {
|
||||
$summary = $binary_descriptions{$kmp}->[0];
|
||||
$description = $binary_descriptions{$kmp}->[1];
|
||||
$deps = $binary_descriptions{$kmp}->[2];
|
||||
}
|
||||
push(@kmp_definitions, expand_template("kmp",
|
||||
KMP_NAME => $kmp,
|
||||
KMP_SUMMARY => $summary,
|
||||
KMP_DESCRIPTION => $description,
|
||||
KMP_DEPS => $deps));
|
||||
}
|
||||
$kmp_definitions = join("\n", @kmp_definitions);
|
||||
|
||||
for my $flavor (sort keys(%flavor_archs)) {
|
||||
my ($summary, $description);
|
||||
if (!exists($binary_descriptions{"kernel-$flavor"})) {
|
||||
print STDERR "warning: no description for kernel-$flavor found\n";
|
||||
$summary = "The Linux Kernel";
|
||||
$description = "The Linux Kernel.";
|
||||
} else {
|
||||
$summary = $binary_descriptions{"kernel-$flavor"}->[0];
|
||||
$description = $binary_descriptions{"kernel-$flavor"}->[1];
|
||||
}
|
||||
|
||||
my %obsolete_macros;
|
||||
for my $subpac ("", "-base", "-extra", "-devel", "-hmac", "-optional") {
|
||||
(my $macro = "PROVIDES_OBSOLETES" . uc($subpac)) =~ s/-/_/;
|
||||
$obsolete_macros{$macro} =
|
||||
provides_obsoletes($flavor, $subpac, @{$flavor_archs{$flavor}});
|
||||
}
|
||||
|
||||
do_spec('binary', "kernel-$flavor.spec", %macros,
|
||||
FLAVOR => $flavor,
|
||||
SUMMARY => $summary,
|
||||
DESCRIPTION => $description,
|
||||
ARCHS => join(" ", arch2rpm(@{$flavor_archs{$flavor}})),
|
||||
COMMON_DEPS => $templates{common_deps},
|
||||
KMPS => join(" ", @kmps),
|
||||
KMP_DEFINITIONS => $kmp_definitions,
|
||||
%obsolete_macros
|
||||
);
|
||||
}
|
||||
# kernel-source.spec
|
||||
do_spec('source', "kernel-source$variant.spec", %macros);
|
||||
|
||||
if ($variant eq "") {
|
||||
# kernel-docs.spec
|
||||
do_spec('docs', "kernel-docs$variant.spec", %macros);
|
||||
}
|
||||
|
||||
# kernel-syms.spec
|
||||
{
|
||||
my $requires = "";
|
||||
my %syms_archs;
|
||||
my $syms_archs;
|
||||
for my $flavor (sort keys(%syms_flavor_archs)) {
|
||||
next if $flavor eq "vanilla";
|
||||
my @archs = arch2rpm(@{$syms_flavor_archs{$flavor}});
|
||||
$syms_archs{$_} = 1 for @archs;
|
||||
$requires .= "%ifarch @archs\n";
|
||||
$requires .= "Requires: kernel-$flavor-devel = \%version-\%source_rel\n";
|
||||
$requires .= "%endif\n";
|
||||
}
|
||||
chomp $requires;
|
||||
$syms_archs = join(" ", sort(keys(%syms_archs)));
|
||||
if (keys(%syms_archs)) {
|
||||
do_spec('syms', "kernel-syms$variant.spec", %macros,
|
||||
REQUIRES => $requires,
|
||||
ARCHS => $syms_archs);
|
||||
}
|
||||
}
|
||||
|
||||
# kernel-obs-*.spec
|
||||
if (!$variant || $obs_build_variant) {
|
||||
my @default_archs;
|
||||
my $flavor = $obs_build_variant;
|
||||
if ($flavor) {
|
||||
$flavor =~ s/^-//;
|
||||
} else {
|
||||
$flavor = 'default';
|
||||
}
|
||||
|
||||
@default_archs = arch2rpm(@{$flavor_archs{$flavor}});
|
||||
# No kernel-obs-* for 32bit ppc and x86
|
||||
@default_archs = grep { $_ ne "ppc" && $_ ne '%ix86' } @default_archs;
|
||||
my $default_archs = join(" ", @default_archs);
|
||||
do_spec('obs-build', "kernel-obs-build.spec", %macros,
|
||||
ARCHS => $default_archs);
|
||||
do_spec('obs-qa', "kernel-obs-qa.spec", %macros,
|
||||
ARCHS => $default_archs);
|
||||
}
|
||||
|
||||
# dtb-*.spec
|
||||
if ((!$variant || $obs_build_variant) && $build_dtbs) {
|
||||
do_spec('dtb', "dtb.spec.in", %macros);
|
||||
print "./mkspec-dtb $all_archs\n";
|
||||
system("./mkspec-dtb $all_archs\n");
|
||||
unlink("$dir/dtb.spec.in");
|
||||
if ($?) {
|
||||
exit(($? >> 8) || ($? & 127 + 128) || 1);
|
||||
}
|
||||
}
|
||||
|
||||
copy_changes();
|
||||
|
||||
# _constraints
|
||||
{
|
||||
my @packages = map { "<package>kernel-$_</package>\n<package>kernel-source$variant:kernel-$_</package>" } sort keys(%flavor_archs);
|
||||
my $packages = join("\n", @packages);
|
||||
do_spec('constraints', "_constraints",
|
||||
BINARY_PACKAGES_XML => $packages,
|
||||
VARIANT => $variant);
|
||||
}
|
||||
|
||||
exit 0;
|
||||
|
||||
|
||||
|
||||
sub parse_config_conf {
|
||||
my @symbols = @_;
|
||||
my $symbols = join(' ', @symbols);
|
||||
my %res;
|
||||
|
||||
for my $arch (split(/\s+/, `$dir/arch-symbols --list`)) {
|
||||
my @flavors = `$dir/guards $arch $symbols < $dir/config.conf`;
|
||||
next if @flavors == 0;
|
||||
chomp @flavors;
|
||||
@flavors = map { s/.*\///; $_ } @flavors;
|
||||
for my $flavor (@flavors) {
|
||||
$res{$flavor} ||= [];
|
||||
push(@{$res{$flavor}}, $arch);
|
||||
}
|
||||
}
|
||||
for my $flavor (keys(%res)) {
|
||||
$res{$flavor} = [sort @{$res{$flavor}}];
|
||||
}
|
||||
return %res;
|
||||
}
|
||||
|
||||
sub read_spec_templates {
|
||||
my %res;
|
||||
|
||||
for my $template (qw(binary source syms docs obs-build obs-qa)) {
|
||||
xopen(my $fh, '<', "$dir/kernel-$template.spec.in");
|
||||
local $/ = undef;
|
||||
$res{$template} = <$fh>;
|
||||
close($fh);
|
||||
next unless $template eq "binary";
|
||||
if ($res{$template} =~ /^# BEGIN COMMON DEPS\n?(.*)^# END COMMON DEPS/ms) {
|
||||
$res{common_deps} = $1;
|
||||
} else {
|
||||
print STDERR "warning: Expected # BEGIN COMMON DEPS in kernel-binary.spec.in\n";
|
||||
$res{common_deps} = "";
|
||||
}
|
||||
if ($res{$template} =~ s/^# BEGIN KMP\n?(.*)^# END KMP/\@KMP_DEFINITIONS\@/ms) {
|
||||
$res{kmp} = $1;
|
||||
} else {
|
||||
print STDERR "warning: Expected # BEGIN KMP in kernel-binary.spec.in\n";
|
||||
$res{kmp} = "";
|
||||
}
|
||||
}
|
||||
{
|
||||
xopen(my $fh, '<', "$dir/constraints.in");
|
||||
local $/ = undef;
|
||||
$res{constraints} = <$fh>;
|
||||
close($fh);
|
||||
xopen($fh, '<', "$dir/dtb.spec.in.in");
|
||||
$res{dtb} = <$fh>;
|
||||
close($fh);
|
||||
}
|
||||
return %res;
|
||||
}
|
||||
|
||||
# return a hash of config.sh variables
|
||||
sub parse_config_sh {
|
||||
my %res;
|
||||
|
||||
xopen(my $fh, '<', "$dir/config.sh");
|
||||
while (<$fh>) {
|
||||
chomp;
|
||||
if (/^\s*([A-Z_]+)=(.*)/) {
|
||||
my ($key, $val) = ($1, $2);
|
||||
$val =~ s/^"(.*)"$/$1/;
|
||||
$res{$key} = $val;
|
||||
}
|
||||
}
|
||||
close($fh);
|
||||
return %res;
|
||||
}
|
||||
|
||||
sub parse_descriptions {
|
||||
my %res;
|
||||
my $current;
|
||||
my $blank = "";
|
||||
# 0 - expect summary, 1 - eating blank lines, 2 - reading description
|
||||
my $state = 0;
|
||||
|
||||
xopen(my $fh, '<', "$dir/package-descriptions");
|
||||
while (<$fh>) {
|
||||
next if /^\s*#/;
|
||||
|
||||
if (/^==+\s+([^\s]+)\s+==+\s*$/) {
|
||||
my $package = $1;
|
||||
if ($current) {
|
||||
chomp $current->[1];
|
||||
}
|
||||
$current = ["", "", ""];
|
||||
$res{$package} = $current;
|
||||
$state = 0;
|
||||
next;
|
||||
}
|
||||
if (/^$/) {
|
||||
if ($state == 0) {
|
||||
$state++;
|
||||
} elsif ($state == 2) {
|
||||
$blank .= $_;
|
||||
}
|
||||
next;
|
||||
}
|
||||
# non-blank line and not === package ===
|
||||
if ($state == 0) {
|
||||
chomp;
|
||||
if (s/^Requires: *//) {
|
||||
# foo-kmp is a shorthand for another kmp
|
||||
# from the same specfile
|
||||
s/-kmp/-kmp-%build_flavor = %version-%release/g;
|
||||
s/^/Requires: /;
|
||||
if ($current->[2]) {
|
||||
$current->[2] .= "\n";
|
||||
}
|
||||
$current->[2] .= $_;
|
||||
} else {
|
||||
# The Summary: keyword is optional
|
||||
s/^Summary: *//;
|
||||
if ($current->[0]) {
|
||||
print STDERR "warning: multi-line summary\n";
|
||||
}
|
||||
$current->[0] = $_;
|
||||
}
|
||||
} elsif ($state == 1) {
|
||||
$current->[1] = $_;
|
||||
$blank = "";
|
||||
$state++;
|
||||
} else {
|
||||
$current->[1] .= $blank;
|
||||
$blank = "";
|
||||
$current->[1] .= $_;
|
||||
}
|
||||
}
|
||||
if ($current) {
|
||||
chomp $current->[1];
|
||||
}
|
||||
close($fh);
|
||||
return %res;
|
||||
}
|
||||
|
||||
sub read_kmps {
|
||||
my %res;
|
||||
|
||||
open(my $fh, '-|', "$dir/guards", "--list", "--with-guards",
|
||||
"-c", "$dir/supported.conf") or die "Error running guards: $!\n";
|
||||
while (<$fh>) {
|
||||
my @guards = split(' ');
|
||||
pop(@guards);
|
||||
for my $g (@guards) {
|
||||
if ($g =~ /^(?:\+|-!)(.*-kmp)$/) {
|
||||
$res{$1} = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
close($fh) or die "Error running guards: $!\n";
|
||||
return sort(keys(%res));
|
||||
}
|
||||
|
||||
sub parse_old_flavors{
|
||||
my %res;
|
||||
|
||||
|
||||
xopen(my $fh, '<', "$dir/old-flavors");
|
||||
while (<$fh>) {
|
||||
chomp;
|
||||
next if /^\s*(#|$)/;
|
||||
if (!m:^\s*(\w+)/([\w-]+)\s+([\w-]+)\s+([\w.-]+)\s*$:) {
|
||||
print STDERR "$dir/old-flavors:$.: expected arch/flavor <old flavor> <old version>\n";
|
||||
next;
|
||||
}
|
||||
my ($arch, $flavor, $old_flavor, $old_version) = ($1, $2, $3, $4);
|
||||
$res{$arch} ||= {};
|
||||
$res{$arch}{$flavor} ||= [];
|
||||
push(@{$res{$arch}{$flavor}},
|
||||
["kernel-$old_flavor", $old_version]);
|
||||
}
|
||||
close($fh);
|
||||
return %res;
|
||||
}
|
||||
|
||||
sub is_script {
|
||||
my $script = shift;
|
||||
|
||||
return undef if $script =~ /\.(tar\.(gz|bz2)|in|conf)$/;
|
||||
return undef if $script =~ /^README/;
|
||||
return 1 if $script =~ /\.pl$/;
|
||||
open(my $fh, '<', $script) or return undef;
|
||||
sysread($fh, my $shebang, 2);
|
||||
close($fh);
|
||||
return 1 if $shebang eq "#!";
|
||||
return undef;
|
||||
}
|
||||
|
||||
sub arch2rpm {
|
||||
if (wantarray) {
|
||||
return map { _arch2rpm($_) } @_;
|
||||
}
|
||||
return _arch2rpm($_[0]);
|
||||
}
|
||||
sub _arch2rpm {
|
||||
my $arch = shift;
|
||||
return "\%ix86" if $arch eq "i386";
|
||||
return "aarch64" if $arch eq "arm64";
|
||||
return $arch;
|
||||
}
|
||||
|
||||
sub provides_obsoletes {
|
||||
my $flavor = shift;
|
||||
my $subpac = shift;
|
||||
my @archs = @_;
|
||||
my $res = "";
|
||||
|
||||
for my $arch (@archs) {
|
||||
my @packs = @{$obsolete_packages{$arch}{$flavor} || []};
|
||||
my $printed;
|
||||
|
||||
next if (!@packs);
|
||||
my $rpmarch = arch2rpm($arch);
|
||||
chomp $rpmarch;
|
||||
for my $pack (@packs) {
|
||||
my $name = $pack->[0] . $subpac;
|
||||
my $version = $pack->[1];
|
||||
if (!$printed) {
|
||||
$res .= "\%ifarch $rpmarch\n";
|
||||
$printed = 1;
|
||||
}
|
||||
$res .= "Provides: $name = $version\n";
|
||||
$res .= "Obsoletes: $name <= $version\n";
|
||||
}
|
||||
$res .= "\%endif\n" if $printed;
|
||||
}
|
||||
chomp $res;
|
||||
return $res;
|
||||
}
|
||||
|
||||
sub get_commit {
|
||||
my ($commit, $fh, $full);
|
||||
|
||||
$full = $_[0] // 0;
|
||||
|
||||
if (!open($fh, '<', "source-timestamp")) {
|
||||
print STDERR "warning: source-timestamp: $!\n";
|
||||
print STDERR "warning: Cannot determine commit id\n";
|
||||
return "0000000";
|
||||
}
|
||||
while (<$fh>) {
|
||||
if ($full ? /^GIT Revision: ([0-9a-f]{40})/ : /^GIT Revision: ([0-9a-f]{7})/) {
|
||||
$commit = $1;
|
||||
}
|
||||
}
|
||||
close($fh);
|
||||
if (!$commit) {
|
||||
print STDERR "warning: Commit id missing in source-timestamp file\n";
|
||||
return "0000000";
|
||||
}
|
||||
return $commit;
|
||||
}
|
||||
|
||||
sub expand_template {
|
||||
my $template = shift;
|
||||
my %macros = @_;
|
||||
|
||||
my $text = $templates{$template};
|
||||
my $prev_text;
|
||||
do {
|
||||
$prev_text = $text;
|
||||
for my $m (keys %macros) {
|
||||
if ($macros{$m} eq "") {
|
||||
# Do not generate empty lines
|
||||
$text =~ s/^\@$m\@\n//mg;
|
||||
}
|
||||
$text =~ s/\@$m\@/$macros{$m}/g;
|
||||
}
|
||||
} while ($prev_text ne $text);
|
||||
return $text;
|
||||
}
|
||||
|
||||
sub do_spec {
|
||||
my $template = shift;
|
||||
my $specfile = shift;
|
||||
my %macros = @_;
|
||||
|
||||
my $text = expand_template($template, %macros);
|
||||
print "$specfile\n";
|
||||
xopen(my $fh, '>', "$dir/$specfile");
|
||||
print $fh $text;
|
||||
close($fh);
|
||||
}
|
||||
|
||||
sub copy_changes {
|
||||
|
||||
opendir(my $dh, $dir) or die "$dir: $!\n";
|
||||
xopen(my $fh, '>', "$dir/_multibuild") if $multibuild;
|
||||
print $fh "<multibuild>\n" if $fh;
|
||||
|
||||
foreach my $name (sort readdir $dh) {
|
||||
next unless $name =~ /\.spec$/;
|
||||
next if $name eq "kernel-source$variant.spec";
|
||||
|
||||
$name =~ s/\.spec$//;
|
||||
copy("$dir/kernel-source$variant.changes", "$dir/$name.changes");
|
||||
print $fh "\t<package>$name</package>\n" if $fh;
|
||||
}
|
||||
print $fh "</multibuild>\n" if $fh;
|
||||
close($fh) if $fh;
|
||||
closedir($dh);
|
||||
}
|
||||
|
||||
sub xopen {
|
||||
open($_[0], $_[1], $_[2]) or die "$_[2]: $!\n";
|
||||
}
|
||||
|
||||
sub uniq {
|
||||
my %seen;
|
||||
return grep { !$seen{$_}++ } @_;
|
||||
}
|
||||
226
mkspec-dtb
226
mkspec-dtb
@@ -1,226 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
use Data::Dumper;
|
||||
|
||||
my $spec_in = "dtb.spec.in";
|
||||
|
||||
# DTB packages names, ordered by file names
|
||||
my @armv7l_package_list = (
|
||||
['dtb-am335x', 'ti/omap/am335x-*.dts', "TI AM335x based systems"],
|
||||
['dtb-am3517', 'ti/omap/am3517*.dts', "TI AM3517 based systems"], # exception: am3517_mt_ventoux.dts
|
||||
['dtb-am57xx', 'ti/omap/am57xx-*.dts', "TI AM57xx based systems"],
|
||||
['dtb-armada-370', 'marvell/armada-370-*.dts', "Armada 370 based systems"],
|
||||
['dtb-armada-375', 'marvell/armada-375-*.dts', "Armada 375 based systems"],
|
||||
['dtb-armada-385', 'marvell/armada-385-*.dts', "Armada 385 based systems"],
|
||||
['dtb-armada-388', 'marvell/armada-388-*.dts', "Armada 388 based systems"],
|
||||
['dtb-armada-398', 'marvell/armada-398-*.dts', "Armada 398 based systems"],
|
||||
['dtb-armada-xp', 'marvell/armada-xp-*.dts', "Armada XP based systems"],
|
||||
['dtb-bcm2836', 'broadcom/bcm2836*.dts', "Raspberry Pi 2 Model B"],
|
||||
['dtb-dove', 'marvell/dove-*.dts', "Marvell dove based systems"],
|
||||
['dtb-exynos4', 'samsung/exynos4*.dts', "Samsung Exynos 4 based systems"],
|
||||
['dtb-exynos5', 'samsung/exynos5*.dts', "Samsung Exynos 5 based systems"],
|
||||
['dtb-imx5', 'nxp/imx/imx5*.dts', "Freescale i.MX51 and i.MX53 based systems"],
|
||||
['dtb-imx6', 'nxp/imx/imx6*.dts', "Freescale i.MX6 based systems"],
|
||||
['dtb-imx7', 'nxp/imx/imx7*.dts', "Freescale i.MX7 based systems"],
|
||||
['dtb-keystone', 'ti/keystone/keystone-*.dts', "TI Keystone 2 based systems"],
|
||||
['dtb-meson6', 'amlogic/meson6-*.dts', "Amlogic Meson 6 based systems"],
|
||||
['dtb-meson8', 'amlogic/meson8-*.dts', "Amlogic Meson 8 based systems"],
|
||||
['dtb-meson8b', 'amlogic/meson8b-*.dts', "Amlogic Meson 8b based systems"],
|
||||
['dtb-mt76', 'mediatek/mt76*.dts', "MediaTek mt76 based systems"],
|
||||
['dtb-omap3', 'ti/omap/omap3*.dts', "TI OMAP3 based systems"],
|
||||
['dtb-omap4', 'ti/omap/omap4*.dts', "TI OMAP4 based systems"],
|
||||
['dtb-omap5', 'ti/omap/omap5*.dts', "TI OMAP5 based systems"],
|
||||
['dtb-qcom', 'qcom/qcom-*.dts', "Qualcomm Snapdragon based systems"],
|
||||
['dtb-rk3', 'rockchip/rk3*.dts', "Rockchip RK3xxx based systems"],
|
||||
['dtb-socfpga', 'intel/socfpga/socfpga_*.dts', "Altera SoC FPGA based systems"],
|
||||
['dtb-ste', 'st/ste-*.dts', "ST Ericsson based systems"],
|
||||
['dtb-sun4i', 'allwinner/sun4i-*.dts', "Allwinner sun4i based systems"],
|
||||
['dtb-sun5i', 'allwinner/sun5i-*.dts', "Allwinner sun5i based systems"],
|
||||
['dtb-sun6i', 'allwinner/sun6i-*.dts', "Allwinner sun6i based systems"],
|
||||
['dtb-sun7i', 'allwinner/sun7i-*.dts', "Allwinner sun7i based systems"],
|
||||
['dtb-sun8i', 'allwinner/sun8i-*.dts', "Allwinner sun8i based systems"],
|
||||
['dtb-sun9i', 'allwinner/sun9i-*.dts', "Allwinner sun9i based systems"],
|
||||
['dtb-tegra2', 'nvidia/tegra20-*.dts', "NVidia Tegra2 based systems"],
|
||||
['dtb-tegra3', 'nvidia/tegra30-*.dts', "NVidia Tegra3 based systems"],
|
||||
['dtb-tegra114', 'nvidia/tegra114-*.dts', "NVidia Tegra4 based systems"],
|
||||
['dtb-tegra124', 'nvidia/tegra124-*.dts', "NVidia Tegra K1 based systems"],
|
||||
['dtb-vexpress', 'arm/vexpress-*.dts', "ARM Versatile Express machines"],
|
||||
['dtb-vf500', 'nxp/vf/vf500-*.dts', "Freescale Vybrid VF500 based systems"],
|
||||
['dtb-vf6', 'nxp/vf/vf610-*.dts', "Freescale Vybrid VF610 based systems"],
|
||||
['dtb-xenvm', 'xen/xenvm-*.dts', "Xen virtual machines"],
|
||||
['dtb-zynq', 'xilinx/zynq-*.dts', "Xilinx Zynq based systems"],
|
||||
);
|
||||
|
||||
# DTB packages names
|
||||
my @armv6l_package_list = (
|
||||
['dtb-bcm2835', 'broadcom/bcm2835*.dts', "Raspberry Pi 1 (A+, B, B+)"],
|
||||
);
|
||||
|
||||
# DTB packages names
|
||||
my @aarch64_package_list = (
|
||||
['dtb-allwinner', 'allwinner/*.dts', "Allwinner based arm64 systems"],
|
||||
['dtb-altera', 'altera/*.dts', "Altera based arm64 systems"],
|
||||
['dtb-amazon', 'amazon/*.dts', "Amazon based arm64 systems"],
|
||||
['dtb-amd', 'amd/*.dts', "AMD based arm64 systems"],
|
||||
['dtb-amlogic', 'amlogic/*.dts', "Amlogic based arm64 systems"],
|
||||
['dtb-apm', 'apm/*.dts', "AppliedMicro based arm64 systems"],
|
||||
['dtb-apple', 'apple/*.dts', "Apple SOC based arm64 systems"],
|
||||
['dtb-arm', 'arm/*.dts', "ARM Ltd. based arm64 systems"],
|
||||
['dtb-broadcom', 'broadcom/*.dts', "Broadcom based arm64 systems"],
|
||||
['dtb-cavium', 'cavium/*.dts', "Cavium based arm64 systems"],
|
||||
['dtb-exynos', 'exynos/*.dts', "Samsung Exynos based arm64 systems"],
|
||||
['dtb-freescale', 'freescale/*.dts', "NXP (Freescale) based arm64 systems"],
|
||||
['dtb-hisilicon', 'hisilicon/*.dts', "HiSilicon based arm64 systems"],
|
||||
['dtb-lg', 'lg/*.dts', "LG based arm64 systems"],
|
||||
['dtb-marvell', 'marvell/*.dts', "Marvell based arm64 systems"],
|
||||
['dtb-mediatek', 'mediatek/*.dts', "MediaTek based arm64 systems"],
|
||||
['dtb-nvidia', 'nvidia/*.dts', "Nvidia based arm64 systems"],
|
||||
['dtb-qcom', 'qcom/*.dts', "Qualcomm based arm64 systems"],
|
||||
['dtb-renesas', 'renesas/*.dts', "Renesas based arm64 systems"],
|
||||
['dtb-rockchip', 'rockchip/*.dts', "Rockchip based arm64 systems"],
|
||||
['dtb-socionext', 'socionext/*.dts', "Socionext based arm64 systems"],
|
||||
['dtb-sprd', 'sprd/*.dts', "Spreadtrum based arm64 systems"],
|
||||
['dtb-xilinx', 'xilinx/*.dts', "Xilinx based arm64 systems"],
|
||||
);
|
||||
|
||||
# DTB packages names
|
||||
my @riscv64_package_list = (
|
||||
['dtb-allwinner', 'allwinner/*.dts', "Allwinner based riscv64 systems"],
|
||||
['dtb-microchip', 'microchip/*.dts', "Microchip based riscv64 systems"],
|
||||
['dtb-renesas', 'renesas/*.dts', "Renesas based riscv64 systems"],
|
||||
['dtb-sifive', 'sifive/*.dts', "SiFive based riscv64 systems"],
|
||||
['dtb-starfive', 'starfive/*.dts', "StarFive based riscv64 systems"],
|
||||
['dtb-thead', 'thead/*.dts', "T-HEAD based riscv64 systems"],
|
||||
);
|
||||
|
||||
sub generate_spec($$$)
|
||||
{
|
||||
my ($main_package, $exclusive_arch, $package_list) = @_;
|
||||
|
||||
print "$main_package.spec\n";
|
||||
# open .spec and .spec.in files
|
||||
open (SPEC, ">$main_package.spec") or die "Unable to open $main_package.spec.\n";
|
||||
open (TEMPLATE, "$spec_in") or die "Unable to open $spec_in.\n";
|
||||
|
||||
my $ARCH_RESTRICTIONS = "";
|
||||
$ARCH_RESTRICTIONS = "ExclusiveArch: $exclusive_arch"
|
||||
unless ($exclusive_arch eq 'none');
|
||||
|
||||
my $subpkg_desc = "";
|
||||
my $subpkg_post = "";
|
||||
my $subpkg_files = "";
|
||||
my $subpkg_case = "";
|
||||
my $all_supported_dtb = "";
|
||||
my $DTS_folder = "arch/arm/boot/dts";
|
||||
if ($exclusive_arch =~ /aarch64/) {
|
||||
$DTS_folder = "arch/arm64/boot/dts";
|
||||
} elsif ($exclusive_arch =~ /riscv64/) {
|
||||
$DTS_folder = "arch/riscv/boot/dts";
|
||||
}
|
||||
|
||||
foreach my $NAME (@$package_list) {
|
||||
my $PKG_NAME = @{$NAME}[0];
|
||||
my $SUPPORTED_DTB = @{$NAME}[1];
|
||||
my $MACHINES = @{$NAME}[2];
|
||||
|
||||
$subpkg_desc .=
|
||||
"%package -n $PKG_NAME\n" .
|
||||
"Summary: $MACHINES\n" .
|
||||
"Group: System/Boot\n";
|
||||
if ($PKG_NAME eq 'dtb-keystone' and $main_package eq 'dtb-armv7l') {
|
||||
$subpkg_desc .= "Provides: dtb-k2e = %version\n" .
|
||||
"Provides: dtb-k2l = %version\n";
|
||||
}
|
||||
if ($PKG_NAME eq 'dtb-amazon' and $main_package eq 'dtb-aarch64') {
|
||||
$subpkg_desc .= "Provides: dtb-al = %version\n";
|
||||
}
|
||||
if ($PKG_NAME eq 'dtb-apm' and $main_package eq 'dtb-aarch64') {
|
||||
$subpkg_desc .= "Provides: dtb-apm-mustang = %version\n";
|
||||
}
|
||||
if ($PKG_NAME eq 'dtb-arm' and $main_package eq 'dtb-aarch64') {
|
||||
$subpkg_desc .= "Provides: dtb-foundation-v8 = %version\n" .
|
||||
"Provides: dtb-rtsm_ve-aemv8a = %version\n";
|
||||
}
|
||||
if ($PKG_NAME eq 'dtb-cavium' and $main_package eq 'dtb-aarch64') {
|
||||
$subpkg_desc .= "Provides: dtb-thunder-88xx = %version\n";
|
||||
}
|
||||
if ($PKG_NAME eq 'dtb-hisilicon' and $main_package eq 'dtb-aarch64') {
|
||||
$subpkg_desc .= "Provides: dtb-hisilicon64 = %version\n";
|
||||
}
|
||||
$subpkg_desc .=
|
||||
"Provides: multiversion(dtb)\n" .
|
||||
"Requires(post): coreutils\n" .
|
||||
"\n" .
|
||||
"%description -n $PKG_NAME\n" .
|
||||
"Device Tree files for $MACHINES.\n\n";
|
||||
|
||||
$subpkg_post .=
|
||||
"%post -n $PKG_NAME\n" .
|
||||
"cd /boot\n" .
|
||||
"# If /boot/dtb is a symlink, remove it, so that we can replace it.\n" .
|
||||
"[ -d dtb ] && [ -L dtb ] && rm -f dtb\n" .
|
||||
"# Unless /boot/dtb exists as real directory, create a symlink.\n" .
|
||||
"[ -d dtb ] || ln -sf dtb-%kernelrelease dtb\n\n";
|
||||
|
||||
my $bin_supported_dtb = $SUPPORTED_DTB;
|
||||
$bin_supported_dtb =~ s/\.dts/\.dtb/g;
|
||||
|
||||
my $dtb_subdir = "";
|
||||
my $path = "";
|
||||
my @components = split(/\//, $bin_supported_dtb);
|
||||
pop @components; # filename
|
||||
foreach my $subdir (@components) {
|
||||
$path .= "/$subdir";
|
||||
$dtb_subdir .= "%dir %{dtbdir}$path\n";
|
||||
}
|
||||
|
||||
$subpkg_files .=
|
||||
"%ifarch %arm aarch64 riscv64\n" .
|
||||
"%files -n $PKG_NAME -f $PKG_NAME.list\n" .
|
||||
"%else\n" .
|
||||
"%files -n $PKG_NAME\n" .
|
||||
"%endif\n" .
|
||||
"%defattr(-,root,root)\n" .
|
||||
"%ghost /boot/dtb\n" .
|
||||
"%dir %{dtbdir}\n" .
|
||||
$dtb_subdir .
|
||||
"%{dtbdir}/$bin_supported_dtb\n" .
|
||||
"\n";
|
||||
|
||||
if ($main_package eq 'dtb-armv6l' or $main_package eq 'dtb-armv7l') {
|
||||
# Map dts file name back to subpkg name
|
||||
$subpkg_case .= " $SUPPORTED_DTB) pkgname=$PKG_NAME;;\n"
|
||||
}
|
||||
$all_supported_dtb .= "$SUPPORTED_DTB ";
|
||||
}
|
||||
chomp($all_supported_dtb);
|
||||
|
||||
# spec file generation
|
||||
while(<TEMPLATE>){
|
||||
$_ =~ s/\$NAME/$main_package/g;
|
||||
$_ =~ s/\$ARCH_RESTRICTIONS/$ARCH_RESTRICTIONS/g;
|
||||
$_ =~ s/\$DTS_folder/$DTS_folder/g;
|
||||
$_ =~ s/\$SUBPKG_DESC/$subpkg_desc/g;
|
||||
$_ =~ s/\$ALL_SUPPORTED_DTB/$all_supported_dtb/g;
|
||||
$_ =~ s/\$SUBPKG_POST\n?/$subpkg_post/g;
|
||||
$_ =~ s/\$SUBPKG_FILES\n?/$subpkg_files/g;
|
||||
$_ =~ s/\$SUBPKG_CASE\n?/$subpkg_case/g;
|
||||
print SPEC $_;
|
||||
}
|
||||
|
||||
close(TEMPLATE);
|
||||
close(SPEC);
|
||||
}
|
||||
if ( grep( /armv7/, @ARGV)) {
|
||||
generate_spec('dtb-armv7l', "armv7l armv7hl", \@armv7l_package_list);
|
||||
}
|
||||
if ( grep( /armv6/, @ARGV)) {
|
||||
generate_spec('dtb-armv6l', "armv6l armv6hl", \@armv6l_package_list);
|
||||
}
|
||||
if ( grep( /aarch64/, @ARGV)) {
|
||||
generate_spec('dtb-aarch64', "aarch64", \@aarch64_package_list);
|
||||
}
|
||||
if ( grep( /riscv64/, @ARGV)) {
|
||||
generate_spec('dtb-riscv64', "riscv64", \@riscv64_package_list);
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
use File::Basename;
|
||||
use File::Path;
|
||||
use File::Find;
|
||||
use Getopt::Long;
|
||||
use Getopt::Long qw(:config no_ignore_case);
|
||||
use strict;
|
||||
|
||||
my %symbol_type_name = (
|
||||
|
||||
25
old-flavors
25
old-flavors
@@ -1,25 +0,0 @@
|
||||
# List of obsolete kernel flavors
|
||||
# <arch>/<new flavor> <old flavor> <upper bound of shipped versions>
|
||||
|
||||
# SLES 11 SP3 / openSUSE 13.1
|
||||
i386/default trace 3.13
|
||||
|
||||
x86_64/default trace 3.13
|
||||
x86_64/default bigsmp 3.1
|
||||
|
||||
s390x/default trace 3.13
|
||||
|
||||
# openSUSE 13.2 / Tumbleweed until 2015-10-01
|
||||
i386/pae desktop 4.3
|
||||
x86_64/default desktop 4.3
|
||||
|
||||
# SLE 12 SP1
|
||||
i386/pae xen 4.4
|
||||
i386/pae ec2 4.4
|
||||
x86_64/default xen 4.4
|
||||
x86_64/default ec2 4.4
|
||||
|
||||
x86_64/rt compute 3.13
|
||||
x86_64/rt_debug compute_debug 3.13
|
||||
|
||||
|
||||
@@ -1,148 +0,0 @@
|
||||
# Descriptions of the binary kernel packages. The format is
|
||||
#
|
||||
# === <package name> ===
|
||||
# Summary: Package summary (single line)
|
||||
# Requires: additional dependencies for KMPs (single line)
|
||||
# ...
|
||||
#
|
||||
# Long description (multiple
|
||||
# lines)
|
||||
#
|
||||
# Descriptions of the -base and -extra subpackages are derived from the
|
||||
# main descriptions. The "Summary:" keyword can be omitted
|
||||
|
||||
=== kernel-debug ===
|
||||
A Debug Version of the Kernel
|
||||
|
||||
This kernel has several debug facilities enabled that hurt performance.
|
||||
Only use this kernel when investigating problems.
|
||||
|
||||
=== kernel-default ===
|
||||
The Standard Kernel
|
||||
|
||||
The standard kernel for both uniprocessor and multiprocessor systems.
|
||||
|
||||
=== kernel-kvmsmall ===
|
||||
The Small Developer Kernel for KVM
|
||||
|
||||
This kernel is intended for kernel developers to use in simple virtual
|
||||
machines. It contains only the device drivers necessary to use a
|
||||
KVM virtual machine *without* device passthrough enabled. Common
|
||||
local and network file systems are enabled. All device mapper targets
|
||||
are enabled. Only the network and graphics drivers for devices that qemu
|
||||
emulates are enabled. Many subsystems enabled in the default kernel
|
||||
are entirely disabled. This kernel is meant to be small and to build
|
||||
very quickly. The configuration may change arbitrarily between builds.
|
||||
|
||||
=== kernel-azure ===
|
||||
Kernel for MS Azure cloud
|
||||
|
||||
Kernel for use in the MS Azure cloud and other Hyper-V based virtualization
|
||||
solutions.
|
||||
|
||||
=== kernel-pae ===
|
||||
Kernel with PAE Support
|
||||
|
||||
This kernel supports up to 64GB of main memory. It requires Physical
|
||||
Addressing Extensions (PAE), which were introduced with the Pentium Pro
|
||||
processor.
|
||||
|
||||
PAE is not only more physical address space but also important for the
|
||||
"no execute" feature which disables execution of code that is marked as
|
||||
non-executable. Therefore, the PAE kernel should be used on any systems
|
||||
that support it, regardless of the amount of main memory.
|
||||
|
||||
=== kernel-vanilla ===
|
||||
The Standard Kernel - without any SUSE patches
|
||||
|
||||
The standard kernel - without any SUSE patches
|
||||
|
||||
=== kernel-64kb ===
|
||||
Kernel with 64kb PAGE_SIZE
|
||||
|
||||
This kernel is identical to the default kernel, but is configured with
|
||||
64kb page size granule. Its main purpose is to serve as compatibility
|
||||
kernel for systems that were installed when the default kernel was still
|
||||
configured with 64kb page size granule.
|
||||
|
||||
=== kernel-lpae ===
|
||||
Kernel for LPAE enabled systems
|
||||
|
||||
The kernel for all 32-bit ARM platforms that support LPAE. This includes all
|
||||
Cortex A15 based SoCs, like the Exynos5, OMAP5 or Calxeda ECX-2000.
|
||||
|
||||
=== kernel-preempt ===
|
||||
Kernel with PREEMPT support
|
||||
|
||||
The kernel for arm64 and x86_64 architectures that supports CONFIG_PREEMPT. Its
|
||||
main purpose is to serve workloads with a higher demand on smaller latencies
|
||||
than the default kernel in average.
|
||||
|
||||
=== kernel-syzkaller ===
|
||||
Kernel used for fuzzing by syzkaller
|
||||
|
||||
The syzkaller kernel should be used solely in a virtual machine by
|
||||
syzkaller only. It supports kernel coverage and enables a lot of slow
|
||||
debugging options.
|
||||
|
||||
=== kernel-zfcpdump ===
|
||||
The IBM System Z zfcpdump Kernel
|
||||
|
||||
The Linux kernel for booting the zfcpdump process on IBM System Z.
|
||||
|
||||
This kernel should only be used by the s390-tools package. This kernel
|
||||
should not be installed as a regular booting kernel.
|
||||
|
||||
=== cluster-md-kmp ===
|
||||
Summary: Clustering support for MD devices
|
||||
Requires: dlm-kmp
|
||||
|
||||
Clustering support for MD devices. This enables locking and
|
||||
synchronization across multiple systems on the cluster, so all
|
||||
nodes in the cluster can access the MD devices simultaneously.
|
||||
|
||||
=== dlm-kmp ===
|
||||
DLM kernel modules
|
||||
|
||||
DLM stands for Distributed Lock Manager, a means to synchronize access to
|
||||
shared resources over the cluster.
|
||||
|
||||
=== gfs2-kmp ===
|
||||
Summary: GFS2 kernel modules
|
||||
Requires: dlm-kmp
|
||||
|
||||
GFS2 is Global Filesystem, a shared device filesystem.
|
||||
|
||||
=== ocfs2-kmp ===
|
||||
Summary: OCFS2 kernel modules
|
||||
Requires: dlm-kmp
|
||||
|
||||
OCFS2 is the Oracle Cluster Filesystem, a filesystem for shared devices
|
||||
accessible simultaneously from multiple nodes of a cluster.
|
||||
|
||||
=== kselftests-kmp ===
|
||||
Kernel sefltests
|
||||
|
||||
This package contains kernel modules which are part of the upstream kernel
|
||||
selftest effort. kselftest is the name of the upstream kernel target to build
|
||||
and run all selftests. You can also run each test individually from the
|
||||
respective upstream tools/testing/selftests/ directory, this package is
|
||||
intended to be used using individial upstream selftest scripts given only
|
||||
select supported selftest drivers are enabled.
|
||||
|
||||
It should always be possible to always run the latest linux-next version of the
|
||||
selftest scripts and tests against any older kernel selftest driver. Certain
|
||||
tests facilities may be backported onto older kernels to enable further
|
||||
testing.
|
||||
|
||||
Selftests also provide for a vehicle or proof of concept issues to be
|
||||
reproduced, verified and corrected.
|
||||
|
||||
Selftest drivers are intended to be supported only in testing and QA
|
||||
environments, they are not intended to be run on production systems.
|
||||
|
||||
=== reiserfs-kmp ===
|
||||
Reiserfs kernel module
|
||||
|
||||
The reiserfs file system is no longer supported in SLE15. This package
|
||||
provides the reiserfs module for the installation system.
|
||||
BIN
patches.addon.tar.bz2
LFS
BIN
patches.addon.tar.bz2
LFS
Binary file not shown.
BIN
patches.apparmor.tar.bz2
LFS
BIN
patches.apparmor.tar.bz2
LFS
Binary file not shown.
BIN
patches.arch.tar.bz2
LFS
BIN
patches.arch.tar.bz2
LFS
Binary file not shown.
BIN
patches.drivers.tar.bz2
LFS
BIN
patches.drivers.tar.bz2
LFS
Binary file not shown.
BIN
patches.drm.tar.bz2
LFS
BIN
patches.drm.tar.bz2
LFS
Binary file not shown.
BIN
patches.fixes.tar.bz2
LFS
BIN
patches.fixes.tar.bz2
LFS
Binary file not shown.
BIN
patches.kabi.tar.bz2
LFS
BIN
patches.kabi.tar.bz2
LFS
Binary file not shown.
BIN
patches.kernel.org.tar.bz2
LFS
BIN
patches.kernel.org.tar.bz2
LFS
Binary file not shown.
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:554e8e4e583ef73827c621d3ef5593a0cffb137cb98e75047fa3572a0671a57a
|
||||
size 4243
|
||||
oid sha256:a9305f69ceb189a03829dcb8247084359edc68a0cdb9938f1fa4d4e86351a528
|
||||
size 4119
|
||||
|
||||
BIN
patches.rt.tar.bz2
LFS
BIN
patches.rt.tar.bz2
LFS
Binary file not shown.
BIN
patches.suse.tar.bz2
LFS
BIN
patches.suse.tar.bz2
LFS
Binary file not shown.
@@ -1,6 +1,9 @@
|
||||
# This file contains regular expressions that define which projects
|
||||
# are considered part of an official release channel.
|
||||
# This will mark the kernel as released when it's built.
|
||||
SUSE:SLFO:[0-9].*
|
||||
SUSE:ALP:Source:Standard:Core:1.0:Build
|
||||
SUSE:SLFO:Kernel:1.0:Build
|
||||
SUSE:SLE-.*
|
||||
SUSE:Maintenance:.*
|
||||
openSUSE:[0-9].*:Update
|
||||
|
||||
24248
series.conf
24248
series.conf
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,3 @@
|
||||
2024-09-08 09:48:30 +0000
|
||||
GIT Revision: e2ac9495079bda452d5e19af61c25c52dd6f89f7
|
||||
2026-01-31 01:19:55 +0000
|
||||
GIT Revision: 6a162b8bd53815766e70047d2f150f19a2ef1971
|
||||
GIT Branch: slowroll
|
||||
|
||||
@@ -167,6 +167,7 @@ if $opt_extra && test -f "$opt_builddir/Module.optional"; then
|
||||
esac
|
||||
path=${path%.ko}
|
||||
mod=${path##*/}
|
||||
mod=$(echo "$mod" | sed 'y/-/_/')
|
||||
modmarks["$mod"]="$mark"
|
||||
# paths with wildcards need to be verified sequentially, so we keep
|
||||
# the paths in the array wcpaths and each mark in wcmarks[]
|
||||
@@ -185,6 +186,7 @@ if $opt_extra && test -f "$opt_builddir/Module.optional"; then
|
||||
esac
|
||||
path=${path%.ko}
|
||||
mod=${path##*/}
|
||||
mod=$(echo "$mod" | sed 'y/-/_/')
|
||||
x=${modmarks["$mod"]}
|
||||
if [ -n "$x" ]; then
|
||||
test x"$x" = x"-" && echo "$xpath"
|
||||
@@ -192,6 +194,7 @@ if $opt_extra && test -f "$opt_builddir/Module.optional"; then
|
||||
fi
|
||||
|
||||
# unmatched modules must be handled via wildcard
|
||||
path=${path#/usr}
|
||||
path=${path#/lib/modules/*/kernel/}
|
||||
for m in "${wcpaths[@]}"; do
|
||||
case "$path" in
|
||||
|
||||
BIN
sysctl.tar.bz2
LFS
BIN
sysctl.tar.bz2
LFS
Binary file not shown.
@@ -1,83 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#############################################################################
|
||||
# Copyright (c) 2011 Novell, Inc.
|
||||
# Copyright (c) 2012-2022 SUSE LLC
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of version 2 of the GNU General Public License as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, contact https://www.suse.com/source-code/
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
|
||||
# If make fails, check if it happened due to a staging driver and disable it.
|
||||
# That way, staging does not spoil automatic package building and we also
|
||||
# do not need to worry about forgetting to reenable manually disabled drivers.
|
||||
|
||||
if test -L source; then
|
||||
source="source"
|
||||
else
|
||||
source="."
|
||||
fi
|
||||
if test -f ${source}/scripts/kconfig/Makefile && \
|
||||
grep -q syncconfig ${source}/scripts/kconfig/Makefile; then
|
||||
syncconfig="syncconfig"
|
||||
else
|
||||
syncconfig="silentoldconfig"
|
||||
fi
|
||||
makefile="$source/drivers/staging/Makefile"
|
||||
skipped_options=staging-skipped-options
|
||||
logfile=$1
|
||||
|
||||
if test -z "$logfile"; then
|
||||
echo "Usage: $0 logfile" >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! test -f "$logfile"; then
|
||||
echo "$logfile not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# safety precaution
|
||||
if test "0$(wc -l "$skipped_options" 2>/dev/null)" -gt 20; then
|
||||
echo "Possible loop detected in $0, exiting after 20 attempts" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# find out if the error happened in drivers/staging
|
||||
dir=$(sed -rn 's@.*/drivers/staging/([^/]*)/.*: error: .*@\1@p; T; q' "$logfile")
|
||||
if test -z "$dir"; then
|
||||
exit 1
|
||||
else
|
||||
echo "Build failed due to drivers/staging/$dir"
|
||||
fi
|
||||
|
||||
option=$(sed -n 's/obj-\$(\(.*\))[[:space:]]*+=[[:space:]]*'"$dir"'\//\1/p' "$makefile")
|
||||
if test -z "$option"; then
|
||||
echo "Cannot determine config option to skip drivers/staging/$dir" >&2
|
||||
exit 1
|
||||
fi
|
||||
# we need to be carefull not to loop endlessly
|
||||
if grep -qsFx "$option" "$skipped_options"; then
|
||||
echo "$option has already been disabled, but drivers/staging/$dir is still failing" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Trying to disable $option"
|
||||
"$source/scripts/config" --disable "$option"
|
||||
if ! make $syncconfig $MAKE_ARGS || grep "^$option" .config; then
|
||||
echo "Could not disable $option" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "$option" >>"$skipped_options"
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user