Skip to content

ci: add RPM packaging for Keyguard - #1516

Open
YoannDev90 wants to merge 5 commits into
AChep:masterfrom
YoannDev90:feat/rpm-packaging
Open

ci: add RPM packaging for Keyguard#1516
YoannDev90 wants to merge 5 commits into
AChep:masterfrom
YoannDev90:feat/rpm-packaging

Conversation

@YoannDev90

@YoannDev90 YoannDev90 commented Aug 9, 2026

Copy link
Copy Markdown

Summary

Adds RPM packaging that was previously missing from this repository, folded into the existing release workflow.

  • desktopApp/rpm/keyguard.spec — rpmbuild spec that packs the desktop distribution tarball into /opt/keyguard, creates a /usr/bin/keyguard symlink, and installs the .desktop entry, icon, and metainfo. Lives next to the existing desktopApp/flatpak packaging.
  • new_tag_release.yaml — the build-linux-app job now also produces the .deb and .rpm from :desktopApp:packageReleaseDistributable / :desktopApp:packageReleaseDeb for both x86_64 and aarch64, and dist publishes them with the GitHub release.

The standalone build_packages.yml workflow was removed.

Notable details

  • The spec restores the executable bit on the launcher (/opt/keyguard/bin/Keyguard) because Gradle's Tar task does not preserve file permissions and the launcher otherwise lands in the package with mode 644, making keyguard fail with "not an executable file".
  • The symlink points at /opt/keyguard/bin/Keyguard (the jpackage image layout) rather than the image root.
  • The RPM is built with rpmbuild -ba desktopApp/rpm/keyguard.spec from the release tarball, using the version from generate-versions.

Verification

  • Built from the fork; the resulting RPM installs and keyguard launches.

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

Add rpmbuild spec plus a workflow_dispatch job that builds the
.desb and .rpm packages from the desktop distribution tarball.

The RPM places the launcher in /opt/keyguard/bin/Keyguard and
installs a /usr/bin/keyguard symlink pointing at it. The spec
explicitly restores the executable bit on the launcher because
Gradle's Tar task does not preserve file permissions, and the
symlink targets the launcher under bin/ rather than the image root.
@YoannDev90

Copy link
Copy Markdown
Author

recheck

@YoannDev90

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

github-actions Bot added a commit that referenced this pull request Aug 9, 2026
@AChep

AChep commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Please follow the existing convention for naming the workflow files. I would also expect that MOST important part would be having this as a part of the release workflow, not as a separate action. Also, please more the packaging into desktopApp/ similarly to existing flatpak files.

Address review feedback on AChep#1516:

- Remove the standalone build_packages.yml workflow (out of the
  existing check_/new_/update_ naming convention) and run the .deb
  and .rpm packaging as part of the build-linux-app job in
  new_tag_release.yaml instead.
- Move packaging/keyguard.spec to desktopApp/rpm/keyguard.spec so
  the packaging lives next to the existing desktopApp/flatpak files.
- Upload the .deb/.rpm for both x86_64 and aarch64 and publish them
  with the GitHub release artifacts.
@YoannDev90

Copy link
Copy Markdown
Author

Addressed the review feedback:

  • Moved packaging/keyguard.spec to desktopApp/rpm/keyguard.spec, next to the existing desktopApp/flatpak files.
  • Removed the standalone build_packages.yml workflow; the .deb and .rpm are now built inside build-linux-app in new_tag_release.yaml and published with the GitHub release (both x86_64 and aarch64).

@YoannDev90

Copy link
Copy Markdown
Author

@AChep Hey I fixed the PR last week, and got no updates, can you re-review please ?

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.

2 participants