Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pyqt-builder for 
openSUSE:Factory checked in at 2024-11-05 15:39:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyqt-builder (Old)
 and      /work/SRC/openSUSE:Factory/.python-pyqt-builder.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pyqt-builder"

Tue Nov  5 15:39:43 2024 rev:22 rq:1221009 version:1.16.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyqt-builder/python-pyqt-builder.changes  
2024-04-23 18:55:13.052613899 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pyqt-builder.new.2020/python-pyqt-builder.changes
        2024-11-05 15:39:54.711285226 +0100
@@ -1,0 +2,15 @@
+Mon Nov  4 13:05:02 UTC 2024 - Daniel Garcia <daniel.gar...@suse.com>
+
+- Use pypi url for source
+- Update to 1.16.4
+  * Support for Windows on Arm for Qt6
+  * Support for Linux on Arm for Qt6
+1.16.3:
+  * Link to the stable SIP documentation
+  * missing multimedia libraries in Qt v6.7
+  * Added support for sub-wheels to pyqt-qt-wheel
+1.16.2:
+  * The links to the SIP documentation have been fixed.
+  * The ICU libraries were missing from the Linux Qt v6.7 wheels.
+
+-------------------------------------------------------------------

Old:
----
  pyqt_builder-1.16.1.tar.gz

New:
----
  pyqt_builder-1.16.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pyqt-builder.spec ++++++
--- /var/tmp/diff_new_pack.bixZ4R/_old  2024-11-05 15:39:55.247307698 +0100
+++ /var/tmp/diff_new_pack.bixZ4R/_new  2024-11-05 15:39:55.247307698 +0100
@@ -19,13 +19,12 @@
 %define mname pyqt-builder
 %{?sle15_python_module_pythons}
 Name:           python-%{mname}
-Version:        1.16.1
+Version:        1.16.4
 Release:        0
 Summary:        The PEP 517 compliant PyQt build system
 License:        BSD-2-Clause
 URL:            https://github.com/Python-PyQt/PyQt-builder
-#Source0:        
https://files.pythonhosted.org/packages/source/P/PyQt-builder/PyQt-builder-%%{version}.tar.gz
-Source0:        
https://www.riverbankcomputing.com/pypi/packages/snapshots/PyQt-builder/pyqt_builder-%{version}.tar.gz
+Source0:        
https://files.pythonhosted.org/packages/source/P/PyQt-builder/pyqt_builder-%{version}.tar.gz
 # PATCH-FEATURE-SUSE support-python3.6.patch alarr...@suse.com -- The PyQt5 
packages have the SLE15 python module macro, but it is disable in some 
maintance projects
 Patch0:         support-python3.6.patch
 BuildRequires:  %{python_module base >= 3.6}

++++++ pyqt_builder-1.16.1.tar.gz -> pyqt_builder-1.16.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyqt_builder-1.16.1/PKG-INFO 
new/pyqt_builder-1.16.4/PKG-INFO
--- old/pyqt_builder-1.16.1/PKG-INFO    2024-04-21 01:32:11.054156800 +0200
+++ new/pyqt_builder-1.16.4/PKG-INFO    2024-07-12 18:07:27.087464600 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: PyQt-builder
-Version: 1.16.1
+Version: 1.16.4
 Summary: The PyQt build system
 Author-email: Phil Thompson <p...@riverbankcomputing.com>
 License: Copyright 2024 Phil Thompson <p...@riverbankcomputing.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyqt_builder-1.16.1/PyQt_builder.egg-info/PKG-INFO 
new/pyqt_builder-1.16.4/PyQt_builder.egg-info/PKG-INFO
--- old/pyqt_builder-1.16.1/PyQt_builder.egg-info/PKG-INFO      2024-04-21 
01:32:10.000000000 +0200
+++ new/pyqt_builder-1.16.4/PyQt_builder.egg-info/PKG-INFO      2024-07-12 
18:07:27.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: PyQt-builder
-Version: 1.16.1
+Version: 1.16.4
 Summary: The PyQt build system
 Author-email: Phil Thompson <p...@riverbankcomputing.com>
 License: Copyright 2024 Phil Thompson <p...@riverbankcomputing.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyqt_builder-1.16.1/pyqtbuild/_version.py 
