diff options
author | CoprDistGit <infra@openeuler.org> | 2023-09-15 16:14:57 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-09-15 16:14:57 +0000 |
commit | 59c3dc9003e30d97ade19e415a088a17fb1910d3 (patch) | |
tree | c3ee82bb58a005321f9ed9184003d6f889c9e73c | |
parent | 2398782a1512e7b4032560abf06c28e6a5d61f41 (diff) |
automatic import of openEuler-rpm-configopeneuler23.03openeuler20.03
24 files changed, 2206 insertions, 0 deletions
@@ -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 <whoisxxx@126.com> +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 <zhangwenlong@loongson.cn> +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/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 <luhuaxin1@huawei.com> +Date: Mon, 12 Dec 2022 00:16:01 +0800 +Subject: [PATCH] support EBS sign for IMA digest list + +Signed-off-by: Huaxin Lu <luhuaxin1@huawei.com> +--- + 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<NF;i++){if($i~"'$2'"){print $(i+1)}}}' | sed 's/\"//g' ++} ++ ++file="$1" ++file_base64="$(base64 -w0 $file)" ++file_md5="$(md5sum $file | awk '{printf $1}')" ++json="{\"$POST_KEY_BASE64\":\"$file_base64\", \"$POST_KEY_MD5\":\"$file_md5\"}" ++ ++req="$(curl -X POST "$PUBLISHER_ADDR" -H 'Content-Type: application/json' -d "$json")" ++[ $? -eq 0 ] || { echo "Fail to post sign service, REQ="; echo "req"; exit 1; } ++ ++sig_base64=$(get_json_value "$req" "$REQ_KEY_BASE64") ++[ $? -eq 0 ] || { echo "Fail to parser $REQ_KEY_BASE64"; exit 1; } ++echo -e "$sig_base64" | base64 -d > $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 <roberto.sassu@huawei.com> +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 <miro@hroncok.cz> +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 <liuyuntao10@huawei.com> +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..7c52c4d --- /dev/null +++ b/add-brp-scripts-to-delete-rpath.patch @@ -0,0 +1,143 @@ +From 9648228a3f64de46dd7fbb26e2df429352de17e1 Mon Sep 17 00:00:00 2001 +From: yangmingtaip <yangmingtai@huawei.com> +Date: Sat, 4 Sep 2021 14:14:54 +0800 +Subject: [PATCH] add brp scripts to delete rpath + +--- + brp-chrpath | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + macros | 2 + + 2 files changed, 105 insertions(+) + create mode 100755 brp-chrpath + +diff --git a/brp-chrpath b/brp-chrpath +new file mode 100755 +index 0000000..6dd37de +--- /dev/null ++++ b/brp-chrpath +@@ -0,0 +1,103 @@ ++#!/usr/bin/sh ++# remove rpath specified ++ ++rpathSuffix=( ++ "/home/abuild/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 "\<ELF\>" | 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 7cde63f..ee0c126 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} +@@ -107,6 +108,7 @@ + %{?__brp_strip_static_archive} \ + %{?py_auto_byte_compile:%{?__brp_python_bytecompile}} \ + %{?__brp_python_hardlink} \ ++ %{?__vendor_delete_rpath:%{?__brp_chrpath}} \ + %{nil} + + %__spec_install_post\ +-- +2.23.0 + diff --git a/add-common-script.patch b/add-common-script.patch new file mode 100644 index 0000000..bb7892e --- /dev/null +++ b/add-common-script.patch @@ -0,0 +1,313 @@ +From 4db504b19f6dd04a44e46b43b3aff4e6cab9214d Mon Sep 17 00:00:00 2001 +From: wangkerong <wangkerong@huawei.com> +Date: Wed, 13 Oct 2021 10:04:33 +0800 +Subject: [PATCH] add_commom_script + +--- + common.lua | 294 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 294 insertions(+) + create mode 100644 common.lua + +diff --git a/common.lua b/common.lua +new file mode 100644 +index 0000000..884ee4d +--- /dev/null ++++ b/common.lua +@@ -0,0 +1,294 @@ ++-- Convenience Lua functions that can be used within rpm macros ++ ++-- Reads an rpm variable. Unlike a basic rpm.expand("{?foo}"), returns nil if ++-- the variable is unset, which is convenient in lua tests and enables ++-- differentiating unset variables from variables set to "" ++local function read(rpmvar) ++ if not rpmvar or ++ (rpm.expand("%{" .. rpmvar .. "}") == "%{" .. rpmvar .. "}") then ++ return nil ++ else ++ return rpm.expand("%{?" .. rpmvar .. "}") ++ end ++end ++ ++-- Returns true if the macro that called this function had flag set ++-- – for example, hasflag("z") would give the following results: ++-- %foo -z bar → true ++-- %foo -z → true ++-- %foo → false ++local function hasflag(flag) ++ return (rpm.expand("%{-" .. flag .. "}") ~= "") ++end ++ ++-- Returns the argument passed to flag in the macro that called this function ++-- – for example, readflag("z") would give the following results: ++-- %foo -z bar → bar ++-- %foo → nil ++-- %foo -z "" → empty string ++-- %foo -z '' → empty string ++local function readflag(flag) ++ if not hasflag(flag) then ++ return nil ++ else ++ local a = rpm.expand("%{-" .. flag .. "*}") ++ -- Handle "" and '' as empty strings ++ if (a == '""') or (a == "''") then ++ a = '' ++ end ++ return a ++ end ++end ++ ++-- Sets a spec variable; echoes the result if verbose ++local function explicitset(rpmvar, value, verbose) ++ local value = value ++ if (value == nil) or (value == "") then ++ value = "%{nil}" ++ end ++ rpm.define(rpmvar .. " " .. value) ++ if verbose then ++ rpm.expand("%{warn:Setting %%{" .. rpmvar .. "} = " .. value .. "}") ++ end ++end ++ ++-- Unsets a spec variable if it is defined; echoes the result if verbose ++local function explicitunset(rpmvar, verbose) ++ if (rpm.expand("%{" .. rpmvar .. "}") ~= "%{" .. rpmvar .. "}") then ++ rpm.define(rpmvar .. " %{nil}") ++ if verbose then ++ rpm.expand("%{warn:Unsetting %%{" .. rpmvar .. "}}") ++ end ++ end ++end ++ ++-- Sets a spec variable, if not already set; echoes the result if verbose ++local function safeset(rpmvar, value, verbose) ++ if (rpm.expand("%{" .. rpmvar .. "}") == "%{" .. rpmvar .. "}") then ++ explicitset(rpmvar,value,verbose) ++ end ++end ++ ++-- Aliases a list of rpm variables to the same variables suffixed with 0 (and ++-- vice versa); echoes the result if verbose ++local function zalias(rpmvars, verbose) ++ for _, sfx in ipairs({{"","0"},{"0",""}}) do ++ for _, rpmvar in ipairs(rpmvars) do ++ local toalias = "%{?" .. rpmvar .. sfx[1] .. "}" ++ if (rpm.expand(toalias) ~= "") then ++ safeset(rpmvar .. sfx[2], toalias, verbose) ++ end ++ end ++ end ++end ++ ++-- Takes a list of rpm variable roots and a suffix and alias current<root> to ++-- <root><suffix> if it resolves to something not empty ++local function setcurrent(rpmvars, suffix, verbose) ++ for _, rpmvar in ipairs(rpmvars) do ++ if (rpm.expand("%{?" .. rpmvar .. suffix .. "}") ~= "") then ++ explicitset( "current" .. rpmvar, "%{" .. rpmvar .. suffix .. "}", verbose) ++ else ++ explicitunset("current" .. rpmvar, verbose) ++ end ++ end ++end ++ ++-- Echo the list of rpm variables, with suffix, if set ++local function echovars(rpmvars, suffix) ++ for _, rpmvar in ipairs(rpmvars) do ++ rpmvar = rpmvar .. suffix ++ local header = string.sub(" " .. rpmvar .. ": ",1,21) ++ rpm.expand("%{?" .. rpmvar .. ":%{echo:" .. header .. "%{?" .. rpmvar .. "}}}") ++ end ++end ++ ++-- Returns an array, indexed by suffix, containing the non-empy values of ++-- <rpmvar><suffix>, with suffix an integer string or the empty string ++local function getsuffixed(rpmvar) ++ local suffixes = {} ++ zalias({rpmvar}) ++ for suffix=0,9999 do ++ local value = rpm.expand("%{?" .. rpmvar .. suffix .. "}") ++ if (value ~= "") then ++ suffixes[tostring(suffix)] = value ++ end ++ end ++ -- rpm convention is to alias no suffix to zero suffix ++ -- only add no suffix if zero suffix is different ++ local value = rpm.expand("%{?" .. rpmvar .. "}") ++ if (value ~= "") and (value ~= suffixes["0"]) then ++ suffixes[""] = value ++ end ++ return suffixes ++end ++ ++-- Returns the list of suffixes, including the empty string, for which ++-- <rpmvar><suffix> is set to a non empty value ++local function getsuffixes(rpmvar) ++ suffixes = {} ++ for suffix in pairs(getsuffixed(rpmvar)) do ++ table.insert(suffixes,suffix) ++ end ++ table.sort(suffixes, ++ function(a,b) return (tonumber(a) or 0) < (tonumber(b) or 0) end) ++ return suffixes ++end ++ ++-- Returns the suffix for which <rpmvar><suffix> has a non-empty value that ++-- matches best the beginning of the value string ++local function getbestsuffix(rpmvar, value) ++ local best = nil ++ local currentmatch = "" ++ for suffix, setvalue in pairs(getsuffixed(rpmvar)) do ++ if (string.len(setvalue) > string.len(currentmatch)) and ++ (string.find(value, "^" .. setvalue)) then ++ currentmatch = setvalue ++ best = suffix ++ end ++ end ++ return best ++end ++ ++-- %writevars core ++local function writevars(macrofile, rpmvars) ++ for _, rpmvar in ipairs(rpmvars) do ++ print("sed -i 's\029" .. string.upper("@@" .. rpmvar .. "@@") .. ++ "\029" .. rpm.expand( "%{" .. rpmvar .. "}" ) .. ++ "\029g' " .. macrofile .. "\n") ++ end ++end ++ ++-- https://github.com/rpm-software-management/rpm/issues/566 ++-- Reformat a text intended to be used used in a package description, removing ++-- rpm macro generation artefacts. ++-- – remove leading and ending empty lines ++-- – trim intermediary empty lines to a single line ++-- – fold on spaces ++-- Should really be a %%{wordwrap:…} verb ++local function wordwrap(text) ++ text = rpm.expand(text .. "\n") ++ text = string.gsub(text, "\t", " ") ++ text = string.gsub(text, "\r", "\n") ++ text = string.gsub(text, " +\n", "\n") ++ text = string.gsub(text, "\n+\n", "\n\n") ++ text = string.gsub(text, "^\n", "") ++ text = string.gsub(text, "\n( *)[-*—][ ]+", "\n%1– ") ++ output = "" ++ for line in string.gmatch(text, "[^\n]*\n") do ++ local pos = 0 ++ local advance = "" ++ for word in string.gmatch(line, "%s*[^%s]*\n?") do ++ local wl, bad = utf8.len(word) ++ if not wl then ++ print("%{warn:Invalid UTF-8 sequence detected in:}" .. ++ "%{warn:" .. word .. "}" .. ++ "%{warn:It may produce unexpected results.}") ++ wl = bad ++ end ++ if (pos == 0) then ++ advance, n = string.gsub(word, "^(%s*– ).*", "%1") ++ if (n == 0) then ++ advance = string.gsub(word, "^(%s*).*", "%1") ++ end ++ advance = string.gsub(advance, "– ", " ") ++ pos = pos + wl ++ elseif (pos + wl < 81) or ++ ((pos + wl == 81) and string.match(word, "\n$")) then ++ pos = pos + wl ++ else ++ word = advance .. string.gsub(word, "^%s*", "") ++ output = output .. "\n" ++ pos = utf8.len(word) ++ end ++ output = output .. word ++ if pos > 80 then ++ pos = 0 ++ if not string.match(word, "\n$") then ++ output = output .. "\n" ++ end ++ end ++ end ++ end ++ output = string.gsub(output, "\n*$", "\n") ++ return output ++end ++ ++-- Because rpmbuild will fail if a subpackage is declared before the source ++-- package itself, provide a source package declaration shell as fallback. ++local function srcpkg(verbose) ++ if verbose then ++ rpm.expand([[ ++%{echo:Creating a header for the SRPM from %%{source_name}, %%{source_summary} and} ++%{echo:%%{source_description}. If that is not the intended result, please declare the} ++%{echo:SRPM header and set %%{source_name} in your spec file before calling a macro} ++%{echo:that creates other package headers.} ++]]) ++ end ++ print(rpm.expand([[ ++Name: %{source_name} ++Summary: %{source_summary} ++%description ++%wordwrap -v source_description ++]])) ++ explicitset("currentname", "%{source_name}", verbose) ++end ++ ++-- %new_package core ++local function new_package(source_name, pkg_name, name_suffix, first, verbose) ++ -- Safety net when the wrapper is used in conjunction with traditional syntax ++ if (not first) and (not source_name) then ++ rpm.expand([[ ++%{warn:Something already set a package name. However, %%{source_name} is not set.} ++%{warn:Please set %%{source_name} to the SRPM name to ensure reliable processing.} ++]]) ++ if name_suffix then ++ print(rpm.expand("%package " .. name_suffix)) ++ else ++ print(rpm.expand("%package -n " .. pkg_name)) ++ end ++ return ++ end ++ -- New processing ++ if not (pkg_name or name_suffix or source_name) then ++ rpm.expand([[ ++%{error:You need to set %%{source_name} or provide explicit package naming!} ++]]) ++ end ++ if name_suffix then ++ print(rpm.expand("%package " .. name_suffix)) ++ explicitset("currentname", "%{source_name}-" .. name_suffix, verbose) ++ else ++ if not source_name then ++ source_name = pkg_name ++ end ++ if (pkg_name == source_name) then ++ safeset("source_name", source_name, verbose) ++ print(rpm.expand("Name: %{source_name}")) ++ else ++ if source_name and first then ++ srcpkg(verbose) ++ end ++ print(rpm.expand("%package -n " .. pkg_name)) ++ end ++ explicitset("currentname", pkg_name, verbose) ++ end ++end ++ ++return { ++ read = read, ++ hasflag = hasflag, ++ readflag = readflag, ++ explicitset = explicitset, ++ explicitunset = explicitunset, ++ safeset = safeset, ++ zalias = zalias, ++ setcurrent = setcurrent, ++ echovars = echovars, ++ getsuffixed = getsuffixed, ++ getsuffixes = getsuffixes, ++ getbestsuffix = getbestsuffix, ++ writevars = writevars, ++ wordwrap = wordwrap, ++ new_package = new_package, ++} +-- +2.27.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..acc2f83 --- /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 463631a..2985f85 100644 +--- a/config.guess ++++ b/config.guess +@@ -975,6 +975,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 39dbf60..39870d3 100644 +--- a/config.sub ++++ b/config.sub +@@ -268,6 +268,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..cf3dc63 --- /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 ++%generic_arches %{ix86} x86_64 %{arm} aarch64 loongarch64 + %ldc_arches %{generic_arches} + %valgrind_arches %{generic_arches} + %nodejs_arches %{generic_arches} 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-pytest-and-tox-macros.patch b/add-pytest-and-tox-macros.patch new file mode 100644 index 0000000..b76444e --- /dev/null +++ b/add-pytest-and-tox-macros.patch @@ -0,0 +1,42 @@ +From 2f7b74e83fc52d326d5db7de2bcfab2c8d921f29 Mon Sep 17 00:00:00 2001 +From: desert-sailor <dxwangk@isoftstone.com> +Date: Mon, 24 Jul 2023 11:36:52 +0800 +Subject: [PATCH] add pytest and tox macros + +--- + macros.python | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/macros.python b/macros.python +index 1cc6e70..334c0ab 100644 +--- a/macros.python ++++ b/macros.python +@@ -304,3 +304,25 @@ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $pyth + %python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib())") + %python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))") + %python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])") ++ ++# New python test macros ++%pytest() %{expand:\\\ ++CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}" \\ ++PATH="%{buildroot}%{_bindir}:$PATH" \\ ++PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}" \\ ++PYTHONDONTWRITEBYTECODE=1 \\ ++%{?__pytest_addopts:PYTEST_ADDOPTS="${PYTEST_ADDOPTS:-} %{__pytest_addopts}"} \\ ++PYTEST_XDIST_AUTO_NUM_WORKERS=%{_smp_build_ncpus} \\ ++%{_bindir}/pytest %{?*} ++} ++ ++%tox() %{expand:\\\ ++TOX_TESTENV_PASSENV="${TOX_TESTENV_PASSENV:-*}" \\ ++CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}" \\ ++PATH="%{buildroot}%{_bindir}:$PATH" \\ ++PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}" \\ ++PYTHONDONTWRITEBYTECODE=1 \\ ++%{?__pytest_addopts:PYTEST_ADDOPTS="${PYTEST_ADDOPTS:-} %{__pytest_addopts}"} \\ ++PYTEST_XDIST_AUTO_NUM_WORKERS=%{_smp_build_ncpus} \\ ++%{__python3} -m tox -e py%{python3_version_nodots} --current-env %{?*} ++} +-- +2.33.0 + diff --git a/backport-kmp-feature.patch b/backport-kmp-feature.patch new file mode 100644 index 0000000..a80029d --- /dev/null +++ b/backport-kmp-feature.patch @@ -0,0 +1,490 @@ +From 3e65c85831be0b8f8e1cd43869b4991a76e14d9b Mon Sep 17 00:00:00 2001 +From: Yang Yanchao <yangyanchao6@huawei.com> +Date: Fri, 17 Mar 2023 01:09:09 +0000 +Subject: [PATCH] backport kmp feature + +Signed-off-by: Yang Yanchao <yangyanchao6@huawei.com> +Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> +--- + kmodtool | 287 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 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,287 @@ ++#!/usr/bin/bash ++ ++# kmodtool - Helper script for building kernel module RPMs ++# Copyright (c) 2003-2006 Ville Skyttä <ville.skytta@iki.fi>, ++# Thorsten Leemhuis <fedora@leemhuis.info> ++# Jon Masters <jcm@redhat.com> ++# ++# 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 <<EOF ++Provides: kernel-modules = ${verrel}${variant} ++Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release} ++EOF ++ ++ if [ -z "$kmp" ]; then ++ echo "Requires: ${kdep}" ++ fi ++ ++# ++# RHEL5 - Remove common package requirement on general kmod packages. ++# Requires: ${kmod_name}-kmod-common >= %{?epoch:%{epoch}:}%{version} ++# ++ ++ cat <<EOF ++Requires(post): /usr/sbin/depmod ++Requires(postun): /usr/sbin/depmod ++EOF ++ ++#if [ "no" != "$kmp_nobuildreqs" ] ++#then ++ # echo "BuildRequires: kernel${dashvariant}-devel-%{_target_cpu} = ${verrel}" ++#fi ++ ++if [ "" != "$kmp_override_preamble" ] ++then ++ cat "$kmp_override_preamble" ++fi ++ ++cat <<EOF ++%description -n kmod-${kmod_name}${dashvariant} ++This package provides the ${kmod_name} kernel modules built for the Linux ++kernel ${verrel}${variant} for the %{_target_cpu} family of processors. ++%post -n kmod-${kmod_name}${dashvariant} ++if [ -e "/boot/System.map-${verrel}${variant}" ]; then ++ /sbin/depmod -aeF "/boot/System.map-${verrel}${variant}" "${verrel}${variant}" > /dev/null || : ++fi ++EOF ++ ++ if [ ! -z "$kmp" ]; then ++ cat <<EOF ++ ++modules=( \$(find /lib/modules/${verrel}${variant}/extra/${kmod_name} | grep '\.ko$') ) ++if [ -x "/sbin/weak-modules" ]; then ++ printf '%s\n' "\${modules[@]}" \ ++ | /sbin/weak-modules --add-modules ++fi ++%preun -n kmod-${kmod_name}${dashvariant} ++rpm -ql kmod-${kmod_name}${dashvariant} | grep '\.ko$' \ ++ > /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules ++EOF ++ ++ fi ++ ++ cat <<EOF ++%postun -n kmod-${kmod_name}${dashvariant} ++/sbin/depmod -aF /boot/System.map-${verrel}${variant} ${verrel}${variant} &> /dev/null || : ++EOF ++ ++ if [ ! -z "$kmp" ]; then ++ cat <<EOF ++modules=( \$(cat /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules) ) ++#rm /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules ++if [ -x "/sbin/weak-modules" ]; then ++ printf '%s\n' "\${modules[@]}" \ ++ | /sbin/weak-modules --remove-modules ++fi ++EOF ++ fi ++ ++echo "%files -n kmod-${kmod_name}${dashvariant}" ++if [ "" == "$kmp_override_filelist" ]; ++then ++ echo "%defattr(644,root,root,755)" ++ echo "/lib/modules/${verrel}${variant}/" ++else ++ cat "$kmp_override_filelist" | get_filelist ++fi ++} ++ ++print_rpmtemplate () ++{ ++ kmod_name="${1}" ++ shift ++ kver="${1}" ++ get_verrel "${1}" ++ shift ++ if [ -z "${kmod_name}" ] ; then ++ echo "Please provide the kmodule-name as first parameter." >&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 <<EOF ++You called: ${invocation} ++ ++Usage: ${myprog} <command> <option>+ ++ Commands: ++ verrel <uname> ++ - Get "base" version-release. ++ variant <uname> ++ - Get variant from uname. ++ rpmtemplate <mainpgkname> <uname> <variants> ++ - Return a template for use in a source RPM ++ rpmtemplate_kmp <mainpgkname> <uname> <variants> ++ - Return a template for use in a source RPM with KMP dependencies ++ version ++ - Output version number and exit. ++EOF ++} ++ ++invocation="$(basename ${0}) $@" ++while [ "${1}" ] ; do ++ case "${1}" in ++ verrel) ++ shift ++ print_verrel $@ ++ exit $? ++ ;; ++ variant) ++ shift ++ print_variant $@ ++ exit $? ++ ;; ++ rpmtemplate) ++ shift ++ print_rpmtemplate "$@" ++ exit $? ++ ;; ++ rpmtemplate_kmp) ++ shift ++ kmp=1 ++ print_rpmtemplate "$@" ++ exit $? ++ ;; ++ version) ++ echo "${myprog} ${myver}" ++ exit 0 ++ ;; ++ *) ++ echo "Error: Unknown option '${1}'." >&2 ++ usage >&2 ++ exit 2 ++ ;; ++ esac ++done ++ ++# Local variables: ++# mode: sh ++# sh-indentation: 2 ++# indent-tabs-mode: nil ++# End: ++# ex: ts=2 sw=2 et ++ +diff --git a/kmodtool.py b/kmodtool.py +deleted file mode 100644 +index 75492b9..0000000 +--- a/kmodtool.py ++++ /dev/null +@@ -1,83 +0,0 @@ +-# -*- coding: UTF-8 -*-
+-#!/usr/bin/python3
+-
+-# kmodtool - Helper script for building kernel module RPMs
+-
+-import os,subprocess,sys
+-
+-def print_verrel ():
+- #verrel=subprocess.getoutput("(rpm -q --qf '%{VERSION}-%{RELEASE}' `rpm -q kernel-devel` | head -n 1)")
+- # if (len(verrel)== 0):
+- verrel=subprocess.getoutput("uname -r")
+- return verrel
+-
+-def print_rpmtemplate():
+- kmod_name = sys.argv[2]
+- # verrel=subprocess.getoutput("(rpm -q --qf '%{VERSION}-%{RELEASE}' `rpm -q kernel-devel` | head -n 1)")
+- # if (len(verrel)== 0):
+- verrel=subprocess.getoutput("uname -r")
+-
+- if not kmod_name:
+- print("Please provide the kmodule-name as first parameter.")
+- exit()
+- get_rpmtemplate(kmod_name,verrel)
+-
+-
+-def get_rpmtemplate(kmod_name,verrel):
+- print("%package -n kmod-" + kmod_name)
+- print("Summary: " + kmod_name + " " + "kernel module(s)")
+- print("Group: System Environment/Kernel")
+- if "%{version}":
+- print("Version: %{version}")
+- if "%{release}":
+- print("Release: %{release}")
+- print("Provides: kernel-modules =" + " " + verrel)
+- print("Provides: "+ kmod_name + "-kmod = %{?epoch:%{epoch}:}%{version}-%{release}")
+- print("Requires(post): /usr/sbin/depmod")
+- print("Requires(postun): /usr/sbin/depmod")
+- print("%description -n kmod-" + kmod_name)
+- print("This package provides the " + kmod_name + " kernel modules built for the Linux")
+- print("kernel "+ verrel + " for the %{_target_cpu} family of processors.")
+- print("%post -n kmod-" + kmod_name)
+- print("if [ -e /boot/System.map-" + verrel + " ]; then")
+- print(" /sbin/depmod -aeF /boot/System.map-" + verrel +" " + verrel +"> /dev/null || :")
+- print("fi")
+- if (kmp !=""):
+- print("modules=( $(find /lib/modules/" + verrel + "/extra/" + kmod_name + ") )")
+- print("""if [ -x "/sbin/weak-modules" ]; then
+- printf '%s\\n' "${modules[@]}" | /sbin/weak-modules --add-modules
+-fi""")
+- print("%preun -n kmod-" + kmod_name)
+- print("rpm -ql kmod-" + kmod_name + "| grep '\.ko$' > /var/run/rpm-kmod-" + kmod_name +"-modules")
+-
+- print("%postun -n kmod-" + kmod_name)
+- print("/sbin/depmod -aF /boot/System.map-" + verrel+" " + verrel + " &> /dev/null || :")
+-
+- if (kmp !=""):
+- print("modules=( $(cat /var/run/rpm-kmod-" + kmod_name + "-modules) )")
+- print("#rm /var/run/rpm-kmod-" + kmod_name + "-modules")
+- print("""if [ -x "/sbin/weak-modules" ]; then
+- printf '%s\\n' "${modules[@]}" | /sbin/weak-modules --remove-modules
+-fi""")
+-
+- print("%files -n kmod-" + kmod_name)
+- kmp_override_filelist= sys.argv[3]
+- if kmp_override_filelist == '%filelist':
+- print("%defattr(644,root,root,755)")
+- print("/lib/modules/" + verrel)
+- print("/lib/firmware/")
+- else:
+- with open(kmp_override_filelist) as f:
+- for line in f:
+- print(line, end = '')
+-
+-#for i in range(len(sys.argv)):
+-if (sys.argv[1] == "verrel"):
+- print_verrel()
+-if (sys.argv[1] == "rpmtemplate_kmp"):
+- kmp=1
+- print_rpmtemplate()
+-else:
+- print("Error: Unknown option 'sys.argv[i]'.")
+- exit()
+-
+diff --git a/macros.kmp b/macros.kmp +index d46aa04..8440e26 100644 +--- a/macros.kmp ++++ b/macros.kmp +@@ -1,22 +1,63 @@ +-# 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 ]
+-# [ -f filelist][-p preamble]
+-#
+-
+-%kernel_module_package_buildreqs %global kmodtool_generate_buildreqs 1 \
+- kernel-devel
+-
+-%kernel_module_package(n:v:r:f:p) %{expand:%( \
+- %define kmodtool /usr/lib/rpm/__vendor/kmodtool.py\
+- %define latest_kernel $(rpm -q --qf '%{VERSION}-%{RELEASE}\\\\n' `rpm -q kernel-devel` | head -n 1) \
+- %{!?kernel_version:%{expand:%%global kernel_version %{latest_kernel}}} \
+- %global kverrel %(%{kmodtool} verrel %{?kernel_version} 2>/dev/null) \
+- python3 %{kmodtool} rpmtemplate_kmp %{-n*}%{!-n:%name} %{kverrel} %{-f*}%{!-f:%filelist} %{-p*}%{!-p:%preamble} \
+-)}
+-
++# Use these macros to differentiate between __vendor and other KMP implementation(s). ++ ++kernel_module_package_release 1 ++ ++%__find_provides /usr/lib/rpm/find-provides ++%__find_requires /usr/lib/rpm/__vendor/find-requires ++ ++#kernel_module_package [ -n name ] [ -v version ] [ -r release ] [ -s script ] ++# [ -f filelist] [ -x ] [ -p preamble ] flavor flavor ... ++ ++%kernel_module_package_buildreqs %global kmodtool_generate_buildreqs 1 \ ++ kernel-devel ++ ++%kernel_module_package(n:v:r:s:f:xp:) %{expand:%( \ ++ %define kmodtool %{-s*}%{!-s:/usr/lib/rpm/__vendor/kmodtool} \ ++ %define kmp_version %{-v*}%{!-v:%{version}} \ ++ %define kmp_release %{-r*}%{!-r:%{release}} \ ++ %define latest_kernel %(rpm -q --qf '%%{VERSION}-%%{RELEASE}.%%{ARCH}\\\\n' `rpm -q kernel-devel | head -n 1` | head -n 1) \ ++ %{!?kernel_version:%{expand:%%global kernel_version %{latest_kernel}}} \ ++ %global kverrel %(%kmodtool verrel %{?kernel_version} 2>/dev/null) \ ++ flavors="default" \ ++ if [ "i686" == "%{_target_cpu}" ] || [ "x86_64" == "%{_target_cpu}" ] \ ++ then \ ++ xenver=$(rpm -q kernel-xen-devel-%{kverrel}|head -n 1)\ ++ kdver=$(rpm -q kernel-kdump-devel-%{kverrel}|head -n 1)\ ++ if [ "kernel-xen-devel-%{kverrel}" == "$xenver" ] \ ++ then \ ++ flavors="$flavors xen" \ ++ fi \ ++ if [ "kernel-kdump-devel-%{kverrel}" == "$kdver" ] \ ++ then \ ++ flavors="$flavors kdump" \ ++ fi \ ++ fi \ ++ if [ -z "%*" ]; then \ ++ flavors_to_build=$flavors \ ++ elif [ -z "%{-x}" ]; then \ ++ flavors_to_build="%*" \ ++ else \ ++ flavors_to_build=" $flavors "\ ++ echo "[$flavors_to_build]" >/tmp/tmp.txt ++ for i in %* \ ++ do \ ++ flavors_to_build=${flavors_to_build//$i /} ++ done \ ++ fi \ ++ echo "%%global flavors_to_build ${flavors_to_build:-%%nil}" \ ++ echo "%%global kernel_source() /usr/src/kernels/%kverrel\\\$([ %%%%{1} = default ] || echo "%%%%{1}.")" \ ++ if [ ! -z "%{-f*}" ] \ ++ then \ ++ filelist="%{-f*}" \ ++ fi \ ++ if [ ! -z "%{-p*}" ] \ ++ then \ ++ preamble="%{-p*}" \ ++ fi \ ++ nobuildreqs="yes" \ ++ if [ "x%{kmodtool_generate_buildreqs}" != "x1" ] \ ++ then \ ++ nobuildreqs="no" \ ++ fi \ ++ kmp_override_filelist="$filelist" kmp_override_preamble="$preamble" kmp_nobuildreqs="$nobuildreqs" %{kmodtool} rpmtemplate_kmp %{-n*}%{!-n:%name} %{kverrel} $flavors_to_build 2>/dev/null \ ++)} +-- +2.33.0 + diff --git a/change-the-vendor-to-generic-for-common-use.patch b/change-the-vendor-to-generic-for-common-use.patch new file mode 100644 index 0000000..6da802d --- /dev/null +++ b/change-the-vendor-to-generic-for-common-use.patch @@ -0,0 +1,109 @@ +From e9f486a8d9af5b01dcadf8432a449e434cd6886b Mon Sep 17 00:00:00 2001 +From: Yangyang Shen <shenyangyang4@huawei.com> +Date: Sat, 27 Mar 2021 14:18:56 +0800 +Subject: [PATCH] change the vendor to generic for common use + +--- + openEuler-hardened-cc1 => generic-hardened-cc1 | 0 + openEuler-hardened-ld => generic-hardened-ld | 0 + openEuler-pie-cc1 => generic-pie-cc1 | 0 + openEuler-pie-ld => generic-pie-ld | 0 + macros | 16 ++++++++-------- + macros.kmp | 2 +- + 6 files changed, 9 insertions(+), 9 deletions(-) + rename openEuler-hardened-cc1 => generic-hardened-cc1 (100%) + rename openEuler-hardened-ld => generic-hardened-ld (100%) + rename openEuler-pie-cc1 => generic-pie-cc1 (100%) + rename openEuler-pie-ld => generic-pie-ld (100%) + +diff --git a/openEuler-hardened-cc1 b/generic-hardened-cc1 +similarity index 100% +rename from openEuler-hardened-cc1 +rename to generic-hardened-cc1 +diff --git a/openEuler-hardened-ld b/generic-hardened-ld +similarity index 100% +rename from openEuler-hardened-ld +rename to generic-hardened-ld +diff --git a/openEuler-pie-cc1 b/generic-pie-cc1 +similarity index 100% +rename from openEuler-pie-cc1 +rename to generic-pie-cc1 +diff --git a/openEuler-pie-ld b/generic-pie-ld +similarity index 100% +rename from openEuler-pie-ld +rename to generic-pie-ld +diff --git a/macros b/macros +index b06faea..def87a7 100644 +--- a/macros ++++ b/macros +@@ -1,6 +1,6 @@ + # Per-platform rpm configuration file. + +-%_vendor openEuler ++%_vendor __vendor + %_os linux + %_target_platform %{_target_cpu}-%{_vendor}-%{_target_os}%{?_gnu} + +@@ -52,7 +52,7 @@ + %configure \ + %{set_build_flags}; \ + [ "%_configure_gnuconfig_hack" = 1 ] && for i in $(find $(dirname %{_configure}) -name config.guess -o -name config.sub) ; do \ +- [ -f /usr/lib/rpm/openEuler/$(basename $i) ] && %{__rm} -f $i && %{__cp} -fv /usr/lib/rpm/openEuler/$(basename $i) $i ; \ ++ [ -f /usr/lib/rpm/%{_vendor}/$(basename $i) ] && %{__rm} -f $i && %{__cp} -fv /usr/lib/rpm/%{_vendor}/$(basename $i) $i ; \ + done ; \ + [ "%_configure_libtool_hardening_hack" = 1 ] && [ x != "x%{_hardened_ldflags}" ] && \ + for i in $(find . -name ltmain.sh) ; do \ +@@ -89,7 +89,7 @@ + + # Build root policy macros. Standard naming: + # convert all '-' in basename to '_', add two leading underscores. +-%__brp_ldconfig /usr/lib/rpm/openEuler/brp-ldconfig ++%__brp_ldconfig /usr/lib/rpm/brp-ldconfig + %__brp_compress /usr/lib/rpm/brp-compress + %__brp_strip /usr/lib/rpm/brp-strip %{__strip} + %__brp_strip_comment_note /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} +@@ -144,8 +144,8 @@ + # secure options for rpmbuild + # + # #hardened options +-%_hardening_cflags -specs=/usr/lib/rpm/%{_vendor}/openEuler-hardened-cc1 +-%_hardening_ldflags -Wl,-z,now -specs=/usr/lib/rpm/%{_vendor}/openEuler-hardened-ld ++%_hardening_cflags -specs=/usr/lib/rpm/generic-hardened-cc1 ++%_hardening_ldflags -Wl,-z,now -specs=/usr/lib/rpm/generic-hardened-ld + # Use "%undefine _hardened_build" to disable. + %_hardened_build 1 + %_hardened_cflags %{?_hardened_build:%{_hardening_cflags}} +@@ -156,14 +156,14 @@ + #Use "%undefine _sec_opt_build" to disable. + #Use "%undefine _pie_build" to disable. + %_pie_build 1 +-%_pie_pre_cflags -specs=/usr/lib/rpm/%{_vendor}/openEuler-pie-cc1 +-%_pie_pre_ldflags -Wl,-z,now -specs=/usr/lib/rpm/%{_vendor}/openEuler-pie-ld ++%_pie_pre_cflags -specs=/usr/lib/rpm/generic-pie-cc1 ++%_pie_pre_ldflags -Wl,-z,now -specs=/usr/lib/rpm/generic-pie-ld + %_pie_cflags %{?_sec_opt_build:?_pie_build:%{_pie_pre_cflags}} + %_pie_ldflags %{?_sec_opt_build:?_pie_build:%{_pie_pre_ldflags}} + + #Use "%undefine _fs_build" to disable. + %_fs_build 1 +-%_fs_pre_cflags -specs=/usr/lib/rpm/%{_vendor}/openEuler-fs-cc1 ++%_fs_pre_cflags -specs=/usr/lib/rpm/generic-fs-cc1 + %_fs_cflags %{?_fs_build:%{_fs_pre_cflags}} + + +diff --git a/macros.kmp b/macros.kmp +index be66e64..b9ebbe8 100644 +--- a/macros.kmp ++++ b/macros.kmp +@@ -12,7 +12,7 @@ kernel_module_package_release 1 + kernel-devel
+
+ %kernel_module_package(n:v:r:f:) %{expand:%( \
+- %define kmodtool /usr/lib/rpm/openEuler/kmodtool.py\
++ %define kmodtool /usr/lib/rpm/__vendor/kmodtool.py\
+ %define latest_kernel $(rpm -q --qf '%{VERSION}-%{RELEASE}\\\\n' `rpm -q kernel-devel` | head -n 1) \
+ %{!?kernel_version:%{expand:%%global kernel_version %{latest_kernel}}} \
+ %global kverrel %(%{kmodtool} verrel %{?kernel_version} 2>/dev/null) \
+-- +2.33.0 + diff --git a/exclude-kernel-source-and-EFI-files-in-digest-list-building.patch b/exclude-kernel-source-and-EFI-files-in-digest-list-building.patch new file mode 100644 index 0000000..a86b7b7 --- /dev/null +++ b/exclude-kernel-source-and-EFI-files-in-digest-list-building.patch @@ -0,0 +1,74 @@ +From 85e9f95d163eb3daa75add855be3208472c51850 Mon Sep 17 00:00:00 2001 +From: Anakin Zhang <benjamin93@163.com> +Date: Thu, 8 Apr 2021 19:09:00 +0800 +Subject: [PATCH] exclude kernel source and EFI files in digest list building + +Signed-off-by: Anakin Zhang <benjamin93@163.com> +--- + brp-digest-list | 22 ++++++++++++---------- + 1 file changed, 12 insertions(+), 10 deletions(-) + +diff --git a/brp-digest-list b/brp-digest-list +index c3b2156..e698b7a 100644 +--- a/brp-digest-list ++++ b/brp-digest-list +@@ -8,8 +8,6 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then + exit 0 + fi + +- +- + # Create temporary file listing files in the manifest + #[ -n "$TMPDIR" ] || TMPDIR="/tmp" + TMPDIR="/tmp" +@@ -34,6 +32,8 @@ mkdir -p $DIGEST_LIST_DIR.sig + gen_digest_lists -i M: -t metadata -f compact -d $DIGEST_LIST_DIR -i l:policy \ + -i i: -o add -p -1 -m immutable -i L:$BIN_PKG_FILES -i u: \ + -A $RPM_BUILD_ROOT -i e: \ ++ -i E:/usr/src \ ++ -i E:/boot/efi \ + -i F:/lib \ + -i F:/usr/lib \ + -i F:/lib64 \ +@@ -43,16 +43,18 @@ gen_digest_lists -i M: -t metadata -f compact -d $DIGEST_LIST_DIR -i l:policy \ + -i F:/lib/firmware \ + -i F:/usr/lib/firmware + +-f="$DIGEST_LIST_DIR/0-metadata_list-compact-$(basename $BIN_PKG_FILES)" +-[ -f $f ] || exit 0 ++DIGEST_LIST_PATH="$DIGEST_LIST_DIR/0-metadata_list-compact-$(basename $BIN_PKG_FILES)" ++[ -f $DIGEST_LIST_PATH ] || exit 0 + +-chmod 644 $f +-echo $f ++chmod 644 $DIGEST_LIST_PATH ++echo $DIGEST_LIST_PATH + + # Generate TLV digest list to check metadata + gen_digest_lists -i M: -t metadata -f compact -d $DIGEST_LIST_DIR.tlv \ + -i l:policy -i i: -o add -p -1 -m immutable -i L:$BIN_PKG_FILES -i u: \ + -T -A $RPM_BUILD_ROOT -i e: \ ++ -i E:/usr/src \ ++ -i E:/boot/efi \ + -i F:/lib \ + -i F:/usr/lib \ + -i F:/lib64 \ +@@ -62,11 +64,11 @@ gen_digest_lists -i M: -t metadata -f compact -d $DIGEST_LIST_DIR.tlv \ + -i F:/lib/firmware \ + -i F:/usr/lib/firmware + +-f="$DIGEST_LIST_DIR.tlv/0-metadata_list-compact_tlv-$(basename $BIN_PKG_FILES)" +-[ -f $f ] || exit 0 ++DIGEST_LIST_TLV_PATH="$DIGEST_LIST_DIR.tlv/0-metadata_list-compact_tlv-$(basename $BIN_PKG_FILES)" ++[ -f $DIGEST_LIST_TLV_PATH ] || exit 0 + +-chmod 644 $f +-echo $f ++chmod 644 $DIGEST_LIST_TLV_PATH ++echo $DIGEST_LIST_TLV_PATH + + if [[ "$(basename $BIN_PKG_FILES)" =~ "digest-list-tools" && \ + ! $(basename $BIN_PKG_FILES) =~ "debug" ]]; then +-- +1.8.3.1 + diff --git a/fix-brp-ldconfig-riscv-default-library-directory.patch b/fix-brp-ldconfig-riscv-default-library-directory.patch new file mode 100644 index 0000000..5a448b7 --- /dev/null +++ b/fix-brp-ldconfig-riscv-default-library-directory.patch @@ -0,0 +1,15 @@ +--- openEuler-rpm-config/brp-ldconfig 2020-08-20 17:13:06.000000000 +0800 ++++ openEuler-rpm-config/brp-ldconfig.new 2023-03-08 19:45:58.241036244 +0800 +@@ -5,4 +5,12 @@ + exit 0 + fi + ++riscv64_lp64d=0 ++if [ "$HOSTTYPE" = "riscv64" -a -e $RPM_BUILD_ROOT/usr/lib64 -a ! -e $RPM_BUILD_ROOT/usr/lib64/lp64d ]; then ++ ln -s . $RPM_BUILD_ROOT/usr/lib64/lp64d ++ riscv64_lp64d=1 ++fi + /sbin/ldconfig -N -r "$RPM_BUILD_ROOT" ++if [ $riscv64_lp64d = 1 ]; then ++ rm -f $RPM_BUILD_ROOT/usr/lib64/lp64d ++fi diff --git a/fix-config-error-for-loongarch64.patch b/fix-config-error-for-loongarch64.patch new file mode 100644 index 0000000..d85a031 --- /dev/null +++ b/fix-config-error-for-loongarch64.patch @@ -0,0 +1,25 @@ +From 749215e0573475d3f8085c5976ec0a82b703ccae Mon Sep 17 00:00:00 2001 +From: Jingyun Hua <huajingyun@loongson.cn> +Date: Wed, 14 Dec 2022 07:00:44 +0000 +Subject: [PATCH] fix config error for loongarch64 + +Signed-off-by: Jingyun Hua <huajingyun@loongson.cn> +--- + config.sub | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.sub b/config.sub +index aca1d40..4d60f77 100644 +--- a/config.sub ++++ b/config.sub +@@ -395,6 +395,7 @@ case $basic_machine in + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ ++ | loongarch32-* | loongarch64-* | loongarchx32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +-- +2.33.0 + diff --git a/fix-error-message-for-kmodtool.patch b/fix-error-message-for-kmodtool.patch new file mode 100644 index 0000000..ef323f0 --- /dev/null +++ b/fix-error-message-for-kmodtool.patch @@ -0,0 +1,25 @@ +From 177688aa4c6888a693da0ee7a06e01066cde4c54 Mon Sep 17 00:00:00 2001 +From: Yangyang Shen <shenyangyang4@huawei.com> +Date: Wed, 30 Sep 2020 14:45:14 +0800 +Subject: [PATCH] fix error message for kmodtool + +--- + kmodtool.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kmodtool.py b/kmodtool.py +index 724f481..75492b9 100644 +--- a/kmodtool.py ++++ b/kmodtool.py +@@ -39,7 +39,7 @@ def get_rpmtemplate(kmod_name,verrel): + print("This package provides the " + kmod_name + " kernel modules built for the Linux")
+ print("kernel "+ verrel + " for the %{_target_cpu} family of processors.")
+ print("%post -n kmod-" + kmod_name)
+- print("if [ -e /boot/System.map-" + verrel + "]; then")
++ print("if [ -e /boot/System.map-" + verrel + " ]; then")
+ print(" /sbin/depmod -aeF /boot/System.map-" + verrel +" " + verrel +"> /dev/null || :")
+ print("fi")
+ if (kmp !=""):
+-- +2.23.0 + diff --git a/fixed-a-bug-that-missing_-p-in-macros.kmp.patch b/fixed-a-bug-that-missing_-p-in-macros.kmp.patch new file mode 100644 index 0000000..457597b --- /dev/null +++ b/fixed-a-bug-that-missing_-p-in-macros.kmp.patch @@ -0,0 +1,37 @@ +From 7629ad0c54cc3970e49b2f78043e0fe1b1c6474d Mon Sep 17 00:00:00 2001 +From: liujing <liujing_yewu@cmss.chinamobile.com> +Date: Wed, 1 Dec 2021 00:46:20 -0500 +Subject: [PATCH] fixed a bug that missing -p in macros.kmp + +--- + macros.kmp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/macros.kmp b/macros.kmp +index be66e64..5207045 100644 +--- a/macros.kmp ++++ b/macros.kmp +@@ -5,17 +5,17 @@ kernel_module_package_release 1 +
+
+ #kernel_module_package [ -n name ] [ -v version ] [ -r release ]
+-# [ -f filelist]
++# [ -f filelist][-p preamble]
+ #
+
+ %kernel_module_package_buildreqs %global kmodtool_generate_buildreqs 1 \
+ kernel-devel
+
+-%kernel_module_package(n:v:r:f:) %{expand:%( \
++%kernel_module_package(n:v:r:f:p) %{expand:%( \
+ %define kmodtool /usr/lib/rpm/__vendor/kmodtool.py\
+ %define latest_kernel $(rpm -q --qf '%{VERSION}-%{RELEASE}\\\\n' `rpm -q kernel-devel` | head -n 1) \
+ %{!?kernel_version:%{expand:%%global kernel_version %{latest_kernel}}} \
+ %global kverrel %(%{kmodtool} verrel %{?kernel_version} 2>/dev/null) \
+- python3 %{kmodtool} rpmtemplate_kmp %{-n*}%{!-n:%name} %{kverrel} %{-f*}%{!-f:%filelist} \
++ python3 %{kmodtool} rpmtemplate_kmp %{-n*}%{!-n:%name} %{kverrel} %{-f*}%{!-f:%filelist} %{-p*}%{!-p:%preamble} \
+ )}
+
+-- +2.27.0 + diff --git a/openEuler-rpm-config.spec b/openEuler-rpm-config.spec new file mode 100644 index 0000000..13197bd --- /dev/null +++ b/openEuler-rpm-config.spec @@ -0,0 +1,345 @@ +%global vendor %{?_vendor:%{_vendor}}%{!?_vendor:openEuler} +%global rpmvdir /usr/lib/rpm/%{vendor} + +Name: %{vendor}-rpm-config +Version: 30 +Release: 43 +License: GPL+ +Summary: specific rpm configuration files +URL: https://gitee.com/openeuler/openEuler-rpm-config + +Source0: https://gitee.com/openeuler/openEuler-rpm-config/repository/archive/%{version}.tar.gz + +Patch0: fix-error-message-for-kmodtool.patch +Patch1: 0001-1-Add-riscv64-to-golang_arches.patch +Patch2: Fix-a-typo-in-brp-digest-list.patch +Patch3: change-the-vendor-to-generic-for-common-use.patch +Patch4: remove-fexceptions.patch +Patch5: exclude-kernel-source-and-EFI-files-in-digest-list-building.patch +Patch6: add-brp-scripts-to-delete-rpath.patch +Patch7: add-common-script.patch +Patch8: Fix-python3_version-macros-for-Python-3.10.patch +Patch9: Give-a-warning-when-using-kabi-outside-our-stablelis.patch +Patch10: fixed-a-bug-that-missing_-p-in-macros.kmp.patch +Patch11: update-config.guess-and-config.sub-for-loongarch64.patch +Patch12: add-loongarch64-to-generic_arches.patch +Patch13: add-loongarch64-support-for-config.guess-and-config.sub.patch +Patch14: backport-kmp-feature.patch +Patch15: 0001-add-loongarch64-for-golang_arches.patch +Patch16: fix-config-error-for-loongarch64.patch +Patch17: Feature-support-EBS-sign-for-IMA-digest-list.patch +Patch18: fix-brp-ldconfig-riscv-default-library-directory.patch +Patch19: add-pyproject-macros.patch +Patch20: add-pytest-and-tox-macros.patch + +Provides: python-rpm-macros = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: python2-rpm-macros = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: python3-rpm-macros = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: python-srpm-macros = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: fpc-srpm-macros = 1.1-6 +Provides: ghc-srpm-macros = 1.4.2-8 +Provides: gnat-srpm-macros = 4-6 +Provides: nim-srpm-macros = 1-3 +Provides: ocaml-srpm-macros = 5-4 +Provides: openblas-srpm-macros = 2-4 +Provides: perl-srpm-macros = 1-28 +Provides: rust-srpm-macros = 10-1 +Provides: go-srpm-macros = 2-18 +Provides: perl-macros = 4:5.32.0-1 +Obsoletes: perl-macros <= 4:5.32.0-1 +Obsoletes: python-rpm-macros <= %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: python2-rpm-macros <= %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: python3-rpm-macros <= %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: python-srpm-macros <= %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: fpc-srpm-macros <= 1.1-6 +Obsoletes: ghc-srpm-macros <= 1.4.2-8 +Obsoletes: gnat-srpm-macros <= 4-6 +Obsoletes: nim-srpm-macros <= 1-3 +Obsoletes: ocaml-srpm-macros <= 5-4 +Obsoletes: openblas-srpm-macros <= 2-4 +Obsoletes: perl-srpm-macros <= 1-28 +Obsoletes: rust-srpm-macros <= 10-1 +Obsoletes: go-srpm-macros <= 2-18 + +%if "%{vendor}" != "openEuler" +Provides: openEuler-rpm-config = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: openEuler-rpm-config <= %{?epoch:%{epoch}:}%{version}-%{release} +%endif + +Requires: efi-srpm-macros +Requires: qt5-srpm-macros + +Requires: rpm >= 4.11.0 +Requires: zip +Requires: curl +#Requires: (annobin if gcc) + +# for brp-mangle-shebangs +Requires: %{_bindir}/find +Requires: %{_bindir}/file +Requires: %{_bindir}/grep +Requires: %{_bindir}/sed +Requires: %{_bindir}/xargs + +%if "%{_arch}" == "riscv64" +Requires: coreutils +%endif + +# -fstack-clash-protection and -fcf-protection require GCC 8. +Conflicts: gcc < 7 + +Provides: system-rpm-config = %{version}-%{release} + +%description +specific rpm configuration files for %{vendor}. + +%package -n kernel-rpm-macros +Summary: Macros and scripts for building kernel module packages + +%description -n kernel-rpm-macros +Macros and scripts for building kernel module packages. + +%prep +%autosetup -n openEuler-rpm-config -p1 + +%install +mkdir -p %{buildroot}%{rpmvdir} +install -p -m 644 -t %{buildroot}%{rpmvdir} macros rpmrc +install -p -m 755 -t %{buildroot}%{rpmvdir} config.* +install -p -m 755 -t %{buildroot}%{_rpmconfigdir} brp-* +install -p -m 644 -t %{buildroot}%{_rpmconfigdir} generic-* +install -p -m 755 -t %{buildroot}%{rpmvdir} kmodtool +install -p -m 755 -t %{buildroot}%{rpmvdir} find-requires* + +mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d +install -p -m 644 -t %{buildroot}%{_rpmconfigdir}/macros.d/ macros.perl macros.python macros.go macros.forge macros.kmp + +mkdir -p %{buildroot}%{_fileattrsdir} + +mkdir -p %{buildroot}%{_rpmluadir}/%{_vendor}/{rpm,srpm} +install -p -m 644 -t %{buildroot}%{_rpmluadir}/%{_vendor} common.lua + +# Adaptive according to vendor +sed -i "s/__vendor/%{vendor}/g" `grep "__vendor" -rl %{buildroot}%{_rpmconfigdir}` + +%files +%dir %{rpmvdir} +%{rpmvdir}/macros +%{rpmvdir}/rpmrc +%{_rpmconfigdir}/brp-* +%{rpmvdir}/config.* +%{_rpmconfigdir}/generic-* +%{_fileattrsdir}/ +%{_rpmconfigdir}/macros.d/ +%{_rpmluadir}/%{_vendor}/*.lua +%exclude %{_rpmconfigdir}/macros.d/macros.kmp + +%files -n kernel-rpm-macros +%exclude %{_prefix}/lib/rpm/*/__pycache__/* +%{rpmvdir}/kmodtool +%{_rpmconfigdir}/macros.d/macros.kmp +%{rpmvdir}/find-requires +%{rpmvdir}/find-requires.ksyms + +%changelog +* Mon Aug 28 2023 liyunfei <liyunfei33@huawei.com> - 30-43 +- Revert backport toolchain selecting and %%auto_set_build_flags patches + +* Thu Aug 17 2023 liyunfei <liyunfei33@huawei.com> - 30-42 +- Backport Call %%set_build_flags before %%build, %%check, and %%install stages + +* Thu Aug 17 2023 liyunfei <liyunfei33@huawei.com> - 30-41 +- Backport Add support for selecting a clang as a tool + +* Mon Jul 24 2023 Dongxing Wang <dxwangk@isoftstone.com> - 30-40 +- add pytest and tox macros + +* Thu May 11 2023 caodongxia <caodongxia@h-partners.com> - 30-39 +- improve pyproject_install macro + +* Thu Apr 20 2023 caodongxia <caodongxia@h-partners.com> - 30-38 +- support pyproject compilation + +* Fri Mar 24 2023 laokz <zhangkai@iscas.ac.cn> - 30-37 +- fix riscv64 default library directory of brp-ldconfig + +* Fri Mar 17 2023 Xinliang Liu <xinliang.liu@linaro.org> - 30-36 +- Fix kmod rpm install failed. + +* Sat Jan 14 2023 luhuaxin <luhuaxin1@huawei.com> - 30-35 +- support EBS sign + +* Wed Dec 14 2022 huajingyun <huajingyun@loongson.cn> - 30-34 +- fix config error for loongarch64 + +* Tue Dec 13 2022 Wenlong Zhang <zhangwenlong@loongson.cn> - 30-33 +- add loongarch64 for golang_arches + +* Wed Dec 7 2022 yangmingtai <yangmingtai@huawei.com> - 30-32 +- fix latest_kernel macro + +* Wed Dec 7 2022 Yang Yanchao <yangyanchao6@huawei.com> - 30-31 +- backport kmp feature + +* Wed Nov 30 2022 yangmingtai <yangmingtai@huawei.com> - 30-30 +- support Adaptive according to vendor + +* Mon Nov 21 2022 huajingyun <huajingyun@loongson.cn> - 30-29 +- add loongarch64 support + +* Wed Oct 12 2022 yangmingtai <yangmingtai@huawei.com> - 30-28 +- macro.kmp support -p preamble + +* Thu Sep 8 2022 yangmingtai <yangmingtai@huawei.com> - 30-27 +- add find-requires and find-requires.ksyms + +* Mon Jun 13 2022 yangmingtai <yangmingtai@huawei.com> - 30-26 +- fix build failed, bare words are no longer supported + +* Mon Dec 13 2021 Liu Zixian <liuzixian4@huawei.com> - 30-25 +- fix python macros + +* Fri Nov 26 2021 shixuantong <shixuantong@huawei.com> - 30-24 +- update the definition of python3_version + +* Wed Oct 13 2021 wangkerong <wangkerong@huawei.com> - 30-23 +- add common lua scripts resolve "%fontpkg" macro translation failure + +* Sat Sep 4 2021 yangmingtai <yangmingtai@huawei.com> - 30-22 +- add brp scripts to delete rpath + +* Thu Apr 8 2021 Anakin Zhang <benjamin93@163.com> - 30-21 +- exclude kernel source and EFI files in digest list building + +* Mon Mar 29 2021 shenyangyang <shenyangyang4@huawei.com> - 30-20 +- Patched missing patch that remove fexceptions + +* Thu Mar 25 2021 shenyangyang <shenyangyang4@huawei.com> - 30-19 +- Modify support for change vendor with better method + +* Thu Mar 18 2021 shenyangyang <shenyangyang4@huawei.com> - 30-18 +- Change the name of spec to openEuler-rpm-spec and fix few bugs + +* Thu Mar 11 2021 shenyangyang <shenyangyang4@huawei.com> - 30-17 +- Add for support for change vendor + +* Tue Dec 1 2020 whoisxxx <zhangxuzhou4@huawei.com> - 30-16 +- Add riscv64 in macros.go + +* Wed Sep 30 2020 shenyangyang <shenyangyang4@huawei.com> - 30-15 +- Change the source code to tar + +* Fri Aug 21 2020 Wang Shuo <wangshuo_1994@foxmail.com> - 30-14 +- fix error message for kmodtool + +* Thu Aug 13 2020 shenyangyang <shenyangyang4@huawei.com> - 30-13 +- Add provides of perl-macros + +* Thu Aug 6 2020 tianwei <tianwei12@huawei.com> - 30-12 +- delete strip-file-prefix + +* Mon Aug 3 2020 Anakin Zhang <benjamin93@163.com> - 30-12 +- add brp-digest-list + +* Fri Jun 19 2020 zhangliuyan <zhangliuyan@huawei.com> - 30-11 +- add kmodtool.py macros.kmp + +* Wed May 6 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-10 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC: disable buildid link macro + +* Tue Feb 11 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-9 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:modify python_provide macro from python2 to python3 + +* Sun Jan 19 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-8 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:revise vendor in macro + +* Sun Jan 19 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-7 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:revise macro file + +* Tue Jan 14 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-6 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:update macros file + +* Tue Jan 14 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-5 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:add macros to macros.python + +* Mon Jan 13 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-4 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:update macros.python + +* Mon Jan 13 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-3 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:change type of files + +* Mon Jan 13 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-2 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:add source10 to package + +* Mon Jan 13 2020 openEuler Buildteam <buildteam@openeuler.org> - 30-1 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:rebuild + +* Thu Dec 26 2019 openEuler Buildteam <buildteam@openeuler.org> - 29-20 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:delete unneeded provides + +* Wed Nov 27 2019 fanghuiyu<fanghuiyu@huwei.com> - 29-19 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:change to generic-rpm-config + +* Fri Nov 15 2019 jiangchuangang<jiangchuangang@huwei.com> - 29-18 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC: remove fcf-protection for x86_64 from rpmrc + +* Wed Oct 30 2019 hexiaowen <hexiaowen@huawei.com> - 29-17 +- add custom macros + +* Wed Sep 25 2019 hexiaowen <hexiaowen@huawei.com> - 29-16 +- add rust-srpm-macros and go-srpm-macros + +* Fri Sep 20 2019 hexiaowen <hexiaowen@huawei.com> - 29-15 +- add version-release for python-rpm-macros + +* Fri Sep 20 2019 hexiaowen <hexiaowen@huawei.com> - 29-14 +- add python-rpm-macros fpc-srpm-macros ghc-srpm-macros gnat-srpm-macros +- nim-srpm-macros ocaml-srpm-macros openblas-srpm-macros perl-srpm-macros + +* Thu Aug 29 2019 hexiaowen <hexiaowen@huawei.com> - 29-13 +- fix typo + +* Tue Aug 27 2019 hexiaowen <hexiaowen@huawei.com> - 29-2 +- delete annobin + +* Wed Jul 18 2018 openEuler Buildteam <buildteam@openeuler.org> - 29-1 +- Package init diff --git a/remove-fexceptions.patch b/remove-fexceptions.patch new file mode 100644 index 0000000..d198123 --- /dev/null +++ b/remove-fexceptions.patch @@ -0,0 +1,36 @@ +From 783b74a4778101223da41c8d3eb0457a1f9938f2 Mon Sep 17 00:00:00 2001 +From: Yangyang Shen <shenyangyang4@huawei.com> +Date: Thu, 18 Mar 2021 16:00:27 +0800 +Subject: [PATCH] openEuler remove fexceptions + +--- + macros | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/macros b/macros +index b06faea..118614d 100644 +--- a/macros ++++ b/macros +@@ -27,8 +27,8 @@ + # ---- compiler flags. + + %build_cflags %{optflags} +-%build_cxxflags %{optflags} +-%build_fflags %{optflags} -I%{_fmoddir} ++%build_cxxflags %{optflags} -fexceptions ++%build_fflags %{optflags} -fexceptions -I%{_fmoddir} + %build_ldflags -Wl,-z,relro %{_ld_as_needed_flags} %{_ld_symbols_flags} %{_hardened_ldflags} + + %set_build_flags \ +@@ -177,7 +177,7 @@ + #%_ld_as_needed 1 + %_ld_as_needed_flags %{?_ld_as_needed:-Wl,--as-needed} + +-%__global_compiler_flags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches %{_hardened_cflags} ++%__global_compiler_flags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches %{_hardened_cflags} + + # Automatically trim changelog entries after 2 years + %_changelog_trimtime %{lua:print(os.time() - 2 * 365 * 86400)} +-- +2.23.0 + @@ -0,0 +1 @@ +51eb1809aa9bc05c281ad801f61b7f42 30.tar.gz diff --git a/update-config.guess-and-config.sub-for-loongarch64.patch b/update-config.guess-and-config.sub-for-loongarch64.patch new file mode 100644 index 0000000..4e4b88a --- /dev/null +++ b/update-config.guess-and-config.sub-for-loongarch64.patch @@ -0,0 +1,39 @@ +From fe6cff21eb18cc05704db85520db57c0d58bd2d3 Mon Sep 17 00:00:00 2001 +From: Wenlong Zhang <zhangwenlong@loongson.cn> +Date: Tue, 12 Apr 2022 22:31:41 +0800 +Subject: [PATCH] update config.guess and config.sub for loongarch64 + +--- + macros | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/macros b/macros +index 5c7447b..dc8c749 100644 +--- a/macros ++++ b/macros +@@ -49,6 +49,22 @@ + # ---- configure and makeinstall. + %_configure_gnuconfig_hack 1 + %_configure_libtool_hardening_hack 1 ++ ++#update config.guess and config.sub ++%_update_config_guess \ ++ [ "%_configure_gnuconfig_hack" = 1 ] && for i in $(find . -name config.guess) ; do \ ++ [ -f /usr/lib/rpm/%{_vendor}/$(basename $i) ] && \ ++ %{__rm} -f $i && \ ++ %{__cp} -fv /usr/lib/rpm/%{_vendor}/$(basename $i) $i ; \ ++ done ; ++ ++%_update_config_sub \ ++ [ "%_configure_gnuconfig_hack" = 1 ] && for i in $(find . -name config.sub) ; do \ ++ [ -f /usr/lib/rpm/%{_vendor}/$(basename $i) ] && \ ++ %{__rm} -f $i && \ ++ %{__cp} -fv /usr/lib/rpm/%{_vendor}/$(basename $i) $i ; \ ++ done ; ++ + %configure \ + %{set_build_flags}; \ + [ "%_configure_gnuconfig_hack" = 1 ] && for i in $(find $(dirname %{_configure}) -name config.guess -o -name config.sub) ; do \ +-- +2.27.0 + |