kde/Plasma: glib-shared + pcre2-shared — DEUDA CAPA 0 'glib shared-PIC' SALDADA
La deuda más arrastrada del ADR 0011: glib canónico es -Ddefault_library=static --prefer-static (sólo .a) ⇒ no enlaza en un .so; por eso plasma-workspace tuvo que parchear NetworkManagerQt a opcional (esquivando el rabbit-hole libnm→glib). glib-shared 2.88.1 (dc46a620) produce el set dinámico completo: libglib-2.0.so.0 + libgobject-2.0.so.0 + libgio-2.0.so.0 + libgmodule-2.0.so.0 + libgthread-2.0.so.0 + libgirepository-2.0.so.0. Conserva los switches del canónico (tests/nls/libmount/selinux/introspection off) — sólo cambia el modo de librería, sin arrastrar deps nuevas. pcre2-shared 10.47 (f254abaa) era el prerrequisito: el pcre2 canónico es --disable-shared SIN --with-pic ⇒ su .a no entra en libglib.so. compiler=gcc como el canónico (su comentario advierte que zig-cc MISCOMPILA libs C, patrón file/jq); el .so es ABI-compatible con los consumidores zig. libffi NO necesitó variante: ya usa --with-pic. Cierre verificado: libglib-2.0.so.0 → libpcre2-8.so.0; libffi PIC queda embebido estático. Destraba: libnm (NetworkManager→plasma-nm), polkit, xdg-desktop-portal, gstreamer. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# glib-shared 2.88.1 — variante DINÁMICA (libglib-2.0.so.0 + libgobject/libgio/libgmodule/libgthread)
|
||||
# para el escritorio KDE. El canónico (recipes/glib.toml) es `-Ddefault_library=static --prefer-static`
|
||||
# (sólo .a) ⇒ no enlaza dentro de un .so. Es la **deuda Capa 0 "glib shared-PIC"** que el ADR 0011 arrastra
|
||||
# desde plasma-workspace (se esquivó parcheando NetworkManagerQt a opcional).
|
||||
#
|
||||
# glib es foundational para el resto del escritorio: libnm (NetworkManager→plasma-nm), polkit (auth),
|
||||
# xdg-desktop-portal, gstreamer. Esta variante lo destraba.
|
||||
#
|
||||
# Deps: libffi ya es PIC (--with-pic en el canónico, enlazable en .so) ⇒ no necesita variante.
|
||||
# pcre2-shared SÍ (el pcre2 canónico no tiene --with-pic). zlib-shared por el libz.so versionado.
|
||||
# Se conservan los switches del canónico (tests/nls/libmount/selinux/introspection off) para no arrastrar
|
||||
# deps nuevas; sólo cambia el modo de librería.
|
||||
name = "glib-shared"
|
||||
version = "2.88.1"
|
||||
|
||||
[source]
|
||||
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 = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=shared -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 = ["meson", "samurai", "python3", "pkgconf", "libffi", "pcre2-shared", "zlib-shared"]
|
||||
@@ -0,0 +1,36 @@
|
||||
# pcre2-shared 10.47 — variante DINÁMICA (libpcre2-8.so.0, PIC) para el escritorio KDE.
|
||||
# El canónico (recipes/pcre2.toml) es --disable-shared SIN --with-pic ⇒ su .a no enlaza dentro de un .so.
|
||||
# Lo exige glib-shared (libglib-2.0.so linkea pcre2 para GRegex). Deuda Capa 0 (static↔dinámico).
|
||||
#
|
||||
# compiler=gcc igual que el canónico: su comentario advierte que zig-cc MISCOMPILA libs C (patrón file/jq);
|
||||
# el gcc del rootfs es musl, y el .so resultante es ABI-compatible con los consumidores zig.
|
||||
# --disable-symvers como el canónico (musl no maneja symbol versioning de la forma que asume pcre2).
|
||||
name = "pcre2-shared"
|
||||
version = "10.47"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.47/pcre2-10.47.tar.bz2"
|
||||
sha256 = "47fe8c99461250d42f89e6e8fdaeba9da057855d06eb7fc08d9ca03fd08d7bc7"
|
||||
|
||||
[build]
|
||||
compiler = "gcc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
compile = '''
|
||||
./configure \
|
||||
--build=$CBUILD --host=$CHOST \
|
||||
--prefix=/usr \
|
||||
--enable-shared --disable-static \
|
||||
--enable-pcre2-16 --enable-pcre2-32 \
|
||||
--enable-jit \
|
||||
--enable-pcre2grep-libz \
|
||||
--disable-symvers
|
||||
make -j"$(nproc)"
|
||||
'''
|
||||
install = "make DESTDIR=/out install && find /out -name '*.la' -delete"
|
||||
|
||||
[deps]
|
||||
build = ["zlib-shared"]
|
||||
Reference in New Issue
Block a user