new/pyqt_builder-1.16.4/pyqtbuild/_version.py
--- old/pyqt_builder-1.16.1/pyqtbuild/_version.py       2024-04-21 
01:32:10.000000000 +0200
+++ new/pyqt_builder-1.16.4/pyqtbuild/_version.py       2024-07-12 
18:07:26.000000000 +0200
@@ -12,5 +12,5 @@
 __version_tuple__: VERSION_TUPLE
 version_tuple: VERSION_TUPLE
 
-__version__ = version = '1.16.1'
-__version_tuple__ = version_tuple = (1, 16, 1)
+__version__ = version = '1.16.4'
+__version_tuple__ = version_tuple = (1, 16, 4)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyqt_builder-1.16.1/pyqtbuild/bundle/abstract_package.py 
new/pyqt_builder-1.16.4/pyqtbuild/bundle/abstract_package.py
--- old/pyqt_builder-1.16.1/pyqtbuild/bundle/abstract_package.py        
2024-04-21 01:31:59.000000000 +0200
+++ new/pyqt_builder-1.16.4/pyqtbuild/bundle/abstract_package.py        
2024-06-21 17:28:00.000000000 +0200
@@ -58,7 +58,7 @@
         # This default implementation does nothing.
 
     def bundle_qt(self, target_qt_dir, platform_tag, exclude, ignore_missing,
-            bindings=True):
+            bindings=True, subwheel=None):
         """ Bundle the relevant parts of the Qt installation.  Returns True if
         the LGPL applies to all bundled parts.
         """
