From bce07f0852885cad2894c5354e78054137bfb4aa Mon Sep 17 00:00:00 2001 From: happy_orange Date: Wed, 20 Apr 2022 02:25:52 -0400 Subject: [PATCH] init from upstream --- ...iding-of-the-opt-level-debuginfo-cod.patch | 40 ++++++++++ 0001-Fix-autodetection-of-rpmautospec.patch | 31 ++++++++ rust-packaging.spec | 70 ++++++++++++++++++ rust2rpm-v21.tar.gz | Bin 0 -> 31013 bytes 4 files changed, 141 insertions(+) create mode 100644 0000-Allow-easy-overriding-of-the-opt-level-debuginfo-cod.patch create mode 100644 0001-Fix-autodetection-of-rpmautospec.patch create mode 100644 rust-packaging.spec create mode 100644 rust2rpm-v21.tar.gz diff --git a/0000-Allow-easy-overriding-of-the-opt-level-debuginfo-cod.patch b/0000-Allow-easy-overriding-of-the-opt-level-debuginfo-cod.patch new file mode 100644 index 0000000..5e26a9c --- /dev/null +++ b/0000-Allow-easy-overriding-of-the-opt-level-debuginfo-cod.patch @@ -0,0 +1,40 @@ +From 1b14d44d5705e2c87bc52d56f9ea184994669da1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 22 Feb 2022 11:41:46 +0100 +Subject: [PATCH 2/2] Allow easy overriding of the + opt-level/debuginfo/codegen-units flags + +Some crates use debuginfo=0 or debuginfo=1 to reduce memory pressure during +builds. This should make this easy. + +Fixes https://pagure.io/fedora-rust/rust2rpm/issue/181 +--- + data/macros.rust | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/data/macros.rust b/data/macros.rust +index 3a9281849f..efa46a3212 100644 +--- a/data/macros.rust ++++ b/data/macros.rust +@@ -1,14 +1,18 @@ + %__rustc %{_bindir}/rustc + %__rustdoc %{_bindir}/rustdoc + ++%rustflags_opt_level 3 ++%rustflags_debuginfo 2 ++%rustflags_codegen_units 1 ++ + # Enable optimization, debuginfo, and link hardening. + %build_rustflags %{shrink: +- -Copt-level=3 +- -Cdebuginfo=2 ++ -Copt-level=%rustflags_opt_level ++ -Cdebuginfo=%rustflags_debuginfo ++ -Ccodegen-units=%rustflags_codegen_units + -Clink-arg=-Wl,-z,relro + -Clink-arg=-Wl,-z,now + %{?_package_note_file:-Clink-arg=-Wl,-dT,%{_package_note_file}} +- -Ccodegen-units=1 + --cap-lints=warn + } + diff --git a/0001-Fix-autodetection-of-rpmautospec.patch b/0001-Fix-autodetection-of-rpmautospec.patch new file mode 100644 index 0000000..c3c5bd0 --- /dev/null +++ b/0001-Fix-autodetection-of-rpmautospec.patch @@ -0,0 +1,31 @@ +From b9e95b4d61739f21c2f64ee3df497d93272a67af Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 28 Feb 2022 14:01:20 +0100 +Subject: [PATCH 2/3] Fix autodetection of rpmautospec + +When store_true or store_false are used, the default default changes +from None to a boolean. I didn't know about this, and I wrote the code +to assume args.rpmautospec would be None. rpmautospec detection was +effectively always disabled. +--- + rust2rpm/__main__.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/rust2rpm/__main__.py b/rust2rpm/__main__.py +index 0f575ad12f..13dc26a313 100644 +--- a/rust2rpm/__main__.py ++++ b/rust2rpm/__main__.py +@@ -360,8 +360,10 @@ def main(): + parser.add_argument("-s", "--store-crate", action="store_true", + help="Store crate in current directory") + parser.add_argument("-a", "--rpmautospec", action="store_true", ++ default=None, + help="Use autorelease and autochangelog features") + parser.add_argument("--no-rpmautospec", action="store_false", ++ default=None, + help="Do not use rpmautospec") + parser.add_argument("--relative-license-paths", action="store_true", + help="Put all license files in main license directory") +-- +2.35.1 + diff --git a/rust-packaging.spec b/rust-packaging.spec new file mode 100644 index 0000000..eb48669 --- /dev/null +++ b/rust-packaging.spec @@ -0,0 +1,70 @@ +%define anolis_release 1 +%global debug_package %{nil} + +Name: rust-packaging +Epoch: 1 +Version: 21 +Release: %{anolis_release}%{?dist} +Summary: RPM macros for building Rust packages + +License: MIT +URL: https://pagure.io/fedora-rust/rust2rpm +Source0: https://pagure.io/fedora-rust/rust2rpm/archive/v%{version}/rust2rpm-v%{version}.tar.gz + +Patch0: 0000-Allow-easy-overriding-of-the-opt-level-debuginfo-cod.patch +Patch1: 0001-Fix-autodetection-of-rpmautospec.patch + +Requires: gawk +Requires: python3-rust2rpm = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: rust-srpm-macros > %{version} +Requires: rust +Requires: cargo >= 1.41 + +%description +The package provides RPM macros for building Rust projects. + +%package -n python3-rust2rpm +Summary: Generate RPM spec files for Rust packages +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pytest +BuildRequires: cargo +Requires: cargo +Provides: rust2rpm = %{epoch}:%{version}-%{release} +%{?python_provide:%python_provide python3-rust2rpm} + +%description -n python3-rust2rpm +%{summary}. + +%prep +%autosetup -n rust2rpm-v%{version} -p1 + +%build +%py3_build + +%install +%py3_install +install -D -p -m 0644 -t %{buildroot}%{_rpmmacrodir} data/macros.rust data/macros.cargo +install -D -p -m 0644 -t %{buildroot}%{_fileattrsdir} data/cargo.attr + +%check +py.test-%{python3_version} -vv test.py + +%files +%license LICENSE +%{_rpmmacrodir}/macros.rust +%{_rpmmacrodir}/macros.cargo +%{_fileattrsdir}/cargo.attr + +%files -n python3-rust2rpm +%license LICENSE +%doc NEWS +%{_bindir}/rust2rpm +%{_bindir}/cargo-inspector +%{python3_sitelib}/rust2rpm-*.egg-info/ +%{python3_sitelib}/rust2rpm/ + + +%changelog +* Wed Apr 20 2022 happy_orange - 1:21-1 +- Init package from upstream diff --git a/rust2rpm-v21.tar.gz b/rust2rpm-v21.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..eb5ddf18a04fd471ef7219e22c8e0567d8c48262 GIT binary patch literal 31013 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 literal 0 HcmV?d00001 -- Gitee