kde/Plasma: plasma-nm 6.7.2 SELLA — el APPLET DE RED, frente de red cerrado
plasma-nm (6080f27f) construido: applet QML org.kde.plasma.networkmanagement + kcm_networkmanagement +
plugins VPN (openvpn/openswan/ssh/sstp/strongswan/iodine/fortisslvpn). Cierre verificado:
libKF6NetworkManagerQt.so.6 + libKF6ModemManagerQt.so.6 + libqt6keychain.so.1.
Cierra el frente que plasma-workspace esquivó parcheando NetworkManagerQt a opcional. Cadena entera:
glib-shared → networkmanager (libnm) → networkmanager-qt ─┐
glib-shared → modemmanager (libmm-glib) → modemmanager-qt ───┴→ plasma-nm
Deps nuevas de esta tanda:
modemmanager 1.22.0 9e4ce41d libmm-glib. -Dqmi/mbim/qrtr=false evita libqmi/libmbim/libqrtr;
polkit=no, udev=false (+udevdir explícito, lo exige el assert).
modemmanager-qt 6.27 37e954bb KF6ModemManagerQt (REQUIRED en el find_package(KF6) de plasma-nm
aunque no haya módem).
qtkeychain 0.16.0 6a1319b0 claves WiFi. **LIBSECRET_SUPPORT=OFF**: por defecto ON y exige
libsecret-1 (llavero de GNOME); apagado queda KEYCHAIN_DBUS =
kwallet vía Qt6DBus, que es el backend que KDE usa ⇒ cero deps nuevas.
OJO: el tag de git es '0.16.0' SIN prefijo 'v'.
libxslt 1.1.43 b41cb0fc xsltproc. A diferencia de NM (donde sólo servía a man/ y se degradó),
ModemManager lo USA de verdad: include/meson.build:25 genera
ModemManager-names.h desde header-generator.xsl.
qcoro-shared 0.12.0 b8ed5b49 el qcoro canónico sella sólo .a sin PIC (su CMake no fija
BUILD_SHARED_LIBS) ⇒ 'R_X86_64_32S QCoro::detail::TaskBase<QDBusMessage>
recompile with -fPIC' al linkear plasma-nm. Variante con
BUILD_SHARED_LIBS=ON; nombre distinto para no re-hashear el qcoro que
ya consumen plasma-workspace/powerdevil.
BUILD_OPENCONNECT=OFF es importante: con ON, plasma-nm hace find_package(Qt6WebEngineWidgets REQUIRED)
⇒ arrastraría qtwebengine (Chromium), diferido por el ADR.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# libxslt 1.1.43 — transformaciones XSLT (libxslt.so + el binario **xsltproc**). Campaña KDE (ADR 0011):
|
||||
# ModemManager lo NECESITA de verdad — include/meson.build:25 corre xsltproc sobre header-generator.xsl
|
||||
# para GENERAR ModemManager-names.h (no es sólo documentación, como en NetworkManager, donde xsltproc
|
||||
# sólo servía a man/ y se pudo degradar a required:false).
|
||||
#
|
||||
# Contra la variante libxml2 de esta cola (--enable-shared --with-pic); la canónica es static-sin-PIC.
|
||||
# Sin python/crypto (libgcrypt sólo aporta la extensión EXSLT crypto, prescindible).
|
||||
name = "libxslt"
|
||||
version = "1.1.43"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.43.tar.xz"
|
||||
sha256 = "5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static --without-python --without-crypto --with-libxml-prefix=/usr'
|
||||
compile = 'make -j"$(nproc)"'
|
||||
install = "make DESTDIR=/out install && find /out -name '*.la' -delete"
|
||||
|
||||
[deps]
|
||||
build = ["pkgconf", "libxml2", "zlib-shared", "xz-shared"]
|
||||
@@ -0,0 +1,47 @@
|
||||
# modemmanager-qt 6.27.0 — KDE Frameworks 6 (ADR 0011). Wrapper Qt de la API D-Bus de ModemManager
|
||||
# (KF6ModemManagerQt). Es REQUIRED en el find_package(KF6 ...) de plasma-nm (el applet de red), aunque el
|
||||
# escritorio no tenga módem ⇒ hay que sellarlo igual.
|
||||
#
|
||||
# find_package(ModemManager 1.0 REQUIRED) resuelve contra la receta `modemmanager` (libmm-glib), habilitada
|
||||
# por glib-shared. Qt REQUIRED: Core DBus Xml (todos sellados). Mismo caso que networkmanager-qt: la lib de
|
||||
# ModemManager es dep de BUILD (headers/enums); el runtime del wrapper es D-Bus puro.
|
||||
name = "modemmanager-qt"
|
||||
version = "6.27.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.kde.org/stable/frameworks/6.27/modemmanager-qt-6.27.0.tar.xz"
|
||||
sha256 = "a893a169dd40c430c51d39326b1af0aab2a9d6c20adc34f2b8e6332c152f6234"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = '''
|
||||
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
|
||||
cat > "$ZW/cc" <<'W'
|
||||
#!/bin/sh
|
||||
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
||||
exec /opt/zig/zig cc -mcpu=baseline $a
|
||||
W
|
||||
cat > "$ZW/cxx" <<'W'
|
||||
#!/bin/sh
|
||||
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
||||
exec /opt/zig/zig c++ -mcpu=baseline $a
|
||||
W
|
||||
chmod +x "$ZW/cc" "$ZW/cxx"
|
||||
cmake -B build -G Ninja -Wno-dev \
|
||||
-DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
|
||||
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \
|
||||
-DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF
|
||||
'''
|
||||
compile = "cmake --build build"
|
||||
install = "DESTDIR=/out cmake --install build"
|
||||
|
||||
[deps]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "extra-cmake-modules", "qttools",
|
||||
"mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative",
|
||||
"modemmanager", "glib-shared", "pcre2-shared", "libffi", "libudev-zero", "zlib-shared"]
|
||||
@@ -0,0 +1,36 @@
|
||||
# ModemManager 1.22.0 — libmm-glib (banda ancha móvil). Campaña KDE (ADR 0011): sólo se necesita para que
|
||||
# `modemmanager-qt` (KF6ModemManagerQt) compile, y ese framework es REQUIRED en el find_package(KF6 ...)
|
||||
# de plasma-nm (el applet de red) — aunque el escritorio no tenga módem.
|
||||
#
|
||||
# Igual que networkmanager: fuente del gitlab.freedesktop.org, y se recorta a la lib.
|
||||
# qmi/mbim/qrtr=false evitan libqmi/libmbim/libqrtr (protocolos de módem, cadenas enteras que no hacen
|
||||
# falta para los headers+libmm-glib.pc). polkit=no, systemd/journal/suspend off, introspection/man/tests off.
|
||||
# Deps duras: gio (glib-shared, deuda Capa 0 saldada) + libudev (libudev-zero ya sellado).
|
||||
name = "modemmanager"
|
||||
version = "1.22.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/archive/1.22.0/ModemManager-1.22.0.tar.gz"
|
||||
sha256 = "6c8f8720737a3788e394c700f36236278c9de09d76069a079e6f1daaf08b2768"
|
||||
|
||||
[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 \
|
||||
-Dqmi=false -Dmbim=false -Dqrtr=false -Dudev=false -Dudevdir=/usr/lib/udev \
|
||||
-Dpolkit=no -Dsystemdsystemunitdir=no -Dsystemd_suspend_resume=false -Dsystemd_journal=false \
|
||||
-Dintrospection=false -Dvapi=false -Dman=false -Dtests=false \
|
||||
-Dat_command_via_dbus=false -Dbash_completion=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", "zlib-shared", "gettext-tiny", "dbus", "expat", "libxml2", "libxslt"]
|
||||
@@ -0,0 +1,63 @@
|
||||
# plasma-nm 6.7.2 — el APPLET DE RED de Plasma (KCM + applet QML + plasma-nm). Campaña KDE (ADR 0011).
|
||||
# Cierra el frente de red que plasma-workspace había esquivado parcheando NetworkManagerQt a opcional
|
||||
# (el "rabbit-hole libnm→glib"): ahora la cadena existe entera y soberana:
|
||||
# glib-shared → networkmanager (libnm) → networkmanager-qt ─┐
|
||||
# glib-shared → modemmanager (libmm-glib) → modemmanager-qt ─┴→ plasma-nm
|
||||
#
|
||||
# BUILD_OPENCONNECT=OFF es IMPORTANTE: con ON, plasma-nm hace find_package(Qt6WebEngineWidgets REQUIRED)
|
||||
# ⇒ arrastraría qtwebengine (Chromium embebido), la receta más cara del proyecto, DIFERIDA por el ADR.
|
||||
# (Igual auto-desactiva al no hallar openconnect, pero se explicita para determinismo.)
|
||||
#
|
||||
# RUNTIME (no bloquean el build): kirigami, prison (códigos QR de redes WiFi), kquickcharts — los 3 ya
|
||||
# sellados. ecm_find_qmlmodule REQUIRED: org.kde.prison + org.kde.kirigamiaddons.formcard (kirigami-addons).
|
||||
name = "plasma-nm"
|
||||
version = "6.7.2"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma-nm-6.7.2.tar.xz"
|
||||
sha256 = "bc4eaf62901022d76fce3bc434af905e466b63568005b67840784bd7debde8cd"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = '''
|
||||
rm -rf po
|
||||
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
|
||||
cat > "$ZW/cc" <<'W'
|
||||
#!/bin/sh
|
||||
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
||||
exec /opt/zig/zig cc -mcpu=baseline $a
|
||||
W
|
||||
cat > "$ZW/cxx" <<'W'
|
||||
#!/bin/sh
|
||||
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
||||
exec /opt/zig/zig c++ -mcpu=baseline $a
|
||||
W
|
||||
chmod +x "$ZW/cc" "$ZW/cxx"
|
||||
cmake -B build -G Ninja -Wno-dev \
|
||||
-DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
|
||||
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_TESTING=OFF \
|
||||
-DBUILD_OPENCONNECT=OFF
|
||||
'''
|
||||
compile = "cmake --build build"
|
||||
install = "DESTDIR=/out cmake --install build"
|
||||
|
||||
[deps]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "qtsvg", "dbus", "extra-cmake-modules",
|
||||
"qttools", "gettext-tiny", "mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative",
|
||||
"networkmanager", "networkmanager-qt", "modemmanager", "modemmanager-qt",
|
||||
"qtkeychain", "qcoro-shared", "openssl", "glib-shared", "pcre2-shared", "libffi", "libudev-zero",
|
||||
"libplasma", "ksvg", "kcmutils", "kdeclarative", "kirigami", "kirigami-addons", "prison",
|
||||
"kquickcharts", "plasma-activities", "kpackage", "kpty",
|
||||
"kcolorscheme", "kcompletion", "kcoreaddons", "kdbusaddons", "kio", "ki18n", "kjobwidgets",
|
||||
"knotifications", "kservice", "solid", "kwidgetsaddons", "kwindowsystem",
|
||||
"kconfig", "kconfigwidgets", "kxmlgui", "kguiaddons", "kitemviews", "kcodecs", "kcrash",
|
||||
"karchive", "kbookmarks", "sonnet", "attica", "kglobalaccel", "kauth", "icu4c", "kiconthemes",
|
||||
"zlib-shared", "libX11", "xorgproto", "libXau", "libXdmcp", "libXext", "libXrender", "libXfixes",
|
||||
"libXi", "libxcb", "xcb-util", "xcb-util-keysyms", "xcb-util-wm", "xcb-util-image",
|
||||
"xcb-util-renderutil"]
|
||||
@@ -0,0 +1,48 @@
|
||||
# qcoro-shared 0.12.0 — variante DINÁMICA (libQCoro6Core/DBus/Network .so, PIC) para el escritorio KDE.
|
||||
# El qcoro canónico de esta cola sella sólo .a SIN PIC (su CMake no fija BUILD_SHARED_LIBS ⇒ default
|
||||
# estático) ⇒ no enlaza dentro de un .so: plasma-nm falla con "R_X86_64_32S ... QCoro::detail::TaskBase
|
||||
# <QDBusMessage> ... recompile with -fPIC". Misma deuda Capa 0 que zlib/bzip2/xz/libjpeg/libpng/freetype/
|
||||
# fontconfig/pcre2. Nombre distinto para NO re-hashear el qcoro que ya consumen plasma-workspace/powerdevil.
|
||||
#
|
||||
# Único cambio real vs. el canónico: -DBUILD_SHARED_LIBS=ON. El resto (módulos Qt on/off) se conserva.
|
||||
name = "qcoro-shared"
|
||||
version = "0.12.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/qcoro/qcoro/archive/refs/tags/v0.12.0.tar.gz"
|
||||
sha256 = "809afafab61593f994c005ca6e242300e1e3e7f4db8b5d41f8c642aab9450fbc"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = '''
|
||||
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
|
||||
cat > "$ZW/cc" <<'W'
|
||||
#!/bin/sh
|
||||
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
||||
exec /opt/zig/zig cc -mcpu=baseline $a
|
||||
W
|
||||
cat > "$ZW/cxx" <<'W'
|
||||
#!/bin/sh
|
||||
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
||||
exec /opt/zig/zig c++ -mcpu=baseline $a
|
||||
W
|
||||
chmod +x "$ZW/cc" "$ZW/cxx"
|
||||
cmake -B build -G Ninja -Wno-dev \
|
||||
-DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
|
||||
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_SHARED_LIBS=ON \
|
||||
-DQCORO_BUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF \
|
||||
-DQCORO_WITH_QTDBUS=ON -DQCORO_WITH_QTNETWORK=ON \
|
||||
-DQCORO_WITH_QTWEBSOCKETS=OFF -DQCORO_WITH_QTQUICK=OFF \
|
||||
-DQCORO_WITH_QML=OFF -DQCORO_WITH_QTTEST=OFF
|
||||
'''
|
||||
compile = "cmake --build build"
|
||||
install = "DESTDIR=/out cmake --install build"
|
||||
|
||||
[deps]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "mesa", "libdrm", "libxkbcommon", "wayland"]
|
||||
@@ -0,0 +1,49 @@
|
||||
# qtkeychain 0.16.0 — almacenamiento de credenciales para Qt (libqt6keychain.so). Campaña KDE (ADR 0011):
|
||||
# el ADR ya lo listaba como "extra KDE" de Capa 1; plasma-nm lo exige
|
||||
# (find_package(Qt6Keychain 0.16.0 CONFIG REQUIRED)) para guardar las claves WiFi.
|
||||
#
|
||||
# BUILD_WITH_QT6=ON (por defecto es OFF → buscaría Qt5). BUILD_TRANSLATIONS=OFF evita Qt6LinguistTools.
|
||||
# **LIBSECRET_SUPPORT=OFF**: por defecto ON ⇒ pkg_check_modules(LIBSECRET REQUIRED libsecret-1) y aborta.
|
||||
# libsecret es el llavero de GNOME; apagándolo queda el backend `KEYCHAIN_DBUS` = **kwallet vía Qt6DBus**,
|
||||
# que es justamente el que usa KDE (kwallet ya está sellado) ⇒ cero deps nuevas.
|
||||
# OJO: el tag de git es `0.16.0`, SIN prefijo `v` (v0.16.0 da 404).
|
||||
name = "qtkeychain"
|
||||
version = "0.16.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/frankosterfeld/qtkeychain/archive/refs/tags/0.16.0.tar.gz"
|
||||
sha256 = "3be26ec4ae30eecf0c2ff7572ba83799791b157c76e15a05ef35f23dc25e4054"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = '''
|
||||
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
|
||||
cat > "$ZW/cc" <<'W'
|
||||
#!/bin/sh
|
||||
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
||||
exec /opt/zig/zig cc -mcpu=baseline $a
|
||||
W
|
||||
cat > "$ZW/cxx" <<'W'
|
||||
#!/bin/sh
|
||||
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
||||
exec /opt/zig/zig c++ -mcpu=baseline $a
|
||||
W
|
||||
chmod +x "$ZW/cc" "$ZW/cxx"
|
||||
cmake -B build -G Ninja -Wno-dev \
|
||||
-DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
|
||||
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_SHARED_LIBS=ON \
|
||||
-DBUILD_WITH_QT6=ON -DBUILD_TRANSLATIONS=OFF -DLIBSECRET_SUPPORT=OFF \
|
||||
-DBUILD_TEST_APPLICATION=OFF -DBUILD_QTQUICK_DEMO=OFF
|
||||
'''
|
||||
compile = "cmake --build build"
|
||||
install = "DESTDIR=/out cmake --install build"
|
||||
|
||||
[deps]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "qttools",
|
||||
"mesa", "libdrm", "libxkbcommon", "wayland"]
|
||||
Reference in New Issue
Block a user