diff --git a/.forgejo/workflows/beta-release.yml b/.forgejo/workflows/beta-release.yml index c75d392..5c14ff4 100644 --- a/.forgejo/workflows/beta-release.yml +++ b/.forgejo/workflows/beta-release.yml @@ -62,6 +62,7 @@ jobs: > "${PKG_DIR}/${bin}-x86_64.sha256" done cp src/packaging/systemd/breadd.service "${PKG_DIR}/" + cp src/LICENSE "${PKG_DIR}/" cp src/bakery.toml "${PKG_DIR}/bakery.toml" ln -sfn "${VERSION}" "/srv/breadway-dl/beta/bread/latest" diff --git a/.forgejo/workflows/dev-release.yml b/.forgejo/workflows/dev-release.yml index 164f22d..035d494 100644 --- a/.forgejo/workflows/dev-release.yml +++ b/.forgejo/workflows/dev-release.yml @@ -61,6 +61,7 @@ jobs: > "${PKG_DIR}/${bin}-x86_64.sha256" done cp src/packaging/systemd/breadd.service "${PKG_DIR}/" + cp src/LICENSE "${PKG_DIR}/" cp src/bakery.toml "${PKG_DIR}/bakery.toml" ln -sfn "${VERSION}" "/srv/breadway-dl/dev/bread/latest" diff --git a/.forgejo/workflows/package.yml b/.forgejo/workflows/package.yml deleted file mode 100644 index f48f9d8..0000000 --- a/.forgejo/workflows/package.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Build and publish package - -on: - push: - tags: ['v*'] - -jobs: - package: - runs-on: [self-hosted, hestia] - container: - image: archlinux:latest - steps: - # Note: no actions/checkout — the archlinux image has no Node, which JS - # actions require. Everything runs as shell steps and clones manually. - - name: Build and publish - env: - PUBLISH_TOKEN: ${{ secrets.REGISTRY_TOKEN }} - run: | - set -euo pipefail - VERSION="${GITHUB_REF_NAME#v}" - pacman -Syu --noconfirm base-devel git rust cargo libgit2 openssl - useradd -m builder - git config --global --add safe.directory '*' - git clone --branch "${GITHUB_REF_NAME}" --depth 1 \ - "https://git.breadway.dev/${GITHUB_REPOSITORY}.git" /home/builder/src - cd /home/builder/src - git archive --format=tar.gz --prefix="bread-${VERSION}/" HEAD \ - > packaging/arch/bread-${VERSION}.tar.gz - SHA=$(sha256sum packaging/arch/bread-${VERSION}.tar.gz | awk '{print $1}') - sed -i "s/^pkgver=.*/pkgver=${VERSION}/" packaging/arch/PKGBUILD - sed -i "s/^sha256sums=.*/sha256sums=('${SHA}')/" packaging/arch/PKGBUILD - chown -R builder:builder /home/builder/src - # --nocheck: packaging builds the artifact; tests belong in a CI job. - su builder -c "cd /home/builder/src/packaging/arch && makepkg -f --noconfirm --nocheck" - PKG=$(find /home/builder/src/packaging/arch -name '*.pkg.tar.zst' | head -1) - curl -fsS -X PUT \ - -H "Authorization: token ${PUBLISH_TOKEN}" \ - -H "Content-Type: application/octet-stream" \ - --data-binary "@${PKG}" \ - "https://git.breadway.dev/api/packages/Breadway/arch/os" diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml index 4a7eff1..1f13197 100644 --- a/.forgejo/workflows/release.yml +++ b/.forgejo/workflows/release.yml @@ -34,6 +34,7 @@ jobs: > "${PKG_DIR}/${bin}-x86_64.sha256" done cp src/packaging/systemd/breadd.service "${PKG_DIR}/" + cp src/LICENSE "${PKG_DIR}/" cp src/bakery.toml "${PKG_DIR}/bakery.toml" ln -sfn "${VERSION}" "/srv/breadway-dl/bread/latest" diff --git a/bakery.toml b/bakery.toml index ab782a0..06e237e 100644 --- a/bakery.toml +++ b/bakery.toml @@ -4,6 +4,7 @@ binaries = ["breadd", "bread"] system_deps = ["systemd-libs", "openssl", "zlib"] optional_system_deps = ["bluez", "hyprland"] bread_deps = [] +license_file = "LICENSE" [[service]] unit = "breadd.service" diff --git a/packaging/README.md b/packaging/README.md index 18256de..8d2933d 100644 --- a/packaging/README.md +++ b/packaging/README.md @@ -5,22 +5,14 @@ This directory contains distribution packaging for Bread. ``` packaging/ -├── arch/ -│ └── PKGBUILD ← Arch Linux package build script └── systemd/ └── breadd.service ← systemd user service unit ``` -## Arch Linux - -```bash -cd packaging/arch -makepkg -si -``` - -The PKGBUILD builds both `breadd` and `bread` from source and installs them to `/usr/bin`. It also installs the systemd user service unit to `/usr/lib/systemd/user/`. - -Before publishing to the AUR, update `pkgver`, `source`, and `sha256sums` to point at a tagged release tarball. +Prebuilt binaries are distributed exclusively via `bakery` (see the main +README) — there is no Arch/pacman package for `bread` anymore. `bakery` +installs the systemd user service unit itself, matching the `packaging/systemd/breadd.service` +file here. ## systemd user service diff --git a/packaging/arch/PKGBUILD b/packaging/arch/PKGBUILD deleted file mode 100644 index b3af1c0..0000000 --- a/packaging/arch/PKGBUILD +++ /dev/null @@ -1,39 +0,0 @@ -# Maintainer: Breadway - -pkgname=bread -pkgver=0.6.6 -pkgrel=1 -pkgdesc="A reactive automation fabric for Linux desktops" -arch=('x86_64') -url="https://git.breadway.dev/Breadway/bread" -license=('MIT') -# mlua builds Lua from vendored C source. makepkg's default -flto=auto would -# emit GCC LTO bitcode into liblua5.4.a, which the Rust (lld) link can't read, -# leaving all lua_* symbols undefined. Disable LTO for a clean static link. -options=(!lto !debug) -depends=('glibc') -optdepends=( - 'libnotify: desktop notifications via bread.notify()' - 'upower: D-Bus battery events (sysfs polling used otherwise)' -) -makedepends=('rust' 'cargo') -source=("${pkgname}-${pkgver}.tar.gz") -sha256sums=('SKIP') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - cargo build --release --locked -} - -check() { - cd "${srcdir}/${pkgname}-${pkgver}" - cargo test --release --locked --workspace -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - install -Dm755 target/release/breadd "${pkgdir}/usr/bin/breadd" - install -Dm755 target/release/bread "${pkgdir}/usr/bin/bread" - install -Dm644 packaging/systemd/breadd.service "${pkgdir}/usr/lib/systemd/user/breadd.service" - install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" -} diff --git a/packaging/arch/README.md b/packaging/arch/README.md deleted file mode 100644 index f7de16e..0000000 --- a/packaging/arch/README.md +++ /dev/null @@ -1,28 +0,0 @@ -Arch packaging -============== - -`PKGBUILD` builds and installs both `breadd` and `bread` from source. - -## Local build - -```bash -makepkg -si -``` - -## Before publishing to AUR - -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`). -5. Update `url` if the repository has moved. -6. Set `depends` accurately — at minimum: `glibc`. Add `udev` if not linking statically. - -## Runtime dependencies - -| Package | Required | Notes | -|---------|----------|-------| -| `glibc` | yes | always | -| `udev` | yes | device events | -| `dbus` | optional | UPower battery events | -| `libnotify` | optional | `bread.notify()` (uses `notify-send`) |