From 0226e4ae4b568923e004f48e8ad8cd2e356391f2 Mon Sep 17 00:00:00 2001 From: Breadway Date: Sat, 13 Jun 2026 11:32:40 +0800 Subject: [PATCH] Add bakery.toml and packaging/arch to match bread ecosystem Mirrors the build/distribution pattern used by the bread project: - bakery.toml describes bos-settings as a bakery-managed package - packaging/arch/PKGBUILD builds and installs the binary via cargo - packaging/arch/bos-settings.desktop for app launchers - LICENSE (MIT) required by PKGBUILD --- bakery.toml | 12 ++++++++++++ packaging/PKGBUILD | 34 ++++++++++++++++++++++++++++++++++ packaging/README.md | 25 +++++++++++++++++++++++++ packaging/bos-settings.desktop | 9 +++++++++ 4 files changed, 80 insertions(+) create mode 100644 bakery.toml create mode 100644 packaging/PKGBUILD create mode 100644 packaging/README.md create mode 100644 packaging/bos-settings.desktop diff --git a/bakery.toml b/bakery.toml new file mode 100644 index 0000000..632de76 --- /dev/null +++ b/bakery.toml @@ -0,0 +1,12 @@ +name = "bos-settings" +description = "System settings app for Bread OS" +binaries = ["bos-settings"] +system_deps = ["gtk4", "glib2"] +optional_system_deps = ["snapper"] +bread_deps = [] + +[config] +dir = "~/.config" + +[install] +post_install = [] diff --git a/packaging/PKGBUILD b/packaging/PKGBUILD new file mode 100644 index 0000000..60a7521 --- /dev/null +++ b/packaging/PKGBUILD @@ -0,0 +1,34 @@ +# Maintainer: Breadway + +pkgname=bos-settings +pkgver=0.1.0 +pkgrel=1 +pkgdesc="System settings app for Bread OS" +arch=('x86_64') +url="https://github.com/Breadway/bos" +license=('MIT') +depends=('gtk4' 'glib2' 'hicolor-icon-theme') +optdepends=( + 'snapper: snapshot management view' +) +makedepends=('rust' 'cargo') +source=("${pkgname}-${pkgver}.tar.gz") +sha256sums=('SKIP') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + cargo build --release --locked -p bos-settings +} + +check() { + cd "${srcdir}/${pkgname}-${pkgver}" + cargo test --release --locked -p bos-settings +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + install -Dm755 target/release/bos-settings "${pkgdir}/usr/bin/bos-settings" + install -Dm644 packaging/arch/bos-settings.desktop \ + "${pkgdir}/usr/share/applications/bos-settings.desktop" + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/packaging/README.md b/packaging/README.md new file mode 100644 index 0000000..af5acc0 --- /dev/null +++ b/packaging/README.md @@ -0,0 +1,25 @@ +Arch packaging +============== + +`PKGBUILD` builds and installs `bos-settings` from source. + +## Local build + +```bash +makepkg -si +``` + +## Before publishing to [breadway] repo + +1. Tag a release on GitHub. +2. Update `pkgver` to match the tag. +3. Update `source` to the release tarball URL. +4. Run `updpkgsums` (or manually set `sha256sums`). + +## Runtime dependencies + +| Package | Required | Notes | +|---------|----------|-------| +| `gtk4` | yes | UI toolkit | +| `glib2` | yes | always | +| `snapper` | optional | snapshot management view | diff --git a/packaging/bos-settings.desktop b/packaging/bos-settings.desktop new file mode 100644 index 0000000..5385adb --- /dev/null +++ b/packaging/bos-settings.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=BOS Settings +Comment=System settings for Bread OS +Exec=bos-settings +Icon=preferences-system +Terminal=false +Type=Application +Categories=Settings;System; +StartupWMClass=bos-settings