commit
13ff807920
Binary file not shown.
@ -0,0 +1,62 @@
|
|||||||
|
From a1b257d91677637063c1eb359097d53078f7272a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michel Salim <michel@meta.com>
|
||||||
|
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<u32>,
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -267,7 +267,7 @@ enum Command {
|
||||||
|
duration: Option<String>,
|
||||||
|
/// Output file path.
|
||||||
|
/// Randomized name in current directory if unspecified.
|
||||||
|
- #[clap(short, long, parse(from_os_str))]
|
||||||
|
+ #[clap(short, long, value_parser)]
|
||||||
|
output: Option<PathBuf>,
|
||||||
|
/// 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<PathBuf>,
|
||||||
|
},
|
||||||
|
}
|
@ -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"
|
@ -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
|
@ -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
|
||||||
|
}
|
@ -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 <tigro@msvsphere-os.ru> - 0.7.1-1
|
||||||
|
- Rebuilt for MSVSphere 9.3
|
||||||
|
|
||||||
|
* Wed Aug 02 2023 Michel Alexandre Salim <salimma@fedoraproject.org> - 0.7.1-1
|
||||||
|
- Update to 0.7.1
|
||||||
|
|
||||||
|
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.3-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed May 03 2023 Fabio Valentini <decathorpe@gmail.com> - 0.6.3-4
|
||||||
|
- Rebuild for tokio crate >= v1.24.2 (RUSTSEC-2023-0005)
|
||||||
|
|
||||||
|
* Mon Jan 30 2023 Michel Alexandre Salim <salimma@fedoraproject.org> - 0.6.3-3
|
||||||
|
- Bump for libbpf-{sys,rs,cargo} novendor changes
|
||||||
|
|
||||||
|
* Mon Jan 30 2023 Michel Alexandre Salim <salimma@fedoraproject.org> - 0.6.3-2
|
||||||
|
- Exclude builds on 32-bit architectures
|
||||||
|
|
||||||
|
* Thu Jan 26 2023 Michel Alexandre Salim <salimma@fedoraproject.org> - 0.6.3-1
|
||||||
|
- Update to 0.6.3
|
||||||
|
|
||||||
|
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Feb 19 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 0.5.0-2
|
||||||
|
- Update binary package license (fixes: rhbz#2045491)
|
||||||
|
|
||||||
|
* Fri Feb 18 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 0.5.0-1
|
||||||
|
- Update to 0.5.0
|
||||||
|
|
||||||
|
* Tue Feb 15 2022 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.4.1-4
|
||||||
|
- Rebuild with package notes
|
||||||
|
|
||||||
|
* Tue Jan 25 2022 Fabio Valentini <decathorpe@gmail.com> - 0.4.1-3
|
||||||
|
- Rebuild with thread_local 1.1.4 for RUSTSEC-2022-0006
|
||||||
|
|
||||||
|
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Nov 11 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 0.4.1-1
|
||||||
|
- Update to 0.4.0; Fixes: RHBZ#2022244
|
||||||
|
|
||||||
|
* Thu Oct 28 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 0.4.0-2
|
||||||
|
- Update vendoring logic to fix the epel8 build; Fixes: RHBZ#1978414
|
||||||
|
|
||||||
|
* Fri Oct 22 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 0.4.0-1
|
||||||
|
- Update to 0.4.0; Fixes: RHBZ#2016559
|
||||||
|
|
||||||
|
* Sat Jul 31 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 0.3.0-1
|
||||||
|
- Update to 0.3.0; Fixes: RHBZ#1983801
|
||||||
|
|
||||||
|
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.0-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 6 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 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 <dcavalca@fedoraproject.org> - 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 <dcavalca@fedoraproject.org> - 0.2.0-2
|
||||||
|
- Install upstream systemd unit
|
||||||
|
- Install upstream logrotate config
|
||||||
|
- Add missing documentation
|
||||||
|
- Expand the description
|
||||||
|
|
||||||
|
* Tue Jun 15 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 0.2.0-1
|
||||||
|
- Initial package
|
||||||
|
|
Loading…
Reference in new issue