From 311a96bc94b43a25ce059978dbdd9da52cfbf7e2 Mon Sep 17 00:00:00 2001 From: vasilito Date: Sat, 11 Jul 2026 01:36:28 +0300 Subject: [PATCH] qt/qtsvg: apply CVE-2026-6210 patch (heap-overflow in QSvgMarker::drawHelper) Cherry-picked from Qt upstream (commit e488f852fa18c2afc2842a88eff8f66ad4105a45). Original patch source: https://download.qt.io/official_releases/qt/6.11/CVE-2026-6210-qtsvg-6.11.diff Fix: Test types of nodes before downcasting them. A bad cast in QSvgMarker::drawHelper led to endless recursion resulting in a heap overflow. While fixing that, another similar case was also fixed. --- build-live-redbear-full.log | 190 +++++++ local/patches/qtsvg/CVE-2026-6210.patch | 74 +++ local/recipes/dev/bison/source/doc/bison.info | 526 +++++++++--------- .../dev/bison/source/doc/bison.info.bak | 526 +++++++++--------- local/recipes/dev/bison/source/doc/stamp-vti | 2 +- .../recipes/dev/bison/source/doc/version.texi | 2 +- local/recipes/dev/flex/source/doc/flex.info | 460 +++++++-------- local/recipes/dev/flex/source/doc/flex.info-1 | 2 +- local/recipes/dev/flex/source/doc/stamp-vti | 2 +- .../recipes/dev/flex/source/doc/version.texi | 2 +- local/recipes/dev/m4/source/doc/m4.info | 218 ++++---- local/recipes/dev/m4/source/doc/m4.info-1 | 4 +- local/recipes/dev/m4/source/doc/m4.info-2 | 2 +- local/recipes/dev/m4/source/doc/stamp-vti | 2 +- local/recipes/dev/m4/source/doc/version.texi | 2 +- .../source/src/drivers/virtio/mod.rs | 58 +- .../kde/kwin/source/src/wayland/plasmashell.h | 11 + local/recipes/qt/qtsvg/recipe.toml | 3 + local/recipes/tools/diffutils/diffutils.patch | 66 +-- local/recipes/tools/diffutils/recipe.toml | 14 +- .../redbear-compositor/source/src/main.rs | 102 +++- recipes/wip/wayland/libwayland | 1 - recipes/wip/wayland/seatd-redox | 1 - recipes/wip/wayland/smallvil | 1 - recipes/wip/wayland/wayland-protocols | 1 - 25 files changed, 1326 insertions(+), 946 deletions(-) create mode 100644 build-live-redbear-full.log create mode 100644 local/patches/qtsvg/CVE-2026-6210.patch delete mode 120000 recipes/wip/wayland/libwayland delete mode 120000 recipes/wip/wayland/seatd-redox delete mode 120000 recipes/wip/wayland/smallvil delete mode 120000 recipes/wip/wayland/wayland-protocols diff --git a/build-live-redbear-full.log b/build-live-redbear-full.log new file mode 100644 index 0000000000..c501e38543 --- /dev/null +++ b/build-live-redbear-full.log @@ -0,0 +1,190 @@ +>>> Red Bear OS version: 0.3.0 (from git branch) +======================================== + Red Bear OS Build System +======================================== +Config: redbear-full +Jobs: 16 +Apply patches: 1 +Upstream: 0 +Root: RedBear-OS +======================================== + +>>> Skipping overlay repair (causes recipe symlink corruption) + +>>> Enforcing local-over-WIP recipe policy... + +>>> Stashing dirty fork sources (restored at exit)... + [clean] relibc + [clean] kernel + [clean] base + [clean] bootloader + [clean] installer + [clean] redoxfs + [clean] libredox + [clean] syscall + [clean] userutils + (all fork sources clean) +>>> Patches are applied by 'repo fetch' via recipe.toml (atomic mechanism) +>>> Skipping direct patch application (was bypassing cookbook atomicity) + +>>> Rebuilding cookbook binary (source changed: bf6ea09347e5 != b4eb7969b796)... + Finished `release` profile [optimized] target(s) in 0.18s +>>> Refreshing relibc staged surface for full desktop target... +DEBUG: auto_deps.toml reconstructed from repo depends (may miss ELF dynamic deps) +DEBUG: dependency blake3 hashes unchanged (content-based cache) +DEBUG: using cached build +cook relibc - cached +repo - publishing relibc +repo - generating repo.toml + +>>> WARNING: No AMD firmware blobs found. + Run: ./local/scripts/fetch-firmware.sh + GPU driver will NOT function without firmware. + +>>> Building Red Bear OS with config: redbear-full +>>> This may take 30-60 minutes on first build... +>>> Build preflight: redbear-full +>>> Preflight note: overlay integrity script reported legacy issues; continuing with build-focused checks. +>>> Preflight: fork versions verified against upstream. +=== Validating source trees for config: redbear-full === + MISSING: local/recipes/kde/plasma-desktop + MISSING: local/recipes/kde/plasma-framework + MISSING: local/recipes/kde/plasma-workspace + + Total (config): 158 + Present: 155 + Missing: 3 + +To restore: ./local/scripts/restore-sources.sh --release= +Source tree validation complete. +WARN: missing blake3 for tar recipe: local/recipes/dev/flex/recipe.toml +WARN: missing blake3 for tar recipe: local/recipes/libs/icu/recipe.toml +WARN: missing blake3 for tar recipe: local/recipes/kde/kde-cli-tools/recipe.toml +WARN: missing blake3 for tar recipe: local/recipes/kde/kglobalacceld/recipe.toml +WARN: missing blake3 for tar recipe: local/recipes/dev/m4/recipe.toml +WARN: missing blake3 for tar recipe: local/recipes/dev/meson/recipe.toml +WARN: missing blake3 for tar recipe: local/recipes/kde/plasma-desktop/recipe.toml +>>> Preflight note: relibc staged libc.so missing C++ strtold compatibility export; top-level build should refresh/sync it before compilation. +>>> Build preflight passed +Target version: 0.3.0 (from branch '0.3.0') +Cat 2 suffix: +rb0.3.0 + +=== Phase 1: Cat 1 — In-house crates === + DRIFT: firmware-loader 0.1.0 → 0.3.0 (local/recipes/system/firmware-loader/source/Cargo.toml) + +=== Phase 2: Cat 2 — Upstream forks === + +Cat 1: checked 75, drift 1 +Cat 2: checked 0, drift 0 +FAIL: 1 version drift(s) found +WARNING: In-house crate version drift detected. Run './local/scripts/sync-versions.sh' to fix. + Continuing build — versions will be corrected on next source fetch. +>>> Pre-cooking critical packages... + cooking llvm21... +./local/scripts/build-redbear.sh: строка 625: 4107958 Убито REDBEAR_BUILD_PHASE=pre-cook COOKBOOK_OFFLINE="$PRECOOK_OFFLINE" "$PROJECT_ROOT/target/release/repo" cook "$pkg" > "$log" 2>&1 +WARNING: pre-cook of llvm21 failed (non-fatal; will build during main phase). Tail of repo log: +[1516/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleContextTracker.cpp.o +[1517/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/OpenMPOpt.cpp.o +[1518/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleProfileMatcher.cpp.o +[1519/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/MemProfContextDisambiguation.cpp.o +[1520/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripDeadPrototypes.cpp.o +[1521/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleProfileProbe.cpp.o +[1522/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SCCP.cpp.o +[1523/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripSymbols.cpp.o +[1524/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleProfile.cpp.o +[1525/2555] Linking CXX static library lib/libLLVMLinker.a +[1526/2555] Linking CXX static library lib/libLLVMVectorize.a +[1527/2555] Building CXX object lib/ExecutionEngine/Orc/Shared/CMakeFiles/LLVMOrcShared.dir/MachOObjectFormat.cpp.o +[1528/2555] Building CXX object lib/ExecutionEngine/Orc/Shared/CMakeFiles/LLVMOrcShared.dir/ObjectFormats.cpp.o +[1529/2555] Building CXX object lib/ExecutionEngine/Orc/Shared/CMakeFiles/LLVMOrcShared.dir/AllocationActions.cpp.o +[1530/2555] Building CXX object lib/ExecutionEngine/Orc/Shared/CMakeFiles/LLVMOrcShared.dir/OrcError.cpp.o +[1531/2555] Building CXX object lib/ExecutionEngine/Orc/Shared/CMakeFiles/LLVMOrcShared.dir/OrcRTBridge.cpp.o +[1532/2555] Building CXX object lib/ExecutionEngine/Orc/Shared/CMakeFiles/LLVMOrcShared.dir/SimpleRemoteEPCUtils.cpp.o +[1533/2555] Building CXX object lib/ExecutionEngine/Orc/Shared/CMakeFiles/LLVMOrcShared.dir/SymbolStringPool.cpp.o +[1534/2555] Linking CXX static library lib/libLLVMSelectionDAG.a +[1535/2555] Building CXX object lib/IRPrinter/CMakeFiles/LLVMIRPrinter.dir/IRPrintingPasses.cpp.o +[1536/2555] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/CSEInfo.cpp.o +[1537/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ThinLTOBitcodeWriter.cpp.o +[1538/2555] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/CSEMIRBuilder.cpp.o +[1539/2555] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/GlobalISel.cpp.o +[1540/2555] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/CallLowering.cpp.o +[1541/2555] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/GISelValueTracking.cpp.o +[1542/2555] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/WholeProgramDevirt.cpp.o +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp: In function 'void llvm::updateIndexWPDForExports(ModuleSummaryIndex&, function_ref, std::map >&)': +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:967:11: warning: possibly dangling reference to a temporary [-Wdangling-reference] + 967 | auto &S = VI.getSummaryList()[0]; + | ^ +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:967:36: note: the temporary was destroyed at the end of the full expression '(& VI)->llvm::ValueInfo::getSummaryList().llvm::ArrayRef >::operator[](0)' + 967 | auto &S = VI.getSummaryList()[0]; + | ^ +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp: In function 'bool AddCalls({anonymous}::VTableSlotInfo&, const llvm::ValueInfo&)': +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:1297:9: warning: possibly dangling reference to a temporary [-Wdangling-reference] + 1297 | auto &S = Callee.getSummaryList()[0]; + | ^ +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:1297:38: note: the temporary was destroyed at the end of the full expression '(& Callee)->llvm::ValueInfo::getSummaryList().llvm::ArrayRef >::operator[](0)' + 1297 | auto &S = Callee.getSummaryList()[0]; + | ^ +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp: In member function 'bool {anonymous}::DevirtIndex::trySingleImplDevirt(llvm::MutableArrayRef, llvm::VTableSlotSummary&, {anonymous}::VTableSlotInfo&, llvm::WholeProgramDevirtResolution*, std::set&)': +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:1402:9: warning: possibly dangling reference to a temporary [-Wdangling-reference] + 1402 | auto &S = TheFn.getSummaryList()[0]; + | ^ +/mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/source/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:1402:37: note: the temporary was destroyed at the end of the full expression 'TheFn.llvm::ValueInfo::getSummaryList().llvm::ArrayRef >::operator[](0)' + 1402 | auto &S = TheFn.getSummaryList()[0]; + | ^ +[1543/2555] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/Combiner.cpp.o +[1544/2555] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/CombinerHelperArtifacts.cpp.o + cooking mesa... +./local/scripts/build-redbear.sh: строка 625: 4138939 Убито REDBEAR_BUILD_PHASE=pre-cook COOKBOOK_OFFLINE="$PRECOOK_OFFLINE" "$PROJECT_ROOT/target/release/repo" cook "$pkg" > "$log" 2>&1 +WARNING: pre-cook of mesa failed (non-fatal; will build during main phase). Tail of repo log: +-- Setting native build dir to /mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/target/x86_64-unknown-redox/build/NATIVE +-- Setting native stamp dir to /mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/target/x86_64-unknown-redox/build/NATIVE-stamps +-- Targeting X86 +-- Not building llvm-mt because libxml2 is not available +-- LLVM FileCheck Found: /home/kellito/.redoxer/x86_64-unknown-redox/toolchain/bin/FileCheck +-- Google Benchmark version: v0.0.0, normalized to 0.0.0 +-- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile +-- Performing Test HAVE_POSIX_REGEX -- success +-- Performing Test HAVE_STEADY_CLOCK -- success +-- Performing Test HAVE_PTHREAD_AFFINITY -- success +-- Configuring done (0.9s) +-- Generating done (0.8s) +-- Build files have been written to: /mnt/data/Builds/RedBear-OS/recipes/dev/llvm21/target/x86_64-unknown-redox/build ++ ninja -j4 +[1/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/CoroAnnotationElide.cpp.o +[2/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/Coroutines.cpp.o +[3/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/CoroCleanup.cpp.o +[4/989] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/MachineIRBuilder.cpp.o +[5/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/CoroConditionalWrapper.cpp.o +[6/989] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/Utils.cpp.o +[7/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/CoroEarly.cpp.o +[8/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/CoroElide.cpp.o +[9/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/SuspendCrossingInfo.cpp.o +[10/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/CoroFrame.cpp.o +[11/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/CoroSplit.cpp.o +[12/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/MaterializationUtils.cpp.o +[13/989] Building CXX object lib/Transforms/Coroutines/CMakeFiles/LLVMCoroutines.dir/SpillUtils.cpp.o +[14/989] Building CXX object lib/Transforms/CFGuard/CMakeFiles/LLVMCFGuard.dir/CFGuard.cpp.o +[15/989] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Arg.cpp.o +[16/989] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/ArgList.cpp.o +[17/989] Building COFFOptions.inc... +[18/989] Linking CXX static library lib/libLLVMOrcShared.a +[19/989] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Option.cpp.o +[20/989] Building CXX object lib/Transforms/HipStdPar/CMakeFiles/LLVMHipStdPar.dir/HipStdPar.cpp.o +[21/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/DefaultHostBootstrapValues.cpp.o +[22/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/JITLoaderGDB.cpp.o +[23/989] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/OptTable.cpp.o +[24/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/JITLoaderPerf.cpp.o +[25/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/JITLoaderVTune.cpp.o +[26/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/ExecutorSharedMemoryMapperService.cpp.o +[27/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/RegisterEHFrames.cpp.o +[28/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/SimpleExecutorDylibManager.cpp.o +[29/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/OrcRTBootstrap.cpp.o +[30/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/TargetExecutionUtils.cpp.o +[31/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/SimpleExecutorMemoryManager.cpp.o +[32/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/UnwindInfoManager.cpp.o +[33/989] Building CXX object lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/SimpleRemoteEPCServer.cpp.o +[34/989] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RTDyldMemoryManager.cpp.o +[35/989] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/JITSymbol.cpp.o +[36/989] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldCOFF.cpp.o + cooking libdrm... + cooking libepoxy... diff --git a/local/patches/qtsvg/CVE-2026-6210.patch b/local/patches/qtsvg/CVE-2026-6210.patch new file mode 100644 index 0000000000..0193ee3140 --- /dev/null +++ b/local/patches/qtsvg/CVE-2026-6210.patch @@ -0,0 +1,74 @@ +From 8368ba6ff143bd6b9a7fdf235918285d9b1f5d2a Mon Sep 17 00:00:00 2001 +From: Robert Löhning +Date: Thu, 26 Mar 2026 13:42:19 +0100 +Subject: [PATCH] Test types of nodes before downcasting them + +A bad cast in QSvgMarker::drawHelper lead to an endless recursion +resulting in a heap overflow. Credit to OSS-Fuzz which found this as +issue 496327371. + +Amends 534d072fe9c060ca3d1b968a717513426c69c956 + +While fixing that, I found another, similar case and fixed it, too, +although it didn't seem to cause a crash. + +Amends 29b848e9ac4e4e13c5b50116a81b1f2677196939 + +Pick-to: 6.8 +Change-Id: Ia57491aa329fea981307a709c5a6a750125fe2c7 +Reviewed-by: Hatem ElKharashy +(cherry picked from commit e488f852fa18c2afc2842a88eff8f66ad4105a45) +Reviewed-by: Qt Cherry-pick Bot +--- + +diff --git a/src/svg/qsvgstructure.cpp b/src/svg/qsvgstructure.cpp +index 23606e6..5bf485e 100644 +--- a/src/svg/qsvgstructure.cpp ++++ b/src/svg/qsvgstructure.cpp +@@ -426,9 +426,10 @@ + const bool isPainting = (boundingRect == nullptr); + const auto markers = markersForNode(node); + for (auto &i : markers) { +- QSvgMarker *markNode = static_cast(node->document()->namedNode(i.markerId)); +- if (!markNode) ++ QSvgNode *referencedNode = node->document()->namedNode(i.markerId); ++ if (!referencedNode || referencedNode->type() != QSvgNode::Marker) + continue; ++ QSvgMarker *markNode = static_cast(referencedNode); + + p->save(); + p->translate(i.x, i.y); +@@ -729,8 +730,9 @@ + + // Chrome seems to return the mask of the mask if a mask is set on the mask + if (this->hasMask()) { +- QSvgMask *maskNode = static_cast(document()->namedNode(this->maskId())); +- if (maskNode) { ++ QSvgNode *referencedNode = document()->namedNode(this->maskId()); ++ if (referencedNode && referencedNode->type() == QSvgNode::Mask) { ++ QSvgMask *maskNode = static_cast(referencedNode); + QRectF boundsRect; + return maskNode->createMask(p, states, localRect, &boundsRect); + } +diff --git a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp +index 118f200..7bbbedc 100644 +--- a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp ++++ b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp +@@ -1868,6 +1868,17 @@ + // runtime error: signed integer overflow: -2147483648 + -1 cannot be represented in type 'int' + QTest::newRow("excessive moveto in path") // id=406541912 + << R"()"_ba; ++ // Bad-cast to QSvgMarker from QSvgLine -> Heap-buffer-overflow ++ QTest::newRow("line-as-marker") // id=496327371 ++ << R"-()-"_ba; ++ QTest::newRow("line-as-mask") // modeled after 496327371 to test similar problem, needs UBSAN ++ << R"-( ++ ++ ++ ++ ++ ++ )-"_ba; + } + + void tst_QSvgRenderer::ossFuzzRender() diff --git a/local/recipes/dev/bison/source/doc/bison.info b/local/recipes/dev/bison/source/doc/bison.info index 2e0fd584cd..cccddf1a88 100644 --- a/local/recipes/dev/bison/source/doc/bison.info +++ b/local/recipes/dev/bison/source/doc/bison.info @@ -1,6 +1,6 @@ This is bison.info, produced by makeinfo version 7.3 from bison.texi. -This manual (5 July 2026) is for GNU Bison (version 3.8.2), the GNU +This manual (10 July 2026) is for GNU Bison (version 3.8.2), the GNU parser generator. Copyright © 1988-1993, 1995, 1998-2015, 2018-2021 Free Software @@ -28,7 +28,7 @@ File: bison.info, Node: Top, Next: Introduction, Up: (dir) Bison ***** -This manual (5 July 2026) is for GNU Bison (version 3.8.2), the GNU +This manual (10 July 2026) is for GNU Bison (version 3.8.2), the GNU parser generator. Copyright © 1988-1993, 1995, 1998-2015, 2018-2021 Free Software @@ -16180,267 +16180,267 @@ Index of Terms  Tag Table: -Node: Top1040 -Node: Introduction18154 -Node: Conditions19727 -Node: Copying21636 -Node: Concepts59175 -Node: Language and Grammar60367 -Node: Grammar in Bison66345 -Node: Semantic Values68261 -Node: Semantic Actions70389 -Node: GLR Parsers71566 -Node: Simple GLR Parsers74339 -Node: Merging GLR Parses80810 -Ref: Merging GLR Parses-Footnote-186139 -Node: GLR Semantic Actions86280 -Node: Semantic Predicates88877 -Node: Locations91330 -Node: Bison Parser92808 -Node: Stages96001 -Node: Grammar Layout97226 -Node: Examples98588 -Node: RPN Calc100075 -Ref: RPN Calc-Footnote-1101127 -Node: Rpcalc Declarations101205 -Node: Rpcalc Rules103257 -Node: Rpcalc Input105148 -Node: Rpcalc Line106714 -Node: Rpcalc Exp107862 -Node: Rpcalc Lexer109871 -Node: Rpcalc Main112564 -Node: Rpcalc Error112975 -Node: Rpcalc Generate114003 -Node: Rpcalc Compile115247 -Node: Infix Calc116211 -Ref: Infix Calc-Footnote-1119054 -Node: Simple Error Recovery119207 -Node: Location Tracking Calc121142 -Node: Ltcalc Declarations121842 -Node: Ltcalc Rules122937 -Node: Ltcalc Lexer124777 -Node: Multi-function Calc127114 -Ref: Multi-function Calc-Footnote-1128891 -Node: Mfcalc Declarations128969 -Node: Mfcalc Rules130993 -Node: Mfcalc Symbol Table132271 -Node: Mfcalc Lexer135731 -Node: Mfcalc Main138304 -Node: Exercises139180 -Node: Grammar File139707 -Node: Grammar Outline140557 -Node: Prologue141415 -Node: Prologue Alternatives143214 -Ref: Prologue Alternatives-Footnote-1152898 -Node: Bison Declarations153003 -Node: Grammar Rules153413 -Node: Epilogue153869 -Node: Symbols154920 -Node: Rules161943 -Node: Rules Syntax162258 -Node: Empty Rules164323 -Node: Recursion165410 -Node: Semantics167068 -Node: Value Type168374 -Node: Multiple Types169658 -Node: Type Generation171108 -Node: Union Decl173038 -Node: Structured Value Type174431 -Node: Actions175457 -Node: Action Types179329 -Node: Midrule Actions180682 -Node: Using Midrule Actions181336 -Node: Typed Midrule Actions184873 -Node: Midrule Action Translation186421 -Node: Midrule Conflicts188913 -Node: Tracking Locations191522 -Node: Location Type192254 -Node: Actions and Locations193777 -Node: Printing Locations196159 -Node: Location Default Action196919 -Node: Named References200452 -Node: Declarations203048 -Node: Require Decl204735 -Node: Token Decl205249 -Node: Precedence Decl208162 -Node: Type Decl210438 -Node: Symbol Decls211389 -Node: Initial Action Decl212344 -Node: Destructor Decl213157 -Node: Printer Decl218801 -Node: Expect Decl221070 -Node: Start Decl225067 -Node: Pure Decl225461 -Node: Push Decl227209 -Node: Decl Summary231642 -Ref: %header234319 -Node: %define Summary242648 -Ref: api-filename-type244557 -Ref: api-token-prefix255495 -Node: %code Summary267498 -Node: Multiple Parsers271750 -Node: Interface275605 -Node: Parser Function276712 -Node: Push Parser Interface279203 -Ref: yypstate_new279588 -Ref: yypstate_delete280029 -Ref: yypush_parse280443 -Ref: yypull_parse281455 -Node: Lexical282458 -Node: Calling Convention284033 -Node: Special Tokens285562 -Node: Tokens from Literals286997 -Node: Token Values288078 -Node: Token Locations289242 -Node: Pure Calling290174 -Node: Error Reporting292771 -Node: Error Reporting Function293294 -Node: Syntax Error Reporting Function296664 -Node: Action Features301265 -Node: Internationalization305605 -Node: Enabling I18n306457 -Node: Token I18n308567 -Node: Algorithm309958 -Node: Lookahead312372 -Node: Shift/Reduce314582 -Node: Precedence318637 -Node: Why Precedence319409 -Node: Using Precedence321324 -Node: Precedence Only322820 -Node: Precedence Examples324622 -Node: How Precedence325146 -Node: Non Operators326287 -Node: Contextual Precedence327848 -Node: Parser States329590 -Node: Reduce/Reduce330839 -Node: Mysterious Conflicts335642 -Node: Tuning LR339264 -Node: LR Table Construction340464 -Node: Default Reductions346076 -Node: LAC350863 -Node: Unreachable States356363 -Node: Generalized LR Parsing358366 -Node: Memory Management362744 -Node: Error Recovery365128 -Node: Context Dependency370404 -Node: Semantic Tokens371257 -Node: Lexical Tie-ins374325 -Node: Tie-in Recovery375781 -Node: Debugging377911 -Node: Counterexamples379374 -Node: Understanding385376 -Ref: state-8392088 -Node: Graphviz397639 -Node: Xml401956 -Node: Tracing403694 -Node: Enabling Traces404067 -Node: Mfcalc Traces408193 -Node: Invocation413400 -Node: Bison Options415502 -Node: Operation Modes416349 -Node: Diagnostics422058 -Ref: Wconflicts-sr422366 -Ref: Wconflicts-rr422390 -Ref: Wcounterexamples422778 -Ref: Wdangling-alias423091 -Ref: Wdeprecated424416 -Ref: Wempty-rule424540 -Ref: Wmidrule-values424752 -Ref: Wprecedence425463 -Ref: Wyacc426597 -Ref: Wother426659 -Ref: Wall426963 -Ref: Wnone427083 -Ref: Werror427359 -Node: Tuning the Parser429164 -Ref: option-yacc432576 -Ref: Tuning the Parser-Footnote-1434425 -Node: Output Files434491 -Node: Option Cross Key437760 -Node: Yacc Library439898 -Node: Other Languages440965 -Node: C++ Parsers441588 -Node: A Simple C++ Example442317 -Ref: A Simple C++ Example-Footnote-1446467 -Node: C++ Bison Interface446550 -Node: C++ Parser Interface448140 -Node: C++ Semantic Values452723 -Node: C++ Unions453273 -Node: C++ Variants454066 -Node: C++ Location Values457827 -Node: C++ position458766 -Node: C++ location461135 -Node: Exposing the Location Classes463325 -Node: User Defined Location Type465218 -Node: C++ Parser Context466797 -Node: C++ Scanner Interface470760 -Node: Split Symbols471328 -Node: Complete Symbols473063 -Node: A Complete C++ Example477814 -Node: Calc++ --- C++ Calculator478757 -Node: Calc++ Parsing Driver479278 -Node: Calc++ Parser482241 -Node: Calc++ Scanner486356 -Node: Calc++ Top Level490299 -Node: D Parsers490998 -Node: D Bison Interface491702 -Node: D Semantic Values492815 -Node: D Location Values493646 -Node: D Parser Interface494517 -Node: D Parser Context Interface499433 -Node: D Scanner Interface500876 -Node: D Action Features503816 -Node: D Push Parser Interface504585 -Node: D Complete Symbols506059 -Node: Java Parsers506775 -Node: Java Bison Interface507591 -Node: Java Semantic Values509774 -Node: Java Location Values511469 -Node: Java Parser Interface513067 -Node: Java Parser Context Interface518322 -Node: Java Scanner Interface520407 -Node: Java Action Features524479 -Node: Java Push Parser Interface527230 -Node: Java Differences530223 -Ref: Java Differences-Footnote-1532886 -Node: Java Declarations Summary533040 -Node: History538073 -Node: Yacc538529 -Ref: Yacc-Footnote-1540022 -Ref: Yacc-Footnote-2540245 -Node: yacchack540315 -Node: Byacc540738 -Node: Bison541551 -Node: Other Ungulates543559 -Node: Versioning544139 -Node: FAQ547562 -Node: Memory Exhausted548589 -Node: How Can I Reset the Parser548891 -Node: Strings are Destroyed551483 -Node: Implementing Gotos/Loops553184 -Node: Multiple start-symbols554475 -Node: Secure? Conform?556055 -Node: Enabling Relocatability556505 -Node: I can't build Bison559423 -Node: Where can I find help?560683 -Node: Bug Reports561476 -Node: More Languages562951 -Node: Beta Testing563286 -Node: Mailing Lists564160 -Node: Table of Symbols564372 -Node: Glossary581398 -Node: GNU Free Documentation License591676 -Node: Bibliography616829 -Ref: Corbett 1984616969 -Ref: Denny 2008617320 -Ref: Denny 2010 May617642 -Ref: Denny 2010 November617917 -Ref: DeRemer 1982618253 -Ref: Isradisaikul 2015618523 -Ref: Johnson 1978618848 -Ref: Knuth 1965619113 -Ref: Scott 2000619347 -Node: Index of Terms619664 +Node: Top1041 +Node: Introduction18156 +Node: Conditions19729 +Node: Copying21638 +Node: Concepts59177 +Node: Language and Grammar60369 +Node: Grammar in Bison66347 +Node: Semantic Values68263 +Node: Semantic Actions70391 +Node: GLR Parsers71568 +Node: Simple GLR Parsers74341 +Node: Merging GLR Parses80812 +Ref: Merging GLR Parses-Footnote-186141 +Node: GLR Semantic Actions86282 +Node: Semantic Predicates88879 +Node: Locations91332 +Node: Bison Parser92810 +Node: Stages96003 +Node: Grammar Layout97228 +Node: Examples98590 +Node: RPN Calc100077 +Ref: RPN Calc-Footnote-1101129 +Node: Rpcalc Declarations101207 +Node: Rpcalc Rules103259 +Node: Rpcalc Input105150 +Node: Rpcalc Line106716 +Node: Rpcalc Exp107864 +Node: Rpcalc Lexer109873 +Node: Rpcalc Main112566 +Node: Rpcalc Error112977 +Node: Rpcalc Generate114005 +Node: Rpcalc Compile115249 +Node: Infix Calc116213 +Ref: Infix Calc-Footnote-1119056 +Node: Simple Error Recovery119209 +Node: Location Tracking Calc121144 +Node: Ltcalc Declarations121844 +Node: Ltcalc Rules122939 +Node: Ltcalc Lexer124779 +Node: Multi-function Calc127116 +Ref: Multi-function Calc-Footnote-1128893 +Node: Mfcalc Declarations128971 +Node: Mfcalc Rules130995 +Node: Mfcalc Symbol Table132273 +Node: Mfcalc Lexer135733 +Node: Mfcalc Main138306 +Node: Exercises139182 +Node: Grammar File139709 +Node: Grammar Outline140559 +Node: Prologue141417 +Node: Prologue Alternatives143216 +Ref: Prologue Alternatives-Footnote-1152900 +Node: Bison Declarations153005 +Node: Grammar Rules153415 +Node: Epilogue153871 +Node: Symbols154922 +Node: Rules161945 +Node: Rules Syntax162260 +Node: Empty Rules164325 +Node: Recursion165412 +Node: Semantics167070 +Node: Value Type168376 +Node: Multiple Types169660 +Node: Type Generation171110 +Node: Union Decl173040 +Node: Structured Value Type174433 +Node: Actions175459 +Node: Action Types179331 +Node: Midrule Actions180684 +Node: Using Midrule Actions181338 +Node: Typed Midrule Actions184875 +Node: Midrule Action Translation186423 +Node: Midrule Conflicts188915 +Node: Tracking Locations191524 +Node: Location Type192256 +Node: Actions and Locations193779 +Node: Printing Locations196161 +Node: Location Default Action196921 +Node: Named References200454 +Node: Declarations203050 +Node: Require Decl204737 +Node: Token Decl205251 +Node: Precedence Decl208164 +Node: Type Decl210440 +Node: Symbol Decls211391 +Node: Initial Action Decl212346 +Node: Destructor Decl213159 +Node: Printer Decl218803 +Node: Expect Decl221072 +Node: Start Decl225069 +Node: Pure Decl225463 +Node: Push Decl227211 +Node: Decl Summary231644 +Ref: %header234321 +Node: %define Summary242650 +Ref: api-filename-type244559 +Ref: api-token-prefix255497 +Node: %code Summary267500 +Node: Multiple Parsers271752 +Node: Interface275607 +Node: Parser Function276714 +Node: Push Parser Interface279205 +Ref: yypstate_new279590 +Ref: yypstate_delete280031 +Ref: yypush_parse280445 +Ref: yypull_parse281457 +Node: Lexical282460 +Node: Calling Convention284035 +Node: Special Tokens285564 +Node: Tokens from Literals286999 +Node: Token Values288080 +Node: Token Locations289244 +Node: Pure Calling290176 +Node: Error Reporting292773 +Node: Error Reporting Function293296 +Node: Syntax Error Reporting Function296666 +Node: Action Features301267 +Node: Internationalization305607 +Node: Enabling I18n306459 +Node: Token I18n308569 +Node: Algorithm309960 +Node: Lookahead312374 +Node: Shift/Reduce314584 +Node: Precedence318639 +Node: Why Precedence319411 +Node: Using Precedence321326 +Node: Precedence Only322822 +Node: Precedence Examples324624 +Node: How Precedence325148 +Node: Non Operators326289 +Node: Contextual Precedence327850 +Node: Parser States329592 +Node: Reduce/Reduce330841 +Node: Mysterious Conflicts335644 +Node: Tuning LR339266 +Node: LR Table Construction340466 +Node: Default Reductions346078 +Node: LAC350865 +Node: Unreachable States356365 +Node: Generalized LR Parsing358368 +Node: Memory Management362746 +Node: Error Recovery365130 +Node: Context Dependency370406 +Node: Semantic Tokens371259 +Node: Lexical Tie-ins374327 +Node: Tie-in Recovery375783 +Node: Debugging377913 +Node: Counterexamples379376 +Node: Understanding385378 +Ref: state-8392090 +Node: Graphviz397641 +Node: Xml401958 +Node: Tracing403696 +Node: Enabling Traces404069 +Node: Mfcalc Traces408195 +Node: Invocation413402 +Node: Bison Options415504 +Node: Operation Modes416351 +Node: Diagnostics422060 +Ref: Wconflicts-sr422368 +Ref: Wconflicts-rr422392 +Ref: Wcounterexamples422780 +Ref: Wdangling-alias423093 +Ref: Wdeprecated424418 +Ref: Wempty-rule424542 +Ref: Wmidrule-values424754 +Ref: Wprecedence425465 +Ref: Wyacc426599 +Ref: Wother426661 +Ref: Wall426965 +Ref: Wnone427085 +Ref: Werror427361 +Node: Tuning the Parser429166 +Ref: option-yacc432578 +Ref: Tuning the Parser-Footnote-1434427 +Node: Output Files434493 +Node: Option Cross Key437762 +Node: Yacc Library439900 +Node: Other Languages440967 +Node: C++ Parsers441590 +Node: A Simple C++ Example442319 +Ref: A Simple C++ Example-Footnote-1446469 +Node: C++ Bison Interface446552 +Node: C++ Parser Interface448142 +Node: C++ Semantic Values452725 +Node: C++ Unions453275 +Node: C++ Variants454068 +Node: C++ Location Values457829 +Node: C++ position458768 +Node: C++ location461137 +Node: Exposing the Location Classes463327 +Node: User Defined Location Type465220 +Node: C++ Parser Context466799 +Node: C++ Scanner Interface470762 +Node: Split Symbols471330 +Node: Complete Symbols473065 +Node: A Complete C++ Example477816 +Node: Calc++ --- C++ Calculator478759 +Node: Calc++ Parsing Driver479280 +Node: Calc++ Parser482243 +Node: Calc++ Scanner486358 +Node: Calc++ Top Level490301 +Node: D Parsers491000 +Node: D Bison Interface491704 +Node: D Semantic Values492817 +Node: D Location Values493648 +Node: D Parser Interface494519 +Node: D Parser Context Interface499435 +Node: D Scanner Interface500878 +Node: D Action Features503818 +Node: D Push Parser Interface504587 +Node: D Complete Symbols506061 +Node: Java Parsers506777 +Node: Java Bison Interface507593 +Node: Java Semantic Values509776 +Node: Java Location Values511471 +Node: Java Parser Interface513069 +Node: Java Parser Context Interface518324 +Node: Java Scanner Interface520409 +Node: Java Action Features524481 +Node: Java Push Parser Interface527232 +Node: Java Differences530225 +Ref: Java Differences-Footnote-1532888 +Node: Java Declarations Summary533042 +Node: History538075 +Node: Yacc538531 +Ref: Yacc-Footnote-1540024 +Ref: Yacc-Footnote-2540247 +Node: yacchack540317 +Node: Byacc540740 +Node: Bison541553 +Node: Other Ungulates543561 +Node: Versioning544141 +Node: FAQ547564 +Node: Memory Exhausted548591 +Node: How Can I Reset the Parser548893 +Node: Strings are Destroyed551485 +Node: Implementing Gotos/Loops553186 +Node: Multiple start-symbols554477 +Node: Secure? Conform?556057 +Node: Enabling Relocatability556507 +Node: I can't build Bison559425 +Node: Where can I find help?560685 +Node: Bug Reports561478 +Node: More Languages562953 +Node: Beta Testing563288 +Node: Mailing Lists564162 +Node: Table of Symbols564374 +Node: Glossary581400 +Node: GNU Free Documentation License591678 +Node: Bibliography616831 +Ref: Corbett 1984616971 +Ref: Denny 2008617322 +Ref: Denny 2010 May617644 +Ref: Denny 2010 November617919 +Ref: DeRemer 1982618255 +Ref: Isradisaikul 2015618525 +Ref: Johnson 1978618850 +Ref: Knuth 1965619115 +Ref: Scott 2000619349 +Node: Index of Terms619666  End Tag Table diff --git a/local/recipes/dev/bison/source/doc/bison.info.bak b/local/recipes/dev/bison/source/doc/bison.info.bak index 2e0fd584cd..cccddf1a88 100644 --- a/local/recipes/dev/bison/source/doc/bison.info.bak +++ b/local/recipes/dev/bison/source/doc/bison.info.bak @@ -1,6 +1,6 @@ This is bison.info, produced by makeinfo version 7.3 from bison.texi. -This manual (5 July 2026) is for GNU Bison (version 3.8.2), the GNU +This manual (10 July 2026) is for GNU Bison (version 3.8.2), the GNU parser generator. Copyright © 1988-1993, 1995, 1998-2015, 2018-2021 Free Software @@ -28,7 +28,7 @@ File: bison.info, Node: Top, Next: Introduction, Up: (dir) Bison ***** -This manual (5 July 2026) is for GNU Bison (version 3.8.2), the GNU +This manual (10 July 2026) is for GNU Bison (version 3.8.2), the GNU parser generator. Copyright © 1988-1993, 1995, 1998-2015, 2018-2021 Free Software @@ -16180,267 +16180,267 @@ Index of Terms  Tag Table: -Node: Top1040 -Node: Introduction18154 -Node: Conditions19727 -Node: Copying21636 -Node: Concepts59175 -Node: Language and Grammar60367 -Node: Grammar in Bison66345 -Node: Semantic Values68261 -Node: Semantic Actions70389 -Node: GLR Parsers71566 -Node: Simple GLR Parsers74339 -Node: Merging GLR Parses80810 -Ref: Merging GLR Parses-Footnote-186139 -Node: GLR Semantic Actions86280 -Node: Semantic Predicates88877 -Node: Locations91330 -Node: Bison Parser92808 -Node: Stages96001 -Node: Grammar Layout97226 -Node: Examples98588 -Node: RPN Calc100075 -Ref: RPN Calc-Footnote-1101127 -Node: Rpcalc Declarations101205 -Node: Rpcalc Rules103257 -Node: Rpcalc Input105148 -Node: Rpcalc Line106714 -Node: Rpcalc Exp107862 -Node: Rpcalc Lexer109871 -Node: Rpcalc Main112564 -Node: Rpcalc Error112975 -Node: Rpcalc Generate114003 -Node: Rpcalc Compile115247 -Node: Infix Calc116211 -Ref: Infix Calc-Footnote-1119054 -Node: Simple Error Recovery119207 -Node: Location Tracking Calc121142 -Node: Ltcalc Declarations121842 -Node: Ltcalc Rules122937 -Node: Ltcalc Lexer124777 -Node: Multi-function Calc127114 -Ref: Multi-function Calc-Footnote-1128891 -Node: Mfcalc Declarations128969 -Node: Mfcalc Rules130993 -Node: Mfcalc Symbol Table132271 -Node: Mfcalc Lexer135731 -Node: Mfcalc Main138304 -Node: Exercises139180 -Node: Grammar File139707 -Node: Grammar Outline140557 -Node: Prologue141415 -Node: Prologue Alternatives143214 -Ref: Prologue Alternatives-Footnote-1152898 -Node: Bison Declarations153003 -Node: Grammar Rules153413 -Node: Epilogue153869 -Node: Symbols154920 -Node: Rules161943 -Node: Rules Syntax162258 -Node: Empty Rules164323 -Node: Recursion165410 -Node: Semantics167068 -Node: Value Type168374 -Node: Multiple Types169658 -Node: Type Generation171108 -Node: Union Decl173038 -Node: Structured Value Type174431 -Node: Actions175457 -Node: Action Types179329 -Node: Midrule Actions180682 -Node: Using Midrule Actions181336 -Node: Typed Midrule Actions184873 -Node: Midrule Action Translation186421 -Node: Midrule Conflicts188913 -Node: Tracking Locations191522 -Node: Location Type192254 -Node: Actions and Locations193777 -Node: Printing Locations196159 -Node: Location Default Action196919 -Node: Named References200452 -Node: Declarations203048 -Node: Require Decl204735 -Node: Token Decl205249 -Node: Precedence Decl208162 -Node: Type Decl210438 -Node: Symbol Decls211389 -Node: Initial Action Decl212344 -Node: Destructor Decl213157 -Node: Printer Decl218801 -Node: Expect Decl221070 -Node: Start Decl225067 -Node: Pure Decl225461 -Node: Push Decl227209 -Node: Decl Summary231642 -Ref: %header234319 -Node: %define Summary242648 -Ref: api-filename-type244557 -Ref: api-token-prefix255495 -Node: %code Summary267498 -Node: Multiple Parsers271750 -Node: Interface275605 -Node: Parser Function276712 -Node: Push Parser Interface279203 -Ref: yypstate_new279588 -Ref: yypstate_delete280029 -Ref: yypush_parse280443 -Ref: yypull_parse281455 -Node: Lexical282458 -Node: Calling Convention284033 -Node: Special Tokens285562 -Node: Tokens from Literals286997 -Node: Token Values288078 -Node: Token Locations289242 -Node: Pure Calling290174 -Node: Error Reporting292771 -Node: Error Reporting Function293294 -Node: Syntax Error Reporting Function296664 -Node: Action Features301265 -Node: Internationalization305605 -Node: Enabling I18n306457 -Node: Token I18n308567 -Node: Algorithm309958 -Node: Lookahead312372 -Node: Shift/Reduce314582 -Node: Precedence318637 -Node: Why Precedence319409 -Node: Using Precedence321324 -Node: Precedence Only322820 -Node: Precedence Examples324622 -Node: How Precedence325146 -Node: Non Operators326287 -Node: Contextual Precedence327848 -Node: Parser States329590 -Node: Reduce/Reduce330839 -Node: Mysterious Conflicts335642 -Node: Tuning LR339264 -Node: LR Table Construction340464 -Node: Default Reductions346076 -Node: LAC350863 -Node: Unreachable States356363 -Node: Generalized LR Parsing358366 -Node: Memory Management362744 -Node: Error Recovery365128 -Node: Context Dependency370404 -Node: Semantic Tokens371257 -Node: Lexical Tie-ins374325 -Node: Tie-in Recovery375781 -Node: Debugging377911 -Node: Counterexamples379374 -Node: Understanding385376 -Ref: state-8392088 -Node: Graphviz397639 -Node: Xml401956 -Node: Tracing403694 -Node: Enabling Traces404067 -Node: Mfcalc Traces408193 -Node: Invocation413400 -Node: Bison Options415502 -Node: Operation Modes416349 -Node: Diagnostics422058 -Ref: Wconflicts-sr422366 -Ref: Wconflicts-rr422390 -Ref: Wcounterexamples422778 -Ref: Wdangling-alias423091 -Ref: Wdeprecated424416 -Ref: Wempty-rule424540 -Ref: Wmidrule-values424752 -Ref: Wprecedence425463 -Ref: Wyacc426597 -Ref: Wother426659 -Ref: Wall426963 -Ref: Wnone427083 -Ref: Werror427359 -Node: Tuning the Parser429164 -Ref: option-yacc432576 -Ref: Tuning the Parser-Footnote-1434425 -Node: Output Files434491 -Node: Option Cross Key437760 -Node: Yacc Library439898 -Node: Other Languages440965 -Node: C++ Parsers441588 -Node: A Simple C++ Example442317 -Ref: A Simple C++ Example-Footnote-1446467 -Node: C++ Bison Interface446550 -Node: C++ Parser Interface448140 -Node: C++ Semantic Values452723 -Node: C++ Unions453273 -Node: C++ Variants454066 -Node: C++ Location Values457827 -Node: C++ position458766 -Node: C++ location461135 -Node: Exposing the Location Classes463325 -Node: User Defined Location Type465218 -Node: C++ Parser Context466797 -Node: C++ Scanner Interface470760 -Node: Split Symbols471328 -Node: Complete Symbols473063 -Node: A Complete C++ Example477814 -Node: Calc++ --- C++ Calculator478757 -Node: Calc++ Parsing Driver479278 -Node: Calc++ Parser482241 -Node: Calc++ Scanner486356 -Node: Calc++ Top Level490299 -Node: D Parsers490998 -Node: D Bison Interface491702 -Node: D Semantic Values492815 -Node: D Location Values493646 -Node: D Parser Interface494517 -Node: D Parser Context Interface499433 -Node: D Scanner Interface500876 -Node: D Action Features503816 -Node: D Push Parser Interface504585 -Node: D Complete Symbols506059 -Node: Java Parsers506775 -Node: Java Bison Interface507591 -Node: Java Semantic Values509774 -Node: Java Location Values511469 -Node: Java Parser Interface513067 -Node: Java Parser Context Interface518322 -Node: Java Scanner Interface520407 -Node: Java Action Features524479 -Node: Java Push Parser Interface527230 -Node: Java Differences530223 -Ref: Java Differences-Footnote-1532886 -Node: Java Declarations Summary533040 -Node: History538073 -Node: Yacc538529 -Ref: Yacc-Footnote-1540022 -Ref: Yacc-Footnote-2540245 -Node: yacchack540315 -Node: Byacc540738 -Node: Bison541551 -Node: Other Ungulates543559 -Node: Versioning544139 -Node: FAQ547562 -Node: Memory Exhausted548589 -Node: How Can I Reset the Parser548891 -Node: Strings are Destroyed551483 -Node: Implementing Gotos/Loops553184 -Node: Multiple start-symbols554475 -Node: Secure? Conform?556055 -Node: Enabling Relocatability556505 -Node: I can't build Bison559423 -Node: Where can I find help?560683 -Node: Bug Reports561476 -Node: More Languages562951 -Node: Beta Testing563286 -Node: Mailing Lists564160 -Node: Table of Symbols564372 -Node: Glossary581398 -Node: GNU Free Documentation License591676 -Node: Bibliography616829 -Ref: Corbett 1984616969 -Ref: Denny 2008617320 -Ref: Denny 2010 May617642 -Ref: Denny 2010 November617917 -Ref: DeRemer 1982618253 -Ref: Isradisaikul 2015618523 -Ref: Johnson 1978618848 -Ref: Knuth 1965619113 -Ref: Scott 2000619347 -Node: Index of Terms619664 +Node: Top1041 +Node: Introduction18156 +Node: Conditions19729 +Node: Copying21638 +Node: Concepts59177 +Node: Language and Grammar60369 +Node: Grammar in Bison66347 +Node: Semantic Values68263 +Node: Semantic Actions70391 +Node: GLR Parsers71568 +Node: Simple GLR Parsers74341 +Node: Merging GLR Parses80812 +Ref: Merging GLR Parses-Footnote-186141 +Node: GLR Semantic Actions86282 +Node: Semantic Predicates88879 +Node: Locations91332 +Node: Bison Parser92810 +Node: Stages96003 +Node: Grammar Layout97228 +Node: Examples98590 +Node: RPN Calc100077 +Ref: RPN Calc-Footnote-1101129 +Node: Rpcalc Declarations101207 +Node: Rpcalc Rules103259 +Node: Rpcalc Input105150 +Node: Rpcalc Line106716 +Node: Rpcalc Exp107864 +Node: Rpcalc Lexer109873 +Node: Rpcalc Main112566 +Node: Rpcalc Error112977 +Node: Rpcalc Generate114005 +Node: Rpcalc Compile115249 +Node: Infix Calc116213 +Ref: Infix Calc-Footnote-1119056 +Node: Simple Error Recovery119209 +Node: Location Tracking Calc121144 +Node: Ltcalc Declarations121844 +Node: Ltcalc Rules122939 +Node: Ltcalc Lexer124779 +Node: Multi-function Calc127116 +Ref: Multi-function Calc-Footnote-1128893 +Node: Mfcalc Declarations128971 +Node: Mfcalc Rules130995 +Node: Mfcalc Symbol Table132273 +Node: Mfcalc Lexer135733 +Node: Mfcalc Main138306 +Node: Exercises139182 +Node: Grammar File139709 +Node: Grammar Outline140559 +Node: Prologue141417 +Node: Prologue Alternatives143216 +Ref: Prologue Alternatives-Footnote-1152900 +Node: Bison Declarations153005 +Node: Grammar Rules153415 +Node: Epilogue153871 +Node: Symbols154922 +Node: Rules161945 +Node: Rules Syntax162260 +Node: Empty Rules164325 +Node: Recursion165412 +Node: Semantics167070 +Node: Value Type168376 +Node: Multiple Types169660 +Node: Type Generation171110 +Node: Union Decl173040 +Node: Structured Value Type174433 +Node: Actions175459 +Node: Action Types179331 +Node: Midrule Actions180684 +Node: Using Midrule Actions181338 +Node: Typed Midrule Actions184875 +Node: Midrule Action Translation186423 +Node: Midrule Conflicts188915 +Node: Tracking Locations191524 +Node: Location Type192256 +Node: Actions and Locations193779 +Node: Printing Locations196161 +Node: Location Default Action196921 +Node: Named References200454 +Node: Declarations203050 +Node: Require Decl204737 +Node: Token Decl205251 +Node: Precedence Decl208164 +Node: Type Decl210440 +Node: Symbol Decls211391 +Node: Initial Action Decl212346 +Node: Destructor Decl213159 +Node: Printer Decl218803 +Node: Expect Decl221072 +Node: Start Decl225069 +Node: Pure Decl225463 +Node: Push Decl227211 +Node: Decl Summary231644 +Ref: %header234321 +Node: %define Summary242650 +Ref: api-filename-type244559 +Ref: api-token-prefix255497 +Node: %code Summary267500 +Node: Multiple Parsers271752 +Node: Interface275607 +Node: Parser Function276714 +Node: Push Parser Interface279205 +Ref: yypstate_new279590 +Ref: yypstate_delete280031 +Ref: yypush_parse280445 +Ref: yypull_parse281457 +Node: Lexical282460 +Node: Calling Convention284035 +Node: Special Tokens285564 +Node: Tokens from Literals286999 +Node: Token Values288080 +Node: Token Locations289244 +Node: Pure Calling290176 +Node: Error Reporting292773 +Node: Error Reporting Function293296 +Node: Syntax Error Reporting Function296666 +Node: Action Features301267 +Node: Internationalization305607 +Node: Enabling I18n306459 +Node: Token I18n308569 +Node: Algorithm309960 +Node: Lookahead312374 +Node: Shift/Reduce314584 +Node: Precedence318639 +Node: Why Precedence319411 +Node: Using Precedence321326 +Node: Precedence Only322822 +Node: Precedence Examples324624 +Node: How Precedence325148 +Node: Non Operators326289 +Node: Contextual Precedence327850 +Node: Parser States329592 +Node: Reduce/Reduce330841 +Node: Mysterious Conflicts335644 +Node: Tuning LR339266 +Node: LR Table Construction340466 +Node: Default Reductions346078 +Node: LAC350865 +Node: Unreachable States356365 +Node: Generalized LR Parsing358368 +Node: Memory Management362746 +Node: Error Recovery365130 +Node: Context Dependency370406 +Node: Semantic Tokens371259 +Node: Lexical Tie-ins374327 +Node: Tie-in Recovery375783 +Node: Debugging377913 +Node: Counterexamples379376 +Node: Understanding385378 +Ref: state-8392090 +Node: Graphviz397641 +Node: Xml401958 +Node: Tracing403696 +Node: Enabling Traces404069 +Node: Mfcalc Traces408195 +Node: Invocation413402 +Node: Bison Options415504 +Node: Operation Modes416351 +Node: Diagnostics422060 +Ref: Wconflicts-sr422368 +Ref: Wconflicts-rr422392 +Ref: Wcounterexamples422780 +Ref: Wdangling-alias423093 +Ref: Wdeprecated424418 +Ref: Wempty-rule424542 +Ref: Wmidrule-values424754 +Ref: Wprecedence425465 +Ref: Wyacc426599 +Ref: Wother426661 +Ref: Wall426965 +Ref: Wnone427085 +Ref: Werror427361 +Node: Tuning the Parser429166 +Ref: option-yacc432578 +Ref: Tuning the Parser-Footnote-1434427 +Node: Output Files434493 +Node: Option Cross Key437762 +Node: Yacc Library439900 +Node: Other Languages440967 +Node: C++ Parsers441590 +Node: A Simple C++ Example442319 +Ref: A Simple C++ Example-Footnote-1446469 +Node: C++ Bison Interface446552 +Node: C++ Parser Interface448142 +Node: C++ Semantic Values452725 +Node: C++ Unions453275 +Node: C++ Variants454068 +Node: C++ Location Values457829 +Node: C++ position458768 +Node: C++ location461137 +Node: Exposing the Location Classes463327 +Node: User Defined Location Type465220 +Node: C++ Parser Context466799 +Node: C++ Scanner Interface470762 +Node: Split Symbols471330 +Node: Complete Symbols473065 +Node: A Complete C++ Example477816 +Node: Calc++ --- C++ Calculator478759 +Node: Calc++ Parsing Driver479280 +Node: Calc++ Parser482243 +Node: Calc++ Scanner486358 +Node: Calc++ Top Level490301 +Node: D Parsers491000 +Node: D Bison Interface491704 +Node: D Semantic Values492817 +Node: D Location Values493648 +Node: D Parser Interface494519 +Node: D Parser Context Interface499435 +Node: D Scanner Interface500878 +Node: D Action Features503818 +Node: D Push Parser Interface504587 +Node: D Complete Symbols506061 +Node: Java Parsers506777 +Node: Java Bison Interface507593 +Node: Java Semantic Values509776 +Node: Java Location Values511471 +Node: Java Parser Interface513069 +Node: Java Parser Context Interface518324 +Node: Java Scanner Interface520409 +Node: Java Action Features524481 +Node: Java Push Parser Interface527232 +Node: Java Differences530225 +Ref: Java Differences-Footnote-1532888 +Node: Java Declarations Summary533042 +Node: History538075 +Node: Yacc538531 +Ref: Yacc-Footnote-1540024 +Ref: Yacc-Footnote-2540247 +Node: yacchack540317 +Node: Byacc540740 +Node: Bison541553 +Node: Other Ungulates543561 +Node: Versioning544141 +Node: FAQ547564 +Node: Memory Exhausted548591 +Node: How Can I Reset the Parser548893 +Node: Strings are Destroyed551485 +Node: Implementing Gotos/Loops553186 +Node: Multiple start-symbols554477 +Node: Secure? Conform?556057 +Node: Enabling Relocatability556507 +Node: I can't build Bison559425 +Node: Where can I find help?560685 +Node: Bug Reports561478 +Node: More Languages562953 +Node: Beta Testing563288 +Node: Mailing Lists564162 +Node: Table of Symbols564374 +Node: Glossary581400 +Node: GNU Free Documentation License591678 +Node: Bibliography616831 +Ref: Corbett 1984616971 +Ref: Denny 2008617322 +Ref: Denny 2010 May617644 +Ref: Denny 2010 November617919 +Ref: DeRemer 1982618255 +Ref: Isradisaikul 2015618525 +Ref: Johnson 1978618850 +Ref: Knuth 1965619115 +Ref: Scott 2000619349 +Node: Index of Terms619666  End Tag Table diff --git a/local/recipes/dev/bison/source/doc/stamp-vti b/local/recipes/dev/bison/source/doc/stamp-vti index 7250b55d08..fdc9d20c9d 100644 --- a/local/recipes/dev/bison/source/doc/stamp-vti +++ b/local/recipes/dev/bison/source/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 5 July 2026 +@set UPDATED 10 July 2026 @set UPDATED-MONTH July 2026 @set EDITION 3.8.2 @set VERSION 3.8.2 diff --git a/local/recipes/dev/bison/source/doc/version.texi b/local/recipes/dev/bison/source/doc/version.texi index 7250b55d08..fdc9d20c9d 100644 --- a/local/recipes/dev/bison/source/doc/version.texi +++ b/local/recipes/dev/bison/source/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 5 July 2026 +@set UPDATED 10 July 2026 @set UPDATED-MONTH July 2026 @set EDITION 3.8.2 @set VERSION 3.8.2 diff --git a/local/recipes/dev/flex/source/doc/flex.info b/local/recipes/dev/flex/source/doc/flex.info index 30c02398b3..f5e8d559db 100644 --- a/local/recipes/dev/flex/source/doc/flex.info +++ b/local/recipes/dev/flex/source/doc/flex.info @@ -43,240 +43,240 @@ END-INFO-DIR-ENTRY  Indirect: flex.info-1: 1620 -flex.info-2: 324917 +flex.info-2: 324918  Tag Table: (Indirect) Node: Top1620 -Node: Copyright7694 -Node: Reporting Bugs9211 -Node: Introduction9471 -Node: Simple Examples10328 -Node: Format13771 -Node: Definitions Section14192 -Ref: Definitions Section-Footnote-116550 -Node: Rules Section16626 -Node: User Code Section17800 -Node: Comments in the Input18246 -Node: Patterns19651 -Ref: case and character ranges26973 -Node: Matching31202 -Node: Actions34639 -Node: Generated Scanner43962 -Node: Start Conditions49185 -Node: Multiple Input Buffers60101 -Ref: Scanning Strings66886 -Node: EOF68579 -Node: Misc Macros70215 -Node: User Values73173 -Node: Yacc75614 -Node: Scanner Options76575 -Node: Options for Specifying Filenames79407 -Ref: option-header79633 -Ref: option-outfile80379 -Ref: option-stdout80744 -Node: Options Affecting Scanner Behavior81763 -Ref: option-case-insensitive82004 -Ref: option-lex-compat82461 -Ref: option-batch83033 -Ref: option-interactive83588 -Ref: option-7bit84990 -Ref: option-8bit86358 -Ref: option-default86798 -Ref: option-always-interactive86870 -Ref: option-posix87498 -Ref: option-stack88711 -Ref: option-stdinit88827 -Ref: option-yylineno89350 -Ref: option-yywrap89829 -Node: Code-Level And API Options90120 -Ref: option-ansi-definitions90347 -Ref: option-ansi-prototypes90430 -Ref: option-bison-bridge90511 -Ref: option-bison-locations90876 -Ref: option-noline91164 -Ref: option-reentrant91714 -Ref: option-c++92346 -Ref: option-array92480 -Ref: option-pointer92586 -Ref: option-prefix92733 -Ref: option-main94325 -Ref: option-nounistd94529 -Ref: option-yyclass95068 -Node: Options for Scanner Speed and Size95596 -Ref: option-align96158 -Ref: option-ecs96668 -Ref: option-meta-ecs97751 -Ref: option-read98259 -Ref: option-full100222 -Ref: option-fast100437 -Node: Debugging Options101389 -Ref: option-backup101576 -Ref: option-debug102145 -Ref: option-perf-report102887 -Ref: option-nodefault103545 -Ref: option-trace103875 -Ref: option-nowarn104190 -Ref: option-verbose104266 -Ref: option-warn104723 -Node: Miscellaneous Options104950 -Node: Performance105434 -Node: Cxx115909 -Node: Reentrant124503 -Node: Reentrant Uses125197 -Node: Reentrant Overview126812 -Node: Reentrant Example127650 -Node: Reentrant Detail128458 -Node: Specify Reentrant128895 -Node: Extra Reentrant Argument129557 -Node: Global Replacement130869 -Node: Init and Destroy Functions132160 -Node: Accessor Methods134796 -Node: Extra Data136183 -Node: About yyscan_t138510 -Node: Reentrant Functions138919 -Ref: bison-functions140420 -Node: Lex and Posix141191 -Node: Memory Management149030 -Ref: memory-management149176 -Node: The Default Memory Management149404 -Ref: The Default Memory Management-Footnote-1153240 -Node: Overriding The Default Memory Management153393 -Ref: Overriding The Default Memory Management-Footnote-1155904 -Node: A Note About yytext And Memory156080 -Node: Serialized Tables157324 -Ref: serialization157468 -Node: Creating Serialized Tables158238 -Node: Loading and Unloading Serialized Tables159885 -Node: Tables File Format161694 -Node: Diagnostics169019 -Node: Limitations172584 -Node: Bibliography174608 -Node: FAQ175290 -Node: When was flex born?179534 -Node: How do I expand backslash-escape sequences in C-style quoted strings?179915 -Node: Why do flex scanners call fileno if it is not ANSI compatible?181230 -Node: Does flex support recursive pattern definitions?182071 -Node: How do I skip huge chunks of input (tens of megabytes) while using flex?182922 -Node: Flex is not matching my patterns in the same order that I defined them.183401 -Node: My actions are executing out of order or sometimes not at all.185187 -Node: How can I have multiple input sources feed into the same scanner at the same time?185982 -Node: Can I build nested parsers that work with the same input file?188033 -Node: How can I match text only at the end of a file?189060 -Node: How can I make REJECT cascade across start condition boundaries?189876 -Node: Why cant I use fast or full tables with interactive mode?190902 -Node: How much faster is -F or -f than -C?192159 -Node: If I have a simple grammar cant I just parse it with flex?192471 -Node: Why doesn't yyrestart() set the start state back to INITIAL?192953 -Node: How can I match C-style comments?193588 -Node: The period isn't working the way I expected.194398 -Node: Can I get the flex manual in another format?195735 -Node: Does there exist a "faster" NDFA->DFA algorithm?196233 -Node: How does flex compile the DFA so quickly?196743 -Node: How can I use more than 8192 rules?197713 -Node: How do I abandon a file in the middle of a scan and switch to a new file?199135 -Node: How do I execute code only during initialization (only before the first scan)?199701 -Node: How do I execute code at termination?200491 -Node: Where else can I find help?200821 -Node: Can I include comments in the "rules" section of the file?201195 -Node: I get an error about undefined yywrap().201575 -Node: How can I change the matching pattern at run time?202063 -Node: How can I expand macros in the input?202425 -Node: How can I build a two-pass scanner?203462 -Node: How do I match any string not matched in the preceding rules?204380 -Node: I am trying to port code from AT&T lex that uses yysptr and yysbuf.205301 -Node: Is there a way to make flex treat NULL like a regular character?206120 -Node: Whenever flex can not match the input it says "flex scanner jammed".206652 -Node: Why doesn't flex have non-greedy operators like perl does?207304 -Node: Memory leak - 16386 bytes allocated by malloc.208669 -Ref: faq-memory-leak208967 -Node: How do I track the byte offset for lseek()?209966 -Node: How do I use my own I/O classes in a C++ scanner?211523 -Node: How do I skip as many chars as possible?212386 -Node: deleteme00213461 -Node: Are certain equivalent patterns faster than others?213906 -Node: Is backing up a big deal?217394 -Node: Can I fake multi-byte character support?219365 -Node: deleteme01220841 -Node: Can you discuss some flex internals?221965 -Node: unput() messes up yy_at_bol224254 -Node: The | operator is not doing what I want225391 -Node: Why can't flex understand this variable trailing context pattern?226982 -Node: The ^ operator isn't working228246 -Node: Trailing context is getting confused with trailing optional patterns229516 -Node: Is flex GNU or not?230784 -Node: ERASEME53232497 -Node: I need to scan if-then-else blocks and while loops233292 -Node: ERASEME55234511 -Node: ERASEME56235624 -Node: ERASEME57237017 -Node: Is there a repository for flex scanners?238050 -Node: How can I conditionally compile or preprocess my flex input file?238366 -Node: Where can I find grammars for lex and yacc?238839 -Node: I get an end-of-buffer message for each character scanned.239186 -Node: unnamed-faq-62239781 -Node: unnamed-faq-63240829 -Node: unnamed-faq-64242141 -Node: unnamed-faq-65243142 -Node: unnamed-faq-66243943 -Node: unnamed-faq-67245073 -Node: unnamed-faq-68246075 -Node: unnamed-faq-69247232 -Node: unnamed-faq-70247965 -Node: unnamed-faq-71248741 -Node: unnamed-faq-72249970 -Node: unnamed-faq-73251038 -Node: unnamed-faq-74251982 -Node: unnamed-faq-75252952 -Node: unnamed-faq-76254124 -Node: unnamed-faq-77254845 -Node: unnamed-faq-78255753 -Node: unnamed-faq-79256766 -Node: unnamed-faq-80258501 -Node: unnamed-faq-81259844 -Node: unnamed-faq-82262684 -Node: unnamed-faq-83263666 -Node: unnamed-faq-84265471 -Node: unnamed-faq-85266589 -Node: unnamed-faq-86267636 -Node: unnamed-faq-87268609 -Node: unnamed-faq-88269270 -Node: unnamed-faq-90270126 -Node: unnamed-faq-91271424 -Node: unnamed-faq-92273907 -Node: unnamed-faq-93274421 -Node: unnamed-faq-94275363 -Node: unnamed-faq-95276805 -Node: unnamed-faq-96278338 -Node: unnamed-faq-97279122 -Node: unnamed-faq-98279804 -Node: unnamed-faq-99280494 -Node: unnamed-faq-100281453 -Node: unnamed-faq-101282178 -Node: What is the difference between YYLEX_PARAM and YY_DECL?283011 -Node: Why do I get "conflicting types for yylex" error?283535 -Node: How do I access the values set in a Flex action from within a Bison action?284065 -Node: Appendices284494 -Node: Makefiles and Flex284703 -Ref: Makefiles and Flex-Footnote-1288049 -Ref: Makefiles and Flex-Footnote-2288174 -Ref: Makefiles and Flex-Footnote-3288365 -Node: Bison Bridge288416 -Ref: Bison Bridge-Footnote-1291217 -Node: M4 Dependency291409 -Ref: M4 Dependency-Footnote-1292903 -Node: Common Patterns293039 -Node: Numbers293330 -Node: Identifiers294323 -Node: Quoted Constructs295154 -Node: Addresses296228 -Node: Indices297548 -Node: Concept Index297786 -Node: Index of Functions and Macros324917 -Node: Index of Variables329886 -Node: Index of Data Types331552 -Node: Index of Hooks332440 -Node: Index of Scanner Options333008 +Node: Copyright7695 +Node: Reporting Bugs9212 +Node: Introduction9472 +Node: Simple Examples10329 +Node: Format13772 +Node: Definitions Section14193 +Ref: Definitions Section-Footnote-116551 +Node: Rules Section16627 +Node: User Code Section17801 +Node: Comments in the Input18247 +Node: Patterns19652 +Ref: case and character ranges26974 +Node: Matching31203 +Node: Actions34640 +Node: Generated Scanner43963 +Node: Start Conditions49186 +Node: Multiple Input Buffers60102 +Ref: Scanning Strings66887 +Node: EOF68580 +Node: Misc Macros70216 +Node: User Values73174 +Node: Yacc75615 +Node: Scanner Options76576 +Node: Options for Specifying Filenames79408 +Ref: option-header79634 +Ref: option-outfile80380 +Ref: option-stdout80745 +Node: Options Affecting Scanner Behavior81764 +Ref: option-case-insensitive82005 +Ref: option-lex-compat82462 +Ref: option-batch83034 +Ref: option-interactive83589 +Ref: option-7bit84991 +Ref: option-8bit86359 +Ref: option-default86799 +Ref: option-always-interactive86871 +Ref: option-posix87499 +Ref: option-stack88712 +Ref: option-stdinit88828 +Ref: option-yylineno89351 +Ref: option-yywrap89830 +Node: Code-Level And API Options90121 +Ref: option-ansi-definitions90348 +Ref: option-ansi-prototypes90431 +Ref: option-bison-bridge90512 +Ref: option-bison-locations90877 +Ref: option-noline91165 +Ref: option-reentrant91715 +Ref: option-c++92347 +Ref: option-array92481 +Ref: option-pointer92587 +Ref: option-prefix92734 +Ref: option-main94326 +Ref: option-nounistd94530 +Ref: option-yyclass95069 +Node: Options for Scanner Speed and Size95597 +Ref: option-align96159 +Ref: option-ecs96669 +Ref: option-meta-ecs97752 +Ref: option-read98260 +Ref: option-full100223 +Ref: option-fast100438 +Node: Debugging Options101390 +Ref: option-backup101577 +Ref: option-debug102146 +Ref: option-perf-report102888 +Ref: option-nodefault103546 +Ref: option-trace103876 +Ref: option-nowarn104191 +Ref: option-verbose104267 +Ref: option-warn104724 +Node: Miscellaneous Options104951 +Node: Performance105435 +Node: Cxx115910 +Node: Reentrant124504 +Node: Reentrant Uses125198 +Node: Reentrant Overview126813 +Node: Reentrant Example127651 +Node: Reentrant Detail128459 +Node: Specify Reentrant128896 +Node: Extra Reentrant Argument129558 +Node: Global Replacement130870 +Node: Init and Destroy Functions132161 +Node: Accessor Methods134797 +Node: Extra Data136184 +Node: About yyscan_t138511 +Node: Reentrant Functions138920 +Ref: bison-functions140421 +Node: Lex and Posix141192 +Node: Memory Management149031 +Ref: memory-management149177 +Node: The Default Memory Management149405 +Ref: The Default Memory Management-Footnote-1153241 +Node: Overriding The Default Memory Management153394 +Ref: Overriding The Default Memory Management-Footnote-1155905 +Node: A Note About yytext And Memory156081 +Node: Serialized Tables157325 +Ref: serialization157469 +Node: Creating Serialized Tables158239 +Node: Loading and Unloading Serialized Tables159886 +Node: Tables File Format161695 +Node: Diagnostics169020 +Node: Limitations172585 +Node: Bibliography174609 +Node: FAQ175291 +Node: When was flex born?179535 +Node: How do I expand backslash-escape sequences in C-style quoted strings?179916 +Node: Why do flex scanners call fileno if it is not ANSI compatible?181231 +Node: Does flex support recursive pattern definitions?182072 +Node: How do I skip huge chunks of input (tens of megabytes) while using flex?182923 +Node: Flex is not matching my patterns in the same order that I defined them.183402 +Node: My actions are executing out of order or sometimes not at all.185188 +Node: How can I have multiple input sources feed into the same scanner at the same time?185983 +Node: Can I build nested parsers that work with the same input file?188034 +Node: How can I match text only at the end of a file?189061 +Node: How can I make REJECT cascade across start condition boundaries?189877 +Node: Why cant I use fast or full tables with interactive mode?190903 +Node: How much faster is -F or -f than -C?192160 +Node: If I have a simple grammar cant I just parse it with flex?192472 +Node: Why doesn't yyrestart() set the start state back to INITIAL?192954 +Node: How can I match C-style comments?193589 +Node: The period isn't working the way I expected.194399 +Node: Can I get the flex manual in another format?195736 +Node: Does there exist a "faster" NDFA->DFA algorithm?196234 +Node: How does flex compile the DFA so quickly?196744 +Node: How can I use more than 8192 rules?197714 +Node: How do I abandon a file in the middle of a scan and switch to a new file?199136 +Node: How do I execute code only during initialization (only before the first scan)?199702 +Node: How do I execute code at termination?200492 +Node: Where else can I find help?200822 +Node: Can I include comments in the "rules" section of the file?201196 +Node: I get an error about undefined yywrap().201576 +Node: How can I change the matching pattern at run time?202064 +Node: How can I expand macros in the input?202426 +Node: How can I build a two-pass scanner?203463 +Node: How do I match any string not matched in the preceding rules?204381 +Node: I am trying to port code from AT&T lex that uses yysptr and yysbuf.205302 +Node: Is there a way to make flex treat NULL like a regular character?206121 +Node: Whenever flex can not match the input it says "flex scanner jammed".206653 +Node: Why doesn't flex have non-greedy operators like perl does?207305 +Node: Memory leak - 16386 bytes allocated by malloc.208670 +Ref: faq-memory-leak208968 +Node: How do I track the byte offset for lseek()?209967 +Node: How do I use my own I/O classes in a C++ scanner?211524 +Node: How do I skip as many chars as possible?212387 +Node: deleteme00213462 +Node: Are certain equivalent patterns faster than others?213907 +Node: Is backing up a big deal?217395 +Node: Can I fake multi-byte character support?219366 +Node: deleteme01220842 +Node: Can you discuss some flex internals?221966 +Node: unput() messes up yy_at_bol224255 +Node: The | operator is not doing what I want225392 +Node: Why can't flex understand this variable trailing context pattern?226983 +Node: The ^ operator isn't working228247 +Node: Trailing context is getting confused with trailing optional patterns229517 +Node: Is flex GNU or not?230785 +Node: ERASEME53232498 +Node: I need to scan if-then-else blocks and while loops233293 +Node: ERASEME55234512 +Node: ERASEME56235625 +Node: ERASEME57237018 +Node: Is there a repository for flex scanners?238051 +Node: How can I conditionally compile or preprocess my flex input file?238367 +Node: Where can I find grammars for lex and yacc?238840 +Node: I get an end-of-buffer message for each character scanned.239187 +Node: unnamed-faq-62239782 +Node: unnamed-faq-63240830 +Node: unnamed-faq-64242142 +Node: unnamed-faq-65243143 +Node: unnamed-faq-66243944 +Node: unnamed-faq-67245074 +Node: unnamed-faq-68246076 +Node: unnamed-faq-69247233 +Node: unnamed-faq-70247966 +Node: unnamed-faq-71248742 +Node: unnamed-faq-72249971 +Node: unnamed-faq-73251039 +Node: unnamed-faq-74251983 +Node: unnamed-faq-75252953 +Node: unnamed-faq-76254125 +Node: unnamed-faq-77254846 +Node: unnamed-faq-78255754 +Node: unnamed-faq-79256767 +Node: unnamed-faq-80258502 +Node: unnamed-faq-81259845 +Node: unnamed-faq-82262685 +Node: unnamed-faq-83263667 +Node: unnamed-faq-84265472 +Node: unnamed-faq-85266590 +Node: unnamed-faq-86267637 +Node: unnamed-faq-87268610 +Node: unnamed-faq-88269271 +Node: unnamed-faq-90270127 +Node: unnamed-faq-91271425 +Node: unnamed-faq-92273908 +Node: unnamed-faq-93274422 +Node: unnamed-faq-94275364 +Node: unnamed-faq-95276806 +Node: unnamed-faq-96278339 +Node: unnamed-faq-97279123 +Node: unnamed-faq-98279805 +Node: unnamed-faq-99280495 +Node: unnamed-faq-100281454 +Node: unnamed-faq-101282179 +Node: What is the difference between YYLEX_PARAM and YY_DECL?283012 +Node: Why do I get "conflicting types for yylex" error?283536 +Node: How do I access the values set in a Flex action from within a Bison action?284066 +Node: Appendices284495 +Node: Makefiles and Flex284704 +Ref: Makefiles and Flex-Footnote-1288050 +Ref: Makefiles and Flex-Footnote-2288175 +Ref: Makefiles and Flex-Footnote-3288366 +Node: Bison Bridge288417 +Ref: Bison Bridge-Footnote-1291218 +Node: M4 Dependency291410 +Ref: M4 Dependency-Footnote-1292904 +Node: Common Patterns293040 +Node: Numbers293331 +Node: Identifiers294324 +Node: Quoted Constructs295155 +Node: Addresses296229 +Node: Indices297549 +Node: Concept Index297787 +Node: Index of Functions and Macros324918 +Node: Index of Variables329887 +Node: Index of Data Types331553 +Node: Index of Hooks332441 +Node: Index of Scanner Options333009  End Tag Table diff --git a/local/recipes/dev/flex/source/doc/flex.info-1 b/local/recipes/dev/flex/source/doc/flex.info-1 index d2bce03a4e..09f3895497 100644 --- a/local/recipes/dev/flex/source/doc/flex.info-1 +++ b/local/recipes/dev/flex/source/doc/flex.info-1 @@ -51,7 +51,7 @@ perform pattern-matching on text. The manual includes both tutorial and reference sections. This edition of ‘The flex Manual’ documents ‘flex’ version 2.6.4. It -was last updated on 5 July 2026. +was last updated on 10 July 2026. This manual was written by Vern Paxson, Will Estes and John Millaway. diff --git a/local/recipes/dev/flex/source/doc/stamp-vti b/local/recipes/dev/flex/source/doc/stamp-vti index fa9747afac..cac414550d 100644 --- a/local/recipes/dev/flex/source/doc/stamp-vti +++ b/local/recipes/dev/flex/source/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 5 July 2026 +@set UPDATED 10 July 2026 @set UPDATED-MONTH July 2026 @set EDITION 2.6.4 @set VERSION 2.6.4 diff --git a/local/recipes/dev/flex/source/doc/version.texi b/local/recipes/dev/flex/source/doc/version.texi index fa9747afac..cac414550d 100644 --- a/local/recipes/dev/flex/source/doc/version.texi +++ b/local/recipes/dev/flex/source/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 5 July 2026 +@set UPDATED 10 July 2026 @set UPDATED-MONTH July 2026 @set EDITION 2.6.4 @set VERSION 2.6.4 diff --git a/local/recipes/dev/m4/source/doc/m4.info b/local/recipes/dev/m4/source/doc/m4.info index dea73747f6..617808345d 100644 --- a/local/recipes/dev/m4/source/doc/m4.info +++ b/local/recipes/dev/m4/source/doc/m4.info @@ -1,6 +1,6 @@ This is m4.info, produced by makeinfo version 7.3 from m4.texi. -This manual (5 July 2026) is for GNU M4 (version 1.4.21), a package +This manual (10 July 2026) is for GNU M4 (version 1.4.21), a package containing an implementation of the m4 macro language. Copyright © 1989-1994, 2004-2014, 2016-2017, 2020-2026 Free Software @@ -19,117 +19,117 @@ END-INFO-DIR-ENTRY  Indirect: -m4.info-1: 828 -m4.info-2: 317295 +m4.info-1: 829 +m4.info-2: 317298  Tag Table: (Indirect) -Node: Top828 -Node: Preliminaries9770 -Node: Intro10476 -Node: History12167 -Node: Bugs16220 -Node: Manual17483 -Node: Invoking m420986 -Node: Operation modes23190 -Node: Preprocessor features26289 -Node: Limits control29459 -Node: Frozen state33470 -Node: Debugging options34309 -Node: Command line files36361 -Node: Syntax38012 -Node: Names39167 -Node: Quoted strings39649 -Node: Comments40316 -Node: Other tokens41219 -Node: Input processing41813 -Ref: Input processing-Footnote-150250 -Node: Macros50447 -Node: Invocation50941 -Node: Inhibiting Invocation51742 -Node: Macro Arguments55984 -Node: Quoting Arguments59104 -Node: Macro expansion61240 -Node: Definitions61958 -Node: Define62743 -Node: Arguments65261 -Node: Pseudo Arguments69027 -Node: Undefine72656 -Node: Defn73815 -Node: Pushdef78878 -Node: Indir81618 -Node: Builtin83785 -Node: Conditionals86060 -Node: Ifdef87006 -Node: Ifelse87888 -Node: Shift91274 -Node: Forloop102094 -Node: Foreach104775 -Node: Stacks110397 -Node: Composition113532 -Node: Debugging121209 -Node: Dumpdef121802 -Node: Trace123220 -Node: Debug Levels126872 -Node: Debug Output131742 -Node: Input Control133055 -Node: Dnl133596 -Node: Changequote135538 -Node: Changecom145270 -Node: Changeword149156 -Node: M4wrap154761 -Node: File Inclusion158846 -Node: Include159167 -Node: Search Path161984 -Node: Diversions162933 -Node: Divert164640 -Node: Undivert167206 -Node: Divnum170591 -Node: Cleardivert171064 -Node: Text handling172285 -Node: Len173012 -Node: Index macro173406 -Node: Regexp174299 -Node: Substr177460 -Node: Translit178518 -Node: Patsubst181309 -Node: Format185950 -Node: Arithmetic189358 -Node: Incr189811 -Node: Eval191486 -Node: Shell commands200230 -Node: Platform macros201168 -Node: Syscmd203370 -Node: Esyscmd205745 -Node: Sysval207328 -Node: Mkstemp209295 -Node: Miscellaneous213352 -Node: Errprint213789 -Node: Location215041 -Node: M4exit217918 -Node: Frozen files220044 -Node: Using frozen files220842 -Node: Frozen file format224223 -Node: Compatibility227373 -Node: Extensions228455 -Node: Incompatibilities232509 -Node: Other Incompatibilities241813 -Node: Answers244543 -Node: Improved exch245357 -Node: Improved forloop245910 -Node: Improved foreach251366 -Node: Improved copy264744 -Node: Improved m4wrap268801 -Node: Improved cleardivert271297 -Node: Improved capitalize272295 -Node: Improved fatal_error277331 -Node: Copying This Package278428 -Node: GNU General Public License278907 -Node: Copying This Manual317295 -Node: GNU Free Documentation License317819 -Node: Indices342943 -Node: Macro index343227 -Node: Concept index349837 +Node: Top829 +Node: Preliminaries9772 +Node: Intro10478 +Node: History12169 +Node: Bugs16222 +Node: Manual17485 +Node: Invoking m420988 +Node: Operation modes23192 +Node: Preprocessor features26291 +Node: Limits control29461 +Node: Frozen state33472 +Node: Debugging options34311 +Node: Command line files36363 +Node: Syntax38014 +Node: Names39169 +Node: Quoted strings39651 +Node: Comments40318 +Node: Other tokens41221 +Node: Input processing41815 +Ref: Input processing-Footnote-150252 +Node: Macros50449 +Node: Invocation50943 +Node: Inhibiting Invocation51744 +Node: Macro Arguments55986 +Node: Quoting Arguments59106 +Node: Macro expansion61242 +Node: Definitions61960 +Node: Define62745 +Node: Arguments65263 +Node: Pseudo Arguments69029 +Node: Undefine72658 +Node: Defn73817 +Node: Pushdef78880 +Node: Indir81620 +Node: Builtin83787 +Node: Conditionals86062 +Node: Ifdef87008 +Node: Ifelse87890 +Node: Shift91276 +Node: Forloop102096 +Node: Foreach104777 +Node: Stacks110399 +Node: Composition113534 +Node: Debugging121211 +Node: Dumpdef121804 +Node: Trace123222 +Node: Debug Levels126874 +Node: Debug Output131744 +Node: Input Control133057 +Node: Dnl133598 +Node: Changequote135540 +Node: Changecom145272 +Node: Changeword149158 +Node: M4wrap154763 +Node: File Inclusion158848 +Node: Include159169 +Node: Search Path161986 +Node: Diversions162935 +Node: Divert164642 +Node: Undivert167208 +Node: Divnum170593 +Node: Cleardivert171066 +Node: Text handling172287 +Node: Len173014 +Node: Index macro173408 +Node: Regexp174301 +Node: Substr177462 +Node: Translit178520 +Node: Patsubst181311 +Node: Format185952 +Node: Arithmetic189360 +Node: Incr189813 +Node: Eval191488 +Node: Shell commands200232 +Node: Platform macros201170 +Node: Syscmd203372 +Node: Esyscmd205747 +Node: Sysval207330 +Node: Mkstemp209297 +Node: Miscellaneous213354 +Node: Errprint213791 +Node: Location215043 +Node: M4exit217920 +Node: Frozen files220046 +Node: Using frozen files220844 +Node: Frozen file format224225 +Node: Compatibility227375 +Node: Extensions228457 +Node: Incompatibilities232511 +Node: Other Incompatibilities241815 +Node: Answers244545 +Node: Improved exch245359 +Node: Improved forloop245912 +Node: Improved foreach251368 +Node: Improved copy264746 +Node: Improved m4wrap268803 +Node: Improved cleardivert271299 +Node: Improved capitalize272297 +Node: Improved fatal_error277333 +Node: Copying This Package278430 +Node: GNU General Public License278909 +Node: Copying This Manual317298 +Node: GNU Free Documentation License317822 +Node: Indices342946 +Node: Macro index343230 +Node: Concept index349840  End Tag Table diff --git a/local/recipes/dev/m4/source/doc/m4.info-1 b/local/recipes/dev/m4/source/doc/m4.info-1 index 4303794c96..b2d797bc13 100644 --- a/local/recipes/dev/m4/source/doc/m4.info-1 +++ b/local/recipes/dev/m4/source/doc/m4.info-1 @@ -1,6 +1,6 @@ This is m4.info, produced by makeinfo version 7.3 from m4.texi. -This manual (5 July 2026) is for GNU M4 (version 1.4.21), a package +This manual (10 July 2026) is for GNU M4 (version 1.4.21), a package containing an implementation of the m4 macro language. Copyright © 1989-1994, 2004-2014, 2016-2017, 2020-2026 Free Software @@ -23,7 +23,7 @@ File: m4.info, Node: Top, Next: Preliminaries, Up: (dir) GNU M4 ****** -This manual (5 July 2026) is for GNU M4 (version 1.4.21), a package +This manual (10 July 2026) is for GNU M4 (version 1.4.21), a package containing an implementation of the m4 macro language. Copyright © 1989-1994, 2004-2014, 2016-2017, 2020-2026 Free Software diff --git a/local/recipes/dev/m4/source/doc/m4.info-2 b/local/recipes/dev/m4/source/doc/m4.info-2 index 2b6075c170..df174df9cf 100644 --- a/local/recipes/dev/m4/source/doc/m4.info-2 +++ b/local/recipes/dev/m4/source/doc/m4.info-2 @@ -1,6 +1,6 @@ This is m4.info, produced by makeinfo version 7.3 from m4.texi. -This manual (5 July 2026) is for GNU M4 (version 1.4.21), a package +This manual (10 July 2026) is for GNU M4 (version 1.4.21), a package containing an implementation of the m4 macro language. Copyright © 1989-1994, 2004-2014, 2016-2017, 2020-2026 Free Software diff --git a/local/recipes/dev/m4/source/doc/stamp-vti b/local/recipes/dev/m4/source/doc/stamp-vti index d8743b65b6..0ff4fccfcb 100644 --- a/local/recipes/dev/m4/source/doc/stamp-vti +++ b/local/recipes/dev/m4/source/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 5 July 2026 +@set UPDATED 10 July 2026 @set UPDATED-MONTH July 2026 @set EDITION 1.4.21 @set VERSION 1.4.21 diff --git a/local/recipes/dev/m4/source/doc/version.texi b/local/recipes/dev/m4/source/doc/version.texi index d8743b65b6..0ff4fccfcb 100644 --- a/local/recipes/dev/m4/source/doc/version.texi +++ b/local/recipes/dev/m4/source/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 5 July 2026 +@set UPDATED 10 July 2026 @set UPDATED-MONTH July 2026 @set EDITION 1.4.21 @set VERSION 1.4.21 diff --git a/local/recipes/gpu/redox-drm/source/src/drivers/virtio/mod.rs b/local/recipes/gpu/redox-drm/source/src/drivers/virtio/mod.rs index 64698624e8..e8e46b2300 100644 --- a/local/recipes/gpu/redox-drm/source/src/drivers/virtio/mod.rs +++ b/local/recipes/gpu/redox-drm/source/src/drivers/virtio/mod.rs @@ -45,7 +45,7 @@ fn virgl_box_to_hw(b: &Virgl3DBox) -> VirtioGpuBox { pub struct VirtioDriver { info: PciDeviceInfo, - _mmio: MmioRegion, + mmio: MmioRegion, irq_handle: Mutex>, width: u32, height: u32, @@ -55,7 +55,7 @@ pub struct VirtioDriver { vblank_count: AtomicU64, cs_seqno: AtomicU64, /// The VirtIO GPU transport layer (PCI caps + vrings). - /// When None, we are in framebuffer-only stub mode. + /// When None, the driver falls back to direct BAR framebuffer rendering. transport: Mutex>, resources: Mutex>, scanouts: Mutex>, @@ -93,7 +93,7 @@ impl VirtioDriver { } let fb_bar = find_fb_bar(&info)?; - let _mmio = map_bar(&fb_bar, "VirtIO FB BAR")?; + let mmio = map_bar(&fb_bar, "VirtIO FB BAR")?; info!( "redox-drm: VirtIO GPU at {}: {} MiB BAR at {:#x}", @@ -125,7 +125,7 @@ impl VirtioDriver { Ok(Self { info, - _mmio, + mmio, irq_handle: Mutex::new(None), width: 1280, height: 720, @@ -149,24 +149,50 @@ impl VirtioDriver { .transport .lock() .map_err(|_| DriverError::Initialization("transport lock poisoned".into()))?; - let t = transport - .as_mut() - .ok_or_else(|| DriverError::Unsupported("virtio transport unavailable"))?; + if let Some(t) = transport.as_mut() { + let gem = self + .gem + .lock() + .map_err(|_| DriverError::Buffer("VirtIO GEM poisoned".into()))?; + let object = gem.object(fb_handle)?; + if object.size < size { + return Err(DriverError::InvalidArgument("fb buffer too small for mode")); + } + let resource_id = t.create_resource_2d(0, mode.hdisplay as u32, mode.vdisplay as u32)?; + let rect = transport::VirtioGpuRect { x: 0, y: 0, width: mode.hdisplay as u32, height: mode.vdisplay as u32 }; + t.attach_backing(resource_id, &[(object.phys_addr as u64, object.size as u32)])?; + t.set_scanout(0, resource_id, &rect)?; + t.transfer_to_host_2d(resource_id, &rect, 0, stride)?; + t.resource_flush(resource_id, &rect)?; + Ok(ResourceState { resource_id, width: mode.hdisplay as u32, height: mode.vdisplay as u32, stride, scanout_id: Some(0) }) + } else { + self.bar_blit(fb_handle, mode)?; + Ok(ResourceState { resource_id: 0, width: mode.hdisplay as u32, height: mode.vdisplay as u32, stride, scanout_id: None }) + } + } + + fn bar_blit(&self, fb_handle: u32, mode: &ModeInfo) -> Result<()> { let gem = self .gem .lock() .map_err(|_| DriverError::Buffer("VirtIO GEM poisoned".into()))?; let object = gem.object(fb_handle)?; - if object.size < size { - return Err(DriverError::InvalidArgument("fb buffer too small for mode")); + let src = unsafe { + std::slice::from_raw_parts(object.virt_addr as *const u8, object.size as usize) + }; + let width = mode.hdisplay as usize; + let height = mode.vdisplay as usize; + let stride = width * 4; + let row_size = stride.min(object.size as usize); + for row in 0..height { + let src_offset = row * stride; + if src_offset + row_size > object.size as usize { + break; + } + let row_bytes = &src[src_offset..src_offset + row_size]; + self.mmio.write_bytes(row * stride, row_bytes); } - let resource_id = t.create_resource_2d(0, mode.hdisplay as u32, mode.vdisplay as u32)?; - let rect = transport::VirtioGpuRect { x: 0, y: 0, width: mode.hdisplay as u32, height: mode.vdisplay as u32 }; - t.attach_backing(resource_id, &[(object.phys_addr as u64, object.size as u32)])?; - t.set_scanout(0, resource_id, &rect)?; - t.transfer_to_host_2d(resource_id, &rect, 0, stride)?; - t.resource_flush(resource_id, &rect)?; - Ok(ResourceState { resource_id, width: mode.hdisplay as u32, height: mode.vdisplay as u32, stride, scanout_id: Some(0) }) + Ok(()) } /// Probe VirtIO PCI capabilities, negotiate features, and set up virtqueues. diff --git a/local/recipes/kde/kwin/source/src/wayland/plasmashell.h b/local/recipes/kde/kwin/source/src/wayland/plasmashell.h index c455ab7227..cb5ea5c0fa 100644 --- a/local/recipes/kde/kwin/source/src/wayland/plasmashell.h +++ b/local/recipes/kde/kwin/source/src/wayland/plasmashell.h @@ -19,6 +19,7 @@ namespace KWin class Display; class SurfaceInterface; class PlasmaShellSurfaceInterface; +class OutputInterface; class PlasmaShellInterfacePrivate; class PlasmaShellSurfaceInterfacePrivate; @@ -70,6 +71,11 @@ public: * @returns the requested position in global coordinates. */ QPoint position() const; + /** + * @returns the requested output, or nullptr if no output has been requested. + */ + OutputInterface *output() const; + /** * @returns Whether a global position has been requested. */ @@ -171,6 +177,11 @@ Q_SIGNALS: */ void positionChanged(); + /** + * A change of the requested output has been made. + */ + void outputChanged(); + /** * The surface has requested to be initially shown under the cursor. Can only occur * before any buffer has been attached. diff --git a/local/recipes/qt/qtsvg/recipe.toml b/local/recipes/qt/qtsvg/recipe.toml index b6da305516..9199a5a80c 100644 --- a/local/recipes/qt/qtsvg/recipe.toml +++ b/local/recipes/qt/qtsvg/recipe.toml @@ -91,3 +91,6 @@ redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" metaty [source] tar = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtsvg-everywhere-src-6.11.1.tar.xz" blake3 = "49b947e1a96bf0a29a1ee84c231a518a1413d9f3ec360617e405400e510508b2" +patches = [ + "qtsvg/CVE-2026-6210.patch", +] # heap-overflow fix from Qt patch, cherry-picked from upstream 6.8 diff --git a/local/recipes/tools/diffutils/diffutils.patch b/local/recipes/tools/diffutils/diffutils.patch index 2df8a37ed3..e173ea2371 100644 --- a/local/recipes/tools/diffutils/diffutils.patch +++ b/local/recipes/tools/diffutils/diffutils.patch @@ -1,20 +1,18 @@ -diff -ruw source/lib/cmpbuf.c source-new/lib/cmpbuf.c ---- source/lib/cmpbuf.c 2017-01-01 04:22:36.000000000 -0700 -+++ source-new/lib/cmpbuf.c 2018-12-29 07:31:43.920193561 -0700 -@@ -71,8 +71,8 @@ - ancient AIX hosts that set errno to EINTR after uncaught - SIGCONT. See - (1993-04-22). */ -- if (! SA_RESTART && errno == EINTR) -- continue; -+ //if (! SA_RESTART && errno == EINTR) -+ // continue; +--- diffutils-3.12/lib/cmpbuf.c 2025-01-12 21:27:47.000000000 +0300 ++++ diffutils-3.12-new/lib/cmpbuf.c 2026-07-11 01:26:55.996990194 +0300 +@@ -84,8 +84,8 @@ + ancient AIX hosts that set errno to EINTR after uncaught + SIGCONT. See + (1993-04-22). */ +- if (! SA_RESTART && errno == EINTR) +- continue; ++ /*if (! SA_RESTART && errno == EINTR) ++ continue;*/ - return SIZE_MAX; - } -diff -ruw source/lib/getdtablesize.c source-new/lib/getdtablesize.c ---- source/lib/getdtablesize.c 2017-05-18 10:23:32.000000000 -0600 -+++ source-new/lib/getdtablesize.c 2018-12-29 07:32:31.709586573 -0700 + return -1; + } +--- diffutils-3.12/lib/getdtablesize.c 2025-01-02 05:33:12.000000000 +0300 ++++ diffutils-3.12-new/lib/getdtablesize.c 2026-07-11 01:26:55.997027743 +0300 @@ -109,6 +109,7 @@ int getdtablesize (void) @@ -31,11 +29,10 @@ diff -ruw source/lib/getdtablesize.c source-new/lib/getdtablesize.c return INT_MAX; } -diff -ruw source/lib/getprogname.c source-new/lib/getprogname.c ---- source/lib/getprogname.c 2017-01-31 11:36:50.000000000 -0700 -+++ source-new/lib/getprogname.c 2018-12-29 07:34:15.432575388 -0700 -@@ -51,6 +51,14 @@ - # include +--- diffutils-3.12/lib/getprogname.c 2025-01-02 05:33:12.000000000 +0300 ++++ diffutils-3.12-new/lib/getprogname.c 2026-07-11 01:26:55.997103089 +0300 +@@ -55,6 +55,14 @@ + # include #endif +#if defined(__redox__) @@ -46,30 +43,29 @@ diff -ruw source/lib/getprogname.c source-new/lib/getprogname.c +# include +#endif + - #include "dirname.h" + #include "basename-lgpl.h" - #ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */ -@@ -177,6 +185,17 @@ - } + #ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Solaris >= 11, Cygwin, Android API level >= 21 */ +@@ -297,6 +305,17 @@ + close (fd); } - return NULL; + return "?"; +# elif defined(__redox__) + char filename[PATH_MAX]; + int fd = open ("sys:exe", O_RDONLY); + if (fd > 0) { + int len = read(fd, filename, PATH_MAX-1); + if (len > 0) { -+ filename[len] = '\0'; ++ filename[len] = '\x00'; + return strdup(filename); + } + } -+ return NULL; ++ return "?"; # else # error "getprogname module not ported to this OS" # endif -diff -ruw source/lib/sigprocmask.c source-new/lib/sigprocmask.c ---- source/lib/sigprocmask.c 2017-05-18 10:23:32.000000000 -0600 -+++ source-new/lib/sigprocmask.c 2018-12-29 07:45:02.610557142 -0700 +--- diffutils-3.12/lib/sigprocmask.c 2025-01-02 05:33:12.000000000 +0300 ++++ diffutils-3.12-new/lib/sigprocmask.c 2026-07-11 01:26:55.997143937 +0300 @@ -126,6 +126,7 @@ return 0; } @@ -78,11 +74,3 @@ diff -ruw source/lib/sigprocmask.c source-new/lib/sigprocmask.c int sigemptyset (sigset_t *set) { -@@ -180,6 +181,7 @@ - *set = ((2U << (NSIG - 1)) - 1) & ~ SIGABRT_COMPAT_MASK; - return 0; - } -+#endif - - /* Set of currently blocked signals. */ - static volatile sigset_t blocked_set /* = 0 */; diff --git a/local/recipes/tools/diffutils/recipe.toml b/local/recipes/tools/diffutils/recipe.toml index a34d9e88e0..6cb45505b4 100644 --- a/local/recipes/tools/diffutils/recipe.toml +++ b/local/recipes/tools/diffutils/recipe.toml @@ -1,6 +1,6 @@ [source] -tar = "https://ftp.gnu.org/gnu/diffutils/diffutils-3.6.tar.xz" -blake3 = "086a95093c15edcdb826e75ff4de6c2213de6fbd2eb13538d07bdc3286dfb4a4" +tar = "https://ftp.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz" +blake3 = "363fb378c85505b43f91d6e7c7382d571f2f7b47e4d334c18d522baf55599d18" patches = ["diffutils.patch"] script = """ autoreconf @@ -11,6 +11,8 @@ template = "custom" dependencies = ["relibc"] script = """ DYNAMIC_INIT +export HELP2MAN=true +export MAKEINFO=true COOKBOOK_CONFIGURE_FLAGS+=( gt_cv_locale_fr=false gt_cv_locale_fr_utf8=false @@ -24,12 +26,14 @@ COOKBOOK_CONFIGURE_FLAGS+=( gl_cv_header_sys_types_h=yes ac_cv_header_wchar_h=yes ac_cv_header_stdio_h=yes + ac_cv_path_HELP2MAN=true + ac_cv_path_MAKEINFO=true ) cookbook_configure -"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" -"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" HELP2MAN=true MAKEINFO=true +"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" HELP2MAN=true MAKEINFO=true rm -f "${COOKBOOK_STAGE}/usr/share/info/dir" """ [package] -description = "GNU diffutils (gnulib bypass enabled)" +description = "GNU diffutils 3.12 (gnulib bypass enabled)" diff --git a/local/recipes/wayland/redbear-compositor/source/src/main.rs b/local/recipes/wayland/redbear-compositor/source/src/main.rs index bba77b07ce..de5b09f4da 100644 --- a/local/recipes/wayland/redbear-compositor/source/src/main.rs +++ b/local/recipes/wayland/redbear-compositor/source/src/main.rs @@ -28,8 +28,96 @@ use std::sync::{ Mutex, }; -fn map_framebuffer(_phys: usize, size: usize) -> Vec { - vec![0u8; size] +enum Framebuffer { + Vec(Vec), + Mmap(MmapBuffer), +} + +impl AsMut<[u8]> for Framebuffer { + fn as_mut(&mut self) -> &mut [u8] { + match self { + Framebuffer::Vec(v) => v.as_mut(), + Framebuffer::Mmap(m) => m.as_mut(), + } + } +} + +struct MmapBuffer { + base: *mut u8, + base_len: usize, + data: *mut u8, + len: usize, +} + +unsafe impl Send for MmapBuffer {} + +impl AsMut<[u8]> for MmapBuffer { + fn as_mut(&mut self) -> &mut [u8] { + unsafe { std::slice::from_raw_parts_mut(self.data, self.len) } + } +} + +impl Drop for MmapBuffer { + fn drop(&mut self) { + unsafe { + let _ = libc::munmap(self.base as *mut libc::c_void, self.base_len); + } + } +} + +fn map_framebuffer(phys: usize, size: usize) -> std::io::Result { + if phys == 0 || size == 0 { + return Ok(Framebuffer::Vec(vec![0u8; size])); + } + + let path = if cfg!(target_os = "redox") { + "/scheme/memory\0" + } else { + "/dev/mem\0" + }; + + let fd = unsafe { libc::open(path.as_ptr() as *const libc::c_char, libc::O_RDWR) }; + if fd < 0 { + return Err(std::io::Error::other(format!( + "failed to open framebuffer memory device: {}", + std::io::Error::last_os_error() + ))); + } + + let page_size = unsafe { libc::sysconf(libc::_SC_PAGESIZE) as usize }; + let map_offset = phys & !(page_size - 1); + let in_page = phys - map_offset; + let map_size = ((size + in_page + page_size - 1) / page_size) * page_size; + + let ptr = unsafe { + libc::mmap( + std::ptr::null_mut(), + map_size, + libc::PROT_READ | libc::PROT_WRITE, + libc::MAP_SHARED, + fd, + map_offset as libc::off_t, + ) + }; + + unsafe { libc::close(fd); } + + if ptr == libc::MAP_FAILED { + return Err(std::io::Error::other(format!( + "failed to map framebuffer at 0x{:X}: {}", + phys, + std::io::Error::last_os_error() + ))); + } + + let data_ptr = unsafe { (ptr as *mut u8).add(in_page) }; + + Ok(Framebuffer::Mmap(MmapBuffer { + base: ptr as *mut u8, + base_len: map_size, + data: data_ptr, + len: size, + })) } // ── DRM/KMS backend — replaces the VESA framebuffer stub above ── @@ -1170,7 +1258,7 @@ pub struct Compositor { fb_width: u32, fb_height: u32, fb_stride: u32, - fb_data: Mutex>, + fb_data: Mutex, drm: Mutex>, clients: Mutex>, pointer_state: Mutex, @@ -1200,7 +1288,7 @@ impl Compositor { .ok(); let fb_size = (fb_height as usize) * (fb_stride as usize); - let fb_data = map_framebuffer(fb_phys, fb_size); + let fb_data = map_framebuffer(fb_phys, fb_size)?; let globals = vec![ Global { @@ -3103,7 +3191,7 @@ impl Compositor { let fb_stride; let fb_ptr: *mut u8; - // Try DRM first, fall back to fb_data Vec + // Try DRM first, fall back to fb_data buffer if let Ok(mut drm_guard) = self.drm.lock() { if let Some(ref mut drm) = *drm_guard { fb_stride = drm.stride as usize; @@ -3113,13 +3201,13 @@ impl Compositor { } else { let mut fb = self.fb_data.lock().unwrap(); fb_stride = self.fb_stride as usize; - fb_ptr = fb.as_mut_ptr(); + fb_ptr = fb.as_mut().as_mut_ptr(); drop(fb); // release lock before unsafe block } } else { let mut fb = self.fb_data.lock().unwrap(); fb_stride = self.fb_stride as usize; - fb_ptr = fb.as_mut_ptr(); + fb_ptr = fb.as_mut().as_mut_ptr(); drop(fb); } diff --git a/recipes/wip/wayland/libwayland b/recipes/wip/wayland/libwayland deleted file mode 120000 index 7573d17822..0000000000 --- a/recipes/wip/wayland/libwayland +++ /dev/null @@ -1 +0,0 @@ -../../../local/recipes/wayland/libwayland \ No newline at end of file diff --git a/recipes/wip/wayland/seatd-redox b/recipes/wip/wayland/seatd-redox deleted file mode 120000 index 4befb3f237..0000000000 --- a/recipes/wip/wayland/seatd-redox +++ /dev/null @@ -1 +0,0 @@ -../../../local/recipes/wayland/seatd-redox \ No newline at end of file diff --git a/recipes/wip/wayland/smallvil b/recipes/wip/wayland/smallvil deleted file mode 120000 index 0652632c8f..0000000000 --- a/recipes/wip/wayland/smallvil +++ /dev/null @@ -1 +0,0 @@ -../../../local/recipes/wayland/smallvil \ No newline at end of file diff --git a/recipes/wip/wayland/wayland-protocols b/recipes/wip/wayland/wayland-protocols deleted file mode 120000 index 08a38d4536..0000000000 --- a/recipes/wip/wayland/wayland-protocols +++ /dev/null @@ -1 +0,0 @@ -../../../local/recipes/wayland/wayland-protocols \ No newline at end of file