commit cc4eaf47b39431a1945b3128ed3fbd588d81879a Author: tigro Date: Mon Jan 15 21:45:09 2024 +0300 import rust-libgit2-sys-0.16.1-1.el9 diff --git a/.rust-libgit2-sys.metadata b/.rust-libgit2-sys.metadata new file mode 100644 index 0000000..e69de29 diff --git a/SOURCES/0001-build-with-vendored-libgit2-unconditionally.patch b/SOURCES/0001-build-with-vendored-libgit2-unconditionally.patch new file mode 100644 index 0000000..a52d14c --- /dev/null +++ b/SOURCES/0001-build-with-vendored-libgit2-unconditionally.patch @@ -0,0 +1,73 @@ +From 16924a64fa662d649590a0a26d7f280616651435 Mon Sep 17 00:00:00 2001 +From: Fabio Valentini +Date: Tue, 19 Sep 2023 22:02:24 +0200 +Subject: [PATCH] build with vendored libgit2 unconditionally + +--- + build.rs | 47 ----------------------------------------------- + 1 file changed, 47 deletions(-) + +diff --git a/build.rs b/build.rs +index b497005..4bf1136 100644 +--- a/build.rs ++++ b/build.rs +@@ -4,56 +4,9 @@ use std::io; + use std::path::{Path, PathBuf}; + use std::process::Command; + +-/// Tries to use system libgit2 and emits necessary build script instructions. +-fn try_system_libgit2() -> Result { +- let mut cfg = pkg_config::Config::new(); +- match cfg.range_version("1.7.1".."1.8.0").probe("libgit2") { +- Ok(lib) => { +- for include in &lib.include_paths { +- println!("cargo:root={}", include.display()); +- } +- Ok(lib) +- } +- Err(e) => { +- println!("cargo:warning=failed to probe system libgit2: {e}"); +- Err(e) +- } +- } +-} +- + fn main() { + let https = env::var("CARGO_FEATURE_HTTPS").is_ok(); + let ssh = env::var("CARGO_FEATURE_SSH").is_ok(); +- let vendored = env::var("CARGO_FEATURE_VENDORED").is_ok(); +- let zlib_ng_compat = env::var("CARGO_FEATURE_ZLIB_NG_COMPAT").is_ok(); +- +- // Specify `LIBGIT2_NO_VENDOR` to force to use system libgit2. +- // Due to the additive nature of Cargo features, if some crate in the +- // dependency graph activates `vendored` feature, there is no way to revert +- // it back. This env var serves as a workaround for this purpose. +- println!("cargo:rerun-if-env-changed=LIBGIT2_NO_VENDOR"); +- let forced_no_vendor = env::var_os("LIBGIT2_NO_VENDOR").map_or(false, |s| s != "0"); +- +- if forced_no_vendor { +- if try_system_libgit2().is_err() { +- panic!( +- "\ +-The environment variable `LIBGIT2_NO_VENDOR` has been set but no compatible system libgit2 could be found. +-The build is now aborting. To disable, unset the variable or use `LIBGIT2_NO_VENDOR=0`. +-", +- ); +- } +- +- // We've reached here, implying we're using system libgit2. +- return; +- } +- +- // To use zlib-ng in zlib-compat mode, we have to build libgit2 ourselves. +- let try_to_use_system_libgit2 = !vendored && !zlib_ng_compat; +- if try_to_use_system_libgit2 && try_system_libgit2().is_ok() { +- // using system libgit2 has worked +- return; +- } + + println!("cargo:rustc-cfg=libgit2_vendored"); + +-- +2.41.0 + diff --git a/SOURCES/libgit2-sys-0.16.1+1.7.1.crate b/SOURCES/libgit2-sys-0.16.1+1.7.1.crate new file mode 100644 index 0000000..a69d0a9 Binary files /dev/null and b/SOURCES/libgit2-sys-0.16.1+1.7.1.crate differ diff --git a/SOURCES/libgit2-sys-fix-metadata.diff b/SOURCES/libgit2-sys-fix-metadata.diff new file mode 100644 index 0000000..ffb9357 --- /dev/null +++ b/SOURCES/libgit2-sys-fix-metadata.diff @@ -0,0 +1,32 @@ +--- libgit2-sys-0.16.1+1.7.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ libgit2-sys-0.16.1+1.7.1/Cargo.toml 2023-09-19T19:56:54.584806+00:00 +@@ -12,7 +12,7 @@ + [package] + edition = "2018" + name = "libgit2-sys" +-version = "0.16.1+1.7.1" ++version = "0.16.1" + authors = [ + "Josh Triplett ", + "Alex Crichton ", +@@ -27,7 +27,7 @@ + "libgit2/tests/*", + ] + description = "Native bindings to the libgit2 library" +-license = "MIT OR Apache-2.0" ++license = "(MIT OR Apache-2.0) AND BSD-3-Clause AND GPL-2.0-only WITH GCC-exception-2.0 AND MIT" + repository = "https://github.com/rust-lang/git2-rs" + + [lib] +@@ -58,11 +58,6 @@ + ssh = ["libssh2-sys"] + ssh_key_from_memory = [] + vendored = [] +-vendored-openssl = ["openssl-sys/vendored"] +-zlib-ng-compat = [ +- "libz-sys/zlib-ng", +- "libssh2-sys?/zlib-ng-compat", +-] + + [target."cfg(unix)".dependencies.openssl-sys] + version = "0.9.45" diff --git a/SPECS/rust-libgit2-sys.spec b/SPECS/rust-libgit2-sys.spec new file mode 100644 index 0000000..dec38f6 --- /dev/null +++ b/SPECS/rust-libgit2-sys.spec @@ -0,0 +1,359 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.3.5) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 1; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +# Generated by rust2rpm 24 +%bcond_without check +%global debug_package %{nil} + +%global crate libgit2-sys +%global crate_version 0.16.1+1.7.1 + +Name: rust-libgit2-sys +Version: 0.16.1 +Release: %autorelease +Summary: Native bindings to the libgit2 library + +# * libgit2-sys crate: MIT OR Apache-2.0 +# * bundled libgit2: GPL-2.0-only WITH GCC-exception-2.0 +# * bundled http-parser: MIT +# * bundled pcre: BSD-3-Clause +License: (MIT OR Apache-2.0) AND BSD-3-Clause AND GPL-2.0-only WITH GCC-exception-2.0 AND MIT +URL: https://crates.io/crates/libgit2-sys +Source: %{crates_source %{crate} %{crate_version}} +# Manually created patch for downstream crate metadata changes +# * remove libgit2 version from version field +# * update package.license field to reflect bundled dependencies +Patch: libgit2-sys-fix-metadata.diff +# * build against the bundled copy of libgit2 unconditionally: +# the version in the Fedora repositories is always either too old or too new +Patch: 0001-build-with-vendored-libgit2-unconditionally.patch + +BuildRequires: rust-packaging >= 21 + +%global _description %{expand: +Native bindings to the libgit2 library.} + +%description %{_description} + +%package devel +Summary: %{summary} +BuildArch: noarch + +Provides: bundled(libgit2) = 1.7.1 +Provides: bundled(http-parser) = 2.0 +Provides: bundled(pcre) = 8.44 + +%description devel %{_description} + +This package contains library source intended for building other packages which +use the "%{crate}" crate. + +%files devel +%license %{crate_instdir}/LICENSE-APACHE +%license %{crate_instdir}/LICENSE-MIT +%license %{crate_instdir}/libgit2/COPYING +%license %{crate_instdir}/libgit2/deps/http-parser/COPYING +%license %{crate_instdir}/libgit2/deps/pcre/LICENCE +%doc %{crate_instdir}/CHANGELOG.md +%{crate_instdir}/ + +%package -n %{name}+default-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+default-devel %{_description} + +This package contains library source intended for building other packages which +use the "default" feature of the "%{crate}" crate. + +%files -n %{name}+default-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+https-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+https-devel %{_description} + +This package contains library source intended for building other packages which +use the "https" feature of the "%{crate}" crate. + +%files -n %{name}+https-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+libssh2-sys-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+libssh2-sys-devel %{_description} + +This package contains library source intended for building other packages which +use the "libssh2-sys" feature of the "%{crate}" crate. + +%files -n %{name}+libssh2-sys-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+openssl-sys-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+openssl-sys-devel %{_description} + +This package contains library source intended for building other packages which +use the "openssl-sys" feature of the "%{crate}" crate. + +%files -n %{name}+openssl-sys-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+ssh-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+ssh-devel %{_description} + +This package contains library source intended for building other packages which +use the "ssh" feature of the "%{crate}" crate. + +%files -n %{name}+ssh-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+ssh_key_from_memory-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+ssh_key_from_memory-devel %{_description} + +This package contains library source intended for building other packages which +use the "ssh_key_from_memory" feature of the "%{crate}" crate. + +%files -n %{name}+ssh_key_from_memory-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+vendored-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+vendored-devel %{_description} + +This package contains library source intended for building other packages which +use the "vendored" feature of the "%{crate}" crate. + +%files -n %{name}+vendored-devel +%ghost %{crate_instdir}/Cargo.toml + +%prep +%autosetup -n %{crate}-%{crate_version} -p1 +# remove upstream development scripts from libgit2 +rm -r libgit2/script/ +# remove unused bundled dependencies +rm -r libgit2/deps/chromium-zlib +rm -r libgit2/deps/ntlmclient +rm -r libgit2/deps/winhttp +rm -r libgit2/deps/zlib +%cargo_prep + +%generate_buildrequires +%cargo_generate_buildrequires + +%build +%cargo_build + +%install +%cargo_install + +%if %{with check} +%check +%cargo_test +%endif + +%changelog +* Mon Jan 15 2024 Arkady L. Shane - 0.16.1-1 +- Rebuilt for MSVSphere 9.3 + +* Tue Sep 19 2023 Fabio Valentini - 0.16.1-1 +- Update to version 0.16.1+1.7.1; Fixes RHBZ#2235484 + +* Fri Jul 21 2023 Fedora Release Engineering - 0.15.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jul 13 2023 Fabio Valentini - 0.15.2-1 +- Update to version 0.15.2+1.6.4; Fixes RHBZ#2112152 + +* Mon May 29 2023 Fabio Valentini - 0.14.2-1 +- Update to version 0.14.2+1.5.1 + +* Sat Jan 21 2023 Fabio Valentini - 0.13.5-1 +- Update to version 0.13.5+1.4.5 + +* Fri Jan 20 2023 Fedora Release Engineering - 0.13.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Aug 25 2022 Fabio Valentini - 0.13.4-3 +- Update package.license in Cargo.toml to reflect bundled dependencies + +* Sat Jul 23 2022 Fedora Release Engineering - 0.13.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 21 2022 Fabio Valentini - 0.13.4-1 +- Update to version 0.13.4+1.4.2; Fixes RHBZ#2058289 + +* Fri Jan 21 2022 Fedora Release Engineering - 0.12.26-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Dec 01 2021 Fabio Valentini - 0.12.26-1 +- Update to version 0.12.26+1.3.0; Fixes RHBZ#2028148 + +* Sun Nov 28 2021 Igor Raits - 0.12.25-1 +- Update to 0.12.25 + +* Fri Jul 23 2021 Fedora Release Engineering - 0.12.21-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun May 30 2021 Fabio Valentini - 0.12.21-1 +- Update to version 0.12.21+1.1.0. +- Fixes RHBZ#1964045 + +* Mon May 17 2021 Fabio Valentini - 0.12.20-1 +- Update to version 0.12.20+1.1.0. +- Fixes RHBZ#1951081 + +* Fri Feb 05 18:44:48 CET 2021 returntrip - 0.12.18-1 +- Update to 0.12.18 (Fixes: RHZB#1918821) + +* Wed Jan 27 2021 Fedora Release Engineering - 0.12.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Dec 29 08:54:07 CET 2020 Igor Raits - 0.12.17-1 +- Update to 0.12.17 (Fixes: RHBZ#1909222) + +* Mon Dec 28 17:39:57 CET 2020 Igor Raits - 0.12.16-1 +- Update to 0.12.16 (Fixes: RHBZ#1909222) + +* Sun Nov 29 2020 Fabio Valentini - 0.12.14-1 +- Update to version 0.12.14+1.1.0. +- Fixes RHBZ#1888078 + +* Fri Sep 18 2020 Fabio Valentini - 0.12.13-1 +- Update to version 0.12.13+1.0.1. + +* Fri Aug 21 2020 Josh Stone - 0.12.12-1 +- Update to 0.12.12+1.0.1 + +* Wed Aug 19 2020 Josh Stone - 0.12.11-1 +- Update to 0.12.11+1.0.1 + +* Wed Jul 29 2020 Fedora Release Engineering - 0.12.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 22 2020 Josh Stone - 0.12.9-1 +- Update to 0.12.9+1.0.1 + +* Thu Jun 04 2020 Josh Stone - 0.12.7-1 +- Update to 0.12.7+1.0.0 + +* Tue May 19 19:53:42 CEST 2020 Igor Raits - 0.12.6-1 +- Update to 0.12.6+1.0.0 + +* Wed Apr 29 2020 Josh Stone - 0.12.5-1 +- Update to 0.12.5+1.0.0 + +* Thu Apr 23 2020 Josh Stone - 0.12.4-1 +- Update to 0.12.4+1.0.0 + +* Wed Apr 15 08:52:35 CEST 2020 Igor Raits - 0.12.3-1 +- Update to 0.12.3 + +* Thu Mar 19 10:52:57 CET 2020 Igor Raits - 0.12.0-1 +- Update to 0.12.0+0.99.0 + +* Tue Mar 03 2020 Josh Stone - 0.11.0-1 +- Update to 0.11.0+0.99.0 + +* Thu Jan 30 2020 Fedora Release Engineering - 0.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Dec 25 09:30:41 CET 2019 Igor Gnatenko - 0.10.0-1 +- Update to 0.10.0 + +* Thu Nov 28 13:20:45 CET 2019 Igor Gnatenko - 0.9.2-1 +- Update to 0.9.2 + +* Tue Nov 19 11:20:13 CET 2019 Igor Gnatenko - 0.9.1-1 +- Update to 0.9.1 + +* Fri Jul 26 2019 Fedora Release Engineering - 0.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jun 18 23:40:18 CEST 2019 Igor Gnatenko - 0.8.1-1 +- Update to 0.8.1 + +* Fri Jun 07 2019 Josh Stone - 0.8.0-1 +- Update to 0.8.0 + +* Sun Mar 10 2019 Igor Gnatenko - 0.7.11-5 +- Do not pull optional dependencies + +* Sun Feb 10 2019 Igor Gnatenko - 0.7.11-4 +- Trivial fixes + +* Sat Feb 02 2019 Fedora Release Engineering - 0.7.11-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Dec 20 2018 Igor Gnatenko - 0.7.11-2 +- Run tests in infrastructure + +* Sat Dec 15 2018 Josh Stone - 0.7.11-1 +- Update to 0.7.11 + +* Sun Nov 04 2018 Igor Gnatenko - 0.7.10-2 +- Adapt to new packaging + +* Fri Sep 28 2018 Josh Stone - 0.7.10-1 +- Update to 0.7.10 + +* Mon Sep 17 2018 Josh Stone - 0.7.8-1 +- Update to 0.7.8 + +* Fri Aug 10 2018 Josh Stone - 0.7.7-2 +- Fix the devel Requires + +* Fri Aug 10 2018 Josh Stone - 0.7.7-1 +- Update to 0.7.7 + +* Sat Jul 14 2018 Fedora Release Engineering - 0.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed May 30 2018 Josh Stone - 0.7.2-1 +- Update to 0.7.2 + +* Mon Mar 12 2018 Igor Gnatenko - 0.7.1-1 +- Update to 0.7.1 + +* Fri Feb 09 2018 Fedora Release Engineering - 0.6.19-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 09 2018 Igor Gnatenko - 0.6.19-1 +- Update to 0.6.19 + +* Mon Jan 08 2018 Igor Gnatenko - 0.6.18-2 +- Rebuild for rust-packaging v5 + +* Sun Dec 24 2017 Igor Gnatenko - 0.6.18-1 +- Update to 0.6.18 + +* Wed Dec 13 2017 Igor Gnatenko - 0.6.17-1 +- Update to 0.6.17 + +* Sun Dec 03 2017 Igor Gnatenko - 0.6.16-2 +- Fix end-of-line + +* Sun Nov 26 2017 Igor Gnatenko - 0.6.16-1 +- Initial package +