[gentoo-dev] [PATCH 5/5] dev-python/python-poppler-qt5: Bump to 21.3.0

2022-05-10 Thread Michał Górny
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

2022-05-10 Thread Michał Górny
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

2022-05-10 Thread Michał Górny
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

2022-05-10 Thread Michał Górny
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

2022-05-10 Thread Michał Górny
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

2022-05-10 Thread Michał Górny
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

2022-05-10 Thread Ulrich Mueller
> 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

2022-05-10 Thread Michał Górny
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