public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/rpkg] 1.70-1: Patches for undo rpmautospec processing
Date: Mon, 10 Aug 2026 21:44:39 GMT [thread overview]
Message-ID: <178639827980.1.4891894449742997938.rpms-rpkg-b34edfe5f21f@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/rpkg
Branch : 1.70-1
Commit : b34edfe5f21fedb41e49e7dd256008617f0e26dc
Author : Ondřej Nosek <onosek@redhat.com>
Date : 2023-11-21T23:20:21+00:00
Stats : +488/-2 in 4 file(s)
URL : https://src.fedoraproject.org/rpms/rpkg/c/b34edfe5f21fedb41e49e7dd256008617f0e26dc?branch=1.70-1
Log:
Patches for undo rpmautospec processing
- Patch: *pkg import: Don't delete changelog generated by `rpmautospec convert`
- Patch: *pkg import: Undo rpmautospec processing
- Patch: Unittests for "Undo rpmautospec processing"
Signed-off-by: Ondřej Nosek <onosek@redhat.com>
---
diff --git a/0029-pkg-import-Don-t-delete-changelog-generated-by-rpmau.patch b/0029-pkg-import-Don-t-delete-changelog-generated-by-rpmau.patch
new file mode 100644
index 0000000..7f9685a
--- /dev/null
+++ b/0029-pkg-import-Don-t-delete-changelog-generated-by-rpmau.patch
@@ -0,0 +1,30 @@
+From 2fdb7806aa947d4997aea6cb33f3e893a2b7d876 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Thu, 5 Oct 2023 17:03:39 +0200
+Subject: [PATCH 1/5] *pkg import: Don't delete changelog generated by
+ `rpmautospec convert`
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Miro Hrončok <miro@hroncok.cz>
+---
+ pyrpkg/__init__.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index 5928d47..b257fec 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -2040,7 +2040,7 @@ class Commands(object):
+ # not be removed by import command.
+ reserved_ourfiles = [
+ 'README.md', 'gating.yaml', 'tests/*', '*.rpmlintrc',
+- '.fmf/*', '*.fmf']
++ '.fmf/*', '*.fmf', 'changelog']
+
+ # Get a list of files we're currently tracking
+ ourfiles = self.repo.git.ls_files().split('\n')
+--
+2.41.0
+
diff --git a/0030-pkg-import-Undo-rpmautospec-processing.patch b/0030-pkg-import-Undo-rpmautospec-processing.patch
new file mode 100644
index 0000000..131e076
--- /dev/null
+++ b/0030-pkg-import-Undo-rpmautospec-processing.patch
@@ -0,0 +1,162 @@
+From ebb5c4b82caec5160544fdbb2d539fd1b5a3abfb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Thu, 5 Oct 2023 16:59:22 +0200
+Subject: [PATCH 2/5] *pkg import: Undo rpmautospec processing
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes https://pagure.io/fedpkg/issue/527
+
+Depends-on: https://pagure.io/fedora-infra/rpmautospec/pull-request/312
+
+Signed-off-by: Miro Hrončok <miro@hroncok.cz>
+---
+ pyrpkg/__init__.py | 22 ++++++-------
+ pyrpkg/utils.py | 77 ++++++++++++++++++++++++++++++++++++++++------
+ 2 files changed, 78 insertions(+), 21 deletions(-)
+
+diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
+index b257fec..f562e71 100644
+--- a/pyrpkg/__init__.py
++++ b/pyrpkg/__init__.py
+@@ -53,7 +53,7 @@ from pyrpkg.sources import SourcesFile
+ from pyrpkg.spec import SpecFile
+ from pyrpkg.utils import (cached_property, extract_srpm, find_me,
+ is_file_tracked, is_lookaside_eligible_file,
+- log_result, spec_file_processed_by_rpmautospec)
++ log_result, spec_file_undo_rpmautospec)
+
+ from .gitignore import GitIgnore
+
+@@ -1473,16 +1473,6 @@ class Commands(object):
+ uploadfiles.append(file)
+ else:
+ files.append(file)
+-
+- # Check all specfiles in SRPM. At this point (the 'import' command can run under
+- # the dist-git repo without any specfiles - right after initialization) we are
+- # not able determine which the main specfile is.
+- if file.endswith('.spec') and not file.startswith('.') \
+- and not self.allow_pre_generated_srpm \
+- and spec_file_processed_by_rpmautospec(file, target_dir):
+- raise rpkgError('SRPM was processed by rpmautospec '
+- '(specfile "{}" was analyzed)'.format(file))
+-
+ finally:
+ shutil.rmtree(target_dir)
+
+@@ -2081,6 +2071,16 @@ class Commands(object):
+ os.chdir(oldpath)
+ raise rpkgError("Got an error from rpm2cpio: %s" % err)
+
++ # Undo rpmautospec from all the spec files.
++ # At this point (the 'import' command can run under the dist-git repo
++ # without any specfiles - right after initialization) we are
++ # not able determine which the main specfile is.
++ if not self.allow_pre_generated_srpm:
++ for file in files:
++ if file.endswith('.spec') and not file.startswith('.'):
++ if spec_file_undo_rpmautospec(file):
++ self.log.debug("rpmautospec processing removed from {0}".format(file))
++
+ # And finally add all the files we know about (and our stock files)
+ for file in ('.gitignore', 'sources'):
+ if not os.path.exists(file):
+diff --git a/pyrpkg/utils.py b/pyrpkg/utils.py
+index 3337bdb..f3c8b25 100644
+--- a/pyrpkg/utils.py
++++ b/pyrpkg/utils.py
+@@ -336,22 +336,79 @@ def is_lookaside_eligible_file(file_name, dir_path=None):
+ return encoding == "binary"
+
+
+-def spec_file_processed_by_rpmautospec(file_name, dir_path=None):
++def _replace_lines(lines, startline, endline, replacement_lines=None, strip_endline=False):
++ replacement_lines = replacement_lines or []
++ try:
++ start = lines.index(startline)
++ end = lines.index(endline, start)
++ except ValueError:
++ # if both are missing, nothing to do, all good
++ # if only one of them is present, we better not touch it
++ return lines, False
++ else:
++ # rpmautospec adds an empty line after the end
++ # we want to remove it, but only if it is actually empty
++ if strip_endline and lines[end+1] == "\n":
++ end += 1
++ lines = lines[:start] + replacement_lines + lines[end+1:]
++ return lines, True
++
++
++def spec_file_undo_rpmautospec(file_name, dir_path=None):
++ """
++ Given a path to specfile, undo changes generated by rpmautospec.
++ Iff there is something to undo, the specfile will be overwritten.
++
++ Namely:
++
++ 1. Removes everything between the following lines:
++ ## START: Set by rpmautospec
++ ## END: Set by rpmautospec
++ 2. Replaces everything between the following lines with %autochangelog:
++ ## START: Generated by rpmautospec
++ ## END: Generated by rpmautospec
++
++ Both of the steps only happen once. If the specfile contains multiple such sections,
++ only the first one is removed/replaced.
++
++ The saved spec file is not guaranteed to be bit-by-bit identical with the original
++ spec file used as an input to rpmautospec.
++ However, subsequent repeated conversions there and back should be quite stable.
++
++ The return value says whether the specfile was overwritten.
++ """
+ file_path = os.path.join(dir_path or "", file_name)
+
+ try:
+- contents = open(file_path).readlines()
++ with open(file_path) as f:
++ contents = f.readlines()
+ except Exception:
+- # if we can't read it, let's assume the answer is "no".
++ # if we can't read it, let's do nothing
+ return False
+
+- # Check for the %autorelease header prepended to the file
+- if any('START: Set by rpmautospec' in line for line in contents[:10]):
++ # remove the generated macro section near the beginning of the specfile
++ contents, was_removed = _replace_lines(
++ contents,
++ '## START: Set by rpmautospec\n',
++ '## END: Set by rpmautospec\n',
++ strip_endline=True)
++
++ # replace the generated changelog with %autochangelog
++ # note that this does not generally produce content identical to the original
++ # e.g. the macro could have been conditionalized or in curly brackets
++ # most importantly, the %changelog section might have been omitted entirely
++ # however, this should be Good Enough for most of us
++ contents, was_replaced = _replace_lines(
++ contents,
++ '## START: Generated by rpmautospec\n',
++ '## END: Generated by rpmautospec\n',
++ ['%autochangelog\n'])
++
++ # finally, replace the spec if needed
++ # if we cannot write it, better blow up
++ if was_removed or was_replaced:
++ with open(file_path, 'w') as f:
++ f.writelines(contents)
+ return True
+
+- # It seems that currently there's no mechanism to detect
+- # %autochangelog processing. But most packages would use both
+- # %autochangelog and %autorelease together, so we should catch
+- # most cases by checking for %autorelease only.
+- # https://pagure.io/fedora-infra/rpmautospec/issue/269
+ return False
+--
+2.41.0
+
diff --git a/0031-Unittests-for-Undo-rpmautospec-processing.patch b/0031-Unittests-for-Undo-rpmautospec-processing.patch
new file mode 100644
index 0000000..d3c3469
--- /dev/null
+++ b/0031-Unittests-for-Undo-rpmautospec-processing.patch
@@ -0,0 +1,289 @@
+From 2bd726d20f3e5d1502a2191d0d263d0b6132982b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Nosek?= <onosek@redhat.com>
+Date: Thu, 12 Oct 2023 01:40:36 +0200
+Subject: [PATCH 3/5] Unittests for "Undo rpmautospec processing"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Merges: https://pagure.io/rpkg/pull-request/699
+Signed-off-by: Ondřej Nosek <onosek@redhat.com>
+---
+ Jenkinsfile | 2 +-
+ jenkins_test.dockerfile | 3 +-
+ pyrpkg/utils.py | 6 +--
+ tests/fixtures/docpkg/docpkg-rpmautospec.spec | 53 +++++++++++++++++++
+ tests/test_cli.py | 40 +++++++-------
+ tests/test_utils.py | 36 ++++++++++++-
+ 6 files changed, 116 insertions(+), 24 deletions(-)
+ create mode 100644 tests/fixtures/docpkg/docpkg-rpmautospec.spec
+
+diff --git a/Jenkinsfile b/Jenkinsfile
+index 7b6742f..e6d6394 100644
+--- a/Jenkinsfile
++++ b/Jenkinsfile
+@@ -50,7 +50,7 @@ git fetch proposed
+ git checkout "origin/$params.BRANCH_TO"
+ git merge --no-ff "proposed/$params.BRANCH" -m "Merge PR"
+
+-podman run --rm -v .:/src:Z quay.io/exd-guild-source-tools/rpkg-test:latest tox -e py36,py39,flake8,bandit --workdir /tmp/tox ${TOX_POSARGS}
++podman run --rm -v .:/src:Z quay.io/exd-guild-source-tools/rpkg-test:latest tox -e py36,py39,py311,flake8,bandit --workdir /tmp/tox ${TOX_POSARGS}
+ # disabled py27 environment for now; keep just flake8 for Python 2
+ podman run --rm -v .:/src:Z quay.io/exd-guild-source-tools/rpkg-test-py2:latest tox -e flake8python2 --workdir /tmp/tox ${TOX_POSARGS}
+ """
+diff --git a/jenkins_test.dockerfile b/jenkins_test.dockerfile
+index df8762e..d217a55 100644
+--- a/jenkins_test.dockerfile
++++ b/jenkins_test.dockerfile
+@@ -1,4 +1,4 @@
+-FROM fedora:37
++FROM fedora:38
+ LABEL \
+ name="rpkg test" \
+ description="Run tests using tox with Python 3" \
+@@ -9,6 +9,7 @@ RUN dnf -y update && dnf -y install \
+ python3-devel \
+ python3-openidc-client \
+ python3-libmodulemd \
++ python3-rpmautospec \
+ python3-setuptools \
+ rpmlint \
+ rpm-build \
+diff --git a/pyrpkg/utils.py b/pyrpkg/utils.py
+index f3c8b25..fc01c7d 100644
+--- a/pyrpkg/utils.py
++++ b/pyrpkg/utils.py
+@@ -104,7 +104,7 @@ def log_result(log_func, result, level=0, indent=2):
+ elif isinstance(result, dict):
+ for key, value in result.items():
+ _log_value(log_func, key, level, indent, ':')
+- log_result(log_func, value, level+1)
++ log_result(log_func, value, level + 1)
+ else:
+ _log_value(log_func, result, level, indent)
+
+@@ -348,9 +348,9 @@ def _replace_lines(lines, startline, endline, replacement_lines=None, strip_endl
+ else:
+ # rpmautospec adds an empty line after the end
+ # we want to remove it, but only if it is actually empty
+- if strip_endline and lines[end+1] == "\n":
++ if strip_endline and lines[end + 1] == "\n":
+ end += 1
+- lines = lines[:start] + replacement_lines + lines[end+1:]
++ lines = lines[:start] + replacement_lines + lines[end + 1:]
+ return lines, True
+
+
+diff --git a/tests/fixtures/docpkg/docpkg-rpmautospec.spec b/tests/fixtures/docpkg/docpkg-rpmautospec.spec
+new file mode 100644
+index 0000000..5974b57
+--- /dev/null
++++ b/tests/fixtures/docpkg/docpkg-rpmautospec.spec
+@@ -0,0 +1,53 @@
++## START: Set by rpmautospec
++## (rpmautospec version 0.3.5)
++## RPMAUTOSPEC: autorelease, autochangelog
++%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
++ release_number = 8;
++ base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
++ print(release_number + base_release_number - 1);
++}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
++## END: Set by rpmautospec
++
++# autogenerated specfile
++Summary: Dummy summary
++Name: docpkg-rpmautospec
++Version: 0.2
++Release: 1%{dist}
++License: GPL
++Group: Applications/Productivity
++
++BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
++Source0: hello-world.txt
++Source1: docpkg.tar.gz
++Source2: source-without-extension
++# added empty dir just to test import srpm `fedpkg import`. It should skip the dir.
++Source3: EMPTY_DIR
++
++%description
++This is a dummy description.
++
++%prep
++cp %{SOURCE0} .
++
++%build
++
++%clean
++rm -rf $$RPM_BUILD_ROOT
++%install
++rm -rf $RPM_BUILD_ROOT
++mkdir $RPM_BUILD_ROOT
++mkdir -p $RPM_BUILD_ROOT/usr/share/doc
++cp %{SOURCE0} $RPM_BUILD_ROOT/usr/share/doc/hello-world.txt
++
++%files
++%doc "/usr/share/doc/hello-world.txt"
++
++%changelog
++## START: Generated by rpmautospec
++* Sun Jan 1 2006 tester <tester@example.com> - 0.2-1
++- - New release 0.2-1
++
++* Sun Jan 1 2006 John Doe <jdoe@example.com> - 0.2-1
++- Initial version
++
++## END: Generated by rpmautospec
+diff --git a/tests/test_cli.py b/tests/test_cli.py
+index f2e68df..3d90f36 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -1706,10 +1706,10 @@ class TestFailureImportSrpm(CliTestCase):
+ class TestImportSrpm(LookasideCacheMock, CliTestCase):
+
+ @staticmethod
+- def build_srpm(srcrpmdir):
++ def build_srpm(srcrpmdir, specfile_name='docpkg.spec'):
+ """Build a fake SRPM used by this test case"""
+ docpkg_dir = os.path.join(fixtures_dir, 'docpkg')
+- specfile = os.path.join(docpkg_dir, 'docpkg.spec')
++ specfile = os.path.join(docpkg_dir, specfile_name)
+ rpmbuild = [
+ 'rpmbuild', '-bs',
+ '--define', '_topdir {0}'.format(srcrpmdir),
+@@ -1735,6 +1735,9 @@ class TestImportSrpm(LookasideCacheMock, CliTestCase):
+
+ self.srcrpmdir = tempfile.mkdtemp(prefix='test-import-srpm-topdir-')
+ self.srpm_file = TestImportSrpm.build_srpm(self.srcrpmdir)
++ self.srpm_file_rpmautospec = TestImportSrpm.build_srpm(
++ self.srcrpmdir,
++ specfile_name='docpkg-rpmautospec.spec')
+
+ self.chaos_repo = tempfile.mkdtemp(prefix='rpkg-tests-chaos-repo-')
+ cmds = (
+@@ -1827,40 +1830,29 @@ class TestImportSrpm(LookasideCacheMock, CliTestCase):
+ self.assertFilesExist(['package.rpmlintrc'], search_dir=self.chaos_repo)
+ self.assertFilesNotExist(['the_file_is_not_in_reserved.yaml'], search_dir=self.chaos_repo)
+
+- @patch('pyrpkg.spec_file_processed_by_rpmautospec')
+- def test_import_srpm_not_processed_by_rpmautospec(self, rpmautospec_processed):
++ def test_import_srpm_not_processed_by_rpmautospec(self):
+ cli_cmd = ['rpkg', '--path', self.chaos_repo, '--name', 'docpkg',
+ 'import', '--skip-diffs', self.srpm_file]
+
+- rpmautospec_processed.return_value = False
+ with patch('sys.argv', new=cli_cmd):
+ cli = self.new_cli()
+ with patch('pyrpkg.lookaside.CGILookasideCache.upload', self.lookasidecache_upload):
+ cli.import_srpm() # no exception should be raised
+- rpmautospec_processed.assert_called_once()
+
+- @patch('pyrpkg.spec_file_processed_by_rpmautospec')
+- def test_import_srpm_processed_by_rpmautospec(self, rpmautospec_processed):
++ def test_import_srpm_processed_by_rpmautospec(self):
+ cli_cmd = ['rpkg', '--path', self.chaos_repo, '--name', 'docpkg',
+- 'import', '--skip-diffs', self.srpm_file]
++ 'import', '--skip-diffs', self.srpm_file_rpmautospec]
+
+- rpmautospec_processed.return_value = True
+ with patch('sys.argv', new=cli_cmd):
+ cli = self.new_cli()
+ with patch('pyrpkg.lookaside.CGILookasideCache.upload', self.lookasidecache_upload):
+- six.assertRaisesRegex(
+- self,
+- rpkgError,
+- 'SRPM was processed by rpmautospec',
+- cli.import_srpm)
+- rpmautospec_processed.assert_called_once()
++ cli.import_srpm()
+
+- @patch('pyrpkg.spec_file_processed_by_rpmautospec')
++ @patch('pyrpkg.spec_file_undo_rpmautospec')
+ def test_import_srpm_processed_by_rpmautospec_allowed(self, rpmautospec_processed):
+ cli_cmd = ['rpkg', '--path', self.chaos_repo, '--name', 'docpkg',
+ 'import', '--skip-diffs', self.srpm_file]
+
+- rpmautospec_processed.return_value = True
+ with patch('sys.argv', new=cli_cmd):
+ cli = self.new_cli()
+ cli.cmd.allow_pre_generated_srpm = True
+@@ -1868,6 +1860,18 @@ class TestImportSrpm(LookasideCacheMock, CliTestCase):
+ cli.import_srpm() # no exception should be raised
+ rpmautospec_processed.assert_not_called()
+
++ @patch('pyrpkg.spec_file_undo_rpmautospec')
++ def test_import_srpm_processed_by_rpmautospec_not_allowed(self, rpmautospec_processed):
++ cli_cmd = ['rpkg', '--path', self.chaos_repo, '--name', 'docpkg',
++ 'import', '--skip-diffs', self.srpm_file]
++
++ with patch('sys.argv', new=cli_cmd):
++ cli = self.new_cli()
++ cli.cmd.allow_pre_generated_srpm = False # or None
++ with patch('pyrpkg.lookaside.CGILookasideCache.upload', self.lookasidecache_upload):
++ cli.import_srpm() # no exception should be raised
++ rpmautospec_processed.assert_called_once()
++
+
+ class TestMockbuild(CliTestCase):
+ """Test mockbuild command"""
+diff --git a/tests/test_utils.py b/tests/test_utils.py
+index 34188c5..0cd62d8 100644
+--- a/tests/test_utils.py
++++ b/tests/test_utils.py
+@@ -1,15 +1,22 @@
+ import os
++import shutil
+ import tempfile
+ import unittest
+ import warnings
+
++try:
++ import rpmautospec
++except ImportError:
++ rpmautospec = None
++
+ try:
+ from unittest import mock
+ except ImportError:
+ import mock
+
+ from pyrpkg.utils import (cached_property, is_file_in_directory,
+- is_file_tracked, log_result, warn_deprecated)
++ is_file_tracked, log_result,
++ spec_file_undo_rpmautospec, warn_deprecated)
+
+ from utils import CommandTestCase
+
+@@ -287,3 +294,30 @@ class FileTrackedTestCase(CommandTestCase):
+ self.repo_path
+ )
+ )
++
++
++@unittest.skipIf(
++ rpmautospec is None,
++ "Skip test on releases where rpmautospec is not available (RHEL)")
++class SpecFileUndoRpmautospec(CommandTestCase):
++ def test_remove_autospec_from_specfile(self):
++ fixtures_dir = os.path.join(os.path.dirname(__file__), "fixtures", "docpkg")
++
++ specfile_without_rpmautospec = os.path.join(fixtures_dir, "docpkg.spec")
++ specfile_without_rpmautospec_copy = os.path.join(self.repo_path, "docpkg.spec")
++ shutil.copy2(specfile_without_rpmautospec, specfile_without_rpmautospec_copy)
++ self.assertFalse(rpmautospec.specfile_uses_rpmautospec(specfile_without_rpmautospec_copy))
++ self.assertFalse(spec_file_undo_rpmautospec(specfile_without_rpmautospec_copy))
++ self.assertFalse(rpmautospec.specfile_uses_rpmautospec(specfile_without_rpmautospec_copy))
++ os.remove(specfile_without_rpmautospec_copy)
++
++ specfile_with_rpmautospec = os.path.join(fixtures_dir, "docpkg-rpmautospec.spec")
++ specfile_with_rpmautospec_copy = os.path.join(self.repo_path, "docpkg-rpmautospec.spec")
++ shutil.copy2(specfile_with_rpmautospec, specfile_with_rpmautospec_copy)
++ # returns True if the specfile was modified
++ self.assertTrue(spec_file_undo_rpmautospec(specfile_with_rpmautospec_copy))
++ self.assertFalse(rpmautospec.specfile_uses_rpmautospec(
++ specfile_with_rpmautospec_copy, check_autochangelog=False, check_autorelease=True))
++ self.assertTrue(rpmautospec.specfile_uses_rpmautospec(
++ specfile_with_rpmautospec_copy, check_autochangelog=True, check_autorelease=False))
++ os.remove(specfile_with_rpmautospec_copy)
+--
+2.41.0
+
diff --git a/rpkg.spec b/rpkg.spec
index 7bb1f29..1f4dcc2 100644
--- a/rpkg.spec
+++ b/rpkg.spec
@@ -1,6 +1,6 @@
Name: rpkg
Version: 1.66
-Release: 12%{?dist}
+Release: 13%{?dist}
Summary: Python library for interacting with rpm+git
License: GPLv2+ and LGPLv2
@@ -169,7 +169,7 @@ Requires: libmodulemd
Requires: python3-requests-kerberos
%else
Requires: python3-libmodulemd
-Requires: python3-rpmautospec
+Requires: python3-rpmautospec >= 0.3.8
%endif
Requires: python3-rpm
Requires: python3-pycurl
@@ -278,6 +278,11 @@ example_cli_dir=$RPM_BUILD_ROOT%{_datadir}/%{name}/examples/cli
%changelog
+* Wed Nov 22 2023 Ondřej Nosek <onosek@redhat.com> - 1.66-13
+- Patch: *pkg import: Don't delete changelog generated by `rpmautospec convert`
+- Patch: *pkg import: Undo rpmautospec processing
+- Patch: Unittests for "Undo rpmautospec processing"
+
* Mon Sep 25 2023 Ondřej Nosek <onosek@redhat.com> - 1.66-12
- Patch: Fix flake8 complaints
- Patch: Prepare the lookaside cache code for retries
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=178639827980.1.4891894449742997938.rpms-rpkg-b34edfe5f21f@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