public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/rpkg] 1.70-1: rpmautospec changes
Date: Mon, 10 Aug 2026 21:44:18 GMT [thread overview]
Message-ID: <178639825886.1.6989236847908194590.rpms-rpkg-74133b3657da@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/rpkg
Branch : 1.70-1
Commit : 74133b3657da87276b4045a6301be7fa9f724a1a
Author : Ondřej Nosek <onosek@redhat.com>
Date : 2021-07-08T00:02:38+00:00
Stats : +510/-2 in 3 file(s)
URL : https://src.fedoraproject.org/rpms/rpkg/c/74133b3657da87276b4045a6301be7fa9f724a1a?branch=1.70-1
Log:
rpmautospec changes
- Patch: Preprocess spec files using rpmautospec features
and use %%autorelease when parsing spec files
- Patch: Skip NVR check if the %%autorelease macro is used
Signed-off-by: Ondřej Nosek <onosek@redhat.com>
---
diff --git a/0004-Skip-NVR-check-if-the-autorelease-macro-is-used.patch b/0004-Skip-NVR-check-if-the-autorelease-macro-is-used.patch
new file mode 100644
index 0000000..307cd3e
--- /dev/null
+++ b/0004-Skip-NVR-check-if-the-autorelease-macro-is-used.patch
@@ -0,0 +1,149 @@
+From 215d809233446c29646ca34dd860cb59b07642db Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Thu, 27 May 2021 13:29:58 +0200
+Subject: [PATCH 1/2] Don't access unset variable
+
+If an exception happens, `err` can't be set. Only log the attempted
+command instead.
+
+Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ pyrpkg/__init__.py | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index a559fd6..3622e7a 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -694,10 +694,8 @@ class Commands(object):
+ stderr=subprocess.PIPE)
+ output, err = proc.communicate()
+ except Exception as e:
+- if err:
+- self.log.debug('Errors occoured while running following command to get N-V-R-E:')
+- self.log.debug(joined_cmd)
+- self.log.error(err)
++ self.log.debug('Errors occoured while running following command to get N-V-R-E:')
++ self.log.debug(joined_cmd)
+ raise rpkgError('Could not query n-v-r of %s: %s'
+ % (self.repo_name, e))
+ if err:
+--
+2.31.1
+
+
+From 6a568d704601eb271685db3d4789657686252bc4 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Tue, 20 Apr 2021 18:29:15 +0200
+Subject: [PATCH 2/2] Skip NVR check if the %autorelease macro is used
+
+If a spec file sets the release field to the %autorelease macro, don't
+even attempt to check if the build exists already, as using the macro
+ensures that a new release number is used.
+
+Fixes: https://pagure.io/fedora-infra/rpmautospec/issue/109
+
+Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ pyrpkg/__init__.py | 33 ++++++++++++++++++++++++++++-----
+ tests/test_cli.py | 5 ++++-
+ 2 files changed, 32 insertions(+), 6 deletions(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index 3622e7a..8f10957 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -67,6 +67,11 @@ else:
+ # The SafeConfigParser class has been renamed to ConfigParser in Python 3.2.
+ ConfigParser = configparser.ConfigParser
+
++try:
++ from rpmautospec import specfile_uses_rpmautospec
++except ImportError:
++ specfile_uses_rpmautospec = None
++
+
+ class NullHandler(logging.Handler):
+ """Null logger to avoid spurious messages, add a handler in app code"""
+@@ -156,6 +161,8 @@ class Commands(object):
+ self._nvr = None
+ # The rpm release of the cloned package
+ self._rel = None
++ # Whether the spec file uses %autorelease
++ self._uses_autorelease = None
+ # The cloned repo object
+ self._repo = None
+ # The rpm defines used when calling rpm
+@@ -672,20 +679,36 @@ class Commands(object):
+ @property
+ def rel(self):
+ """This property ensures the rel attribute"""
+- if not self._rel:
++ if self._rel is None:
+ self.load_nameverrel()
+ return(self._rel)
+
++ @property
++ def uses_autorelease(self):
++ if self._uses_autorelease is None:
++ self.load_nameverrel()
++ return self._uses_autorelease
++
+ def load_nameverrel(self):
+ """Set the release of a package."""
+
++ specfile_path = os.path.join(self.path, self.spec)
++
++ if specfile_uses_rpmautospec:
++ self._uses_autorelease = specfile_uses_rpmautospec(
++ specfile_path, check_autorelease=True, check_autochangelog=False
++ )
++ else:
++ # Set to 0 so it evaluates false-ish but differs from (unset) None.
++ self._uses_autorelease = 0
++
+ cmd = ['rpm']
+ cmd.extend(self.rpmdefines)
+ # We make sure there is a space at the end of our query so that
+ # we can split it later. When there are subpackages, we get a
+ # listing for each subpackage. We only care about the first.
+ cmd.extend(['-q', '--qf', '"??%{NAME} %{EPOCH} %{VERSION} %{RELEASE}??"',
+- '--specfile', '"%s"' % os.path.join(self.path, self.spec)])
++ '--specfile', '"%s"' % specfile_path])
+ joined_cmd = ' '.join(cmd)
+ try:
+ proc = subprocess.Popen(joined_cmd, shell=True,
+@@ -2273,9 +2296,9 @@ class Commands(object):
+ ' in following messages.')
+ build_reference = self.repo_name
+
+- # see if this build has been done. Does not check builds within
+- # a chain
+- if nvr_check and not scratch and not url.endswith('.src.rpm'):
++ # See if this build has been done. Does not check builds within
++ # a chain, or if the %autorelease macro is used.
++ if (nvr_check or self.uses_autorelease) and not scratch and not url.endswith('.src.rpm'):
+ build = self.kojisession.getBuild(self.nvr)
+ if build:
+ if build['state'] == 1:
+diff --git a/tests/test_cli.py b/tests/test_cli.py
+index 0fda4f1..66144f7 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -3617,9 +3617,12 @@ class TestBuildPackage(FakeKojiCreds, CliTestCase):
+ commithash.return_value = '45678'
+ nvr.return_value = 'docpkg-0.1-1.fc28'
+
+- Popen.return_value.communicate.side_effect = [
++ proc = Popen.return_value
++ proc.communicate.side_effect = [
+ ('12345', ''),
++ ('??docpkg (none) 1.2 2.el7??', ''),
+ ]
++ proc.returncode = 0
+
+ self.assert_build(
+ 'chain-build',
+--
+2.31.1
+
diff --git a/0005-Preprocess-spec-files-using-rpmautospec-features.patch b/0005-Preprocess-spec-files-using-rpmautospec-features.patch
new file mode 100644
index 0000000..859b825
--- /dev/null
+++ b/0005-Preprocess-spec-files-using-rpmautospec-features.patch
@@ -0,0 +1,352 @@
+From 3826ee826c06e849d99c2a3a54ba9ec1f29a0de5 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Tue, 6 Jul 2021 16:18:06 +0200
+Subject: [PATCH 1/5] Fix remaining Python3 SafeConfigParser warnings
+
+Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ bin/rpkg | 7 ++++++-
+ tests/test_retire.py | 7 ++++++-
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/bin/rpkg b/bin/rpkg
+index 363a011..26cf0d2 100755
+--- a/bin/rpkg
++++ b/bin/rpkg
+@@ -15,6 +15,7 @@ import logging
+ import os
+ import sys
+
++import six
+ from six.moves import configparser
+
+ import pyrpkg
+@@ -34,7 +35,11 @@ if not os.path.exists(args.config) and not other[-1] in ['--help', '-h']:
+ sys.exit(1)
+
+ # Setup a configuration object and read config file data
+-config = configparser.SafeConfigParser()
++if six.PY2:
++ config = configparser.SafeConfigParser()
++else:
++ # The SafeConfigParser class has been renamed to ConfigParser in Python 3.2.
++ config = configparser.ConfigParser()
+ config.read(args.config)
+
+ client = pyrpkg.cli.cliClient(config)
+diff --git a/tests/test_retire.py b/tests/test_retire.py
+index 02c6976..3f68a2a 100644
+--- a/tests/test_retire.py
++++ b/tests/test_retire.py
+@@ -6,6 +6,7 @@ import subprocess
+ import tempfile
+
+ import mock
++import six
+ from six.moves import configparser
+
+ import pyrpkg.cli
+@@ -52,7 +53,11 @@ class RetireTestCase(unittest.TestCase):
+ return out.strip()
+
+ def _fake_client(self, args):
+- config = configparser.SafeConfigParser()
++ if six.PY2:
++ config = configparser.SafeConfigParser()
++ else:
++ # The SafeConfigParser class has been renamed to ConfigParser in Python 3.2.
++ config = configparser.ConfigParser()
+ config.read(TEST_CONFIG)
+ with mock.patch('sys.argv', new=args):
+ client = pyrpkg.cli.cliClient(config, name='rpkg')
+--
+2.31.1
+
+
+From 6fad855280aabe5c3091137486094cf4e77e41d5 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Tue, 15 Jun 2021 19:04:13 +0200
+Subject: [PATCH 2/5] Detect generic use of rpmautospec features
+
+Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ pyrpkg/__init__.py | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index 55ec8a1..2376990 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -161,6 +161,8 @@ class Commands(object):
+ self._rel = None
+ # Whether the spec file uses %autorelease
+ self._uses_autorelease = None
++ # Whether the spec file uses rpmautospec features (at all)
++ self._uses_rpmautospec = None
+ # The cloned repo object
+ self._repo = None
+ # The rpm defines used when calling rpm
+@@ -646,6 +648,12 @@ class Commands(object):
+ self.load_nameverrel()
+ return self._uses_autorelease
+
++ @property
++ def uses_rpmautospec(self):
++ if self._uses_rpmautospec is None:
++ self.load_nameverrel()
++ return self._uses_rpmautospec
++
+ def load_nameverrel(self):
+ """Set the release of a package."""
+
+@@ -655,9 +663,11 @@ class Commands(object):
+ self._uses_autorelease = specfile_uses_rpmautospec(
+ specfile_path, check_autorelease=True, check_autochangelog=False
+ )
++ self._uses_rpmautospec = specfile_uses_rpmautospec(specfile_path)
+ else:
+ # Set to 0 so it evaluates false-ish but differs from (unset) None.
+ self._uses_autorelease = 0
++ self._uses_rpmautospec = 0
+
+ cmd = ['rpm']
+ cmd.extend(self.rpmdefines)
+--
+2.31.1
+
+
+From 938d5bdfc0d7c032b20e5da3325f0d93bdb5c4c8 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Tue, 15 Jun 2021 19:05:40 +0200
+Subject: [PATCH 3/5] Preprocess spec files using rpmautospec features
+
+If spec files use rpmautospec features, preprocess them into a temporary
+directory and point rpmbuild at the pre-processed spec file.
+
+Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ pyrpkg/__init__.py | 55 ++++++++++++++++++++++++++++++++++------------
+ 1 file changed, 41 insertions(+), 14 deletions(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index 2376990..1ede227 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -72,6 +72,11 @@ try:
+ except ImportError:
+ specfile_uses_rpmautospec = None
+
++try:
++ from rpmautospec import process_distgit as rpmautospec_process_distgit
++except ImportError:
++ rpmautospec_process_distgit = None
++
+
+ class NullHandler(logging.Handler):
+ """Null logger to avoid spurious messages, add a handler in app code"""
+@@ -2585,19 +2590,30 @@ class Commands(object):
+ % hashtype,
+ "--define '_binary_filedigest_algorithm %s'"
+ % hashtype])
+- cmd.extend(['-ba', os.path.join(self.path, self.spec)])
+- logfile = '.build-%s-%s.log' % (self.ver, self.rel)
+-
+- cmd = '%s 2>&1 | tee %s' % (' '.join(cmd), logfile)
++ specpath = os.path.join(self.path, self.spec)
++ tmpdir = None
+ try:
+- # Since zsh is a widely used, which is supported by fedpkg
+- # actually, pipestatus is for checking the first command when zsh
+- # is used.
+- subprocess.check_call(
+- '%s; exit "${PIPESTATUS[0]} ${pipestatus[1]}"' % cmd,
+- shell=True)
+- except subprocess.CalledProcessError:
+- raise rpkgError(cmd)
++ if not self.uses_rpmautospec or not rpmautospec_process_distgit:
++ cmd.extend(['-ba', specpath])
++ else:
++ tmpdir = tempfile.mkdtemp(prefix="rpkg-rpmautospec")
++ tmpspecpath = os.path.join(tmpdir, self.spec)
++ rpmautospec_process_distgit(specpath, tmpspecpath)
++ cmd.extend(['-ba', tmpspecpath])
++ logfile = '.build-%s-%s.log' % (self.ver, self.rel)
++
++ cmd = '%s 2>&1 | tee %s' % (' '.join(cmd), logfile)
++ try:
++ # Since zsh is a widely used, which is supported by fedpkg
++ # actually, pipestatus is for checking the first command when zsh
++ # is used.
++ subprocess.check_call(
++ '%s; exit "${PIPESTATUS[0]} ${pipestatus[1]}"' % cmd,
++ shell=True)
++ except subprocess.CalledProcessError:
++ raise rpkgError(cmd)
++ finally:
++ self._cleanup_tmp_dir(tmpdir)
+
+ # Not to be confused with mockconfig the property
+ def mock_config(self, target=None, arch=None):
+@@ -2960,8 +2976,19 @@ class Commands(object):
+ % hashtype,
+ "--define '_binary_filedigest_algorithm %s'"
+ % hashtype])
+- cmd.extend(['--nodeps', '-bs', os.path.join(self.path, self.spec)])
+- self._run_command(cmd, shell=True)
++ specpath = os.path.join(self.path, self.spec)
++ tmpdir = None
++ try:
++ if not self.uses_rpmautospec or not rpmautospec_process_distgit:
++ cmd.extend(['--nodeps', '-bs', specpath])
++ else:
++ tmpdir = tempfile.mkdtemp(prefix="rpkg-rpmautospec")
++ tmpspecpath = os.path.join(tmpdir, self.spec)
++ rpmautospec_process_distgit(specpath, tmpspecpath)
++ cmd.extend(['--nodeps', '-bs', tmpspecpath])
++ self._run_command(cmd, shell=True)
++ finally:
++ self._cleanup_tmp_dir(tmpdir)
+
+ def unused_patches(self):
+ """Discover patches checked into source control that are not used
+--
+2.31.1
+
+
+From 7edb51c2e7d3c5582bea5e7123a2f2e3bb5f3d9c Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Wed, 16 Jun 2021 13:17:30 +0200
+Subject: [PATCH 4/5] Reflect %autorelease when parsing spec files
+
+If the %autorelease macro is used, calculate the release number and pass
+it to the macro when parsing the spec file.
+
+Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ pyrpkg/__init__.py | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index 1ede227..a7d834d 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -74,8 +74,10 @@ except ImportError:
+
+ try:
+ from rpmautospec import process_distgit as rpmautospec_process_distgit
++ from rpmautospec import calculate_release_number as rpmautospec_calculate_release_number
+ except ImportError:
+ rpmautospec_process_distgit = None
++ rpmautospec_calculate_release_number = None
+
+
+ class NullHandler(logging.Handler):
+@@ -662,6 +664,9 @@ class Commands(object):
+ def load_nameverrel(self):
+ """Set the release of a package."""
+
++ cmd = ['rpm']
++ cmd.extend(self.rpmdefines)
++
+ specfile_path = os.path.join(self.path, self.spec)
+
+ if specfile_uses_rpmautospec:
+@@ -669,13 +674,14 @@ class Commands(object):
+ specfile_path, check_autorelease=True, check_autochangelog=False
+ )
+ self._uses_rpmautospec = specfile_uses_rpmautospec(specfile_path)
++ if self._uses_rpmautospec and rpmautospec_calculate_release_number:
++ release_number = rpmautospec_calculate_release_number(specfile_path)
++ cmd.append("--define '_rpmautospec_release_number %d'" % release_number)
+ else:
+ # Set to 0 so it evaluates false-ish but differs from (unset) None.
+ self._uses_autorelease = 0
+ self._uses_rpmautospec = 0
+
+- cmd = ['rpm']
+- cmd.extend(self.rpmdefines)
+ # We make sure there is a space at the end of our query so that
+ # we can split it later. When there are subpackages, we get a
+ # listing for each subpackage. We only care about the first.
+--
+2.31.1
+
+
+From fb9876cda299f7f5fb9788488d28d2f5052d878e Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Tue, 6 Jul 2021 17:05:02 +0200
+Subject: [PATCH 5/5] Add and augment tests for rpmautospec
+
+Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ tests/test_commands.py | 37 +++++++++++++++++++++++++++++++++++++
+ 1 file changed, 37 insertions(+)
+
+diff --git a/tests/test_commands.py b/tests/test_commands.py
+index 57b3bc8..2575dc6 100644
+--- a/tests/test_commands.py
++++ b/tests/test_commands.py
+@@ -74,9 +74,20 @@ class LoadNameVerRelTest(CommandTestCase):
+ self.cmd = self.make_commands()
+ self.checkout_branch(self.cmd.repo, 'eng-rhel-6')
+ self.tempdir = tempfile.mkdtemp(prefix='rpkg_test_')
++ self._patchers = {
++ name: patch("pyrpkg.%s" % name) for name in (
++ "specfile_uses_rpmautospec",
++ "rpmautospec_process_distgit",
++ "rpmautospec_calculate_release_number",
++ )
++ }
++ self.mocks = {name: patcher.start() for name, patcher in self._patchers.items()}
++ self.mocks["specfile_uses_rpmautospec"].return_value = False
+
+ def tearDown(self):
+ super(LoadNameVerRelTest, self).tearDown()
++ for patcher in self._patchers.values():
++ patcher.stop()
+ shutil.rmtree(self.tempdir)
+
+ def test_load_from_spec(self):
+@@ -118,6 +129,8 @@ class LoadNameVerRelTest(CommandTestCase):
+ self.assertEqual('0', cmd._epoch)
+ self.assertEqual('1.2', cmd._ver)
+ self.assertEqual('2.el6', cmd._rel)
++ self.assertIs(False, cmd._uses_autorelease)
++ self.assertIs(False, cmd._uses_rpmautospec)
+
+ @patch('pyrpkg.Commands.load_rpmdefines', new=mock_load_rpmdefines)
+ @patch('pyrpkg.Commands.load_spec',
+@@ -145,6 +158,30 @@ class LoadNameVerRelTest(CommandTestCase):
+ self.assertEqual('1.2', self.cmd._ver)
+ self.assertEqual('2.el6', self.cmd._rel)
+
++ @patch("pyrpkg.specfile_uses_rpmautospec", new=None)
++ @patch("pyrpkg.rpmautospec_process_distgit", new=None)
++ @patch("pyrpkg.rpmautospec_calculate_release_number", new=None)
++ def test_load_with_rpmautospec_pkg_missing(self):
++ self.cmd.load_nameverrel()
++ self.assertIs(0, self.cmd._uses_autorelease)
++ self.assertIs(0, self.cmd._uses_rpmautospec)
++
++ @patch("subprocess.Popen", wraps=subprocess.Popen)
++ def test_load_with_rpmautospec(self, wrapped_popen):
++ test_release_number = 123
++
++ self.mocks["specfile_uses_rpmautospec"].return_value = True
++ self.mocks["rpmautospec_process_distgit"].return_value = True
++ self.mocks["rpmautospec_calculate_release_number"].return_value = test_release_number
++
++ self.cmd.load_nameverrel()
++
++ self.assertIs(True, self.cmd._uses_autorelease)
++ self.assertIs(True, self.cmd._uses_rpmautospec)
++ self.assertEqual(1, wrapped_popen.call_count)
++ args, kwargs = wrapped_popen.call_args
++ self.assertIn("--define '_rpmautospec_release_number %d'" % test_release_number, args[0])
++
+
+ class LoadBranchMergeTest(CommandTestCase):
+ """Test case for testing Commands.load_branch_merge"""
+--
+2.31.1
+
diff --git a/rpkg.spec b/rpkg.spec
index e041f00..707d8b2 100644
--- a/rpkg.spec
+++ b/rpkg.spec
@@ -1,6 +1,6 @@
Name: rpkg
Version: 1.62
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Python library for interacting with rpm+git
License: GPLv2+ and LGPLv2
@@ -20,6 +20,8 @@ Patch0: remove-koji-and-rpm-py-installer-from-requires.patch
Patch1: 0001-Do-not-use-pytest-related-dependencies-temporarily.patch
Patch2: 0002-ca-cert-was-removed-on-koji-1.24.0.patch
Patch3: 0003-Add-support-for-side-tag-suffix.patch
+Patch4: 0004-Skip-NVR-check-if-the-autorelease-macro-is-used.patch
+Patch5: 0005-Preprocess-spec-files-using-rpmautospec-features.patch
# RHEL7 is currently the only release that is built for Python 2.
%if 0%{?fedora} || 0%{?rhel} > 7
@@ -31,8 +33,8 @@ Patch3: 0003-Add-support-for-side-tag-suffix.patch
%global with_python2 1
%global with_python3 0
# sitelib for noarch packages, sitearch for others (remove the unneeded one)
-%{!?python2_sitelib: %global python2_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?__python2: %global __python2 %{__python}}
+%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%endif
%description
@@ -130,6 +132,7 @@ Requires: python3-gobject-base
Requires: libmodulemd
%else
Requires: python3-libmodulemd
+Requires: python3-rpmautospec
%endif
Requires: python3-rpm
Requires: python3-pycurl
@@ -238,6 +241,10 @@ example_cli_dir=$RPM_BUILD_ROOT%{_datadir}/%{name}/examples/cli
%changelog
+* Thu Jul 08 2021 Ondřej Nosek <onosek@redhat.com> - 1.62-6
+- Patch: Preprocess spec files using rpmautospec features and use %%autorelease when parsing spec files
+- Patch: Skip NVR check if the %%autorelease macro is used
+
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.62-5
- Rebuilt for Python 3.10
reply other threads:[~2026-08-10 21:44 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178639825886.1.6989236847908194590.rpms-rpkg-74133b3657da@fedoraproject.org \
--to=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox