The header now shows the login page's wordmark letters (without the rule) instead of "Jarl" set in Cinzel, so the bundled Cinzel font, its preload and its licence stanza in the .deb's copyright file are removed: the web UI needs no web font. The README opens with the login page's banner, the logo above the wordmark (artwork/banner.svg). scripts/banner.py builds it from the web UI's logo.js and brand.js, with light and dark colors, and logo.py runs it after tracing the logo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
90 lines
3.5 KiB
Bash
Executable File
90 lines
3.5 KiB
Bash
Executable File
#!/bin/sh
|
|
# Builds a Debian package of Jarl: dist/jarl_<version>_<arch>.deb.
|
|
# Run through 'make deb' (which sets the variables below); needs only
|
|
# dpkg-deb, no root and no debhelper.
|
|
#
|
|
# The package installs, with Debian's paths:
|
|
# /usr/bin/jarld, /usr/bin/jarl
|
|
# /usr/share/bash-completion/completions/{jarl,jarld}
|
|
# /usr/lib/systemd/system/jarl.service
|
|
# /usr/lib/sysusers.d/jarl.conf, /usr/lib/tmpfiles.d/jarl.conf
|
|
# /usr/share/doc/jarl/ (README, CHANGELOG, docs, contrib)
|
|
# and its scripts (deploy/debian) create the jarl user and directories and
|
|
# /etc/jarl/jarl.yaml on the first install, restart a running jarld on
|
|
# upgrades, and stop it on removal. No file in /etc belongs to the package,
|
|
# so an upgrade never asks about configuration files.
|
|
#
|
|
# Variables: DEB_ARCH (Debian architecture, e.g. amd64, arm64, armhf),
|
|
# DEB_VERSION, VERSION, LDFLAGS, GOFLAGS, and DEB_MAINTAINER (default: your
|
|
# git name and email).
|
|
set -eu
|
|
|
|
: "${DEB_ARCH:?}" "${DEB_VERSION:?}" "${VERSION:?}" "${LDFLAGS:?}"
|
|
GOFLAGS=${GOFLAGS:-}
|
|
|
|
# Debian architecture -> Go architecture.
|
|
goarm=
|
|
case "$DEB_ARCH" in
|
|
amd64) goarch=amd64 ;;
|
|
arm64) goarch=arm64 ;;
|
|
armhf) goarch=arm goarm=7 ;;
|
|
i386) goarch=386 ;;
|
|
ppc64el) goarch=ppc64le ;;
|
|
riscv64) goarch=riscv64 ;;
|
|
s390x) goarch=s390x ;;
|
|
*) echo "mkdeb: unsupported architecture $DEB_ARCH" >&2; exit 1 ;;
|
|
esac
|
|
|
|
if [ -z "${DEB_MAINTAINER:-}" ]; then
|
|
name=$(git config user.name 2>/dev/null || true)
|
|
email=$(git config user.email 2>/dev/null || true)
|
|
DEB_MAINTAINER="${name:-Jarl packager} <${email:-root@localhost}>"
|
|
fi
|
|
|
|
work=dist/deb/jarl_${DEB_VERSION}_${DEB_ARCH}
|
|
root=$work/root
|
|
out=dist/jarl_${DEB_VERSION}_${DEB_ARCH}.deb
|
|
rm -rf "$work"
|
|
mkdir -p "$root/DEBIAN"
|
|
|
|
# Binaries for the package's architecture (bin/ holds the host's, which
|
|
# also generated the completion scripts).
|
|
echo "mkdeb: building for linux/$goarch"
|
|
# go reads GOFLAGS (-trimpath) from the environment.
|
|
export GOFLAGS
|
|
GOOS=linux GOARCH=$goarch GOARM=$goarm CGO_ENABLED=0 go build -ldflags "$LDFLAGS" -o "$work/jarld" ./cmd/jarld
|
|
GOOS=linux GOARCH=$goarch GOARM=$goarm CGO_ENABLED=0 go build -ldflags "$LDFLAGS" -o "$work/jarl" ./cmd/jarl
|
|
|
|
make --no-print-directory install-files DESTDIR="$root" PREFIX=/usr \
|
|
UNITDIR=/usr/lib/systemd/system JARLD_BIN="$work/jarld" JARL_BIN="$work/jarl" >/dev/null
|
|
|
|
# Debian's machine-readable copyright file, from LICENSE.
|
|
indent() { sed -e 's/^$/./' -e 's/^/ /' "$1"; }
|
|
{
|
|
echo "Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/"
|
|
echo "Upstream-Name: jarl"
|
|
echo
|
|
echo "Files: *"
|
|
echo "Copyright: $(sed -n 's/^Copyright (c) //p' LICENSE)"
|
|
echo "License: Expat"
|
|
indent LICENSE
|
|
} > "$root/usr/share/doc/jarl/copyright"
|
|
|
|
for f in postinst prerm postrm; do
|
|
install -m 0755 "deploy/debian/$f" "$root/DEBIAN/$f"
|
|
done
|
|
# Directories 0755 and no group/other write, whatever the build's umask.
|
|
find "$root" -type d -exec chmod 0755 {} +
|
|
chmod -R go-w "$root"
|
|
size=$(du -sk --exclude=DEBIAN "$root" | cut -f1)
|
|
sed -e "s/@VERSION@/$DEB_VERSION/" -e "s/@ARCH@/$DEB_ARCH/" -e "s/@SIZE@/$size/" \
|
|
-e "s|@MAINTAINER@|$DEB_MAINTAINER|" deploy/debian/control.in > "$root/DEBIAN/control"
|
|
(cd "$root" && find . -path ./DEBIAN -prune -o -type f -print | sed 's|^\./||' | sort | xargs md5sum) > "$root/DEBIAN/md5sums"
|
|
chmod 0644 "$root/DEBIAN/control" "$root/DEBIAN/md5sums"
|
|
|
|
# Files belong to root in the package, whoever builds it.
|
|
dpkg-deb --root-owner-group -Zxz --build "$root" "$out" >/dev/null
|
|
rm -rf dist/deb
|
|
echo "mkdeb: wrote $out"
|
|
dpkg-deb --info "$out" | sed -n 's/^ \(Package\|Version\|Architecture\|Installed-Size\):/ \1:/p'
|