commit 13ff80792077bbbcc40dfab64525362034bfb078 Author: tigro Date: Mon Jan 15 20:34:33 2024 +0300 import rust-below-0.7.1-1.el9 diff --git a/.rust-below.metadata b/.rust-below.metadata new file mode 100644 index 0000000..e69de29 diff --git a/SOURCES/below-0.7.1.crate b/SOURCES/below-0.7.1.crate new file mode 100644 index 0000000..60a1585 Binary files /dev/null and b/SOURCES/below-0.7.1.crate differ diff --git a/SOURCES/below-clap4.diff b/SOURCES/below-clap4.diff new file mode 100644 index 0000000..aec550f --- /dev/null +++ b/SOURCES/below-clap4.diff @@ -0,0 +1,62 @@ +From a1b257d91677637063c1eb359097d53078f7272a Mon Sep 17 00:00:00 2001 +From: Michel Salim +Date: Wed, 2 Aug 2023 12:19:57 -0700 +Subject: [PATCH] migrate to Clap 4 + +Summary: +Two `below` crates currently still use Clap 3; update to 4. + +This unblocks updating below in Fedora which has dropped clap 3 from its repos. + +Reviewed By: brianc118 + +Differential Revision: D48002223 + +fbshipit-source-id: 5f4d02fced4f182098b3ee7627b0af3179d9addb +--- + below/Cargo.toml | 4 ++-- + below/dump/Cargo.toml | 2 +- + below/dump/src/command.rs | 14 +++++++------- + below/src/main.rs | 8 ++++---- + 4 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/below/src/main.rs b/below/src/main.rs +index 0cf70e53..0a0aa57f 100644 +--- a/src/main.rs ++++ b/src/main.rs +@@ -77,7 +77,7 @@ static LIVE_REMOTE_MAX_LATENCY_SEC: u64 = 10; + + #[derive(Debug, Parser)] + struct Opt { +- #[clap(long, parse(from_os_str), default_value = config::BELOW_DEFAULT_CONF)] ++ #[clap(long, value_parser, default_value = config::BELOW_DEFAULT_CONF)] + config: PathBuf, + #[clap(short, long)] + debug: bool, +@@ -104,7 +104,7 @@ struct CompressOpts { + /// + /// With --dict-compress-chunk-size 16, you can expect around + /// 20-30x smaller data files. +- #[clap(long, requires("compress"), parse(try_from_str = parse_chunk_size))] ++ #[clap(long, requires("compress"), value_parser = parse_chunk_size)] + dict_compress_chunk_size: Option, + } + +@@ -267,7 +267,7 @@ enum Command { + duration: Option, + /// Output file path. + /// Randomized name in current directory if unspecified. +- #[clap(short, long, parse(from_os_str))] ++ #[clap(short, long, value_parser)] + output: Option, + /// Supply hostname to take snapshot from remote + #[clap(short = 's', long)] +@@ -283,7 +283,7 @@ enum Command { + #[clap(short, long, default_value = "bash")] + shell: Shell, + /// Output file, stdout if not present +- #[clap(short, long, parse(from_os_str))] ++ #[clap(short, long, value_parser)] + output: Option, + }, + } diff --git a/SOURCES/below-fix-metadata.diff b/SOURCES/below-fix-metadata.diff new file mode 100644 index 0000000..7d184fd --- /dev/null +++ b/SOURCES/below-fix-metadata.diff @@ -0,0 +1,23 @@ +--- below-0.7.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ below-0.7.1/Cargo.toml 2023-08-02T21:21:06.579765+00:00 +@@ -37,17 +37,17 @@ + version = "0.7.1" + + [dependencies.clap] +-version = "3.2.25" ++version = "4" + features = [ + "derive", + "env", +- "regex", ++ "string", + "unicode", + "wrap_help", + ] + + [dependencies.clap_complete] +-version = "3.2.5" ++version = "4.3.1" + + [dependencies.common] + version = "0.7.1" diff --git a/SOURCES/below.service b/SOURCES/below.service new file mode 100644 index 0000000..443235b --- /dev/null +++ b/SOURCES/below.service @@ -0,0 +1,13 @@ +[Unit] +Description=below system monitor recording daemon +After=time-sync.target + +[Service] +ExecStart=/bin/below record --retain-for-s 604800 --compress +# Enable backtraces in errors +Environment=RUST_LIB_BACKTRACE=1 +Restart=always +RestartSec=3 + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/logrotate.conf b/SOURCES/logrotate.conf new file mode 100644 index 0000000..90bfe05 --- /dev/null +++ b/SOURCES/logrotate.conf @@ -0,0 +1,11 @@ +/var/log/below/error_*.log { + daily + rotate 14 + maxage 14 + copytruncate + compress + notifempty + missingok + create 0644 root root + su root root +} diff --git a/SPECS/rust-below.spec b/SPECS/rust-below.spec new file mode 100644 index 0000000..d8baa54 --- /dev/null +++ b/SPECS/rust-below.spec @@ -0,0 +1,192 @@ +## 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 crate below + +%global forgeurl https://github.com/facebookincubator/below + +Name: rust-below +Version: 0.7.1 +Release: %autorelease +Summary: Interactive tool to view and record historical system data + +License: Apache-2.0 +URL: https://crates.io/crates/below +Source: %{crates_source} +# Get these from the repo as they aren't included in the crate +Source1: %{forgeurl}/raw/v%{version}/etc/below.service +Source2: %{forgeurl}/raw/v%{version}/etc/logrotate.conf +# Manually created patch for downstream crate metadata changes +# * bump clap from 3.2.5 to 4.3.5 +# * bump clap_complete from 3.2.5 to 4.3.1 +Patch: below-fix-metadata.diff +# Migrate to clap 4 +# based on https://github.com/facebookincubator/below/commit/a1b257d91677637063c1eb359097d53078f7272a +Patch: below-clap4.diff + +# below-config and below-model are not available +ExcludeArch: %{arm32} %{ix86} + +BuildRequires: rust-packaging >= 21 +BuildRequires: systemd-rpm-macros + +%global _description %{expand: +below is an interactive tool to view and record historical system data. It has +support for: + +- information regarding hardware resource utilization +- viewing the cgroup hierarchy +- cgroup and process information +- pressure stall information (PSI) +- record mode to record system data +- replay mode to replay historical system data +- live mode to view live system data +- dump subcommand to report script-friendly information (e.g. JSON and CSV) + +below does not have support for cgroup1. + +The name "below" stems from the fact that the below developers rejected many of +atop's design and style decisions.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} +License: Apache-2.0 AND (Apache-2.0 OR MIT) AND Unicode-DFS-2016 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (Apache-2.0 OR BSD-3-Clause OR MIT) AND (BSD-2-Clause OR LGPL-2.1) AND MIT AND (MPL-2.0 OR MIT OR Apache-2.0) AND (Unlicense OR MIT) +# LICENSE.dependencies contains a full license breakdown + +Recommends: logrotate + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%license LICENSE.dependencies +%doc README.md +%{_bindir}/below +%{_unitdir}/%{crate}.service +%dir %{_sysconfdir}/logrotate.d +%config(noreplace) %{_sysconfdir}/logrotate.d/%{crate}.conf +%dir %{_localstatedir}/log/%{crate} + +%post -n %{crate} +%systemd_post %{crate}.service + +%preun -n %{crate} +%systemd_preun %{crate}.service + +%postun -n %{crate} +%systemd_postun_with_restart %{crate}.service + +%prep +%autosetup -n %{crate}-%{version_no_tilde} -p1 +%cargo_prep + +%generate_buildrequires +%cargo_generate_buildrequires + +%build +%cargo_build +%{cargo_license} > LICENSE.dependencies + +%install +%cargo_install +install -D -p -m0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{crate}.service +install -D -p -m0644 %{SOURCE2} \ + %{buildroot}%{_sysconfdir}/logrotate.d/%{crate}.conf +install -d -m1777 %{buildroot}%{_localstatedir}/log/%{crate} + +%if %{with check} +%check +# thread 'test::record_replay_integration' panicked at 'missing memory.pressure', src/test.rs:58:10 +%cargo_test -- -- --skip test::record_replay_integration +%endif + +%changelog +* Mon Jan 15 2024 Arkady L. Shane - 0.7.1-1 +- Rebuilt for MSVSphere 9.3 + +* Wed Aug 02 2023 Michel Alexandre Salim - 0.7.1-1 +- Update to 0.7.1 + +* Fri Jul 21 2023 Fedora Release Engineering - 0.6.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed May 03 2023 Fabio Valentini - 0.6.3-4 +- Rebuild for tokio crate >= v1.24.2 (RUSTSEC-2023-0005) + +* Mon Jan 30 2023 Michel Alexandre Salim - 0.6.3-3 +- Bump for libbpf-{sys,rs,cargo} novendor changes + +* Mon Jan 30 2023 Michel Alexandre Salim - 0.6.3-2 +- Exclude builds on 32-bit architectures + +* Thu Jan 26 2023 Michel Alexandre Salim - 0.6.3-1 +- Update to 0.6.3 + +* Fri Jan 20 2023 Fedora Release Engineering - 0.5.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 0.5.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Feb 19 2022 Michel Alexandre Salim - 0.5.0-2 +- Update binary package license (fixes: rhbz#2045491) + +* Fri Feb 18 2022 Michel Alexandre Salim - 0.5.0-1 +- Update to 0.5.0 + +* Tue Feb 15 2022 Zbigniew Jędrzejewski-Szmek - 0.4.1-4 +- Rebuild with package notes + +* Tue Jan 25 2022 Fabio Valentini - 0.4.1-3 +- Rebuild with thread_local 1.1.4 for RUSTSEC-2022-0006 + +* Fri Jan 21 2022 Fedora Release Engineering - 0.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Nov 11 2021 Davide Cavalca - 0.4.1-1 +- Update to 0.4.0; Fixes: RHBZ#2022244 + +* Thu Oct 28 2021 Davide Cavalca - 0.4.0-2 +- Update vendoring logic to fix the epel8 build; Fixes: RHBZ#1978414 + +* Fri Oct 22 2021 Davide Cavalca - 0.4.0-1 +- Update to 0.4.0; Fixes: RHBZ#2016559 + +* Sat Jul 31 2021 Davide Cavalca - 0.3.0-1 +- Update to 0.3.0; Fixes: RHBZ#1983801 + +* Fri Jul 23 2021 Fedora Release Engineering - 0.2.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jul 6 2021 Michel Alexandre Salim - 0.2.0-4 +- Add README-epel.md with instructions for enabling PSI support +- Gate ExclusiveArch s390x to el8 only + +* Wed Jun 30 2021 Davide Cavalca - 0.2.0-3 +- Add vendored dependencies for EPEL and make it build there +- Exclude s390x for the EPEL build for now due to an upstream issue +- Mark logrotate config file as a config(noreplace) +- Add recommends for logrotate +- Fix permissions for the below binary + +* Mon Jun 28 2021 Davide Cavalca - 0.2.0-2 +- Install upstream systemd unit +- Install upstream logrotate config +- Add missing documentation +- Expand the description + +* Tue Jun 15 2021 Davide Cavalca - 0.2.0-1 +- Initial package +