Commit Graph

94 Commits

Author SHA1 Message Date
Jianping Liu f67246a0d7 dist: not split out modules-public and modules-public-removable-media rpm
OC release need keep consistent with the community's conventions.
Spliting out modules-public and modules-public-removable-media rpm is
inconsistent with the community's conventions.

Revert:
commit 4faa03afdc ("dist: add a modules-public rpm subpackage")
commit 83c70cfab6 ("dist: rename modules-removable-media to
modules-public-removable-media")

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
2024-05-09 16:26:44 +08:00
Jianping Liu 5071b58e39 config: enable CONFIG_DEBUG_INFO_BTF in eks config
eks container image build needing CONFIG_DEBUG_INFO_BTF, add it.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
2024-04-18 19:45:33 +08:00
Kairui Song 1ffa857af8 dist: ensure release start with decimal number
Upstream: no

RPM NVR expects a decimal starting release. Previously dist build try to
respect git tag as much as possible, but for this case we need to be
careful about breaking RPM specs.

Signed-off-by: Kairui Song <kasong@tencent.com>
2024-04-18 02:25:53 +00:00
Kairui Song afd9d2d0b6 dist: sanitize usage of unamer
Upstream: no

Clean up how unamer is being formatted, ensure it's set in
lib-version.sh and else where can simply use it.

Signed-off-by: Kairui Song <kasong@tencent.com>
2024-04-18 02:25:53 +00:00
Kairui Song e9ee1b9837 dist: add missing place holder for loongarch64 kabi
Upstream: no

Ensure local build can pass.

Signed-off-by: Kairui Song <kasong@tencent.com>
2024-04-18 02:25:53 +00:00
Jianping Liu 1a77a55752 dist: release 6.6.26-1
Upstream: no

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
2024-04-17 11:35:28 +08:00
Jianping Liu d2d3d7be5f dist: using --topo-order when run git log
git log --topo-order will keep the real merge order, and make the changelog
more readable.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
2024-04-17 09:56:19 +08:00
Jianping Liu b7c1d03b83 dist: revert "do not include tl and arch info in uname -r"
lorax image need arch info in /boot/vmlinuz-* file name, so, revert
the commit "do not include tl and arch info in uname -r".

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
2024-04-16 15:50:38 +08:00
Jianping Liu 1020a22959 dist: avoid "make dist-rpm" warnning
When run "make dist-rpm", there are warnnings as below:
Generating kernel RPM spec: /data/tencentos/tkernel5/dist/rpm/SOURCES/kernel.spec
warning: Macro expanded in comment on line 377: %{rpm_name}-debuginfo-common

To avoid warnning, do not using MICRO in annotations.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
2024-04-13 13:10:46 +08:00
Jianping Liu 5f0491ad7c Loongarch: support loongarch and add kvm support for loongarch
Merge pull request !128 from lixianglai/next
2024-04-12 20:51:12 +08:00
Ming Wang 5ae49db3f0 dist: loongarch: add make dist support for loongarch
Upstream: no

Adds LoongArch64 processor architecture support in the Makefile.
Also add a soft link to the loongson3_defconfig config file.

Signed-off-by: Ming Wang <wangming01@loongson.cn>
2024-04-12 20:49:37 +08:00
linuszeng 4658d1f284 configs: enable config of X86_PAT for nvidia driver
The following errors are showing up when compiling nvidia driver:

/home/builder/rpmbuild/BUILD/gpu_src/kernel/nvidia/nv-pat.c: In function 'nv_disable_caches':
/home/builder/rpmbuild/BUILD/gpu_src/kernel/nvidia/nv-pat.c:66:5: error: implicit declaration of function '__flush_tlb'; did you
 mean '__flush_tlb_all'? [-Werror=implicit-function-declaration]
   66 |     __flush_tlb();
      |     ^~~~~~~~~~~
      |     __flush_tlb_all
cc1: some warnings being treated as errors

Solve these issues by:
enable CONFIG_X86_PAT

Signed-off-by: Zeng Jingxiang <linuszeng@tencent.com>
2024-04-12 11:01:07 +00:00
Jianping Liu a70ca9fd71 dist: skip btf dump file if no /sys/kernel/btf/vmlinux
If using CONFIG="eks-release", will no CONFIG_DEBUG_INFO_BTF.
If no CONFIG_DEBUG_INFO_BTF and no /sys/kernel/btf/vmlinux in build env,
make dist-rpm will fail, fixt it.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
2024-04-10 16:32:01 +08:00
Jianping Liu 2159f357c8 dist: only disable ofed if not generic-release
EKS need perf rpm, so only disable ofed if not generic-release.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
2024-04-08 14:04:47 +08:00
Jianping Liu 680e6d50a3 dist: add a modules-private rpm subpackage
TK have some kernel modules (such rue.ko) only used in private release version,
split them into modules-private subpackage.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
2024-04-08 13:18:38 +08:00
Jianping Liu 8db2e845c2 dist: do not include tl and arch info in uname -r
Eg: change the output of "uname -r" from "6.6.20-0001.rc3.tl4.x86_64"
to "6.6.20-0001.rc3".

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
2024-04-08 12:46:13 +08:00
Kairui Song 11710e59be dist: tencent: allow independeny distribution of debuginfo
Upstream: no

For some reason, we don't distribute debuginfo-common easily (and I have
no say in it) since it contains source code. So let's break the dependency
chain. This will cause trouble for crash debugging but that's what we
want.

