all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Hannes Laimer <h.laimer@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH proxmox v6 6/6] ebpf: debian: package the crate as a Rust library
Date: Wed,  4 Nov 2026 14:49:05 +0100	[thread overview]
Message-ID: <20261104134905.1623451-7-h.laimer@proxmox.com> (raw)
In-Reply-To: <20261104134905.1623451-1-h.laimer@proxmox.com>

The overlay in debian/ builds it through debcargo, like the other Rust
crates. The BPF programs are compiled by the build script, so building
against the crate pulls in clang and the libbpf headers as well.

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
---
 proxmox-ebpf/Cargo.toml           |  1 +
 proxmox-ebpf/build.rs             |  6 ++++
 proxmox-ebpf/debian/changelog     |  5 ++++
 proxmox-ebpf/debian/control       | 50 +++++++++++++++++++++++++++++++
 proxmox-ebpf/debian/copyright     | 18 +++++++++++
 proxmox-ebpf/debian/debcargo.toml | 13 ++++++++
 6 files changed, 93 insertions(+)
 create mode 100644 proxmox-ebpf/debian/changelog
 create mode 100644 proxmox-ebpf/debian/control
 create mode 100644 proxmox-ebpf/debian/copyright
 create mode 100644 proxmox-ebpf/debian/debcargo.toml

diff --git a/proxmox-ebpf/Cargo.toml b/proxmox-ebpf/Cargo.toml
index 4cfd0b3258ed..d4607d83e6ff 100644
--- a/proxmox-ebpf/Cargo.toml
+++ b/proxmox-ebpf/Cargo.toml
@@ -1,5 +1,6 @@
 [package]
 name = "proxmox-ebpf"
+description = "Proxmox VE eBPF"
 version = "0.1.0"
 authors.workspace = true
 edition.workspace = true
diff --git a/proxmox-ebpf/build.rs b/proxmox-ebpf/build.rs
index 33032c61013e..f32a00ffc12e 100644
--- a/proxmox-ebpf/build.rs
+++ b/proxmox-ebpf/build.rs
@@ -99,6 +99,12 @@ fn main() {
     );
     println!("cargo:rustc-link-search=native={}", out_dir.display());
     println!("cargo:rustc-link-lib=static=bpf_native");
+    // the archive holds code compiled from the crate's C sources, dh-cargo lists that in the
+    // Built-Using of a package linking it
+    println!(
+        "dh-cargo:deb-built-using=bpf_native=1={}",
+        manifest_dir.display()
+    );
 }
 
 // native build against the shim headers, so tests call the program as a plain function
