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