This needs a maintainer.inc entry, and also it does need a some recipe
that actually uses it.

Alex

On Wed, 28 Jan 2026 at 04:55, Yiding Liu (Fujitsu) via
lists.openembedded.org <[email protected]>
wrote:
>
> 1. Backport following patch to solve build and runtime issue
>   0001-c_comment_scanner-fix-function-prototypes.patch
>   0002-avoid-third-party-backports-dependency-on-sufficient.patch
>   0003-CMake-4-compatibility.patch
>
> 2. Add do_configure:prepend() to solve buildpaths QA check
>   do_package_qa: QA Issue: File 
> /usr/lib/python3.14/site-packages/hotdoc/parsers/cmark.cpython-314-x86_64-linux-gnu.so
>  in package hotdoc contains reference to TMPDIR [buildpaths]
>
> 3. Add 0004-Make-path-to-relative-in-FlexExtension.patch to solve buildpaths 
> QA check
>   do_package_qa:QA Issue: File 
> /usr/src/debug/hotdoc/0.17.4/hotdoc/parsers/c_comment_scanner/scanner.c in 
> package hotdoc-src contains reference to TMPDIR [buildpaths]
>
> Signed-off-by: Liu Yiding <[email protected]>
> ---
>  ...ment_scanner-fix-function-prototypes.patch | 32 +++++++++
>  ...y-backports-dependency-on-sufficient.patch | 72 +++++++++++++++++++
>  .../hotdoc/0003-CMake-4-compatibility.patch   | 44 ++++++++++++
>  ...ke-path-to-relative-in-FlexExtension.patch | 34 +++++++++
>  meta/recipes-devtools/hotdoc/hotdoc_0.17.4.bb | 27 +++++++
>  5 files changed, 209 insertions(+)
>  create mode 100644 
> meta/recipes-devtools/hotdoc/hotdoc/0001-c_comment_scanner-fix-function-prototypes.patch
>  create mode 100644 
> meta/recipes-devtools/hotdoc/hotdoc/0002-avoid-third-party-backports-dependency-on-sufficient.patch
>  create mode 100644 
> meta/recipes-devtools/hotdoc/hotdoc/0003-CMake-4-compatibility.patch
>  create mode 100644 
> meta/recipes-devtools/hotdoc/hotdoc/0004-Make-path-to-relative-in-FlexExtension.patch
>  create mode 100644 meta/recipes-devtools/hotdoc/hotdoc_0.17.4.bb
>
> diff --git 
> a/meta/recipes-devtools/hotdoc/hotdoc/0001-c_comment_scanner-fix-function-prototypes.patch
>  
> b/meta/recipes-devtools/hotdoc/hotdoc/0001-c_comment_scanner-fix-function-prototypes.patch
> new file mode 100644
> index 0000000000..c26dde93b3
> --- /dev/null
> +++ 
> b/meta/recipes-devtools/hotdoc/hotdoc/0001-c_comment_scanner-fix-function-prototypes.patch
> @@ -0,0 +1,32 @@
> +Subject: [PATCH 1/2] c_comment_scanner: fix function prototypes
> +
> +scanner.l: Fix compile error as the following:
> +
> +python3-hotdoc/0.17.4/sources/hotdoc-0.17.4/hotdoc/parsers/c_comment_scanner/scanner.l:126:1:
>  error: conflicting types for 'parse_comment'; have 'int(PyObject *)' {aka 
> 'int(struct _object *)'}
> +|   126 | parse_comment (PyObject *comments)
> +
> +Upstream-Status: Backport 
> [https://github.com/hotdoc/hotdoc/commit/adf8518431fafb78c9b47862a0a9a58824b6a421]
> +
> +Signed-off-by: Liu Yiding <[email protected]>
> +---
> + hotdoc/parsers/c_comment_scanner/scanner.l | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/hotdoc/parsers/c_comment_scanner/scanner.l 
> b/hotdoc/parsers/c_comment_scanner/scanner.l
> +index 0408601..7bccd64 100644
> +--- a/hotdoc/parsers/c_comment_scanner/scanner.l
> ++++ b/hotdoc/parsers/c_comment_scanner/scanner.l
> +@@ -34,8 +34,8 @@
> + extern int yylex (PyObject *comments);
> + #define YY_DECL int yylex (PyObject *comments)
> + static int yywrap (void);
> +-static int parse_comment ();
> +-static int parse_define ();
> ++static int parse_comment (PyObject *);
> ++static int parse_define (PyObject *);
> + %}
> +
> + %option nounput
> +--
> +2.43.0
> +
> diff --git 
> a/meta/recipes-devtools/hotdoc/hotdoc/0002-avoid-third-party-backports-dependency-on-sufficient.patch
>  
> b/meta/recipes-devtools/hotdoc/hotdoc/0002-avoid-third-party-backports-dependency-on-sufficient.patch
> new file mode 100644
> index 0000000000..560d1257f0
> --- /dev/null
> +++ 
> b/meta/recipes-devtools/hotdoc/hotdoc/0002-avoid-third-party-backports-dependency-on-sufficient.patch
> @@ -0,0 +1,72 @@
> +Subject: [PATCH 2/2] avoid third-party backports dependency on sufficiently
> + new python
> +
> +`backports.entry_points_selectable` backports functionality from python
> +3.10 to older versions of python.
> +
> +Backport this patch to solve runtime backports import problem as following:
> +  File "/usr/lib/python3.14/site-packages/hotdoc/utils/utils.py", line 38, 
> in <module>
> +  from backports.entry_points_selectable import entry_points
> +ModuleNotFoundError: No module named 'backports'
> +
> +Upstream-Status: Backport 
> [https://github.com/hotdoc/hotdoc/commit/51043c3ef889e36c8232280581598b875073ded7]
> +
> +Signed-off-by: Liu Yiding <[email protected]>
> +---
> + hotdoc/extensions/gi/utils.py | 6 +++++-
> + hotdoc/utils/utils.py         | 6 +++++-
> + setup.py                      | 2 +-
> + 3 files changed, 11 insertions(+), 3 deletions(-)
> +
> +diff --git a/hotdoc/extensions/gi/utils.py b/hotdoc/extensions/gi/utils.py
> +index 159c2b6..91902cb 100644
> +--- a/hotdoc/extensions/gi/utils.py
> ++++ b/hotdoc/extensions/gi/utils.py
> +@@ -1,9 +1,13 @@
> + import os
> + from collections import namedtuple
> + import pathlib
> ++import sys
> + import traceback
> +
> +-from backports.entry_points_selectable import entry_points
> ++if sys.version_info >= (3, 10):
> ++    from importlib.metadata import entry_points
> ++else:
> ++    from backports.entry_points_selectable import entry_points
> +
> + from hotdoc.core.links import Link
> + from hotdoc.utils.loggable import info, debug
> +diff --git a/hotdoc/utils/utils.py b/hotdoc/utils/utils.py
> +index 518d308..aef657a 100644
> +--- a/hotdoc/utils/utils.py
> ++++ b/hotdoc/utils/utils.py
> +@@ -35,7 +35,11 @@ import importlib.util
> + from urllib.request import urlretrieve
> + from pathlib import Path
> +
> +-from backports.entry_points_selectable import entry_points
> ++if sys.version_info >= (3, 10):
> ++    from importlib.metadata import entry_points
> ++else:
> ++    from backports.entry_points_selectable import entry_points
> ++
> + try:
> +     import importlib.metadata as meta
> + except ImportError:
> +diff --git a/setup.py b/setup.py
> +index 5d7f131..9ee504d 100644
> +--- a/setup.py
> ++++ b/setup.py
> +@@ -300,7 +300,7 @@ INSTALL_REQUIRES = [
> +     'wheezy.template',
> +     'toposort>=1.4',
> +     'importlib_metadata; python_version<"3.10"',
> +-    'backports.entry_points_selectable',
> ++    'backports.entry_points_selectable; python_version<"3.10"',
> + ]
> +
> + # dbus-deviation requires sphinx, which requires python 3.5
> +--
> +2.43.0
> +
> diff --git 
> a/meta/recipes-devtools/hotdoc/hotdoc/0003-CMake-4-compatibility.patch 
> b/meta/recipes-devtools/hotdoc/hotdoc/0003-CMake-4-compatibility.patch
> new file mode 100644
> index 0000000000..cb243176ae
> --- /dev/null
> +++ b/meta/recipes-devtools/hotdoc/hotdoc/0003-CMake-4-compatibility.patch
> @@ -0,0 +1,44 @@
> +Subject: [PATCH] CMake 4 compatibility
> +
> +All CMake versions older than 3.10 are deprecated.
> +
> +Upstream-Status: Backport 
> [https://github.com/MathieuDuponchelle/cmark/commit/bd78193dbff98c3860e77629b5c7bfee6169d1da]
> +
> +Signed-off-by: Liu Yiding <[email protected]>
> +---
> + cmark/CMakeLists.txt            | 11 ++---------
> + cmark/extensions/CMakeLists.txt |  2 +-
> + 2 files changed, 3 insertions(+), 10 deletions(-)
> +
> +diff --git a/cmark/CMakeLists.txt b/cmark/CMakeLists.txt
> +index ff97419..45fdf6c 100755
> +--- a/cmark/CMakeLists.txt
> ++++ b/cmark/CMakeLists.txt
> +@@ -1,12 +1,5 @@
> +-cmake_minimum_required(VERSION 2.8.9)
> +-
> +-# prevent ugly developer warnings because version is set directly, not 
> through project()
> +-# it should be redone properly by using VERSION in project() if on CMake 3.x
> +-if(CMAKE_MAJOR_VERSION GREATER 2)
> +-    cmake_policy(SET CMP0048 OLD)
> +-endif()
> +-
> +-project(cmark)
> ++cmake_minimum_required(VERSION 3.10)
> ++project(cmark VERSION 0.28.3)
> +
> + include("FindAsan.cmake")
> +
> +diff --git a/cmark/extensions/CMakeLists.txt 
> b/cmark/extensions/CMakeLists.txt
> +index e62d155..b6a1556 100644
> +--- a/cmark/extensions/CMakeLists.txt
> ++++ b/cmark/extensions/CMakeLists.txt
> +@@ -1,4 +1,4 @@
> +-cmake_minimum_required(VERSION 2.8)
> ++cmake_minimum_required(VERSION 3.10)
> + set(LIBRARY "cmarkextensions")
> + set(LIBRARY_SOURCES
> +     core-extensions.c
> +--
> +2.43.0
> +
> diff --git 
> a/meta/recipes-devtools/hotdoc/hotdoc/0004-Make-path-to-relative-in-FlexExtension.patch
>  
> b/meta/recipes-devtools/hotdoc/hotdoc/0004-Make-path-to-relative-in-FlexExtension.patch
> new file mode 100644
> index 0000000000..ae8c2ef3e7
> --- /dev/null
> +++ 
> b/meta/recipes-devtools/hotdoc/hotdoc/0004-Make-path-to-relative-in-FlexExtension.patch
> @@ -0,0 +1,34 @@
> +Subject: [PATCH] Make path to relative in FlexExtension
> +
> +To fix following do_package QA Issue:
> +
> +do_package_qa:QA Issue: File 
> /usr/src/debug/hotdoc/0.17.4/hotdoc/parsers/c_comment_scanner/scanner.c in 
> package hotdoc-src contains reference to TMPDIR [buildpaths]
> +
> +Upstream-Status: Inappropriate [oe-specific]
> +
> +Signed-off-by: Liu Yiding <[email protected]>
> +---
> + setup.py | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/setup.py b/setup.py
> +index 9ee504d..fc03c57 100644
> +--- a/setup.py
> ++++ b/setup.py
> +@@ -357,11 +357,11 @@ build_c_extension = 
> os.environ.get('HOTDOC_BUILD_C_EXTENSION', 'auto')
> + class FlexExtension (Extension):
> +     def __init__(self, flex_sources, *args, **kwargs):
> +         Extension.__init__(self, *args, **kwargs)
> +-        self.__flex_sources = [src(s) for s in flex_sources]
> ++        self.__flex_sources = list(flex_sources)
> +
> +     def __build_flex(self):
> +         src_dir = os.path.dirname(self.__flex_sources[0])
> +-        built_scanner_path = src(os.path.join(src_dir, 'scanner.c'))
> ++        built_scanner_path = os.path.join(src_dir, 'scanner.c')
> +
> +         self.sources.append(built_scanner_path)
> +         if newer_group(self.__flex_sources, built_scanner_path):
> +--
> +2.43.0
> +
> diff --git a/meta/recipes-devtools/hotdoc/hotdoc_0.17.4.bb 
> b/meta/recipes-devtools/hotdoc/hotdoc_0.17.4.bb
> new file mode 100644
> index 0000000000..6236f03df8
> --- /dev/null
> +++ b/meta/recipes-devtools/hotdoc/hotdoc_0.17.4.bb
> @@ -0,0 +1,27 @@
> +SUMMARY = "Hotdoc is a documentation framework"
> +DESCRIPTION = "Hotdoc is a documentation micro-framework. It provides an 
> interface for extensions to plug upon, along with some base objects 
> (formatters, ...)"
> +HOMEPAGE = "https://github.com/hotdoc/hotdoc";
> +
> +LICENSE = "LGPL-2.1-or-later"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=90263a49bc1d9a204656fec4d5616c66"
> +
> +SRC_URI[sha256sum] = 
> "c4d5dff647f03aa87a1d2d06035d2819edd099b91635e3b2ee390829357ae9fc"
> +
> +SRC_URI = "file://0001-c_comment_scanner-fix-function-prototypes.patch \
> +           
> file://0002-avoid-third-party-backports-dependency-on-sufficient.patch \
> +           file://0003-CMake-4-compatibility.patch \
> +           file://0004-Make-path-to-relative-in-FlexExtension.patch \
> +          "
> +
> +DEPENDS += "libxml2 glib-2.0 json-glib"
> +
> +inherit pypi python_setuptools_build_meta pkgconfig
> +
> +#Fix LIBDIR path to fix buildpaths QA check of 
> hotdoc/parsers/cmark.cpython-314-x86_64-linux-gnu.so
> +do_configure:prepend() {
> +    sed -i -e "s#'\"%s\"' % 
> CMARK_BUILD_DIR#'\"${PYTHON_SITEPACKAGES_DIR}/${PN}\"'#" ${S}/setup.py
> +}
> +
> +RDEPENDS:${PN} += "python3-appdirs python3-lxml python3-pyyaml 
> python3-schema python3-toposort python3-wheezy-template"
> +
> +BBCLASSEXTEND = "native"
> --
> 2.43.0
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#230090): 
https://lists.openembedded.org/g/openembedded-core/message/230090
Mute This Topic: https://lists.openembedded.org/mt/117502927/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

  • [OE-core][PATCH v2] hotdoc... Yiding Liu (Fujitsu) via lists.openembedded.org
    • Re: [OE-core][PATCH v... Alexander Kanavin via lists.openembedded.org

Reply via email to