- AppStream metainfo (validates), man page, bash/zsh/fish completions. - scripts/install.sh installs everything into a DESTDIR; the release archive (scripts/release-tarball.sh) and both PKGBUILDs use it. - packaging/aur-release: a slidewire package built from the tag. - CI moves to .gitea/workflows: works without sudo, installs Rust with rustup, checks fmt, clippy, tests, extracted translations, the desktop file, metainfo and cargo-deny; tags build and attach the archive. - deny.toml: licences compatible with GPL-3.0-or-later, crates.io only. - Cargo metadata, MSRV 1.95, thin LTO and stripped release builds. - CHANGELOG.md for 1.0.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 lines
805 B
Bash
Executable File
19 lines
805 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build dist/slidewire-<version>-<arch>.tar.gz: the binary plus everything a
|
|
# package installs (desktop entry, icons, metainfo, systemd unit, man page,
|
|
# completions, licences), laid out like /usr. Also writes its SHA256.
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
version=$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -1)
|
|
arch=$(uname -m)
|
|
name="slidewire-$version-$arch"
|
|
export SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH:-$(git log -1 --format=%ct)}
|
|
cargo build --release --locked
|
|
stage=$(mktemp -d)/$name
|
|
scripts/install.sh "$stage"
|
|
mkdir -p dist
|
|
tar --sort=name --owner=0 --group=0 --numeric-owner --mtime="@$SOURCE_DATE_EPOCH" \
|
|
-C "$(dirname "$stage")" -czf "dist/$name.tar.gz" "$name"
|
|
(cd dist && sha256sum "$name.tar.gz" > "$name.tar.gz.sha256")
|
|
echo "dist/$name.tar.gz"
|