gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1572Shell 203Rust 109Markdown 993728 Definitions

kde/Plasma: zxing-cpp 2.3.0 + prison-scanner (KF6PrisonScanner) — cadena de spectacle

zxing-cpp 2.3.0 (c98afd82) → libZXing.so: decodificador/codificador de códigos de barras y QR.
prison-scanner 6.27.0 (cbfd6dcc) → libKF6Prison.so.6 + **libKF6PrisonScanner.so.6**.

Por qué la variante: el prison canónico de esta cola se selló con WITH_ZXING=OFF/WITH_MULTIMEDIA=OFF ⇒ no
provee KF6::PrisonScanner, y spectacle corta el build en seco:
  if (NOT TARGET KF6::PrisonScanner) message(SEND_ERROR "Prison built without required PrisonScanner")
prison-scanner activa WITH_ZXING=ON + WITH_MULTIMEDIA=ON (qtmultimedia ya sellado). Nombre distinto para
NO re-hashear el prison que ya consumen plasma-workspace/plasma-nm — mismo patrón que kcoreaddons-QML /
kwindowsystem-QML / qcoro-shared.

GOTCHA zxing: hay que compilar **READERS *y* WRITERS**. Con ZXING_WRITERS=OFF el header ZXing/BitMatrix.h
ni se instala, y prison NO sólo escanea — también GENERA códigos (zxingutil.cpp/pdf417barcode.cpp lo
incluyen) ⇒ 'fatal error: ZXing/BitMatrix.h file not found'.

spectacle sigue sin construir: además exige (sin flag para apagarlos) pkg_check_modules(TESSERACT REQUIRED
tesseract) — OCR, arrastra leptonica — y kquickimageeditor TYPE REQUIRED.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

b68970675ba6a7c67d24648125c73645dd3039c0 · by sergio · (3 months ago) · parent e07e316c9 · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

2 files · +93 −0

diff --git a/recipes/incoming-kde/prison-scanner.toml b/recipes/incoming-kde/prison-scanner.toml
new file mode 100644
index 00000000..74d09546
--- /dev/null
+++ b/recipes/incoming-kde/prison-scanner.toml
@@ -0,0 +1,48 @@
+# prison-scanner 6.27.0 — variante de prison CON el componente **Scanner** (KF6PrisonScanner).
+# El prison canónico de esta cola se selló con WITH_ZXING=OFF/WITH_MULTIMEDIA=OFF (no había ZXing ni se
+# quería Qt Multimedia) ⇒ NO provee KF6::PrisonScanner. spectacle lo exige duro:
+#     if (NOT TARGET KF6::PrisonScanner) message(SEND_ERROR "Prison built without required PrisonScanner")
+# Esta variante activa WITH_ZXING=ON (receta zxing-cpp nueva) + WITH_MULTIMEDIA=ON (qtmultimedia ya
+# sellado). Nombre distinto para NO re-hashear el prison que ya consumen plasma-workspace/plasma-nm
+# (mismo patrón que kcoreaddons-QML / kwindowsystem-QML / qcoro-shared).
+name    = "prison-scanner"
+version = "6.27.0"
+
+[source]
+tarball = "https://download.kde.org/stable/frameworks/6.27/prison-6.27.0.tar.xz"
+sha256  = "760903e9ae401f8bcdb9efc9ad6548982642e7411a223c8ceb41e5491a6b1135"
+
+[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 \
+  -DWITH_DMTX=OFF -DWITH_ZXING=ON -DWITH_MULTIMEDIA=ON -DWITH_QUICK=ON \
+  -DBUILD_TESTING=OFF -DBUILD_PYTHON_BINDINGS=OFF
+'''
+compile = "cmake --build build"
+install = "DESTDIR=/out cmake --install build"
+
+# NOTA: falta "qrencode" en [deps].build (sellar primero, ver cabecera). Con él añadido, construye.
+[deps]
+build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "extra-cmake-modules", "qttools", "mesa", "libdrm", "libxkbcommon", "wayland", "gettext-tiny", "qtdeclarative", "qrencode", "zxing-cpp", "qtmultimedia"]
diff --git a/recipes/incoming-kde/zxing-cpp.toml b/recipes/incoming-kde/zxing-cpp.toml
new file mode 100644
index 00000000..f0635c0f
--- /dev/null
+++ b/recipes/incoming-kde/zxing-cpp.toml
@@ -0,0 +1,45 @@
+# zxing-cpp 2.3.0 — decodificador/codificador de códigos de barras y QR (libZXing.so). Campaña KDE
+# (ADR 0011): lo exige el componente **Scanner** de prison, y spectacle exige KF6::PrisonScanner
+# (`if (NOT TARGET KF6::PrisonScanner) message(SEND_ERROR ...)`).
+#
+# Wrapper zig PASS-THROUGH con "$@" (el clásico splitea args con espacios; ver opencv).
+# READERS **y** WRITERS: prison no sólo escanea, también GENERA códigos — su zxingutil.cpp/pdf417barcode.cpp
+# incluyen <ZXing/BitMatrix.h>, que es del lado writers; con ZXING_WRITERS=OFF ese header ni se instala.
+# Sin examples/tests/python.
+name    = "zxing-cpp"
+version = "2.3.0"
+
+[source]
+tarball = "https://github.com/zxing-cpp/zxing-cpp/archive/refs/tags/v2.3.0.tar.gz"
+sha256  = "64e4139103fdbc57752698ee15b5f0b0f7af9a0331ecbdc492047e0772c417ba"
+
+[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 \
+  -DZXING_READERS=ON -DZXING_WRITERS=ON -DZXING_EXAMPLES=OFF -DZXING_BLACKBOX_TESTS=OFF \
+  -DZXING_UNIT_TESTS=OFF -DZXING_PYTHON_MODULE=OFF -DZXING_C_API=OFF -DZXING_EXPERIMENTAL_API=OFF
+'''
+compile = "cmake --build build"
+install = "DESTDIR=/out cmake --install build"
+
+[deps]
+build = ["cmake", "samurai", "python3", "pkgconf"]