@@ -113,7 +113,7 @@
             lgpl = lgpl and metadata.lgpl
 
             metadata.bundle(name, target_qt_dir, self._qt_dir, platform_tag,
-                    self.qt_version, ignore_missing)
+                    self.qt_version, ignore_missing, subwheel)
 
         return lgpl
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyqt_builder-1.16.1/pyqtbuild/bundle/packages/pyqt6.py 
new/pyqt_builder-1.16.4/pyqtbuild/bundle/packages/pyqt6.py
--- old/pyqt_builder-1.16.1/pyqtbuild/bundle/packages/pyqt6.py  2024-04-21 
01:31:59.000000000 +0200
+++ new/pyqt_builder-1.16.4/pyqtbuild/bundle/packages/pyqt6.py  2024-06-21 
17:28:00.000000000 +0200
@@ -17,6 +17,14 @@
         VersionedMetadata(version=(6, 2, 0), qml=True),
 
     'QtCore': (
+        VersionedMetadata(version=(6, 7, 0),
+            other_lib_deps={
+                'linux': ('libicui18n.so.73', 'libicuuc.so.73',
+                          'libicudata.so.73')},
+            translations=('qt_', 'qt_help', 'qtbase', 'qtconnectivity',
+                'qtdeclarative', 'qtlocation', 'qtmultimedia',
+                'qtquickcontrols2', 'qtserialport', 'qtwebsockets'),
+            excluded_plugins=('designer', 'qmltooling')),
         VersionedMetadata(version=(6, 2, 0),
             other_lib_deps={
                 'linux': ('libicui18n.so.56', 'libicuuc.so.56',
@@ -57,10 +65,27 @@
     #'QtLocation':
     #    VersionedMetadata(qml=True),
 
-    'QtMultimedia':
-        VersionedMetadata(version=(6, 2, 0),
+    'QtMultimedia': (
+        VersionedMetadata(version=(6, 7, 1),
                 lib_deps={'': ('QtMultimediaQuick', )},
+                other_lib_deps={
+                    'macos': ('libavcodec.60.dylib', 'libavformat.60.dylib',
+                            'libavutil.58.dylib', 'libswresample.4.dylib',
+                            'libswscale.7.dylib'),
+                    'win': ('avcodec-60.dll', 'avformat-60.dll',
+                            'avutil-58.dll', 'swresample-4.dll',
+                            'swscale-7.dll')},
+                qml=True),
+        VersionedMetadata(version=(6, 7, 0),
+                lib_deps={'': ('QtMultimediaQuick', )},
+                other_lib_deps={
+                    'win': ('avcodec-60.dll', 'avformat-60.dll',
+                            'avutil-58.dll', 'swresample-4.dll',
+                            'swscale-7.dll')},
                 qml=True),
+        VersionedMetadata(version=(6, 2, 0),
+                lib_deps={'': ('QtMultimediaQuick', )},
+                qml=True)),
 
     'QtMultimediaWidgets':
         VersionedMetadata(version=(6, 2, 0)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyqt_builder-1.16.1/pyqtbuild/bundle/packages/pyqt6_webengine.py 
new/pyqt_builder-1.16.4/pyqtbuild/bundle/packages/pyqt6_webengine.py
--- old/pyqt_builder-1.16.1/pyqtbuild/bundle/packages/pyqt6_webengine.py        
2024-04-21 01:31:59.000000000 +0200
+++ new/pyqt_builder-1.16.4/pyqtbuild/bundle/packages/pyqt6_webengine.py        
2024-06-21 17:28:00.000000000 +0200
@@ -23,7 +23,9 @@
                         "Enable QtWebEngineProcess to find it's 
resources.\n"), )},
             others={
                 'linux': ('resources', 'translations/qtwebengine_locales'),
-                'win':   ('resources', 'translations\\qtwebengine_locales')}),
+                'win':   ('resources', 'translations\\qtwebengine_locales')},
+            subwheel_files={
+                '':      (('qtlib', 'QtWebEngineCore'), )}),
 
     'QtWebEngineQuick':
         VersionedMetadata(version=(6, 2, 0),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyqt_builder-1.16.1/pyqtbuild/bundle/qt_metadata.py 
new/pyqt_builder-1.16.4/pyqtbuild/bundle/qt_metadata.py
--- old/pyqt_builder-1.16.1/pyqtbuild/bundle/qt_metadata.py     2024-04-21 
01:31:59.000000000 +0200
+++ new/pyqt_builder-1.16.4/pyqtbuild/bundle/qt_metadata.py     2024-06-21 
17:28:00.000000000 +0200
@@ -21,7 +21,8 @@
     def __init__(self, *, version=None, name=None, lib_deps=None,
             other_lib_deps=None, exes=None, files=None, others=None, dll=True,
             qml=False, qml_names=None, translations=None,
-            excluded_plugins=None, lgpl=True, legacy=False):
+            excluded_plugins=None, lgpl=True, legacy=False,
+            subwheel_files=None):
         """ Initialise the versioned bindings. """
 
         self._version = version
@@ -36,15 +37,16 @@
         self._qml_names = qml_names
         self._translations = () if translations is None else translations
         self._excluded_plugins = excluded_plugins
+        self._subwheel_files = {} if subwheel_files is None else subwheel_files
 
         self.lgpl = lgpl
         self.legacy = legacy
 
     def bundle(self, name, target_qt_dir, qt_dir, platform_tag, qt_version,
-            ignore_missing):
+            ignore_missing, subwheel):
         """ Bundle part of Qt as defined by the meta-data. """
 
-        verbose("Bundling {0}".format(name))
+        verbose(f"Bundling {name}")
 
         if self._name is None:
             self._name = name
@@ -65,11 +67,55 @@
             if macos_thin_arch == 'arm64' and 
AbstractPackage.missing_executable('codesign'):
                 raise UserException(
                         "'codesign' from Xcode must be installed on your 
system")
+        # Bundle any sub-wheel files.
+        if subwheel is True:
+            for metadata_arch, subwheel_files in self._subwheel_files.items():
+                if self._is_platform(metadata_arch, platform_tag):
+                    # Bundle each file in the sub-wheel according to its type
+                    # (either 'data', 'exe', 'lib' or 'qtlib').
+                    for file_type, file_name in subwheel_files:
+                        if file_type == 'data':
+                            self._bundle_file(file_name, target_qt_dir, qt_dir,
+                                    platform_tag, macos_thin_arch,
+                                    ignore_missing, might_be_code=False)
+
+                        elif file_type == 'exe':
+                            self._bundle_exe(file_name, target_qt_dir, qt_dir,
+                                    qt_version, platform_tag, macos_thin_arch,
+                                    ignore_missing)
+
+                        elif file_type == 'lib':
+                            self._bundle_library(file_name, target_qt_dir,
+                                    qt_dir, platform_tag, macos_thin_arch,
+                                    ignore_missing)
+
+                        elif file_type == 'qtlib':
+                            self._bundle_qt_library(file_name, target_qt_dir,
+                                    qt_dir, qt_version, platform_tag,
+                                    macos_thin_arch, ignore_missing,
+                                    bundle_resources=False)
+
+            # There is nothing else to do.
+            return
+
+        skip_files = []
+
+        # Build the list of files to skip as they will be in the sub-wheel.
+        if subwheel is False:
+            for metadata_arch, subwheel_files in self._subwheel_files.items():
+                if self._is_platform(metadata_arch, platform_tag):
+                    for file_type, file_name in subwheel_files:
+                        if file_type == 'qtlib':
+                            file_name = self._impl_from_library(file_name,
+                                    platform_tag, qt_version)
+
+                        skip_files.append(file_name)
 
         # Bundle the Qt library that has been wrapped (if there is one).
         if self._dll:
             self._bundle_qt_library(self._name, target_qt_dir, qt_dir,
-                    qt_version, platform_tag, macos_thin_arch, ignore_missing)
+                    qt_version, platform_tag, macos_thin_arch, ignore_missing,
+                    skip_files=skip_files)
 
         # Bundle any other dependent Qt libraries.
         for metadata_arch, libs in self._lib_deps.items():
@@ -77,7 +123,7 @@
                 for lib in libs:
                     self._bundle_qt_library(lib, target_qt_dir, qt_dir,
                             qt_version, platform_tag, macos_thin_arch,
-                            ignore_missing)
+                            ignore_missing, skip_files=skip_files)
 
         # Bundle any other libraries.
         lib_contents = None
@@ -97,26 +143,19 @@
                             if fnmatch.fnmatch(qt_lib, lib):
                                 self._bundle_library(qt_lib, target_qt_dir,
                                         qt_dir, platform_tag, macos_thin_arch,
-                                        ignore_missing)
+                                        ignore_missing, skip_files=skip_files)
                     else:
                         self._bundle_library(lib, target_qt_dir, qt_dir,
-                                platform_tag, macos_thin_arch, ignore_missing)
+                                platform_tag, macos_thin_arch, ignore_missing,
+                                skip_files=skip_files)
 
         # Bundle any executables.
         for metadata_arch, exes in self._exes.items():
             if self._is_platform(metadata_arch, platform_tag):
                 for exe in exes:
