From 2ea9e9988bb62d22d6e189a65a0dc0218b8103db Mon Sep 17 00:00:00 2001 From: "Liguros - Gitlab CI/CD [develop]" Date: Sun, 12 May 2024 14:32:48 +0000 Subject: Adding metadata --- .../sphinx/files/sphinx-7.3.7-opt-defusedxml.patch | 34 ++++++ dev-python/sphinx/sphinx-7.3.7-r1.ebuild | 133 --------------------- dev-python/sphinx/sphinx-7.3.7-r2.ebuild | 130 ++++++++++++++++++++ 3 files changed, 164 insertions(+), 133 deletions(-) create mode 100644 dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch delete mode 100644 dev-python/sphinx/sphinx-7.3.7-r1.ebuild create mode 100644 dev-python/sphinx/sphinx-7.3.7-r2.ebuild (limited to 'dev-python/sphinx') diff --git a/dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch b/dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch new file mode 100644 index 000000000000..cb70e2cf89fc --- /dev/null +++ b/dev-python/sphinx/files/sphinx-7.3.7-opt-defusedxml.patch @@ -0,0 +1,34 @@ +From ce86026f3b667949ef39f7fdab9a40941d99c5ca Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Sat, 11 May 2024 18:31:02 +0200 +Subject: [PATCH] DEPS: Lazy import `defusedxml` only when necessary (#12362) + +The `defusedxml` dependency was added to `sphinx.testing` in sphinx 7.3, +but it is not part of the core sphinx dependencies, and not strictly necessary for the running of the pytest plugin. +This commit moves the import into the only function which uses it, +so that the pytest plugins can be used again without this dependency. +--- + sphinx/testing/util.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sphinx/testing/util.py b/sphinx/testing/util.py +index d1de8ea2b7..b2df709eea 100644 +--- a/sphinx/testing/util.py ++++ b/sphinx/testing/util.py +@@ -11,7 +11,6 @@ + from types import MappingProxyType + from typing import TYPE_CHECKING + +-from defusedxml.ElementTree import parse as xml_parse + from docutils import nodes + from docutils.parsers.rst import directives, roles + +@@ -73,6 +72,8 @@ def assert_node(node: Node, cls: Any = None, xpath: str = "", **kwargs: Any) -> + # keep this to restrict the API usage and to have a correct return type + def etree_parse(path: str | os.PathLike[str]) -> ElementTree: + """Parse a file into a (safe) XML element tree.""" ++ from defusedxml.ElementTree import parse as xml_parse ++ + return xml_parse(path) + + diff --git a/dev-python/sphinx/sphinx-7.3.7-r1.ebuild b/dev-python/sphinx/sphinx-7.3.7-r1.ebuild deleted file mode 100644 index d5a438543731..000000000000 --- a/dev-python/sphinx/sphinx-7.3.7-r1.ebuild +++ /dev/null @@ -1,133 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 - -DESCRIPTION="Python documentation generator" -HOMEPAGE=" - https://www.sphinx-doc.org/ - https://github.com/sphinx-doc/sphinx/ - https://pypi.org/project/Sphinx/ -" -SRC_URI=" - https://github.com/sphinx-doc/sphinx/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="BSD-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="doc latex" - -RDEPEND=" - >=dev-python/alabaster-0.7.14[${PYTHON_USEDEP}] - >=dev-python/Babel-2.9[${PYTHON_USEDEP}] - =dev-python/docutils-0.18.1[${PYTHON_USEDEP}] - >=dev-python/imagesize-1.3[${PYTHON_USEDEP}] - >=dev-python/jinja-3.0[${PYTHON_USEDEP}] - >=dev-python/pygments-2.14[${PYTHON_USEDEP}] - >=dev-python/requests-2.25.0[${PYTHON_USEDEP}] - >=dev-python/snowballstemmer-2.0[${PYTHON_USEDEP}] - dev-python/sphinxcontrib-applehelp[${PYTHON_USEDEP}] - dev-python/sphinxcontrib-devhelp[${PYTHON_USEDEP}] - dev-python/sphinxcontrib-jsmath[${PYTHON_USEDEP}] - >=dev-python/sphinxcontrib-htmlhelp-2.0.0[${PYTHON_USEDEP}] - >=dev-python/sphinxcontrib-serializinghtml-1.1.9[${PYTHON_USEDEP}] - dev-python/sphinxcontrib-qthelp[${PYTHON_USEDEP}] - >=dev-python/packaging-21.0[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/tomli-2[${PYTHON_USEDEP}] - ' 3.10) - latex? ( - dev-texlive/texlive-latexextra - dev-texlive/texlive-luatex - app-text/dvipng - ) - !dev-python/namespace-sphinxcontrib -" -# added temporarily because of unconditional import in sphinx.testing.util -# until we figure out how to deal with it better -RDEPEND+=" - dev-python/defusedxml[${PYTHON_USEDEP}] -" -BDEPEND=" - doc? ( - dev-python/sphinxcontrib-websupport[${PYTHON_USEDEP}] - media-gfx/graphviz - ) - test? ( - app-text/dvipng - >=dev-python/cython-3.0.0[${PYTHON_USEDEP}] - >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}] - >=dev-python/setuptools-67.0[${PYTHON_USEDEP}] - dev-texlive/texlive-fontsextra - dev-texlive/texlive-latexextra - dev-texlive/texlive-luatex - virtual/imagemagick-tools[jpeg,png,svg] - ) -" - -PATCHES=( - "${FILESDIR}/sphinx-3.2.1-doc-link.patch" - "${FILESDIR}/sphinx-4.3.2-doc-link.patch" -) - -distutils_enable_tests pytest - -python_prepare_all() { - # disable internet access - sed -i -e 's:^intersphinx_mapping:disabled_&:' \ - doc/conf.py || die - - distutils-r1_python_prepare_all -} - -python_compile_all() { - # we can't use distutils_enable_sphinx because it would - # introduce a dep on itself - use doc && build_sphinx doc -} - -python_test() { - mkdir -p "${BUILD_DIR}/sphinx_tempdir" || die - local -x SPHINX_TEST_TEMPDIR="${BUILD_DIR}/sphinx_tempdir" - - local EPYTEST_DESELECT=() - case ${EPYTHON} in - pypy3) - EPYTEST_DESELECT+=( - tests/test_extensions/test_ext_autodoc.py::test_autodoc_exception - tests/test_extensions/test_ext_autodoc.py::test_autodoc_ignore_module_all - tests/test_extensions/test_ext_autodoc.py::test_autodoc_inherited_members_None - tests/test_extensions/test_ext_autodoc.py::test_autodoc_subclass_of_builtin_class - tests/test_extensions/test_ext_autodoc.py::test_automethod_for_builtin - tests/test_extensions/test_ext_autodoc.py::test_cython - tests/test_extensions/test_ext_autodoc.py::test_format_signature - tests/test_extensions/test_ext_autodoc.py::test_partialfunction - tests/test_extensions/test_ext_autodoc_autoclass.py::test_autodoc_process_bases - tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_decendants_of_generic_type - tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_subclass_of_generic_type - tests/test_extensions/test_ext_autodoc_autofunction.py::test_builtin_function - tests/test_extensions/test_ext_autodoc_autofunction.py::test_methoddescriptor - tests/test_extensions/test_ext_autodoc_automodule.py::test_automodule_inherited_members - tests/test_extensions/test_ext_autodoc_preserve_defaults.py::test_preserve_defaults_special_constructs - tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module - tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module_skipped - tests/test_util/test_util_inspect.py::test_isattributedescriptor - tests/test_util/test_util_inspect.py::test_signature - tests/test_util/test_util_typing.py::test_is_invalid_builtin_class - ) - ;; - esac - - # note: pytest-xdist causes random test failures - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} diff --git a/dev-python/sphinx/sphinx-7.3.7-r2.ebuild b/dev-python/sphinx/sphinx-7.3.7-r2.ebuild new file mode 100644 index 000000000000..cd4829e1be06 --- /dev/null +++ b/dev-python/sphinx/sphinx-7.3.7-r2.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 + +DESCRIPTION="Python documentation generator" +HOMEPAGE=" + https://www.sphinx-doc.org/ + https://github.com/sphinx-doc/sphinx/ + https://pypi.org/project/Sphinx/ +" +SRC_URI=" + https://github.com/sphinx-doc/sphinx/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="doc latex" + +RDEPEND=" + >=dev-python/alabaster-0.7.14[${PYTHON_USEDEP}] + >=dev-python/Babel-2.9[${PYTHON_USEDEP}] + =dev-python/docutils-0.18.1[${PYTHON_USEDEP}] + >=dev-python/imagesize-1.3[${PYTHON_USEDEP}] + >=dev-python/jinja-3.0[${PYTHON_USEDEP}] + >=dev-python/pygments-2.14[${PYTHON_USEDEP}] + >=dev-python/requests-2.25.0[${PYTHON_USEDEP}] + >=dev-python/snowballstemmer-2.0[${PYTHON_USEDEP}] + dev-python/sphinxcontrib-applehelp[${PYTHON_USEDEP}] + dev-python/sphinxcontrib-devhelp[${PYTHON_USEDEP}] + dev-python/sphinxcontrib-jsmath[${PYTHON_USEDEP}] + >=dev-python/sphinxcontrib-htmlhelp-2.0.0[${PYTHON_USEDEP}] + >=dev-python/sphinxcontrib-serializinghtml-1.1.9[${PYTHON_USEDEP}] + dev-python/sphinxcontrib-qthelp[${PYTHON_USEDEP}] + >=dev-python/packaging-21.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/tomli-2[${PYTHON_USEDEP}] + ' 3.10) + latex? ( + dev-texlive/texlive-latexextra + dev-texlive/texlive-luatex + app-text/dvipng + ) + !dev-python/namespace-sphinxcontrib +" +BDEPEND=" + doc? ( + dev-python/sphinxcontrib-websupport[${PYTHON_USEDEP}] + media-gfx/graphviz + ) + test? ( + app-text/dvipng + >=dev-python/cython-3.0.0[${PYTHON_USEDEP}] + >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}] + >=dev-python/setuptools-67.0[${PYTHON_USEDEP}] + dev-texlive/texlive-fontsextra + dev-texlive/texlive-latexextra + dev-texlive/texlive-luatex + virtual/imagemagick-tools[jpeg,png,svg] + ) +" + +PATCHES=( + "${FILESDIR}/sphinx-3.2.1-doc-link.patch" + "${FILESDIR}/sphinx-4.3.2-doc-link.patch" + # https://github.com/sphinx-doc/sphinx/pull/12362 + "${FILESDIR}/${P}-opt-defusedxml.patch" +) + +distutils_enable_tests pytest + +python_prepare_all() { + # disable internet access + sed -i -e 's:^intersphinx_mapping:disabled_&:' \ + doc/conf.py || die + + distutils-r1_python_prepare_all +} + +python_compile_all() { + # we can't use distutils_enable_sphinx because it would + # introduce a dep on itself + use doc && build_sphinx doc +} + +python_test() { + mkdir -p "${BUILD_DIR}/sphinx_tempdir" || die + local -x SPHINX_TEST_TEMPDIR="${BUILD_DIR}/sphinx_tempdir" + + local EPYTEST_DESELECT=() + case ${EPYTHON} in + pypy3) + EPYTEST_DESELECT+=( + tests/test_extensions/test_ext_autodoc.py::test_autodoc_exception + tests/test_extensions/test_ext_autodoc.py::test_autodoc_ignore_module_all + tests/test_extensions/test_ext_autodoc.py::test_autodoc_inherited_members_None + tests/test_extensions/test_ext_autodoc.py::test_autodoc_subclass_of_builtin_class + tests/test_extensions/test_ext_autodoc.py::test_automethod_for_builtin + tests/test_extensions/test_ext_autodoc.py::test_cython + tests/test_extensions/test_ext_autodoc.py::test_format_signature + tests/test_extensions/test_ext_autodoc.py::test_partialfunction + tests/test_extensions/test_ext_autodoc_autoclass.py::test_autodoc_process_bases + tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_decendants_of_generic_type + tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_subclass_of_generic_type + tests/test_extensions/test_ext_autodoc_autofunction.py::test_builtin_function + tests/test_extensions/test_ext_autodoc_autofunction.py::test_methoddescriptor + tests/test_extensions/test_ext_autodoc_automodule.py::test_automodule_inherited_members + tests/test_extensions/test_ext_autodoc_preserve_defaults.py::test_preserve_defaults_special_constructs + tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module + tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module_skipped + tests/test_util/test_util_inspect.py::test_isattributedescriptor + tests/test_util/test_util_inspect.py::test_signature + tests/test_util/test_util_typing.py::test_is_invalid_builtin_class + ) + ;; + esac + + # note: pytest-xdist causes random test failures + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest +} -- cgit v1.3