Compare commits
191 Commits
os-build
...
763db10d62
Author | SHA1 | Date |
---|---|---|
Fedora Kernel Team | 763db10d62 | |
Fedora Kernel Team | b02569792e | |
Fedora Kernel Team | 73791ec69b | |
Fedora Kernel Team | 80280d9502 | |
Fedora Kernel Team | 5bfba2306c | |
Fedora Kernel Team | 95b14bd4eb | |
Fedora Kernel Team | 5b91f75369 | |
Fedora Kernel Team | 8e0eabad8d | |
Fedora Kernel Team | ebaf35f772 | |
Fedora Kernel Team | 4ddaad1f57 | |
Fedora Kernel Team | 595f23bf4f | |
Fedora Kernel Team | 564690157d | |
Fedora Kernel Team | 5337fe3439 | |
Fedora Kernel Team | 7cd66d092e | |
Fedora Kernel Team | 04958684b5 | |
Fedora Kernel Team | a591de7cdd | |
Fedora Kernel Team | 74f9f741df | |
Fedora Kernel Team | 975abfc41d | |
Fedora Kernel Team | b27585e0f9 | |
Fedora Kernel Team | 7861be577d | |
Fedora Kernel Team | a59092757f | |
Fedora Kernel Team | 35565458d6 | |
Fedora Kernel Team | 838f16cf27 | |
Fedora Kernel Team | 93301392e3 | |
Fedora Kernel Team | ed3a51fec2 | |
Fedora Kernel Team | 424ad04d67 | |
Fedora Kernel Team | 769d0a1afe | |
Fedora Kernel Team | 8d9e16c2a5 | |
Fedora Kernel Team | 80775f1e76 | |
Fedora Kernel Team | 58abfe0f95 | |
Fedora Kernel Team | ed654a55b8 | |
Fedora Kernel Team | a071d139e8 | |
Fedora Kernel Team | b8d72ac041 | |
Fedora Kernel Team | 4af0d45c6d | |
Fedora Kernel Team | 082759a98b | |
Fedora Kernel Team | 36293924f7 | |
Fedora Kernel Team | c3d4e3579a | |
Fedora Kernel Team | 75adf04a27 | |
Fedora Kernel Team | 3204148f48 | |
Fedora Kernel Team | 08b9b5d2e5 | |
Fedora Kernel Team | 0819f8d0db | |
Fedora Kernel Team | fa75ee3a30 | |
Fedora Kernel Team | da80af2ca5 | |
Fedora Kernel Team | 5a7d2f05db | |
Fedora Kernel Team | 177cac0fac | |
Fedora Kernel Team | 43355c3fa5 | |
Fedora Kernel Team | 7475813627 | |
Fedora Kernel Team | b49e0763c6 | |
Fedora Kernel Team | 90f9eb55d3 | |
Fedora Kernel Team | 4897662642 | |
Fedora Kernel Team | 7273afe211 | |
Fedora Kernel Team | 47350020a0 | |
Fedora Kernel Team | b504aed50d | |
Fedora Kernel Team | 11f05d4872 | |
Fedora Kernel Team | 13d7ce48c0 | |
Fedora Kernel Team | b2644927d3 | |
Fedora Kernel Team | 344637f753 | |
Fedora Kernel Team | 7a601584ce | |
Fedora Kernel Team | e8d0ba7ba6 | |
Fedora Kernel Team | 9b60ae1d98 | |
Fedora Kernel Team | 5a26ef01c8 | |
Fedora Kernel Team | ac5c01a0d1 | |
Fedora Kernel Team | fa46322342 | |
Fedora Kernel Team | ec1430d04d | |
Fedora Kernel Team | 6d207ba4e0 | |
Fedora Kernel Team | ff1f9abd68 | |
Fedora Kernel Team | 58cdf44b57 | |
Fedora Kernel Team | 1aba13a840 | |
Fedora Kernel Team | 0b900b8275 | |
Fedora Kernel Team | c92c8dba8c | |
Fedora Kernel Team | 213f34b23b | |
Fedora Kernel Team | 72fe9b03be | |
Fedora Kernel Team | e3b5081381 | |
Fedora Kernel Team | 4a88f4aa4a | |
Fedora Kernel Team | 8f9bd4523e | |
Fedora Kernel Team | 0d555b24f2 | |
Fedora Kernel Team | 7a40a491da | |
Fedora Kernel Team | 303fd1a5ee | |
Fedora Kernel Team | 533fd67461 | |
Fedora Kernel Team | c3f450d892 | |
Fedora Kernel Team | 0839b20b41 | |
Fedora Kernel Team | 59b729de8f | |
Fedora Kernel Team | 117bfadfb3 | |
Fedora Kernel Team | b170eab65a | |
Fedora Kernel Team | 8a22d7391e | |
Fedora Kernel Team | c47a92933d | |
Fedora Kernel Team | 210146b5dd | |
Fedora Kernel Team | fbbb3014f3 | |
Fedora Kernel Team | 1f74f4efce | |
Fedora Kernel Team | 271e5cd7c3 | |
Fedora Kernel Team | 988939576c | |
Fedora Kernel Team | 5c20a1f479 | |
Fedora Kernel Team | 547083cc9a | |
Fedora Kernel Team | 324b693528 | |
Fedora Kernel Team | 3917e42c4f | |
Fedora Kernel Team | d47165ff68 | |
Fedora Kernel Team | dbdad8ba0e | |
Fedora Kernel Team | f847df3059 | |
Fedora Kernel Team | ea37128d50 | |
Fedora Kernel Team | 81da7c4414 | |
Fedora Kernel Team | 2d0d6cae5f | |
Fedora Kernel Team | d4560ccbb1 | |
Fedora Kernel Team | a5a5217b72 | |
Fedora Kernel Team | d45d422c48 | |
Fedora Kernel Team | 84dcdc773a | |
Fedora Kernel Team | bcdbdef712 | |
Fedora Kernel Team | 8368c0afe2 | |
Fedora Kernel Team | ca8ced846c | |
Fedora Kernel Team | 7bd129f619 | |
Fedora Kernel Team | 9a3512c0af | |
Fedora Kernel Team | 217aeb808b | |
Fedora Kernel Team | e07c2bc6d5 | |
Fedora Kernel Team | 01267acf31 | |
Fedora Kernel Team | 71df075062 | |
Fedora Kernel Team | 7726c006a4 | |
Fedora Kernel Team | 890e5e450d | |
Fedora Kernel Team | ef0e7b7491 | |
Fedora Kernel Team | 739f537eb8 | |
Fedora Kernel Team | f13adcd313 | |
Fedora Kernel Team | ad7559e75e | |
Fedora Kernel Team | e589ca0e35 | |
Fedora Kernel Team | 0c0a779ae5 | |
Fedora Kernel Team | 71ef0be078 | |
Fedora Kernel Team | c51f1fbb42 | |
Fedora Kernel Team | 5fae135d01 | |
Fedora Kernel Team | a84d967a5d | |
Fedora Kernel Team | c3485a09c8 | |
Fedora Kernel Team | 5c72435fe6 | |
Fedora Kernel Team | f33726c1af | |
Fedora Kernel Team | 3bc2e9d89d | |
Fedora Kernel Team | 3690e3baf2 | |
Fedora Kernel Team | 866f37838a | |
Fedora Kernel Team | e9162e931c | |
Fedora Kernel Team | 788badc765 | |
Fedora Kernel Team | f32bace7c0 | |
Fedora Kernel Team | 6c9ed0ca16 | |
Fedora Kernel Team | 0f878990d4 | |
Fedora Kernel Team | b87ae0dfee | |
Fedora Kernel Team | c30fa99061 | |
Fedora Kernel Team | ebc4e43da5 | |
Fedora Kernel Team | 698c233c7a | |
Fedora Kernel Team | d1f692bc7d | |
Fedora Kernel Team | b691b4578a | |
Fedora Kernel Team | a1f0028be1 | |
Fedora Kernel Team | 33a75d3e17 | |
Fedora Kernel Team | b8e56d0bee | |
Fedora Kernel Team | e492ba0e0a | |
Fedora Kernel Team | 4e0c65833c | |
Fedora Kernel Team | 083e87c39c | |
Fedora Kernel Team | 0aa4281224 | |
Fedora Kernel Team | 851ea1d371 | |
Fedora Kernel Team | 86fedc6594 | |
Fedora Kernel Team | 4fe28616f6 | |
Fedora Kernel Team | 8ab5503e79 | |
Fedora Kernel Team | a73609b846 | |
Fedora Kernel Team | 271f1a17e2 | |
Fedora Kernel Team | 16e2befe33 | |
Fedora Kernel Team | bddaecaadd | |
Fedora Kernel Team | 90ed438f7b | |
Fedora Kernel Team | ecc80fef28 | |
Fedora Kernel Team | 29a6bf29ae | |
Fedora Kernel Team | 52efa0e9a5 | |
Fedora Kernel Team | 64812b14ab | |
Fedora Kernel Team | 36667f6593 | |
Fedora Kernel Team | 17d799867c | |
Fedora Kernel Team | 765dac8b63 | |
Fedora Kernel Team | 5628b54e30 | |
Fedora Kernel Team | f99ed78243 | |
Fedora Kernel Team | a75f3251f0 | |
Fedora Kernel Team | c124f37c20 | |
Fedora Kernel Team | d8ad5e98e3 | |
Fedora Kernel Team | af446564d3 | |
Fedora Kernel Team | 2cd44ebc19 | |
Fedora Kernel Team | b14f833440 | |
Fedora Kernel Team | a952c08aee | |
Fedora Kernel Team | c23e401456 | |
Fedora Kernel Team | c03f722130 | |
Fedora Kernel Team | 901cdc768c | |
Fedora Kernel Team | 73be7e8de6 | |
Fedora Kernel Team | 4d0ce928ec | |
Fedora Kernel Team | 1cbae873af | |
Fedora Kernel Team | 588e2baaf0 | |
Fedora Kernel Team | e31c11c84c | |
Fedora Kernel Team | e5900f2b59 | |
Fedora Kernel Team | c778043145 | |
Fedora Kernel Team | f65397da85 | |
Fedora Kernel Team | d88a839162 | |
Fedora Kernel Team | 3bbaa13ef4 | |
Fedora Kernel Team | 55ff206e16 | |
Fedora Kernel Team | da295fdea7 | |
Don Zickus | 30cb50593d |
2
Makefile
2
Makefile
|
@ -15,6 +15,8 @@ NAME = Kleptomaniac Octopus
|
|||
PHONY := _all
|
||||
_all:
|
||||
|
||||
include Makefile.rhelver
|
||||
|
||||
# We are using a recursive build, so we need to do a little thinking
|
||||
# to get the ordering right.
|
||||
#
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
RHEL_MAJOR = 9
|
||||
RHEL_MINOR = 99
|
||||
|
||||
#
|
||||
# RHEL_RELEASE
|
||||
# -------------
|
||||
#
|
||||
# Represents build number in 'release' part of RPM's name-version-release.
|
||||
# name is <package_name>, e.g. kernel
|
||||
# version is upstream kernel version this kernel is based on, e.g. 4.18.0
|
||||
# release is <RHEL_RELEASE>.<dist_tag>[<buildid>], e.g. 100.el8
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 6
|
||||
|
||||
#
|
||||
# Early y+1 numbering
|
||||
# --------------------
|
||||
#
|
||||
# In early y+1 process, RHEL_RELEASE consists of 2 numbers: x.y
|
||||
# First is RHEL_RELEASE inherited/merged from y as-is, second number
|
||||
# is incremented with each build starting from 1. After merge from y,
|
||||
# it resets back to 1. This way y+1 nvr reflects status of last merge.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# rhel8.0 rhel-8.1
|
||||
# kernel-4.18.0-58.el8 --> kernel-4.18.0-58.1.el8
|
||||
# kernel-4.18.0-58.2.el8
|
||||
# kernel-4.18.0-59.el8 kernel-4.18.0-59.1.el8
|
||||
# kernel-4.18.0-60.el8
|
||||
# kernel-4.18.0-61.el8 --> kernel-4.18.0-61.1.el8
|
||||
#
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
EARLY_YSTREAM ?= no
|
||||
EARLY_YBUILD:=
|
||||
EARLY_YRELEASE:=
|
||||
ifneq ("$(ZSTREAM)", "yes")
|
||||
ifeq ("$(EARLY_YSTREAM)","yes")
|
||||
RHEL_RELEASE:=$(RHEL_RELEASE).$(EARLY_YRELEASE)
|
||||
endif
|
||||
endif
|
|
@ -0,0 +1,16 @@
|
|||
ifeq ($(filter dist-% distg-%,$(MAKECMDGOALS)),)
|
||||
include Makefile
|
||||
endif
|
||||
|
||||
_OUTPUT := "."
|
||||
# this section is needed in order to make O= to work
|
||||
ifeq ("$(origin O)", "command line")
|
||||
_OUTPUT := "$(abspath $(O))"
|
||||
_EXTRA_ARGS := O=$(_OUTPUT)
|
||||
endif
|
||||
dist-%::
|
||||
$(MAKE) -C redhat $(@) $(_EXTRA_ARGS)
|
||||
|
||||
distg-%::
|
||||
$(MAKE) -C redhat $(@) $(_EXTRA_ARGS)
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
*.bz2
|
||||
configs/kernel*.config
|
||||
configs/*-merged
|
||||
|
||||
kabi/Module.kabi_*
|
||||
kabi/kabi-current
|
||||
kabi/kabi-rhel*
|
||||
kabi/kabi-rhel*/*
|
|
@ -0,0 +1,562 @@
|
|||
GIT ?= git
|
||||
include Makefile.common
|
||||
include Makefile.rhpkg
|
||||
|
||||
LANG=C
|
||||
|
||||
ifeq ("$(ZSTREAM)", "yes")
|
||||
__YSTREAM = no
|
||||
ifeq ("$(origin RHDISTGIT_BRANCH)", "command line")
|
||||
__ZSTREAM = branch
|
||||
else
|
||||
__ZSTREAM = yes
|
||||
endif
|
||||
BUILDOPTS += +kabidupchk
|
||||
else
|
||||
__ZSTREAM = no
|
||||
ifeq ("$(EARLY_YSTREAM)", "yes")
|
||||
__YSTREAM = early
|
||||
else
|
||||
__YSTREAM = yes
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ("$(NO_CONFIGCHECKS)","1")
|
||||
PROCESS_CONFIGS_OPTS=
|
||||
PROCESS_CONFIGS_CHECK_OPTS=
|
||||
BUILDOPTS += -configchecks
|
||||
else
|
||||
PROCESS_CONFIGS_CHECK_OPTS=-n -t -c
|
||||
PROCESS_CONFIGS_OPTS=-n -w -c
|
||||
endif
|
||||
|
||||
BUILD_TARGET ?= --scratch $(BUILD_SCRATCH_TARGET)
|
||||
FLAVOR =
|
||||
|
||||
RHGITURL?=$(shell $(GIT) config rhg.url || $(GIT) config remote.origin.url)
|
||||
RHGITCOMMIT?=$(shell $(GIT) log -1 --pretty=format:%H)
|
||||
|
||||
# this section is needed in order to make O= to work
|
||||
_OUTPUT := ..
|
||||
ifeq ("$(origin O)", "command line")
|
||||
_OUTPUT := $(O)
|
||||
_EXTRA_ARGS := O=$(_OUTPUT)
|
||||
endif
|
||||
|
||||
CURARCH := $(shell uname -m)
|
||||
ARCHCONFIG := $(shell uname -m | sed -e s/x86_64/X86_64/ \
|
||||
-e s/s390x/S390/ -e s/ppc.*/PPC/ )
|
||||
|
||||
KABIDW := $(REDHAT)/kabi-dwarf
|
||||
|
||||
include Makefile.cross
|
||||
|
||||
default: dist-help
|
||||
|
||||
dist-python-check:
|
||||
@if [ ! -x /usr/bin/python3 ]; then \
|
||||
echo "ERROR: Python 3 is needed." ; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
dist-kabi: dist-python-check
|
||||
@for KABIARCH in $(ARCH_LIST); do \
|
||||
$(REDHAT)/kabi/show-kabi -k $(REDHAT)/kabi/kabi-module/ -m \
|
||||
-a $$KABIARCH -r $(RHEL_MAJOR).$(RHEL_MINOR) > $(REDHAT)/kabi/Module.kabi_$$KABIARCH;\
|
||||
for i in {0..$(RHEL_MINOR)}; do \
|
||||
mkdir -p $(REDHAT)/kabi/kabi-rhel$(RHEL_MAJOR)$$i/;\
|
||||
$(REDHAT)/kabi/show-kabi -k $(REDHAT)/kabi/kabi-module/ -s -a $$KABIARCH \
|
||||
-r $(RHEL_MAJOR).$$i > $(REDHAT)/kabi/kabi-rhel$(RHEL_MAJOR)$$i/kabi_stablelist_$$KABIARCH;\
|
||||
done;\
|
||||
done;
|
||||
@(cd $(REDHAT)/kabi/ && ln -Tsf kabi-rhel$(RHEL_MAJOR)$(RHEL_MINOR) kabi-current)
|
||||
|
||||
dist-kabi-dup: dist-python-check
|
||||
@for KABIARCH in $(ARCH_LIST); do \
|
||||
touch $(REDHAT)/kabi/Module.kabi_dup_$$KABIARCH;\
|
||||
if [ -d $(REDHAT)/kabi/kabi-dup-module/kabi_$$KABIARCH ]; then \
|
||||
$(REDHAT)/kabi/show-kabi -k $(REDHAT)/kabi/kabi-dup-module/ -m \
|
||||
-a $$KABIARCH -r $(RHEL_MAJOR).$(RHEL_MINOR) > \
|
||||
$(REDHAT)/kabi/Module.kabi_dup_$$KABIARCH;\
|
||||
fi \
|
||||
done;
|
||||
|
||||
dist-check-kabi: dist-kabi
|
||||
@if [ ! -e $(_OUTPUT)/Module.symvers ]; then \
|
||||
echo "ERROR: You must compile the kernel and modules first";\
|
||||
exit 1;\
|
||||
fi
|
||||
@$(REDHAT)/kabi/check-kabi -k $(REDHAT)/kabi/Module.kabi_$(MACH) \
|
||||
-s $(_OUTPUT)/Module.symvers
|
||||
|
||||
dist-check-kabi-dup: dist-kabi-dup
|
||||
@if [ ! -e $(_OUTPUT)/Module.symvers ]; then \
|
||||
echo "ERROR: You must compile the kernel and modules first";\
|
||||
exit 1;\
|
||||
fi
|
||||
@$(REDHAT)/kabi/check-kabi -k $(REDHAT)/kabi/Module.kabi_dup_$(MACH) \
|
||||
-s $(_OUTPUT)/Module.symvers
|
||||
|
||||
dist-kabi-dw-base: dist-kabi
|
||||
@echo "Generating baseline dataset for KABI DWARF-based comparison..."
|
||||
@echo "**** GENERATING DWARF-based kABI baseline dataset ****"
|
||||
@$(KABIDW)/run_kabi-dw.sh generate \
|
||||
$(REDHAT)/kabi/kabi-current/kabi_stablelist_$(CURARCH) \
|
||||
$(_OUTPUT) $(KABIDW)/base/$(CURARCH)/
|
||||
|
||||
dist-kabi-dw-check: dist-kabi
|
||||
@if [ ! -d $(KABIDW)/base/$(CURARCH) ]; then \
|
||||
echo "**** ERROR: ****"; \
|
||||
echo "Comparison base not found in $(KABIDW)/base/$(CURARCH)."; \
|
||||
echo "Please run \"make dist-kabi-dw-base\" first!"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@echo "**** GENERATING DWARF-based kABI dataset ****"
|
||||
@$(KABIDW)/run_kabi-dw.sh generate \
|
||||
$(REDHAT)/kabi/kabi-current/kabi_stablelist_$(CURARCH) \
|
||||
$(_OUTPUT) $(KABIDW)/base/$(CURARCH).tmp/
|
||||
@echo "**** KABI DWARF-based comparison report ****"
|
||||
@$(KABIDW)/run_kabi-dw.sh compare \
|
||||
$(KABIDW)/base/$(CURARCH) $(KABIDW)/base/$(CURARCH).tmp || :
|
||||
@echo "**** End of KABI DWARF-based comparison report ****"
|
||||
@rm -rf $(KABIDW)/base/$(CURARCH).tmp
|
||||
|
||||
dist-configs-commit: dist-configs-prep
|
||||
@cd $(REDHAT)/configs; VERSION=$(KVERSION) ./generate_all_configs.sh "$(FLAVOR)" 1; \
|
||||
./process_configs.sh -z $(PACKAGE_NAME) $(KVERSION) "" $(FLAVOR)
|
||||
|
||||
dist-configs: dist-configs-prep
|
||||
@cd $(REDHAT)/configs; VERSION=$(KVERSION) ./generate_all_configs.sh "$(FLAVOR)" 1; \
|
||||
./process_configs.sh $(PROCESS_CONFIGS_OPTS) $(PACKAGE_NAME) $(KVERSION)
|
||||
|
||||
dist-fedora-configs: FLAVOR = fedora
|
||||
dist-fedora-configs: dist-configs
|
||||
fedora-configs: dist-fedora-configs
|
||||
|
||||
dist-rhel-configs: FLAVOR = rhel
|
||||
dist-rhel-configs: dist-configs
|
||||
rh-configs: dist-rhel-configs
|
||||
|
||||
dist-configs-check: dist-configs-prep
|
||||
cd $(REDHAT)/configs; ./process_configs.sh $(PROCESS_CONFIGS_CHECK_OPTS) $(PACKAGE_NAME)
|
||||
|
||||
dist-configs-prep: dist-clean-configs dist-buildreq-check
|
||||
cd $(REDHAT)/configs; ./build_configs.sh "partial" "$(ARCH_MACH)" "snip"
|
||||
cd $(REDHAT)/configs; ./build_configs.sh "$(PACKAGE_NAME)" "$(ARCH_MACH)" "$(FLAVOR)"
|
||||
|
||||
dist-configs-arch: ARCH_MACH = $(MACH)
|
||||
dist-configs-arch: dist-configs
|
||||
|
||||
dist-clean-configs:
|
||||
cd $(REDHAT)/configs; rm -f kernel-*.config \
|
||||
kernel-*.config.orig \
|
||||
kernel-*.config.tmp
|
||||
|
||||
dist-clean-sources:
|
||||
@rm -f $(RPM)/SPECS/*
|
||||
@for i in $(SOURCES)/*; do \
|
||||
rm -f $$i; \
|
||||
done;
|
||||
|
||||
dist-clean-rpmdirs:
|
||||
@for i in $(RPM)/{BUILD,SRPMS,RPMS,SPECS}/*; do \
|
||||
rm -rf $$i; \
|
||||
done;
|
||||
|
||||
dist-clean-scripts:
|
||||
@rm -f dist-dump-variables.sh
|
||||
|
||||
dist-clean: dist-clean-sources dist-clean-configs dist-clean-rpmdirs dist-clean-scripts
|
||||
|
||||
dist-stub-key:
|
||||
@echo "Copying pre-generated keys";
|
||||
@echo "*** THIS IS NOT RECOMMENDED ***";
|
||||
@echo "To be safe, keys should be created once for every build";
|
||||
@echo "Use this option only for development builds";
|
||||
@cp keys/stub_key.x509 $(_OUTPUT)/;
|
||||
@cp keys/stub_key.priv $(_OUTPUT)/;
|
||||
|
||||
# force tarball to be regenerated if HEAD changes
|
||||
.PHONY: $(TARBALL)
|
||||
$(TARBALL):
|
||||
@if [ $(SINGLE_TARBALL) -eq 1 ]; then \
|
||||
scripts/create-tarball.sh $(GITID) $(TARBALL) linux-$(KVERSION)-$(PKGRELEASE); \
|
||||
else \
|
||||
scripts/create-tarball.sh $(MARKER) $(TARBALL) linux-$(TARFILE_RELEASE); \
|
||||
fi
|
||||
|
||||
.PHONY: $(KABI_TARBALL)
|
||||
$(KABI_TARBALL):
|
||||
@(cd kabi && tar cjf $(SOURCES)/$(KABI_TARFILE) kabi-rhel$(RHEL_MAJOR)* kabi-current)
|
||||
|
||||
.PHONY: $(KABIDW_TARBALL)
|
||||
$(KABIDW_TARBALL):
|
||||
@if [ ! -d $(KABIDW)/base ]; then \
|
||||
mkdir -p $(KABIDW)/base; \
|
||||
fi
|
||||
@(cd kabi-dwarf && tar cjf $(SOURCES)/$(KABIDW_TARFILE) base run_kabi-dw.sh)
|
||||
|
||||
|
||||
dist-tarball: $(TARBALL)
|
||||
@echo "redhat/$(TARFILE)"
|
||||
|
||||
dist-kernelrelease:
|
||||
@echo $(PACKAGE_NAME)-$(KVERSION)-$(DISTRO_BUILD)
|
||||
|
||||
dist-kernelversion:
|
||||
@echo $(KVERSION)-$(DISTRO_BUILD)
|
||||
|
||||
dist-specfile: setup-source
|
||||
@echo $(SOURCES)/$(SPECFILE)
|
||||
|
||||
dist-git-version-check:
|
||||
@# genspec.sh uses pathspec magic that wasn't introduced until version 2.13
|
||||
@IFS=" ."; \
|
||||
set -- $$($(GIT) --version); \
|
||||
IFS=; \
|
||||
if [ "$$3" -lt 2 -o \( "$$3" -eq 2 -a "$$4" -lt 13 \) ]; then \
|
||||
echo "ERROR: You need git version 2.13 or newer to run some setup commands"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
dist-buildreq-check: setup-source
|
||||
@PKGLIST="rpm-build $(rpmspec -q --buildrequires $(SOURCES)/$(SPECFILE) | cut -d ' ' -f 1)"; \
|
||||
MISSING=""; \
|
||||
for pkg in $$PKGLIST; do \
|
||||
rpm -q --whatprovides $$pkg >/dev/null || MISSING="$$MISSING $$pkg"; \
|
||||
done; \
|
||||
if [ -n "$$MISSING" ]; then \
|
||||
echo "Error: please install $$MISSING"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
setup-source: dist-git-version-check dist-clean-sources
|
||||
@cp $(REDHAT)/$(SPECFILE).template $(SOURCES)/$(SPECFILE)
|
||||
@if [ ! -e $(REDHAT)/$(CHANGELOG) ]; then \
|
||||
echo "Creating $(CHANGELOG) as copy of $(CHANGELOG_PREV)"; \
|
||||
cp $(REDHAT)/$(CHANGELOG_PREV) $(REDHAT)/$(CHANGELOG); \
|
||||
fi
|
||||
@cp $(REDHAT)/$(CHANGELOG) $(SOURCES)/$(CHANGELOG)
|
||||
@$(REDHAT)/genspec.sh $(SOURCES) $(SOURCES)/$(SPECFILE) $(SOURCES)/$(CHANGELOG) $(PKGRELEASE) $(RPMKVERSION) $(RPMKPATCHLEVEL) $(RPMKSUBLEVEL) $(DISTRO_BUILD) $(RELEASED_KERNEL) $(SPECRELEASE) $(__ZSTREAM) "$(BUILDOPTS)" $(MARKER) `cat $(REDHAT)/marker` $(SINGLE_TARBALL) $(TARFILE_RELEASE) $(SNAPSHOT) $(UPSTREAM_BRANCH) $(INCLUDE_FEDORA_FILES) $(INCLUDE_RHEL_FILES) $(BUILDID)
|
||||
@cp $(SOURCES)/$(SPECFILE) $(SOURCES)/../SPECS/
|
||||
|
||||
generate-testpatch-tmp:
|
||||
@$(GIT) diff --no-renames HEAD ":(exclude,top).get_maintainer.conf" \
|
||||
":(exclude,top).gitattributes" \
|
||||
":(exclude,top).gitignore" \
|
||||
":(exclude,top)makefile" \
|
||||
":(exclude,top)Makefile.rhelver" \
|
||||
":(exclude,top)redhat" > $(TESTPATCH).tmp
|
||||
|
||||
sources-rh: $(TARBALL) generate-testpatch-tmp setup-source dist-configs-check
|
||||
@cp -l $(TARBALL) $(SOURCES)/ || cp $(TARBALL) $(SOURCES)/
|
||||
@touch $(TESTPATCH)
|
||||
@diff $(TESTPATCH).tmp $(TESTPATCH) > /dev/null || \
|
||||
echo "WARNING: There are uncommitted changes in your tree or the changes are not in sync with linux-kernel-test.patch. Either commit the changes or run 'make dist-test-patch'"
|
||||
@rm $(TESTPATCH).tmp
|
||||
@cp $(TESTPATCH) $(SOURCES)/linux-kernel-test.patch
|
||||
@cat configs/flavors | while read flavor; do echo "Copying sources for $${flavor}"; [ -e $${flavor}_files ] && cp $${flavor}_files/* $(SOURCES); done
|
||||
@cp cpupower.* \
|
||||
keys/rhel*.x509 \
|
||||
kabi/check-kabi \
|
||||
configs/$(PACKAGE_NAME)-*.config \
|
||||
configs/partial*.config \
|
||||
gating.yaml \
|
||||
rpminspect.yaml \
|
||||
update_scripts.sh \
|
||||
kvm_stat.logrotate \
|
||||
mod-denylist.sh \
|
||||
mod-internal.list \
|
||||
mod-sign.sh \
|
||||
configs/flavors \
|
||||
configs/generate_all_configs.sh \
|
||||
configs/merge.pl \
|
||||
configs/process_configs.sh \
|
||||
parallel_xz.sh \
|
||||
generate_crashkernel_default.sh \
|
||||
../Makefile.rhelver \
|
||||
README.rst \
|
||||
kernel-local \
|
||||
$(SOURCES)/
|
||||
@if [ "$(RELEASED_KERNEL)" -ne 0 ]; then \
|
||||
cp keys/redhatsecureboot{301,501,ca5,ca1}.cer $(SOURCES)/; \
|
||||
cp keys/secureboot_{ppc,s390}.cer $(SOURCES)/; \
|
||||
else \
|
||||
cp keys/redhatsecureboot{003,401,ca2,ca4}.cer $(SOURCES)/; \
|
||||
fi
|
||||
@for KABIARCH in $(ARCH_LIST); do \
|
||||
cp kabi/Module.kabi_$$KABIARCH $(SOURCES)/; \
|
||||
cp kabi/Module.kabi_dup_$$KABIARCH $(SOURCES)/; \
|
||||
done
|
||||
@(cd kabi && tar cjf $(SOURCES)/$(KABI_TARFILE) kabi-rhel$(RHEL_MAJOR)* kabi-current)
|
||||
@if [ ! -d $(KABIDW)/base ]; then \
|
||||
mkdir -p $(KABIDW)/base; \
|
||||
fi
|
||||
@(cd kabi-dwarf && tar cjf $(SOURCES)/$(KABIDW_TARFILE) base run_kabi-dw.sh)
|
||||
|
||||
dist-sources: dist-kabi dist-kabi-dup sources-rh
|
||||
|
||||
dist-test-patch: generate-testpatch-tmp
|
||||
@mv $(TESTPATCH).tmp $(TESTPATCH);
|
||||
|
||||
do-rpmbuild: dist-sources
|
||||
$(RPMBUILD) --define "_sourcedir $(SOURCES)" --define "_builddir $(RPM)/BUILD" --define "_srcrpmdir $(RPM)/SRPMS" --define "_rpmdir $(RPM)/RPMS" --define "_specdir $(RPM)/SPECS" --define "dist $(DIST)" $(RPMBUILDOPTS) $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
|
||||
dist-all-rpms: RPMBUILDOPTS=--target $(MACH) -ba
|
||||
dist-all-rpms: dist-sources do-rpmbuild
|
||||
|
||||
dist-srpm: RPMBUILDOPTS=--nodeps -bs
|
||||
dist-srpm: dist-sources do-rpmbuild
|
||||
|
||||
dist-srpm-gcov: BUILDID=".gcov"
|
||||
dist-srpm-gcov: BUILDOPTS+="+gcov"
|
||||
dist-srpm-gcov: dist-srpm
|
||||
|
||||
dist-rpms: RPMBUILDOPTS=--target $(MACH) -bb
|
||||
dist-rpms: dist-sources do-rpmbuild
|
||||
|
||||
dist-kernel-%: dist-sources
|
||||
RPMBUILDOPTS="--target $(MACH) --with $* -bb" make do-rpmbuild
|
||||
|
||||
dist-prep: RPMBUILDOPTS=--nodeps --target noarch -bp
|
||||
dist-prep: dist-sources do-rpmbuild
|
||||
|
||||
dist-perf: RPMBUILDOPTS=--without up --without smp --without zfcpdump --without debug --without doc --without headers --without --without doc --without debuginfo --target $(MACH) -bb
|
||||
dist-perf: dist-sources do-rpmbuild
|
||||
|
||||
dist-rpm-baseonly: RPMBUILDOPTS=--target $(MACH) --without debug --without debuginfo --without vdso_install --without bpftool --without perf --without tools -bb
|
||||
dist-rpm-baseonly: dist-sources do-rpmbuild
|
||||
|
||||
# unless you know what you're doing, you don't want to use the next four ones
|
||||
dist-release-finish: setup-source
|
||||
@cp $(SOURCES)/$(CHANGELOG) $(REDHAT)/$(CHANGELOG)
|
||||
@$(GIT) add $(REDHAT)/$(CHANGELOG)
|
||||
@$(GIT) add $(REDHAT)/marker
|
||||
@$(GIT) commit -s ../Makefile.rhelver $(REDHAT)/marker $(REDHAT)/$(CHANGELOG) $(PACKAGE_NAME).spec.template -m "[redhat] $(PACKAGE_NAME)-$(STAMP_VERSION)-$(PREBUILD)$(BUILD)$(BUILDID)"
|
||||
dist-release-changed: setup-source
|
||||
@cp $(SOURCES)/$(CHANGELOG) $(REDHAT)/$(CHANGELOG)
|
||||
@echo $(MARKER) > $(REDHAT)/marker
|
||||
@# if neither changelog nor marker was updated, skip bumping a release
|
||||
@$(GIT) update-index -q --really-refresh
|
||||
@if $(GIT) diff-index --quiet HEAD; then \
|
||||
echo "Nothing changed, skipping updates"; \
|
||||
else \
|
||||
$(GIT) checkout -- $(REDHAT)/$(CHANGELOG); \
|
||||
$(REDHAT)/scripts/new_release.sh $(REDHAT) $(__YSTREAM) $(__ZSTREAM) $(BUMP_RELEASE); \
|
||||
$(MAKE) dist-release-finish; \
|
||||
fi
|
||||
dist-release: dist-clean-sources
|
||||
@$(MAKE) dist-release-changed
|
||||
dist-release-tag:
|
||||
@$(GIT) tag -a -m "$(PACKAGE_NAME)-$(STAMP_VERSION)-$(PKGRELEASE)" $(PACKAGE_NAME)-$(STAMP_VERSION)-$(PKGRELEASE)
|
||||
|
||||
git-tree-check:
|
||||
@if test -n "$(DIST_PUSH)" && test -z "$(shell $(GIT) remote get-url gitlab 2>/dev/null)"; then \
|
||||
echo -e "Please run 'git remote add gitlab <url>' to enable git-push.\n"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@$(GIT) diff-index --quiet HEAD || \
|
||||
{ echo -e "Dirty tree, please clean before merging.\n"; exit 1; }
|
||||
|
||||
DIST_BRANCH ?= "os-build"
|
||||
dist-merge-upstream: git-tree-check
|
||||
@if test "$(shell $(GIT) branch --show-current)" != "$(DIST_BRANCH)"; then \
|
||||
echo -e "Please checkout $(DIST_BRANCH) branch before merging.\n"; \
|
||||
exit 1; \
|
||||
fi;
|
||||
|
||||
@# If TAG is empty, script defaults to master:HEAD
|
||||
@$(GIT) checkout $(DIST_BRANCH)
|
||||
@cd ..; $(REDHAT)/scripts/ci/ark-update-configs.sh $(TAG)
|
||||
|
||||
dist-merge-upstream-push: export DIST_PUSH="1"
|
||||
dist-merge-upstream-push: dist-merge-upstream
|
||||
|
||||
dist-fedora-release: git-tree-check
|
||||
|
||||
@# If TAG is empty, script defaults to master:HEAD
|
||||
@cd ..; $(REDHAT)/scripts/ci/ark-create-release.sh $(TAG) || \
|
||||
(echo "Unable to create release tag"; exit 1)
|
||||
|
||||
dist-fedora-release-push: export DIST_PUSH="1"
|
||||
dist-fedora-release-push: dist-fedora-release
|
||||
|
||||
.PHONY: dist-brew dist-koji
|
||||
dist-brew : BUILD_FLAGS ?= $(BREW_FLAGS) $(TEST_FLAGS)
|
||||
dist-koji : BUILD_FLAGS ?= $(KOJI_FLAGS) $(TEST_FLAGS)
|
||||
distg-brew: BUILD_FLAGS ?= $(BREW_FLAGS) $(TEST_FLAGS)
|
||||
distg-koji: BUILD_FLAGS ?= $(KOJI_FLAGS) $(TEST_FLAGS)
|
||||
|
||||
dist-brew dist-koji: dist-%: dist-srpm
|
||||
$* $(BUILD_PROFILE) build $(BUILD_FLAGS) $(BUILD_TARGET) $(SRPMS)/$(PACKAGE_NAME)-$(KVERSION)-$(PKGRELEASE)$(DIST).src.rpm $(OUTPUT_FILE)
|
||||
|
||||
distg-brew distg-koji: distg-%:
|
||||
$* $(BUILD_PROFILE) build $(BUILD_FLAGS) $(BUILD_TARGET) "$(RHGITURL)?redhat/koji#$(RHGITCOMMIT)"
|
||||
|
||||
.PHONY: $(REDHAT)/rpm/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/rpm/SOURCES/$(PACKAGE_NAME).spec:
|
||||
@echo "dist-sources"
|
||||
@$(MAKE) dist-sources
|
||||
|
||||
dist-git-test: export RH_DIST_GIT_TEST="1"
|
||||
dist-git-test: dist-git
|
||||
|
||||
dist-git: dist-srpm $(KABI_TARBALL) $(KABIDW_TARBALL)
|
||||
ifeq ("$(RHDISTGIT_BRANCH)", "")
|
||||
$(error RHDISTGIT_BRANCH unset)
|
||||
endif
|
||||
@if [ "$(DISTRO)" == "centos" ]; then \
|
||||
if [ -z "$(GL_DISTGIT_USER)" ]; then \
|
||||
echo "Error: please provide your gitlab username with GL_DISTGIT_USER"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi
|
||||
$(REDHAT)/scripts/rh-dist-git.sh "$(RHDISTGIT_BRANCH)" "$(RHDISTGIT_CACHE)" "$(RHDISTGIT_TMP)" "$(RHDISTGIT)" "$(TARBALL)" "$(KABI_TARBALL)" "$(KABIDW_TARBALL)" "$(__ZSTREAM)" "$(PACKAGE_NAME)" "$(RHEL_MAJOR)" "$(RHPKG_BIN)" "$(SRPMS)/$(PACKAGE_NAME)-$(KVERSION)-$(PKGRELEASE)$(DIST).src.rpm"
|
||||
|
||||
dist-rtg: dist-release
|
||||
@$(MAKE) dist-release-tag
|
||||
@$(MAKE) dist-git
|
||||
|
||||
# RH_LATEST returns the value of the latest "known good" kernel from brew.
|
||||
# This should not be confused with the latest top-of-tree development tag.
|
||||
dist-get-latest:
|
||||
$(eval RH_LATEST:=$(shell brew latest-pkg --quiet rhel-${RHEL_MAJOR}.${RHEL_MINOR}.0-candidate kernel | awk ' { print $$1 } '))
|
||||
@echo "The latest kernel package tag is ${RH_LATEST}."
|
||||
|
||||
dist-os-version:
|
||||
@echo "OSVERSION: $(RHEL_MAJOR).$(RHEL_MINOR)"
|
||||
|
||||
.EXPORT_ALL_VARIABLES:
|
||||
.PHONY: dist-dump-variables
|
||||
dist-dump-variables:
|
||||
grep -h "^[ ]*[a-zA-Z_][a-zA-Z_0-9]*[ ]*[:?]*=" $(REDHAT)/Makefile.common $(REDHAT)/Makefile $(TOPDIR)/Makefile.rhelver | sed -e 's/[ ]*\([a-zA-Z_][a-zA-Z_0-9]*\).*/echo "\1=$$\1"/' | sort | uniq > dist-dump-variables.sh
|
||||
chmod +x $(REDHAT)/dist-dump-variables.sh
|
||||
@$(REDHAT)/dist-dump-variables.sh
|
||||
|
||||
dist-self-test:
|
||||
@if test -x /usr/bin/bats; then \
|
||||
bats $(REDHAT)/self-test/*.bats ; \
|
||||
else \
|
||||
echo "dist-self-test: The bats package is not installed" ; \
|
||||
fi
|
||||
|
||||
dist-help:
|
||||
@echo 'Cleaning targets:'
|
||||
@echo ' dist-clean - Clean redhat/configs/ and redhat/rpm/ directories.'
|
||||
@echo ''
|
||||
@echo 'Building targets:'
|
||||
@echo ' dist-srpm - Create a source RPM.'
|
||||
@echo ' dist-all-rpms - Create a source RPM and build binary RPMs locally.'
|
||||
@echo ' dist-brew - Create a source RPM and call brew to build binary RPMs.'
|
||||
@echo ' distg-brew - Build RPMs using a remote git repo.'
|
||||
@echo ' [Configuration needed.]'
|
||||
@echo ' dist-cross-all-rpms - Build RPMs for all supported archs using a cross'
|
||||
@echo ' compiler.'
|
||||
@echo ''
|
||||
@echo 'Configuration targets:'
|
||||
@echo ' dist-configs - Create RHEL config files in redhat/config/.'
|
||||
@echo ''
|
||||
@echo 'For detailed description and full list of targets, run `make dist-full-help`.'
|
||||
@echo ''
|
||||
|
||||
dist-full-help:
|
||||
@echo 'Cleaning targets:'
|
||||
@echo ' dist-clean - Do dist-clean-sources, dist-clean-configs, &'
|
||||
@echo ' dist-clean-rpmdirs.'
|
||||
@echo ' dist-clean-sources - Clean the redhat/rpm/SOURCES/ directory.'
|
||||
@echo ' dist-clean-configs - Clean the redhat/configs/ directory.'
|
||||
@echo ' dist-clean-rpmdirs - Clean the redhat/rpm/{BUILD,SRPMS,RPMS,SPECS}/'
|
||||
@echo ' directories.'
|
||||
@echo ''
|
||||
@echo 'Building targets:'
|
||||
@echo ' All RPM/SRPM files will be put under the redhat/rpm/ directory.'
|
||||
@echo ''
|
||||
@echo ' dist-srpm - Create a source RPM and put it into the redhat/rpm/SRPMS/'
|
||||
@echo ' directory. See the dist-brew target for available options.'
|
||||
@echo ' dist-srpm-gcov - Create a source RPM with gcov enabled and put it into the'
|
||||
@echo ' redhat/rpm/SRPMS/ directory.'
|
||||
@echo ' dist-brew - Create a kernel SRPM and then call brew to build the'
|
||||
@echo ' created SRPM. Add BUILDOPTS="+<opt> -<opt> [...]" to'
|
||||
@echo ' enable/disable build options.'
|
||||
@echo ' Available <opt>s and their default values:' \
|
||||
$$(sed -n -e 's/^%define with_\([^ \t]*\).*\?_without_.*/+\1/p' \
|
||||
-e 's/^%define with_\([^ \t]*\).*\?_with_.*/-\1/p' kernel.spec.template | \
|
||||
grep -v 'only$$') | fmt -80
|
||||
@echo ' dist-koji - Create a kernel SRPM and then call koji to build the'
|
||||
@echo ' created SRPM. See the dist-brew target for available'
|
||||
@echo ' options.'
|
||||
@echo ' distg-brew - Pass HEAD of the current git branch to brew to build an'
|
||||
@echo ' RPM set. Do not forget to push to the remote repository'
|
||||
@echo ' first. Preceed make command by RHGITCOMMIT=<commitID>'
|
||||
@echo ' specify commit ID to use.'
|
||||
@echo ' To set the remote repo, invoke:'
|
||||
@echo ' git config rhg.url git://<repo_path>'
|
||||
@echo ' distg-koji - Pass HEAD of the current git branch to koji to build an'
|
||||
@echo ' RPM set. Do not forget to push to the remote repository'
|
||||
@echo ' first. See the distg-brew target for options and'
|
||||
@echo ' configuration.'
|
||||
@echo ' dist-rpms - Create the binary RPMS for the kernel.'
|
||||
@echo ' See the dist-brew target for available options.'
|
||||
@echo ' dist-rpm-baseonly - Create the binary RPMS for the kernel and modules'
|
||||
@echo ' (no userspace tools or debuginfo).'
|
||||
@echo ' dist-kernel-<type> - Create binary RPMS for a particular kernel type.'
|
||||
@echo ' Available <type>s:'\
|
||||
$$(sed -n 's/^%define with_\([^ ]*only\).*/\1/p' kernel.spec.template)
|
||||
|
||||
@echo ' dist-all-rpms - Create the binary RPMS and the SRPM for the kernel.'
|
||||
@echo ' See the dist-brew target for available options.'
|
||||
@echo ' dist-prep - Setup the redhat/rpm/BUILD/ directory with the kernel'
|
||||
@echo ' source. See the dist-brew target for available options.'
|
||||
@echo ' dist-test-patch - Create a diff against HEAD and put it in'
|
||||
@echo ' linux-kernel-test.patch. This patch will'
|
||||
@echo ' be added to the kernel build.'
|
||||
@echo ' dist-stub-key - Use pre generated keys to speed local test builds.'
|
||||
@echo ' dist-cross-download - [x86_64 only] download cross compiler rpms.'
|
||||
@echo ' dist-cross-all-builds - [x86_64 only] execute "rpmbuild -bc" for all'
|
||||
@echo ' supported archs using RHEL cross compiler.'
|
||||
@echo ' dist-cross-<arch>-build - [x86_64 only] execute "rpmbuild -bc" for specified'
|
||||
@echo ' <arch> using RHEL cross compiler.'
|
||||
@echo ' Supported <arch>s: x86_64'\
|
||||
$$(sed -n 's/.*--target \([^ ]*\).*/\1/p' Makefile.cross | sort -u)
|
||||
@echo ' dist-cross-all-rpms - [x86_64 only] execute rpm builds for all supported'
|
||||
@echo ' archs using RHEL cross compiler.'
|
||||
@echo ' dist-cross-<arch>-rpms - [x86_64 only] execute rpm builds for specified'
|
||||
@echo ' <arch> using RHEL cross compiler.'
|
||||
@echo ' See dist-cross-<arch>-build for the supported archs.'
|
||||
@echo ' dist-rhel-configs - build ELN configs'
|
||||
@echo ' dist-fedora-configs - build Fedora configs'
|
||||
|
||||
@echo ''
|
||||
@echo 'kABI targets:'
|
||||
@echo ' dist-kabi - Create kABI stablelist files in redhat/kabi/kabi-rhel*/'
|
||||
@echo ' and merge kABI checksums into redhat/kabi/Module.kabi_*.'
|
||||
@echo ' dist-kabi-dup - Merge kABI checksums for Driver Update Program (DUP)'
|
||||
@echo ' into redhat/kabi/Module.kabi_dup_*.'
|
||||
@echo ' dist-check-kabi - Check for changes in kABI stablelisted symbols.'
|
||||
@echo ' Requires a pre-compiled tree: run `make dist-configs`,'
|
||||
@echo ' copy the relevant config file from redhat/configs/ to'
|
||||
@echo ' .config, and run `make`.'
|
||||
@echo ' dist-check-kabi-dup - Like dist-check-kabi but uses a DUP kABI stablelist.'
|
||||
@echo ' dist-kabi-dw-base - Generate the base dataset for kABI DWARF-based check.'
|
||||
@echo ' dist-kabi-dw-check - Run DWARF-based kABI comparison of current binaries'
|
||||
@echo ' with the base dataset.'
|
||||
|
||||
@echo ''
|
||||
@echo 'Configuration targets:'
|
||||
@echo ' dist-configs - Creates config files for RHEL $(RHEL_MAJOR) architectures,'
|
||||
@echo ' cleans them by running make nonint_oldconfig, and copies'
|
||||
@echo ' them to redhat/configs/ directory. This is the target to use'
|
||||
@echo ' for a config! Copy the config file you want from the'
|
||||
@echo ' redhat/configs/ directory to .config'
|
||||
@echo ' dist-configs-arch - Same as dist-configs but for single architecture only.'
|
||||
|
||||
@echo ''
|
||||
@echo 'Misc targets:'
|
||||
@echo ' dist-buildreq-check - Checks for presence of packages required for build'
|
||||
@echo ' dist-get-latest - Returns the latest "known good" kernel from brew. This'
|
||||
@echo ' should not be confused with the latest top-of-tree'
|
||||
@echo ' development tag.'
|
||||
@echo ' dist-os-version - Displays the current Red Hat Enterprise Linux versioni'
|
||||
@echo ' target used by the current branch/tree.'
|
||||
@echo ' dist-self-test - Runs self-tests from the redhat/self-test directory'
|
||||
@echo ''
|
|
@ -0,0 +1,158 @@
|
|||
TOPDIR:=$(shell $(GIT) rev-parse --show-toplevel)
|
||||
REDHAT:=$(TOPDIR)/redhat
|
||||
include $(TOPDIR)/Makefile.rhelver
|
||||
include $(REDHAT)/Makefile.variables
|
||||
|
||||
RPMBUILD := $(shell if [ -x "/usr/bin/rpmbuild" ]; then echo rpmbuild; \
|
||||
else echo rpm; fi)
|
||||
|
||||
MACH := $(shell uname -m)
|
||||
HEAD ?= HEAD
|
||||
RPMKVERSION:=$(shell $(GIT) show $(HEAD):Makefile | sed -ne '/^VERSION\ =\ /{s///;p;q}')
|
||||
RPMKPATCHLEVEL:=$(shell $(GIT) show $(HEAD):Makefile | sed -ne '/^PATCHLEVEL\ =\ /{s///;p;q}')
|
||||
RPMKSUBLEVEL:=$(shell $(GIT) show $(HEAD):Makefile | sed -ne '/^SUBLEVEL\ =\ /{s///;p;q}')
|
||||
RPMKEXTRAVERSION:=$(shell $(GIT) show $(HEAD):Makefile | sed -ne '/^EXTRAVERSION\ =\ /{s///;p;q}')
|
||||
GITID:= $(shell $(GIT) log --max-count=1 --pretty=format:%H $(HEAD))
|
||||
# marker is git tag which we base off of for exporting patches
|
||||
# Make sure marker uses RPMKPATCHLEVEL and RPMKEXTRAVERSION from the kernel
|
||||
# makefile as opposed to any adjusted version for snapshotting.
|
||||
ifneq ($(RPMKEXTRAVERSION),)
|
||||
MARKER:=v$(RPMKVERSION).$(RPMKPATCHLEVEL)$(RPMKEXTRAVERSION)
|
||||
KEXTRAVERSION:=$(shell echo $(RPMKEXTRAVERSION) | sed -e s/-/./)
|
||||
PREBUILD:=0$(KEXTRAVERSION).
|
||||
UPSTREAM_TARBALL_NAME:=$(RPMKVERSION).$(RPMKPATCHLEVEL)$(RPMKEXTRAVERSION)
|
||||
else
|
||||
ifeq ($(RPMKSUBLEVEL),0)
|
||||
MARKER:=v$(RPMKVERSION).$(RPMKPATCHLEVEL)
|
||||
UPSTREAM_TARBALL_NAME:=$(RPMKVERSION).$(RPMKPATCHLEVEL)
|
||||
else
|
||||
MARKER:=v$(RPMKVERSION).$(RPMKPATCHLEVEL).$(RPMKSUBLEVEL)
|
||||
UPSTREAM_TARBALL_NAME:=$(RPMKVERSION).$(RPMKPATCHLEVEL).$(RPMKSUBLEVEL)
|
||||
endif
|
||||
PREBUILD:=
|
||||
endif
|
||||
|
||||
ifneq ($(findstring .fc,$(DIST)),)
|
||||
DISTRO ?= fedora
|
||||
else
|
||||
DISTRO ?= rhel
|
||||
endif
|
||||
|
||||
# If VERSION_ON_UPSTREAM is set, the versioning of the rpm package is based
|
||||
# on a branch tracking upstream. This allows for generating rpms
|
||||
# based on untagged releases.
|
||||
ifndef VERSION_ON_UPSTREAM
|
||||
ifeq ("$(DISTRO)", "fedora")
|
||||
VERSION_ON_UPSTREAM:=1
|
||||
else
|
||||
VERSION_ON_UPSTREAM:=0
|
||||
endif
|
||||
endif
|
||||
ifeq ($(VERSION_ON_UPSTREAM),1)
|
||||
# UPSTREAM_BRANCH is expected to track mainline.
|
||||
UPSTREAM:=$(shell $(GIT) rev-parse -q --verify origin/$(UPSTREAM_BRANCH) || \
|
||||
$(GIT) rev-parse -q --verify $(UPSTREAM_BRANCH))
|
||||
ifeq ($(UPSTREAM),)
|
||||
$(error "Missing an $(UPSTREAM_BRANCH) branch")
|
||||
endif
|
||||
MERGE_BASE:=$(shell $(GIT) merge-base $(HEAD) $(UPSTREAM))
|
||||
_TAG:=$(shell $(GIT) describe $(MERGE_BASE))
|
||||
# a snapshot off of a tagged git is of the form [tag]-[cnt]-g[hash]
|
||||
SNAPSHOT:=$(shell echo $(_TAG) | grep -c '\-g')
|
||||
else
|
||||
SNAPSHOT:=0
|
||||
endif
|
||||
|
||||
ifeq ($(SNAPSHOT),1)
|
||||
# The base for generating tags is the snapshot commit
|
||||
MARKER:=$(shell echo $(_TAG) | awk -F "-g" '{ print $$2 }')
|
||||
# The merge window is weird because the actual versioning hasn't
|
||||
# been updated but we still need something that works for
|
||||
# packaging. Fix this by bumping the patch level and marking
|
||||
# this as rc0
|
||||
ifeq ($(RPMKEXTRAVERSION),)
|
||||
KEXTRAVERSION:=.rc0
|
||||
PREBUILD:=0$(KEXTRAVERSION).
|
||||
RPMKPATCHLEVEL:=$(shell expr $(RPMKPATCHLEVEL) + 1)
|
||||
endif
|
||||
# Obtain the date that HEAD was committed (not the snapshot commit).
|
||||
HEAD_DATE:=$(shell $(GIT) show -s --format=%cd --date=format:%Y%m%d $(HEAD))
|
||||
PREBUILD:=$(PREBUILD)$(HEAD_DATE)git$(MARKER).
|
||||
UPSTREAM_TARBALL_NAME:=$(patsubst v%,%,$(_TAG))
|
||||
endif
|
||||
|
||||
|
||||
# RPMKPATCHVERSION may get adjusted if we're snapshotting
|
||||
# during the merge window so ensure this gets set after
|
||||
# we've checked for snapshots
|
||||
KVERSION:=$(RPMKVERSION).$(RPMKPATCHLEVEL).$(RPMKSUBLEVEL)
|
||||
RPMVERSION:=$(KVERSION)
|
||||
|
||||
BUILD:=$(RHEL_RELEASE)
|
||||
PACKAGE_NAME:=kernel
|
||||
SPECFILE:=$(PACKAGE_NAME).spec
|
||||
RPM:=$(REDHAT)/rpm
|
||||
SRPMS:=$(RPM)/SRPMS
|
||||
SOURCES:=$(RPM)/SOURCES
|
||||
TESTPATCH:=$(REDHAT)/linux-kernel-test.patch
|
||||
ARCH_LIST=aarch64 ppc64le s390x x86_64
|
||||
# Make can't match on a regex to match fc31, fc32 so add another check here
|
||||
# A unified tarball means that the tarball in the srpm contains both the
|
||||
# upstream sources and redhat patches. A non-unified tarball means that
|
||||
# the tarball is only upstream sources and the patches get applied as
|
||||
# a diff in the spec file
|
||||
ifeq ("$(DISTRO)", "fedora")
|
||||
SINGLE_TARBALL:=0
|
||||
else
|
||||
SINGLE_TARBALL:=1
|
||||
endif
|
||||
|
||||
STAMP_VERSION:=$(KVERSION)
|
||||
|
||||
LOCVERFILE:=../localversion
|
||||
# create an empty localversion file if you don't want a local buildid
|
||||
ifneq ($(wildcard $(LOCVERFILE)),)
|
||||
BUILDID:=$(shell cat $(LOCVERFILE))
|
||||
$(info BUILDID is "$(BUILDID)". Update '$(shell dirname $(REDHAT))/localversion' to change.)
|
||||
else
|
||||
ifeq ($(BUILDID),)
|
||||
BUILDID:=.test
|
||||
endif
|
||||
$(info BUILDID is "$(BUILDID)".)
|
||||
endif
|
||||
|
||||
PKGRELEASE:=$(PREBUILD)$(BUILD)$(BUILDID)
|
||||
SPECRELEASE:=$(PREBUILD)$(BUILD)%{?buildid}%{?dist}
|
||||
|
||||
ifeq ("$(SINGLE_TARBALL)", "0")
|
||||
TARFILE_RELEASE:=$(UPSTREAM_TARBALL_NAME)
|
||||
else
|
||||
TARFILE_RELEASE:=$(KVERSION)-$(PKGRELEASE)
|
||||
endif
|
||||
TARFILE:=linux-$(TARFILE_RELEASE).tar.xz
|
||||
TARBALL:=$(REDHAT)/$(TARFILE)
|
||||
DISTRO_BUILD:=$(PREBUILD)$(shell echo $(BUILD) | sed -e 's|\(^[0-9]\{1,4\}\)\..*|\1|')
|
||||
KABI_TARFILE:=kernel-abi-stablelists-$(KVERSION)-$(DISTRO_BUILD).tar.bz2
|
||||
KABI_TARBALL:=$(REDHAT)/rpm/SOURCES/$(KABI_TARFILE)
|
||||
KABIDW_TARFILE:=kernel-kabi-dw-$(KVERSION)-$(DISTRO_BUILD).tar.bz2
|
||||
KABIDW_TARBALL:=$(REDHAT)/rpm/SOURCES/$(KABIDW_TARFILE)
|
||||
|
||||
CHANGELOG:=$(PACKAGE_NAME).changelog-$(RHEL_MAJOR).$(RHEL_MINOR)
|
||||
CHANGELOG_PREV:=$(PACKAGE_NAME).changelog-$(RHEL_MAJOR).$(shell expr $(RHEL_MINOR) - 1)
|
||||
|
||||
ifeq ("$(DISTRO)", "fedora")
|
||||
RHPRODUCT:=rawhide
|
||||
else ifeq ("$(DISTRO)", "centos")
|
||||
RHPRODUCT:=c$(RHEL_MAJOR)s
|
||||
else
|
||||
RHPRODUCT:=rhel-$(RHEL_MAJOR).$(RHEL_MINOR).0
|
||||
endif
|
||||
|
||||
ifeq ("$(DISTRO)", "fedora")
|
||||
BUILD_SCRATCH_TARGET ?= temp-ark-rhel-8-test
|
||||
else ifeq ("$(DISTRO)", "centos")
|
||||
BUILD_PROFILE ?= -p stream
|
||||
BUILD_SCRATCH_TARGET ?= c$(RHEL_MAJOR)s-candidate
|
||||
else
|
||||
BUILD_SCRATCH_TARGET ?= rhel-$(RHEL_MAJOR).$(RHEL_MINOR).0-test-pesign
|
||||
endif
|
|
@ -0,0 +1,71 @@
|
|||
CROSS_RPMFLAGS = $(RPMBUILD) --define "_sourcedir $(SOURCES)" --define "_builddir $(RPM)/BUILD" --define "_srcrpmdir $(RPM)/SRPMS" --define "_rpmdir $(RPM)/RPMS" --define "_specdir $(RPM)/SPECS" --define "dist $(DIST)"
|
||||
|
||||
CROSS_PACKAGE_LIST = \
|
||||
cross-binutils-common cross-gcc-common diffstat \
|
||||
glibc-static ncurses-devel numactl-devel rng-tools
|
||||
|
||||
ifeq ($(ARCH),arm64)
|
||||
CROSS_PACKAGE_LIST += binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu
|
||||
else ifeq ($(ARCH),powerpc)
|
||||
CROSS_PACKAGE_LIST += binutils-powerpc64-linux-gnu gcc-powerpc64-linux-gnu
|
||||
else ifeq ($(ARCH),s390)
|
||||
CROSS_PACKAGE_LIST += binutils-s390x-linux-gnu gcc-s390x-linux-gnu
|
||||
else
|
||||
CROSS_PACKAGE_LIST += binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu
|
||||
CROSS_PACKAGE_LIST += binutils-powerpc64-linux-gnu gcc-powerpc64-linux-gnu
|
||||
CROSS_PACKAGE_LIST += binutils-s390x-linux-gnu gcc-s390x-linux-gnu
|
||||
endif
|
||||
|
||||
dist-cross-download:
|
||||
@if [ "$(ARCHCONFIG)" != "X86_64" ]; then \
|
||||
echo "$(ARCHCONFIG) ERROR: cross compile only enabled for x86_64"; \
|
||||
exit 1; \
|
||||
fi;
|
||||
@ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) \
|
||||
$(REDHAT)/scripts/download_cross.sh $(CROSS_PACKAGE_LIST)
|
||||
|
||||
dist-cross-aarch64-rpms: dist-cross-download dist-sources
|
||||
$(REDHAT)/scripts/x86_rngd.sh
|
||||
$(CROSS_RPMFLAGS) --target aarch64 --with cross -ba $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/scripts/generate-cross-report.sh "aarch64"
|
||||
|
||||
dist-cross-ppc64-rpms: dist-cross-download dist-sources
|
||||
$(REDHAT)/scripts/x86_rngd.sh
|
||||
$(CROSS_RPMFLAGS) --target ppc64 --with cross -ba $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/scripts/generate-cross-report.sh "ppc64"
|
||||
|
||||
dist-cross-s390x-rpms: dist-cross-download dist-sources
|
||||
$(REDHAT)/scripts/x86_rngd.sh
|
||||
$(CROSS_RPMFLAGS) --target s390x --with cross -ba $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/scripts/generate-cross-report.sh "s390x"
|
||||
|
||||
dist-cross-all-rpms: dist-cross-download dist-sources
|
||||
$(REDHAT)/scripts/x86_rngd.sh
|
||||
$(CROSS_RPMFLAGS) --target aarch64 --with cross -ba $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(CROSS_RPMFLAGS) --target ppc64 --with cross -ba $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(CROSS_RPMFLAGS) --target s390x --with cross -ba $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(CROSS_RPMFLAGS) -ba $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/scripts/generate-cross-report.sh "aarch64 ppc64 s390x x86_64"
|
||||
|
||||
dist-cross-aarch64-build: dist-cross-download dist-sources
|
||||
$(REDHAT)/scripts/x86_rngd.sh
|
||||
$(CROSS_RPMFLAGS) --target aarch64 --with cross --without debuginfo -bc $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/scripts/generate-cross-report.sh "aarch64"
|
||||
|
||||
dist-cross-ppc64-build: dist-cross-download dist-sources
|
||||
$(REDHAT)/scripts/x86_rngd.sh
|
||||
$(CROSS_RPMFLAGS) --target ppc64 --with cross --without debuginfo -bc $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/scripts/generate-cross-report.sh "ppc64"
|
||||
|
||||
dist-cross-s390x-build: dist-cross-download dist-sources
|
||||
$(REDHAT)/scripts/x86_rngd.sh
|
||||
$(CROSS_RPMFLAGS) --target s390x --with cross --without debuginfo -bc $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/scripts/generate-cross-report.sh "s390x"
|
||||
|
||||
dist-cross-all-builds: dist-cross-download dist-sources
|
||||
$(REDHAT)/scripts/x86_rngd.sh
|
||||
$(CROSS_RPMFLAGS) --target aarch64 --with cross --without debuginfo -bc $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(CROSS_RPMFLAGS) --target ppc64 --with cross --without debuginfo -bc $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(CROSS_RPMFLAGS) --target s390x --with cross --without debuginfo -bc $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(CROSS_RPMFLAGS) --without debuginfo -bc $(RPM)/SOURCES/$(PACKAGE_NAME).spec
|
||||
$(REDHAT)/scripts/generate-cross-report.sh "aarch64 ppc64 s390x x86_64"
|
|
@ -0,0 +1,41 @@
|
|||
# variables that can be overrided by ~/.rhpkg.mk or $(TOPDIR)/.rhpkg.mk
|
||||
#
|
||||
|
||||
# Command to invoke rhpkg
|
||||
ifeq ("$(DISTRO)", "fedora")
|
||||
RHPKG_BIN:=fedpkg
|
||||
else ifeq ("$(DISTRO)", "centos")
|
||||
RHPKG_BIN:=centpkg
|
||||
else
|
||||
RHPKG_BIN:=rhpkg
|
||||
endif
|
||||
# Kerberos username for pkgs.devel.redhat.com
|
||||
RHDISTGIT_USER:="$(shell whoami)"
|
||||
# Local dist-git _clean_ clone. To be used when updating dist-git
|
||||
#RHDISTGIT_CACHE:=
|
||||
# Temporary directory to clone the dist-git repo to. Change this if you
|
||||
# have a faster storage
|
||||
RHDISTGIT_TMP:=/tmp
|
||||
# Branch it should be switched into
|
||||
RHDISTGIT_BRANCH:=${RHPRODUCT}
|
||||
|
||||
# load configuration, starting with home directory then local
|
||||
ifeq ("$(RHDISTGIT_CACHE)", "")
|
||||
ifneq ("$(wildcard ${HOME}/.rhpkg.mk)", "")
|
||||
include ${HOME}/.rhpkg.mk
|
||||
endif
|
||||
ifneq ("$(wildcard $(TOPDIR)/.rhpkg.mk)", "")
|
||||
include $(TOPDIR)/.rhpkg.mk
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ("$(DISTRO)", "centos")
|
||||
RHDISTGIT:="ssh://$(RHDISTGIT_USER)@pkgs.devel.redhat.com/rpms/$(PACKAGE_NAME)"
|
||||
else
|
||||
# CentOS uses a fork + merge request based workflow with dist-git to
|
||||
# handle changes, so you need to provide the gitlab username and we by
|
||||
# default set the default user's fork path. The dist-git target in
|
||||
# redhat/Makefile has a check to see if the variable is not set.
|
||||
GL_FORK_PATH?=$(PACKAGE_NAME).git
|
||||
RHDISTGIT:=git@gitlab.com:$(GL_DISTGIT_USER)/$(GL_FORK_PATH)
|
||||
endif
|
|
@ -0,0 +1,47 @@
|
|||
|
||||
# Variables below should be changed as needed for building on a different
|
||||
# branch, or with a different upstream branch. This should be the only
|
||||
# file that needs to be changed now, and is included in redhat/Makefile
|
||||
# and redhat/Makefile.common
|
||||
|
||||
# This is the source branch that you are building out of typically this is
|
||||
# the current branch.
|
||||
DIST_BRANCH ?= "os-build"
|
||||
|
||||
# This is the dist release suffix used in the package release, eg. .fc34,
|
||||
# .el8 etc. In a different branch this may be set to a fixed value.
|
||||
DIST ?= $(shell $(RPMBUILD) --eval '%{?dist}')
|
||||
|
||||
# The branch used as upstream. This is what the upstream tarball is it
|
||||
# should be tracked in a local branch. This would be "master" for the
|
||||
# Linus master branch or linux-5.x.y for a stable branch. It can also be
|
||||
# any other upstream you have added as a branch locally.
|
||||
UPSTREAM_BRANCH ?= master
|
||||
|
||||
# If VERSION_ON_UPSTREAM is set, the versioning of the rpm package is based
|
||||
# on a branch tracking upstream. This allows for generating rpms
|
||||
# based on untagged releases.
|
||||
VERSION_ON_UPSTREAM:=1
|
||||
|
||||
# RELEASED_KERNEL swaps between the pre-release secureboot keys and
|
||||
# the release one, for vmlinux signing. It also controls whether Fedora
|
||||
# kernels are built as debug kernels or release kernels with a separate
|
||||
# kernel-debug build.
|
||||
# Set RELEASED_KERNEL to 1 when the upstream source tarball contains a
|
||||
# kernel release. (This includes prepatch or "rc" releases.)
|
||||
# Set RELEASED_KERNEL to 0 when the upstream source tarball contains an
|
||||
# unreleased kernel development snapshot.
|
||||
RELEASED_KERNEL:=0
|
||||
|
||||
# BUMP_RELEASE determines whether the pkgrelease is bumped when you call
|
||||
# 'make dist-release'. It should be set to "yes" if you expect to do
|
||||
# multiple updates and builds without bumping the base version, and no
|
||||
# when you expect every build to use a different base kernel version.
|
||||
BUMP_RELEASE:=yes
|
||||
|
||||
# INCLUDE_*_FILES determines whether or not the specific OS flavor files will
|
||||
# be included as part of the source RPM. Downstream projects, such as
|
||||
# centos-stream or RHEL, can disable file inclusion by setting these values
|
||||
# to '0'.
|
||||
INCLUDE_FEDORA_FILES:=1
|
||||
INCLUDE_RHEL_FILES:=1
|
|
@ -0,0 +1,25 @@
|
|||
===================
|
||||
The Kernel dist-git
|
||||
===================
|
||||
|
||||
The kernel is maintained in a `source tree`_ rather than directly in dist-git.
|
||||
The specfile is maintained as a `template`_ in the source tree along with a set
|
||||
of build scripts to generate configurations, (S)RPMs, and to populate the
|
||||
dist-git repository.
|
||||
|
||||
The `documentation`_ for the source tree covers how to contribute and maintain
|
||||
the tree.
|
||||
|
||||
If you're looking for the downstream patch set it's available in the source
|
||||
tree with "git log master..ark-patches" or
|
||||
`online`_.
|
||||
|
||||
Each release in dist-git is tagged in the source repository so you can easily
|
||||
check out the source tree for a build. The tags are in the format
|
||||
name-version-release, but note release doesn't contain the dist tag since the
|
||||
source can be built in different build roots (Fedora, CentOS, etc.)
|
||||
|
||||
.. _source tree: https://gitlab.com/cki-project/kernel-ark.git
|
||||
.. _template: https://gitlab.com/cki-project/kernel-ark/-/blob/os-build/redhat/kernel.spec.template
|
||||
.. _documentation: https://gitlab.com/cki-project/kernel-ark/-/wikis/home
|
||||
.. _online: https://gitlab.com/cki-project/kernel-ark/-/commits/ark-patches
|
|
@ -0,0 +1,14 @@
|
|||
Hi,
|
||||
|
||||
As part of the ongoing rebase effort, the following configuration
|
||||
options need to be reviewed.
|
||||
|
||||
As a reminder, the ARK configuration flow involves moving unreviewed
|
||||
configuration options from the pending directory to the ark directory.
|
||||
In the diff below, options are removed from the pending directory and
|
||||
added to the ark hierarchy. The final options that need to be ACKed
|
||||
are the files that are being added to the ark hierarchy.
|
||||
|
||||
If the value for a file that is added should be changed, please reply
|
||||
with a better option.
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
*merged
|
||||
config-*
|
||||
kernel*config
|
||||
partial*config
|
||||
*.old
|
||||
*.tmp
|
|
@ -0,0 +1,63 @@
|
|||
Red Hat Enterprise Linux Always Ready config option scheme
|
||||
------------------------------------------------------
|
||||
|
||||
Historically, the RHEL kernel is forked from a Fedora kernel.
|
||||
Today, the Always Ready Kernel (ARK) is constantly rebased as new kernel
|
||||
releases come out. New configuration options are reviewed and set
|
||||
with each release.
|
||||
|
||||
The config options are split out into a hierarchical
|
||||
tree structure, with one file per config option at each level of the
|
||||
hierarchy. The config options are merged and properly layered according to
|
||||
the file "priority" in the same directory as this README to generate the
|
||||
final kernel-$VERSION-<arch>-<variant>.config files we need for building the
|
||||
actual kernels.
|
||||
|
||||
The configuration is broken down into several directories:
|
||||
|
||||
ark - This contains all configuration options that have been fully
|
||||
reviewed by kernel developers and are suitable for inclusion at branch time.
|
||||
|
||||
pending-common - This directory contains all configuration options that have
|
||||
not yet been fully reviewed for inclusion. Because of the rate at which
|
||||
kernel options come out, we can't guarantee everything has been reviewed
|
||||
by the time a build needs to happen. In the interest of letting the build
|
||||
proceed for other testing, configuration options are staged in the
|
||||
pending directory. It is expected that this directory will be empty
|
||||
at branch time.
|
||||
|
||||
In each directory (ark etc.), we have generic/CONFIG_* and debug/CONFIG_*, then
|
||||
generic/<arch>/CONFIG_* and generic/<arch>/<variant>/CONFIG_*, as well as
|
||||
debug/<arch>/CONFIG_*. While this may seem overly complex compared with
|
||||
past RHEL kernel config setups at first glance, its actually quite
|
||||
straight-forward and should be less error-prone. There's no potential
|
||||
for configuration options getting out of order or conflicts when changing
|
||||
adjacent configuraiton options.
|
||||
|
||||
pending-fedora - This directory contains configuration options that have not
|
||||
been reviewed by Fedora kernel maintainers. Since the Fedora kernel turns on
|
||||
more configuration options than ARK, there are often settings that are not set
|
||||
to default in pending-common. These settings are moved to the fedora/
|
||||
configuration directory after community review. Options are populated with
|
||||
"make FLAVOR=fedora dist-commit-configs".
|
||||
|
||||
custom-overrides - This directory contains an empty set of the generic and debug
|
||||
arch-specific directory tree. Any config option set here is applied last and
|
||||
therefore will override anything set in the ark, fedora, or pending directories.
|
||||
This allows users to easily override a config option without altering the
|
||||
standard directories. Users can even maintain their own branch with a full set
|
||||
of custom configuration options that can be easily be rebased on top of
|
||||
os-build without worrying about conflicts.
|
||||
|
||||
All the configuration options for each arch and variant can be found
|
||||
in the "priority" file.
|
||||
|
||||
If you want to make a change that applies to all kernels, debug and
|
||||
non-debug alike, add a config option file under ark/generic/. If it should
|
||||
only apply to all debug kernels, add it under ark/debug/. Arch-specific
|
||||
options go under ark/generic/<arch>/ and so on. Each layer's individual config
|
||||
option files are concatenated together with all other options at the same
|
||||
level, then stacked atop the lower layers until reaching the highest
|
||||
precedence layer for the given config option.
|
||||
|
||||
Send any questions, comments or concerns to rhkernel-list@redhat.com.
|
|
@ -0,0 +1,134 @@
|
|||
evaluate_configs is a tool that can verify the settings of kernel
|
||||
CONFIGs in the redhat/configs directory. The data for evaluate_configs
|
||||
is a combination of the redhat/configs files and the priority files.
|
||||
|
||||
Introduction to Basic Output
|
||||
============================
|
||||
|
||||
This command demonstrates how to display information about the
|
||||
CONFIG_HEADER_TEST option for RHEL.
|
||||
|
||||
[prarit@prarit configs]$ ./evaluate_configs -p priority.rhel -c CONFIG_HEADER_TEST
|
||||
CONFIG_HEADER_TEST
|
||||
legend g ga1 ga2 d da1 da2
|
||||
common-x86_64 y - - - X -
|
||||
common-ppc64le y - X - - X
|
||||
common-s390x y - X - - X
|
||||
common-s390x-zfcpdump y - - X X X
|
||||
common-aarch64 y - - - X -
|
||||
ark-x86_64 y - - - X -
|
||||
ark-ppc64le y - X - - X
|
||||
ark-s390x y - X - - X
|
||||
ark-s390x-zfcpdump y - - X X X
|
||||
ark-aarch64 y - - - X -
|
||||
pending-common-x86_64 - - - - X -
|
||||
pending-common-ppc64le - - X - - X
|
||||
pending-common-s390x - - X - - X
|
||||
pending-common-s390x-zfcpdump - - - X X X
|
||||
pending-common-aarch64 - - - - X -
|
||||
|
||||
The legend row, shows the subdirectory entries. These can be mapped
|
||||
back to the priority.rhel entries, for example, for x86_64
|
||||
|
||||
# x86_64
|
||||
x86_64=generic:generic-x86:generic-x86-x86_64
|
||||
x86_64-debug=generic:generic-x86:generic-x86-x86_64:debug:debug-x86-x86_64
|
||||
|
||||
are combined into one entry for x86_64 where
|
||||
|
||||
g maps to "generic"
|
||||
ga1 maps to "generic-x86"
|
||||
ga2 maps to "generic-x86-x86-64"
|
||||
d maps to "debug"
|
||||
da1 maps to nothing (more on this below)
|
||||
da2 maps to debug-x86-x86_64
|
||||
|
||||
The left hand column indicates the directory and config-variant. For
|
||||
example, ark-s390x-zfcpdump is the s390x-zfcpdump variant and the
|
||||
row beside it shows the config settings in the ark directory.
|
||||
|
||||
The data contained in the output can have 5 values:
|
||||
|
||||
y = CONFIG is set to 'y'
|
||||
m = CONFIG is set to 'm'
|
||||
n = CONFIG is set to 'is not set'
|
||||
- = CONFIG file does not exist
|
||||
X = CONFIG file entry is not in priority file
|
||||
|
||||
As can be seen above in the CONFIG_HEADER_TEST output, da1 is not present
|
||||
in the priority.rhel file and is marked with an 'X'.
|
||||
|
||||
Options
|
||||
=======
|
||||
|
||||
-c CONFIG
|
||||
Evalulate these specific CONFIGs. This can be a file,
|
||||
or a comma-separated list. If nothing is specified then
|
||||
all CONFIGs are examined by default.)
|
||||
-d
|
||||
Enable debug
|
||||
-p priority.file
|
||||
Specify a priority.file (no default)
|
||||
-j
|
||||
Evaluate common directory
|
||||
-f
|
||||
Evaluate and fix a priority's CONFIGs
|
||||
|
||||
All commands except -j require a -p argument.
|
||||
|
||||
Evaluate CONFIGs
|
||||
================
|
||||
|
||||
The -f option can be used to evaluate all the CONFIGs by executing, for
|
||||
example
|
||||
|
||||
# evaluate_configs -p priority.rhel -f
|
||||
|
||||
or a single CONFIG
|
||||
|
||||
# evaluate_configs -p priority.rhel -f -c CONFIG_HEADER_TEST
|
||||
|
||||
The Evaluate Output will show a different view than the Basic Output above:
|
||||
|
||||
ERROR: (hierarchy) ark/generic/CONFIG_HEADER_TEST : superseding value has y.
|
||||
|CONFIG_HEADER_TEST (ark-aarch64)
|
||||
|g ga1 ga2 d da1 da2 g ga1 ga2 d da1 da2 g ga1 ga2 d da1 da2
|
||||
|y - - - X - y - - - X - - - - - X -
|
||||
| Deleting ark/generic/CONFIG_HEADER_TEST
|
||||
|
||||
This view is the Basic Output's aarch64 data in a single line, From the
|
||||
above output,
|
||||
|
||||
common-aarch64 y - - - X -
|
||||
ark-aarch64 y - - - X -
|
||||
pending-common-aarch64 - - - - X -
|
||||
|
||||
The Evaluate output makes it easier to visually see a conflict. One
|
||||
can read the line and if there are two y|m|n separated by one or more - or
|
||||
X's in a line, then there is the possibility of a conflict.
|
||||
|
||||
If the CONFIG setting is found to be incorrect it it automatically removed
|
||||
and a message
|
||||
|
||||
| Deleting ark/generic/CONFIG_HEADER_TEST
|
||||
|
||||
will be output.
|
||||
|
||||
Evaluate common Directory
|
||||
=========================
|
||||
|
||||
This function does a 1-to-1 comparison of CONFIG settings in the
|
||||
ark and fedora directories, and checks to see if the CONFIG should be set
|
||||
in the common directory.
|
||||
|
||||
The output is the same as the Evaluate output.
|
||||
|
||||
This functionality uses the priority.common file and can be executed via
|
||||
|
||||
evaluate_configs -j
|
||||
|
||||
for all CONFIGs, or
|
||||
|
||||
evaluate_configs -j -c CONFIG_HEADER_TEST
|
||||
|
||||
for a single CONFIG.
|
|
@ -0,0 +1 @@
|
|||
CONFIG_ATH10K_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_ATH10K_TRACING=y
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_CFG80211_DEBUGFS=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_CGROUP_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_CPUMASK_OFFSTACK=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=20000
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_PAGEALLOC=y
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_PAGE_REF=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_SLAB=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_VM=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DMADEVICES_VDEBUG=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DRM_AMDGPU_GART_DEBUGFS=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_EDAC_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_FSCACHE_OBJECT_LIST=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_GENERIC_IRQ_DEBUGFS=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_I2C_GPIO_FAULT_INJECTOR=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_IP_VS_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_IWLWIFI_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
|
@ -0,0 +1 @@
|
|||
CONFIG_LATENCYTOP=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_MAC80211_DEBUGFS=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_MAC80211_MESSAGE_TRACING=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_MMIOTRACE=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_NFP_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_PANIC_ON_OOPS is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_PM_TEST_SUSPEND=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_PM_TRACE_RTC=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_QUEUED_LOCK_STAT=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_RANDOM32_SELFTEST=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_RC_LOOPBACK=m
|
|
@ -0,0 +1 @@
|
|||
CONFIG_RTLWIFI_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_TEST_STRING_HELPERS=m
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_USB_XHCI_DBGCAP is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_ZRAM_MEMORY_TRACKING=y
|
|
@ -0,0 +1,3 @@
|
|||
Place config options in this directory that you want applied to all -debug
|
||||
kernel variants. These options are overlayed atop the generic/ configs and
|
||||
all other configs in directories below generic/.
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_PERF_USE_VMALLOC=y
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_DEBUG_VM is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEVMEM=y
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_IP_VS_DEBUG is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_KDB_DEFAULT_ENABLE=0x1
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_LOCK_STAT is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_MAILBOX_TEST=m
|
|
@ -0,0 +1 @@
|
|||
CONFIG_PANIC_ON_OOPS=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_PANIC_ON_OOPS_VALUE=1
|
|
@ -0,0 +1 @@
|
|||
CONFIG_PERCPU_TEST=m
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_RANDOM32_SELFTEST is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_SPI_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_WQ_WATCHDOG=y
|
|
@ -0,0 +1,4 @@
|
|||
Place config options in this directory that you want applied only to the
|
||||
aarch64 kernel-debug variant. These options are overlayed atop the generic/
|
||||
configs, all other configs in directories below generic/ and the configs
|
||||
in debug/.
|
|
@ -0,0 +1 @@
|
|||
CONFIG_NVRAM=m
|
|
@ -0,0 +1 @@
|
|||
CONFIG_PPC_KUAP_DEBUG=y
|
|
@ -0,0 +1,4 @@
|
|||
Place config options in this directory that you want applied only to the
|
||||
powerpc64 kernel-debug variant. These options are overlayed atop the
|
||||
generic/ configs, all other configs in directories below generic/ and the
|
||||
configs in debug/.
|
|
@ -0,0 +1 @@
|
|||
CONFIG_PCI_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_STRICT_DEVMEM is not set
|
|
@ -0,0 +1,4 @@
|
|||
Place config options in this directory that you want applied only to the
|
||||
s390x kernel-debug variant. These options are overlayed atop the generic/
|
||||
configs, all other configs in directories below generic/ and the configs
|
||||
in debug/.
|
|
@ -0,0 +1 @@
|
|||
CONFIG_PM_SLEEP_DEBUG=y
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_PM_TEST_SUSPEND is not set
|
|
@ -0,0 +1 @@
|
|||
CONFIG_USB_XHCI_DBGCAP=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_X86_DEBUG_FPU=y
|
|
@ -0,0 +1 @@
|
|||
CONFIG_X86_PTDUMP=y
|
|
@ -0,0 +1,4 @@
|
|||
Place config options in this directory that you want applied only to the
|
||||
x86_64 kernel-debug variant. These options are overlayed atop the generic/
|
||||
configs, all other configs in directories below generic/ and the configs
|
||||
in debug/.
|
|
@ -0,0 +1 @@
|
|||
CONFIG_64BIT=y
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_6LOWPAN_DEBUGFS is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_6LOWPAN_NHC is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_ABP060MG is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_ACCESSIBILITY is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_ACER_WIRELESS is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_ACPI_ALS is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD5272 is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD7124 is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD7152 is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD7766 is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD7949 is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_ADIN_PHY is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_ADIS16060 is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_ADXL372_I2C is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_ADXL372_SPI is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AFFS_FS is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AFS_FS is not set
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AF_KCM is not set
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue