52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
# Element Desktop RPM packaging
|
|
|
|
This repository builds an RPM package from the upstream Element Desktop Linux
|
|
tarballs:
|
|
|
|
- `https://packages.element.io/desktop/install/linux/glibc-x86-64/element-desktop.tar.gz`
|
|
- `https://packages.element.io/desktop/install/linux/glibc-aarch64/element-desktop.tar.gz`
|
|
|
|
Latest upstream version tracked in this repo: `1.12.15`
|
|
|
|
## What it does
|
|
|
|
- Downloads the current upstream x86_64 and aarch64 tarballs.
|
|
- Derives the version from both tarball root directories and requires them to
|
|
match.
|
|
- Renders a concrete spec file with that version before invoking `rpmbuild`.
|
|
- Repackages the prebuilt binaries into an RPM.
|
|
- Removes the upstream auto-update manifest so RPM remains the update path.
|
|
- Sets `resources/package-type` to `rpm`.
|
|
- Builds binary RPMs for `x86_64` and `aarch64`, while still forcing SRPM
|
|
generation to target `x86_64` so COPR source builders stay consistent.
|
|
- Supports COPR SCM builds through `.copr/Makefile`.
|
|
|
|
## Local builds
|
|
|
|
Build a source RPM:
|
|
|
|
```sh
|
|
make srpm
|
|
```
|
|
|
|
Build a binary RPM and source RPM:
|
|
|
|
```sh
|
|
make rpm
|
|
```
|
|
|
|
Artifacts are written to `dist/`.
|
|
|
|
## COPR
|
|
|
|
Use COPR's SCM source type with:
|
|
|
|
- Clone URL: this repository
|
|
- Spec template: `SPECS/element-desktop.spec.in`
|
|
- SRPM build method: `make srpm`
|
|
- Enable `x86_64` and `aarch64` binary chroots for this package
|
|
|
|
COPR will invoke `.copr/Makefile`, which calls the same SRPM generation script
|
|
used for local builds. That script downloads the upstream tarball during the
|
|
SRPM stage, so no vendored source archive is required in git.
|