kde/Capa0: saldar deuda SSL — openssl static-PIC + qtbase QT_FEATURE_ssl=ON
KIO (ksslerroruidata.cpp) usa QSslSocket → exige Qt con SSL, pero el gate tenía openssl OFF (libcrypto.a/libssl.a static sin PIC no entran en .so). Variante openssl-PIC (-fPIC en Configure, override incoming-kde) + qtbase openssl=ON/openssl_linked=ON/ssl=ON + openssl en deps → libQt6Network con QSslSocket completo. Cascada rebuild qtbase→Capa1→KF6 (nuevo hash qtbase). Desbloquea KIO + todo el networking Qt. Deuda Capa 0 SSL CERRADA. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
2 archivos · +30 −2
diff --git a/recipes/incoming-kde/openssl.toml b/recipes/incoming-kde/openssl.toml
new file mode 100644
index 00000000..4e7b74d5
--- /dev/null
+++ b/recipes/incoming-kde/openssl.toml
@@ -0,0 +1,26 @@
+# OpenSSL 3.5.4 — VARIANTE PIC para la campaña KDE (ADR 0011, Capa 0). Igual que la canónica
+# (recipes/openssl.toml) pero con -fPIC: qtbase (QT_FEATURE_openssl_linked=ON) enlaza libssl.a/
+# libcrypto.a DENTRO de libQt6Network.so (dinámico). El .a canónico es no-shared SIN PIC ⇒ da
+# "recompile with -fPIC" (EVP_SKEYMGMT_free reloc) al meterlo en un .so. Override incoming-kde
+# (mismo name, gana al construir desde esta cola). Saldar la deuda SSL de Capa 0: KIO (ksslerroruidata
+# usa QSslSocket) y todo el networking Qt exigen QSslSocket completo ⇒ Qt con SSL ⇒ openssl PIC.
+# Patrón static↔dinámico Capa 0 (mismo que zstd/libgcrypt/util-linux-shared).
+name = "openssl"
+version = "3.5.4"
+
+[source]
+tarball = "https://github.com/openssl/openssl/releases/download/openssl-3.5.4/openssl-3.5.4.tar.gz"
+sha256 = "967311f84955316969bdb1d8d4b983718ef42338639c621ec4c34fddef355e99"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "static"
+zig_version = "0.13.0"
+
+[build.phases]
+# -fPIC al final de Configure ⇒ TODOS los objetos del .a son PIC (enlazables en .so). Resto idéntico
+# a la canónica (no-shared: libcrypto.a/libssl.a; no-apps/docs/tests: sólo libs+headers+pkgconfig).
+configure = "./Configure linux-x86_64 --prefix=/usr --libdir=lib no-shared no-docs no-tests no-apps -fPIC"
+compile = "make -j\"$(nproc)\" build_libs"
+install = "make DESTDIR=/out install_dev"
diff --git a/recipes/incoming-kde/qtbase.toml b/recipes/incoming-kde/qtbase.toml
index 1779e5cd..fd207240 100644
--- a/recipes/incoming-kde/qtbase.toml
+++ b/recipes/incoming-kde/qtbase.toml
@@ -71,8 +71,9 @@ cmake -B build -G Ninja -Wno-dev \
-DQT_FEATURE_sql=ON \
-DQT_FEATURE_sql_sqlite=ON \
-DQT_FEATURE_system_sqlite=OFF \
- -DQT_FEATURE_openssl=OFF \
- -DQT_FEATURE_ssl=OFF \
+ -DQT_FEATURE_openssl=ON \
+ -DQT_FEATURE_openssl_linked=ON \
+ -DQT_FEATURE_ssl=ON \
-DQT_FEATURE_system_zlib=ON \
-DQT_FEATURE_system_libpng=OFF \
-DQT_FEATURE_system_libjpeg=OFF \
@@ -98,6 +99,7 @@ build = [
"cmake", "samurai", "python3", "pkgconf", "dbus",
"pcre2", "zlib",
"wayland", "wayland-protocols", "libxkbcommon", "mesa",
+ "openssl",
]
# NOTA gate (ADR 0011, tensión estático↔dinámico): libQt6Core.so LINKEA bien con las deps estáticas
# del closure (glib/pcre2 son PIC-compatibles; zlib entra como libz.so). Lo que ROMPE el .so son libs