bread/packaging
Breadway 89c5849539 Fix audit findings: path traversal, exec shell, glob dup, dead bread-sync, version drift
- modules_mgmt.rs: reject module names containing path separators, `..`,
  or absolute paths before joining onto modules_dir (install_from_local,
  remove_module, read_module_manifest); adds canonicalized containment
  check as defense in depth. Manifest-supplied names and CLI args were
  previously joined unsanitized, allowing path traversal on install/remove.
- breadd/src/lua/mod.rs: bread.exec now runs via `sh -c` instead of
  `sh -lc`; no documented reason was found for login-shell semantics.
- Unify the two independently hand-written glob matchers (subscription
  dispatch in breadd/src/core/subscriptions.rs vs. the CLI --filter path
  in breadd/src/ipc/mod.rs) into one implementation in
  bread-shared/src/glob.rs, used by both call sites.
- Remove the dead bread-sync/ tree (already excluded from the workspace
  and fully unreferenced) and its stale PKGBUILD deps (libgit2, git
  optdepend) and packaging docs mention.
- Correct the version-number transposition bug ("6.2.0" instead of
  "0.6.2"/"0.6.6") across bread-shared, breadd, and bread-cli Cargo.toml,
  and fix PKGBUILD's stale pkgver, so Cargo.toml/doctor/PKGBUILD all agree
  with the latest git tag (v0.6.6).
2026-07-17 03:20:14 +08:00
..
arch Fix audit findings: path traversal, exec shell, glob dup, dead bread-sync, version drift 2026-07-17 03:20:14 +08:00
systemd Enhance installation process, update service paths, and improve device classification 2026-05-11 18:39:39 +08:00
README.md feat: add bread-sync module for snapshot and restore functionality 2026-05-12 00:20:45 +08:00

Packaging

This directory contains distribution packaging for Bread.

packaging/
├── arch/
│   └── PKGBUILD          ← Arch Linux package build script
└── systemd/
    └── breadd.service    ← systemd user service unit

Arch Linux

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.

systemd user service

The service unit starts breadd as a user service after the graphical session is available.

# Install and enable manually (if not using the PKGBUILD)
mkdir -p ~/.config/systemd/user
cp systemd/breadd.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now breadd

# Check status
systemctl --user status breadd
journalctl --user -u breadd -f

The service sets RUST_LOG=info by default. To increase verbosity, override it in a drop-in:

# ~/.config/systemd/user/breadd.service.d/debug.conf
[Service]
Environment=RUST_LOG=debug