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>
This commit is contained in:
2026-07-12 09:40:43 -04:00
co-authored by Claude Opus 4.8
parent e69eaaaa3f
commit 0d3bfba674
2 changed files with 30 additions and 2 deletions
+26
View File
@@ -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"
+4 -2
View File
@@ -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