kde/Plasma: NetworkManager 1.52 + libndp → networkmanager-qt SELLA (blocker duro resuelto)
Habilitado por glib-shared (deuda Capa 0 recién saldada). La receta networkmanager-qt documentaba un '⛔ BLOCKER DURO': pkg_search_module(NetworkManager REQUIRED IMPORTED_TARGET libnm>=1.4.0) sin receta de NetworkManager en el catálogo. Resuelto: networkmanager 1.52.0 (f3d89133) → libnm.so.0 + libnm.pc + headers (NetworkManager.h/nm-version.h). - Fuente: gitlab.freedesktop.org (download.gnome.org sólo llega a NM 1.9.x; el proyecto migró). - **-Dcrypto=null es la clave**: NM ofrece crypto ∈ {nss,gnutls,null}; 'null' evita nss (→nspr/sqlite) y gnutls (→nettle/libtasn1/p11-kit), dos cadenas enormes. Sin validación de certificados 802.1X, pero libnm compila y la API D-Bus queda completa. - Deps duras satisfechas: libudev (libudev-zero ya sellado), gio (glib-shared), libndp (receta nueva), uuid (util-linux), dbus. - NM va pidiendo sus flags de a uno; los que hicieron falta: -Dld_gc=false (lld no soporta linker garbage collection), -Dsystemdsystemunitdir=no, -Dconcheck=false (curl), -Dnmcli=false/-Dreadline=none. sed a meson.build:92: find_program('xsltproc') es INCONDICIONAL pero xsltproc sólo se usa en man/ (no se construye con docs=false) → required:false, evita la receta libxslt entera. libndp 1.9 (036eb8c7): sin tarball con configure pregenerado (mirrors 404) ⇒ git-archive + con el autoconf/automake del rootfs de build (patrón 'de gueto', como gcc/cmake). networkmanager-qt 6.27.0 (b5850a40) SELLA. Hallazgo: libKF6NetworkManagerQt.so NO enlaza libnm — sólo Qt6Network/DBus/Core. libnm es dep de BUILD (headers/enums); el runtime es D-Bus puro. Confirma el comentario original de la receta. Próximo: plasma-nm (el applet). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# libndp 1.9 — IPv6 Neighbor Discovery Protocol (libndp.so). Campaña KDE (ADR 0011): es una de las 3 deps
|
||||
# DURAS de NetworkManager (junto a libudev y gio), y NetworkManager→libnm es lo que destraba
|
||||
# networkmanager-qt → plasma-nm (el applet de red).
|
||||
#
|
||||
# El proyecto no publica tarball con `configure` pregenerado (los mirrors dan 404); se usa el git-archive
|
||||
# del tag y se corre `autoreconf -fi` con el autoconf/automake/libtoolize del rootfs de build (mismo patrón
|
||||
# "de gueto" que gcc/cmake: herramienta del rootfs, no del catálogo).
|
||||
name = "libndp"
|
||||
version = "1.9"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/jpirko/libndp/archive/refs/tags/v1.9.tar.gz"
|
||||
sha256 = "e564f5914a6b1b799c3afa64c258824a801c1b79a29e2fe6525b682249c65261"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = '''
|
||||
autoreconf -fi
|
||||
./configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static
|
||||
'''
|
||||
compile = 'make -j"$(nproc)"'
|
||||
install = "make DESTDIR=/out install && find /out -name '*.la' -delete"
|
||||
|
||||
[deps]
|
||||
build = ["pkgconf", "libtool"]
|
||||
@@ -1,13 +1,10 @@
|
||||
# networkmanager-qt 6.27.0 — KDE Frameworks 6 (ADR 0011). Wrapper Qt de la API D-Bus de NetworkManager
|
||||
# (KF6NetworkManagerQt). La usa plasma-nm (applet de red de plasma-workspace).
|
||||
#
|
||||
# ⛔ BLOCKER DURO (dep no sellada): CMakeLists línea 15:
|
||||
# ✅ BLOCKER RESUELTO (2026-07-14): ya existe `networkmanager` (NM 1.52.0, libnm.so.0 + libnm.pc + headers)
|
||||
# en la cola, habilitado por la variante `glib-shared` (deuda Capa 0 saldada). CMakeLists:15 hace
|
||||
# pkg_search_module(NetworkManager REQUIRED IMPORTED_TARGET libnm>=1.4.0)
|
||||
# Exige libnm (los .pc/headers de NetworkManager). NO hay receta NetworkManager en el catálogo, y es
|
||||
# una dep GRANDE (NetworkManager arrastra glib/libndp/libmm-glib/polkit/…). Se necesita:
|
||||
# NetworkManager 1.52.x → https://download.gnome.org/sources/NetworkManager/1.52/
|
||||
# Sólo hacen falta los headers+libnm.pc para compilar networkmanager-qt (build de la lib). Hasta
|
||||
# sellar libnm, NO construye. Qt REQUIRED: Core DBus Network Qml (todos sellados).
|
||||
# y src/CMakeLists:173 linkea PkgConfig::NetworkManager + PkgConfig::Gio ⇒ deps: networkmanager + glib-shared.
|
||||
name = "networkmanager-qt"
|
||||
version = "6.27.0"
|
||||
|
||||
@@ -44,6 +41,7 @@ cmake -B build -G Ninja -Wno-dev \
|
||||
compile = "cmake --build build"
|
||||
install = "DESTDIR=/out cmake --install build"
|
||||
|
||||
# NOTA: falta "networkmanager"/libnm en [deps].build (sellar primero, ver cabecera).
|
||||
[deps]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "extra-cmake-modules", "qttools", "mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative"]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "extra-cmake-modules", "qttools",
|
||||
"mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative",
|
||||
"networkmanager", "glib-shared", "pcre2-shared", "libffi", "libudev-zero", "libndp", "zlib-shared"]
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# NetworkManager 1.52.0 — libnm (libnm.so + libnm.pc + headers NetworkManager.h/nm-*.h). Campaña KDE
|
||||
# (ADR 0011): destraba networkmanager-qt (KF6NetworkManagerQt) → plasma-nm, el applet de red. Era el
|
||||
# "rabbit-hole libnm→glib" que plasma-workspace esquivó parcheando NetworkManagerQt a opcional.
|
||||
#
|
||||
# El tarball NO está en download.gnome.org (sólo llega a 1.9.x; NM migró) ⇒ git-archive de
|
||||
# gitlab.freedesktop.org.
|
||||
#
|
||||
# **-Dcrypto=null es la clave**: NM ofrece crypto ∈ {nss, gnutls, null}; 'null' evita nss (→nspr/sqlite) y
|
||||
# gnutls (→nettle/libtasn1/p11-kit), dos cadenas enormes. Sin cripto no valida certificados 802.1X, pero
|
||||
# libnm compila y la API D-Bus que usa networkmanager-qt es completa.
|
||||
#
|
||||
# Deps DURAS de NM (dependency() sin required:false): libudev (→ libudev-zero YA sellado, da libudev.so.1
|
||||
# + libudev.pc), libndp (receta nueva), gio-unix-2.0 (→ glib-shared, la deuda Capa 0 recién saldada).
|
||||
# jansson/libpsl son required:false. Todo lo demás se apaga: sin daemon-extras (ovs/ppp/modem/wifi/nmtui/
|
||||
# teamdctl/ofono/cloud-setup), sin systemd (session_tracking=no, journal off), sin polkit/selinux/audit,
|
||||
# sin introspection/docs/tests/ebpf/firewalld.
|
||||
name = "networkmanager"
|
||||
version = "1.52.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/archive/1.52.0/NetworkManager-1.52.0.tar.gz"
|
||||
sha256 = "2ebe60a1497a9650d58336b73413d838189b04543365b3dbc22e1eb8023d205f"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = '''
|
||||
# meson.build:92 hace `find_program('xsltproc')` INCONDICIONAL (required por defecto), pero xsltproc sólo
|
||||
# se usa en man/meson.build (páginas de manual), que no se construye con -Ddocs=false. Se degrada a
|
||||
# required:false y así se evita la receta libxslt entera. (sed DIRECTO: el sandbox usa busybox grep, que
|
||||
# no soporta --include.)
|
||||
sed -i "s/xsltproc = find_program('xsltproc')/xsltproc = find_program('xsltproc', required: false)/" meson.build
|
||||
PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release \
|
||||
-Ddefault_library=shared \
|
||||
-Dld_gc=false -Dconcheck=false -Dnmcli=false -Dreadline=none \
|
||||
-Dcrypto=null \
|
||||
-Dsystemdsystemunitdir=no \
|
||||
-Dsession_tracking=no -Dsession_tracking_consolekit=false -Dsuspend_resume=consolekit \
|
||||
-Dpolkit=false -Dselinux=false -Dsystemd_journal=false -Dlibaudit=no \
|
||||
-Dwifi=false -Dppp=false -Dmodem_manager=false -Dovs=false -Dnmtui=false -Dnm_cloud_setup=false \
|
||||
-Dteamdctl=false -Dofono=false -Debpf=false -Dfirewalld_zone=false -Dlibpsl=false \
|
||||
-Dintrospection=false -Ddocs=false -Dtests=no -Dvapi=false \
|
||||
-Dconfig_dhcp_default=internal -Dqt=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", "glib-shared", "pcre2-shared", "libffi",
|
||||
"libudev-zero", "libndp", "libnl", "zlib-shared", "gettext-tiny", "libxml2", "util-linux", "perl", "dbus", "expat"]
|
||||
Reference in New Issue
Block a user