Signed-off-by: Kairui Song <kasong@tencent.com>
Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
2024-04-07 16:49:55 +08:00
linuszeng 5a0da8cdef configs: enable config of TEXT_UNEVICTABLE for memcg granularity
This enables CONFIG_TEXT_UNEVICTABLE on x86 and arm64

Backport-reason: Add code segment unevictable feature support [PATCH 8/8]

Signed-off-by: Xin Hao <vernhao@tencent.com>
2024-04-03 17:59:25 +08:00
Kairui Song 690dae3cfe dist: disable non kernel pkg on non default config
Upstream: no

Signed-off-by: Kairui Song <kasong@tencent.com>
2024-04-03 16:58:46 +08:00
Kairui Song 432d074030 dist: add eks base config
Copied from 0017 with EMM enabled and tidyup with defconfig.

Signed-off-by: Kairui Song <kasong@tencent.com>
2024-04-03 15:36:21 +08:00
linuszeng 390cfbd393 dist: kernel.template.spec: add lz4 build request
Upstream: no

Signed-off-by: Zeng Jingxiang <linuszeng@tencent.com>
2024-04-03 15:36:20 +08:00
Yongliang Gao 0c01b9d8fb kabi: provide kabi check/update/create commands for local users
Upstream: no

Provides kabi check/update/create commands for local users:
1. Check whether TencentOS Kennel KABI is compatible
2. Update TencentOS Kennel KABI file
3. Create TencentOS Kennel KABI file

Signed-off-by: Yongliang Gao <leonylgao@tencent.com>
Reviewed-by: Jianping Liu <frankjpliu@tencent.com>
2024-03-26 14:10:56 +08:00
costinchen ea51a4e717 spec: add support for secureboot by signing the vmlinuz.
spec: add dependency on libtool to build on koji.

Signed-off-by: Sinong Chen <costinchen@tencent.com>
Reviewed-by: Jianping Liu <frankjpliu@tencent.com>
2024-03-15 21:56:46 +08:00
Jianping Liu 4faa03afdc dist: add a modules-public rpm subpackage
TK have some kernel modules (such nvidia.ko) only uesd in public release verison,
split them into modules-public subpackage.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
2024-03-15 12:12:14 +08:00
Jianping Liu 83c70cfab6 dist: rename modules-removable-media to modules-public-removable-media
Modules in kernle*modules-removable-media*.rpm are the drivers for removable
media. Using them will rise attack risck, and they are not used in private
release, only used in public release. So, rename it.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
2024-03-15 12:06:30 +08:00
Jianping Liu 2596824741 dist: tks: add a removable media modules pkg
Tk4 have this sub package, try to be compatible, and use
filter-modules.sh instead which does a depmod check after splitting, to
avoid depmod failure after some modules are split into subpackage.

