30 lines
1.3 KiB
Bash
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"
|