From 9e3090ca88ccbf482d931e3827faf456efcd334a Mon Sep 17 00:00:00 2001 From: michael Date: Sun, 26 Apr 2026 14:48:00 -0700 Subject: [PATCH] Add Debian packaging skeleton (5 component debs, debhelper-13) --- debian/changelog | 5 ++++ debian/control | 55 ++++++++++++++++++++++++++++++++++++++++++++ debian/copyright | 24 +++++++++++++++++++ debian/rules | 34 +++++++++++++++++++++++++++ debian/source/format | 1 + 5 files changed, 119 insertions(+) create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/copyright create mode 100755 debian/rules create mode 100644 debian/source/format diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..f8ecdd8 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +ubuntu-fido (0.1.0-1) UNRELEASED; urgency=low + + * Initial packaging skeleton. + + -- Dangerous Things Sun, 26 Apr 2026 12:00:00 +0000 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..2afb247 --- /dev/null +++ b/debian/control @@ -0,0 +1,55 @@ +Source: ubuntu-fido +Section: admin +Priority: optional +Maintainer: Dangerous Things +Build-Depends: + debhelper-compat (= 13), + cargo, + rustc (>= 1.78), + libpam0g-dev, + libgtk-4-dev, + libadwaita-1-dev, + libfido2-dev, + pkg-config +Standards-Version: 4.6.2 +Homepage: https://github.com/dangerousthings/ubuntu-fido +Vcs-Browser: https://github.com/dangerousthings/ubuntu-fido +Vcs-Git: https://github.com/dangerousthings/ubuntu-fido.git + +Package: ubuntu-fido +Architecture: any +Depends: ubuntu-fido-daemon (= ${binary:Version}), + ubuntu-fido-pam (= ${binary:Version}), + ubuntu-fido-cli (= ${binary:Version}), + ${misc:Depends} +Recommends: ubuntu-fido-gui (= ${binary:Version}) +Suggests: ubuntu-fido-gnome-integration +Description: Turnkey FIDO2/U2F/TOTP MFA for Ubuntu (metapackage) + Installs the full ubuntu-fido stack: daemon, PAM module, CLI, and + (if recommended) GUI. + +Package: ubuntu-fido-daemon +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, libpam-u2f, libfido2-1 +Description: System daemon for ubuntu-fido MFA management + Provides the privileged D-Bus service that orchestrates enrollment, + policy edits, and lockout-prevention checks. + +Package: ubuntu-fido-pam +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, libpam-runtime +Description: PAM module backstopping ubuntu-fido first-login enrollment + Refuses authentication when /var/lib/ubuntu-fido/pending/ exists + and the user has not completed first-login MFA setup. + +Package: ubuntu-fido-cli +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ubuntu-fido-daemon +Description: CLI for ubuntu-fido (admin and fleet) + Configure policy, enroll on behalf of users, generate recovery codes. + +Package: ubuntu-fido-gui +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ubuntu-fido-daemon +Description: GTK4/libadwaita UI for ubuntu-fido + End-user-facing settings panel for enrollment and policy. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..30362e6 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,24 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: ubuntu-fido +Upstream-Contact: Dangerous Things +Source: https://github.com/dangerousthings/ubuntu-fido + +Files: * +Copyright: 2026 Dangerous Things, LLC +License: Apache-2.0 + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian systems, the complete text of the Apache License, Version 2.0 + can be found in "/usr/share/common-licenses/Apache-2.0". diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..83fd121 --- /dev/null +++ b/debian/rules @@ -0,0 +1,34 @@ +#!/usr/bin/make -f +export DH_VERBOSE = 1 +export CARGO_HOME = $(CURDIR)/target/cargo-home + +%: + dh $@ + +override_dh_auto_build: + cargo build --release --workspace + $(MAKE) -C pam + +override_dh_auto_install: + # Daemon + install -D -m 0755 target/release/ubuntu-fidod \ + debian/ubuntu-fido-daemon/usr/sbin/ubuntu-fidod + # CLI + install -D -m 0755 target/release/ubuntu-fidoctl \ + debian/ubuntu-fido-cli/usr/bin/ubuntu-fidoctl + # GUI + install -D -m 0755 target/release/ubuntu-fido \ + debian/ubuntu-fido-gui/usr/bin/ubuntu-fido + install -D -m 0644 gui/data/io.dangerousthings.UbuntuFido.desktop \ + debian/ubuntu-fido-gui/usr/share/applications/io.dangerousthings.UbuntuFido.desktop + install -D -m 0644 gui/data/io.dangerousthings.UbuntuFido.svg \ + debian/ubuntu-fido-gui/usr/share/icons/hicolor/scalable/apps/io.dangerousthings.UbuntuFido.svg + # PAM + $(MAKE) -C pam install DESTDIR=$(CURDIR)/debian/ubuntu-fido-pam + +override_dh_auto_test: + cargo test --workspace --release + +override_dh_auto_clean: + cargo clean + $(MAKE) -C pam clean diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native)