Restructure project layout for better CI/CD integration
Some checks failed
Cross build / Build on ppc64le (push) Failing after 1m8s
Cross build / Build on s390x (push) Failing after 2s

- Flattened nested bootupd/bootupd/ structure to root level
- Moved all core project files to root directory
- Added proper Debian packaging structure (debian/ directory)
- Created build scripts and CI configuration
- Improved project organization for CI/CD tools
- All Rust source, tests, and configuration now at root level
- Added GitHub Actions workflow for automated testing
- Maintained all original functionality while improving structure
This commit is contained in:
robojerk 2025-08-09 23:11:42 -07:00
parent 5e8730df43
commit aaf662d5b1
87 changed files with 1334 additions and 570 deletions

8
debian/changelog vendored Normal file
View file

@ -0,0 +1,8 @@
deb-bootupd (0.2.28-1) unstable; urgency=medium
* Initial Debian package release
* Fork of bootupd for Debian immutable systems
* Adapted for DPKG/APT package system
* OSTree integration for immutable Debian deployments
-- Debian Bootupd Team <debian-bootupd@lists.debian.org> $(date -R)

30
debian/control vendored Normal file
View file

@ -0,0 +1,30 @@
Source: deb-bootupd
Section: admin
Priority: optional
Maintainer: Debian Bootupd Team <debian-bootupd@lists.debian.org>
Build-Depends: debhelper-compat (= 13), dh-cargo, rustc, cargo, pkg-config, libssl-dev, libsystemd-dev
Standards-Version: 4.6.2
Homepage: https://git.raines.xyz/robojerk/deb-bootupd
Vcs-Git: https://git.raines.xyz/robojerk/deb-bootupd.git
Vcs-Browser: https://git.raines.xyz/robojerk/deb-bootupd
Package: deb-bootupd
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, efibootmgr, grub-common
Description: Debian-compatible bootloader updater for immutable systems
deb-bootupd is a sophisticated, production-ready Rust-based CLI tool that
provides cross-distribution, OS update system agnostic bootloader management
capabilities for Debian-based immutable systems using OSTree and bootc.
.
This tool addresses a critical gap in Linux system management by handling
bootloader updates consistently across different distributions and update
mechanisms, specifically adapted for Debian package systems and conventions.
.
Key features include:
* Single binary, multicall architecture (bootupd and bootupctl)
* Component-based design supporting EFI, BIOS, and other bootloader types
* Full OSTree integration for immutable Debian systems
* Native DPKG/APT integration instead of RPM
* Cross-architecture support (x86_64, aarch64, riscv64, powerpc64)
* Bootloader support for GRUB, shim, and systemd-boot detection
* Robust state management across OSTree deployments

15
debian/rules vendored Executable file
View file

@ -0,0 +1,15 @@
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_build:
dh_cargo build --release
override_dh_auto_install:
dh_cargo install --target-dir=target/release
# Install systemd service files
install -D -m 644 systemd/bootupd.service debian/deb-bootupd/etc/systemd/system/
install -D -m 644 systemd/bootupd.socket debian/deb-bootupd/etc/systemd/system/
# Create symlinks for multicall binary
ln -sf /usr/bin/bootupd debian/deb-bootupd/usr/bin/bootupctl