Upgrade to 1.2.8

Signed-off-by: Gris Ge <fge@redhat.com>
This commit is contained in:
Gris Ge 2022-10-17 20:02:02 +08:00
parent 3b50a87165
commit 67eee78e2b
5 changed files with 227 additions and 32 deletions

1
.gitignore vendored
View File

@ -9,3 +9,4 @@
/nispor-1.2.3.tar.gz /nispor-1.2.3.tar.gz
/nispor-1.2.5.tar.gz /nispor-1.2.5.tar.gz
/nispor-1.2.7.tar.gz /nispor-1.2.7.tar.gz
/nispor-1.2.8.tar.gz

View File

@ -1,13 +0,0 @@
diff --git a/src/lib/Cargo.toml b/src/lib/Cargo.toml
index 60400ff..6d27cae 100644
--- a/src/lib/Cargo.toml
+++ b/src/lib/Cargo.toml
@@ -23,7 +23,7 @@ netlink-packet-route = "0.12.0"
netlink-sys = "0.8.3"
netlink-packet-utils = "0.5.1"
ethtool = "0.2.2"
-tokio = { version = "1.19.2", features = ["macros", "rt"] }
+tokio = { version = "1.18", features = ["macros", "rt"] }
futures = "0.3.21"
libc = "0.2.126"
log = "0.4.17"

View File

