spectacle 6.7.2 (7a6db883) → /usr/bin/spectacle. Cierre VERIFICADO, los 6 componentes de la cadena:
libKPipeWireRecord.so.6 + libopencv_core.so.410 + libopencv_imgproc.so.410 + libtesseract.so.5.5 +
libKF6PrisonScanner.so.6 + libKQuickImageEditor.so.1.
Cadena nueva completada en esta tanda:
ffmpeg 7.1 faafef5e libavcodec/avutil/avformat/avfilter/swscale — kpipewire los exige los
4 REQUIRED. ffmpeg NO usa autotools: su configure toma --cc/--ar/
--ranlib, y hay que darle wrappers de UN SOLO TOKEN (--ar="zig ar" con
espacio se ejecutaría como binario único — mismo gotcha que el AR de
los crates 'cc'). **--disable-autodetect** = determinismo: sin él
configure escanea el sandbox y activa libs a discreción.
libva 2.22.0 121cd0de libva.so + libva-drm.so, REQUIRED por kpipewire. Sólo la capa de
despacho; los drivers reales son RUNTIME (dlopen). Sólo backend DRM.
kpipewire 6.7.2 745665f3 KPipeWire + KPipeWireRecord. Deps: pipewire + ffmpeg + libva + gbm/EGL
(mesa) + libepoxy.
kquickimageeditor 0a4f8156 **BUMP 0.5.0 → 0.6.2.1**: spectacle 6.7 incluye
<KQuickImageEditor/AnnotationDocument>, que NO existe en la serie 0.5
(no tiene src/annotations). La 0.6.x suma deps propias: KF6Config
REQUIRED + OpenCV 4.7 (stack blur, WITH_OPENCV=TRUE por defecto).
Por qué era cara: TODO en spectacle es REQUIRED y casi nada degradable. En particular **KPipeWire no se
puede esquivar**: find_package va sin REQUIRED y set_package_properties lo marca TYPE REQUIRED (eso sí se
degrada con sed), pero src/CMakeLists.txt:101 linkea K::KPipeWireRecord INCONDICIONALMENTE.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
71 lines
3.5 KiB
TOML
71 lines
3.5 KiB
TOML
# spectacle 6.7.2 — la herramienta de CAPTURA DE PANTALLA de Plasma. Campaña KDE (ADR 0011).
|
|
# Captura en Wayland es notoriamente difícil: no hay X11 grab; va por los protocolos de KWin
|
|
# (plasma-wayland-protocols + layer-shell-qt) y/o portales. **NO está en release-service** (migró): vive
|
|
# en download.kde.org/stable/plasma/.
|
|
#
|
|
# Es la app más cara de la campaña en deps nuevas. Todo REQUIRED, casi nada degradable:
|
|
# - **kpipewire** (→ pipewire → ffmpeg + libva): src/CMakeLists.txt:101 linkea `K::KPipeWireRecord`
|
|
# INCONDICIONALMENTE. Degradar KPipeWire a TYPE OPTIONAL con sed NO alcanza (el link es duro).
|
|
# - **opencv** (core+imgproc): find_package(OpenCV 4.7 REQUIRED), lo usa src/QtCV.h.
|
|
# - **prison-scanner** (+zxing-cpp): corta con SEND_ERROR si falta KF6::PrisonScanner, y el prison
|
|
# canónico va con WITH_ZXING=OFF/WITH_MULTIMEDIA=OFF.
|
|
# - **tesseract** (+leptonica): pkg_check_modules(TESSERACT REQUIRED) en CMakeLists:111, sin option().
|
|
# - **kquickimageeditor**: TYPE REQUIRED (recorte/anotación).
|
|
# - **xcb-util-cursor**: sin él, "No suitable backend platform was found ... XCB-CURSOR".
|
|
name = "spectacle"
|
|
version = "6.7.2"
|
|
|
|
[source]
|
|
tarball = "https://download.kde.org/stable/plasma/6.7.2/spectacle-6.7.2.tar.xz"
|
|
sha256 = "24d2cd02296401538f0ac7736804b071b9e9f516a8ad58a4b821411bc15642a3"
|
|
|
|
[build]
|
|
compiler = "zig-cc"
|
|
target = "x86_64-linux-musl"
|
|
link = "dynamic"
|
|
flags = []
|
|
|
|
[build.phases]
|
|
configure = '''
|
|
rm -rf po doc
|
|
sed -i '/add_subdirectory(doc)/d' CMakeLists.txt
|
|
sed -i '/kdoctools_install/d' CMakeLists.txt
|
|
sed -i '/set_package_properties(KF6DocTools/,/)/ s/TYPE REQUIRED/TYPE OPTIONAL/' CMakeLists.txt
|
|
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
|
|
'''
|
|
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",
|
|
"wayland-protocols", "plasma-wayland-protocols", "qtwayland", "layer-shell-qt", "qtmultimedia",
|
|
"opencv", "prison-scanner", "zxing-cpp", "qt5compat",
|
|
"tesseract", "leptonica", "kquickimageeditor", "libpng-shared", "libjpeg-turbo-shared",
|
|
"kpipewire", "pipewire", "ffmpeg", "libva", "libepoxy", "kwayland",
|
|
"kcoreaddons", "kwidgetsaddons", "kdbusaddons", "knotifications", "kconfig", "ki18n", "kio",
|
|
"kwindowsystem", "kglobalaccel", "kxmlgui", "kguiaddons", "kirigami", "kirigami-addons",
|
|
"kstatusnotifieritem", "kcrash", "kpackage",
|
|
"kcolorscheme", "kcompletion", "kjobwidgets", "kservice", "kconfigwidgets", "kitemviews",
|
|
"kcodecs", "karchive", "kbookmarks", "sonnet", "attica", "icu4c", "kiconthemes", "solid",
|
|
"kauth", "kitemmodels",
|
|
"zlib-shared", "libX11", "xorgproto", "libXau", "libXdmcp", "libXext", "libXrender", "libXfixes",
|
|
"libXi", "libxcb", "xcb-util", "xcb-util-keysyms", "xcb-util-wm", "xcb-util-image",
|
|
"xcb-util-cursor",
|
|
"xcb-util-renderutil"]
|