kde/Plasma: tesseract/leptonica/kquickimageeditor — cadena de spectacle (queda 1 blocker: KPipeWire)
Selladas:
leptonica 1.85.0 e80a5d36 procesamiento de imagen; dep dura de tesseract. Codecs recortados a
las variantes .so/PIC que ya tenemos (libjpeg-turbo-shared +
libpng-shared + zlib-shared); TIFF/WEBP/OPENJPEG/GIF off.
tesseract 5.5.0 08c05238 OCR. spectacle lo exige DURO: pkg_check_modules(TESSERACT REQUIRED)
en CMakeLists:111, sin option() para apagarlo. Sólo la lib (sin
training tools, que piden pango/cairo/icu).
kquickimageeditor 0.5.0 3d4bd904 editor de imagen QtQuick; spectacle lo marca TYPE REQUIRED.
spectacle.toml se commitea CON su blocker documentado en la cabecera (misma convención que usaba
networkmanager-qt): **KPipeWire**. find_package(KPipeWire) va sin REQUIRED y set_package_properties lo
marca TYPE REQUIRED (eso se degrada con sed), PERO src/CMakeLists.txt:101 linkea
INCONDICIONALMENTE ⇒ no hay forma de compilar sin él. Falta la cadena pipewire → (ffmpeg, para
KPipeWireRecord) → kpipewire.
El resto de su cadena YA quedó resuelto y sellado esta sesión: opencv + prison-scanner + zxing-cpp +
tesseract + leptonica + kquickimageeditor + xcb-util-cursor (sin este último: 'No suitable backend
platform was found ... XCB-CURSOR').
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# kquickimageeditor 0.5.0 — editor de imágenes simple para QtQuick (org.kde.kquickimageeditor).
|
||||
# Campaña KDE (ADR 0011): spectacle lo marca TYPE REQUIRED (recorte/anotación de la captura).
|
||||
name = "kquickimageeditor"
|
||||
version = "0.5.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.kde.org/stable/kquickimageeditor/kquickimageeditor-0.5.0.tar.xz"
|
||||
sha256 = "8ebbfdce39efbbb63679badc3320fe06eb3aa68a4da5f50740197645c985ad0f"
|
||||
|
||||
[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
|
||||
'''
|
||||
compile = "cmake --build build"
|
||||
install = "DESTDIR=/out cmake --install build"
|
||||
|
||||
[deps]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "extra-cmake-modules", "qttools",
|
||||
"gettext-tiny", "mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative", "kirigami"]
|
||||
@@ -0,0 +1,27 @@
|
||||
# leptonica 1.85.0 — procesamiento de imágenes (libleptonica.so). Campaña KDE (ADR 0011): es la dep dura
|
||||
# de tesseract, y tesseract lo exige spectacle (`pkg_check_modules(TESSERACT REQUIRED tesseract)`, sin
|
||||
# flag para apagarlo).
|
||||
#
|
||||
# Wrapper zig PASS-THROUGH con "$@". Codecs recortados a los que ya tenemos en variantes .so/PIC:
|
||||
# libjpeg-turbo-shared + libpng-shared + zlib-shared. TIFF/WEBP/OPENJPEG/GIF OFF (no sellados) — tesseract
|
||||
# lee imágenes vía leptonica, y PNG/JPEG cubre el caso de spectacle (OCR sobre una captura de pantalla).
|
||||
name = "leptonica"
|
||||
version = "1.85.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/DanBloomberg/leptonica/releases/download/1.85.0/leptonica-1.85.0.tar.gz"
|
||||
sha256 = "3745ae3bf271a6801a2292eead83ac926e3a9bc1bf622e9cd4dd0f3786e17205"
|
||||
|
||||
[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-giflib --without-libwebp --without-libopenjpeg --without-libtiff'
|
||||
compile = 'make -j"$(nproc)"'
|
||||
install = "make DESTDIR=/out install && find /out -name '*.la' -delete"
|
||||
|
||||
[deps]
|
||||
build = ["pkgconf", "zlib-shared", "libpng-shared", "libjpeg-turbo-shared"]
|
||||
@@ -0,0 +1,78 @@
|
||||
# spectacle 6.7.2 — la herramienta de CAPTURA DE PANTALLA de Plasma. Campaña KDE (ADR 0011).
|
||||
#
|
||||
# ⛔ BLOCKER VIVO (dep no sellada): **KPipeWire**. `find_package(KPipeWire)` va sin REQUIRED y
|
||||
# set_package_properties lo marca TYPE REQUIRED (degradable con sed), PERO src/CMakeLists.txt:101 linkea
|
||||
# `K::KPipeWireRecord` INCONDICIONALMENTE ⇒ no hay forma de compilar sin él:
|
||||
# CMake Error: Target "spectacle" links to: K::KPipeWireRecord but the target was not found
|
||||
# Falta la cadena **pipewire → (ffmpeg, para KPipeWireRecord) → kpipewire**. Hasta sellarla, NO construye.
|
||||
#
|
||||
# TODO LO DEMÁS DE SU CADENA YA ESTÁ RESUELTO Y SELLADO en esta cola (por eso se commitea la receta):
|
||||
# - opencv (79526f4b, core+imgproc) — find_package(OpenCV 4.7 REQUIRED), lo usa src/QtCV.h
|
||||
# - prison-scanner (cbfd6dcc) + zxing-cpp (c98afd82) — spectacle corta con SEND_ERROR si falta
|
||||
# KF6::PrisonScanner, y el prison canónico va con WITH_ZXING=OFF/WITH_MULTIMEDIA=OFF
|
||||
# - tesseract (08c05238) + leptonica (e80a5d36) — pkg_check_modules(TESSERACT REQUIRED), OCR, sin flag
|
||||
# - kquickimageeditor (3d4bd904) — TYPE REQUIRED (recorte/anotación)
|
||||
# - xcb-util-cursor — sin él: "No suitable backend platform was found ... XCB-CURSOR"
|
||||
#
|
||||
# NO está en release-service (migró): vive en download.kde.org/stable/plasma/.
|
||||
# Captura en Wayland es notoriamente difícil: no hay X11 grab; va por protocolos de KWin
|
||||
# (plasma-wayland-protocols + layer-shell-qt) y/o portales.
|
||||
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
|
||||
# KPipeWire: find_package SIN REQUIRED pero set_package_properties lo marca TYPE REQUIRED ⇒ feature_summary
|
||||
# aborta. Sirve para GRABAR VIDEO de streams pipewire; spectacle es capturador de PANTALLA (imagen), así
|
||||
# que se degrada a OPTIONAL en vez de arrastrar toda la cadena PipeWire. Deuda: sin grabación de video.
|
||||
sed -i '/set_package_properties(KPipeWire/,/)/ 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",
|
||||
"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"]
|
||||
@@ -0,0 +1,44 @@
|
||||
# tesseract 5.5.0 — motor de OCR (libtesseract.so). Campaña KDE (ADR 0011): spectacle lo exige DURO —
|
||||
# `pkg_check_modules(TESSERACT REQUIRED IMPORTED_TARGET tesseract)` en CMakeLists:111, sin option() para
|
||||
# apagarlo (spectacle 6.7 hace OCR del texto de la captura).
|
||||
#
|
||||
# Wrapper zig PASS-THROUGH con "$@" (el clásico splitea args con espacios; ver opencv).
|
||||
# Sólo la lib: sin training tools (piden pango/cairo/icu), sin tests. Dep dura: leptonica.
|
||||
name = "tesseract"
|
||||
version = "5.5.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/tesseract-ocr/tesseract/archive/refs/tags/5.5.0.tar.gz"
|
||||
sha256 = "f2fb34ca035b6d087a42875a35a7a5c4155fa9979c6132365b1e5a28ebc3fc11"
|
||||
|
||||
[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
|
||||
exec /opt/zig/zig cc -mcpu=baseline "$@"
|
||||
W
|
||||
cat > "$ZW/cxx" <<'W'
|
||||
#!/bin/sh
|
||||
exec /opt/zig/zig c++ -mcpu=baseline "$@"
|
||||
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_TRAINING_TOOLS=OFF -DBUILD_TESTS=OFF -DDISABLE_CURL=ON -DDISABLE_ARCHIVE=ON \
|
||||
-DUSE_SYSTEM_ICU=OFF -DGRAPHICS_DISABLED=ON -DOPENMP_BUILD=OFF
|
||||
'''
|
||||
compile = "cmake --build build"
|
||||
install = "DESTDIR=/out cmake --install build"
|
||||
|
||||
[deps]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "leptonica", "zlib-shared", "libpng-shared",
|
||||
"libjpeg-turbo-shared"]
|
||||
Reference in New Issue
Block a user