From 257b43610b08c33aa43ae1f4caff079ff81f89fe Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 26 Aug 2024 06:22:22 +0000 Subject: automatic import of openEuler-rpm-config --- .gitignore | 1 + 0001-1-Add-riscv64-to-golang_arches.patch | 27 ++ 0001-add-loongarch64-for-golang_arches.patch | 25 ++ Delete-the-commented-code.patch | 24 + Feature-support-EBS-sign-for-IMA-digest-list.patch | 82 ++++ Fix-a-typo-in-brp-digest-list.patch | 26 ++ Fix-python3_version-macros-for-Python-3.10.patch | 30 ++ ...ing-when-using-kabi-outside-our-stablelis.patch | 240 ++++++++++ add-brp-scripts-to-delete-rpath.patch | 145 ++++++ ...4-support-for-config.guess-and-config.sub.patch | 26 ++ add-loongarch64-to-generic_arches.patch | 13 + add-powerpc64le-and-ppc64le-support.patch | 38 ++ add-pyproject-macros.patch | 42 ++ add-riscv64-to-some-arches-macro.patch | 41 ++ add-sw-arch-support.patch | 63 +++ backport-kmp-feature.patch | 485 +++++++++++++++++++++ change-the-vendor-to-generic-for-common-use.patch | 109 +++++ ...ile-is-a-symbolic-link-in-brp-digest-list.patch | 25 ++ ...rce-and-EFI-files-in-digest-list-building.patch | 74 ++++ ...-ldconfig-riscv-default-library-directory.patch | 15 + fix-config-error-for-loongarch64.patch | 25 ++ fix-error-message-for-kmodtool.patch | 25 ++ ...ELF-file-cannot-be-found-due-to-escape-of.patch | 25 ++ fixed-a-bug-that-missing_-p-in-macros.kmp.patch | 37 ++ openEuler-rpm-config.spec | 344 +++++++++++++++ remove-fexceptions.patch | 36 ++ sources | 1 + ...nfig.guess-and-config.sub-for-loongarch64.patch | 39 ++ 28 files changed, 2063 insertions(+) create mode 100644 0001-1-Add-riscv64-to-golang_arches.patch create mode 100644 0001-add-loongarch64-for-golang_arches.patch create mode 100644 Delete-the-commented-code.patch create mode 100644 Feature-support-EBS-sign-for-IMA-digest-list.patch create mode 100644 Fix-a-typo-in-brp-digest-list.patch create mode 100644 Fix-python3_version-macros-for-Python-3.10.patch create mode 100644 Give-a-warning-when-using-kabi-outside-our-stablelis.patch create mode 100644 add-brp-scripts-to-delete-rpath.patch create mode 100644 add-loongarch64-support-for-config.guess-and-config.sub.patch create mode 100644 add-loongarch64-to-generic_arches.patch create mode 100644 add-powerpc64le-and-ppc64le-support.patch create mode 100644 add-pyproject-macros.patch create mode 100644 add-riscv64-to-some-arches-macro.patch create mode 100755 add-sw-arch-support.patch create mode 100644 backport-kmp-feature.patch create mode 100644 change-the-vendor-to-generic-for-common-use.patch create mode 100644 check-if-the-file-is-a-symbolic-link-in-brp-digest-list.patch create mode 100644 exclude-kernel-source-and-EFI-files-in-digest-list-building.patch create mode 100644 fix-brp-ldconfig-riscv-default-library-directory.patch create mode 100644 fix-config-error-for-loongarch64.patch create mode 100644 fix-error-message-for-kmodtool.patch create mode 100644 fix-the-ELF-file-cannot-be-found-due-to-escape-of.patch create mode 100644 fixed-a-bug-that-missing_-p-in-macros.kmp.patch create mode 100644 openEuler-rpm-config.spec create mode 100644 remove-fexceptions.patch create mode 100644 sources create mode 100644 update-config.guess-and-config.sub-for-loongarch64.patch diff --git a/.gitignore b/.gitignore index e69de29..b3547b5 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/30.tar.gz diff --git a/0001-1-Add-riscv64-to-golang_arches.patch b/0001-1-Add-riscv64-to-golang_arches.patch new file mode 100644 index 0000000..e52a168 --- /dev/null +++ b/0001-1-Add-riscv64-to-golang_arches.patch @@ -0,0 +1,27 @@ +From c1b9fdaa93bfe0b2c70be4a851500d15f891d2f8 Mon Sep 17 00:00:00 2001 +From: whoisxxx +Date: Sat, 28 Nov 2020 11:02:21 +0800 +Subject: [PATCH] !1 Add "riscv64" to golang_arches The golang version 1.14 has + support riscv64, so add "riscv64" to golang_arches to enable rpmbuild for + golang. + +--- + macros.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/macros.go b/macros.go +index c1e6e75..cd493e7 100644 +--- a/macros.go ++++ b/macros.go +@@ -12,7 +12,7 @@ + # redhat-rpm-macros. + + # Define arches for PA and SA +-%golang_arches %{ix86} x86_64 %{arm} aarch64 ppc64le s390x ++%golang_arches %{ix86} x86_64 %{arm} aarch64 ppc64le s390x riscv64 + %gccgo_arches %{mips} + %go_arches %{golang_arches} %{gccgo_arches} + +-- +1.8.3.1 + diff --git a/0001-add-loongarch64-for-golang_arches.patch b/0001-add-loongarch64-for-golang_arches.patch new file mode 100644 index 0000000..4623504 --- /dev/null +++ b/0001-add-loongarch64-for-golang_arches.patch @@ -0,0 +1,25 @@ +From 28921237101c986eeee13808a1167db13dc788ce Mon Sep 17 00:00:00 2001 +From: Wenlong Zhang +Date: Tue, 13 Dec 2022 12:07:10 +0000 +Subject: [PATCH] add loongarch64 for golang_arches + +--- + macros.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/macros.go b/macros.go +index cd493e7..f20f6a1 100644 +--- a/macros.go ++++ b/macros.go +@@ -12,7 +12,7 @@ + # redhat-rpm-macros. + + # Define arches for PA and SA +-%golang_arches %{ix86} x86_64 %{arm} aarch64 ppc64le s390x riscv64 ++%golang_arches %{ix86} x86_64 %{arm} aarch64 ppc64le s390x riscv64 loongarch64 + %gccgo_arches %{mips} + %go_arches %{golang_arches} %{gccgo_arches} + +-- +2.33.0 + diff --git a/Delete-the-commented-code.patch b/Delete-the-commented-code.patch new file mode 100644 index 0000000..b9f0469 --- /dev/null +++ b/Delete-the-commented-code.patch @@ -0,0 +1,24 @@ +From c7605385b9d838be78a87de02a48eaaa6e69b4b2 Mon Sep 17 00:00:00 2001 +From: hongjinghao +Date: Tue, 5 Mar 2024 20:22:59 +0800 +Subject: [PATCH] Delete the commented code + +--- + brp-digest-list | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/brp-digest-list b/brp-digest-list +index 77248c9..7de42b7 100644 +--- a/brp-digest-list ++++ b/brp-digest-list +@@ -9,7 +9,6 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then + fi + + # Create temporary file listing files in the manifest +-#[ -n "$TMPDIR" ] || TMPDIR="/tmp" + TMPDIR="/tmp" + BIN_PKG_FILES=${TMPDIR}/${3%%.rpm} + cat - > $BIN_PKG_FILES +-- +2.33.0 + diff --git a/Feature-support-EBS-sign-for-IMA-digest-list.patch b/Feature-support-EBS-sign-for-IMA-digest-list.patch new file mode 100644 index 0000000..39b6aae --- /dev/null +++ b/Feature-support-EBS-sign-for-IMA-digest-list.patch @@ -0,0 +1,82 @@ +From 0449160c84daff8c557dee47a970e4f4837ff81d Mon Sep 17 00:00:00 2001 +From: Huaxin Lu +Date: Mon, 12 Dec 2022 00:16:01 +0800 +Subject: [PATCH] support EBS sign for IMA digest list + +Signed-off-by: Huaxin Lu +--- + brp-digest-list | 16 ++++++++++++++++ + brp-ebs-sign | 34 ++++++++++++++++++++++++++++++++++ + 2 files changed, 50 insertions(+) + create mode 100644 brp-ebs-sign + +diff --git a/brp-digest-list b/brp-digest-list +index e698b7a..9ec50a2 100644 +--- a/brp-digest-list ++++ b/brp-digest-list +@@ -84,6 +84,22 @@ if [[ "$(basename $BIN_PKG_FILES)" =~ "digest-list-tools" && \ + chmod 644 $f + echo $f + ++ # do EBS sign ++ export PUBLISHER_HOST=$(grep PUBLISHER_HOST /lkp/scheduled/job.yaml | awk '{print $2}') ++ export PUBLISHER_PORT=$(grep PUBLISHER_PORT /lkp/scheduled/job.yaml | awk '{print $2}') ++ if [[ -n "$PUBLISHER_HOST" && -n "$PUBLISHER_PORT" ]]; then ++ [ -f /usr/lib/rpm/brp-ebs-sign ] || exit 0 ++ for f in $(ls $DIGEST_LIST_DIR); do ++ sh /usr/lib/rpm/brp-ebs-sign $DIGEST_LIST_DIR/$f &> /dev/null ++ [ -f $DIGEST_LIST_DIR/$f.sig ] || exit 0 ++ chmod 644 $DIGEST_LIST_DIR/$f.sig ++ mv $DIGEST_LIST_DIR/$f.sig $DIGEST_LIST_DIR.sig/$f.sig ++ echo $DIGEST_LIST_DIR.sig/$f.sig ++ done ++ exit 0 ++ fi ++ ++ # do OBS sign + [ -f /usr/lib/rpm/brp-suse.d/brp-99-pesign ] || exit 0 + + export BRP_PESIGN_FILES="$2/etc/ima/digest_lists/*" +diff --git a/brp-ebs-sign b/brp-ebs-sign +new file mode 100644 +index 0000000..662a9f7 +--- /dev/null ++++ b/brp-ebs-sign +@@ -0,0 +1,34 @@ ++#!/bin/bash ++ ++# config ++PUBLISHER_ADDR="http://${PUBLISHER_HOST}:${PUBLISHER_PORT}/sign-files" ++POST_KEY_BASE64="encoded_file_content" ++POST_KEY_MD5="file_md5" ++REQ_KEY_BASE64="signed_file_content" ++REQ_KEY_MD5="signed_file_md5" ++ ++# function definition ++get_json_value(){ ++ echo "$1" | awk -F "[{,:}]" '{for(i=1;i $file.sig ++[ $? -eq 0 ] || { echo "Fail to decode value of $key"; exit 1; } ++ ++sig_md5=$(get_json_value "$req" "$REQ_KEY_MD5") ++[ $? -eq 0 ] || { echo "Fail to parser $REQ_KEY_MD5"; exit 1; } ++md5sum $file.sig | grep "$sig_md5" ++[ $? -eq 0 ] || { echo "Fail to check md5 of $file.sig"; exit 1; } ++ ++echo "Sign $file ok!" ++exit 0 +-- +2.33.0 + diff --git a/Fix-a-typo-in-brp-digest-list.patch b/Fix-a-typo-in-brp-digest-list.patch new file mode 100644 index 0000000..305237d --- /dev/null +++ b/Fix-a-typo-in-brp-digest-list.patch @@ -0,0 +1,26 @@ +From a82057c590f958d10898c2e5f7211241be3dfd7a Mon Sep 17 00:00:00 2001 +From: Roberto Sassu +Date: Fri, 26 Feb 2021 09:00:06 +0100 +Subject: [PATCH] Fix a typo in brp-digest-list + +Rename RPM_PACKAGE_NAM to RPM_PACKAGE_NAME. +--- + brp-digest-list | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/brp-digest-list b/brp-digest-list +index 435b962..c3b2156 100644 +--- a/brp-digest-list ++++ b/brp-digest-list +@@ -86,7 +86,7 @@ if [[ "$(basename $BIN_PKG_FILES)" =~ "digest-list-tools" && \ + + export BRP_PESIGN_FILES="$2/etc/ima/digest_lists/*" + export RPM_BUILD_ROOT +- export RPM_PACKAGE_NAM="digest-list-tools" ++ export RPM_PACKAGE_NAME="digest-list-tools" + export RPM_SOURCE_DIR="$(rpm --eval %_topdir)/SOURCES" + + if [ -f "/usr/lib/rpm/brp-suse.d/brp-99-pesign" ]; then +-- +2.26.2 + diff --git a/Fix-python3_version-macros-for-Python-3.10.patch b/Fix-python3_version-macros-for-Python-3.10.patch new file mode 100644 index 0000000..fc76959 --- /dev/null +++ b/Fix-python3_version-macros-for-Python-3.10.patch @@ -0,0 +1,30 @@ +From 84ed1ab69d4b1e0aea452350d9f2865e8f7c28e7 Mon Sep 17 00:00:00 2001 +From: Miro Hrončok +Date: Aug 26 2019 13:24:23 +0000 +Subject: Fix %python3_version macros for Python 3.10 + + +No need to bump the release, 3.10 is far from now. + +Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1745601 + +--- + +diff --git a/macros.python b/macros.python +index 1952aed..a170c4b 100644 +--- a/macros.python ++++ b/macros.python +@@ -139,8 +139,8 @@ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $pyth + %__python3 /usr/bin/python3 + %python3_sitelib %(%{__python3} -Ic "from distutils.sysconfig import get_python_lib; print(get_python_lib())") + %python3_sitearch %(%{__python3} -Ic "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))") +-%python3_version %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3])") +-%python3_version_nodots %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3].replace('.',''))") ++%python3_version %(%{__python3} -Ic "import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))") ++%python3_version_nodots %(%{__python3} -Ic "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))") + %python3_platform %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_platform())") + %py3dir %{_builddir}/python3-%{name}-%{version}-%{release} + +-- +2.27.0 + diff --git a/Give-a-warning-when-using-kabi-outside-our-stablelis.patch b/Give-a-warning-when-using-kabi-outside-our-stablelis.patch new file mode 100644 index 0000000..d2cba8e --- /dev/null +++ b/Give-a-warning-when-using-kabi-outside-our-stablelis.patch @@ -0,0 +1,240 @@ +From 895c930b1418798509a1f19706b6a1be188ad303 Mon Sep 17 00:00:00 2001 +From: Liu Yuntao +Date: Sat, 2 Jul 2022 13:59:25 +0800 +Subject: [PATCH] Give a warning when using kabi outside our stablelists. + +Add a script that will find requirements for your package. It can make an +additional kabi whitelist check for you, compared with rpmbuild's builtin +requirement scanner. You may add "%define _use_internal_dependency_generator 0" +in your .spec file to enable this feature. +synced from CentOS's implementation. +--- + find-requires | 38 +++++++++++ + find-requires.ksyms | 155 ++++++++++++++++++++++++++++++++++++++++++++ + macros.kmp | 3 +- + 3 files changed, 195 insertions(+), 1 deletion(-) + create mode 100644 find-requires + create mode 100644 find-requires.ksyms + +diff --git a/find-requires b/find-requires +new file mode 100644 +index 0000000..b7cd825 +--- /dev/null ++++ b/find-requires +@@ -0,0 +1,38 @@ ++#!/bin/bash ++ ++# ++# Auto-generate requirements for executables (both ELF and a.out) and library ++# sonames, script interpreters, and perl modules. ++# ++ ++ulimit -c 0 ++ ++filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"` ++ ++[ -x /usr/lib/rpm/rpmdeps -a -n "$filelist" ] && \ ++ echo $filelist | tr '[:blank:]' \\n | /usr/lib/rpm/rpmdeps --requires ++ ++# ++# --- Kernel module imported symbols ++# ++# Since we don't (yet) get passed the name of the package being built, we ++# cheat a little here by looking first for a kernel, then for a kmod. ++# ++ ++unset is_kmod ++ ++for f in $filelist; do ++ if [ $(echo "$f" | sed -r -ne 's:^.*/lib/modules/(.*)/(.*)\.ko(\.gz|\.bz2|\.xz)?$:\2:p') ] ++ then ++ is_kmod=1; ++ elif [ $(echo "$f" | sed -r -ne 's:^.*/boot/(.*):\1:p') ] ++ then ++ unset is_kmod; ++ break; ++ fi ++done ++ ++[ -x /usr/lib/rpm/__vendor/find-requires.ksyms ] && [ "$is_kmod" ] && ++ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/__vendor/find-requires.ksyms ++ ++exit 0 +diff --git a/find-requires.ksyms b/find-requires.ksyms +new file mode 100644 +index 0000000..15cc729 +--- /dev/null ++++ b/find-requires.ksyms +@@ -0,0 +1,155 @@ ++#! /bin/bash ++# ++# This script is called during external module building to create dependencies ++# both upon the linux kernel, and on additional external modules. Symbols that ++# cannot be reconciled against those provided by the kernel are assumed to be ++# provided by an external module and "ksym" replaces th regular "kernel" dep. ++ ++IFS=$'\n' ++ ++# Extract all of the symbols provided by this module. ++all_provides() { ++ for module in "$@"; do ++ tmpfile="" ++ if [ "x${module%.ko}" = "x${module}" ]; then ++ tmpfile=$(mktemp -t ${0##*/}.XXXXXX.ko) ++ proc_bin= ++ case "${module##*.}" in ++ xz) ++ proc_bin=xz ++ ;; ++ bz2) ++ proc_bin=bzip2 ++ ;; ++ gz) ++ proc_bin=gzip ++ ;; ++ esac ++ ++ [ -n "$proc_bin" ] || continue ++ ++ "$proc_bin" -d -c - < "$module" > "$tmpfile" || continue ++ module="$tmpfile" ++ fi ++ ++ if [[ -n $(nm "$module" | sed -r -ne 's:^0*([0-9a-f]+) A __crc_(.+):0x\1 \2:p') ]]; then ++ nm "$module" \ ++ | sed -r -ne 's:^0*([0-9a-f]+) A __crc_(.+):0x\1 \2:p' \ ++ | awk --non-decimal-data '{printf("%s:0x%08x\n", $2, $1)}' ++ else ++ ELFRODATA=$(readelf -R .rodata "$module" | awk '/0x/{printf $2$3$4$5}') ++ if [[ -n $(readelf -h "$module" | grep "little endian") ]]; then ++ RODATA=$(echo $ELFRODATA | sed 's/\(..\)\(..\)\(..\)\(..\)/\4\3\2\1/g') ++ else ++ RODATA=$ELFRODATA ++ fi ++ for sym in $(nm "$module" | sed -r -ne 's:^0*([0-9a-f]+) R __crc_(.+):0x\1 \2:p'); do ++ echo $sym $RODATA ++ done \ ++ | awk --non-decimal-data '{printf("%s:0x%08s\n", $2, substr($3,($1*2)+1,8))}' ++ fi ++ ++ [ -z "$tmpfile" ] || rm -f -- "$tmpfile" ++ done \ ++ | LC_ALL=C sort -k1,1 -u ++} ++ ++# Extract all of the requirements of this module. ++all_requires() { ++ for module in "$@"; do ++ set -- $(/sbin/modinfo -F vermagic "$module" | sed -e 's: .*::' -e q) ++ /sbin/modprobe --dump-modversions "$module" \ ++ | awk --non-decimal-data ' ++ BEGIN { FS = "\t" ; OFS = "\t" } ++ {printf("%s:0x%08x\n", $2, $1)}' \ ++ | sed -r -e 's:$:\t'"$1"':' ++ done \ ++ | LC_ALL=C sort -k1,1 -u ++} ++ ++# Filter out requirements fulfilled by the module itself. ++mod_requires() { ++ LC_ALL=C join -t $'\t' -j 1 -v 1 \ ++ <(all_requires "$@") \ ++ <(all_provides "$@") \ ++ | LC_ALL=C sort -k1,1 -u ++} ++ ++if ! [ -e /sbin/modinfo -a -e /sbin/modprobe ]; then ++ cat > /dev/null ++ exit 0 ++fi ++ ++check_kabi() { ++ arch=$(uname -m) ++ kabi_file="/lib/modules/kabi-current/kabi_stablelist_$arch" ++ ++ # If not installed, output a warning and return (continue) ++ if [ ! -f "$kabi_file" ]; then ++ echo "" >&2 ++ echo "********************************************************************************" >&2 ++ echo "*********************** KERNEL ABI COMPATIBILITY WARNING ***********************" >&2 ++ echo "********************************************************************************" >&2 ++ echo "The kernel ABI reference files (provided by "kernel-abi-stablelists") were not found." >&2 ++ echo "No compatibility check was performed. Please install the kABI reference files" >&2 ++ echo "and rebuild if you would like to verify compatibility with kernel ABI." >&2 ++ echo "" >&2 ++ return ++ fi ++ ++ unset non_kabi ++ for symbol in "$@"; do ++ if ! egrep "^$symbol\$" $kabi_file >/dev/null; then ++ non_kabi=("${non_kabi[@]}" "$symbol") ++ fi ++ done ++ ++ if [ ${#non_kabi[@]} -gt 0 ]; then ++ echo "" >&2 ++ echo "********************************************************************************" >&2 ++ echo "*********************** KERNEL ABI COMPATIBILITY WARNING ***********************" >&2 ++ echo "********************************************************************************" >&2 ++ echo "The following kernel symbols are not guaranteed to remain compatible with" >&2 ++ echo "future kernel updates to this RHEL release:" >&2 ++ echo "" >&2 ++ for symbol in "${non_kabi[@]}"; do ++ printf "\t$symbol\n" >&2 ++ done ++ echo "" >&2 ++ echo "__vendor recommends that you consider using only official kernel ABI symbols" >&2 ++ echo "where possible. Requests for additions to the kernel ABI can be filed with" >&2 ++ echo "your partner or customer representative (component: driver-update-program)." >&2 ++ echo "" >&2 ++ fi ++} ++ ++modules=($(grep -E '/lib/modules/.+\.ko(\.gz|\.bz2|\.xz)?$')) ++if [ ${#modules[@]} -gt 0 ]; then ++ kernel=$(/sbin/modinfo -F vermagic "${modules[0]}" | sed -e 's: .*::' -e q) ++ ++ # get all that kernel provides ++ symvers=$(mktemp -t ${0##*/}.XXXXX) ++ ++ cat /usr/src/kernels/$kernel/Module.symvers | awk ' ++ BEGIN { FS = "\t" ; OFS = "\t" } ++ { print $2 ":" $1 } ++ ' \ ++ | sed -r -e 's:$:\t'"$kernel"':' \ ++ | LC_ALL=C sort -k1,1 -u > $symvers ++ ++ # Symbols matching with the kernel get a "kernel" dependency ++ mod_req=$(mktemp -t mod_req.XXXXX) ++ mod_requires "${modules[@]}" > "$mod_req" ++ LC_ALL=C join -t $'\t' -j 1 $symvers "$mod_req" | LC_ALL=C sort -u \ ++ | awk 'BEGIN { FS = "[\t:]" ; OFS = "\t" } { print "kernel(" $1 ") = " $2 }' ++ ++ # Symbols from elsewhere get a "ksym" dependency ++ LC_ALL=C join -t $'\t' -j 1 -v 2 $symvers "$mod_req" | LC_ALL=C sort -u \ ++ | awk 'BEGIN { FS = "[\t:]" ; OFS = "\t" } { print "ksym(" $1 ") = " $2 }' ++ ++ # Check kABI if the kernel-abi-stablelists package is installed ++ # Do this last so we can try to output this error at the end ++ kabi_check_symbols=($(LC_ALL=C join -t $'\t' -j 1 $symvers "$mod_req" | LC_ALL=C sort -u \ ++ | awk 'BEGIN { FS = "[\t:]" ; OFS = "\t" } { print $1 }')) ++ check_kabi "${kabi_check_symbols[@]}" ++fi +diff --git a/macros.kmp b/macros.kmp +index 5207045..df7e41e 100644 +--- a/macros.kmp ++++ b/macros.kmp +@@ -1,7 +1,8 @@ +-# Use these macros to differentiate between RH and other KMP implementation(s). ++# Use these macros to differentiate between __vendor and other KMP implementation(s). + + kernel_module_package_release 1 + ++__find_requires /usr/lib/rpm/__vendor/find-requires + + + #kernel_module_package [ -n name ] [ -v version ] [ -r release ] +-- +2.27.0 + diff --git a/add-brp-scripts-to-delete-rpath.patch b/add-brp-scripts-to-delete-rpath.patch new file mode 100644 index 0000000..8677bd5 --- /dev/null +++ b/add-brp-scripts-to-delete-rpath.patch @@ -0,0 +1,145 @@ +From 9648228a3f64de46dd7fbb26e2df429352de17e1 Mon Sep 17 00:00:00 2001 +From: yangmingtaip +Date: Sat, 4 Sep 2021 14:14:54 +0800 +Subject: [PATCH] add brp scripts to delete rpath + +Signed-off-by: xujing +--- + brp-chrpath | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + macros | 2 + + 2 files changed, 106 insertions(+) + create mode 100755 brp-chrpath + +diff --git a/brp-chrpath b/brp-chrpath +new file mode 100755 +index 0000000..dc48351 +--- /dev/null ++++ b/brp-chrpath +@@ -0,0 +1,104 @@ ++#!/usr/bin/sh ++# remove rpath specified ++ ++rpathSuffix=( ++ "/home/abuild/rpmbuild/BUILD", ++ "/home/lkp/rpmbuild/BUILD" ++) ++ ++rpath=( ++ "/usr/lib64", ++ "/lib64", ++ "/usr/lib", ++ "/lib", ++ "/usr/lib/../lib64" ++) ++ ++buildroot=$1 ++ ++function rpathChange() ++{ ++ localSrcPath=$1 ++ localDstPath="" ++ ++ rpathArr=(`echo $localSrcPath | tr ':' ' '`) ++ ++ for path in ${rpathArr[*]} ++ do ++ localflag=0 ++ for suffix in ${rpathSuffix[*]} ++ do ++ if echo "$path" | grep $suffix &> /dev/null; then ++ localflag=1 ++ break ++ fi ++ done ++ ++ # Is the suffix path, delete ++ if [ $localflag -eq 1 ]; then ++ continue; ++ fi ++ ++ #Is the standard path, delete ++ if echo "${rpath[@]}" | grep -w $path &> /dev/null; then ++ continue ++ fi ++ ++ if [ x"$localDstPath" == x"" ]; then ++ localDstPath=$path ++ else ++ localDstPath=$localDstPath:$path ++ fi ++ done ++ ++ echo $localDstPath ++} ++ ++function removeRpathOrRunpath() ++{ ++ localfile=$1 ++ ++ rpathInfo=$(chrpath -l $localfile | grep "RPATH=") ++ runpathInfo=$(chrpath -l $localfile | grep "RUNPATH=") ++ ++ currPath="" ++ realPath="" ++ needCh=0 ++ if [ x"$rpathInfo" != x"" ]; then ++ needCh=1 ++ currPath=$(echo $rpathInfo | awk -F "RPATH=" '{print $2}') ++ realPath=$(rpathChange $currPath) ++ fi ++ ++ if [ x"$runpathInfo" != x"" ]; then ++ needCh=1 ++ currPath=$(echo $runpathInfo | awk -F "RUNPATH=" '{print $2}') ++ realPath=$(rpathChange $currPath) ++ fi ++ ++ if [ $needCh -eq 0 ]; then ++ return 0 ++ fi ++ ++ if [ x"$realPath" == x"" ]; then ++ chrpath -d $localfile ++ else ++ chrpath -r $realPath $localfile ++ fi ++ ++ return 0 ++} ++ ++for file in $(find $buildroot/ -executable -type f -exec file {} ';' | grep "\" | awk -F ':' '{print $1}') ++do ++ test -u $file ++ if [ $? -eq 0 ]; then ++ continue ++ fi ++ ++ if [ -w "$file" ]; then ++ removeRpathOrRunpath $file ++ fi ++done ++ ++exit 0 +diff --git a/macros b/macros +index 36621df..a316be9 100644 +--- a/macros ++++ b/macros +@@ -89,6 +89,7 @@ + + # Build root policy macros. Standard naming: + # convert all '-' in basename to '_', add two leading underscores. ++%__brp_chrpath /usr/lib/rpm/brp-chrpath %{buildroot} + %__brp_ldconfig /usr/lib/rpm/brp-ldconfig + %__brp_compress /usr/lib/rpm/brp-compress + %__brp_strip /usr/lib/rpm/brp-strip %{__strip} +@@ -111,6 +112,7 @@ + + %__spec_install_post\ + %{?__debug_package:%{__debug_install_post}}\ ++ %{?__vendor_delete_rpath:%{?__brp_chrpath}} \ + %{__arch_install_post}\ + %{__os_install_post}\ + %{nil} +-- +2.33.0 + diff --git a/add-loongarch64-support-for-config.guess-and-config.sub.patch b/add-loongarch64-support-for-config.guess-and-config.sub.patch new file mode 100644 index 0000000..9dcec43 --- /dev/null +++ b/add-loongarch64-support-for-config.guess-and-config.sub.patch @@ -0,0 +1,26 @@ +diff --git a/config.guess b/config.guess +index 0ff02d1..1caf3a6 100644 +--- a/config.guess ++++ b/config.guess +@@ -983,6 +983,9 @@ EOF + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; ++ loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; +diff --git a/config.sub b/config.sub +index 6107010..aca1d40 100644 +--- a/config.sub ++++ b/config.sub +@@ -269,6 +269,7 @@ case $basic_machine in + | k1om \ + | le32 | le64 \ + | lm32 \ ++ | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ diff --git a/add-loongarch64-to-generic_arches.patch b/add-loongarch64-to-generic_arches.patch new file mode 100644 index 0000000..5a911c1 --- /dev/null +++ b/add-loongarch64-to-generic_arches.patch @@ -0,0 +1,13 @@ +diff --git a/macros b/macros +index d6b2c80..a66eb2e 100644 +--- a/macros ++++ b/macros +@@ -241,7 +241,7 @@ + %pkg_vcmp() (%{expand:%%{pkg_version_cmp %1 %3}} %2 0) + + #arches macros +-%generic_arches %{ix86} x86_64 %{arm} aarch64 sw_64 ++%generic_arches %{ix86} x86_64 %{arm} aarch64 sw_64 loongarch64 + %ldc_arches %{generic_arches} + %valgrind_arches %{generic_arches} + %nodejs_arches %{generic_arches} diff --git a/add-powerpc64le-and-ppc64le-support.patch b/add-powerpc64le-and-ppc64le-support.patch new file mode 100644 index 0000000..9c0cd9d --- /dev/null +++ b/add-powerpc64le-and-ppc64le-support.patch @@ -0,0 +1,38 @@ +From fc04d33640534f5046210b4cb60fd4c595955781 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E9=82=B9=E9=B9=8F?= +Date: Thu, 22 Feb 2024 14:42:38 +0800 +Subject: [PATCH] add powerpc64le and ppc64le support + +--- + macros | 2 +- + rpmrc | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/macros b/macros +index d241ce3..ddee753 100644 +--- a/macros ++++ b/macros +@@ -241,7 +241,7 @@ + %pkg_vcmp() (%{expand:%%{pkg_version_cmp %1 %3}} %2 0) + + #arches macros +-%generic_arches %{ix86} x86_64 %{arm} aarch64 sw_64 loongarch64 ++%generic_arches %{ix86} x86_64 %{arm} aarch64 sw_64 loongarch64 powerpc64le ppc64le + %ldc_arches %{generic_arches} + %valgrind_arches %{generic_arches} + %nodejs_arches %{generic_arches} +diff --git a/rpmrc b/rpmrc +index 8ba756d..6a29bcb 100644 +--- a/rpmrc ++++ b/rpmrc +@@ -7,6 +7,7 @@ optflags: x86_64 %{__global_compiler_flags} -m64 -mtune=generic -fasynchronous-u + + optflags: aarch64 %{__global_compiler_flags} -fasynchronous-unwind-tables -fstack-clash-protection + optflags: riscv64 %{__global_compiler_flags} -fasynchronous-unwind-tables -fstack-clash-protection ++optflags: ppc64le %{__global_compiler_flags} -fasynchronous-unwind-tables -fstack-clash-protection + + buildarchtranslate: athlon: i686 + buildarchtranslate: geode: i686 +-- +2.33.0 + diff --git a/add-pyproject-macros.patch b/add-pyproject-macros.patch new file mode 100644 index 0000000..c6664c9 --- /dev/null +++ b/add-pyproject-macros.patch @@ -0,0 +1,42 @@ +From b16ce81ae43c1e702beb1351ee9891e3e3f697e6 Mon Sep 17 00:00:00 2001 +From: caodongxia <315816521@qq.com> +Date: Thu, 13 Apr 2023 17:11:53 +0800 +Subject: [PATCH] add pyproject macros + +--- + macros.python | 12 +++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/macros.python b/macros.python +index d504d3f..d5a7a86 100644 +--- a/macros.python ++++ b/macros.python +@@ -28,6 +28,12 @@ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $pyth + sleep 1 + } + ++%pyproject_build() %{expand:\\\ ++ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ ++ %{__python3} -mpip wheel --verbose --progress-bar off --disable-pip-version-check --use-pep517 --no-build-isolation --no-deps --wheel-dir ./build . %{?*} ++ sleep 1 ++} ++ + %py_build_egg() %{expand:\\\ + CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ + %{__python} %{py_setup} %{?py_setup_args} bdist_egg %{?*} +@@ -45,6 +51,12 @@ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $pyth + %{__python} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*} + } + ++%pyproject_install() %{expand:\\\ ++ specifier=$(ls ./build/*.whl | xargs basename --multiple | sed -E 's/([^-]+)-([^-]+)-.+\\\.whl/\\\1==\\\2/') ++ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ ++ %{__python3} -mpip install --verbose --progress-bar off --disable-pip-version-check --root %{buildroot} --no-compile --ignore-installed --no-deps --no-index --find-links ./build $specifier %{?*} ++} ++ + %py_install_egg() %{expand:\\\ + mkdir -p %{buildroot}%{python_sitelib} + easy_install -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python_version}.egg %{?*} +-- +2.23.0 + diff --git a/add-riscv64-to-some-arches-macro.patch b/add-riscv64-to-some-arches-macro.patch new file mode 100644 index 0000000..0dca59b --- /dev/null +++ b/add-riscv64-to-some-arches-macro.patch @@ -0,0 +1,41 @@ +From 7332245a8f59de83485208282f2a15beaf5e544f Mon Sep 17 00:00:00 2001 +From: laokz +Date: Tue, 7 May 2024 10:21:52 +0800 +Subject: [PATCH] add riscv64 to some arches macro + +--- + macros | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/macros b/macros +index ddee753..bf82bc5 100644 +--- a/macros ++++ b/macros +@@ -244,7 +244,7 @@ + %generic_arches %{ix86} x86_64 %{arm} aarch64 sw_64 loongarch64 powerpc64le ppc64le + %ldc_arches %{generic_arches} + %valgrind_arches %{generic_arches} +-%nodejs_arches %{generic_arches} ++%nodejs_arches %{generic_arches} riscv64 + %ldc_arches %{generic_arches} + %mono_arches %{generic_arches} + %fpc_arches %{generic_arches} +@@ -253,11 +253,10 @@ + %GNAT_arches %{GPRbuild_arches} %{generic_arches} + %GPRbuild_arches %{generic_arches} + %nim_arches %{generic_arches} +-%nodejs_arches %{generic_arches} +-%ocaml_native_compiler %{generic_arches} +-%ocaml_natdynlink %{generic_arches} +-%ocaml_native_profiling %{generic_arches} +-%openblas_arches %{generic_arches} ++%ocaml_native_compiler %{generic_arches} riscv64 ++%ocaml_natdynlink %{generic_arches} riscv64 ++%ocaml_native_profiling %{generic_arches} riscv64 ++%openblas_arches %{generic_arches} riscv64 + + #%ldconfig /sbin/ldconfig + %ldconfig_post(n:) %{?ldconfig:%post -p %ldconfig %{?*} %{-n:-n %{-n*}}\ +-- +2.39.2 + diff --git a/add-sw-arch-support.patch b/add-sw-arch-support.patch new file mode 100755 index 0000000..844a22d --- /dev/null +++ b/add-sw-arch-support.patch @@ -0,0 +1,63 @@ +diff -Naur openEuler-rpm-config.org/config.guess openEuler-rpm-config.sw/config.guess +--- openEuler-rpm-config.org/config.guess 2022-09-28 02:14:20.761824000 +0000 ++++ openEuler-rpm-config.sw/config.guess 2022-09-28 02:15:03.761824000 +0000 +@@ -915,6 +915,14 @@ + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; ++ sw_64:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ sw) UNAME_MACHINE=sw_64 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi ++ echo ${UNAME_MACHINE}-sunway-linux-${LIBC} ++ exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; +@@ -1459,4 +1467,4 @@ + # time-stamp-start: "timestamp='" + # time-stamp-format: "%:y-%02m-%02d" + # time-stamp-end: "'" +-# End: +\ No newline at end of file ++# End: +diff -Naur openEuler-rpm-config.org/config.sub openEuler-rpm-config.sw/config.sub +--- openEuler-rpm-config.org/config.sub 2022-09-28 02:14:20.761824000 +0000 ++++ openEuler-rpm-config.sw/config.sub 2022-09-28 02:24:48.291824000 +0000 +@@ -247,6 +247,7 @@ + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | sw_64 \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ +@@ -370,6 +371,7 @@ + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | sw_64-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +@@ -1820,4 +1822,4 @@ + # time-stamp-start: "timestamp='" + # time-stamp-format: "%:y-%02m-%02d" + # time-stamp-end: "'" +-# End: +\ No newline at end of file ++# End: +diff -Naur openEuler-rpm-config.org/macros openEuler-rpm-config.sw/macros +--- openEuler-rpm-config.org/macros 2022-09-28 02:14:20.761824000 +0000 ++++ openEuler-rpm-config.sw/macros 2022-09-28 02:15:49.081824000 +0000 +@@ -225,7 +225,7 @@ + %pkg_vcmp() (%{expand:%%{pkg_version_cmp %1 %3}} %2 0) + + #arches macros +-%generic_arches %{ix86} x86_64 %{arm} aarch64 ++%generic_arches %{ix86} x86_64 %{arm} aarch64 sw_64 + %ldc_arches %{generic_arches} + %valgrind_arches %{generic_arches} + %nodejs_arches %{generic_arches} diff --git a/backport-kmp-feature.patch b/backport-kmp-feature.patch new file mode 100644 index 0000000..6525efb --- /dev/null +++ b/backport-kmp-feature.patch @@ -0,0 +1,485 @@ +From 3e65c85831be0b8f8e1cd43869b4991a76e14d9b Mon Sep 17 00:00:00 2001 +From: Yang Yanchao +Date: Fri, 17 Mar 2023 01:09:09 +0000 +Subject: [PATCH] backport kmp feature + +Signed-off-by: Yang Yanchao +Signed-off-by: Xinliang Liu +--- + kmodtool | 281 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + kmodtool.py | 83 --------------- + macros.kmp | 85 ++++++++++++---- + 3 files changed, 350 insertions(+), 105 deletions(-) + create mode 100644 kmodtool + delete mode 100644 kmodtool.py + +diff --git a/kmodtool b/kmodtool +new file mode 100644 +index 0000000..427d1df +--- /dev/null ++++ b/kmodtool +@@ -0,0 +1,281 @@ ++#!/usr/bin/bash ++ ++# kmodtool - Helper script for building kernel module RPMs ++# Copyright (c) 2003-2006 Ville Skyttä , ++# Thorsten Leemhuis ++# Jon Masters ++# ++# Permission is hereby granted, free of charge, to any person obtaining ++# a copy of this software and associated documentation files (the ++# "Software"), to deal in the Software without restriction, including ++# without limitation the rights to use, copy, modify, merge, publish, ++# distribute, sublicense, and/or sell copies of the Software, and to ++# permit persons to whom the Software is furnished to do so, subject to ++# the following conditions: ++# ++# The above copyright notice and this permission notice shall be ++# included in all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ++# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++shopt -s extglob ++ ++myprog="kmodtool" ++myver="0.10.10_kmp2" ++knownvariants=@(BOOT|PAE|@(big|huge)mem|debug|enterprise|kdump|?(large)smp|uml|xen[0U]?(-PAE)|xen) ++kmod_name= ++kver= ++verrel= ++variant= ++kmp= ++ ++get_verrel () ++{ ++ verrel=${1:-$(uname -r)} ++ verrel=${verrel%%$knownvariants} ++} ++ ++print_verrel () ++{ ++ get_verrel $@ ++ echo "${verrel}" ++} ++ ++get_variant () ++{ ++ get_verrel $@ ++ variant=${1:-$(uname -r)} ++ variant=${variant##$verrel} ++ variant=${variant:-'""'} ++} ++ ++print_variant () ++{ ++ get_variant $@ ++ echo "${variant}" ++} ++ ++get_filelist() { ++ local IFS=$'\n' ++ filelist=($(cat)) ++ ++ if [ ${#filelist[@]} -gt 0 ]; ++ then ++ for ((n = 0; n < ${#filelist[@]}; n++)); ++ do ++ line="${filelist[n]}" ++ line=$(echo "$line" \ ++ | sed -e "s/%verrel/$verrel/g" \ ++ | sed -e "s/%variant/$variant/g" \ ++ | sed -e "s/%dashvariant/$dashvariant/g" \ ++ | sed -e "s/%dotvariant/$dotvariant/g" \ ++ | sed -e "s/\.%1/$dotvariant/g" \ ++ | sed -e "s/\-%1/$dotvariant/g" \ ++ | sed -e "s/%2/$verrel/g") ++ echo "$line" ++ done ++ else ++ echo "%defattr(644,root,root,755)" ++ echo "/lib/modules/${verrel}${dotvariant}" ++ fi ++} ++ ++get_rpmtemplate () ++{ ++ local variant="${1}" ++ local dashvariant="${variant:+-${variant}}" ++ case "$verrel" in ++ *.el*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;; ++ *.EL*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;; ++ *) kdep="kernel-%{_target_cpu} = ${verrel}${variant}" ;; ++ esac ++ ++ echo "%package -n kmod-${kmod_name}${dashvariant}" ++ ++ if [ -z "$kmp_provides_summary" ]; then ++ echo "Summary: ${kmod_name} kernel module(s)" ++ fi ++ ++ if [ -z "$kmp_provides_group" ]; then ++ echo "Group: System Environment/Kernel" ++ fi ++ ++ if [ ! -z "$kmp_version" ]; then ++ echo "Version: %{kmp_version}" ++ fi ++ ++ if [ ! -z "$kmp_release" ]; then ++ echo "Release: %{kmp_release}" ++ fi ++ ++ cat <= %{?epoch:%{epoch}:}%{version} ++# ++ ++ cat < /dev/null || : ++fi ++EOF ++ ++ if [ ! -z "$kmp" ]; then ++ cat < /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules ++EOF ++ ++ fi ++ ++ cat < /dev/null || : ++EOF ++ ++ if [ ! -z "$kmp" ]; then ++ cat <&2 ++ exit 2 ++ elif [ -z "${kver}" ] ; then ++ echo "Please provide the kver as second parameter." >&2 ++ exit 2 ++ elif [ -z "${verrel}" ] ; then ++ echo "Couldn't find out the verrel." >&2 ++ exit 2 ++ fi ++ ++ for variant in "$@" ; do ++ if [ "default" == "$variant" ]; ++ then ++ get_rpmtemplate "" ++ else ++ get_rpmtemplate "${variant}" ++ fi ++ done ++} ++ ++usage () ++{ ++ cat <