-                    bundled_exe = self._bundle_file(exe, target_qt_dir, qt_dir,
-                            platform_tag, macos_thin_arch, ignore_missing)
-
-                    if bundled_exe is not None:
-                        if self._is_platform('linux', platform_tag):
-                            self._fix_linux_executable(bundled_exe, qt_version)
-                        elif self._is_platform('macos', platform_tag):
-                            self._fix_macos_executable(bundled_exe, qt_version,
-                                    macos_thin_arch)
-                        elif self._is_platform('win', platform_tag):
-                            self._fix_win_executable(bundled_exe)
+                    self._bundle_exe(exe, target_qt_dir, qt_dir, qt_version,
+                            platform_tag, macos_thin_arch, ignore_missing,
+                            skip_files=skip_files)
 
         # Bundle any QML files.
         if self._qml:
@@ -127,7 +166,7 @@
             for qml_subdir in qml_names:
                 self._bundle_nondebug(os.path.join('qml', qml_subdir),
                         target_qt_dir, qt_dir, platform_tag, macos_thin_arch,
-                        ignore_missing)
+                        ignore_missing, skip_files=skip_files)
 
         # Bundle any plugins.  We haven't done the analysis of which plugins
         # belong to which package so we assume that only the QtCore package
@@ -135,7 +174,7 @@
         if self._excluded_plugins is not None:
             self._bundle_nondebug('plugins', target_qt_dir, qt_dir,
                     platform_tag, macos_thin_arch, ignore_missing,
-                    exclude=self._excluded_plugins)
+                    skip_files=skip_files, exclude=self._excluded_plugins)
 
         # Bundle any translations:
         if self._translations:
