From 4b9ceab777634f7fe2ebccf48016670bbba4466f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jul 2023 13:42:24 +0000 Subject: [PATCH 01/23] build(deps): bump thiserror from 1.0.41 to 1.0.43 Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.41 to 1.0.43. - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.41...1.0.43) --- updated-dependencies: - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7ffaf0653..bf7ea9056 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -803,18 +803,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.41" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802" +checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.41" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59" +checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" dependencies = [ "proc-macro2", "quote", From c8db70ffda1a924051876cf978dfd1675f1b368a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jul 2023 16:26:06 +0000 Subject: [PATCH 02/23] build(deps): bump serde from 1.0.166 to 1.0.167 Bumps [serde](https://github.com/serde-rs/serde) from 1.0.166 to 1.0.167. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.166...v1.0.167) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf7ea9056..2a9056328 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -670,18 +670,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.166" +version = "1.0.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8" +checksum = "7daf513456463b42aa1d94cff7e0c24d682b429f020b9afa4f5ba5c40a22b237" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.166" +version = "1.0.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6" +checksum = "b69b106b68bc8054f0e974e70d19984040f8a5cf9215ca82626ea4853f82c4b9" dependencies = [ "proc-macro2", "quote", From 32e391433d9934ef8131220882d65221db8fcf7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 13:29:26 +0000 Subject: [PATCH 03/23] build(deps): bump time from 0.3.22 to 0.3.23 Bumps [time](https://github.com/time-rs/time) from 0.3.22 to 0.3.23. - [Release notes](https://github.com/time-rs/time/releases) - [Changelog](https://github.com/time-rs/time/blob/main/CHANGELOG.md) - [Commits](https://github.com/time-rs/time/compare/v0.3.22...v0.3.23) --- updated-dependencies: - dependency-name: time dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a9056328..f0b0b6c77 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -823,9 +823,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" +checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" dependencies = [ "itoa", "libc", @@ -843,9 +843,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" dependencies = [ "time-core", ] From 8d01ffbb407a3e358f6b38f471df10ef55fcaa1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 13:30:01 +0000 Subject: [PATCH 04/23] build(deps): bump regex from 1.9.0 to 1.9.1 Bumps [regex](https://github.com/rust-lang/regex) from 1.9.0 to 1.9.1. - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.9.0...1.9.1) --- updated-dependencies: - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f0b0b6c77..d81a59ab7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -567,9 +567,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89089e897c013b3deb627116ae56a6955a72b8bed395c9526af31c9fe528b484" +checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" dependencies = [ "aho-corasick", "memchr", @@ -579,9 +579,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa250384981ea14565685dea16a9ccc4d1c541a13f82b9c168572264d1df8c56" +checksum = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf" dependencies = [ "aho-corasick", "memchr", From 3211b1e16927c7bcf6ae917fa118fdd54b2b342e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jul 2023 15:49:40 +0000 Subject: [PATCH 05/23] build(deps): bump serde from 1.0.167 to 1.0.168 Bumps [serde](https://github.com/serde-rs/serde) from 1.0.167 to 1.0.168. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.167...v1.0.168) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d81a59ab7..9c03abef5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -670,18 +670,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.167" +version = "1.0.168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daf513456463b42aa1d94cff7e0c24d682b429f020b9afa4f5ba5c40a22b237" +checksum = "d614f89548720367ded108b3c843be93f3a341e22d5674ca0dd5cd57f34926af" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.167" +version = "1.0.168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b69b106b68bc8054f0e974e70d19984040f8a5cf9215ca82626ea4853f82c4b9" +checksum = "d4fe589678c688e44177da4f27152ee2d190757271dc7f1d5b6b9f68d869d641" dependencies = [ "proc-macro2", "quote", From be363a496232f3458c2695f46fb0c99e8e984b15 Mon Sep 17 00:00:00 2001 From: Antoine Tenart Date: Tue, 11 Jul 2023 15:29:06 +0200 Subject: [PATCH 06/23] map: move keys() helper from Map to MapHandle Before the introduction of MapHandle it was possible to create a Map using libbpf_rs and to iterate over its keys (with care). But now the helper is only available for Map as it was not moved alongside the other public functions. Fix this by moving the keys() helper to MapHandle, still allowing Map objects to use it thanks to the Deref impl. For the above to work, make MapKeyIter reference a MapHandle. Signed-off-by: Antoine Tenart --- libbpf-rs/CHANGELOG.md | 6 ++++++ libbpf-rs/src/map.rs | 22 +++++++++++----------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/libbpf-rs/CHANGELOG.md b/libbpf-rs/CHANGELOG.md index 22aa4941d..35cc6e0ed 100644 --- a/libbpf-rs/CHANGELOG.md +++ b/libbpf-rs/CHANGELOG.md @@ -1,3 +1,9 @@ +Unreleased +---------- +- Enabled key iteration on `MapHandle` objects (formerly possible only on `Map` + objects) + + 0.21.1 ------ - Fixed build failures on 32 bit x86 and aarch32 diff --git a/libbpf-rs/src/map.rs b/libbpf-rs/src/map.rs index 770e908bd..ce33afca1 100644 --- a/libbpf-rs/src/map.rs +++ b/libbpf-rs/src/map.rs @@ -285,15 +285,6 @@ impl Map { util::parse_ret(ret) } - /// Returns an iterator over keys in this map - /// - /// Note that if the map is not stable (stable meaning no updates or deletes) during iteration, - /// iteration can skip keys, restart from the beginning, or duplicate keys. In other words, - /// iteration becomes unpredictable. - pub fn keys(&self) -> MapKeyIter<'_> { - MapKeyIter::new(self, self.key_size()) - } - /// Attach a struct ops map pub fn attach_struct_ops(&self) -> Result { if self.map_type() != MapType::StructOps { @@ -842,6 +833,15 @@ impl MapHandle { Err(e) => Err(Error::Internal(format!("remove pin map failed: {e}"))), } } + + /// Returns an iterator over keys in this map + /// + /// Note that if the map is not stable (stable meaning no updates or deletes) during iteration, + /// iteration can skip keys, restart from the beginning, or duplicate keys. In other words, + /// iteration becomes unpredictable. + pub fn keys(&self) -> MapKeyIter<'_> { + MapKeyIter::new(self, self.key_size()) + } } impl AsFd for MapHandle { @@ -938,13 +938,13 @@ impl MapType { #[derive(Debug)] pub struct MapKeyIter<'a> { - map: &'a Map, + map: &'a MapHandle, prev: Option>, next: Vec, } impl<'a> MapKeyIter<'a> { - fn new(map: &'a Map, key_size: u32) -> Self { + fn new(map: &'a MapHandle, key_size: u32) -> Self { Self { map, prev: None, From 5619162146bc238668a8cd4d970e70e72c3ee4e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:16:39 +0000 Subject: [PATCH 07/23] build(deps): bump serde_json from 1.0.100 to 1.0.102 Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.100 to 1.0.102. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.100...v1.0.102) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9c03abef5..0837b9432 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -690,9 +690,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c" +checksum = "b5062a995d481b2308b6064e9af76011f2921c35f97b0468811ed9f6cd91dfed" dependencies = [ "itoa", "ryu", From b463371002309b2fa6d722dc99b683407e42e256 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 13:29:34 +0000 Subject: [PATCH 08/23] build(deps): bump serde_json from 1.0.102 to 1.0.103 Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.102 to 1.0.103. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.102...v1.0.103) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0837b9432..04f76277f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -690,9 +690,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.102" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5062a995d481b2308b6064e9af76011f2921c35f97b0468811ed9f6cd91dfed" +checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" dependencies = [ "itoa", "ryu", From 329979d4959bfd067dce23c3fb2e990c12958fa6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 13:29:08 +0000 Subject: [PATCH 09/23] build(deps): bump semver from 1.0.17 to 1.0.18 Bumps [semver](https://github.com/dtolnay/semver) from 1.0.17 to 1.0.18. - [Release notes](https://github.com/dtolnay/semver/releases) - [Commits](https://github.com/dtolnay/semver/compare/1.0.17...1.0.18) --- updated-dependencies: - dependency-name: semver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 04f76277f..27abd4608 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -661,9 +661,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] From 10f63a88e206c1fe693c85fe387b29f8b61c7ca7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 13:29:45 +0000 Subject: [PATCH 10/23] build(deps): bump anyhow from 1.0.71 to 1.0.72 Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.71 to 1.0.72. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.71...1.0.72) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 27abd4608..6bc67d4e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] name = "autocfg" From 070597bde46e3d913ad461c2f089d959eb255625 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 16:22:14 +0000 Subject: [PATCH 11/23] build(deps): bump clap from 4.3.11 to 4.3.14 Bumps [clap](https://github.com/clap-rs/clap) from 4.3.11 to 4.3.14. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.3.11...v4.3.14) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6bc67d4e5..68407ed59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -104,9 +104,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.3.11" +version = "4.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1640e5cc7fb47dbb8338fd471b105e7ed6c3cb2aeb00c2e067127ffd3764a05d" +checksum = "98330784c494e49850cb23b8e2afcca13587d2500b2e3f1f78ae20248059c9be" dependencies = [ "clap_builder", "clap_derive", @@ -115,9 +115,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.11" +version = "4.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c59138d527eeaf9b53f35a77fcc1fad9d883116070c63d5de1c7dc7b00c72b" +checksum = "e182eb5f2562a67dda37e2c57af64d720a9e010c5e860ed87c056586aeafa52e" dependencies = [ "anstyle", "clap_lex", @@ -125,9 +125,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.3.2" +version = "4.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f" +checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" dependencies = [ "heck", "proc-macro2", From 7b414930a61a01b8144c686de384a02c21c32cd2 Mon Sep 17 00:00:00 2001 From: iamwwc Date: Thu, 13 Jul 2023 11:46:58 +0800 Subject: [PATCH 12/23] Improve error reporting for usage in build script With commit a6975a731b0b ("Improve error reporting on BPF C file compilation failure") we improved error reporting in case a BPF C file fails to compile using libbpf-cargo's command line interface. What remained mostly unaffected was usage from build scripts. With this change we use anyhow's Error type there as well and make sure to include more information in errors this way. --- libbpf-cargo/CHANGELOG.md | 5 +++++ libbpf-cargo/src/lib.rs | 25 +++++++++++++------------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/libbpf-cargo/CHANGELOG.md b/libbpf-cargo/CHANGELOG.md index c00dc6084..47cb68b95 100644 --- a/libbpf-cargo/CHANGELOG.md +++ b/libbpf-cargo/CHANGELOG.md @@ -1,3 +1,8 @@ +Unreleased +---------- +- Improved error reporting in build script usage + + 0.21.1 ------ - Adjusted named padding members in generated types to have `pub` visibility diff --git a/libbpf-cargo/src/lib.rs b/libbpf-cargo/src/lib.rs index 88b22d9c1..0e363c2d8 100644 --- a/libbpf-cargo/src/lib.rs +++ b/libbpf-cargo/src/lib.rs @@ -66,6 +66,7 @@ use std::path::Path; use std::path::PathBuf; use std::result; +use anyhow::anyhow; use tempfile::tempdir; use tempfile::TempDir; use thiserror::Error; @@ -87,10 +88,10 @@ mod test; /// Canonical error type for this crate. #[derive(Error, Debug)] pub enum Error { - #[error("Error building BPF object file: {0}")] - Build(String), - #[error("Error generating skeleton: {0}")] - Generate(String), + #[error("Error building BPF object file")] + Build(#[source] anyhow::Error), + #[error("Error generating skeleton")] + Generate(#[source] anyhow::Error), } pub type Result = result::Result; @@ -223,16 +224,16 @@ impl SkeletonBuilder { let source = self .source .as_ref() - .ok_or_else(|| Error::Build("No source file".into()))?; + .ok_or_else(|| Error::Build(anyhow!("No source file")))?; let filename = source .file_name() - .ok_or_else(|| Error::Build("Missing file name".into()))? + .ok_or_else(|| Error::Build(anyhow!("Missing file name")))? .to_str() - .ok_or_else(|| Error::Build("Invalid unicode in file name".into()))?; + .ok_or_else(|| Error::Build(anyhow!("Invalid unicode in file name")))?; if !filename.ends_with(".bpf.c") { - return Err(Error::Build(format!( + return Err(Error::Build(anyhow!( "Source file={} does not have .bpf.c suffix", source.display() ))); @@ -240,7 +241,7 @@ impl SkeletonBuilder { if self.obj.is_none() { let name = filename.split('.').next().unwrap(); - let dir = tempdir().map_err(|e| Error::Build(e.to_string()))?; + let dir = tempdir().map_err(|e| Error::Build(e.into()))?; let objfile = dir.path().join(format!("{name}.o")); self.obj = Some(objfile); // Hold onto tempdir so that it doesn't get deleted early @@ -256,7 +257,7 @@ impl SkeletonBuilder { self.skip_clang_version_check, &self.clang_args, ) - .map_err(|e| Error::Build(e.to_string()))?; + .map_err(Error::Build)?; Ok(()) } @@ -268,7 +269,7 @@ impl SkeletonBuilder { let objfile = self .obj .as_ref() - .ok_or_else(|| Error::Generate("No object file".into()))?; + .ok_or_else(|| Error::Generate(anyhow!("No object file")))?; gen::gen_single( self.debug, @@ -276,7 +277,7 @@ impl SkeletonBuilder { gen::OutputDest::File(output.as_ref()), Some(&self.rustfmt), ) - .map_err(|e| Error::Generate(e.to_string()))?; + .map_err(Error::Generate)?; Ok(()) } From fe4f6db184d72ebee1710e61199d72dd0b60cc1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jul 2023 13:18:15 +0000 Subject: [PATCH 13/23] build(deps): bump clap from 4.3.14 to 4.3.15 Bumps [clap](https://github.com/clap-rs/clap) from 4.3.14 to 4.3.15. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.3.14...v4.3.15) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 68407ed59..093bb6edf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -104,9 +104,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.3.14" +version = "4.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98330784c494e49850cb23b8e2afcca13587d2500b2e3f1f78ae20248059c9be" +checksum = "8f644d0dac522c8b05ddc39aaaccc5b136d5dc4ff216610c5641e3be5becf56c" dependencies = [ "clap_builder", "clap_derive", @@ -115,9 +115,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.14" +version = "4.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182eb5f2562a67dda37e2c57af64d720a9e010c5e860ed87c056586aeafa52e" +checksum = "af410122b9778e024f9e0fb35682cc09cc3f85cad5e8d3ba8f47a9702df6e73d" dependencies = [ "anstyle", "clap_lex", From b64df51b1a8b41b3c7b29635f47b3a7c015e550a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jul 2023 16:20:04 +0000 Subject: [PATCH 14/23] build(deps): bump scopeguard from 1.1.0 to 1.2.0 Bumps [scopeguard](https://github.com/bluss/scopeguard) from 1.1.0 to 1.2.0. - [Commits](https://github.com/bluss/scopeguard/compare/v1.1.0...v1.2.0) --- updated-dependencies: - dependency-name: scopeguard dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 093bb6edf..db3c46a19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -635,9 +635,9 @@ checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll" From b57485941b567755f7d0cd4fc37c92d1c2e404d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Jul 2023 13:44:01 +0000 Subject: [PATCH 15/23] build(deps): bump clap from 4.3.15 to 4.3.16 Bumps [clap](https://github.com/clap-rs/clap) from 4.3.15 to 4.3.16. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.3.15...v4.3.16) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db3c46a19..80a4041f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -104,9 +104,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.3.15" +version = "4.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f644d0dac522c8b05ddc39aaaccc5b136d5dc4ff216610c5641e3be5becf56c" +checksum = "74bb1b4028935821b2d6b439bba2e970bdcf740832732437ead910c632e30d7d" dependencies = [ "clap_builder", "clap_derive", @@ -115,9 +115,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.15" +version = "4.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af410122b9778e024f9e0fb35682cc09cc3f85cad5e8d3ba8f47a9702df6e73d" +checksum = "5ae467cbb0111869b765e13882a1dbbd6cb52f58203d8b80c44f667d4dd19843" dependencies = [ "anstyle", "clap_lex", From b7405bbe149f5a26093a4ae9032db3c69ffc309f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Jul 2023 13:25:03 +0000 Subject: [PATCH 16/23] build(deps): bump clap from 4.3.16 to 4.3.17 Bumps [clap](https://github.com/clap-rs/clap) from 4.3.16 to 4.3.17. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.3.16...v4.3.17) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 80a4041f0..50e06a612 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -104,9 +104,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.3.16" +version = "4.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74bb1b4028935821b2d6b439bba2e970bdcf740832732437ead910c632e30d7d" +checksum = "5b0827b011f6f8ab38590295339817b0d26f344aa4932c3ced71b45b0c54b4a9" dependencies = [ "clap_builder", "clap_derive", @@ -115,9 +115,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.16" +version = "4.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ae467cbb0111869b765e13882a1dbbd6cb52f58203d8b80c44f667d4dd19843" +checksum = "9441b403be87be858db6a23edb493e7f694761acdc3343d5a0fcaafd304cbc9e" dependencies = [ "anstyle", "clap_lex", From d14af534a85292e25129e783c92b1e38b651a554 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jul 2023 14:19:47 +0000 Subject: [PATCH 17/23] build(deps): bump tempfile from 3.6.0 to 3.7.0 Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.6.0 to 3.7.0. - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/compare/v3.6.0...v3.7.0) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Cargo.lock | 48 +++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 50e06a612..1a92f0327 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -35,6 +35,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" + [[package]] name = "bpf_query" version = "0.1.0" @@ -174,12 +180,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.8.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] +checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" [[package]] name = "goblin" @@ -213,17 +216,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - [[package]] name = "itoa" version = "1.0.4" @@ -262,7 +254,7 @@ dependencies = [ name = "libbpf-rs" version = "0.21.1" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cc", "lazy_static", "libbpf-sys", @@ -302,9 +294,9 @@ checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" [[package]] name = "lock_api" @@ -358,7 +350,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset", @@ -553,7 +545,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -562,7 +554,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -609,13 +601,12 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.20" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" +checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" dependencies = [ - "bitflags", + "bitflags 2.3.3", "errno", - "io-lifetimes", "libc", "linux-raw-sys", "windows-sys", @@ -789,11 +780,10 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.6.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" dependencies = [ - "autocfg", "cfg-if", "fastrand", "redox_syscall 0.3.5", From d403dd2432f9ae3b73e5af64e2ce69ec1b241a03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jul 2023 16:50:19 +0000 Subject: [PATCH 18/23] build(deps): bump thiserror from 1.0.43 to 1.0.44 Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.43 to 1.0.44. - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.43...1.0.44) --- updated-dependencies: - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a92f0327..2831d6903 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -793,18 +793,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", From 6da75cb060f564ab18050c69d28e0f141eff2d53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 13:46:05 +0000 Subject: [PATCH 19/23] build(deps): bump clap from 4.3.17 to 4.3.19 Bumps [clap](https://github.com/clap-rs/clap) from 4.3.17 to 4.3.19. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.3.17...v4.3.19) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2831d6903..21f707110 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -110,9 +110,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.3.17" +version = "4.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0827b011f6f8ab38590295339817b0d26f344aa4932c3ced71b45b0c54b4a9" +checksum = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d" dependencies = [ "clap_builder", "clap_derive", @@ -121,9 +121,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.17" +version = "4.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9441b403be87be858db6a23edb493e7f694761acdc3343d5a0fcaafd304cbc9e" +checksum = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1" dependencies = [ "anstyle", "clap_lex", From 240b07f593de03bdc847d191afd80761d796822b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20M=C3=BCller?= Date: Mon, 24 Jul 2023 10:10:45 -0700 Subject: [PATCH 20/23] Bump minimum supported Rust version to 1.64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump the minimum supported Rust version to 1.64. Apparently we need that in order to use bitflags 2.0. Signed-off-by: Daniel Müller --- .github/workflows/test.yml | 2 +- libbpf-cargo/CHANGELOG.md | 1 + libbpf-cargo/Cargo.toml | 2 +- libbpf-cargo/README.md | 2 +- libbpf-rs/CHANGELOG.md | 1 + libbpf-rs/Cargo.toml | 2 +- libbpf-rs/README.md | 2 +- 7 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6b9528e83..a9b5ea802 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -83,7 +83,7 @@ jobs: profile: minimal # Please adjust README and rust-version field in Cargo.toml files when # bumping version. - toolchain: 1.63.0 + toolchain: 1.64.0 components: rustfmt default: true - uses: Swatinem/rust-cache@v2.2.0 diff --git a/libbpf-cargo/CHANGELOG.md b/libbpf-cargo/CHANGELOG.md index 47cb68b95..d6ac45dbd 100644 --- a/libbpf-cargo/CHANGELOG.md +++ b/libbpf-cargo/CHANGELOG.md @@ -1,6 +1,7 @@ Unreleased ---------- - Improved error reporting in build script usage +- Bumped minimum Rust version to `1.64` 0.21.1 diff --git a/libbpf-cargo/Cargo.toml b/libbpf-cargo/Cargo.toml index 686a4e726..1396bba7c 100644 --- a/libbpf-cargo/Cargo.toml +++ b/libbpf-cargo/Cargo.toml @@ -8,7 +8,7 @@ readme = "README.md" version = "0.21.1" authors = ["Daniel Xu ", "Daniel Müller "] edition = "2021" -rust-version = "1.63" +rust-version = "1.64" license = "LGPL-2.1-only OR BSD-2-Clause" keywords = ["bpf", "ebpf", "libbpf"] diff --git a/libbpf-cargo/README.md b/libbpf-cargo/README.md index 7ae07ca60..6b0322bb2 100644 --- a/libbpf-cargo/README.md +++ b/libbpf-cargo/README.md @@ -1,5 +1,5 @@ ![CI](https://github.com/libbpf/libbpf-rs/workflows/Rust/badge.svg?branch=master) -[![rustc](https://img.shields.io/badge/rustc-1.63+-blue.svg)](https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html) +[![rustc](https://img.shields.io/badge/rustc-1.64+-blue.svg)](https://blog.rust-lang.org/2022/09/22/Rust-1.64.0.html) # libbpf-cargo diff --git a/libbpf-rs/CHANGELOG.md b/libbpf-rs/CHANGELOG.md index 35cc6e0ed..89019c926 100644 --- a/libbpf-rs/CHANGELOG.md +++ b/libbpf-rs/CHANGELOG.md @@ -2,6 +2,7 @@ Unreleased ---------- - Enabled key iteration on `MapHandle` objects (formerly possible only on `Map` objects) +- Bumped minimum Rust version to `1.64` 0.21.1 diff --git a/libbpf-rs/Cargo.toml b/libbpf-rs/Cargo.toml index 76034967c..13dce3dda 100644 --- a/libbpf-rs/Cargo.toml +++ b/libbpf-rs/Cargo.toml @@ -7,7 +7,7 @@ readme = "README.md" version = "0.21.1" authors = ["Daniel Xu ", "Daniel Müller "] edition = "2021" -rust-version = "1.63" +rust-version = "1.64" license = "LGPL-2.1-only OR BSD-2-Clause" keywords = ["bpf", "ebpf", "libbpf"] diff --git a/libbpf-rs/README.md b/libbpf-rs/README.md index 13fb585fd..53800d0e3 100644 --- a/libbpf-rs/README.md +++ b/libbpf-rs/README.md @@ -1,5 +1,5 @@ ![CI](https://github.com/libbpf/libbpf-rs/workflows/Rust/badge.svg?branch=master) -[![rustc](https://img.shields.io/badge/rustc-1.63+-blue.svg)](https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html) +[![rustc](https://img.shields.io/badge/rustc-1.64+-blue.svg)](https://blog.rust-lang.org/2022/09/22/Rust-1.64.0.html) # libbpf-rs From dd021177547e29e2c1a9afaed95ed2c2de868511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20M=C3=BCller?= Date: Mon, 24 Jul 2023 09:54:45 -0700 Subject: [PATCH 21/23] Bump bitflags to 2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update the bitflags dependency to 2.0. Some changes to this new major version were breaking our code and required adjustments. See https://github.com/bitflags/bitflags/releases/tag/2.0.0 for relevant details. Signed-off-by: Daniel Müller --- Cargo.lock | 2 +- libbpf-rs/CHANGELOG.md | 1 + libbpf-rs/Cargo.toml | 2 +- libbpf-rs/src/map.rs | 9 +++++---- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 21f707110..d8fe84db5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -254,7 +254,7 @@ dependencies = [ name = "libbpf-rs" version = "0.21.1" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.3.3", "cc", "lazy_static", "libbpf-sys", diff --git a/libbpf-rs/CHANGELOG.md b/libbpf-rs/CHANGELOG.md index 89019c926..73a823082 100644 --- a/libbpf-rs/CHANGELOG.md +++ b/libbpf-rs/CHANGELOG.md @@ -2,6 +2,7 @@ Unreleased ---------- - Enabled key iteration on `MapHandle` objects (formerly possible only on `Map` objects) +- Updated `bitflags` dependency to `2.0` - Bumped minimum Rust version to `1.64` diff --git a/libbpf-rs/Cargo.toml b/libbpf-rs/Cargo.toml index 13dce3dda..46c166c53 100644 --- a/libbpf-rs/Cargo.toml +++ b/libbpf-rs/Cargo.toml @@ -21,7 +21,7 @@ novendor = ["libbpf-sys/novendor"] static = ["libbpf-sys/static"] [dependencies] -bitflags = "1.3" +bitflags = "2.0" lazy_static = "1.4" libbpf-sys = { version = "1.0.3" } libc = "0.2" diff --git a/libbpf-rs/src/map.rs b/libbpf-rs/src/map.rs index ce33afca1..d1a45fd24 100644 --- a/libbpf-rs/src/map.rs +++ b/libbpf-rs/src/map.rs @@ -549,7 +549,7 @@ impl MapHandle { self.fd.as_raw_fd(), self.map_key(key), out.as_mut_ptr() as *mut c_void, - flags.bits, + flags.bits(), ) }; @@ -584,7 +584,7 @@ impl MapHandle { self.fd.as_raw_fd(), self.map_key(key), value.as_ptr() as *const c_void, - flags.bits, + flags.bits(), ) }; @@ -675,8 +675,8 @@ impl MapHandle { let opts = libbpf_sys::bpf_map_batch_opts { sz: mem::size_of::() as _, - elem_flags: elem_flags.bits, - flags: flags.bits, + elem_flags: elem_flags.bits(), + flags: flags.bits(), }; let mut count = count; @@ -853,6 +853,7 @@ impl AsFd for MapHandle { bitflags! { /// Flags to configure [`Map`] operations. + #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Copy)] pub struct MapFlags: u64 { /// See [`libbpf_sys::BPF_ANY`]. const ANY = libbpf_sys::BPF_ANY as _; From d7d56d27accf345f67121db7ee3c325ed3f4d11c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 13:32:30 +0000 Subject: [PATCH 22/23] build(deps): bump serde_json from 1.0.103 to 1.0.104 Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.103 to 1.0.104. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.103...v1.0.104) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d8fe84db5..519f19ad8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -681,9 +681,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ "itoa", "ryu", From e3707603a7a210962341ecfb721a702c4b6dbf5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20M=C3=BCller?= Date: Fri, 28 Jul 2023 11:19:58 -0700 Subject: [PATCH 23/23] Improve error context chaining MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are a bunch of occasions where we wrongly embed errors into a string and report the resulting string as a new error. Fix them by creating proper error chains. Signed-off-by: Daniel Müller --- examples/tc_port_whitelist/src/main.rs | 11 ++++++--- libbpf-cargo/src/gen/btf.rs | 2 +- libbpf-cargo/src/gen/mod.rs | 33 ++++++++++++-------------- libbpf-cargo/src/lib.rs | 1 + libbpf-cargo/src/main.rs | 2 ++ libbpf-cargo/src/metadata.rs | 16 +++++-------- 6 files changed, 33 insertions(+), 32 deletions(-) diff --git a/examples/tc_port_whitelist/src/main.rs b/examples/tc_port_whitelist/src/main.rs index ea43baffb..707a61cda 100644 --- a/examples/tc_port_whitelist/src/main.rs +++ b/examples/tc_port_whitelist/src/main.rs @@ -1,6 +1,9 @@ +#![allow(clippy::let_unit_value)] + use std::os::unix::io::AsFd as _; use anyhow::bail; +use anyhow::Context as _; use anyhow::Result; use clap::Parser; @@ -119,9 +122,11 @@ fn main() -> Result<()> { for (i, port) in opts.ports.iter().enumerate() { let key = (i as u32).to_ne_bytes(); let val = port.to_ne_bytes(); - if let Err(e) = skel.maps_mut().ports().update(&key, &val, MapFlags::ANY) { - bail!("Example limited to 10 ports: {e}"); - } + let () = skel + .maps_mut() + .ports() + .update(&key, &val, MapFlags::ANY) + .context("Example limited to 10 ports")?; } ingress.create()?; diff --git a/libbpf-cargo/src/gen/btf.rs b/libbpf-cargo/src/gen/btf.rs index 7a95c64d0..448b92705 100644 --- a/libbpf-cargo/src/gen/btf.rs +++ b/libbpf-cargo/src/gen/btf.rs @@ -373,7 +373,7 @@ impl<'s> GenBtf<'s> { } Err(e) => { if gen_impl_default || !t.is_struct { - bail!("Could not construct a necessary Default Impl: {}", e); + return Err(e.context("Could not construct a necessary Default Impl")); } } }; diff --git a/libbpf-cargo/src/gen/mod.rs b/libbpf-cargo/src/gen/mod.rs index 5cee96321..db0056944 100644 --- a/libbpf-cargo/src/gen/mod.rs +++ b/libbpf-cargo/src/gen/mod.rs @@ -963,13 +963,12 @@ pub fn gen_single( ), }; - if let Err(e) = gen_skel(debug, name, obj_file, output, rustfmt_path) { - bail!( - "Failed to generate skeleton for {}: {}", + let () = gen_skel(debug, name, obj_file, output, rustfmt_path).with_context(|| { + format!( + "Failed to generate skeleton for {}", obj_file.to_string_lossy(), - e - ); - } + ) + })?; Ok(()) } @@ -999,20 +998,19 @@ fn gen_project( let mut skel_path = obj.path.clone(); skel_path.pop(); - match gen_skel( + let () = gen_skel( debug, &obj.name, obj_file_path.as_path(), OutputDest::Directory(skel_path.as_path()), rustfmt_path, - ) { - Ok(_) => (), - Err(e) => bail!( - "Failed to generate skeleton for {}: {}", - obj.path.as_path().display(), - e - ), - } + ) + .with_context(|| { + format!( + "Failed to generate skeleton for {}", + obj.path.as_path().display() + ) + })?; match package_objs.get_mut(&obj.package) { Some(v) => v.push(obj.clone()), @@ -1023,9 +1021,8 @@ fn gen_project( } for (package, objs) in package_objs { - if let Err(e) = gen_mods(&objs, rustfmt_path) { - bail!("Failed to generate mod.rs for package={}: {}", package, e); - } + let () = gen_mods(&objs, rustfmt_path) + .with_context(|| format!("Failed to generate mod.rs for package={package}"))?; } Ok(()) diff --git a/libbpf-cargo/src/lib.rs b/libbpf-cargo/src/lib.rs index 0e363c2d8..6cbdd0121 100644 --- a/libbpf-cargo/src/lib.rs +++ b/libbpf-cargo/src/lib.rs @@ -55,6 +55,7 @@ //! build`. This is a convenience command so you don't forget any steps. Alternatively, you could //! write a Makefile for your project. +#![allow(clippy::let_unit_value)] #![warn( elided_lifetimes_in_paths, single_use_lifetimes, diff --git a/libbpf-cargo/src/main.rs b/libbpf-cargo/src/main.rs index 32a626ea0..d9c906048 100644 --- a/libbpf-cargo/src/main.rs +++ b/libbpf-cargo/src/main.rs @@ -1,3 +1,5 @@ +#![allow(clippy::let_unit_value)] + use std::path::PathBuf; use anyhow::Result; diff --git a/libbpf-cargo/src/metadata.rs b/libbpf-cargo/src/metadata.rs index 76bf0f268..1c1e4ae24 100644 --- a/libbpf-cargo/src/metadata.rs +++ b/libbpf-cargo/src/metadata.rs @@ -3,6 +3,7 @@ use std::path::Path; use std::path::PathBuf; use anyhow::bail; +use anyhow::Context as _; use anyhow::Result; use cargo_metadata::MetadataCommand; use cargo_metadata::Package; @@ -97,7 +98,7 @@ fn get_package( ); } } else { - bail!(e); + return Err(e.into()); } } }; @@ -148,11 +149,7 @@ pub fn get(debug: bool, manifest_path: Option<&PathBuf>) -> Result<(PathBuf, Vec cmd.manifest_path(path); } - let metadata = match cmd.exec() { - Ok(m) => m, - Err(e) => bail!("Failed to get cargo metadata: {}", e), - }; - + let metadata = cmd.exec().context("Failed to get cargo metadata")?; if metadata.workspace_members.is_empty() { bail!("Failed to find targets") } @@ -162,10 +159,9 @@ pub fn get(debug: bool, manifest_path: Option<&PathBuf>) -> Result<(PathBuf, Vec for id in &metadata.workspace_members { for package in &metadata.packages { if id == &package.id { - match &mut get_package(debug, package, &target_directory) { - Ok(vv) => v.append(vv), - Err(e) => bail!("Failed to process package={}, error={}", package.name, e), - } + let vv = &mut get_package(debug, package, &target_directory) + .with_context(|| format!("Failed to process package={}", package.name))?; + let () = v.append(vv); } } }