diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 6974945..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# openEuler-rpm-config - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 1be441b..0000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# openEuler-rpm-config - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/brp-ldconfig b/brp-ldconfig new file mode 100644 index 0000000..fc22582 --- /dev/null +++ b/brp-ldconfig @@ -0,0 +1,8 @@ +#!/bin/sh -efu + +# If using normal root, avoid changing anything. +if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then + exit 0 +fi + +/sbin/ldconfig -N -r "$RPM_BUILD_ROOT" diff --git a/config.guess b/config.guess new file mode 100644 index 0000000..e69de29 diff --git a/config.sub b/config.sub new file mode 100644 index 0000000..e69de29 diff --git a/generic-rpm-config.spec b/generic-rpm-config.spec index 5c902e6..8d1c64e 100644 --- a/generic-rpm-config.spec +++ b/generic-rpm-config.spec @@ -1,46 +1,27 @@ %global vendor %{?_vendor:%{_vendor}}%{!?_vendor:openEuler} -Name: %{vendor}-rpm-config -Version: 29 -Release: 20 -License: GPL+ -Summary: specific rpm configuration files -URL: https://src.fedoraproject.org/rpms/redhat-rpm-config +Name: %{vendor}-rpm-config +Version: 30 +Release: 1 +License: GPL+ +Summary: specific rpm configuration files +URL: https://gitee.com/src-openeuler/openEuler-rpm-config -# Core rpm settings -#fedora 29 snapshots from https://src.fedoraproject.org/rpms/redhat-rpm-config -Source0: redhat-rpm-config-118.tar.gz -#https://src.fedoraproject.org/rpms/fpc-srpm-macros/blob/f29/f/macros.fpc-srpm -Source1: macros.fpc-srpm -#https://src.fedoraproject.org/rpms/ghc-srpm-macros/blob/f29/f/macros.ghc-srpm -Source2: macros.ghc-srpm -#https://src.fedoraproject.org/rpms/gnat-srpm-macros/blob/f29/f/macros.gnat-srpm -Source3: macros.gnat-srpm -#https://src.fedoraproject.org/rpms/nim-srpm-macros/tree/f29 -Source4: macros.nim-srpm -#https://src.fedoraproject.org/rpms/ocaml-srpm-macros/blob/f29/f/macros.ocaml-srpm -Source5: macros.ocaml-srpm -#https://src.fedoraproject.org/rpms/openblas-srpm-macros/blob/f29/f/macros.openblas-srpm -Source6: macros.openblas-srpm -#https://src.fedoraproject.org/rpms/perl-srpm-macros/blob/f29/f/macros.perl-srpm -Source7: macros.perl-srpm -#https://pagure.io/fedora-rust/rust2rpm -Source8: macros.rust-srpm -#https://github.com/gofed/go-macros -Source9: macros.go-srpm +Source1: brp-ldconfig +Source2: rpmrc +Source3: macros +Source4: config.guess +Source5: config.sub +Source10: macros.perl +Source11: macros.python +Source12: macros.go +Source13: macros.forge -#python https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f29/ -Source10: macros.python -Source11: macros.python-srpm -Source12: macros.python2 -Source13: macros.python3 -Source14: macros.pybytecompile - -Source99: macros.openEuler - -Patch0: genericOS.patch -Patch1: remove-fcf-protection-for-gcc-7.3.0-x86_64.patch +Source20: openEuler-hardened-cc1 +Source21: openEuler-hardened-ld +Source22: openEuler-pie-cc1 +Source23: openEuler-pie-ld Provides: python-rpm-macros = %{version}-%{release} Provides: python2-rpm-macros = %{version}-%{release} @@ -55,6 +36,8 @@ Provides: openblas-srpm-macros Provides: perl-srpm-macros Provides: rust-srpm-macros Provides: go-srpm-macros +Provides: kernel-rpm-macros +Obsoletes: kernel-rpm-macros Obsoletes: python-rpm-macros Obsoletes: python2-rpm-macros Obsoletes: python3-rpm-macros @@ -73,7 +56,6 @@ Requires: efi-srpm-macros Requires: qt5-srpm-macros Requires: rpm >= 4.11.0 -Requires: dwz >= 0.4 Requires: zip #Requires: (annobin if gcc) @@ -81,7 +63,7 @@ Requires: zip Requires: %{_bindir}/find Requires: %{_bindir}/file Requires: %{_bindir}/grep -Requires: sed +Requires: %{_bindir}/sed Requires: %{_bindir}/xargs # -fstack-clash-protection and -fcf-protection require GCC 8. @@ -89,83 +71,37 @@ Conflicts: gcc < 7 Provides: system-rpm-config = %{version}-%{release} -%global rrcdir /usr/lib/rpm/%{vendor} +%global rpmvdir /usr/lib/rpm/%{vendor} %description specific rpm configuration files for %{vendor}. -%package -n kernel-rpm-macros -Summary: Macros and scripts for building kernel module packages -Requires: %{vendor}-rpm-config - -%description -n kernel-rpm-macros -Macros and scripts for building kernel module packages. - %prep -sed -i "s/generic_os/%{vendor}/g" $RPM_SOURCE_DIR/genericOS.patch - -%setup -T -c -tar -xf %{SOURCE0} --strip-components 1 -%patch0 -p1 -%patch1 -p1 -mv redhat-hardened-cc1 %{vendor}-hardened-cc1 -mv redhat-hardened-ld %{vendor}-hardened-ld -mv redhat-annobin-cc1 %{vendor}-annobin-cc1 +%setup -c -T +cp -p %{sources} . %install -mkdir -p %{buildroot}%{rrcdir} -install -p -m 644 -t %{buildroot}%{rrcdir} macros rpmrc -install -p -m 444 -t %{buildroot}%{rrcdir} %{vendor}-hardened-* -install -p -m 444 -t %{buildroot}%{rrcdir} %{vendor}-annobin-* -install -p -m 755 -t %{buildroot}%{rrcdir} config.* -install -p -m 755 -t %{buildroot}%{rrcdir} dist.sh rpmsort symset-table kmodtool -install -p -m 755 -t %{buildroot}%{rrcdir} brp-* - -install -p -m 755 -t %{buildroot}%{rrcdir} find-* -mkdir -p %{buildroot}%{rrcdir}/find-provides.d -install -p -m 644 -t %{buildroot}%{rrcdir}/find-provides.d firmware.prov modalias.prov - -install -p -m 755 -t %{buildroot}%{rrcdir} brp-* +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}%{rpmvdir} brp-* +install -p -m 644 -t %{buildroot}%{rpmvdir} openEuler-* mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d -install -p -m 644 -t %{buildroot}%{_rpmconfigdir}/macros.d macros.* +install -p -m 644 -t %{buildroot}%{_rpmconfigdir}/macros.d/ %{SOURCE11} %{SOURCE12} %{SOURCE13} mkdir -p %{buildroot}%{_fileattrsdir} -install -p -m 644 -t %{buildroot}%{_fileattrsdir} *.attr -install -p -m 755 -t %{buildroot}%{_rpmconfigdir} kmod.prov - -install -m 644 %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8} \ - %{SOURCE9} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE99}\ - %{buildroot}/%{rpmmacrodir}/ %files -%dir %{rrcdir} -%{rrcdir}/macros -%{rrcdir}/rpmrc -%{rrcdir}/brp-* -%{rrcdir}/dist.sh -%{rrcdir}/%{vendor}-hardened-* -%{rrcdir}/%{vendor}-annobin-* -%{rrcdir}/config.* -%{rrcdir}/find-provides -%{rrcdir}/find-requires -%{rrcdir}/brp-ldconfig -%{_fileattrsdir}/*.attr -%{_rpmconfigdir}/kmod.prov -%{_rpmconfigdir}/macros.d/macros.* -%doc buildflags.md -%exclude %{_rpmconfigdir}/macros.d/macros.kmp - -%files -n kernel-rpm-macros -%dir %{rrcdir}/find-provides.d -%{rrcdir}/kmodtool -%{rrcdir}/rpmsort -%{rrcdir}/symset-table -%{rrcdir}/find-provides.ksyms -%{rrcdir}/find-requires.ksyms -%{rrcdir}/find-provides.d/firmware.prov -%{rrcdir}/find-provides.d/modalias.prov -%{_rpmconfigdir}/macros.d/macros.kmp +%dir %{rpmvdir} +%{rpmvdir}/macros +%{rpmvdir}/rpmrc +%{rpmvdir}/brp-* +%{rpmvdir}/config.* +%{rpmvdir}/openEuler-* +%{_fileattrsdir}/ +%{_rpmconfigdir}/macros.d/ +%{_rpmconfigdir}/macros.d/* %changelog * Thu Dec 26 2019 openEuler Buildteam 29-20 diff --git a/genericOS.patch b/genericOS.patch deleted file mode 100644 index 8fbc0bf..0000000 --- a/genericOS.patch +++ /dev/null @@ -1,193 +0,0 @@ -diff -urN a/buildflags.md b/buildflags.md ---- a/buildflags.md 2019-08-08 06:06:41.000000000 +0000 -+++ b/buildflags.md 2019-08-09 06:55:22.060000000 +0000 -@@ -208,7 +208,7 @@ - - For hardened builds (which are enabled by default, see above for how - to disable them), the flag --`-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1` is added to the -+`-specs=/usr/lib/rpm/generic_os/redhat-hardened-cc1` is added to the - command line. It adds the following flag to the command line: - - * `-fPIE`: Compile for a position-independent executable (PIE), -@@ -231,7 +231,7 @@ - - To support [binary watermarks for ELF - objects](https://fedoraproject.org/wiki/Toolchain/Watermark) using --annobin, the `-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1` flag is -+annobin, the `-specs=/usr/lib/rpm/generic_os/redhat-annobin-cc1` flag is - added by default. This can be switched off by undefining the - `%_annotated_build` RPM macro (see above). - -@@ -314,7 +314,7 @@ - (optional, see above). - - For hardened builds, the --`-specs=/usr/lib/rpm/redhat/redhat-hardened-ld` flag is added to the -+`-specs=/usr/lib/rpm/generic_os/redhat-hardened-ld` flag is added to the - compiler driver command line. (This can be disabled by undefining the - `%_hardened_build` macro; see above) This activates the following - linker flags: -diff -urN a/dist.sh b/dist.sh ---- a/dist.sh 2019-08-08 06:06:41.000000000 +0000 -+++ b/dist.sh 2019-08-09 06:55:22.060000000 +0000 -@@ -11,7 +11,7 @@ - # If we successfully detect the version number, we output the - # dist tag. Otherwise, we exit with no output. - --RELEASEFILE=/etc/redhat-release -+RELEASEFILE=/etc/generic_os-release - - function check_num { - MAINVER=`cut -d "(" -f 1 < $RELEASEFILE | \ -diff -urN a/find-provides b/find-provides ---- a/find-provides 2019-08-08 06:06:41.000000000 +0000 -+++ b/find-provides 2019-08-09 06:55:22.060000000 +0000 -@@ -15,7 +15,7 @@ - - # - # --- any other extra find-provides scripts --for i in /usr/lib/rpm/redhat/find-provides.d/*.prov -+for i in /usr/lib/rpm/generic_os/find-provides.d/*.prov - do - [ -x $i ] && - (echo $filelist | tr '[:blank:]' \\n | $i | sort -u) -@@ -44,7 +44,7 @@ - unset is_kmod - fi - --[ -x /usr/lib/rpm/redhat/find-provides.ksyms ] && [ "$is_kmod" ] && -- printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/redhat/find-provides.ksyms -+[ -x /usr/lib/rpm/generic_os/find-provides.ksyms ] && [ "$is_kmod" ] && -+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/generic_os/find-provides.ksyms - - exit 0 -diff -urN a/find-requires b/find-requires ---- a/find-requires 2019-08-08 06:06:41.000000000 +0000 -+++ b/find-requires 2019-08-09 06:55:22.060000000 +0000 -@@ -33,7 +33,7 @@ - done - - # Disabling for now while the Fedora kernel doesn't produce kABI deps. --#[ -x /usr/lib/rpm/redhat/find-requires.ksyms ] && [ "$is_kmod" ] && --# printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/redhat/find-requires.ksyms -+#[ -x /usr/lib/rpm/generic_os/find-requires.ksyms ] && [ "$is_kmod" ] && -+# printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/generic_os/find-requires.ksyms - - exit 0 -diff -urN a/macros b/macros ---- a/macros 2019-08-08 06:06:41.000000000 +0000 -+++ b/macros 2019-08-09 06:57:55.040000000 +0000 -@@ -3,7 +3,7 @@ - #============================================================================== - # ---- per-platform macros. - # --%_vendor redhat -+%_vendor generic_os - %_os linux - %_target_platform %{_target_cpu}-%{_vendor}-%{_target_os}%{?_gnu} - -@@ -77,7 +77,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/redhat/$(basename $i) ] && %{__rm} -f $i && %{__cp} -fv /usr/lib/rpm/redhat/$(basename $i) $i ; \ -+ [ -f /usr/lib/rpm/generic_os/$(basename $i) ] && %{__rm} -f $i && %{__cp} -fv /usr/lib/rpm/generic_os/$(basename $i) $i ; \ - done ; \ - [ "%_configure_libtool_hardening_hack" = 1 ] && [ x != "x%{_hardened_ldflags}" ] && \ - for i in $(find . -name ltmain.sh) ; do \ -@@ -136,7 +136,7 @@ - - # Build root policy macros. Standard naming: - # convert all '-' in basename to '_', add two leading underscores. --%__brp_ldconfig /usr/lib/rpm/redhat/brp-ldconfig -+%__brp_ldconfig /usr/lib/rpm/generic_os/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} -@@ -147,7 +147,7 @@ - # __brp_mangle_shebangs_exclude_file - file from which to get shebangs to exclude - # __brp_mangle_shebangs_exclude_from - files to ignore - # __brp_mangle_shebangs_exclude_from_file - file from which to get files to ignore --%__brp_mangle_shebangs /usr/lib/rpm/redhat/brp-mangle-shebangs %{?__brp_mangle_shebangs_exclude:--shebangs "%{?__brp_mangle_shebangs_exclude}"} %{?__brp_mangle_shebangs_exclude_file:--shebangs-from "%{__brp_mangle_shebangs_exclude_file}"} %{?__brp_mangle_shebangs_exclude_from:--files "%{?__brp_mangle_shebangs_exclude_from}"} %{?__brp_mangle_shebangs_exclude_from_file:--files-from "%{__brp_mangle_shebangs_exclude_from_file}"} -+%__brp_mangle_shebangs /usr/lib/rpm/generic_os/brp-mangle-shebangs %{?__brp_mangle_shebangs_exclude:--shebangs "%{?__brp_mangle_shebangs_exclude}"} %{?__brp_mangle_shebangs_exclude_file:--shebangs-from "%{__brp_mangle_shebangs_exclude_file}"} %{?__brp_mangle_shebangs_exclude_from:--files "%{?__brp_mangle_shebangs_exclude_from}"} %{?__brp_mangle_shebangs_exclude_from_file:--files-from "%{__brp_mangle_shebangs_exclude_from_file}"} - - %__os_install_post \ - %{?__brp_ldconfig} \ -@@ -193,9 +193,9 @@ - # Use XZ compression for binary payloads - %_binary_payload w2.xzdio - --%_hardening_cflags -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -+%_hardening_cflags -specs=/usr/lib/rpm/generic_os/generic_os-hardened-cc1 - # we don't escape symbols '~', '"', etc. so be careful when changing this --%_hardening_ldflags -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -+%_hardening_ldflags -Wl,-z,now -specs=/usr/lib/rpm/generic_os/generic_os-hardened-ld - - # Harden packages by default for Fedora 23: - # https://fedorahosted.org/fesco/ticket/1384 (accepted on 2014-02-11) -@@ -204,12 +204,14 @@ - %_hardened_cflags %{?_hardened_build:%{_hardening_cflags}} - %_hardened_ldflags %{?_hardened_build:%{_hardening_ldflags}} - --%_annobin_cflags -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -+#%_annobin_cflags -specs=/usr/lib/rpm/generic_os/generic_os-annobin-cc1 -+%_annobin_cflags %{nil} - - # Add extra information to binary objects created by gcc for Fedora 28: - # https://pagure.io/fesco/issue/1780 (accepted on 2017-10-30) - # Use "%undefine _annotated_build" to disable. --%_annotated_build 1 -+#%_annotated_build 1 -+%undefine _annotated_build - %_annotated_cflags %{?_annotated_build:%{_annobin_cflags}} - - # Fail linking if there are undefined symbols. Required for proper -diff -urN a/macros.kmp b/macros.kmp ---- a/macros.kmp 2019-08-08 06:06:41.000000000 +0000 -+++ b/macros.kmp 2019-08-09 06:55:22.060000000 +0000 -@@ -2,8 +2,8 @@ - redhat_kernel_module_package 1 - kernel_module_package_release 1 - --%__find_provides /usr/lib/rpm/redhat/find-provides --%__find_requires /usr/lib/rpm/redhat/find-requires -+%__find_provides /usr/lib/rpm/generic_os/find-provides -+%__find_requires /usr/lib/rpm/generic_os/find-requires - - #kernel_module_package [ -n name ] [ -v version ] [ -r release ] [ -s script ] - # [ -f filelist] [ -x ] [ -p preamble ] flavor flavor ... -@@ -12,10 +12,10 @@ - kernel-devel - - %kernel_module_package(n:v:r:s:f:xp:) %{expand:%( \ -- %define kmodtool %{-s*}%{!-s:/usr/lib/rpm/redhat/kmodtool} \ -+ %define kmodtool %{-s*}%{!-s:/usr/lib/rpm/generic_os/kmodtool} \ - %define kmp_version %{-v*}%{!-v:%{version}} \ - %define kmp_release %{-r*}%{!-r:%{release}} \ -- %define latest_kernel %(rpm -q --qf '%{VERSION}-%{RELEASE}\\\\n' `rpm -q kernel-devel | /usr/lib/rpm/redhat/rpmsort -r | head -n 1` | head -n 1) \ -+ %define latest_kernel %(rpm -q --qf '%{VERSION}-%{RELEASE}\\\\n' `rpm -q kernel-devel | /usr/lib/rpm/generic_os/rpmsort -r | 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" \ -diff -urN a/redhat-rpm-config.spec b/redhat-rpm-config.spec ---- a/redhat-rpm-config.spec 2019-08-08 06:06:41.000000000 +0000 -+++ b/redhat-rpm-config.spec 2019-08-09 06:55:22.060000000 +0000 -@@ -110,7 +110,7 @@ - - Provides: system-rpm-config = %{version}-%{release} - --%global rrcdir /usr/lib/rpm/redhat -+%global rrcdir /usr/lib/rpm/generic_os - - %description - Red Hat specific rpm configuration files. -@@ -952,7 +952,7 @@ - - * Mon Jul 7 2003 Jens Petersen - 8.0.25-1 - - update config.{guess,sub} to 2003-06-17 --- define VENDOR to be redhat only when /etc/redhat-release present -+- define VENDOR to be redhat only when /etc/generic_os-release present - [suggested by jbj] - - put VENDOR in vendor field in our config.guess file for - ia64, ppc, ppc64, s390, s390x, x86_64 and elf32-i386 Linux diff --git a/macros b/macros new file mode 100644 index 0000000..e69de29 diff --git a/macros.forge b/macros.forge new file mode 100644 index 0000000..e69de29 diff --git a/macros.fpc-srpm b/macros.fpc-srpm deleted file mode 100644 index d755825..0000000 --- a/macros.fpc-srpm +++ /dev/null @@ -1,3 +0,0 @@ -%fpc_arches %{ix86} %{arm} x86_64 ppc64 -# fpc_arches lists the architectures where the Free Pascal Compiler is -# available in Fedora. diff --git a/macros.ghc-srpm b/macros.ghc-srpm deleted file mode 100644 index 766ab9e..0000000 --- a/macros.ghc-srpm +++ /dev/null @@ -1,7 +0,0 @@ -# Macros needed for building srpms of Haskell packages -# from ghc-7.8 ghci is supported on all arch's -# former archs: armv5tel ppc sparcv9 -%ghc_arches_with_ghci %{ix86} x86_64 armv7hl ppc64 ppc64le aarch64 s390 s390x %{mips} -# ghc_arches is not used in current packages but still here for back compat -# former archs: alpha ppc sparcv9 armv5tel -%ghc_arches %{ix86} x86_64 armv7hl ppc64 ppc64le aarch64 s390 s390x diff --git a/macros.gnat-srpm b/macros.gnat-srpm deleted file mode 100644 index 02df504..0000000 --- a/macros.gnat-srpm +++ /dev/null @@ -1,14 +0,0 @@ -%GNAT_arches %{GPRbuild_arches} ia64 ppc alpha %{ix86} -# GNAT_arches lists the architectures where GNAT is available in Fedora. Ada -# packages won't build on other architectures until GNAT is bootstrapped for -# them. -# (Although not all of these architectures have active maintainer teams in -# Fedora, it seems appropriate to keep this list in agreement with the one in -# gcc.spec.) -%GPRbuild_arches x86_64 ppc64 ppc64p7 ppc64le s390x %{arm} aarch64 -# GPRbuild_arches lists the architectures where GPRbuild is available in Fedora. -# If an architecture is included in GNAT_arches but not in GPRbuild_arches, then -# either GPRbuild hasn't been bootstrapped for that architecture, or there might -# be some architecture-specific problem. -# x86 is excluded from GPRbuild_arches because of -# https://bugzilla.redhat.com/show_bug.cgi?id=1444614 diff --git a/macros.go b/macros.go new file mode 100644 index 0000000..e69de29 diff --git a/macros.go-srpm b/macros.go-srpm deleted file mode 100644 index c1e6e75..0000000 --- a/macros.go-srpm +++ /dev/null @@ -1,170 +0,0 @@ -# Copyright (c) 2015-2018 Jakub Cajka , -# Jan Chaloupka , -# Nicolas Mailhot -# This file is distributed under the terms of GNU GPL license version 3, or -# any later version. - -# This file contains macros for building projects in golang for packages -# with golang compiler or gcc-go compiler based on an architecture. -# Golang is primarly for primary architectures, gcc-go for secondary. -# -# This file provides only macros and must not use any other package except -# redhat-rpm-macros. - -# Define arches for PA and SA -%golang_arches %{ix86} x86_64 %{arm} aarch64 ppc64le s390x -%gccgo_arches %{mips} -%go_arches %{golang_arches} %{gccgo_arches} - -# Where to set GOPATH for builds -%gopath %{_datadir}/gocode - -# Define go_compilers macro to signal go-compiler package is available -%go_compiler 1 - -# Sanitize a Go import path that can then serve as rpm package name -# Mandatory parameter: a Go import path -%gorpmname() %{lua: -local goname = rpm.expand("%1") --- lowercase and end with '/' -goname = string.lower(goname .. "/") --- remove eventual protocol prefix -goname = string.gsub(goname, "^http(s?)://", "") --- remove eventual .git suffix -goname = string.gsub(goname, "%.git/*", "") --- remove eventual git. prefix -goname = string.gsub(goname, "^git%.", "") --- add golang prefix -goname = "golang-" .. goname --- remove FQDN root (.com, .org, etc) -goname = string.gsub(goname, "^([^/]+)%.([^%./]+)/", "%1/") --- special-case x.y.z number-strings as that’s an exception in our naming --- guidelines -repeat - goname, i = string.gsub(goname, "(%d)%.(%d)", "%1:%2") -until i == 0 --- replace various separators rpm does not like with - -goname = string.gsub(goname, "[%._/%-]+", "-") --- because of the Azure sdk -goname = string.gsub(goname, "%-for%-go%-", "-") --- Tokenize along - separators and remove duplicates to avoid --- golang-foo-foo-bar-foo names -local result = "" -local tokens = {} -tokens["go"] = true -for token in string.gmatch(goname, "[^%-]+") do - if not tokens[token] then - result = result .. "-" .. token - tokens[token] = true - end -end --- reassemble the string, restore x.y.z runs, convert the vx.y.z --- Go convention to x.y.z as prefered in rpm naming -result = string.gsub(result, "^-", "") -result = string.gsub(result, ":", ".") --- some projects have a name that end up in a number, and *also* add release --- numbers on top of it, keep a - prefix before version strings -result = string.gsub(result, "%-v([%.%d])", "-%1") -print(result) -} - -# Map Go information to rpm metadata. This macro will compute default spec -# variable values. -# -# The following spec variable MUST be set before calling the macro: -# -# goipath the packaged Go project import path -# -# The following spec variables SHOULD be set before calling the macro: -# -# forgeurl the project url on the forge, strongly recommended, if it can not -# be deduced from goipath; alternatively, use -u -# Version if applicable, set it with Version: -# tag if applicable -# commit if applicable -# -# The macro will attempt to compute and set the following variables if they are -# not already set by the packager: -# -# goname an rpm-compatible package name derived from goipath -# gosource an URL that can be used as SourceX: value -# gourl an URL that can be used as URL: value -# -# It will delegate processing to the forgemeta macro for: -# -# forgesource an URL that can be used as SourceX: value -# forgesetupargs the correct arguments to pass to %setup for this source -# used by %forgesetup and %forgeautosetup -# archivename the source archive filename, without extentions -# archiveext the source archive filename extensions, without leading dot -# archiveurl the url that can be used to download the source archive, -# without renaming -# scm the scm type, when packaging code snapshots: commits or tags -# -# If the macro is unable to parse your forgeurl value set at least archivename -# and archiveurl before calling it. -# -# Most of the computed variables are both overridable and optional. However, -# the macro WILL REDEFINE %{dist} when packaging a snapshot (commit or tag). -# The previous %{dist} value will be lost. Don’t call the macro if you don’t -# wish %{dist} to be changed. -# -# Optional parameters: -# -u Ignore forgeurl even if it exists and use instead. Note -# that the macro will still end up setting as the forgeurl -# spec variable if it manages to parse it. -# -s Silently ignore problems in forgeurl, use it if it can be parsed, -# ignore it otherwise. -# -p Restore problem handling, override -s. -# -v Be verbose and print every spec variable the macro sets. -# -i Print some info about the state of spec variables the macro may use or -# set at the end of the processing. -%gometa(u:spvi) %{expand:%{lua: -local forgeurl = rpm.expand("%{?-u*}") -if (forgeurl == "") then - forgeurl = rpm.expand("%{?forgeurl}") -end --- Be explicit about the spec variables we’re setting -local function explicitset(rpmvariable,value) - rpm.define(rpmvariable .. " " .. value) - if (rpm.expand("%{?-v}") ~= "") then - rpm.expand("%{echo:Setting %%{" .. rpmvariable .. "} = " .. value .. "\\n}") - end -end --- Never ever stomp on a spec variable the packager already set -local function safeset(rpmvariable,value) - if (rpm.expand("%{?" .. rpmvariable .. "}") == "") then - explicitset(rpmvariable,value) - end -end --- All the Go packaging automation relies on goipath being set -local goipath = rpm.expand("%{?goipath}") -if (goipath == "") then - rpm.expand("%{error:Please set the Go import path in the “goipath” variable before calling “gometa”!}") -end --- Compute and set spec variables -if (forgeurl ~= "") then - rpm.expand("%forgemeta %{?-v} %{?-i} %{?-s} %{?-p} -u " .. forgeurl .. "\\n") - safeset("gourl", forgeurl) -else - safeset("gourl", "https://" .. goipath) - rpm.expand("%forgemeta %{?-v} %{?-i} -s %{?-p} -u %{gourl}\\n") -end -if (rpm.expand("%{?forgesource}") ~= "") then - safeset("gosource", "%{forgesource}") -else - safeset("gosource", "%{gourl}/%{archivename}.%{archiveext}") -end -safeset("goname", "%gorpmname %{goipath}") -rpm.define("gosetup %forgesetup") --- Final spec variable summary if the macro was called with -i -if (rpm.expand("%{?-i}") ~= "") then - rpm.expand("%{echo:Go-specific packaging variables}") - rpm.expand("%{echo: goipath: %{?goipath}}") - rpm.expand("%{echo: goname: %{?goname}}") - rpm.expand("%{echo: gourl: %{?gourl}}") - rpm.expand("%{echo: gosource: %{?gosource}}") -end} -BuildRequires: compiler(go-compiler) -ExclusiveArch: %{go_arches} -} diff --git a/macros.nim-srpm b/macros.nim-srpm deleted file mode 100644 index 8d5b12b..0000000 --- a/macros.nim-srpm +++ /dev/null @@ -1 +0,0 @@ -%nim_arches %{ix86} x86_64 %{arm} aarch64 %{power64} diff --git a/macros.ocaml-srpm b/macros.ocaml-srpm deleted file mode 100644 index 7a5d744..0000000 --- a/macros.ocaml-srpm +++ /dev/null @@ -1,11 +0,0 @@ -# Note that OCaml is compiled on all architectures. However -# on some (rare) architectures, only bytecode compilation is -# available. Use these macros to find out if native code -# compilation is available on a particular architecture. -# Architectures that support the OCaml native code compiler. -%ocaml_native_compiler aarch64 %{arm} %{ix86} ppc ppc64 ppc64le riscv64 s390x sparc sparcv9 x86_64 -# Architectures that support native dynamic linking of OCaml code. -%ocaml_natdynlink aarch64 %{arm} %{ix86} ppc ppc64 ppc64le riscv64 s390x sparc sparcv9 x86_64 -# Architectures that support profiling of native code (ocamlopt -p). -%ocaml_native_profiling %{arm} %{ix86} ppc ppc64 ppc64le sparc sparcv9 x86_64 - diff --git a/macros.openEuler b/macros.openEuler deleted file mode 100644 index 03c682d..0000000 --- a/macros.openEuler +++ /dev/null @@ -1,31 +0,0 @@ -#custom macros - -%disable_rpath \ -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool \ -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool - -%delete_la_and_a \ -find $RPM_BUILD_ROOT -type f -name "*.la" -delete \ -find $RPM_BUILD_ROOT -type f -name "*.a" -delete - -%delete_la find $RPM_BUILD_ROOT -type f -name "*.la" -delete - -%chrpath_delete find $RPM_BUILD_ROOT/ -type f -exec file {} ';' | grep "\" | awk -F ':' '{print $1}' | xargs -i chrpath --delete {} - -%package_help \ -%package help \ -Summary: Documents for %{name} \ -Buildarch: noarch \ -Requires: man info \ -\ -%description help \ -Man pages and other related documents for %{name}. - -#%sbin_installinfo_rm bc.info -#%sbin_installinfo_rm bc.info.gz - -%install_info() \ -/sbin/install-info %1 %{_infodir}/dir || : - -%install_info_rm() \ -/sbin/install-info --remove %1 %{_infodir}/dir || : diff --git a/macros.openblas-srpm b/macros.openblas-srpm deleted file mode 100644 index c4f9fdc..0000000 --- a/macros.openblas-srpm +++ /dev/null @@ -1,2 +0,0 @@ -# Architectures that OpenBLAS supports -%openblas_arches x86_64 %{ix86} armv7hl %{power64} aarch64 s390x diff --git a/macros.perl b/macros.perl new file mode 100644 index 0000000..9c1fd0c --- /dev/null +++ b/macros.perl @@ -0,0 +1,151 @@ +# Sensible Perl-specific RPM build macros. +# +# Note that these depend on the generic filtering system being in place in +# rpm core; but won't cause a build to fail if they're not present. +# +# Chris Weyl 2009 +# Marcela Mašláňová 2011 + +# This macro unsets several common vars used to control how Makefile.PL (et +# al) build and install packages. We also set a couple to help some of the +# common systems be less interactive. This was blatantly stolen from +# cpanminus, and helps building rpms locally when one makes extensive use of +# local::lib, etc. +# +# Usage, in %build, before "%{__perl} Makefile.PL ..." +# +# %{?perl_ext_env_unset} + +%perl_ext_env_unset %{expand: +unset PERL_MM_OPT MODULEBUILDRC PERL5INC +export PERL_AUTOINSTALL="--defaultdeps" +export PERL_MM_USE_DEFAULT=1 +} + +############################################################################# +# Filtering macro incantations + +# keep track of what "revision" of the filtering we're at. Each time we +# change the filter we should increment this. + +%perl_default_filter_revision 3 + +# By default, for perl packages we want to filter all files in _docdir from +# req/prov scanning. +# Filtering out any provides caused by private libs in vendorarch/archlib +# (vendor/core) is done by rpmbuild since Fedora 20 +# . +# +# Note that this must be invoked in the spec file, preferably as +# "%{?perl_default_filter}", before any %description block. + +%perl_default_filter %{expand: \ +%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_docdir} +%global __requires_exclude_from %{?__requires_exclude_from:%__requires_exclude_from|}^%{_docdir} +%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\\\(VMS|^perl\\\\(Win32|^perl\\\\(DB\\\\)|^perl\\\\(UNIVERSAL\\\\) +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\\\(VMS|^perl\\\\(Win32 +} + +############################################################################# +# Macros to assist with generating a "-tests" subpackage in a semi-automatic +# manner. +# +# The following macros are still in a highly experimental stage and users +# should be aware that the interface and behaviour may change. +# +# PLEASE, PLEASE CONDITIONALIZE THESE MACROS IF YOU USE THEM. +# +# See http://gist.github.com/284409 + +# These macros should be invoked as above, right before the first %description +# section, and conditionalized. e.g., for the common case where all our tests +# are located under t/, the correct usage is: +# +# %{?perl_default_subpackage_tests} +# +# If custom files/directories need to be specified, this can be done as such: +# +# %{?perl_subpackage_tests:%perl_subpackage_tests t/ one/ three.sql} +# +# etc, etc. + +%perl_version %(eval "`%{__perl} -V:version`"; echo $version) +%perl_testdir %{_libexecdir}/perl5-tests +%cpan_dist_name %(eval echo %{name} | %{__sed} -e 's/^perl-//') + +# easily mark something as required by -tests and BR to the main package +%tests_req() %{expand:\ +BuildRequires: %*\ +%%tests_subpackage_requires %*\ +} + +# fixup (and create if needed) the shbang lines in tests, so they work and +# rpmlint doesn't (correctly) have a fit +%fix_shbang_line() \ +TMPHEAD=`mktemp`\ +TMPBODY=`mktemp`\ +for file in %* ; do \ + head -1 $file > $TMPHEAD\ + tail -n +2 $file > $TMPBODY\ + %{__perl} -pi -e '$f = /^#!/ ? "" : "#!%{__perl}$/"; $_="$f$_"' $TMPHEAD\ + cat $TMPHEAD $TMPBODY > $file\ +done\ +%{__perl} -MExtUtils::MakeMaker -e "ExtUtils::MM_Unix->fixin(qw{%*})"\ +%{__rm} $TMPHEAD $TMPBODY\ +%{nil} + +# additional -tests subpackage requires, if any +%tests_subpackage_requires() %{expand: \ +%global __tests_spkg_req %{?__tests_spkg_req} %* \ +} + +# additional -tests subpackage provides, if any +%tests_subpackage_provides() %{expand: \ +%global __tests_spkg_prov %{?__tests_spkg_prov} %* \ +} + +# +# Runs after the body of %check completes. +# + +%__perl_check_pre %{expand: \ +%{?__spec_check_pre} \ +pushd %{buildsubdir} \ +%define perl_br_testdir %{buildroot}%{perl_testdir}/%{cpan_dist_name} \ +%{__mkdir_p} %{perl_br_testdir} \ +%{__tar} -cf - %{__perl_test_dirs} | ( cd %{perl_br_testdir} && %{__tar} -xf - ) \ +find . -maxdepth 1 -type f -name '*META*' -exec %{__cp} -vp {} %{perl_br_testdir} ';' \ +find %{perl_br_testdir} -type f -exec %{__chmod} -c -x {} ';' \ +T_FILES=`find %{perl_br_testdir} -type f -name '*.t'` \ +%fix_shbang_line $T_FILES \ +%{__chmod} +x $T_FILES \ +%{_fixperms} %{perl_br_testdir} \ +popd \ +} + +# +# The actual invoked macro +# + +%perl_subpackage_tests() %{expand: \ +%global __perl_package 1\ +%global __perl_test_dirs %* \ +%global __spec_check_pre %{expand:%{__perl_check_pre}} \ +%package tests\ +Summary: Test suite for package %{name}\ +Group: Development/Debug\ +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}\ +Requires: /usr/bin/prove \ +%{?__tests_spkg_req:Requires: %__tests_spkg_req}\ +%{?__tests_spkg_prov:Provides: %__tests_spkg_prov}\ +AutoReqProv: 0 \ +%description tests\ +This package provides the test suite for package %{name}.\ +%files tests\ +%defattr(-,root,root,-)\ +%{perl_testdir}\ +} + +# shortcut sugar +%perl_default_subpackage_tests %perl_subpackage_tests t/ + diff --git a/macros.perl-srpm b/macros.perl-srpm deleted file mode 100644 index a284fcf..0000000 --- a/macros.perl-srpm +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2012 Petr Pisar . -# This file is distributed under the terms of GNU GPL license version 3, or -# any later version. -# This file contains macros that can be used for building source RPM package -# from git source repository. This file must present in minimal build root to -# take effect. -# This file must not use Perl or any non-minimal-build-root package. The -# purpose is to enable bootstrapping perl. - -# Perl bootstrap For rebuild of Perl and all related packages is needed -# switch, which enable only vital build requires. This could help cyclic -# dependencies, for example: perl-Test-Minimum-Version <-> -# perl-Perl-Minimum-Version Defined for bootstraping, undefined otherwise. -# Usage: %%if !%%{defined perl_bootstrap} ... %%endif -#%%perl_bootstrap 1 diff --git a/macros.pybytecompile b/macros.pybytecompile deleted file mode 100644 index a41b3a2..0000000 --- a/macros.pybytecompile +++ /dev/null @@ -1,19 +0,0 @@ -# Note that the path could itself be a python file, or a directory - -# Python's compile_all module only works on directories, and requires a max -# recursion depth - -# Usage: -# %py_byte_compile -# Example: -# %py_byte_compile %{__python3} %{buildroot}%{_datadir}/spam/plugins/ - -# This will terminate build on SyntaxErrors, if you want to avoid that, -# use it in a subshell like this: -# (%{py_byte_compile }) || : - -%py_byte_compile()\ -python_binary="%1"\ -bytecode_compilation_path="%2"\ -find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -m py_compile\ -find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -m py_compile diff --git a/macros.python b/macros.python index 70eb148..e69de29 100644 --- a/macros.python +++ b/macros.python @@ -1,81 +0,0 @@ -%py_setup setup.py -%py_shbang_opts -s - -# Use the slashes after expand so that the command starts on the same line as -# the macro -%py_build() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python} %{py_setup} %{?py_setup_args} build --executable="%{__python} %{py_shbang_opts}" %{?*} - sleep 1 -} - -%py_build_egg() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python} %{py_setup} %{?py_setup_args} bdist_egg %{?*} - sleep 1 -} - -%py_build_wheel() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python} %{py_setup} %{?py_setup_args} bdist_wheel %{?*} - sleep 1 -} - -%py_install() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*} -} - -%py_install_egg() %{expand:\\\ - mkdir -p %{buildroot}%{python_sitelib} - easy_install -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python_version}.egg %{?*} -} - -%py_install_wheel() %{expand:\\\ - pip install -I dist/%{1} --root %{buildroot} --strip-file-prefix %{buildroot} --no-deps -} - -%python_provide() %{lua: - function string.starts(String,Start) - return string.sub(String,1,string.len(Start))==Start - end - package = rpm.expand("%{?1}") - vr = rpm.expand("%{?epoch:%{epoch}:}%{version}-%{release}") - if (string.starts(package, "python2-")) then - if (rpm.expand("%{?buildarch}") ~= "noarch") then - str = "Provides: python-" .. string.sub(package,9,string.len(package)) .. "%{?_isa} = " .. vr - print(rpm.expand(str)) - end - print("\\nProvides: python-") - print(string.sub(package,9,string.len(package))) - print(" = ") - print(vr) - --Obsoleting the previous default python package - print("\\nObsoletes: python-") - print(string.sub(package,9,string.len(package))) - print(" < ") - print(vr) - elseif (string.starts(package, "python" .. rpm.expand("%{python3_pkgversion}") .. "-")) then - --No unversioned provides as python3 is not default - elseif (rpm.expand("%{?python3_other_pkgversion}") ~= "" and string.starts(package, "python" .. rpm.expand("%{python3_other_pkgversion}") .. "-")) then - --No unversioned provides as python3_other is not default - elseif (string.starts(package, "pypy-")) then - --No unversioned provides as pypy is not default - elseif (string.starts(package, "pypy3-")) then - --No unversioned provides as pypy is not default - elseif (string.starts(package, "python-")) then - --Providing the current default python - print("Provides: python2-") - print(string.sub(package,8,string.len(package))) - print(" = ") - print(vr) - else - print("%python_provide: ERROR: ") - print(package) - print(" not recognized.") - end -} - -%python_enable_dependency_generator() \ -%global __pythondist_requires %{_rpmconfigdir}/pythondistdeps.py --requires \ -%{nil} diff --git a/macros.python-srpm b/macros.python-srpm deleted file mode 100644 index c4bdd1c..0000000 --- a/macros.python-srpm +++ /dev/null @@ -1,107 +0,0 @@ -# python3_pkgversion specifies the version of Python 3 in the distro. It can be -# a specific version (e.g. 34 in Fedora EPEL7) -%python3_pkgversion 3 - -# Set to /bin/true to avoid %ifdefs and %{? in specfiles -%__python3_other /bin/true -%py3_other_build /bin/true -%py3_other_install /bin/true - - - -# === Macros for Build/Requires tags using Python dist tags === -# - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages -# - These macros need to be in macros.python-srpm, because BuildRequires tags -# get rendered as runtime requires into the metadata of SRPMs. - -# Converts Python dist name to a canonical format -%py_dist_name() %{lua:\ - name = rpm.expand("%{?1:%{1}}");\ - canonical = string.gsub(string.lower(name), "[^%w%.]+", "-");\ - print(canonical);\ -} - -# Creates Python 2 dist tag(s) after converting names to canonical format -# Needs to first put all arguments into a list, because invoking a different -# macro (%py_dist_name) overwrites them -%py2_dist() %{lua:\ - args = {}\ - arg = 1\ - while (true) do\ - name = rpm.expand("%{?" .. arg .. ":%{" .. arg .. "}}");\ - if (name == nil or name == '') then\ - break\ - end\ - args[arg] = name\ - arg = arg + 1\ - end\ - for arg, name in ipairs(args) do\ - canonical = rpm.expand("%py_dist_name " .. name);\ - print("python2dist(" .. canonical .. ") ");\ - end\ -} - -# Creates Python 3 dist tag(s) after converting names to canonical format -# Needs to first put all arguments into a list, because invoking a different -# macro (%py_dist_name) overwrites them -%py3_dist() %{lua:\ - args = {}\ - arg = 1\ - while (true) do\ - name = rpm.expand("%{?" .. arg .. ":%{" .. arg .. "}}");\ - if (name == nil or name == '') then\ - break\ - end\ - args[arg] = name\ - arg = arg + 1\ - end\ - for arg, name in ipairs(args) do\ - canonical = rpm.expand("%py_dist_name " .. name);\ - print("python3dist(" .. canonical .. ") ");\ - end\ -} - -# Macro to replace overly complicated references to PyPI source files. -# Expands to the pythonhosted URL for a package -# Accepts zero to three arguments: -# 1: The PyPI project name, defaulting to %srcname if it is defined, then -# %pypi_name if it is defined, then just %name. -# 2: The PYPI version, defaulting to %version. -# 3: The file extension, defaulting to "tar.gz". (A period will be added -# automatically.) -# Requires %__pypi_url and %__pypi_default_extension to be defined. -%__pypi_url https://files.pythonhosted.org/packages/source/ -%__pypi_default_extension tar.gz - -%pypi_source() %{lua: - local src = rpm.expand('%1') - local ver = rpm.expand('%2') - local ext = rpm.expand('%3') - local url = rpm.expand('%__pypi_url') -\ - -- If no first argument, try %srcname, then %pypi_name, then %name - -- Note that rpm leaves macros unchanged if they are not defined. - if src == '%1' then - src = rpm.expand('%srcname') - end - if src == '%srcname' then - src = rpm.expand('%pypi_name') - end - if src == '%pypi_name' then - src = rpm.expand('%name') - end -\ - -- If no second argument, use %version - if ver == '%2' then - ver = rpm.expand('%version') - end -\ - -- If no third argument, use the preset default extension - if ext == '%3' then - ext = rpm.expand('%__pypi_default_extension') - end -\ - local first = string.sub(src, 1, 1) -\ - print(url .. first .. '/' .. src .. '/' .. src .. '-' .. ver .. '.' .. ext) -} diff --git a/macros.python2 b/macros.python2 deleted file mode 100644 index d6c74c2..0000000 --- a/macros.python2 +++ /dev/null @@ -1,41 +0,0 @@ -%__python2 /usr/bin/python2 -%python2_sitelib %(%{__python2} -Esc "from distutils.sysconfig import get_python_lib; print(get_python_lib())") -%python2_sitearch %(%{__python2} -Esc "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))") -%python2_version %(%{__python2} -Esc "import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))") -%python2_version_nodots %(%{__python2} -Esc "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))") - -%py2_shbang_opts -s - -# Use the slashes after expand so that the command starts on the same line as -# the macro -%py2_build() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python2} %{py_setup} %{?py_setup_args} build --executable="%{__python2} %{py2_shbang_opts}" %{?*} - sleep 1 -} - -%py2_build_egg() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python2} %{py_setup} %{?py_setup_args} bdist_egg %{?*} - sleep 1 -} - -%py2_build_wheel() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python2} %{py_setup} %{?py_setup_args} bdist_wheel %{?*} - sleep 1 -} - -%py2_install() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python2} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*} -} - -%py2_install_egg() %{expand:\\\ - mkdir -p %{buildroot}%{python2_sitelib} - easy_install-%{python2_version} -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python2_version}.egg %{?*} -} - -%py2_install_wheel() %{expand:\\\ - pip%{python2_version} install -I dist/%{1} --root %{buildroot} --strip-file-prefix %{buildroot} --no-deps -} diff --git a/macros.python3 b/macros.python3 deleted file mode 100644 index 25c6f62..0000000 --- a/macros.python3 +++ /dev/null @@ -1,43 +0,0 @@ -%__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_platform %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_platform())") -%py3dir %{_builddir}/python3-%{name}-%{version}-%{release} - -%py3_shbang_opts -s - -# Use the slashes after expand so that the command starts on the same line as -# the macro -%py3_build() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python3} %{py_setup} %{?py_setup_args} build --executable="%{__python3} %{py3_shbang_opts}" %{?*} - sleep 1 -} - -%py3_build_egg() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python3} %{py_setup} %{?py_setup_args} bdist_egg %{?*} - sleep 1 -} - -%py3_build_wheel() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python3} %{py_setup} %{?py_setup_args} bdist_wheel %{?*} - sleep 1 -} - -%py3_install() %{expand:\\\ - CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ - %{__python3} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*} -} - -%py3_install_egg() %{expand:\\\ - mkdir -p %{buildroot}%{python3_sitelib} - easy_install-%{python3_version} -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python3_version}.egg %{?*} -} - -%py3_install_wheel() %{expand:\\\ - pip%{python3_version} install -I dist/%{1} --root %{buildroot} --strip-file-prefix %{buildroot} --no-deps -} diff --git a/macros.rust-srpm b/macros.rust-srpm deleted file mode 100644 index f2bae9d..0000000 --- a/macros.rust-srpm +++ /dev/null @@ -1 +0,0 @@ -%rust_arches x86_64 i686 armv7hl aarch64 ppc64 ppc64le s390x diff --git a/openEuler-hardened-cc1 b/openEuler-hardened-cc1 new file mode 100644 index 0000000..fc54bcb --- /dev/null +++ b/openEuler-hardened-cc1 @@ -0,0 +1,2 @@ +*cc1_options: ++ %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}} diff --git a/openEuler-hardened-ld b/openEuler-hardened-ld new file mode 100644 index 0000000..bd6b907 --- /dev/null +++ b/openEuler-hardened-ld @@ -0,0 +1,2 @@ +*self_spec: ++ %{!static:%{!shared:%{!r:-pie}}} diff --git a/openEuler-pie-cc1 b/openEuler-pie-cc1 new file mode 100644 index 0000000..95615fa --- /dev/null +++ b/openEuler-pie-cc1 @@ -0,0 +1,2 @@ +*cc1_options: ++ %{!r:%{!D__KERNEL__:%{!pie:%{!fpic:%{!fPIC:%{!fpie:%{!fPIE:%{!fno-pic:%{!fno-PIC:%{!fno-pie:%{!fno-PIE:%{!shared:%{!static:%{!nostdlib:%{!nostartfiles:-fPIE}}}}}}}}}}}}}}} diff --git a/openEuler-pie-ld b/openEuler-pie-ld new file mode 100644 index 0000000..ff33f64 --- /dev/null +++ b/openEuler-pie-ld @@ -0,0 +1,2 @@ +*self_spec: ++ %{!D__KERNEL__:%{!pie:%{!A:%{!fno-pie:%{!fno-PIE:%{!fno-pic:%{!fno-PIC:%{!shared:%{!static:%{!r:%{!nostdlib:%{!nostartfiles:-pie}}}}}}}}}}}} diff --git a/openeuler-fs-cc1 b/openeuler-fs-cc1 new file mode 100644 index 0000000..199a711 --- /dev/null +++ b/openeuler-fs-cc1 @@ -0,0 +1,2 @@ +*cc1_options: ++ %{!D__KERNEL__:%{!nostdlib:%{!nodefaultlibs:%{!fno-stack-protector:%{!fstack-protector-all:-fstack-protector-strong}}}}} diff --git a/redhat-rpm-config-118.tar.gz b/redhat-rpm-config-118.tar.gz deleted file mode 100644 index cfce205..0000000 Binary files a/redhat-rpm-config-118.tar.gz and /dev/null differ diff --git a/remove-fcf-protection-for-gcc-7.3.0-x86_64.patch b/remove-fcf-protection-for-gcc-7.3.0-x86_64.patch deleted file mode 100644 index beab11e..0000000 --- a/remove-fcf-protection-for-gcc-7.3.0-x86_64.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b2723527bfbfa90d5fc77bf171a13e934d707471 Mon Sep 17 00:00:00 2001 -From: jiangchuangang -Date: Fri, 15 Nov 2019 11:13:48 +0800 -Subject: [PATCH] remove -fcf-protection for gcc-7.3.0 x86_64, -fcf-protection require GCC 8. - ---- - rpmrc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/rpmrc b/rpmrc -index 630c8c0..0b516aa 100644 ---- a/rpmrc -+++ b/rpmrc -@@ -6,7 +6,7 @@ optflags: i586 %{__global_compiler_flags} -m32 -march=i586 -mtune=generic -fasyn - optflags: i686 %{__global_compiler_flags} -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection - optflags: athlon %{__global_compiler_flags} -m32 -march=athlon -fasynchronous-unwind-tables -fstack-clash-protection - optflags: ia64 %{__global_compiler_flags} --optflags: x86_64 %{__global_compiler_flags} -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -+optflags: x86_64 %{__global_compiler_flags} -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection - - optflags: alpha %{__global_compiler_flags} -mieee - optflags: alphaev5 %{__global_compiler_flags} -mieee -mcpu=ev5 --- -2.19.1 - diff --git a/rpmrc b/rpmrc new file mode 100644 index 0000000..5ff42a8 --- /dev/null +++ b/rpmrc @@ -0,0 +1,19 @@ +include: /usr/lib/rpm/rpmrc + +optflags: i686 %{__global_compiler_flags} -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection +optflags: athlon %{__global_compiler_flags} -m32 -march=athlon -fasynchronous-unwind-tables -fstack-clash-protection +optflags: ia64 %{__global_compiler_flags} +optflags: x86_64 %{__global_compiler_flags} -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection + +optflags: aarch64 %{__global_compiler_flags} -fasynchronous-unwind-tables -fstack-clash-protection + +buildarchtranslate: athlon: i686 +buildarchtranslate: geode: i686 +buildarchtranslate: pentium4: i686 +buildarchtranslate: pentium3: i686 +buildarchtranslate: i686: i686 +buildarchtranslate: i586: i586 + +buildarchtranslate: armv7l: armv5tel +buildarchtranslate: armv7hl: armv7hl +buildarchtranslate: armv7hnl: armv7hl