From 0d3bfba6743eaeb6578f8ee5770a967f305ff6df Mon Sep 17 00:00:00 2001 From: sergio Date: Sun, 12 Jul 2026 09:40:43 -0400 Subject: [PATCH] =?UTF-8?q?kde/Capa0:=20saldar=20deuda=20SSL=20=E2=80=94?= =?UTF-8?q?=20openssl=20static-PIC=20+=20qtbase=20QT=5FFEATURE=5Fssl=3DON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- recipes/incoming-kde/openssl.toml | 26 ++++++++++++++++++++++++++ recipes/incoming-kde/qtbase.toml | 6 ++++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 recipes/incoming-kde/openssl.toml 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