Signed-off-by: Kairui Song <kasong@tencent.com>
Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
2024-03-15 11:55:08 +08:00
Jianping Liu abfc2d853b dist: clear the content about Module.kabi_* file
master branch need keep kabi compatible, so, clear the content about
Module.kabi_* file.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
2024-03-04 14:20:22 +08:00
Jianping Liu 36e05b10d8 Makefile, dist: add "make tencentconfig" support
Tkci depending on "make tencentconfig", add it. And this is compatible
with TK4.

Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
Reviewed-by: Jason Xing <kernelxing@tencent.com>
Reviewed-by: aurelianliu <aurelianliu@tencent.com>
2024-03-04 13:25:26 +08:00
Kairui Song f1384ba706 dist: fix build failure after tarname change
Upstream: no
Signed-off-by: Kairui Song <kasong@tencent.com>
2024-03-02 03:21:59 +08:00
Kairui Song d22cdce1d6 dist: -core should also provides kernel
Upstream: no

Some scripts depend on this.

Signed-off-by: Kairui Song <kasong@tencent.com>
2024-03-01 18:45:32 +08:00
Kairui Song 0fe106267c dist: use a fixed tar base name for spec
Upstream: no

Dynamic tar name is causing trouble if distro want to bump suffix
version and rebuild, so fix tarname here.

Signed-off-by: Kairui Song <kasong@tencent.com>
2024-03-01 17:34:05 +08:00
Kairui Song 9952a6aca6 config: update configs for better compatibility
Upstream: no

Signed-off-by: Kairui Song <kasong@tencent.com>
2024-03-01 17:07:24 +08:00
Aichun Shi 51051c65b9 x86: configs: Add Intel In Field Scan(IFS) kernel config
Upstream: no

Intel-SIG: no upstream x86: configs: Add Intel In Field Scan(IFS) kernel config
Backport to support IFS SAF & Array BIST on GNR & SRF

Signed-off-by: Aichun Shi <aichun.shi@intel.com>
2024-01-25 09:40:47 +08:00
Kairui Song 9d36757c88 dist: update spec for perf package
Upstream: no

Upstream no longer support dynamic libtraceevent, and adjust file list.

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-20 16:05:34 +08:00
Kairui Song fca37f2b34 dist: handle /boot/vmlinuz if no installed is working
Upstream: no

Some system need /boot/vmlinuz to work.

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-20 15:51:38 +08:00
Kairui Song a4b2dc2ffa dist: release 6.6.6-2401.0.1
Upstream: no

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-20 14:56:34 +08:00
Kairui Song 04c1fd2bc4 kabi: freeze kabi for x86_64 and arm64
Upstream: no

This kabi list is collected with following script:
(first compile the kernel with make)

- Collect top 800 commonly used kABI:
find -name "*.ko" -exec ./dist/scripts/helper/gen-module-kabi.sh \{\} \; | \
	| grep -v "NO-KABI" | awk '{print $3}' | sort | uniq -c | sort -nr | head -n 800 | awk '{print $2}' > top-800.kabi

- kABI collected from specified ko file:
./dist/scripts/helper/gen-module-kabi.sh ./nvidia.ko ./smartpqi.ko | grep -v "NO-KABI" | awk '{print $3}' > modules.kabi

- kABI from CentOS:
curl https://git.centos.org/rpms/kernel/raw/c8s/f/SOURCES/Module.kabi_x86_64 | awk '{print $2}' > rhel.kabi

