[pve-devel] [PATCH proxmox-ve-rs v4 04/22] frr: create proxmox-frr crate
Wolfgang Bumiller
w.bumiller at proxmox.com
Mon Jul 7 13:12:50 CEST 2025
On Wed, Jul 02, 2025 at 04:49:55PM +0200, Gabriel Goller wrote:
> This crate holds FRR-types, so rust-types that closely resemble
> FRR-configuration items. These types can then simply be converted to
> strings (and the final FRR config) by serializing. This has minimal
> dependencies and it's only internal dependency is proxmox-network-types,
> which holds common types. This way we could reuse proxmox-frr on
> different products, without dragging product-specific types with us.
>
> Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
> ---
> Cargo.toml | 1 +
> proxmox-frr/Cargo.toml | 23 ++++++++++++++++
> proxmox-frr/debian/changelog | 5 ++++
> proxmox-frr/debian/control | 47 ++++++++++++++++++++++++++++++++
> proxmox-frr/debian/copyright | 18 ++++++++++++
> proxmox-frr/debian/debcargo.toml | 7 +++++
> proxmox-frr/src/lib.rs | 0
> 7 files changed, 101 insertions(+)
> create mode 100644 proxmox-frr/Cargo.toml
> create mode 100644 proxmox-frr/debian/changelog
> create mode 100644 proxmox-frr/debian/control
> create mode 100644 proxmox-frr/debian/copyright
> create mode 100644 proxmox-frr/debian/debcargo.toml
> create mode 100644 proxmox-frr/src/lib.rs
>
> diff --git a/Cargo.toml b/Cargo.toml
> index 07da9ef70e6d..dde2d91bf810 100644
> --- a/Cargo.toml
> +++ b/Cargo.toml
> @@ -1,6 +1,7 @@
> [workspace]
> members = [
> "proxmox-ve-config",
> + "proxmox-frr",
> "proxmox-sdn-types",
> ]
> exclude = [
> diff --git a/proxmox-frr/Cargo.toml b/proxmox-frr/Cargo.toml
> new file mode 100644
> index 000000000000..e29453ae09c3
> --- /dev/null
> +++ b/proxmox-frr/Cargo.toml
> @@ -0,0 +1,23 @@
> +[package]
> +name = "proxmox-frr"
> +description = "Rust types for the FRR configuration file"
> +version = "0.1.0"
> +authors.workspace = true
> +edition.workspace = true
> +license.workspace = true
> +homepage.workspace = true
> +exclude.workspace = true
> +rust-version.workspace = true
> +
> +[dependencies]
> +thiserror = { workspace = true }
> +anyhow = "1"
> +tracing = "0.1"
> +
> +serde = { workspace = true, features = [ "derive" ] }
> +serde_with = { workspace = true }
> +itoa = "1.0.9"
^ This seems to be unused across the entire series.
> +
> +proxmox-network-types = { workspace = true }
> +proxmox-sdn-types = { workspace = true }
> +
> diff --git a/proxmox-frr/debian/changelog b/proxmox-frr/debian/changelog
> new file mode 100644
> index 000000000000..47d734857469
> --- /dev/null
> +++ b/proxmox-frr/debian/changelog
> @@ -0,0 +1,5 @@
> +rust-proxmox-frr (0.1.0-1) unstable; urgency=medium
> +
> + * Initial release.
> +
> + -- Proxmox Support Team <support at proxmox.com> Mon, 03 Jun 2024 10:51:11 +0200
> diff --git a/proxmox-frr/debian/control b/proxmox-frr/debian/control
> new file mode 100644
> index 000000000000..07b4fbe87629
> --- /dev/null
> +++ b/proxmox-frr/debian/control
> @@ -0,0 +1,47 @@
> +Source: rust-proxmox-frr
> +Section: rust
> +Priority: optional
> +Build-Depends: debhelper-compat (= 13),
> + dh-sequence-cargo
> +Build-Depends-Arch: cargo:native <!nocheck>,
> + rustc:native (>= 1.82) <!nocheck>,
> + libstd-rust-dev <!nocheck>,
> + librust-anyhow-1+default-dev <!nocheck>,
> + librust-itoa-1+default-dev (>= 1.0.9-~~) <!nocheck>,
> + librust-proxmox-network-types-0.1+default-dev <!nocheck>,
> + librust-serde-1+default-dev <!nocheck>,
> + librust-serde-1+derive-dev <!nocheck>,
> + librust-serde-with-3+default-dev <!nocheck>,
> + librust-thiserror-2+default-dev <!nocheck>,
> + librust-tracing-0.1+default-dev <!nocheck>
> +Maintainer: Proxmox Support Team <support at proxmox.com>
> +Standards-Version: 4.7.0
> +Vcs-Git: git://git.proxmox.com/git/proxmox-ve-rs.git
> +Vcs-Browser: https://git.proxmox.com/?p=proxmox-ve-rs.git
> +Homepage: https://proxmox.com
> +X-Cargo-Crate: proxmox-frr
> +Rules-Requires-Root: no
> +
> +Package: librust-proxmox-frr-dev
> +Architecture: any
> +Multi-Arch: same
> +Depends:
> + ${misc:Depends},
> + librust-anyhow-1+default-dev,
> + librust-itoa-1+default-dev (>= 1.0.9-~~),
> + librust-proxmox-network-types-0.1+default-dev,
> + librust-serde-1+default-dev,
> + librust-serde-1+derive-dev,
> + librust-serde-with-3+default-dev,
> + librust-thiserror-2+default-dev,
> + librust-tracing-0.1+default-dev
> +Provides:
> + librust-proxmox-frr+default-dev (= ${binary:Version}),
> + librust-proxmox-frr-0-dev (= ${binary:Version}),
> + librust-proxmox-frr-0+default-dev (= ${binary:Version}),
> + librust-proxmox-frr-0.1-dev (= ${binary:Version}),
> + librust-proxmox-frr-0.1+default-dev (= ${binary:Version}),
> + librust-proxmox-frr-0.1.0-dev (= ${binary:Version}),
> + librust-proxmox-frr-0.1.0+default-dev (= ${binary:Version})
> +Description: Rust types for the FRR configuration file - Rust source code
> + Source code for Debianized Rust crate "proxmox-frr"
> diff --git a/proxmox-frr/debian/copyright b/proxmox-frr/debian/copyright
> new file mode 100644
> index 000000000000..1ea8a56b4f58
> --- /dev/null
> +++ b/proxmox-frr/debian/copyright
> @@ -0,0 +1,18 @@
> +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
> +
> +Files:
> + *
> +Copyright: 2019 - 2025 Proxmox Server Solutions GmbH <support at proxmox.com>
> +License: AGPL-3.0-or-later
> + This program is free software: you can redistribute it and/or modify it under
> + the terms of the GNU Affero General Public License as published by the Free
> + Software Foundation, either version 3 of the License, or (at your option) any
> + later version.
> + .
> + This program is distributed in the hope that it will be useful, but WITHOUT
> + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
> + FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
> + details.
> + .
> + You should have received a copy of the GNU Affero General Public License along
> + with this program. If not, see <https://www.gnu.org/licenses/>.
> diff --git a/proxmox-frr/debian/debcargo.toml b/proxmox-frr/debian/debcargo.toml
> new file mode 100644
> index 000000000000..87a787e6d03e
> --- /dev/null
> +++ b/proxmox-frr/debian/debcargo.toml
> @@ -0,0 +1,7 @@
> +overlay = "."
> +crate_src_path = ".."
> +maintainer = "Proxmox Support Team <support at proxmox.com>"
> +
> +[source]
> +vcs_git = "git://git.proxmox.com/git/proxmox-ve-rs.git"
> +vcs_browser = "https://git.proxmox.com/?p=proxmox-ve-rs.git"
> diff --git a/proxmox-frr/src/lib.rs b/proxmox-frr/src/lib.rs
> new file mode 100644
> index 000000000000..e69de29bb2d1
> --
> 2.39.5
More information about the pve-devel
mailing list