Files
SlideWire/scripts/release-tarball.sh
T
NilsBriggenandClaude Opus 5.5 21f6dea6a1 Release machinery: metainfo, man page, completions, CI, packaging
- 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>
2026-10-11 20:11:40 +02:00

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"