Files
rustnet/debian/rules
Marco Cadetg 3c4d5e4bc1 Add Ubuntu PPA packaging support (#47)
Adds Ubuntu PPA packaging with automated GitHub Actions workflow.

- Debian packaging files in debian/ directory
- GitHub Actions workflow for automated PPA uploads
- Targets Ubuntu Questing (25.10) with Rust 1.88
2025-10-14 09:24:53 +02:00

81 lines
2.7 KiB
Makefile
Executable File

#!/usr/bin/make -f
export DH_VERBOSE = 1
export RUSTFLAGS = -C strip=symbols
# Use versioned Rust 1.88 from Ubuntu Questing
export CARGO = /usr/bin/cargo-1.88
export RUSTC = /usr/bin/rustc-1.88
export RUSTDOC = /usr/bin/rustdoc-1.88
# eBPF is enabled by default, no need for explicit feature flag
export CARGO_BUILD_FLAGS = --release
# Set asset directory for completions and manpage generation
export RUSTNET_ASSET_DIR = $(CURDIR)/debian/tmp/assets
%:
dh $@
override_dh_auto_clean:
$(CARGO) clean || true
rm -rf target vendor .cargo
override_dh_auto_build:
# Setup cargo to use vendored dependencies
mkdir -p .cargo
cp debian/cargo.config .cargo/config.toml
# Extract vendored dependencies
tar xJf debian/vendor.tar.xz
# Create asset directory for build.rs
mkdir -p $(RUSTNET_ASSET_DIR)
# Build with cargo-1.88 using vendored dependencies
$(CARGO) build --release --frozen
override_dh_auto_install:
# Install binary
install -Dm755 target/release/rustnet debian/rustnet/usr/bin/rustnet
# Install services file
install -Dm644 assets/services debian/rustnet/usr/share/rustnet-monitor/services
# Install desktop file
install -Dm644 resources/packaging/linux/rustnet.desktop \
debian/rustnet/usr/share/applications/rustnet.desktop
# Install icon
install -Dm644 resources/packaging/linux/graphics/rustnet.png \
debian/rustnet/usr/share/icons/hicolor/256x256/apps/rustnet.png
# Install documentation
install -Dm644 README.md debian/rustnet/usr/share/doc/rustnet/README.md
# Install shell completions if generated
if [ -d "$(RUSTNET_ASSET_DIR)" ]; then \
mkdir -p debian/rustnet/usr/share/bash-completion/completions; \
mkdir -p debian/rustnet/usr/share/zsh/vendor-completions; \
mkdir -p debian/rustnet/usr/share/fish/vendor_completions.d; \
[ -f "$(RUSTNET_ASSET_DIR)/rustnet.bash" ] && \
install -Dm644 "$(RUSTNET_ASSET_DIR)/rustnet.bash" \
debian/rustnet/usr/share/bash-completion/completions/rustnet || true; \
[ -f "$(RUSTNET_ASSET_DIR)/_rustnet" ] && \
install -Dm644 "$(RUSTNET_ASSET_DIR)/_rustnet" \
debian/rustnet/usr/share/zsh/vendor-completions/_rustnet || true; \
[ -f "$(RUSTNET_ASSET_DIR)/rustnet.fish" ] && \
install -Dm644 "$(RUSTNET_ASSET_DIR)/rustnet.fish" \
debian/rustnet/usr/share/fish/vendor_completions.d/rustnet.fish || true; \
fi
# Install manpage if generated
if [ -f "$(RUSTNET_ASSET_DIR)/rustnet.1" ]; then \
install -Dm644 "$(RUSTNET_ASSET_DIR)/rustnet.1" \
debian/rustnet/usr/share/man/man1/rustnet.1; \
fi
override_dh_auto_test:
# Skip tests during package build (requires privileged network access)
@echo "Skipping tests - requires network privileges"
override_dh_installchangelogs:
dh_installchangelogs CHANGELOG.md