T25: release builds: scripts/windows-zip.ps1 zips elyterminal.exe, the icon inside as resource 1 (build.rs, embed-resource), a GUI program carrying its C runtime, git started without a console; scripts/linux-tar.sh builds on Debian 12, glibc 2.35 for this build, with a desktop entry and the icon; every window names itself com.zacharyzhang.elyterminal; rust-toolchain.toml pins 1.95.0, and CI installs it without rustup default
CI / platforms (windows-latest) (push) Successful in 1m35s
CI / platforms (ubuntu-24.04) (push) Successful in 3m14s
CI / macos (push) Successful in 9m49s

This commit is contained in:
ZacharyZhang-NY committed 2026-10-15 16:50:22 -04:00
1 parent 2b8ae5d026
commit 0075667ab1
21 files changed
+211 -39

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
#!/bin/sh
# linux-tar.sh: the release build on Debian 12's glibc 2.36, in a tarball with its desktop entry and icon.
set -eu
cd "$(dirname "$0")/.."
docker build -q -t elyterminal-release - >/dev/null <<'EOF'
FROM rust:1.95.0-bookworm
RUN apt-get update \
&& apt-get install -y --no-install-recommends pkg-config libwayland-dev libxkbcommon-dev \
libxkbcommon-x11-dev libxcb1-dev libx11-xcb-dev libfontconfig-dev libfreetype-dev \
&& rm -rf /var/lib/apt/lists/* \
&& rustup component add clippy rustfmt
EOF
run() { docker run --rm --user "$(id -u):$(id -g)" -v "$PWD:/src" -w /src elyterminal-release "$@"; }
run cargo build --release --locked
version=$(run cargo pkgid)
version=${version##*[#@]}
case $version in [0-9]*) ;; *) echo "linux-tar: cargo pkgid names no version" >&2; exit 1 ;; esac
out=target/release
id=com.zacharyzhang.elyterminal
name=ELYTerminal-$version-linux-$(uname -m)
work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT
mkdir "$work/$name"
cp "$out/elyterminal" "$work/$name/"
cp assets/icons/elyterminal.svg "$work/$name/$id.svg"
cat > "$work/$name/$id.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=ELYTerminal
Exec=elyterminal
Icon=$id
Terminal=false
Categories=System;TerminalEmulator;
StartupWMClass=$id
EOF
tar -C "$work" -czf "$out/$name.tar.gz" "$name"
glibc=$(run sh -c "objdump -T $out/elyterminal | grep -o 'GLIBC_[0-9.]*' | sort -u -V | tail -n 1")
echo "linux-tar: $out/$name.tar.gz, glibc ${glibc#GLIBC_} or later"