summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Add-support-for-selecting-clang-as-a-toolchain.patch113
-rw-r--r--Call-set_build_flags-cc-before-build-check-and-insta.patch49
-rw-r--r--Feature-support-EBS-sign-for-IMA-digest-list.patch344
-rw-r--r--add-common-script.patch313
-rw-r--r--add-loongarch64-support-for-config.guess-and-config.sub.patch8
-rw-r--r--add-loongarch64-to-generic_arches.patch4
-rw-r--r--add-powerpc64le-and-ppc64le-support.patch29
-rw-r--r--add-pytest-and-tox-macros.patch42
-rw-r--r--add-riscv64-to-some-arches-macro.patch12
-rwxr-xr-xadd-sw-arch-support.patch63
-rw-r--r--backport-Enable-as-needed-by-default.patch31
-rw-r--r--openEuler-rpm-config-add-optflags-for-loongarch64-and-sw_64.patch26
-rw-r--r--openEuler-rpm-config.spec133
13 files changed, 177 insertions, 990 deletions
diff --git a/Add-support-for-selecting-clang-as-a-toolchain.patch b/Add-support-for-selecting-clang-as-a-toolchain.patch
deleted file mode 100644
index c38c7cb..0000000
--- a/Add-support-for-selecting-clang-as-a-toolchain.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From f2a6af2ce79e26bf47604b610056d8c524b647f2 Mon Sep 17 00:00:00 2001
-From: liyunfei <liyunfei33@huawei.com>
-Date: Tue, 9 Jan 2024 20:39:10 +0800
-Subject: [PATCH 1/2] Add support for selecting clang as a toolchain
-
----
- generic-hardened-clang.cfg | 1 +
- macros | 56 ++++++++++++++++++++++++++++++++++++--
- 2 files changed, 57 insertions(+), 3 deletions(-)
- create mode 100644 generic-hardened-clang.cfg
-
-diff --git a/generic-hardened-clang.cfg b/generic-hardened-clang.cfg
-new file mode 100644
-index 0000000..ac596df
---- /dev/null
-+++ b/generic-hardened-clang.cfg
-@@ -0,0 +1 @@
-+-fPIE
-\ No newline at end of file
-diff --git a/macros b/macros
-index 5fdaf0a..0062126 100755
---- a/macros
-+++ b/macros
-@@ -23,6 +23,46 @@
-
- %_build_id_links none
-
-+# GCC toolchain
-+%__cc_gcc gcc
-+%__cxx_gcc g++
-+%__cpp_gcc gcc -E
-+
-+# Clang toolchain
-+%__cc_clang clang
-+%__cxx_clang clang++
-+%__cpp_clang clang-cpp
-+
-+# Default to the GCC toolchain
-+#
-+# It is enough to override `toolchain` macro and all relevant macro for C/C++
-+# compilers will be switched. Either in the spec or in the command-line.
-+#
-+# %global toolchain clang
-+#
-+# or:
-+#
-+# rpmbuild -D "toolchain clang" …
-+#
-+# Inside a spec file it is also possible to determine which toolchain is in use
-+# by testing the same macro. For example:
-+#
-+# %if "%{toolchain}" == "gcc"
-+# BuildRequires: gcc
-+# %endif
-+#
-+# or:
-+#
-+# %if "%{toolchain}" == "clang"
-+# BuildRequires: clang compiler-rt
-+# %endif
-+#
-+%toolchain gcc
-+
-+%__cc %{expand:%%{__cc_%{toolchain}}}
-+%__cxx %{expand:%%{__cxx_%{toolchain}}}
-+%__cpp %{expand:%%{__cpp_%{toolchain}}}
-+
- #==============================================================================
- # ---- compiler flags.
-
-@@ -31,7 +71,13 @@
- %build_fflags %{optflags} -fexceptions -I%{_fmoddir}
- %build_ldflags -Wl,-z,relro %{_ld_as_needed_flags} %{_ld_symbols_flags} %{_hardened_ldflags}
-
-+%set_build_cc \
-+ CC=%{__cc}; export CC ; \
-+ CXX=%{__cxx}; export CXX ; \
-+ CCC="${CCC:-%{__cxx}}" ; export CCC
-+
- %set_build_flags \
-+ %[ "%{toolchain}" == "gcc" ? "" : "%{set_build_cc};" ] \
- CFLAGS="${CFLAGS:-%{build_cflags}}" ; export CFLAGS ; \
- CXXFLAGS="${CXXFLAGS:-%{build_cxxflags}}" ; export CXXFLAGS ; \
- FFLAGS="${FFLAGS:-%{build_fflags}}" ; export FFLAGS ; \
-@@ -162,8 +208,10 @@
- # secure options for rpmbuild
- #
- # #hardened options
--%_hardening_cflags -specs=/usr/lib/rpm/generic-hardened-cc1
--%_hardening_ldflags -Wl,-z,now -specs=/usr/lib/rpm/generic-hardened-ld
-+%_hardening_gcc_cflags -specs=/usr/lib/rpm/generic-hardened-cc1
-+%_hardening_clang_cflags --config /usr/lib/rpm/generic-hardened-clang.cfg
-+%_hardening_cflags %{expand:%%{_hardening_%{toolchain}_cflags}}
-+%_hardening_ldflags -Wl,-z,now %[ "%{toolchain}" == "gcc" ? "-specs=/usr/lib/rpm/generic-hardened-ld" : "" ]
- # Use "%undefine _hardened_build" to disable.
- %_hardened_build 1
- %_hardened_cflags %{?_hardened_build:%{_hardening_cflags}}
-@@ -195,7 +243,11 @@
- #%_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 -fstack-protector-strong -grecord-gcc-switches %{_hardened_cflags}
-+%_general_options -O2 -g -grecord-gcc-switches -pipe -fstack-protector-strong %[ "%{toolchain}" == "clang" ? "-fgcc-compatible" : "" ]
-+%_warning_options -Wall -Werror=format-security
-+%_preprocessor_defines -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
-+
-+%__global_compiler_flags %{_general_options} %{_warning_options} %{_preprocessor_defines} %{_hardened_cflags}
-
- # Automatically trim changelog entries after 2 years
- %_changelog_trimtime %{lua:print(os.time() - 2 * 365 * 86400)}
---
-2.27.0
-
diff --git a/Call-set_build_flags-cc-before-build-check-and-insta.patch b/Call-set_build_flags-cc-before-build-check-and-insta.patch
deleted file mode 100644
index 8f69298..0000000
--- a/Call-set_build_flags-cc-before-build-check-and-insta.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From c6b15b8c17f957d736dd975d106b10d419070ebd Mon Sep 17 00:00:00 2001
-From: liyunfei <liyunfei33@huawei.com>
-Date: Tue, 9 Jan 2024 20:50:34 +0800
-Subject: [PATCH 2/2] Call %set_build_flags&cc before %build, %check, and
- %install stages
-
----
- macros | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/macros b/macros
-index 0062126..8c16706 100755
---- a/macros
-+++ b/macros
-@@ -83,6 +83,22 @@
- FCFLAGS="${FCFLAGS:-%{build_fflags}}" ; export FCFLAGS ; \
- LDFLAGS="${LDFLAGS:-%{build_ldflags}}" ; export LDFLAGS
-
-+# Automatically use set_build_flags macro for build, check, and
-+# install phases.
-+# Use "%undefine _auto_set_build_flags" to disable"
-+# Automatically use set_build_cc macro for build, check, and
-+# install phases.
-+# Use "%undefine _auto_set_build_cc" to disable"
-+%_auto_set_build_cc %["%{toolchain}" == "gcc" ? 0 : 1]
-+%_auto_set_build_flags 0
-+
-+%__spec_build_pre %{___build_pre} \
-+ %[0%{?_auto_set_build_cc} ? "%{set_build_cc}" : ""] \
-+ %[0%{?_auto_set_build_flags} ? "%{set_build_flags}" : ""]
-+%__spec_check_pre %{___build_pre} \
-+ %[0%{?_auto_set_build_cc} ? "%{set_build_cc}" : ""] \
-+ %[0%{?_auto_set_build_flags} ? "%{set_build_flags}" : ""]
-+
- #For backwards compatibility only.
- %__global_cflags %{build_cflags}
- %__global_cxxflags %{build_cxxflags}
-@@ -144,6 +158,8 @@
- [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"\
- mkdir -p `dirname "$RPM_BUILD_ROOT"`\
- mkdir "$RPM_BUILD_ROOT"\
-+ %[0%{?_auto_set_build_cc} ? "%{set_build_cc}" : ""]\
-+ %[0%{?_auto_set_build_flags} ? "%{set_build_flags}" : ""]\
- %{nil}
-
- # ---- Expanded at end of %install scriptlet.
---
-2.27.0
-
diff --git a/Feature-support-EBS-sign-for-IMA-digest-list.patch b/Feature-support-EBS-sign-for-IMA-digest-list.patch
index bd0fed0..39b6aae 100644
--- a/Feature-support-EBS-sign-for-IMA-digest-list.patch
+++ b/Feature-support-EBS-sign-for-IMA-digest-list.patch
@@ -4,323 +4,79 @@ 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>
-Signed-off-by: zhangguangzhi <zhangguangzhi3@huawei.com>
-
---
- brp-digest-list | 46 +++++-----
- brp-ebs-sign | 238 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 262 insertions(+), 22 deletions(-)
+ 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..d1e2600 100644
+index e698b7a..9ec50a2 100644
--- a/brp-digest-list
+++ b/brp-digest-list
-@@ -26,7 +26,6 @@ fi
- DIGEST_LIST_DIR=$RPM_BUILD_ROOT/$2/etc/ima/digest_lists
- mkdir -p $DIGEST_LIST_DIR
- mkdir -p $DIGEST_LIST_DIR.tlv
--mkdir -p $DIGEST_LIST_DIR.sig
-
- # Generate digest list for the kernel
- gen_digest_lists -i M: -t metadata -f compact -d $DIGEST_LIST_DIR -i l:policy \
-@@ -70,28 +69,31 @@ DIGEST_LIST_TLV_PATH="$DIGEST_LIST_DIR.tlv/0-metadata_list-compact_tlv-$(basenam
- chmod 644 $DIGEST_LIST_TLV_PATH
- echo $DIGEST_LIST_TLV_PATH
+@@ -84,6 +84,22 @@ if [[ "$(basename $BIN_PKG_FILES)" =~ "digest-list-tools" && \
+ chmod 644 $f
+ echo $f
--if [[ "$(basename $BIN_PKG_FILES)" =~ "digest-list-tools" && \
-- ! $(basename $BIN_PKG_FILES) =~ "debug" ]]; then
-- # Generate digest list for the user space parsers
-- LD_LIBRARY_PATH=$RPM_BUILD_ROOT/usr/lib64 \
-- $RPM_BUILD_ROOT/usr/bin/gen_digest_lists \
-- -d $DIGEST_LIST_DIR -t parser -f compact -m immutable \
-- -i I:$RPM_BUILD_ROOT/usr/libexec -o add -p -1 -i i:
--
-- f="$DIGEST_LIST_DIR/0-parser_list-compact-libexec"
-- [ -f $f ] || exit 0
--
-- chmod 644 $f
-- echo $f
-+#if [[ "$(basename $BIN_PKG_FILES)" =~ "digest-list-tools" && \
-+# ! $(basename $BIN_PKG_FILES) =~ "debug" ]]; then
-+# Generate digest list for the user space parsers
++ # 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 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
-+ sh /usr/lib/rpm/brp-ebs-sign --ima-digestlist $DIGEST_LIST_PATH 1>&2
-+ [ -f $DIGEST_LIST_PATH.sig ] || exit 0
-+ chmod 644 $DIGEST_LIST_PATH.sig
-+ mv $DIGEST_LIST_PATH.sig $DIGEST_LIST_PATH
-+ exit 0
-+fi
-
-- [ -f /usr/lib/rpm/brp-suse.d/brp-99-pesign ] || exit 0
-+# do OBS sign
-+[ -f /usr/lib/rpm/brp-suse.d/brp-99-pesign ] || exit 0
++ # do OBS sign
+ [ -f /usr/lib/rpm/brp-suse.d/brp-99-pesign ] || exit 0
-- export BRP_PESIGN_FILES="$2/etc/ima/digest_lists/*"
-- export RPM_BUILD_ROOT
-- export RPM_PACKAGE_NAME="digest-list-tools"
-- export RPM_SOURCE_DIR="$(rpm --eval %_topdir)/SOURCES"
-+export BRP_PESIGN_FILES="$2/etc/ima/digest_lists/*"
-+export RPM_BUILD_ROOT
-+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
-- /usr/lib/rpm/brp-suse.d/brp-99-pesign &> /dev/null
-- fi
-+if [ -f "/usr/lib/rpm/brp-suse.d/brp-99-pesign" ]; then
-+ /usr/lib/rpm/brp-suse.d/brp-99-pesign &> /dev/null
- fi
-+#fi
+ 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..a7a83e5
+index 0000000..662a9f7
--- /dev/null
+++ b/brp-ebs-sign
-@@ -0,0 +1,238 @@
+@@ -0,0 +1,34 @@
+#!/bin/bash
+
-+INPUT_TYPE=$1
-+INPUT_FILE=$2
-+SIGN_FILE=$INPUT_FILE
-+PROJECT_CONF="/lkp/scheduled/job.yaml"
-+POST_ADDR=""
-+POST_FILE_SHA256=""
-+POST_KEY_NAME=""
-+POST_KEY_TYPE=""
-+POST_FILE_TYPE=""
-+POST_SIGN_TYPE=""
-+POST_JOB_ID=""
-+POST_OS_ORIJECT=""
-+CONFIG_RETEST_COUNT=5
-+SIGN_RESULT=0
-+FAILED_SIGN_PERMISSION_DENIED=2
++# 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"
+
-+# Tool functions for JSON
++# function definition
+get_json_value(){
-+ echo "$1" | \
-+ awk -F "[{,:}]" '{for(i=1;i<NF;i++){if($i~"'$2'"){print $(i+1)}}}' | \
-+ sed 's/\"//g'
-+}
-+
-+get_post_json() {
-+ printf '{'
-+ printf '"file_sha256":"%s",' $POST_FILE_SHA256
-+ printf '"key_name":"%s",' $POST_KEY_NAME
-+ printf '"key_type":"%s",' $POST_KEY_TYPE
-+ printf '"file_type":"%s",' $POST_FILE_TYPE
-+ printf '"sign_type":"%s",' $POST_SIGN_TYPE
-+ printf '"job_id":"%s",' $POST_JOB_ID
-+ printf '"os_project":"%s"' $POST_OS_ORIJECT
-+ printf '}'
++ echo "$1" | awk -F "[{,:}]" '{for(i=1;i<NF;i++){if($i~"'$2'"){print $(i+1)}}}' | sed 's/\"//g'
+}
+
-+# Prepare sign functions for each sign type
-+module_sign_pre() {
-+ if [[ "$INPUT_FILE" != *.ko ]]; then
-+ echo "The module file must has the .ko extension"
-+ return 1
-+ fi
-+
-+ SIGN_FILE="$INPUT_FILE"
-+ POST_KEY_NAME="openeuler-kernel-module-ee"
-+ POST_KEY_TYPE="x509ee"
-+ POST_FILE_TYPE="kernel-module"
-+ POST_SIGN_TYPE="cms"
-+}
++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\"}"
+
-+ima_digestlist_sign_pre() {
-+ cp -f $INPUT_FILE $INPUT_FILE.ko
-+ SIGN_FILE="$INPUT_FILE.ko"
-+ POST_KEY_NAME="openeuler-ima-ee"
-+ POST_KEY_TYPE="x509ee"
-+ POST_FILE_TYPE="kernel-module"
-+ POST_SIGN_TYPE="cms"
-+}
++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; }
+
-+efi_sign_pre() {
-+ SIGN_FILE="$INPUT_FILE"
-+ POST_KEY_NAME="default-x509ee"
-+ POST_KEY_TYPE="x509ee"
-+ POST_FILE_TYPE="efi-image"
-+ POST_SIGN_TYPE="authenticode"
-+}
-+
-+kernel_sign_pre() {
-+ SIGN_FILE="$INPUT_FILE"
-+ POST_KEY_NAME="default-x509ee"
-+ POST_KEY_TYPE="x509ee"
-+ POST_FILE_TYPE="efi-image"
-+ POST_SIGN_TYPE="authenticode"
-+}
++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; }
+
-+# Post sign functions for each sign type
-+module_sign_post() {
-+ :
-+}
-+
-+ima_digestlist_sign_post() {
-+ rm -f $INPUT_FILE.ko
-+}
-+
-+efi_sign_post() {
-+ :
-+}
-+
-+kernel_sign_post() {
-+ :
-+}
-+
-+# Global configuration
-+sign_config() {
-+ if [ -z "$INPUT_TYPE" ] || [ -z "$INPUT_FILE" ]; then
-+ echo "Please input the sign type and file"
-+ exit 1
-+ fi
-+
-+ if [ ! -f "$INPUT_FILE" ]; then
-+ echo "The input file is invalid"
-+ exit 1
-+ fi
-+
-+ POST_FILE_SHA256=$(sha256sum "$INPUT_FILE" | awk '{ print $1 }')
-+ if [ $? -ne 0 ]; then
-+ echo "Failed to calculate file hash"
-+ fi
-+
-+ PUBLISHER_HOST=$(grep PUBLISHER_HOST $PROJECT_CONF | awk '{print $2}')
-+ PUBLISHER_PORT=$(grep PUBLISHER_PORT $PROJECT_CONF | awk '{print $2}')
-+ if [ -z "$PUBLISHER_HOST" ] || [ -z "$PUBLISHER_PORT" ]; then
-+ echo "Please set PUBLISHER_HOST and PUBLISHER_PORT"
-+ exit 1
-+ fi
-+
-+ POST_ADDR="http://${PUBLISHER_HOST}:${PUBLISHER_PORT}/code-sign"
-+
-+ POST_JOB_ID="$(grep -rwn 'id\:' $PROJECT_CONF | awk '{print $2}')"
-+ POST_OS_ORIJECT="$(grep -rwn 'os_project\:' $PROJECT_CONF | awk '{print $2}')"
-+ if [ -z "$POST_JOB_ID" ] || [ -z "$POST_OS_ORIJECT" ]; then
-+ echo "Failed to get POST_JOB_ID and POST_OS_ORIJECT"
-+ exit 1
-+ fi
-+}
-+
-+sign_pre() {
-+ sign_config
-+
-+ case $INPUT_TYPE in
-+ --efi)
-+ efi_sign_pre
-+ ;;
-+ --module)
-+ module_sign_pre
-+ ;;
-+ --ima-digestlist)
-+ ima_digestlist_sign_pre
-+ ;;
-+ --kernel)
-+ kernel_sign_pre
-+ ;;
-+ *)
-+ echo "Unsupported sign type: $INPUT_TYPE"
-+ exit 1
-+ ;;
-+ esac
-+}
-+
-+sign() {
-+ # 1. send the request to the sign service
-+ # echo "curl "$POST_ADDR" \
-+ # -F "file=@$SIGN_FILE" \
-+ # -F "data=$(get_post_json);type=application/json""
-+ req="$(curl "$POST_ADDR" \
-+ -F "file=@$SIGN_FILE" \
-+ -F "data=$(get_post_json);type=application/json")"
-+ if [ $? -ne 0 ]; then
-+ echo "Failed to post the sign service"
-+ return 1
-+ fi
-+
-+ req_err_msg=$(get_json_value "$req" "err_msg")
-+ if [ -n "$req_err_msg" ]; then
-+ echo "Failed, err_msg: [$req_err_msg]"
-+ if [ "$req_err_msg" == "SIGN_PERMISSION_DENIED" ]; then
-+ return $FAILED_SIGN_PERMISSION_DENIED
-+ fi
-+ return 1
-+ fi
-+
-+ # 2. write the file content
-+ encoded_file_content=$(get_json_value "$req" "encoded_file_content")
-+ if [ $? -ne 0 ]; then
-+ echo "Failed to get encoded file content"
-+ return 1
-+ fi
-+
-+ echo -ne "$encoded_file_content" | base64 -d > $INPUT_FILE.sig
-+ if [ $? -ne 0 ]; then
-+ echo "Failed to write the signed file"
-+ return 1
-+ fi
-+
-+ # for test
-+ # cp -f $INPUT_FILE $INPUT_FILE.sig
-+ # req="{file_sha256:41c68fca7b3870cc9ef13a828a74af933bd8e4ff345fcfa316}"
-+
-+ # 3. check the hash
-+ sha256_cal=$(sha256sum $INPUT_FILE.sig | awk '{print $1}')
-+ sha256_get=$(get_json_value "$req" "file_sha256" | tr '[:upper:]' '[:lower:]')
-+ if [ "$sha256_cal" != "$sha256_get" ]; then
-+ echo "Failed to verify the hash value"
-+ return 1
-+ fi
-+}
-+
-+sign_post() {
-+ case $INPUT_TYPE in
-+ --efi)
-+ efi_sign_post
-+ ;;
-+ --module)
-+ module_sign_post
-+ ;;
-+ --ima-digestlist)
-+ ima_digestlist_sign_post
-+ ;;
-+ --kernel)
-+ kernel_sign_post
-+ ;;
-+ esac
-+}
-+
-+# Main function
-+sign_pre
-+
-+for ((i=1; i<=$CONFIG_RETEST_COUNT; i++)); do
-+ sign
-+ ret_sign=$?
-+ if [ $ret_sign -eq 0 ]; then
-+ echo "Succeed to sign file"
-+ break;
-+ elif [ $ret_sign -eq $FAILED_SIGN_PERMISSION_DENIED ]; then
-+ echo "Failed to sign file, permission denied"
-+ SIGN_RESULT=$FAILED_SIGN_PERMISSION_DENIED
-+ break;
-+ elif [ $i -ne $CONFIG_RETEST_COUNT ]; then
-+ echo "Failed to sign file, try again"
-+ elif [ $i -eq $CONFIG_RETEST_COUNT ]; then
-+ echo "Failed to sign file"
-+ SIGN_RESULT=1
-+ fi
-+done
++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; }
+
-+sign_post
-+exit $SIGN_RESULT
++echo "Sign $file ok!"
++exit 0
--
2.33.0
diff --git a/add-common-script.patch b/add-common-script.patch
deleted file mode 100644
index bb7892e..0000000
--- a/add-common-script.patch
+++ /dev/null
@@ -1,313 +0,0 @@
-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
index acc2f83..9dcec43 100644
--- a/add-loongarch64-support-for-config.guess-and-config.sub.patch
+++ b/add-loongarch64-support-for-config.guess-and-config.sub.patch
@@ -1,8 +1,8 @@
diff --git a/config.guess b/config.guess
-index 463631a..2985f85 100644
+index 0ff02d1..1caf3a6 100644
--- a/config.guess
+++ b/config.guess
-@@ -975,6 +975,9 @@ EOF
+@@ -983,6 +983,9 @@ EOF
k1om:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
@@ -13,10 +13,10 @@ index 463631a..2985f85 100644
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
diff --git a/config.sub b/config.sub
-index 39dbf60..39870d3 100644
+index 6107010..aca1d40 100644
--- a/config.sub
+++ b/config.sub
-@@ -268,6 +268,7 @@ case $basic_machine in
+@@ -269,6 +269,7 @@ case $basic_machine in
| k1om \
| le32 | le64 \
| lm32 \
diff --git a/add-loongarch64-to-generic_arches.patch b/add-loongarch64-to-generic_arches.patch
index cf3dc63..5a911c1 100644
--- a/add-loongarch64-to-generic_arches.patch
+++ b/add-loongarch64-to-generic_arches.patch
@@ -6,8 +6,8 @@ index d6b2c80..a66eb2e 100644
%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
+-%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
index 8840182..9c0cd9d 100644
--- a/add-powerpc64le-and-ppc64le-support.patch
+++ b/add-powerpc64le-and-ppc64le-support.patch
@@ -1,39 +1,38 @@
-From c6d355a6997ac10403181015b5ca9d17dcf8d1a7 Mon Sep 17 00:00:00 2001
-From: JianChunfu <chunfu.jian@shingroup.cn>
-Date: Tue, 24 Oct 2023 18:38:38 +0800
+From fc04d33640534f5046210b4cb60fd4c595955781 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E9=82=B9=E9=B9=8F?= <peng.zou@shingroup.cn>
+Date: Thu, 22 Feb 2024 14:42:38 +0800
Subject: [PATCH] add powerpc64le and ppc64le support
---
macros | 2 +-
- rpmrc | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
+ rpmrc | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/macros b/macros
-index 5c7447b..38dc694 100644
+index d241ce3..ddee753 100644
--- a/macros
+++ b/macros
-@@ -225,7 +225,7 @@
+@@ -241,7 +241,7 @@
%pkg_vcmp() (%{expand:%%{pkg_version_cmp %1 %3}} %2 0)
#arches macros
--%generic_arches %{ix86} x86_64 %{arm} aarch64 loongarch64
-+%generic_arches %{ix86} x86_64 %{arm} aarch64 loongarch64 powerpc64le ppc64le
+-%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
-in
-dex 8ba756d..10d7c86 100644
+index 8ba756d..6a29bcb 100644
--- a/rpmrc
+++ b/rpmrc
-@@ -8,6 +8,8 @@ optflags: x86_64 %{__global_compiler_flags} -m64 -mtune=generic -fasynchronous-u
+@@ -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
- buildarchtranslate: pentium4: i686
--
2.33.0
+
diff --git a/add-pytest-and-tox-macros.patch b/add-pytest-and-tox-macros.patch
deleted file mode 100644
index b76444e..0000000
--- a/add-pytest-and-tox-macros.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-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/add-riscv64-to-some-arches-macro.patch b/add-riscv64-to-some-arches-macro.patch
index 987acea..0dca59b 100644
--- a/add-riscv64-to-some-arches-macro.patch
+++ b/add-riscv64-to-some-arches-macro.patch
@@ -1,6 +1,6 @@
-From 09e746df9d0c333fef9aabcec3047f68c9d1fc60 Mon Sep 17 00:00:00 2001
+From 7332245a8f59de83485208282f2a15beaf5e544f Mon Sep 17 00:00:00 2001
From: laokz <zhangkai@iscas.ac.cn>
-Date: Sat, 27 Apr 2024 15:09:30 +0800
+Date: Tue, 7 May 2024 10:21:52 +0800
Subject: [PATCH] add riscv64 to some arches macro
---
@@ -8,11 +8,11 @@ Subject: [PATCH] add riscv64 to some arches macro
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/macros b/macros
-index 218cd23..c609e85 100644
+index ddee753..bf82bc5 100644
--- a/macros
+++ b/macros
-@@ -310,7 +310,7 @@
- %generic_arches %{ix86} x86_64 %{arm} aarch64 loongarch64 powerpc64le ppc64le
+@@ -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}
@@ -20,7 +20,7 @@ index 218cd23..c609e85 100644
%ldc_arches %{generic_arches}
%mono_arches %{generic_arches}
%fpc_arches %{generic_arches}
-@@ -319,11 +319,10 @@
+@@ -253,11 +253,10 @@
%GNAT_arches %{GPRbuild_arches} %{generic_arches}
%GPRbuild_arches %{generic_arches}
%nim_arches %{generic_arches}
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-Enable-as-needed-by-default.patch b/backport-Enable-as-needed-by-default.patch
deleted file mode 100644
index 182e388..0000000
--- a/backport-Enable-as-needed-by-default.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 210649d3a50eb862eb95caec54c52cd1513a1dda Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
-Date: Wed, 15 Aug 2018 07:00:14 +0200
-Subject: [PATCH] Enable --as-needed by default
-
-Conflict:adapt context
-Reference:https://src.fedoraproject.org/rpms/redhat-rpm-config/c/357550f7ba4495b01399c904d389369eb0666837
-
-Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
----
- macros | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/macros b/macros
-index cb96614..0d54994 100644
---- a/macros
-+++ b/macros
-@@ -257,8 +257,8 @@
- #%_ld_strict_symbol_defs 1
- %_ld_symbols_flags %{?_ld_strict_symbol_defs:-Wl,-z,defs}
-
--# use "%define _ld_as_needed 1" to enable.
--#%_ld_as_needed 1
-+# use "%undefine _ld_as_needed" to disable.
-+%_ld_as_needed 1
- %_ld_as_needed_flags %{?_ld_as_needed:-Wl,--as-needed}
-
- %_general_options -O2 -g -grecord-gcc-switches -pipe -fstack-protector-strong %[ "%{toolchain}" == "clang" ? "-fgcc-compatible" : "" ]
---
-2.33.0
-
diff --git a/openEuler-rpm-config-add-optflags-for-loongarch64-and-sw_64.patch b/openEuler-rpm-config-add-optflags-for-loongarch64-and-sw_64.patch
deleted file mode 100644
index a50dd54..0000000
--- a/openEuler-rpm-config-add-optflags-for-loongarch64-and-sw_64.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From ed8b90665c3bda8ca6bea1bf541e0232f03fb371 Mon Sep 17 00:00:00 2001
-From: yueyuankun <yueyuankun@kylinos.cn>
-Date: Fri, 15 Mar 2024 11:17:38 +0800
-Subject: [PATCH] add optflags for loongarch64 and sw_64
-
----
- rpmrc | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/rpmrc b/rpmrc
-index 10d7c86..45840e6 100644
---- a/rpmrc
-+++ b/rpmrc
-@@ -8,6 +8,9 @@ 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: loongarch64 %{__global_compiler_flags} -fasynchronous-unwind-tables -fstack-clash-protection
-+optflags: sw_64 %{__global_compiler_flags} -fasynchronous-unwind-tables -fstack-clash-protection
-+
- optflags: ppc64le %{__global_compiler_flags} -fasynchronous-unwind-tables -fstack-clash-protection
-
- buildarchtranslate: athlon: i686
---
-2.43.0
-
diff --git a/openEuler-rpm-config.spec b/openEuler-rpm-config.spec
index b6d62ff..441ccaf 100644
--- a/openEuler-rpm-config.spec
+++ b/openEuler-rpm-config.spec
@@ -3,7 +3,7 @@
Name: %{vendor}-rpm-config
Version: 30
-Release: 58
+Release: 42
License: GPL+
Summary: specific rpm configuration files
URL: https://gitee.com/openeuler/openEuler-rpm-config
@@ -17,29 +17,24 @@ 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
+Patch7: Fix-python3_version-macros-for-Python-3.10.patch
+Patch8: Give-a-warning-when-using-kabi-outside-our-stablelis.patch
+Patch9: fixed-a-bug-that-missing_-p-in-macros.kmp.patch
+Patch10: add-sw-arch-support.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
+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
-Patch21: check-if-the-file-is-a-symbolic-link-in-brp-digest-list.patch
-Patch22: fix-the-ELF-file-cannot-be-found-due-to-escape-of.patch
-Patch23: add-powerpc64le-and-ppc64le-support.patch
-Patch24: Delete-the-commented-code.patch
-Patch25: Add-support-for-selecting-clang-as-a-toolchain.patch
-Patch26: Call-set_build_flags-cc-before-build-check-and-insta.patch
-Patch27: openEuler-rpm-config-add-optflags-for-loongarch64-and-sw_64.patch
-Patch28: add-riscv64-to-some-arches-macro.patch
-Patch29: backport-Enable-as-needed-by-default.patch
+Patch19: check-if-the-file-is-a-symbolic-link-in-brp-digest-list.patch
+Patch20: fix-the-ELF-file-cannot-be-found-due-to-escape-of.patch
+Patch21: add-powerpc64le-and-ppc64le-support.patch
+Patch22: Delete-the-commented-code.patch
+Patch23: add-riscv64-to-some-arches-macro.patch
+Patch24: add-pyproject-macros.patch
Provides: python-rpm-macros = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: python2-rpm-macros = %{?epoch:%{epoch}:}%{version}-%{release}
@@ -125,9 +120,6 @@ install -p -m 644 -t %{buildroot}%{_rpmconfigdir}/macros.d/ macros.perl macros.p
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}`
@@ -140,7 +132,6 @@ sed -i "s/__vendor/%{vendor}/g" `grep "__vendor" -rl %{buildroot}%{_rpmconfigdir
%{_rpmconfigdir}/generic-*
%{_fileattrsdir}/
%{_rpmconfigdir}/macros.d/
-%{_rpmluadir}/%{_vendor}/*.lua
%exclude %{_rpmconfigdir}/macros.d/macros.kmp
%files -n kernel-rpm-macros
@@ -151,116 +142,68 @@ sed -i "s/__vendor/%{vendor}/g" `grep "__vendor" -rl %{buildroot}%{_rpmconfigdir
%{rpmvdir}/find-requires.ksyms
%changelog
-* Tue Aug 6 2024 liyunfei <liyunfei33@huawei.com> - 30-58
-- Fix for "%undefine _auto_set_build_XX" usage
-
-* Wed Jul 10 2024 xujing <xujing125@huawei.com> - 30-57
-- enable --as-needed by default
-
-* Mon Apr 29 2024 xujing <xujing125@huawei.com> - 30-56
-- don't delete the commented code in macros
-
-* Sun Apr 28 2024 laokz <zhangkai@iscas.ac.cn> - 30-55
+* Tue May 07 2024 laokz <zhangkai@iscas.ac.cn> - 30-42
- add riscv64 to some arches macro
-* Sun Apr 7 2024 zhangguangzhi <zhangguangzhi3@huawei.com> - 30-54
-- ima digest list ebs sign ret 2 when errmsg is SIGN_PERMISSION_DENIED
-
-* Fri Mar 29 2024 zhangguangzhi <zhangguangzhi3@huawei.com> - 30-53
-- ima digest list ebs sign use file path and check errmsg
-
-* Fri Mar 22 2024 zhangguangzhi <zhangguangzhi3@huawei.com> - 30-52
-- ima digest list ebs sign support modsig
-
-* Fri Mar 15 2024 yueyuankun <yueyuankun@kylinos.cn> - 30-51
-- Add optflags for loongarch64 and sw_64
-
-* Tue Mar 12 2024 liyunfei <liyunfei33@huawei.com> - 30-50
-- Add clang toolchain support
+* Mon Apr 29 2024 xujing <xujing125@huawei.com> - 30-41
+- don't delete the commented code in macros
-* Tue Mar 5 2024 hongjinghao <hongjinghao@huawei.com> - 30-49
+* Tue Mar 5 2024 hongjinghao <hongjinghao@huawei.com> - 30-40
- Delete the commented code
-* Tue Feb 20 2024 peng.zou <peng.zou@shingroup.cn> - 30-48
-- add powerpc64le to generic_arches
-
-* Mon Dec 11 2023 jiahua.yu <jiahua.yu@shingroup.cn> - 30-47
-- Init support for arch ppc64le
+* Thu Feb 22 2024 peng.zou <peng.zou@shingroup.cn> - 30-39
+- add powerpc64le and ppc64le support
-* Wed Nov 22 2023 xujing <xujing125@huawei.com> - 30-46
+* Tue Nov 21 2023 xujing <xujing125@huawei.com> - 30-38
- add the scanning path of the rpath
fix the ELF file cannot be found due to escape of '\'
excute brp_chrpath before arch_install_post
-* Fri Nov 03 2023 fuanan <fuanan3@h-partners.com> - 30-45
+* Fri Nov 03 2023 fuanan <fuanan3@h-partners.com> - 30-37
- check if the file is a symbolic link in brp-digest-list
-* Thu Nov 2 2023 Yang Yanchao <yangyanchao6@huawei.com> - 30-44
+* Thu Nov 2 2023 Yang Yanchao <yangyanchao6@huawei.com> - 30-36
- kmodtool: use tmp.$$ instand of tmp.txt
-* 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
+* Mon Apr 10 2023 laokz <zhangkai@iscas.ac.cn> - 30-35
- 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.
+* Tue Mar 28 2023 Xinliang Liu <xinliang.liu@linaro.org> - 30-34
+- Fix kmod install failed.
-* Sat Jan 14 2023 luhuaxin <luhuaxin1@huawei.com> - 30-35
+* Wed Dec 21 2022 luhuaxin <luhuaxin1@huawei.com> - 30-33
- support EBS sign
-* Wed Dec 14 2022 huajingyun <huajingyun@loongson.cn> - 30-34
+* Wed Dec 14 2022 huajingyun <huajingyun@loongson.cn> - 30-32
- fix config error for loongarch64
-* Tue Dec 13 2022 Wenlong Zhang <zhangwenlong@loongson.cn> - 30-33
+* Tue Dec 13 2022 Wenlong Zhang <zhangwenlong@loongson.cn> - 30-31
- add loongarch64 for golang_arches
-* Wed Dec 7 2022 yangmingtai <yangmingtai@huawei.com> - 30-32
+* Wed Dec 7 2022 yangmingtai <yangmingtai@huawei.com> - 30-30
- fix latest_kernel macro
-* Wed Dec 7 2022 Yang Yanchao <yangyanchao6@huawei.com> - 30-31
+* Wed Dec 7 2022 Yang Yanchao <yangyanchao6@huawei.com> - 30-29
- backport kmp feature
-* Wed Nov 30 2022 yangmingtai <yangmingtai@huawei.com> - 30-30
-- support Adaptive according to vendor
+* Wed Nov 30 2022 yangmingtai <yangmingtai@huawei.com> - 30-28
+- support adaptive according to vendor
-* Mon Nov 21 2022 huajingyun <huajingyun@loongson.cn> - 30-29
+* Mon Nov 21 2022 huajingyun <huajingyun@loongson.cn> - 30-27
- add loongarch64 support
-* Wed Oct 12 2022 yangmingtai <yangmingtai@huawei.com> - 30-28
+* Mon Oct 24 2022 wuzx<wuzx1226@qq.com> - 30-26
+- Add sw64 architecture
+
+* Wed Oct 12 2022 yangmingtai <yangmingtai@huawei.com> - 30-25
- macro.kmp support -p preamble
-* Thu Sep 8 2022 yangmingtai <yangmingtai@huawei.com> - 30-27
+* Thu Sep 8 2022 yangmingtai <yangmingtai@huawei.com> - 30-24
- 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
+* Fri Jan 21 2022 Liu Zixian <liuzixian4@huawei.com> - 30-23
- 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