readme: Update build instructions for distro packages

This commit is contained in:
June Tate-Gans 2024-03-29 09:19:26 -05:00
parent 9116c8e9e1
commit 59fbbd1ca4

View File

@ -54,8 +54,12 @@ your appropriate distro-specific location.
In the major distributions, it should just be possible to run `make` to build
a package for your specific distro. As of this writing, there is support to
build for Debian, Ubuntu, Arch, and Manjaro. Patches are welcome to help improve
availability on other platforms.
build for Debian, Ubuntu, Arch, Manjaro, and an experimental package for
Fedora. Patches are welcome to help improve availability on other platforms.
For the most up-to-date build instructions, have a look at the
[.drone.yml](.drone.yml) file, but below are more human-friendly instructions
for the five supported package systems.
#### Debian and Debian derivatives
@ -71,3 +75,56 @@ Now you can build the package:
lupin:~/src/g13gui$ make
```
After this completes, you'll have a shiny new `deb` package inside of `build/` that you can
install using `make install`.
#### Arch and Arch derivatives
First, setup your system with build tooling:
```
lupin:~/src/g13gui$ sudo pacman -Syu
lupin:~/src/g13gui$ sudo pacman -S base-devel python meson lsb-release git
```
And build the package:
```
lupin:~/src/g13gui$ make
```
After this completes, you should have a shiny new `zst` package in `build/` that you can
install using `make install`.
#### Fedora and RPM derivatives
Fedora and its derivatives have a wild and wacky build system for making RPM packages
from `.spec` files. Thus, the `Makefile` kinda has to manage the build differently than
other builds, and modifies things outside of the source tree, sadly.
First, you need to setup your system with the build tooling:
```
[user@lupin g13gui]$ sudo dnf install rpmdevtools rpmlint make python meson lsb-release git
```
Now, here's where things get wacky. The `Makefile` uses `rpmbuild`'s `rpmdev-setuptree`
to create the `$HOME/rpmbuild` directory. Unfortunately, this is _entirely_ out of
our control, and the `rpmbuild` tooling insists (rather stupidly) that it work out
of this tree. So bear in mind, **if you already have an `rpmbuild` directory tree
prepped, the Makefile will clobber it.**
You can build the RPM in the usual way above, with:
```
[user@lupin g13gui]$ make
```
This will produce an RPM package you can install in the `build/` subdirectory
of the source tree. Unfortunately, the `rpmbuild` directory will still hang
around until you issue a `make clean`. You can install it using `make install`.
If you know of a better way of building RPMs, please send a pull request. June
hasn't used Fedora or RPM-based distros since she was in high school, so the
tooling is entirely foreign to her.