Then merge them, and get the CRC:
cat top-800.kabi modules.kabi rhel.kabi oc.kabi | sort | uniq | \
	while read sym; do grep "\b$sym\b.*vmlinux" Module.symvers; done

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-12 15:57:12 +08:00
Kairui Song 86271f7645 config: update config for ocks-2401
Upstream: no

- Update for 6.6
- Enabled downstream features
- DWARF5 requires gcc 11+, let's be compatible with gcc 8.5 use DWARF4

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-12 15:56:44 +08:00
Kairui Song ee14e5223e dist: config: update config from ocks-2303
Upstream: no

Add unselected configs using default config val, remove deprecated
configs.

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-12 15:56:44 +08:00
Kairui Song 8ca7380d36 dist: config: add default config files
Upstream: no

Add two config target, generic-release and generic-debug.

generic-release is inherited from OCKS 2207, which is based on Centos 9
and TK4, with following key changes:

- Disabled Firewire, ATM, Memstick, TIPC, and some really legacy drivers
- Enable more NETFILTER, NET_ACT, NET_SCHE, NET_VENDOR, fit requirement
from TK4.
- Enable some drivers that are enabled in TK4 but not in RHEL, like some
IR_DECODER, network card drivers like QLCNIC, we can disable them
later if not needed.
- Enable compatibility options like USELIB and LEGACY_VSYSCALL.
- I thought about dropping DVBs, but RHEL/Fedora have them enabled, we
can disable them later if no one uses it.

Also enabled some configs even for defconfig, so the build process is
unified.

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-12 15:56:44 +08:00
Kairui Song 72f46684f1 dist: fix script checker
Upstream: no

Fix a script error, comm need sorted output.

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-12 15:56:43 +08:00
Kairui Song bdbf1dbd1c dist: tools/vm -> tools/mm
Upstream: no

Fix dist after commit 799fb82aa1 ("tools/vm: rename tools/vm to tools/mm").

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-12 15:56:43 +08:00
Kairui Song a081694837 dist: move libcpupower.so to kernel-libs
Upstream: no

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-12 15:56:43 +08:00
Kairui Song cf5d03932d dist: initial support
Upstream: no
Check-Patch: no

Imported from OCKS-2303:
https://github.com/openCloudOS/OpenCloudOS-Kernel-Stream/tree/ocks-2303

This build system is re-written from scratch except some code snips:

- Compatible with systems that were using TK kernel.
- Compatible with RHEL-like systems.
- Resolved tons of hacks and workaround from TK/RHEL. (leftovers are
  marked as TODO)
- All RPM builtin debuginfo utilities are well leveraged (buildid
  re-generate, dwarf compression, etc...)
- For bpftool and BTF info extracting, this package will try self-bootstrap
  and don't depend on host kernel during build time.
- Well commented, and targeted for maximum compatibility.
- Integrated config management system.
- Integrated with version management system.
- Provides many utils.
- Cross-build and cross packaging, also cross kABI checking/updating.
- ...

To start, just run:
make dist-rpm

And for help, just run:
make dist-help

It will build following packages:
  kernel
    Main meta package, empty, depend on kernel-core and kernel-modules
  kernel-core
    The package contains kernel image and core modules, able to boot
    all machines, all kinds of VMs etc.
  kernel-modules
    Contains extra modules and drivers, most modules that are not
    required for VMs and common hardware should go into this pacakge.
  kernel-devel
    Devel files for building custom kernel modules.
  kernel-headers
    Kernel headers.
  perf
  python3-perf
    Userspace tool perf.
  kernel-tools
  kernel-tools-libs
  kernel-tools-libs-devel
    Userspace tools like cpupower, slabinfo, etc...
  bpftool
    bpftool
  kernel-debuginfo
  kernel-debuginfo-common
  perf-debuginfo
  python3-perf-debuginfo
  kernel-tools-debuginfo
  bpftool-debuginfo
    All kinds of debuginfo

Signed-off-by: Kairui Song <kasong@tencent.com>
2023-12-12 15:56:34 +08:00