diff --git a/dev-embedded/esp-idf-kconfig/esp-idf-kconfig-2.5.0-r1.ebuild b/dev-embedded/esp-idf-kconfig/esp-idf-kconfig-2.5.0-r1.ebuild new file mode 100644 index 0000000000..6b4b2da389 --- /dev/null +++ b/dev-embedded/esp-idf-kconfig/esp-idf-kconfig-2.5.0-r1.ebuild @@ -0,0 +1,26 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{{11..13},13t} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Kconfig tooling for esp-idf" +HOMEPAGE="https://github.com/espressif/esp-idf-kconfig" + +LICENSE="Apache-2.0" +SLOT="0" + +KEYWORDS="~amd64" + +RESTRICT="test" + +PATCHES=( "${FILESDIR}/${PN}-2.5.0-rename-kconfiglib.patch" ) + +src_prepare() { + default + rm -r docs || die +} diff --git a/dev-embedded/esp-idf-kconfig/files/esp-idf-kconfig-2.5.0-rename-kconfiglib.patch b/dev-embedded/esp-idf-kconfig/files/esp-idf-kconfig-2.5.0-rename-kconfiglib.patch new file mode 100644 index 0000000000..e487cd49db --- /dev/null +++ b/dev-embedded/esp-idf-kconfig/files/esp-idf-kconfig-2.5.0-rename-kconfiglib.patch @@ -0,0 +1,162 @@ +esp-idf-kconfig ships a fork of dev-python/kconfiglib creating a conflict when both of them are installed. +This patch renames the esp-idf fork of kconfiglib as an attempt to avoid those conflicts. +See https://github.com/espressif/esp-idf-kconfig/issues/13 +--- +diff --git c/esp_idf_kconfig/gen_kconfig_doc.py w/esp_idf_kconfig/gen_kconfig_doc.py +index 8f9ffd5..bb16022 100644 +--- c/esp_idf_kconfig/gen_kconfig_doc.py ++++ w/esp_idf_kconfig/gen_kconfig_doc.py +@@ -11,7 +11,7 @@ + # SPDX-License-Identifier: Apache-2.0 + import re + +-import kconfiglib.core as kconfiglib ++import espkconfiglib.core as kconfiglib + + # Indentation to be used in the generated file + INDENT = " " +diff --git c/kconfiglib/__init__.py w/espkconfiglib/__init__.py +similarity index 100% +rename from kconfiglib/__init__.py +rename to espkconfiglib/__init__.py +diff --git c/kconfiglib/core.py w/espkconfiglib/core.py +similarity index 99% +rename from kconfiglib/core.py +rename to espkconfiglib/core.py +index 11fb924..e78d41d 100644 +--- c/kconfiglib/core.py ++++ w/espkconfiglib/core.py +@@ -2,7 +2,7 @@ + # SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD + # SPDX-FileCopyrightText: 2011-2019, Ulf Magnusson + # SPDX-License-Identifier: ISC +-# This file is copied from kconfiglib project: ++# This file is copied from espkconfiglib project: + # https://github.com/ulfalizer/Kconfiglib/commit/061e71f7d78cb057762d88de088055361863deff + import errno + import importlib +@@ -2472,7 +2472,7 @@ class Kconfig(object): + returns node that was parsed as a last one in this function. + probably will be deprecated as the call logic is different from the original. + """ +- from kconfiglib.kconfig_parser import Parser ++ from espkconfiglib.kconfig_parser import Parser + + parser = Parser(kconfig=self) + +diff --git c/kconfiglib/kconfig_grammar.py w/espkconfiglib/kconfig_grammar.py +similarity index 99% +rename from kconfiglib/kconfig_grammar.py +rename to espkconfiglib/kconfig_grammar.py +index 95700d1..160963d 100644 +--- c/kconfiglib/kconfig_grammar.py ++++ w/espkconfiglib/kconfig_grammar.py +@@ -29,7 +29,7 @@ from pyparsing import one_of + from pyparsing import opAssoc + + if TYPE_CHECKING: +- from kconfiglib.kconfig_parser import Parser ++ from espkconfiglib.kconfig_parser import Parser + + + class KconfigBlock(Token): +diff --git c/kconfiglib/kconfig_parser.py w/espkconfiglib/kconfig_parser.py +similarity index 99% +rename from kconfiglib/kconfig_parser.py +rename to espkconfiglib/kconfig_parser.py +index 3fdc23c..6ef277e 100644 +--- c/kconfiglib/kconfig_parser.py ++++ w/espkconfiglib/kconfig_parser.py +@@ -37,7 +37,7 @@ from .core import OR + from .core import STRING + from .core import Symbol + from .core import UNEQUAL +-from kconfiglib.kconfig_grammar import KconfigGrammar ++from espkconfiglib.kconfig_grammar import KconfigGrammar + + ParserElement.enablePackrat(cache_size_limit=None) # Speeds up parsing by caching intermediate results + +diff --git c/kconfgen/core.py w/kconfgen/core.py +index fbd8e5a..f32f13e 100755 +--- c/kconfgen/core.py ++++ w/kconfgen/core.py +@@ -27,7 +27,7 @@ from typing import Set + from typing import Tuple + + import esp_idf_kconfig.gen_kconfig_doc as gen_kconfig_doc +-import kconfiglib.core as kconfiglib ++import espkconfiglib.core as kconfiglib + from esp_idf_kconfig import __version__ + + +diff --git c/kconfserver/core.py w/kconfserver/core.py +index a970157..3a8f061 100644 +--- c/kconfserver/core.py ++++ w/kconfserver/core.py +@@ -13,7 +13,7 @@ import tempfile + from json import JSONDecodeError + + import kconfgen.core as kconfgen +-import kconfiglib.core as kconfiglib ++import espkconfiglib.core as kconfiglib + from esp_idf_kconfig import __version__ + + # Min/Max supported protocol versions +diff --git c/menuconfig/core.py w/menuconfig/core.py +index cac0032..de915f6 100755 +--- c/menuconfig/core.py ++++ w/menuconfig/core.py +@@ -2,7 +2,7 @@ + # SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + # SPDX-FileCopyrightText: 2018-2019, Nordic Semiconductor ASA and Ulf Magnusson + # SPDX-License-Identifier: ISC +-# This file is copied from kconfiglib project: ++# This file is copied from espkconfiglib project: + # https://github.com/ulfalizer/Kconfiglib/commit/061e71f7d78cb057762d88de088055361863deff + """ + Overview +@@ -192,25 +192,25 @@ import sys + import textwrap + from typing import Union + +-from kconfiglib.core import AND +-from kconfiglib.core import BOOL +-from kconfiglib.core import BOOL_TO_STR +-from kconfiglib.core import Choice +-from kconfiglib.core import COMMENT +-from kconfiglib.core import expr_str +-from kconfiglib.core import expr_value +-from kconfiglib.core import HEX +-from kconfiglib.core import INT +-from kconfiglib.core import MENU +-from kconfiglib.core import MenuNode +-from kconfiglib.core import OR +-from kconfiglib.core import split_expr +-from kconfiglib.core import standard_config_filename +-from kconfiglib.core import standard_kconfig +-from kconfiglib.core import standard_sc_expr_str +-from kconfiglib.core import STRING +-from kconfiglib.core import Symbol +-from kconfiglib.core import TYPE_TO_STR ++from espkconfiglib.core import AND ++from espkconfiglib.core import BOOL ++from espkconfiglib.core import BOOL_TO_STR ++from espkconfiglib.core import Choice ++from espkconfiglib.core import COMMENT ++from espkconfiglib.core import expr_str ++from espkconfiglib.core import expr_value ++from espkconfiglib.core import HEX ++from espkconfiglib.core import INT ++from espkconfiglib.core import MENU ++from espkconfiglib.core import MenuNode ++from espkconfiglib.core import OR ++from espkconfiglib.core import split_expr ++from espkconfiglib.core import standard_config_filename ++from espkconfiglib.core import standard_kconfig ++from espkconfiglib.core import standard_sc_expr_str ++from espkconfiglib.core import STRING ++from espkconfiglib.core import Symbol ++from espkconfiglib.core import TYPE_TO_STR + + _IS_WINDOWS = os.name == "nt" # Are we running on Windows? +