8000 hylki/docs/BUILDING.md at v1.42.0 · hyprlab/hylki · GitHub
[go: up one dir, main page]

Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 2.43 KB

BUILDING.md

File metadata and controls

72 lines (53 loc) · 2.43 KB

Building from source

Hylki needs the Rust toolchain (rustup), a C compiler, and the GTK 4 / libadwaita / WebKitGTK 6 development libraries, plus OpenSSL, D-Bus, gettext and Wayland headers. At runtime it needs a Secret Service provider (e.g. gnome-keyring).

Dependencies

Fedora

sudo dnf install gcc gcc-c++ gtk4-devel libadwaita-devel webkitgtk6.0-devel \
    poppler-glib-devel openssl-devel dbus-devel gettext-devel wayland-devel

Debian / Ubuntu

sudo apt install build-essential pkg-config libgtk-4-dev libadwaita-1-dev \
    libwebkitgtk-6.0-dev libpoppler-glib-dev libssl-dev libdbus-1-dev gettext \
    libwayland-dev

Build and install

git clone https://github.com/hyprlab/hylki.git
cd hylki
cargo build --release
./install.sh          # installs the binary, icon and .desktop file into ~/.local
./uninstall.sh        # removes them again (--purge also removes settings and the mail cache)

Translations

tools/build-locale.sh compiles po/*.po so a source-tree run picks them up; the Flatpak, the RPM and install.sh all do it as part of their own build. See po/README.md.

Flatpak

The manifest is co.hyprlab.Hylki.yml, built with flatpak-builder (or org.flatpak.Builder). Its Rust dependencies come from cargo-sources.json, which has to be regenerated whenever Cargo.lock changes:

python3 flatpak-cargo-generator.py Cargo.lock -o cargo-sources.json

AppImage

Hylki does not ship an AppImage: the packages it distributes are the Flatpak and the RPM. The build exists all the same, so the option stays open and does not rot (#235).

tools/build-appimage.sh produces packaging/out/Hylki-<arch>.AppImage and the .zsync file that goes with it. It runs inside an Arch container (the script starts one with podman; in CI it is already in one), because the bundle carries every library down to the C library and those have to be current. The library collecting is pkgforge's quick-sharun, fetched by the script rather than vendored.

.github/workflows/build-appimage.yml builds it for x86_64 and aarch64, by hand only: no tag starts it and nothing it produces is published. What turning that around would take is written at the top of the workflow.

Your own OAuth client

Google and Dropbox clients can be compiled in at build time; see Configuration.

0