Skip to content

Commit

Permalink
More information for building Rymdport for distribution packagers
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacalz committed Jan 23, 2024
1 parent 824e3e9 commit 6f205e0
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
35 changes: 35 additions & 0 deletions PACKAGING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Packing Rymdport

This file describes how to build and install Rymdport when building distribution packages for Linux or BSD systems.

The following distributions also have binary packages available through their respective package managers:

[![Packaging status](https://repology.org/badge/vertical-allrepos/rymdport.svg)](https://repology.org/project/rymdport/versions)

## Requirements

Rymdport compiles into a statically linked binary with no explicit runtime dependencies.
Compiling requires a [Go](https://go.dev) compiler (aversion 1.18 or later is required) and the [prerequisites for Fyne](https://developer.fyne.io/started/).

## Downloading the source

The Go toolchain automatically downloads all dependencies from `go.mod` when building.
This works great locally but can be problematic if the package is built in a container without network access.

Instead of grabbing the autogenerated release source that GitHub provides (called `Source code (tar.gz)`),
you can download the `rymdport-vX.Y.Z-vendored.tar.xz` file (where X, Y, Z correspond to a version)
from the [latest release](https://github.com/Jacalz/rymdport/releases/).
That file has all of the dependencies vendored into the tarball and can thus be built without network access.

## Building the binary

It is possible to build Rymdport by just running `go build` in the source root but it is recommended to build with the `make` command.
The `Makefile` provides two specialized targets for `debug` and `release` (a bare call to `make` will use the former).

Both commands disable bundling of the emoji font in Fyne for smaller binaries and trims local file path information from the binary.
However, the `release` target also strips debug information and disables the bundling of VCS information.

## Installing

Installation is most easily done with `make install` (likely with `sudo` infront).
This will install the binary, the desktop file, all the different icon sizes and the appstream metadata into the right directories.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,14 @@ For Linux users, Rymdport is also avaliable as a Flatpak on [Flathub](https://fl

<a href='https://flathub.org/apps/details/io.github.jacalz.rymdport'><img width='200' alt='Download on Flathub' src='https://dl.flathub.org/assets/badges/flathub-badge-en.svg'/></a>

### Packages in repositories

The following distributions also have binary packages available through their respective package managers:

[![Packaging status](https://repology.org/badge/vertical-allrepos/rymdport.svg)](https://repology.org/project/rymdport/versions)

For more information on how to build Rymdport for a distribution package, see [PACKAGING.md](PACKAGING.md).

### Running on macOS arm64 (M1/M2)

Binaries that are not signed with an official Apple certificate and downloaded from the web are put into quarantine by macOS (Apple computers with Intel CPUs do not exhibit this behavior). To solve this, you need to remove the quarantine attribute from the application (replacing `<path to .app>` with the application path):
Expand Down

0 comments on commit 6f205e0

Please sign in to comment.