@ -2,13 +2,13 @@
%bcond_with check %bcond_with check
Name: nispor Name: nispor
Version: 1.2.7 Version: 1.2.8
Release: 2%{?dist} Release: 1%{?dist}
Summary: Unified interface for Linux network state querying Summary: Unified interface for Linux network state querying
License: ASL 2.0 License: ASL 2.0
URL: https://github.com/nispor/nispor URL: https://github.com/nispor/nispor
Source: https://github.com/nispor/nispor/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source: https://github.com/nispor/nispor/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Patch0: fix_tokio_dep.patch Patch1: use-clap-3.patch
ExclusiveArch: %{rust_arches} ExclusiveArch: %{rust_arches}
BuildRequires: make BuildRequires: make
BuildRequires: pkg-config BuildRequires: pkg-config
@ -18,23 +18,24 @@ BuildRequires: rust-packaging
BuildRequires: systemd-devel BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
BuildRequires: patchelf BuildRequires: patchelf
BuildRequires: (crate(clap/cargo) >= 3.1.0 with crate(clap/cargo) < 4.0)
BuildRequires: (crate(clap/default) >= 3.1.0 with crate(clap/default) < 4.0)
BuildRequires: (crate(env_logger/default) >= 0.9 with crate(env_logger/default) < 0.10)
BuildRequires: (crate(ethtool/default) >= 0.2.2 with crate(ethtool/default) < 0.3)
BuildRequires: (crate(futures/default) >= 0.3 with crate(futures/default) < 0.4)
BuildRequires: (crate(libc/default) >= 0.2.126 with crate(libc/default) < 0.3)
BuildRequires: (crate(log/default) >= 0.4 with crate(log/default) < 0.5)
BuildRequires: (crate(mptcp-pm/default) >= 0.1.1 with crate(mptcp-pm/default) < 0.2)
BuildRequires: (crate(netlink-packet-route/default) >= 0.13.0 with crate(netlink-packet-route/default) < 0.14)
BuildRequires: (crate(netlink-packet-utils/default) >= 0.5.1 with crate(netlink-packet-utils/default) < 0.6)
BuildRequires: (crate(netlink-sys/default) >= 0.8.3 with crate(netlink-sys/default) < 0.9)
BuildRequires: (crate(rtnetlink/default) >= 0.11.0 with crate(rtnetlink/default) < 0.12)
BuildRequires: (crate(serde/default) >= 1.0 with crate(serde/default) < 2.0) BuildRequires: (crate(serde/default) >= 1.0 with crate(serde/default) < 2.0)
BuildRequires: (crate(serde/derive) >= 1.0 with crate(serde/derive) < 2.0) BuildRequires: (crate(serde/derive) >= 1.0 with crate(serde/derive) < 2.0)
BuildRequires: (crate(serde_json/default) >= 1.0 with crate(serde_json/default) < 2.0) BuildRequires: (crate(serde_json/default) >= 1.0 with crate(serde_json/default) < 2.0)
BuildRequires: (crate(rtnetlink/default) >= 0.10.0 with crate(rtnetlink/default) < 0.11.0) BuildRequires: (crate(serde_yaml/default) >= 0.9 with crate(serde_yaml/default) < 0.10)
BuildRequires: (crate(netlink-packet-route/default) >= 0.12.0 with crate(netlink-packet-route/default) < 0.13.0)
BuildRequires: (crate(netlink-packet-utils/default) >= 0.5.1 with crate(netlink-packet-utils/default) < 0.6.0)
BuildRequires: (crate(netlink-sys/default) >= 0.8.3 with crate(netlink-sys/default) < 0.9.0)
BuildRequires: (crate(ethtool/default) >= 0.2.2 with crate(ethtool/default) < 0.3.0)
BuildRequires: (crate(mptcp-pm/default) >= 0.1.1 with crate(mptcp-pm/default) < 0.2.0)
BuildRequires: (crate(tokio/macros) >= 1.18 with crate(tokio/macros) < 2.0) BuildRequires: (crate(tokio/macros) >= 1.18 with crate(tokio/macros) < 2.0)
BuildRequires: (crate(tokio/rt) >= 1.18 with crate(tokio/rt) < 2.0) BuildRequires: (crate(tokio/rt) >= 1.18 with crate(tokio/rt) < 2.0)
BuildRequires: (crate(libc/default) >= 0.2.126 with crate(libc/default) < 0.3.0)
BuildRequires: (crate(clap/default) >= 3.1.2 with crate(clap/default) < 4.0)
BuildRequires: (crate(clap/cargo) >= 3.1.2 with crate(clap/cargo) < 4.0)
BuildRequires: (crate(serde_yaml/default) >= 0.8 with crate(serde_yaml/default) < 0.9)
BuildRequires: (crate(env_logger/default) >= 0.9 with crate(env_logger/default) < 0.10)
BuildRequires: (crate(log/default) >= 0.4 with crate(log/default) < 0.5)
%description %description
Unified interface for Linux network state querying. Unified interface for Linux network state querying.
@ -132,7 +133,4 @@ patchelf --set-soname libnispor.so.1 \
%ghost %{cargo_registry}/%{name}-%{version_no_tilde}/Cargo.toml %ghost %{cargo_registry}/%{name}-%{version_no_tilde}/Cargo.toml
%changelog %changelog
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
%autochangelog %autochangelog

View File

@ -1 +1 @@
SHA512 (nispor-1.2.7.tar.gz) = 397a946c09802d736eb8cfdf177c759c46f64cedf9685161694eab638d939924fcb412b5de27690b76ced421b64dfdad9c623508ef2a3603ba8ac020fa463fb3 SHA512 (nispor-1.2.8.tar.gz) = 221b76cfa6ebfa6a41e688005daec663d7775dd82714f62e0d1b04f398825268b09b4167effadddaeecada1f929a32016895031c2908515d22e2e68370b64cfe

209
use-clap-3.patch Normal file
View File

