Skip to content

packaging: Arch+Fedora packaging, CI callers, drop install.sh#1

Merged
MasonRhodesDev merged 6 commits into
mainfrom
packaging-standardization
Jul 3, 2026
Merged

packaging: Arch+Fedora packaging, CI callers, drop install.sh#1
MasonRhodesDev merged 6 commits into
mainfrom
packaging-standardization

Conversation

@MasonRhodesDev

Copy link
Copy Markdown
Owner

Standardized packaging per the fleet-wide push: packaging/{PKGBUILD, spec, rpmlintrc, build-srpm.sh}, canonical dist/ units (/usr/bin paths), .copr/Makefile, thin caller workflows on MasonRhodesDev/packaging-workflows, install.sh removed where it existed. Part of the 8-repo standardization; CI requires packaging-workflows to be on GitHub.

🤖 Generated with Claude Code

Packaged builds need the lock file inside git archives: the SRPM builder
runs cargo vendor --locked, the PKGBUILD runs cargo fetch --locked, CI
builds with --locked, and the four-way version gate reads the lock's own
lmtt entry. Applications are expected to commit their lock file anyway.
Standard MasonRhodesDev packaging layout (hyprstate template):

- packaging/PKGBUILD: builds from the GitHub v$pkgver tarball (CI provides
  a local HEAD snapshot with the same filename); prepare() normalizes the
  linux-multi-theme-toggle-$pkgver prefix GitHub uses to lmtt-$pkgver,
  fetches with --locked, builds --frozen --release, runs tests in check(),
  and installs both binaries plus config/examples payload.
- packaging/lmtt.spec: offline vendored-cargo build; %prep rewires the
  schema-tui git dependency onto the vendor/ directory so COPR never
  touches the network. Installs lmtt + lmtt-config and /usr/share/lmtt.
- packaging/build-srpm.sh: four-way version gate (spec = Cargo.toml =
  Cargo.lock = PKGBUILD), git-archive Source0 with lmtt-$VER/ prefix,
  cargo-vendor Source1, rpmbuild -bs, gating rpmlint, optional --copr.
- packaging/lmtt.rpmlintrc: filter spelling noise and the intentional
  non-URL Source1.
- .copr/Makefile: COPR webhook entry point (SRPM from HEAD).
… Cargo.toml

The Makefile install target now ships the same payload as the packages
(both binaries, config-example.toml and examples/ under /usr/share/lmtt),
and VERSION is read from Cargo.toml instead of being hardcoded so the
version has a single source of truth.
ci/package/release/security workflows delegate to the reusable workflows
in MasonRhodesDev/packaging-workflows. deny.toml allows MPL-2.0 (option-ext
via dirs) and the schema-tui git source on top of the shared baseline.
install.sh is gone — the [mason] pacman repo and the solaris765/lmtt COPR
are the supported install paths now. README and INSTALL.md document both,
plus a from-source path through the DESTDIR-correct Makefile (which installs
both binaries and the examples payload). Also fixes the placeholder
github.com/yourusername/lmtt clone URL.
@MasonRhodesDev MasonRhodesDev merged commit 2b22662 into main Jul 3, 2026
1 of 4 checks passed
@MasonRhodesDev MasonRhodesDev deleted the packaging-standardization branch July 3, 2026 07:33
MasonRhodesDev added a commit that referenced this pull request Jul 3, 2026
packaging: Arch+Fedora packaging, CI callers, drop install.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant