Etapa G: expat/libxml2/fontconfig/glib limpias (static, sha256 computados, nls off en glib)

This commit is contained in:
2026-06-30 00:10:04 -04:00
parent dc5fd6701c
commit f40af6718f
4 changed files with 26 additions and 185 deletions
+6 -32
View File
@@ -1,40 +1,14 @@
# 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.
# expat 2.8.2 — parser XML (lo usa fontconfig). autotools static, leaf.
name = "expat"
version = "2.8.2"
[source]
tarball = "https://github.com/libexpat/libexpat/releases/download/R_${pkgver//./_}/expat-2.8.2.tar.xz"
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
# sha512 = "68ee856b3eeefeb6bb800004951bbbe89a9a144354ae12bc9d670888fd89e8513243e0053c61674430c78e2beeeb85a3c86ac7644576a5bb9867fbce3643ff8d"
sha256 = "FIXME-sha256"
tarball = "https://github.com/libexpat/libexpat/releases/download/R_2_8_2/expat-2.8.2.tar.xz"
sha256 = "3ad89b8588e6644bd4e49981480d48b21289eebbcd4f0a1a4afb1c29f99b6ab4"
[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() {
./configure \
--disable-shared --enable-static \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--mandir=/usr/share/man \
--enable-static
make
}
_abuild_phase
'''
# de package() de Alpine (traducido $pkgdir→/out):
install = '''
_abuild_phase() {
make DESTDIR="/out/" install
}
_abuild_phase
'''
configure = "./configure --prefix=/usr --disable-shared --enable-static --without-docbook --without-examples --without-tests"
compile = "make"
install = "make install DESTDIR=/out"
+5 -39
View File
@@ -1,50 +1,16 @@
# 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.
# fontconfig 2.18.1 — configuración/cache de fuentes (lo usa cairo/pango). autotools static.
name = "fontconfig"
version = "2.18.1"
[source]
tarball = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/2.18.1/fontconfig-2.18.1.tar.xz"
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
# sha512 = "5d637a030625fa5b55399a2711b4dd48949429caae4b80503655bc7bd12b9a58cc278b520660845c9e93dcac4631ad5c36bf97793ac1af1b8f3131e7bd22077c"
sha256 = "2300f3dbfa7253b3a44f4feecdbc8dfa45dde5dc2cfb71fceaf31f394cb41031"
[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() {
./configure \
--disable-shared --enable-static \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-static \
--enable-docs \
--disable-nls
make
# test tries to download google fonts from internet
# https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/2.15.0/test/run-test.sh#L435
chmod -x test/test-crbug1004254
}
_abuild_phase
'''
# de package() de Alpine (traducido $pkgdir→/out):
install = '''
_abuild_phase() {
make DESTDIR="/out" install
}
_abuild_phase
'''
configure = "./configure --prefix=/usr --sysconfdir=/etc --disable-shared --enable-static --disable-docs"
compile = "make"
install = "make install DESTDIR=/out"
[deps]
build = ["freetype", "expat", "python3", "gperf", "util-linux", "docbook2x"]
build = ["freetype", "expat", "pkgconf", "gperf"]
+7 -74
View File
@@ -1,83 +1,16 @@
# 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.
# glib 2.88.1 — la fundación de GTK (objetos/loops/utilidades). meson static, nls off (sin gettext).
name = "glib"
version = "2.88.1"
[source]
tarball = "https://download.gnome.org/sources/glib/${pkgver%.*}/glib-2.88.1.tar.xz"
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
# sha512 = "74e6d6086081e5dfb5b7fd3b74f59171033be0c340ff2dd798fea9cb42e5f680e13b2ac3dde8dd423bceb9c6556103005f9542aeda166e9a3b89da8bacecca23"
sha256 = "FIXME-sha256"
patches = ["tests-machine-id.patch", "flaky-tests.patch", "projectsdir.patch"]
tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz"
sha256 = "51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e"
[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() {
export CFLAGS="$CFLAGS -ffat-lto-objects -O2"
export CXXFLAGS="$CXXFLAGS -O2"
export CPPFLAGS="$CPPFLAGS -O2"
local _prefix="$PWD/boostrap-glib"
msg "build bootstrap glib"
meson setup \
--default-library=shared \
--prefix="$_prefix" \
-Dman-pages=disabled \
-Dlibmount=disabled \
-Dtests=false \
-Dintrospection=disabled \
-Dnls=disabled \
. output
meson compile -C output
meson install --no-rebuild -C output
msg "build bootstrap gobject-introspection"
meson setup \
--pkg-config-path="$_prefix"/lib/pkgconfig \
--prefix="$_prefix" \
-Dbuild_introspection_data=false \
-Dcairo=disabled \
-Ddoctool=disabled \
"$srcdir"/gobject-introspection-$_gi_version \
gioutput
meson compile -C gioutput
meson install --no-rebuild -C gioutput
msg "re-build glib with introspection"
PATH="$_prefix/bin:$PATH" LD_LIBRARY_PATH="$_prefix/lib" \
abuild-meson \
--reconfigure \
--pkg-config-path="$_prefix"/lib/pkgconfig \
--default-library=both \
-Dman-pages=enabled \
-Dlibmount=enabled \
-Dtests="$(want_check && echo true || echo false)" \
-Dintrospection=enabled \
-Dnls=enabled \
-Dglib_debug=disabled \
. output
PATH="$_prefix/bin:$PATH" LD_LIBRARY_PATH="$_prefix/lib" \
meson compile -C output
}
_abuild_phase
'''
# de package() de Alpine (traducido $pkgdir→/out):
install = '''
_abuild_phase() {
DESTDIR="/out" meson install --no-rebuild -C output
}
_abuild_phase
'''
# depends de runtime de Alpine (NO build-deps): gettext-static
configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=static -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=disabled -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false"
compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
[deps]
build = ["gettext-static_dev", "bash", "bison", "flex", "libffi", "pcre2", "py3-setuptools", "python3", "util-linux", "zlib", "py3-docutils"]
build = ["meson", "samurai", "python3", "pkgconf", "libffi", "pcre2", "zlib"]
+8 -40
View File
@@ -1,48 +1,16 @@
# 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.
# libxml2 2.13.9 — parser XML (lo usa fontconfig opcional, otros). autotools static.
name = "libxml2"
version = "2.13.9"
[source]
tarball = "https://download.gnome.org/sources/libxml2/${pkgver%.*}/libxml2-2.13.9.tar.xz"
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
# sha512 = "62d4813860124c969f204aaf33b497105dbc32a6c5655f5a86168743660e10987d687d7e5e7ee49fdfdeb8f6ad9fa4503f81fcce2e4d459094895f02436d1b13"
sha256 = "FIXME-sha256"
patches = ["CVE-2026-6732.patch", "CVE-2026-6732-test.patch"]
tarball = "https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.9.tar.xz"
sha256 = "a2c9ae7b770da34860050c309f903221c67830c86e4a7e760692b803df95143a"
[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() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--enable-static \
--with-legacy \
--with-lzma \
--with-zlib \
$_py_configure
make
}
_abuild_phase
'''
# de package() de Alpine (traducido $pkgdir→/out):
install = '''
_abuild_phase() {
make -j1 DESTDIR="/out" install
}
_abuild_phase
'''
# depends de runtime de Alpine (NO build-deps): python3
configure = "./configure --prefix=/usr --disable-shared --enable-static --without-python --without-lzma"
compile = "make"
install = "make install DESTDIR=/out"
[deps]
build = ["zlib"]