From ac6f47457247e00cce99698de225b8a6f99e21b6 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Tue, 20 Aug 2024 17:30:41 +0900 Subject: [PATCH] Initial import from Fedora Resolves: RHEL-45863 Signed-off-by: Daiki Ueno --- .gitignore | 3 + changelog | 14 ++++ rust-sequoia-sq.spec | 156 +++++++++++++++++++++++++++++++++++ rust2rpm.toml | 60 ++++++++++++++ sequoia-sq-fix-metadata.diff | 77 +++++++++++++++++ sources | 3 + 6 files changed, 313 insertions(+) create mode 100644 changelog create mode 100644 rust-sequoia-sq.spec create mode 100644 rust2rpm.toml create mode 100644 sequoia-sq-fix-metadata.diff create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..af674ca 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,3 @@ +/sequoia-sq-0.37.0.crate +/rust-sequoia-sq-0.37.0-vendor.tar.xz +/capnproto-c++-1.0.1.tar.gz diff --git a/changelog b/changelog new file mode 100644 index 0000000..06ea8e0 --- /dev/null +++ b/changelog @@ -0,0 +1,14 @@ +* Tue Feb 15 2022 Zbigniew Jędrzejewski-Szmek - 0.25.0-5 +- Rebuild with package notes + +* Fri Jan 21 2022 Fedora Release Engineering - 0.25.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Sep 14 2021 Sahana Prasad - 0.25.0-3 +- Rebuilt with OpenSSL 3.0.0 + +* Fri Jul 23 2021 Fedora Release Engineering - 0.25.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Apr 08 2021 Fabio Valentini - 0.25.0-1 +- Initial package diff --git a/rust-sequoia-sq.spec b/rust-sequoia-sq.spec new file mode 100644 index 0000000..a96e60b --- /dev/null +++ b/rust-sequoia-sq.spec @@ -0,0 +1,156 @@ +# Generated by rust2rpm 26 +%bcond_without check + +%global crate sequoia-sq + +%if 0%{?rhel} +# RHEL: Use bundled deps as it doesn't ship Rust libraries +%global bundled_rust_deps 1 +%global __brp_mangle_shebangs_exclude_from ^/usr/src/debug/.*$ +%bcond_without bundled_capnproto +%else +# Fedora: Use only system Rust libraries +%global bundled_rust_deps 0 +%bcond_with bundled_capnproto +%endif + +Name: rust-sequoia-sq +Version: 0.37.0 +Release: %autorelease +Summary: Command-line frontends for Sequoia + +License: LGPL-2.0-or-later +URL: https://crates.io/crates/sequoia-sq +Source0: %{crates_source} + +# Generated using cargo-vendor-filterer: +# cargo download %%{crate}==%%{version} > %%{crate}-%%{version}.crate +# tar xf %%{crate}-%%{version}.crate +# pushd %%{crate}-%%{version} +# cargo vendor-filterer --platform x86_64-unknown-linux-gnu \ +# --platform powerpc64le-unknown-linux-gnu \ +# --platform aarch64-unknown-linux-gnu \ +# --platform i686-unknown-linux-gnu \ +# --platform s390x-unknown-linux-gnu \ +# --all-features=true +Source1: %{name}-%{version}-vendor.tar.xz +Source2: capnproto-c++-1.0.1.tar.gz +# Manually created patch for downstream crate metadata changes +# * switch crypto backend from Nettle to OpenSSL +# * exclude files that are only useful for upstream development +# * drop automated generation of upstream integration tests +# * drop features for unsupported crypto backends +Patch: sequoia-sq-fix-metadata.diff + +%if 0%{?bundled_rust_deps} +BuildRequires: rust-toolset +# vendored openssl-sys +BuildRequires: openssl-devel +# vendored rustqlite +BuildRequires: sqlite-devel +%else +BuildRequires: cargo-rpm-macros >= 24 +%endif + +%if %{with bundled_capnproto} +BuildRequires: gcc-c++ +BuildRequires: cmake >= 3.1 +%endif + +%global _description %{expand: +Command-line frontends for Sequoia.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} +# (Apache-2.0 OR MIT) AND BSD-3-Clause +# (MIT OR Apache-2.0) AND Unicode-DFS-2016 +# 0BSD OR MIT OR Apache-2.0 +# Apache-2.0 +# Apache-2.0 AND MIT +# Apache-2.0 OR BSL-1.0 +# Apache-2.0 OR ISC OR MIT +# Apache-2.0 OR MIT +# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT +# BSD-2-Clause OR Apache-2.0 OR MIT +# BSL-1.0 +# LGPL-2.0-or-later +# MIT +# MIT OR Apache-2.0 +# MIT OR Apache-2.0 OR Zlib +# MIT OR Zlib OR Apache-2.0 +# MPL-2.0 +# Unlicense OR MIT +# Zlib OR Apache-2.0 OR MIT +License: LGPL-2.0-or-later AND Apache-2.0 AND BSL-1.0 AND BSD-3-Clause AND MIT AND MPL-2.0 AND Unicode-DFS-2016 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT) +# LICENSE.dependencies contains a full license breakdown + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE.txt +%license LICENSE.dependencies +%doc README.md +%{_bindir}/sq +%{_mandir}/man1/sq* +%{bash_completions_dir}/sq.bash +%{fish_completions_dir}/sq.fish +%{zsh_completions_dir}/_sq + +%prep +%autosetup -n %{crate}-%{version} -N %{?bundled_rust_deps:-a1} +%autopatch -M 99 -p1 +%if 0%{?bundled_rust_deps} +%cargo_prep -v vendor + +# drop broken integration tests +rm -vr subplot/ +%else +%cargo_prep +# drop broken integration tests +rm -vr subplot/ + +%generate_buildrequires +%cargo_generate_buildrequires +%endif + +%if %{with bundled_capnproto} +mkdir -p bundled_capnproto +pushd bundled_capnproto +tar --strip-components=1 -xf %{SOURCE2} +%cmake -DBUILD_TESTING=OFF +%cmake_build +popd +%endif + +%build +%if %{with bundled_capnproto} +export PATH="$PWD/bundled_capnproto/%{__cmake_builddir}/src/capnp:$PATH" +%endif +%cargo_build +%{cargo_license_summary} +%{cargo_license} > LICENSE.dependencies + +%install +%cargo_install +# install manual pages +mkdir -p %{buildroot}/%{_mandir}/man1 +cp -pav target/release/build/%{crate}-*/out/man-pages/sq*.1 %{buildroot}/%{_mandir}/man1/ +# install shell completions +install -Dpm 0644 target/release/build/%{crate}-*/out/shell-completions/sq.bash \ + %{buildroot}/%{bash_completions_dir}/sq.bash +install -Dpm 0644 target/release/build/%{crate}-*/out/shell-completions/sq.fish \ + %{buildroot}/%{fish_completions_dir}/sq.fish +install -Dpm 0644 target/release/build/%{crate}-*/out/shell-completions/_sq \ + %{buildroot}/%{zsh_completions_dir}/_sq + +%if %{with check} +%check +# * skip tests that require files which are not included in published crates +# * skip tests that fail because the Fedora crypto policy is too strict +%cargo_test -- -- --exact --skip cli::cert::export::sq_cert_export --skip cli::cert::import::sq_cert_import --skip cli::inspect::sq_inspect --skip cli::key::expire::sq_key_expire --skip cli::key::sq_key_import --skip cli::key::sq_key_list --skip cli::pki::sq_pki_authenticate --skip cli::pki::sq_pki_identify --skip cli::pki::sq_pki_list --skip cli::pki::sq_pki_lookup --skip cli::pki::sq_pki_path --skip sq_sign --skip sq_sign_append --skip sq_sign_append_on_compress_then_sign --skip sq_sign_detached --skip sq_sign_detached_append --skip sq_sign_with_notations --skip sq_autocrypt_import +%endif + +%changelog +%autochangelog diff --git a/rust2rpm.toml b/rust2rpm.toml new file mode 100644 index 0000000..003afb2 --- /dev/null +++ b/rust2rpm.toml @@ -0,0 +1,60 @@ +[package] +cargo-toml-patch-comments = [ + "switch crypto backend from Nettle to OpenSSL", + "exclude files that are only useful for upstream development", + "drop automated generation of upstream integration tests", + "drop features for unsupported crypto backends", +] +extra-files = [ + "%{_mandir}/man1/sq*", + "%{bash_completions_dir}/sq.bash", + "%{fish_completions_dir}/sq.fish", + "%{zsh_completions_dir}/_sq", +] + +[scripts] +prep.post = [ + "# drop broken integration tests", + "rm -vr subplot/", +] +install.post = [ + "# install manual pages", + "mkdir -p %{buildroot}/%{_mandir}/man1", + "cp -pav target/release/build/%{crate}-*/out/man-pages/sq*.1 %{buildroot}/%{_mandir}/man1/", + "# install shell completions", + "install -Dpm 0644 target/release/build/%{crate}-*/out/shell-completions/sq.bash \\", + " %{buildroot}/%{bash_completions_dir}/sq.bash", + "install -Dpm 0644 target/release/build/%{crate}-*/out/shell-completions/sq.fish \\", + " %{buildroot}/%{fish_completions_dir}/sq.fish", + "install -Dpm 0644 target/release/build/%{crate}-*/out/shell-completions/_sq \\", + " %{buildroot}/%{zsh_completions_dir}/_sq", +] + +[tests] +skip = [ + # --lib + "cli::cert::export::sq_cert_export", + "cli::cert::import::sq_cert_import", + "cli::inspect::sq_inspect", + "cli::key::expire::sq_key_expire", + "cli::key::sq_key_import", + "cli::key::sq_key_list", + "cli::pki::sq_pki_authenticate", + "cli::pki::sq_pki_identify", + "cli::pki::sq_pki_list", + "cli::pki::sq_pki_lookup", + "cli::pki::sq_pki_path", + # --test sq-sign + "sq_sign", + "sq_sign_append", + "sq_sign_append_on_compress_then_sign", + "sq_sign_detached", + "sq_sign_detached_append", + "sq_sign_with_notations", +] +skip-exact = true +comments = [ + "skip tests that require files which are not included in published crates", + "skip tests that fail because the Fedora crypto policy is too strict", +] + diff --git a/sequoia-sq-fix-metadata.diff b/sequoia-sq-fix-metadata.diff new file mode 100644 index 0000000..09747e0 --- /dev/null +++ b/sequoia-sq-fix-metadata.diff @@ -0,0 +1,77 @@ +--- sequoia-sq-0.37.0/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ sequoia-sq-0.37.0/Cargo.toml 2024-06-15T16:34:04.061673+00:00 +@@ -44,6 +44,12 @@ + ] + license = "LGPL-2.0-or-later" + repository = "https://gitlab.com/sequoia-pgp/sequoia-sq" ++exclude = [ ++ "/deny.toml", ++ "/Dockerfile", ++ "/sq.subplot", ++ "/sq-subplot.md", ++] + + [profile.release] + debug = true +@@ -76,10 +82,6 @@ + [dependencies.dirs] + version = "5" + +-[dependencies.dot-writer] +-version = "0.1.3" +-optional = true +- + [dependencies.humantime] + version = "2" + +@@ -155,9 +157,6 @@ + [dev-dependencies.dircpy] + version = "0.3" + +-[dev-dependencies.fehler] +-version = "1.0.0" +- + [dev-dependencies.libc] + version = "0.2" + +@@ -166,9 +165,6 @@ + + [dev-dependencies.regex] + version = "1" +- +-[dev-dependencies.subplotlib] +-version = ">=0.7, <0.10" + + [build-dependencies.anyhow] + version = "1.0.18" +@@ -217,10 +213,6 @@ + version = "1.0.137" + features = ["derive"] + +-[build-dependencies.subplot-build] +-version = ">=0.7, <0.10" +-optional = true +- + [build-dependencies.terminal_size] + version = ">=0.2.6, <0.4" + +@@ -228,17 +220,12 @@ + version = ">=0.15, <0.17" + + [features] +-crypto-botan = ["sequoia-openpgp/crypto-botan"] +-crypto-botan2 = ["sequoia-openpgp/crypto-botan2"] +-crypto-cng = ["sequoia-openpgp/crypto-cng"] + crypto-nettle = ["sequoia-openpgp/crypto-nettle"] + crypto-openssl = ["sequoia-openpgp/crypto-openssl"] + crypto-rust = ["sequoia-openpgp/crypto-rust"] + default = [ +- "crypto-nettle", +- "dot-writer", +-] +-subplot = ["subplot-build"] ++ "crypto-openssl", ++] + + [badges.gitlab] + repository = "sequoia-pgp/sequoia-sq" diff --git a/sources b/sources new file mode 100644 index 0000000..e54aab1 --- /dev/null +++ b/sources @@ -0,0 +1,3 @@ +SHA512 (sequoia-sq-0.37.0.crate) = c716284bfd1f8492d7f073c07adbbfd73495573a8503d7aa5e24a42873a50392086c69c25a1bd655e3d09df6c369bc2568d02dfda3dc83c189cb9187c440162c +SHA512 (rust-sequoia-sq-0.37.0-vendor.tar.xz) = 2776bfdeb0ab15b2de38175cd964dfdcf2c56cfd8464fc7ab61e9555afc40931e9e090cea3b42137a64333bd9711c6621b2cf4098a47c24b50e5e6cd0d3216d7 +SHA512 (capnproto-c++-1.0.1.tar.gz) = c60291f433eea15a51e480e1679a4b9b3b5e67edebc445e371a7a32fce6ec5a7e4b440b17b2adc0565519ec369e3dae8ea727ae790a082a53ecd0d245b5275a9