@ -0,0 +1,209 @@
From e6ba58fa345d6e88ebc15687814facc883d4fdc8 Mon Sep 17 00:00:00 2001
From: Gris Ge <fge@redhat.com>
Date: Mon, 17 Oct 2022 19:46:15 +0800
Subject: [PATCH] Revert "cli: Upgrade to clap 4.0"
This reverts commit c46050b7ff2fd4080eed3451f0793b231dfa7a3f.
Signed-off-by: Gris Ge <fge@redhat.com>
---
src/cli/Cargo.toml | 2 +-
src/cli/npc.rs | 49 +++++++++++++++++++++++-----------------------
2 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/src/cli/Cargo.toml b/src/cli/Cargo.toml
index b727330..8f2b85e 100644
--- a/src/cli/Cargo.toml
+++ b/src/cli/Cargo.toml
@@ -18,7 +18,7 @@ path = "npc.rs"
[dependencies]
serde_json = "1.0"
serde = { version = "1.0.136", features = ["derive"] }
-clap = { version = "4.0", features = ["cargo"] }
+clap = { version = "3.1.2", features = ["cargo"] }
nispor = { path = "../lib", version="1.2.8" }
serde_yaml = "0.9"
env_logger = "0.9.0"
diff --git a/src/cli/npc.rs b/src/cli/npc.rs
index 9272130..bdfc369 100644
--- a/src/cli/npc.rs
+++ b/src/cli/npc.rs
@@ -316,7 +316,7 @@ fn print_result(
}
fn parse_arg_output_format(matches: &clap::ArgMatches) -> CliOutputType {
- match matches.contains_id("json") {
+ match matches.is_present("json") {
true => CliOutputType::Json,
false => CliOutputType::Yaml,
}
@@ -347,13 +347,13 @@ fn main() {
.arg(
clap::Arg::new("verbose")
.short('v')
- .action(clap::ArgAction::Count)
+ .multiple_occurrences(true)
.help("Set verbose level"),
)
.arg(
clap::Arg::new("json")
.short('j')
- .action(clap::ArgAction::Append)
+ .takes_value(false)
.global(true)
.help("Show in json format"),
)
@@ -384,7 +384,7 @@ fn main() {
clap::Arg::new("dev")
.short('d')
.long("dev")
- .action(clap::ArgAction::Append)
+ .takes_value(true)
.help(
"Show only route entries output to \
the specified interface",
@@ -394,7 +394,7 @@ fn main() {
clap::Arg::new("table")
.short('t')
.long("table")
- .action(clap::ArgAction::Append)
+ .takes_value(true)
.help(
"Show only route entries output in \
the specified route table",
@@ -404,9 +404,9 @@ fn main() {
clap::Arg::new("scope")
.short('s')
.long("scope")
- .action(clap::ArgAction::Append)
+ .takes_value(true)
.help("Show only route entries with specified scope")
- .value_parser([
+ .possible_values([
"a", "all", "u", "universe", "g", "global", "s",
"site", "l", "link", "h", "host", "n", "nowhere",
"no_where",
@@ -416,9 +416,9 @@ fn main() {
clap::Arg::new("protocol")
.short('p')
.long("protocol")
- .action(clap::ArgAction::Append)
+ .takes_value(true)
.help("Show only route with specified protocol")
- .value_parser([
+ .possible_values([
"icmp_redirect",
"kernel",
"boot",
@@ -457,7 +457,8 @@ fn main() {
)
.get_matches();
- let (log_module_filter, log_level) = match matches.get_count("verbose") {
+ let (log_module_filter, log_level) = match matches.occurrences_of("verbose")
+ {
0 => (Some("nispor"), log::LevelFilter::Warn),
1 => (Some("nispor"), log::LevelFilter::Info),
2 => (Some("nispor"), log::LevelFilter::Debug),
@@ -471,7 +472,7 @@ fn main() {
let mut output_format = parse_arg_output_format(&matches);
if let Some(m) = matches.subcommand_matches("set") {
- if let Some(file_path) = m.get_one::<String>("file_path") {
+ if let Some(file_path) = m.value_of("file_path") {
print_result(apply_conf(file_path), output_format);
process::exit(0);
} else {
@@ -591,7 +592,7 @@ fn get_link_info(iface: &Iface) -> String {
}
fn get_ifaces(matches: &clap::ArgMatches) -> Result<CliReply, CliError> {
- if let Some(iface_name) = matches.get_one::<String>("iface_name") {
+ if let Some(iface_name) = matches.value_of("iface_name") {
let mut filter = NetStateFilter::minimum();
let mut iface_filter = NetStateIfaceFilter::default();
// In order to get controller/port relation ship,
@@ -606,7 +607,7 @@ fn get_ifaces(matches: &clap::ArgMatches) -> Result<CliReply, CliError> {
let state = NetState::retrieve_with_filter(&filter)?;
if let Some(iface) = state.ifaces.get(iface_name) {
- if matches.contains_id("delete") {
+ if matches.is_present("delete") {
delete_iface(&iface.name)
} else {
Ok(CliReply::Ifaces(vec![iface.clone()]))
@@ -614,7 +615,7 @@ fn get_ifaces(matches: &clap::ArgMatches) -> Result<CliReply, CliError> {
} else {
Err(format!("Interface '{}' not found", iface_name).into())
}
- } else if matches.contains_id("delete") {
+ } else if matches.is_present("delete") {
Err("Need to specific a interface to delete".to_string().into())
} else {
let state = NetState::retrieve()?;
@@ -625,9 +626,9 @@ fn get_ifaces(matches: &clap::ArgMatches) -> Result<CliReply, CliError> {
fn get_routes(matches: &clap::ArgMatches) -> Result<CliReply, CliError> {
let mut route_filter = NetStateRouteFilter::default();
- if let Some(scope) = matches.get_one::<String>("scope") {
+ if let Some(scope) = matches.value_of("scope") {
if scope != "a" && scope != "all" {
- let rt_scope = RouteScope::from(scope.as_str());
+ let rt_scope = RouteScope::from(scope);
if rt_scope == RouteScope::Unknown {
return Err(format!("Invalid scope {}", scope).into());
}
@@ -635,16 +636,16 @@ fn get_routes(matches: &clap::ArgMatches) -> Result<CliReply, CliError> {
}
}
- if let Some(protocol) = matches.get_one::<String>("protocol") {
- let rt_protocol = RouteProtocol::from(protocol.as_str());
+ if let Some(protocol) = matches.value_of("protocol") {
+ let rt_protocol = RouteProtocol::from(protocol);
if rt_protocol == RouteProtocol::Unknown {
return Err(format!("Invalid protocol {}", protocol).into());
}
route_filter.protocol = Some(rt_protocol);
}
- if let Some(table) = matches.get_one::<String>("table") {
- route_filter.table = Some(match table.as_str() {
+ if let Some(table) = matches.value_of("table") {
+ route_filter.table = Some(match table {
"main" => RT_TABLE_MAIN,
"local" => RT_TABLE_LOCAL,
_ => table.parse::<u8>().map_err(|e| CliError {
@@ -653,7 +654,7 @@ fn get_routes(matches: &clap::ArgMatches) -> Result<CliReply, CliError> {
});
}
- if let Some(iface_name) = matches.get_one::<String>("dev") {
+ if let Some(iface_name) = matches.value_of("dev") {
route_filter.oif = Some(iface_name.to_string());
}
@@ -690,17 +691,17 @@ fn get_brief(matches: &clap::ArgMatches) -> Result<CliReply, CliError> {
filter.iface = Some(iface_filter);
let mut route_filter = NetStateRouteFilter::default();
route_filter.table = Some(RT_TABLE_MAIN);
- if let Some(iface_name) = matches.get_one::<String>("iface_name") {
+ if let Some(iface_name) = matches.value_of("iface_name") {
route_filter.oif = Some(iface_name.to_string());
}
filter.route = Some(route_filter);
filter.route_rule = None;
let state = NetState::retrieve_with_filter(&filter)?;
- if let Some(iface_name) = matches.get_one::<String>("iface_name") {
+ if let Some(iface_name) = matches.value_of("iface_name") {
if state.ifaces.get(iface_name).is_some() {
for iface_brief in CliIfaceBrief::from_net_state(&state) {
- if &iface_brief.name == iface_name {
+ if iface_brief.name == iface_name {
return Ok(CliReply::Brief(vec![iface_brief]));
}
}
--
2.38.0