@@ -148,7 +187,7 @@
                         if qm.startswith(prefix):
                             self._bundle_file(qm, target_tr_dir, tr_dir,
                                     platform_tag, macos_thin_arch,
-                                    ignore_missing,
+                                    ignore_missing, skip_files=skip_files,
                                     might_be_code=False)
 
         # Bundle any dynamically created files.
@@ -167,7 +206,7 @@
                 for oth in others:
                     self._bundle_file(oth, target_qt_dir, qt_dir,
                             platform_tag, macos_thin_arch, ignore_missing,
-                            might_be_code=False)
+                            skip_files=skip_files, might_be_code=False)
 
     def is_applicable(self, qt_version):
         """ Returns True if this meta-data is applicable for a particular Qt
@@ -178,7 +217,7 @@
 
     @classmethod
     def _bundle_nondebug(cls, src_dir, target_qt_dir, qt_dir, platform_tag,
-            macos_thin_arch, ignore_missing, exclude=None):
+            macos_thin_arch, ignore_missing, skip_files=None, exclude=None):
         """ Bundle the non-debug contents of a directory. """
 
         if exclude is None:
@@ -202,15 +241,34 @@
                 cls._bundle_file(
                         os.path.relpath(os.path.join(dirpath, name), qt_dir),
                         target_qt_dir, qt_dir, platform_tag, macos_thin_arch,
-                        ignore_missing)
+                        ignore_missing, skip_files=skip_files)
+
+    @classmethod
+    def _bundle_exe(cls, name, target_qt_dir, qt_dir, qt_version, platform_tag,
+            macos_thin_arch, ignore_missing, skip_files=None):
+        """ Bundle an executable. """
+
+        exe = cls._bundle_file(name, target_qt_dir, qt_dir, platform_tag,
+                macos_thin_arch, ignore_missing, skip_files=skip_files)
+
+        if exe is not None:
+            if cls._is_platform('linux', platform_tag):
+                cls._fix_linux_executable(exe, qt_version)
+            elif cls._is_platform('macos', platform_tag):
+                cls._fix_macos_executable(exe, qt_version, macos_thin_arch)
+            elif cls._is_platform('win', platform_tag):
+                cls._fix_win_executable(exe)
 
     @staticmethod
     def _bundle_file(name, target_dir, src_dir, platform_tag, macos_thin_arch,
-            ignore_missing, ignore=None, might_be_code=True):
+            ignore_missing, skip_files=None, ignore=None, might_be_code=True):
         """ Bundle a file (or directory) and return the name of the installed
         file (or directory) or None if it was missing.
         """
 
+        if skip_files is not None and name in skip_files:
+            return None
+
         src = os.path.join(src_dir, name)
         dst = os.path.join(target_dir, name)
 
@@ -243,30 +301,32 @@
 
     @classmethod
     def _bundle_library(cls, name, target_qt_dir, qt_dir, platform_tag,
-            macos_thin_arch, ignore_missing, ignore=None):
+            macos_thin_arch, ignore_missing, skip_files=None, ignore=None):
         """ Bundle a library. """
 
         cls._bundle_file(name,
                 os.path.join(target_qt_dir,
                         cls._get_qt_library_subdir(platform_tag)),
                 cls._get_qt_library_dir(qt_dir, platform_tag), platform_tag,
-                macos_thin_arch, ignore_missing, ignore=ignore)
+                macos_thin_arch, ignore_missing, skip_files=skip_files,
+                ignore=ignore)
 
     @classmethod
     def _bundle_qt_library(cls, name, target_qt_dir, qt_dir, qt_version,
-            platform_tag, macos_thin_arch, ignore_missing):
+            platform_tag, macos_thin_arch, ignore_missing, skip_files=None,
+            bundle_resources=True):
         """ Bundle a Qt library. """
 
         cls._bundle_library(
                 cls._impl_from_library(name, platform_tag, qt_version),
                 target_qt_dir, qt_dir, platform_tag, macos_thin_arch,
-                ignore_missing)
+                ignore_missing, skip_files=skip_files)
 
-        if cls._is_platform('macos', platform_tag):
+        if bundle_resources and cls._is_platform('macos', platform_tag):
             # Copy the Resources directory without the unnecessary .prl files.
             cls._bundle_library('{}.framework/Resources'.format(name),
                     target_qt_dir, qt_dir, platform_tag, macos_thin_arch,
-                    ignore_missing,
+                    ignore_missing, skip_files=skip_files,
                     ignore=lambda d, c: [f for f in c if f.endswith('.prl')])
 
     @staticmethod
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyqt_builder-1.16.1/pyqtbuild/bundle/qt_wheel.py 
new/pyqt_builder-1.16.4/pyqtbuild/bundle/qt_wheel.py
--- old/pyqt_builder-1.16.1/pyqtbuild/bundle/qt_wheel.py        2024-04-21 
01:31:59.000000000 +0200
+++ new/pyqt_builder-1.16.4/pyqtbuild/bundle/qt_wheel.py        2024-07-12 
18:06:49.000000000 +0200
@@ -14,7 +14,7 @@
 
 
 def qt_wheel(package, qt_dir, build_tag, suffix, msvc_runtime, openssl,
-        openssl_dir, exclude, arch):
+        openssl_dir, exclude, arch, subwheel):
     """ Create a wheel containing the subset of a Qt installation required for
     a particular PyQt package.
     """
@@ -24,14 +24,12 @@
 
     # Normalise the name of the package.
     package_name = package.replace('-', '_')
-    package_title = package_name.replace('_', '-')
 
     # Get the package object.
     package_factory = packages.__dict__.get(package_name)
 
     if package_factory is None:
-        raise UserException(
-                "'{0}' is not a supported package".format(package_title))
+        raise UserException(f"'{package}' is not a supported package")
 
     package = package_factory(qt_dir)
 
@@ -41,9 +39,12 @@
 
     # Construct the tag.
     qt_arch = os.path.basename(qt_dir)
-    if qt_arch == 'gcc_64':
-        platform_tag = 'manylinux{}_x86_64'.format(
-                '_2_28' if package.qt_version[0] == 6 else '2014')
+
+    if qt_arch in ('gcc_64', 'gcc_arm64'):
+        manylinux = '_2_28' if package.qt_version[0] == 6 else '2014'
+        wheel_arch = 'x86_64' if qt_arch == 'gcc_64' else 'aarch64'
+        platform_tag = f'manylinux{manylinux}_{wheel_arch}'
+
     elif qt_arch in ('macos', 'clang_64'):
         if package.qt_version < (5, 15, 10) or (6, 0, 0) <= package.qt_version 
< (6, 2, 0):
             if arch is not None:
@@ -64,8 +65,15 @@
             sdk_version = '10_14'
 
         platform_tag = 'macosx_{}_{}'.format(sdk_version, subarch)
+
     elif qt_arch.startswith('msvc'):
-        platform_tag = 'win_amd64' if qt_arch.endswith('_64') else 'win32'
+        if qt_arch.endswith('_64'):
+            platform_tag = 'win_amd64'
+        elif qt_arch.endswith('_arm64'):
+            platform_tag = 'win_arm64'
+        else:
+            platform_tag = 'win32'
+
     else:
         raise UserException(
                 "Qt architecture '{0}' is unsupported".format(qt_arch))
@@ -73,8 +81,24 @@
     tag_parts = ['py3', 'none', platform_tag]
     tag = '-'.join(tag_parts)
 
+    package_title = package_name.replace('_', '-')
+    qt_version_suffix = '-Qt' + version_str[0]
+
+    # Determine sub-wheel dependent values'
+    subwheel_full_name = f'{package_title}Subwheel{qt_version_suffix}'
+
+    if subwheel is True:
+        package_full_name = subwheel_full_name
+        package_requires = ''
+    elif subwheel is False:
+        package_full_name = package_title + qt_version_suffix
+        package_requires = f'Requires-Dist: {subwheel_full_name} 
(=={version_str})\n'
+    else:
+        package_full_name = package_title + qt_version_suffix
+        package_requires = ''
+
     # Construct the name of the wheel.
-    name_parts = [package_name + '_Qt' + version_str[0]]
+    name_parts = [package_full_name.replace('-', '_')]
     name_parts.append(version_str)
 
     distinfo_dir = '-'.join(name_parts) + '.dist-info'
@@ -97,7 +121,7 @@
     # Bundle the relevant parts of the Qt installation.
     target_qt_dir = package.get_target_qt_dir()
     lgpl = package.bundle_qt(target_qt_dir, platform_tag, exclude,
-            ignore_missing=True, bindings=False)
+            ignore_missing=True, bindings=False, subwheel=subwheel)
 
     if platform_tag in ('win32', 'win_amd64'):
         # Bundle the MSVC runtime if required.
@@ -121,7 +145,9 @@
                 metadata = s.read()
 
             metadata = metadata.replace('@RB_PACKAGE@', package_title)
-            metadata = metadata.replace('@RB_MAJOR_VERSION@', version_str[0])
+            metadata = metadata.replace('@RB_PACKAGE_NAME@', package_full_name)
+            metadata = metadata.replace('@RB_PACKAGE_REQUIRES@',
+                    package_requires)
             metadata = metadata.replace('@RB_VERSION@', version_str)
             metadata = metadata.replace('@RB_LICENSE@',
                     "LGPL v3" if lgpl else "GPL v3")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyqt_builder-1.16.1/pyqtbuild/bundle/qt_wheel_distinfo/METADATA 
new/pyqt_builder-1.16.4/pyqtbuild/bundle/qt_wheel_distinfo/METADATA
--- old/pyqt_builder-1.16.1/pyqtbuild/bundle/qt_wheel_distinfo/METADATA 
2024-04-21 01:31:59.000000000 +0200
+++ new/pyqt_builder-1.16.4/pyqtbuild/bundle/qt_wheel_distinfo/METADATA 
2024-06-21 17:28:00.000000000 +0200
@@ -1,5 +1,5 @@
 Metadata-Version: 2.1
-Name: @RB_PACKAGE@-Qt@RB_MAJOR_VERSION@
+Name: @RB_PACKAGE_NAME@
 Version: @RB_VERSION@
 Summary: The subset of a Qt installation needed by @RB_PACKAGE@.
 Home-page: https://www.riverbankcomputing.com/software/pyqt/
@@ -9,7 +9,7 @@
 Platform: Linux
 Platform: macOS
 Platform: Windows
-
+@RB_PACKAGE_REQUIRES@
 This package contains the subset of a Qt installation that is required by
 @RB_PACKAGE@.  It would normally be installed automatically by pip when
 you install @RB_PACKAGE@.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyqt_builder-1.16.1/pyqtbuild/bundle/qt_wheel_main.py 
new/pyqt_builder-1.16.4/pyqtbuild/bundle/qt_wheel_main.py
--- old/pyqt_builder-1.16.1/pyqtbuild/bundle/qt_wheel_main.py   2024-04-21 
01:31:59.000000000 +0200
+++ new/pyqt_builder-1.16.4/pyqtbuild/bundle/qt_wheel_main.py   2024-06-21 
17:28:00.000000000 +0200
@@ -58,6 +58,12 @@
     parser.add_argument(dest='packages', nargs=1, help="the PyQt package",
             metavar="PACKAGE")
 
+    parser.add_argument('--subwheel', choices=('generate', 'exclude'),
+            default=None,
+            help="generate the package's sub-wheel or exclude the sub-wheel "
+                    "contents from the main wheel [default: generate a full "
+                    "wheel]")
+
     args = parser.parse_args()
 
     try:
@@ -68,10 +74,18 @@
         except AttributeError:
             arch = None
 
+        subwheel = args.subwheel
+
+        if subwheel == 'generate':
+            subwheel = True
+        elif subwheel == 'exclude':
+            subwheel = False
+
         qt_wheel(package=args.packages[0], qt_dir=args.qt_dir,
                 build_tag=args.build_tag, suffix=args.suffix,
                 msvc_runtime=args.msvc_runtime, openssl=args.openssl,
-                openssl_dir=args.openssl_dir, exclude=args.exclude, arch=arch)
+                openssl_dir=args.openssl_dir, exclude=args.exclude, arch=arch,
+                subwheel=subwheel)
     except Exception as e:
         handle_exception(e)
 

Reply via email to