Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-distutils-extra for openSUSE:Factory checked in at 2023-02-10 14:35:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-distutils-extra (Old) and /work/SRC/openSUSE:Factory/.python-distutils-extra.new.1848 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-distutils-extra" Fri Feb 10 14:35:54 2023 rev:32 rq:1064200 version:2.49 Changes: -------- --- /work/SRC/openSUSE:Factory/python-distutils-extra/python-distutils-extra.changes 2022-12-04 14:59:24.072632134 +0100 +++ /work/SRC/openSUSE:Factory/.python-distutils-extra.new.1848/python-distutils-extra.changes 2023-02-10 14:35:55.106134963 +0100 @@ -1,0 +2,7 @@ +Fri Feb 10 10:00:42 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 2.49: + * Add missing python3-setuptools Depends + * Adapt tests to setuptools 54+ + +------------------------------------------------------------------- Old: ---- python-distutils-extra-2.47.tar.bz2 New: ---- python-distutils-extra-2.49.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-distutils-extra.spec ++++++ --- /var/tmp/diff_new_pack.iJh4hw/_old 2023-02-10 14:35:55.582137807 +0100 +++ /var/tmp/diff_new_pack.iJh4hw/_new 2023-02-10 14:35:55.590137855 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-distutils-extra # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-distutils-extra -Version: 2.47 +Version: 2.49 Release: 0 Summary: Distutils/Setuptools Adapter License: GPL-2.0-only ++++++ python-distutils-extra-2.47.tar.bz2 -> python-distutils-extra-2.49.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-distutils-extra-2.47/DistUtilsExtra/auto.py new/python-distutils-extra-2.49/DistUtilsExtra/auto.py --- old/python-distutils-extra-2.47/DistUtilsExtra/auto.py 2022-06-17 13:42:49.000000000 +0200 +++ new/python-distutils-extra-2.49/DistUtilsExtra/auto.py 2023-01-30 06:55:51.000000000 +0100 @@ -85,6 +85,9 @@ for d in ignore_dirs: if f.startswith(d + os.path.sep): src.remove(f) + # Also remove files from the .egg-info directory + if '.egg-info/' in f: + src.remove(f) __cmdclass(attrs) __modules(attrs, src) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-distutils-extra-2.47/debian/changelog new/python-distutils-extra-2.49/debian/changelog --- old/python-distutils-extra-2.47/debian/changelog 2022-06-17 13:42:49.000000000 +0200 +++ new/python-distutils-extra-2.49/debian/changelog 2023-01-30 06:55:51.000000000 +0100 @@ -1,3 +1,16 @@ +python-distutils-extra (2.49) unstable; urgency=medium + + * Add missing python3-setuptools Depends, fixes autopkgtest + + -- Didier Raboud <o...@debian.org> Mon, 30 Jan 2023 06:52:11 +0100 + +python-distutils-extra (2.48) unstable; urgency=medium + + * Team upload + * Adapt tests to setuptools 54+, bump B-D. Fixes FTBFS (Closes: #1026568) + + -- Didier Raboud <o...@debian.org> Sun, 29 Jan 2023 14:22:46 +0100 + python-distutils-extra (2.47) unstable; urgency=medium * Team upload. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-distutils-extra-2.47/debian/control new/python-distutils-extra-2.49/debian/control --- old/python-distutils-extra-2.47/debian/control 2022-06-17 13:42:49.000000000 +0200 +++ new/python-distutils-extra-2.49/debian/control 2023-01-30 06:55:51.000000000 +0100 @@ -6,7 +6,7 @@ Build-Depends: debhelper-compat (= 13), dh-python, python3-all (>= 3.1.2-10~), - python3-setuptools, + python3-setuptools (>= 54.0.0~), python3-httplib2, python3-pkg-resources, python3-gi, @@ -27,6 +27,7 @@ intltool, python3-distutils, python3-pkg-resources, + python3-setuptools (>= 54.0.0~), Suggests: devscripts Breaks: python-distutils-extra (<< 2.44) Replaces: python-distutils-extra (<< 2.44) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-distutils-extra-2.47/test/auto.py new/python-distutils-extra-2.49/test/auto.py --- old/python-distutils-extra-2.47/test/auto.py 2022-06-17 13:42:49.000000000 +0200 +++ new/python-distutils-extra-2.49/test/auto.py 2023-01-30 06:55:51.000000000 +0100 @@ -51,6 +51,17 @@ self.snapshot = None self.install_tree = None + def assert_egg_info_directory_is_present_and_well(self): + '''Check that no .egg-info file is present, that an egg_info directory is present and that it contains the expected files''' + + f = self.installed_files() + # All files are in an .egg-info directory; no .egg-info file is created + self.assertFalse(any([_.endswith('.egg-info') for _ in f ])) + # There are 4 files in said directory + self.assertEqual(len(f), 4) + # Check that the four exist + self.assertTrue(all([any([_.endswith(c) for c in ['PKG-INFO', 'SOURCES.txt', 'dependency_links.txt', 'top_level.txt']]) for _ in f])) + # # actual tests come here # @@ -63,10 +74,7 @@ self.assertEqual(s, 0) self.assertNotIn('following files are not recognized', o) - f = self.installed_files() - # just installs the .egg_info - self.assertEqual(len(f), 1) - self.assertTrue(f[0].endswith('.egg-info')) + self.assert_egg_info_directory_is_present_and_well() def test_vcs(self): '''Ignores revision control files''' @@ -81,10 +89,7 @@ self.assertEqual(s, 0) self.assertNotIn('following files are not recognized', o) - f = self.installed_files() - # just installs the .egg_info - self.assertEqual(len(f), 1) - self.assertTrue(f[0].endswith('.egg-info')) + self.assert_egg_info_directory_is_present_and_well() def test_modules(self): '''Python modules''' @@ -157,7 +162,7 @@ self.assertIn('\n stuff/super.service\n', o) f = self.installed_files() - self.assertEqual(len(f), 4) # 3 D-BUS files plus .egg-info + self.assertEqual(len(f), 7) # 3 D-BUS files plus 4 files in egg-info directory self.assertIn('/etc/dbus-1/system.d/com.example.foo.conf', f) self.assertIn('/usr/share/dbus-1/system-services/com.example.foo.service', f) self.assertIn('/usr/share/dbus-1/services/com.example.foo.gui.service', f) @@ -178,7 +183,7 @@ self.assertEqual(s, 0) f = self.installed_files() - self.assertEqual(len(f), 3) # 2 schema files plus .egg-info + self.assertEqual(len(f), 6) # 2 schema files plus 4 files in .egg-info directory self.assertIn('/usr/share/glib-2.0/schemas/org.test.myapp.gschema.xml', f) self.assertNotIn('gschemas.compiled', '\n'.join(f)) @@ -201,7 +206,7 @@ self.assertNotIn('following files are not recognized', o) f = self.installed_files() - self.assertEqual(len(f), 3, f) # 2 hook files plus .egg-info + self.assertEqual(len(f), 6, f) # 2 hook files plus 4 in .egg-info self.assertIn('/usr/share/apport/package-hooks/foo.py', f) self.assertIn('/usr/share/apport/package-hooks/source_foo.py', f) @@ -513,7 +518,7 @@ self._mksrc('LICENSE') self._mksrc('COPYING.LIB') self._mksrc('README.txt') - self._mksrc('MANIFEST.in') + self._mksrc('MANIFEST.in', content="# dummy") self._mksrc('MANIFEST') self._mksrc('NEWS') self._mksrc('TODO') @@ -731,22 +736,23 @@ if 'template.py' in f or 'shiny' in f: self.assertNotIn('packages', f) - # parse .egg-info + # parse .egg-info directory (o, e, s) = self.setup_py(['install_egg_info', '-d', self.install_tree]) self.assertEqual(e, 'ERROR: Python module unknown not found\n') - egg_paths = [x for x in inst if x.endswith('.egg-info')] - self.assertEqual(len(egg_paths), 1) - egg = self._installed_contents(egg_paths[0].strip(os.path.sep)).splitlines() - self.assertIn('Name: foo', egg) + in_egg_paths = [x for x in inst if '.egg-info/' in x] + self.assertEqual(len(in_egg_paths), 4) # Always 4 files in .egg-info directory + + pkginfo = self._installed_contents([x for x in in_egg_paths if x.endswith('PKG-INFO')][0].strip(os.path.sep)).splitlines() + self.assertIn('Name: foo', pkginfo) # check provides - prov = [prop.split(' ', 1)[1] for prop in egg if prop.startswith('Provides: ')] + prov = [prop.split(' ', 1)[1] for prop in pkginfo if prop.startswith('Provides: ')] self.assertEqual(set(prov), set(['foo', 'mymod', 'broken', 'grab_cli', 'pygi'])) # check requires - req = [prop.split(' ', 1)[1] for prop in egg if prop.startswith('Requires: ')] + req = [prop.split(' ', 1)[1] for prop in pkginfo if prop.startswith('Requires: ')] self.assertEqual(set(req), set(['httplib2', 'pkg_resources', - 'gi.repository.GLib', 'gi.repository.GObject'])) + 'gi.repository.GLib', 'gi.repository.GObject', 'distutils.command.register'])) def test_help_docbook(self): '''Docbook XML help''' @@ -815,9 +821,7 @@ self.assertIn('following files are not recognized', o) self.assertIn('\n binary_trap\n', o) - f = self.installed_files() - self.assertEqual(len(f), 1, f) - self.assertIn('egg-info', f[0]) + self.assert_egg_info_directory_is_present_and_well() def test_utf8_filenames(self): '''UTF-8 file names''' @@ -830,9 +834,7 @@ self.assertEqual(e, '') self.assertEqual(s, 0) - f = self.installed_files() - self.assertEqual(len(f), 1, f) - self.assertIn('egg-info', f[0]) + self.assert_egg_info_directory_is_present_and_well() self.assertIn('following files are not recognized', o) # this might not be the correct file name when the locale is e. g. C @@ -880,7 +882,10 @@ self.setup_py(['build']) return self.setup_py(['install', '--no-compile', '--skip-build', - '--prefix=/usr', '--root=' + self.install_tree]) + '--prefix=/usr', + '--install-data=/usr', + '--install-scripts=/usr/bin', + '--root=' + self.install_tree]) def installed_files(self): '''Return list of file paths in install tree.''' @@ -921,12 +926,17 @@ shutil.copytree(self.src, os.path.join(self.snapshot, 's'), symlinks=True) def diff_snapshot(self): - '''Compare source tree to snapshot. + '''Compare source tree to snapshot, excluding known offenders. + + Check https://github.com/pypa/setuptools/issues/1347 for reference Return diff -Nur output. ''' assert self.snapshot, 'no snapshot taken' - diff = subprocess.Popen(['diff', '-x', 'foo.pot', '-x', '*.pyc', + diff = subprocess.Popen(['diff', + '-x', 'foo.pot', + '-x', '*.pyc', + '-x', '*.egg-info', '-Nur', os.path.join(self.snapshot, 's'), self.src], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = diff.communicate()