[gentoo-dev] [PATCH 5/5] dev-python/python-poppler-qt5: Bump to 21.3.0
Signed-off-by: Michał Górny --- dev-python/python-poppler-qt5/Manifest| 1 + .../python-poppler-qt5-21.3.0.ebuild | 33 +++ 2 files changed, 34 insertions(+) create mode 100644 dev-python/python-poppler-qt5/python-poppler-qt5-21.3.0.ebuild diff --git a/dev-python/python-poppler-qt5/Manifest b/dev-python/python-poppler-qt5/Manifest index 1139449118c1..ac4ae3ac9c84 100644 --- a/dev-python/python-poppler-qt5/Manifest +++ b/dev-python/python-poppler-qt5/Manifest @@ -1 +1,2 @@ DIST python-poppler-qt5-0.75.0.tar.gz 23281 BLAKE2B 06b2b0899d2a3cfc84e623b98cc3379aa45ac9ca9267f25168cce04f2ed761fd897043376fda3386b2daff2b46850b24782cafd6aabb13a8e7d6f3920b55a02c SHA512 2f03036a2eaeb8e28875f19a813ff85a91c1e9a94301bdb736ecc50e7ececb4de2622728e6fecbf64e114435529f82b6afd23d772e2d3910ae03d5d2b5da3205 +DIST python-poppler-qt5-21.3.0.tar.gz 25641 BLAKE2B 5937f1ddc1493bb1ef1d98b91dd8ccec4bd8c835956d84c8d7ce7a1cedcbe16854861e1f13825812e0f74c335020f0d74aad2d2bbc7a5780c6eb3ac77437f13b SHA512 cc942a860c2c999ff04fb0468b1556b0e23e7aa19a0185a39c5e903e717dca64bcbd51b8fe34b6885bd789cbf5cc1080c2ca1dcee30b3e69fa1721618e8db278 diff --git a/dev-python/python-poppler-qt5/python-poppler-qt5-21.3.0.ebuild b/dev-python/python-poppler-qt5/python-poppler-qt5-21.3.0.ebuild new file mode 100644 index ..11ca6622f42e --- /dev/null +++ b/dev-python/python-poppler-qt5/python-poppler-qt5-21.3.0.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=sip +PYTHON_COMPAT=( python3_{8..10} ) + +inherit distutils-r1 multiprocessing qmake-utils + +DESCRIPTION="Python binding for libpoppler-qt5" +HOMEPAGE="https://github.com/frescobaldi/python-poppler-qt5"; +SRC_URI="https://github.com/frescobaldi/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=" + app-text/poppler[qt5] + dev-python/PyQt5[${PYTHON_USEDEP}] +" +DEPEND="${RDEPEND}" + +src_configure() { + DISTUTILS_ARGS=( + --jobs="$(makeopts_jobs)" + --qmake="$(qt5_get_bindir)"/qmake + --qmake-setting="$(qt5_get_qmake_args)" + --verbose + ) +} -- 2.35.1
[gentoo-dev] [PATCH 4/5] distutils-r1.eclass: Introduce sipbuild backend support
Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 53 -- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 17286070e712..0962ef5e2356 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -114,6 +114,8 @@ esac # # - setuptools - distutils or setuptools (incl. legacy mode) # +# - sip - sipbuild backend +# # - standalone - standalone build systems without external deps #(used for bootstrapping). # @@ -227,6 +229,10 @@ _distutils_set_globals() { >=dev-python/setuptools-60.5.0[${PYTHON_USEDEP}] dev-python/wheel[${PYTHON_USEDEP}]' ;; + sip) + bdep+=' + >=dev-python/sip-6.5.0-r1[${PYTHON_USEDEP}]' + ;; standalone) ;; *) @@ -388,8 +394,19 @@ unset -f _distutils_set_globals # @ECLASS_VARIABLE: DISTUTILS_ARGS # @DEFAULT_UNSET # @DESCRIPTION: -# An array containing options to be passed to setup.py. They are passed -# before the default arguments, i.e. before the first command. +# An array containing options to be passed to the build system. +# Supported by a subset of build systems used by the eclass. +# +# For setuptools, the arguments will be passed as first parameters +# to setup.py invocations (via esetup.py), as well as to the PEP517 +# backend. For future compatibility, only global options should be used +# and specifying commands should be avoided. +# +# For sip, the options are passed to the PEP517 backend in a form +# resembling sip-build calls. Options taking arguments need to +# be specified in the "--key=value" form, while flag options as "--key". +# If an option takes multiple arguments, it can be specified multiple +# times, same as for sip-build. # # Example: # @CODE @@ -920,6 +937,11 @@ _distutils-r1_print_package_versions() { dev-python/wheel ) ;; + sip) + packages+=( + dev-python/sip + ) + ;; esac else case ${DISTUTILS_USE_SETUPTOOLS} in @@ -1104,6 +1126,9 @@ _distutils-r1_backend_to_key() { setuptools.build_meta|setuptools.build_meta:__legacy__) echo setuptools ;; + sipbuild.api) + echo sip + ;; *) die "Unknown backend: ${backend}" ;; @@ -1202,6 +1227,30 @@ distutils_pep517_install() { EOF ) ;; + sip) + # NB: for practical reasons, we support only --foo=bar, + # not --foo bar + local arg + for arg in "${DISTUTILS_ARGS[@]}"; do + [[ ${arg} != -* ]] && + die "Bare arguments in DISTUTILS_ARGS unsupported: ${arg}" + done + + config_settings=$( + "${EPYTHON}" - "${DISTUTILS_ARGS[@]}" <<-EOF || die + import collections + import json + import sys + + args = collections.defaultdict(list) + for arg in (x.split("=", 1) for x in sys.argv[1:]): \ + args[arg[0]].extend( + [arg[1]] if len(arg) > 1 else []) + + print(json.dumps(args)) + EOF + ) + ;; *) die "DISTUTILS_ARGS are not supported by ${DISTUTILS_USE_PEP517}" ;; -- 2.35.1
[gentoo-dev] [PATCH 3/5] qmake-utils.eclass: Reuse qt5_get_qmake_args in eqmake5
Signed-off-by: Michał Górny --- eclass/qmake-utils.eclass | 28 +--- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/eclass/qmake-utils.eclass b/eclass/qmake-utils.eclass index a4be44fa65a5..a86ce1fbabb8 100644 --- a/eclass/qmake-utils.eclass +++ b/eclass/qmake-utils.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: qmake-utils.eclass @@ -102,28 +102,10 @@ eqmake5() { ebegin "Running qmake" - "$(qt5_get_bindir)"/qmake \ - -makefile \ - QMAKE_AR="$(tc-getAR) cqs" \ - QMAKE_CC="$(tc-getCC)" \ - QMAKE_LINK_C="$(tc-getCC)" \ - QMAKE_LINK_C_SHLIB="$(tc-getCC)" \ - QMAKE_CXX="$(tc-getCXX)" \ - QMAKE_LINK="$(tc-getCXX)" \ - QMAKE_LINK_SHLIB="$(tc-getCXX)" \ - QMAKE_OBJCOPY="$(tc-getOBJCOPY)" \ - QMAKE_RANLIB= \ - QMAKE_STRIP= \ - QMAKE_CFLAGS="${CFLAGS}" \ - QMAKE_CFLAGS_RELEASE= \ - QMAKE_CFLAGS_DEBUG= \ - QMAKE_CXXFLAGS="${CXXFLAGS}" \ - QMAKE_CXXFLAGS_RELEASE= \ - QMAKE_CXXFLAGS_DEBUG= \ - QMAKE_LFLAGS="${LDFLAGS}" \ - QMAKE_LFLAGS_RELEASE= \ - QMAKE_LFLAGS_DEBUG= \ - "$@" + local -a args + mapfile -t args <<<"$(qt5_get_qmake_args)" + # NB: we're passing literal quotes in but qmake doesn't seem to mind + "$(qt5_get_bindir)"/qmake -makefile "${args[@]}" "$@" if ! eend $? ; then echo -- 2.35.1
[gentoo-dev] [PATCH 2/5] qmake-utils.eclass: Add a function to get qmake args
Signed-off-by: Michał Górny --- eclass/qmake-utils.eclass | 27 +++ 1 file changed, 27 insertions(+) diff --git a/eclass/qmake-utils.eclass b/eclass/qmake-utils.eclass index 1f09cbd9ca77..a4be44fa65a5 100644 --- a/eclass/qmake-utils.eclass +++ b/eclass/qmake-utils.eclass @@ -60,6 +60,33 @@ qt5_get_plugindir() { echo $(qt5_get_libdir)/qt5/plugins } +# @FUNCTION: qt5_get_qmake_args +# @DESCRIPTION: +# Echoes a multi-line string containing arguments to pass to qmake. +qt5_get_qmake_args() { + cat <<-EOF + QMAKE_AR="$(tc-getAR) cqs" + QMAKE_CC="$(tc-getCC)" + QMAKE_LINK_C="$(tc-getCC)" + QMAKE_LINK_C_SHLIB="$(tc-getCC)" + QMAKE_CXX="$(tc-getCXX)" + QMAKE_LINK="$(tc-getCXX)" + QMAKE_LINK_SHLIB="$(tc-getCXX)" + QMAKE_OBJCOPY="$(tc-getOBJCOPY)" + QMAKE_RANLIB= + QMAKE_STRIP= + QMAKE_CFLAGS="${CFLAGS}" + QMAKE_CFLAGS_RELEASE= + QMAKE_CFLAGS_DEBUG= + QMAKE_CXXFLAGS="${CXXFLAGS}" + QMAKE_CXXFLAGS_RELEASE= + QMAKE_CXXFLAGS_DEBUG= + QMAKE_LFLAGS="${LDFLAGS}" + QMAKE_LFLAGS_RELEASE= + QMAKE_LFLAGS_DEBUG= + EOF +} + # @FUNCTION: eqmake5 # @USAGE: [arguments for qmake] # @DESCRIPTION: -- 2.35.1
[gentoo-dev] [PATCH 1/5] dev-python/sip: Backport PEP517 argument passing support
Signed-off-by: Michał Górny --- .../sip/files/sip-6.5.0-pep517-args.patch | 190 ++ dev-python/sip/sip-6.5.0-r1.ebuild| 36 2 files changed, 226 insertions(+) create mode 100644 dev-python/sip/files/sip-6.5.0-pep517-args.patch create mode 100644 dev-python/sip/sip-6.5.0-r1.ebuild diff --git a/dev-python/sip/files/sip-6.5.0-pep517-args.patch b/dev-python/sip/files/sip-6.5.0-pep517-args.patch new file mode 100644 index ..c4d39dcf6156 --- /dev/null +++ b/dev-python/sip/files/sip-6.5.0-pep517-args.patch @@ -0,0 +1,190 @@ +Backport from https://www.riverbankcomputing.com/hg/sip/ + +changeset: 2771:8543f04b374f +branch: 6.6-maint +tag: tip +user:Phil Thompson +date:Tue May 10 13:58:28 2022 +0100 +summary: Fixed the PEP571 backend to handle multiple instances of the same config + +changeset: 2769:c02af095a016 +branch: 6.6-maint +user:Phil Thompson +date:Sat May 07 15:18:14 2022 +0100 +summary: Fix an API backward incompatibility. + +changeset: 2768:98dbce3e62f1 +branch: 6.6-maint +user:Phil Thompson +date:Sat May 07 15:03:49 2022 +0100 +summary: Any config settings passed by a PEP 571 frontend are now used. + +diff -r 8583e2bb1b32 sipbuild/abstract_project.py +--- a/sipbuild/abstract_project.py Thu Nov 25 18:15:32 2021 + b/sipbuild/abstract_project.py Tue May 10 16:15:30 2022 +0200 +@@ -1,4 +1,4 @@ +-# Copyright (c) 2020, Riverbank Computing Limited ++# Copyright (c) 2022, Riverbank Computing Limited + # All rights reserved. + # + # This copy of SIP is licensed for use under the terms of the SIP License +@@ -34,7 +34,7 @@ + """ This specifies the API of a project. """ + + @classmethod +-def bootstrap(cls, tool, tool_description=''): ++def bootstrap(cls, tool, tool_description='', arguments=None): + """ Return an AbstractProject instance fully configured for a + particular command line tool. + """ +@@ -79,6 +79,10 @@ + "The project factory did not return an AbstractProject " + "object") + ++# We set this as an attribute rather than change the API of the ctor or ++# setup(). ++project.arguments = arguments ++ + # Complete the configuration of the project. + project.setup(pyproject, tool, tool_description) + +diff -r 8583e2bb1b32 sipbuild/api.py +--- a/sipbuild/api.py Thu Nov 25 18:15:32 2021 + b/sipbuild/api.py Tue May 10 16:15:30 2022 +0200 +@@ -1,4 +1,4 @@ +-# Copyright (c) 2019, Riverbank Computing Limited ++# Copyright (c) 2022, Riverbank Computing Limited + # All rights reserved. + # + # This copy of SIP is licensed for use under the terms of the SIP License +@@ -28,10 +28,8 @@ + def build_sdist(sdist_directory, config_settings=None): + """ The PEP 517 hook for building an sdist from pyproject.toml. """ + +-# Note that we ignore config_settings until we have a frontend that we can +-# fully test with. (pip seems lacking at the moment.) +- +-project = AbstractProject.bootstrap('pep517') ++project = AbstractProject.bootstrap('sdist', ++arguments=_convert_config_settings(config_settings)) + + # pip executes this in a separate process and doesn't handle exceptions + # very well. However it does capture stdout and (eventually) show it to +@@ -45,10 +43,8 @@ + def build_wheel(wheel_directory, config_settings=None, metadata_directory=None): + """ The PEP 517 hook for building a wheel from pyproject.toml. """ + +-# Note that we ignore config_settings until we have a frontend that we can +-# fully test with. (pip seems lacking at the moment.) +- +-project = AbstractProject.bootstrap('pep517') ++project = AbstractProject.bootstrap('wheel', ++arguments=_convert_config_settings(config_settings)) + + # pip executes this in a separate process and doesn't handle exceptions + # very well. However it does capture stdout and (eventually) show it to +@@ -57,3 +53,26 @@ + return project.build_wheel(wheel_directory) + except Exception as e: + handle_exception(e) ++ ++ ++def _convert_config_settings(config_settings): ++""" Return any configuration settings from the frontend to a pseudo-command ++line. ++""" ++ ++if config_settings is None: ++config_settings = {} ++ ++args = [] ++ ++for name, value in config_settings.items(): ++if value: ++if not isinstance(value, list): ++value = [value] ++ ++for m_value in value: ++args.append(name + '=' + m_value) ++else: ++args.append(name) ++ ++return args +diff -r 8583e2bb1b32 sipbuild/configurable.py +--- a/sipbuild/configurable.py Thu Nov 25 18:15:32 2021 + b/sipbuild/configurable.py Tue May 10 16:15:30 2022 +0200 +@@ -1,4 +1,4 @@ +-# Copyright (c) 2021, Riverba
[gentoo-dev] [PATCH 0/5] distutils-r1.eclass: sipbuild PEP517 support
Hi, Here's a patchset to support building packages using the sipbuild (dev-python/sip) backend. This requires an upstream backport to support passing options to the backend, as well as qmake-utils changes to get qmake options in a form suitable for passing to it. An example ebuild is also included. -- Best regards, Michał Górny Michał Górny (5): dev-python/sip: Backport PEP517 argument passing support qmake-utils.eclass: Add a function to get qmake args qmake-utils.eclass: Reuse qt5_get_qmake_args in eqmake5 distutils-r1.eclass: Introduce sipbuild backend support dev-python/python-poppler-qt5: Bump to 21.3.0 dev-python/python-poppler-qt5/Manifest| 1 + .../python-poppler-qt5-21.3.0.ebuild | 33 +++ .../sip/files/sip-6.5.0-pep517-args.patch | 190 ++ dev-python/sip/sip-6.5.0-r1.ebuild| 36 eclass/distutils-r1.eclass| 53 - eclass/qmake-utils.eclass | 55 ++--- 6 files changed, 343 insertions(+), 25 deletions(-) create mode 100644 dev-python/python-poppler-qt5/python-poppler-qt5-21.3.0.ebuild create mode 100644 dev-python/sip/files/sip-6.5.0-pep517-args.patch create mode 100644 dev-python/sip/sip-6.5.0-r1.ebuild -- 2.35.1
Re: [gentoo-dev] [PATCH 7/7] cmake-utils.eclass: Drop @SEE which is not a documentation keyword
> On Tue, 10 May 2022, Ulrich Müller wrote: > eclass/cmake-utils.eclass | 1 - > 1 file changed, 1 deletion(-) I'm going to drop this commit, because cmake-utils is on its way out of the tree. The rest of the series doesn't change. Ulrich
[gentoo-dev] [PATCH] distutils-r1.eclass: Update license stripping for hatch
Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 0962ef5e2356..ed368da79896 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1277,9 +1277,12 @@ distutils_pep517_install() { die "Wheel install failed" # remove installed licenses - find "${root}$(python_get_sitedir)" \ - '(' -path '*.dist-info/COPYING*' -o \ - -path '*.dist-info/LICENSE*' ')' -delete || die + find "${root}$(python_get_sitedir)" -depth \ + \( -path '*.dist-info/COPYING*' \ + -o -path '*.dist-info/LICENSE*' \ + -o -path '*.dist-info/license_files/*' \ + -o -path '*.dist-info/license_files' \ + \) -delete || die # clean the build tree; otherwise we may end up with PyPy3 # extensions duplicated into CPython dists -- 2.35.1