#!/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 # 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"