diff --git a/proxmox-ebpf/debian/changelog b/proxmox-ebpf/debian/changelog
new file mode 100644
index 000000000000..c816e8ecbfaa
--- /dev/null
+++ b/proxmox-ebpf/debian/changelog
@@ -0,0 +1,5 @@
+rust-proxmox-ebpf (0.1.0-1) trixie; urgency=medium
+
+  * Initial release.
+
+ -- Proxmox Support Team <support@proxmox.com>  Wed, 02 Sep 2026 10:00:00 +0200
diff --git a/proxmox-ebpf/debian/control b/proxmox-ebpf/debian/control
new file mode 100644
index 000000000000..d51e260ef386
--- /dev/null
+++ b/proxmox-ebpf/debian/control
@@ -0,0 +1,50 @@
+Source: rust-proxmox-ebpf
+Section: rust
+Priority: optional
+Build-Depends: debhelper-compat (= 13),
+ dh-sequence-cargo
+Build-Depends-Arch: cargo:native <!nocheck>,
+ rustc:native (>= 1.88) <!nocheck>,
+ libstd-rust-dev <!nocheck>,
+ librust-anyhow-1+default-dev <!nocheck>,
+ librust-aya-0.13+default-dev <!nocheck>,
+ librust-log-0.4+default-dev (>= 0.4.17-~~) <!nocheck>,
+ librust-nix-0.29+default-dev <!nocheck>,
+ librust-nix-0.29+fs-dev <!nocheck>,
+ clang-21 <!nocheck>,
+ libbpf-dev <!nocheck>,
+ proxmox-kernel-libc-dev <!nocheck>
+Maintainer: Proxmox Support Team <support@proxmox.com>
+Standards-Version: 4.7.2
+Vcs-Git: git://git.proxmox.com/git/proxmox.git
+Vcs-Browser: https://git.proxmox.com/?p=proxmox.git
+Homepage: https://proxmox.com
+X-Cargo-Crate: proxmox-ebpf
+
+Package: librust-proxmox-ebpf-dev
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ librust-anyhow-1+default-dev,
+ librust-aya-0.13+default-dev,
+ librust-log-0.4+default-dev (>= 0.4.17-~~),
+ librust-nix-0.29+default-dev,
+ librust-nix-0.29+fs-dev,
+ clang-21,
+ libbpf-dev,
+ proxmox-kernel-libc-dev
+Provides:
+ librust-proxmox-ebpf+bpf-debug-dev (= ${binary:Version}),
+ librust-proxmox-ebpf+default-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0+bpf-debug-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0+default-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0.1-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0.1+bpf-debug-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0.1+default-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0.1.0-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0.1.0+bpf-debug-dev (= ${binary:Version}),
+ librust-proxmox-ebpf-0.1.0+default-dev (= ${binary:Version})
+Description: Proxmox VE eBPF - Rust source code
+ Source code for Debianized Rust crate "proxmox-ebpf"
diff --git a/proxmox-ebpf/debian/copyright b/proxmox-ebpf/debian/copyright
new file mode 100644
index 000000000000..01138fa0482f
--- /dev/null
+++ b/proxmox-ebpf/debian/copyright
@@ -0,0 +1,18 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+
+Files:
+ *
+Copyright: 2026 Proxmox Server Solutions GmbH <support@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-ebpf/debian/debcargo.toml b/proxmox-ebpf/debian/debcargo.toml
new file mode 100644
index 000000000000..04e8c8f52d4f
--- /dev/null
+++ b/proxmox-ebpf/debian/debcargo.toml
@@ -0,0 +1,13 @@
+overlay = "."
+crate_src_path = ".."
+maintainer = "Proxmox Support Team <support@proxmox.com>"
+
+# the BPF programs and the harness's own are C sources of this crate, not vendored code
+whitelist = ["src/*/bpf/*.c", "tests/bpf/*.c"]
+
+[source]
+vcs_git = "git://git.proxmox.com/git/proxmox.git"
+vcs_browser = "https://git.proxmox.com/?p=proxmox.git"
+
+[packages.lib]
+depends = ["clang-21", "libbpf-dev", "proxmox-kernel-libc-dev"]
-- 
2.47.3





  parent reply	other threads:[~2026-11-04 13:50 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-04 13:48 [PATCH proxmox v6 0/6] add proxmox-ebpf library Hannes Laimer
2026-11-04 13:49 ` [PATCH proxmox v6 1/6] ebpf: add the crate with its BPF build Hannes Laimer
2026-11-04 13:49 ` [PATCH proxmox v6 2/6] ebpf: tc: add the link plumbing Hannes Laimer
2026-11-04 13:49 ` [PATCH proxmox v6 3/6] ebpf: subsystem: add the shared tc program handling Hannes Laimer
2026-11-04 13:49 ` [PATCH proxmox v6 4/6] ebpf: subsystem: place the links of different subsystems in a fixed order Hannes Laimer
2026-11-04 13:49 ` [PATCH proxmox v6 5/6] ebpf: tests: add a native harness for the BPF C programs Hannes Laimer
2026-11-04 13:49 ` Hannes Laimer [this message]
2026-11-04 16:02 ` superseded: [PATCH proxmox v6 0/6] add proxmox-ebpf library Hannes Laimer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261104134905.1623451-7-h.laimer@proxmox.com \
    --to=h.laimer@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal