From c94d7d0ad732c5bd7dd2f506545ea134d71220ac Mon Sep 17 00:00:00 2001 From: Ulyssa Date: Wed, 14 Aug 2024 20:37:56 -0700 Subject: [PATCH] Add metadata for `cargo-deb` and `cargo-generate-rpm` (#321) --- Cargo.toml | 30 ++++++++++++++++++++++++++++++ PACKAGING.md | 1 + 2 files changed, 31 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index cfe1b6b..c199a0b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -92,3 +92,33 @@ pretty_assertions = "1.4.0" inherits = "release" incremental = false lto = true + +[package.metadata.deb] +section = "net" +license-file = ["LICENSE", "0"] +assets = [ + # Binary: + ["target/release/iamb", "usr/bin/iamb", "755"], + # Manual pages: + ["docs/iamb.1", "usr/share/man/man1/iamb.1", "644"], + ["docs/iamb.5", "usr/share/man/man5/iamb.5", "644"], + # Other assets: + ["iamb.desktop", "usr/share/applications/iamb.desktop", "644"], + ["config.example.toml", "usr/share/iamb/config.example.toml", "644"], + ["docs/iamb.svg", "usr/share/icons/hicolor/scalable/apps/iamb.svg", "644"], + ["docs/iamb.metainfo.xml", "usr/share/metainfo/iamb.metainfo.xml", "644"], +] + +[package.metadata.generate-rpm] +assets = [ + # Binary: + { source = "target/release/iamb", dest = "/usr/bin/iamb", mode = "755" }, + # Manual pages: + { source = "docs/iamb.1", dest = "/usr/share/man/man1/iamb.1", mode = "644" }, + { source = "docs/iamb.5", dest = "/usr/share/man/man5/iamb.5", mode = "644" }, + # Other assets: + { source = "iamb.desktop", dest = "/usr/share/applications/iamb.desktop", mode = "644" }, + { source = "config.example.toml", dest = "/usr/share/iamb/config.example.toml", mode = "644"}, + { source = "docs/iamb.svg", dest = "/usr/share/icons/hicolor/scalable/apps/iamb.svg", mode = "644"}, + { source = "docs/iamb.metainfo.xml", dest = "/usr/share/metainfo/iamb.metainfo.xml", mode = "644"}, +] diff --git a/PACKAGING.md b/PACKAGING.md index cf35ae6..b6d3fd2 100644 --- a/PACKAGING.md +++ b/PACKAGING.md @@ -28,6 +28,7 @@ and GCC are present. In addition to the compiled binary, there are other files in the repo that you'll want to install as part of a package: + | Repository Path | Installed Path (may vary per OS) | | ----------------------- | ----------------------------------------------- | | /iamb.desktop | /usr/share/applications/iamb.desktop |