caudal/empaquetado/escritorio/construir-linux.sh
2026-10-19 12:42:00 -05:00

30 lines
1.3 KiB
Bash

#!/bin/sh
# Construye el programa de escritorio de Linux de una versión tal como se publica:
# dentro de un contenedor con Debian 11 (glibc 2.31), para que valga también en
# sistemas algo antiguos, y desde un árbol limpio (los ficheros versionados, no lo
# que haya suelto en la carpeta).
# sh empaquetado/escritorio/construir-linux.sh X.Y.Z <carpeta de entrega>
# Deja en la carpeta de entrega caudal-X.Y.Z-linux-x86_64 y su suma SHA-256.
# Necesita Docker. El manifiesto y su firma se hacen después con
# empaquetado/firmar-version.sh (ver VERIFICAR.md).
set -eu
VERSION="${1:?Falta la versión (X.Y.Z)}"
ENTREGA="${2:?Falta la carpeta de entrega}"
RAIZ="$(git -C "$(dirname "$0")" rev-parse --show-toplevel)"
IMAGEN="python:3.11-bullseye"
mkdir -p "$ENTREGA"
ENTREGA="$(cd "$ENTREGA" && pwd)"
ARBOL="$(mktemp -d)"
trap 'rm -rf "$ARBOL"' EXIT
git -C "$RAIZ" archive HEAD | tar -x -C "$ARBOL"
docker run --rm --platform linux/amd64 -v "$ARBOL:/fuente:ro" -v "$ENTREGA:/entrega" "$IMAGEN" sh -euc "
cp -r /fuente /tmp/fuente
sh /tmp/fuente/empaquetado/escritorio/construir.sh /tmp/obra
cp /tmp/obra/dist/caudal /entrega/caudal-$VERSION-linux-x86_64
chown $(id -u):$(id -g) /entrega/caudal-$VERSION-linux-x86_64
ldd --version | head -1
"
cd "$ENTREGA"
sha256sum "caudal-$VERSION-linux-x86_64" | tee "caudal-$VERSION-linux-x86_64.sha256"