Etapa G (clib): arregla brotli (cmake vía [deps].build, sin Ninja/wheel) + elimina bzip2 duplicado

brotli fallaba con 'cmake: not found' porque no declaraba cmake en [deps].build
(patrón libjpeg-turbo/libtiff que sí materializa el tool). bzip2 en incoming-clib
era un duplicado del ya-promovido recipes/bzip2.toml (sellado en dist/repo).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-01 05:24:44 -04:00
co-authored by Claude Opus 4.8
parent 957c6bc9de
commit 0c6290a0b6
2 changed files with 10 additions and 92 deletions
+10 -50
View File
@@ -1,13 +1,12 @@
# Importada de Alpine aports por `hammer import-alpine` (Etapa G). PUNTO DE PARTIDA — pero
# YA trae los parches de musl de Alpine (lo que un import de nix pierde). Pendiente: el
# sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild.
# brotli 1.2.0 — compresión Brotli (libbrotli{common,dec,enc} + CLI). Base de fuentes web
# (woff2/freetype/harfbuzz→GTK). De-Alpinizada: cmake static (generador Make, sin Ninja),
# sin wheel de python (BOOTSTRAP). El fallo previo era falta de `cmake` en el sandbox:
# hay que declararlo en [deps].build para que el lab lo materialice (patrón libjpeg-turbo/libtiff).
name = "brotli"
version = "1.2.0"
[source]
tarball = "https://github.com/google/brotli/archive/refs/tags/v1.2.0.tar.gz"
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
# sha512 = "f94542afd2ecd96cc41fd21a805a3da314281ae558c10650f3e6d9ca732b8425bba8fde312823f0a564c7de3993bdaab5b43378edab65ebb798cefb6fd702256"
sha256 = "816c96e8e8f193b40151dad7e8ff37b1221d019dbcb9c35cd3fadbfe6477dfec"
patches = ["optimize-mips.patch", "fix-lp64.patch"]
@@ -18,49 +17,10 @@ link = "static"
flags = []
[build.phases]
# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3; revisá --shared para estático):
compile = '''
_abuild_phase() {
export CFLAGS="$CFLAGS -flto=auto -O2"
# CMAKE_INSTALL_LIBDIR=lib: el lab usa /usr/lib (no /usr/lib64) → pkg-config de los consumidores.
configure = "cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF"
compile = "cmake --build build"
install = "DESTDIR=/out cmake --install build"
# static libs, see https://github.com/google/brotli/issues/795
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=OFF
cmake --build build
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=ON
cmake --build build
if [ -z "$BOOTSTRAP" ]; then
gpep517 build-wheel \
--wheel-dir .dist \
--output-fd 3 3>&1 >&2
fi
}
_abuild_phase
'''
# de package() de Alpine (traducido $pkgdir→/out):
install = '''
_abuild_phase() {
DESTDIR="/out" cmake --install build
local file; for file in common dec enc; do
install -D -m 755 "$builddir"/build/libbrotli$file.a \
"/out"/usr/lib/
done
local man; for man in docs/*.?; do
install -D -m644 $man "/out"/usr/share/man/man${man##*.}/${man##*/}
done
if [ -z "$BOOTSTRAP" ]; then
python3 -m installer -d "/out" .dist/*.whl
fi
}
_abuild_phase
'''
[deps]
build = ["cmake"]
-42
View File
@@ -1,42 +0,0 @@
# Importada de Alpine aports por `hammer import-alpine` (Etapa G). PUNTO DE PARTIDA — pero
# YA trae los parches de musl de Alpine (lo que un import de nix pierde). Pendiente: el
# sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild.
name = "bzip2"
version = "1.0.8"
[source]
tarball = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz"
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
# sha512 = "083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3"
sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269"
patches = ["bzip2-1.0.4-makefile-CFLAGS.patch", "bzip2-1.0.4-man-links.patch", "bzip2-1.0.2-progress.patch", "bzip2-1.0.3-no-test.patch", "saneso.patch"]
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
flags = []
[build.phases]
# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3; revisá --shared para estático):
compile = '''
_abuild_phase() {
make -f Makefile-libbz2_so all
make all
}
_abuild_phase
'''
# de package() de Alpine (traducido $pkgdir→/out):
install = '''
_abuild_phase() {
make PREFIX="/out"/usr install
install -D libbz2.so.1.0.8 "/out"/usr/lib/libbz2.so.1.0.8
ln -s libbz2.so.1.0.8 "/out"/usr/lib/libbz2.so
ln -s libbz2.so.1.0.8 "/out"/usr/lib/libbz2.so.${pkgver%%.*}
mkdir -p "/out"/usr/lib/pkgconfig/
sed "s|@VERSION@|1.0.8|" "$srcdir"/bzip2.pc.in \
> "/out"/usr/lib/pkgconfig/bzip2.pc
}
_abuild_phase
'''