Use 'cargo deb' to build Debian package

This commit is contained in:
Brian Tarricone 2022-08-16 00:09:40 -07:00
parent 4c8ffbab6a
commit 1ace254163
2 changed files with 35 additions and 2 deletions

View File

@ -1,4 +1,4 @@
.PHONY: all release dev manpages install deb-pkg clean uninstall run run-dialog
.PHONY: all release dev manpages install deb-pkg deb-pkg-broken clean uninstall run run-dialog
DESTDIR ?=
PREFIX ?= /usr/local
@ -80,7 +80,12 @@ $(RELEASE_OUT)/bscreensaver-settings.desktop: settings/bscreensaver-settings.des
mkdir -p $(dir $@)
sed -e 's:@BINDIR@:$(BINDIR):g' $< > $@
deb-pkg:
deb-pkg: manpages $(RELEASE_OUT)/bscreensaver-settings.desktop
HELPER_DIR=$(HELPER_DIR) cargo deb --manifest-path locker/Cargo.toml --deb-revision 1
# Recently this stopped working because bookworm only has rust 1.59, but recent versions
# of the zbus crate require rust 1.60.
deb-pkg-broken:
@[ "$(RELEASE_VERSION)" ] || { echo "RELEASE_VERSION not set" >&2; exit 1; }
sudo rm -rf docker-out
docker build -t bscreensaver-build:latest .

View File

@ -12,6 +12,34 @@ readme = "README.md"
keywords = ["gui", "screensaver", "screen-locker"]
categories = ["gui"]
[package.metadata.deb]
name = "bscreensaver"
maintainer = "Brian Tarricone <brian@tarricone.org>"
copyright = "2022, Brian Tarricone <brian@tarricone.org"
license-file = [ "../LICENSE", "13" ]
extended-description = """\
BScreensaver is a privilege-separated screen locker that attempts to\
be as secure as possible, meaning that a crash one one of its\
non-critical components will not cause the screen to unlock.
It is fairly barebones so far, and only supports blanking the screen. \
There is a single unlock dialog implementation that uses GTK3."""
depends = "$auto"
section = "x11"
priority = "optional"
assets = [
["target/release/bscreensaver", "usr/bin/", "755"],
["target/release/bscreensaver-command", "usr/bin/", "755"],
["target/release/bscreensaver-settings", "usr/bin/", "755"],
["target/release/bscreensaver-dbus-service", "usr/libexec/bscreensaver/", "755"],
["target/release/bscreensaver-dialog-gtk3", "usr/libexec/bscreensaver/", "755"],
["target/release/bscreensaver-systemd", "usr/libexec/bscreensaver/", "755"],
["target/release/bscreensaver-settings.desktop", "usr/share/applications/", "644"],
["target/release/bscreensaver-command.1.gz", "usr/share/man/man1/", "644"],
["target/release/bscreensaver.1.gz", "usr/share/man/man1/", "644"],
["../bscreensaver.toml.example", "usr/share/doc/bscreensaver/", "644"],
]
[dependencies]
anyhow = "1"
clap = "3"