public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/rpkg] 1.70-1: Merge branch 'epel9' into rawhide
Date: Mon, 10 Aug 2026 21:44:31 GMT	[thread overview]
Message-ID: <178639827184.1.7897087528870557752.rpms-rpkg-a5e0d4c6670f@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/rpkg
Branch : 1.70-1
Commit : a5e0d4c6670fa0ea42ea6f6aaa1a4c1f00424603
Author : Ondřej Nosek <onosek@redhat.com>
Date   : 2023-02-21T20:36:28+00:00
Stats  : +32/-406 in 6 file(s)
URL    : https://src.fedoraproject.org/rpms/rpkg/c/a5e0d4c6670fa0ea42ea6f6aaa1a4c1f00424603?branch=1.70-1

Log:
Merge branch 'epel9' into rawhide

---
diff --git a/.gitignore b/.gitignore
index 62aba62..a29257e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,3 +61,4 @@
 /rpkg-1.63.tar.gz
 /rpkg-1.64.tar.gz
 /rpkg-1.65.tar.gz
+/rpkg-1.66.tar.gz

diff --git a/0004-fedpkg-local-does-not-show-rpmbuild-output.patch b/0004-fedpkg-local-does-not-show-rpmbuild-output.patch
deleted file mode 100644
index 30f3e8e..0000000
--- a/0004-fedpkg-local-does-not-show-rpmbuild-output.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From fef9715d4acb690dff1cc9f08545721d69bf208d Mon Sep 17 00:00:00 2001
-From: Ondrej Nosek <onosek@redhat.com>
-Date: Wed, 7 Sep 2022 19:53:05 +0200
-Subject: [PATCH] `fedpkg local` does not show rpmbuild output
-
-subprocess.communicate() method didn't allow a direct pipe output
-to the shell and therefore wasn't shown to the user. Switched to
-check_call method.
-Additionally, the correct exit code is returned when the first part
-of the command fails.
-
-Resolves: rhbz#2124809
-JIRA: RHELCMP-9960
-
-Signed-off-by: Ondrej Nosek <onosek@redhat.com>
----
- pyrpkg/__init__.py | 12 +++++-------
- tests/test_cli.py  | 26 ++++++++++++++------------
- 2 files changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index a672dd2..1b6a0c4 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -2818,14 +2818,12 @@ class Commands(object):
-                     stdout=subprocess.PIPE,
-                     stderr=subprocess.STDOUT
-                 )
--                tee = subprocess.Popen(
-+                subprocess.check_call(
-                     ("tee", logfile),
--                    stdin=rpmbuild.stdout,
--                    stdout=subprocess.PIPE)
--                rpmbuild.stdout.close()
--                tee.communicate()
--
--            except subprocess.SubprocessError:
-+                    stdin=rpmbuild.stdout)
-+                rpmbuild.communicate()  # without this, 'returncode' is None (=unfinished process)
-+                sys.exit(rpmbuild.returncode)
-+            except subprocess.CalledProcessError:
-                 raise rpkgError(debug_cmd)
-         finally:
-             self._cleanup_tmp_dir(tmpdir)
-diff --git a/tests/test_cli.py b/tests/test_cli.py
-index 254bfac..97ae0ce 100644
---- a/tests/test_cli.py
-+++ b/tests/test_cli.py
-@@ -846,10 +846,12 @@ class TestLocal(CliTestCase):
- 
-     create_repo_per_test = False
- 
-+    @patch('sys.exit')
-+    @patch('pyrpkg.subprocess.check_call')
-     @patch('subprocess.Popen')
-     @patch('pyrpkg.Commands.rel')
-     @patch('pyrpkg.Commands.ver')
--    def test_local(self, ver, rel, popen):
-+    def test_local(self, ver, rel, popen, check_call, system_exit):
-         cli_cmd = ['rpkg', '--path', self.cloned_repo_path, '--release', 'rhel-6', 'local']
- 
-         rel.__str__ = Mock()
-@@ -868,20 +870,21 @@ class TestLocal(CliTestCase):
-         popen.assert_has_calls([
-             # at the beginning of this list, there are other calls from load_nameverrel
-             call(rpmbuild, stdout=-1, stderr=-2),
--            # I can't match this call - stdin=Mock has it's dynamic id. Therefore any_oreder=True
--            # call(tee, stdin=Mock(), stdout=-1),  # check call [-3] separately
--            call().stdout.close(),
-             call().communicate(),
--        ], any_order=True)
-+        ], any_order=False)
- 
--        tee_call_arg = popen.mock_calls[-3]
-+        tee_call_arg = check_call.mock_calls[0]
-         if 'args' in dir(tee_call_arg):  # doesn't work in <=py36
-             self.assertEqual(tee, tee_call_arg.args[0])
- 
-+        system_exit.assert_called_once()
-+
-+    @patch('sys.exit')
-+    @patch('pyrpkg.subprocess.check_call')
-     @patch('subprocess.Popen')
-     @patch('pyrpkg.Commands.rel')
-     @patch('pyrpkg.Commands.ver')
--    def test_local_with_options(self, ver, rel, popen):
-+    def test_local_with_options(self, ver, rel, popen, check_call, system_exit):
-         builddir = os.path.join(self.cloned_repo_path, 'this-builddir')
-         buildrootdir = os.path.join(self.cloned_repo_path, 'this-buildrootdir')
- 
-@@ -913,16 +916,15 @@ class TestLocal(CliTestCase):
-         popen.assert_has_calls([
-             # at the beginning of this list, there are other calls from load_nameverrel
-             call(rpmbuild, stdout=-1, stderr=-2),
--            # I can't match this call - stdin=Mock has it's dynamic id. Therefore any_oreder=True
--            # call(tee, stdin=Mock(), stdout=-1),  # check call [-3] separately
--            call().stdout.close(),
-             call().communicate(),
--        ], any_order=True)
-+        ], any_order=False)
- 
--        tee_call_arg = popen.mock_calls[-3]
-+        tee_call_arg = check_call.mock_calls[0]
-         if 'args' in dir(tee_call_arg):  # doesn't work in <=py36
-             self.assertEqual(tee, tee_call_arg.args[0])
- 
-+        system_exit.assert_called_once()
-+
- 
- class TestVerifyFiles(CliTestCase):
- 
--- 
-2.37.2
-

diff --git a/0005-Fixes-for-exploded-SRPM-layouts.patch b/0005-Fixes-for-exploded-SRPM-layouts.patch
deleted file mode 100644
index f2b57b3..0000000
--- a/0005-Fixes-for-exploded-SRPM-layouts.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From fc4dc6882c802e9a8b7ece3101033cb662928adf Mon Sep 17 00:00:00 2001
-From: Troy Dawson <tdawson@redhat.com>
-Date: Fri, 23 Sep 2022 14:38:34 -0700
-Subject: [PATCH 1/2] Fixes for exploded SRPM layouts
-
-sources_filename incorrectly set when using SRPMLayout.
-
-Fixes: #633
-JIRA: RHELCMP-9992
-Merges: https://pagure.io/rpkg/pull-request/634
-
-Signed-off-by: Troy Dawson <tdawson@redhat.com>
----
- pyrpkg/__init__.py    | 21 +++++++++++----------
- pyrpkg/cli.py         |  2 +-
- pyrpkg/sources.py     | 30 +++++++++++++++++++++++++-----
- tests/test_cli.py     |  2 +-
- tests/test_sources.py | 33 +++++++++++++++++++++++++++++++++
- 5 files changed, 71 insertions(+), 17 deletions(-)
-
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index 1b6a0c4..a40fa5a 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -1153,7 +1153,8 @@ class Commands(object):
-     def sources_filename(self):
-         if self.layout is None:
-             return os.path.join(self.path, 'sources')
--        return os.path.join(self.path, self.layout.sources_file_template)
-+        return os.path.join(
-+            self.path, self.layout.sources_file_template.replace("{0.repo_name}", self.repo_name))
- 
-     @property
-     def osbs_config_filename(self):
-@@ -2163,9 +2164,9 @@ class Commands(object):
-             self.log.info("sources file doesn't exist. Source files download skipped.")
-             return
- 
--        # Default to putting the files where the repository is
-+        # Default to putting the files in the layout sourcedir
-         if not outdir:
--            outdir = self.path
-+            outdir = self.layout.sourcedir
- 
-         sourcesf = SourcesFile(self.sources_filename, self.source_entry_type)
- 
-@@ -2578,7 +2579,7 @@ class Commands(object):
-             cmd.append('--nocheck')
-         if self.quiet:
-             cmd.append('--quiet')
--        cmd.extend(['-bc', os.path.join(self.path, self.spec)])
-+        cmd.extend(['-bc', os.path.join(self.layout.specdir, self.spec)])
-         # Run the command
-         self._run_command(cmd)
- 
-@@ -2657,7 +2658,7 @@ class Commands(object):
-         if buildrootdir:
-             cmd.extend(["--define", "_buildrootdir {0}".format(
-                 os.path.abspath(buildrootdir))])
--        cmd.extend(['-bi', os.path.join(self.path, self.spec)])
-+        cmd.extend(['-bi', os.path.join(self.layout.specdir, self.spec)])
-         # Run the command
-         self._run_command(cmd)
-         return
-@@ -2798,7 +2799,7 @@ class Commands(object):
-         if not hashtype == 'sha256':
-             cmd.extend(["--define", "_source_filedigest_algorithm %s" % hashtype,
-                         "--define", "_binary_filedigest_algorithm %s" % hashtype])
--        specpath = os.path.join(self.path, self.spec)
-+        specpath = os.path.join(self.layout.specdir, self.spec)
-         tmpdir = None
-         try:
-             if not self.uses_rpmautospec or not rpmautospec_process_distgit:
-@@ -3180,7 +3181,7 @@ class Commands(object):
-         if buildrootdir:
-             cmd.extend(["--define", "_buildrootdir {0}".format(
-                 os.path.abspath(buildrootdir))])
--        cmd.extend(['--nodeps', '-bp', os.path.join(self.path, self.spec)])
-+        cmd.extend(['--nodeps', '-bp', os.path.join(self.layout.specdir, self.spec)])
-         # Run the command
-         self._run_command(cmd)
- 
-@@ -3238,7 +3239,7 @@ class Commands(object):
-         if not hashtype == 'sha256':
-             cmd.extend(["--define", "_source_filedigest_algorithm %s" % hashtype,
-                         "--define", "_binary_filedigest_algorithm %s" % hashtype])
--        specpath = os.path.join(self.path, self.spec)
-+        specpath = os.path.join(self.layout.specdir, self.spec)
-         tmpdir = None
-         try:
-             if not self.uses_rpmautospec or not rpmautospec_process_distgit:
-@@ -3262,7 +3263,7 @@ class Commands(object):
-         # Create a list for unused patches
-         unused = []
-         # Get the content of spec into memory for fast searching
--        with open(os.path.join(self.path, self.spec), 'r') as f:
-+        with open(os.path.join(self.layout.specdir, self.spec), 'r') as f:
-             data = f.read()
-         if six.PY2:
-             try:
-@@ -3340,7 +3341,7 @@ class Commands(object):
-         if buildrootdir:
-             cmd.extend(["--define", "_buildrootdir {0}".format(
-                 os.path.abspath(buildrootdir))])
--        cmd.extend(['-bl', os.path.join(self.path, self.spec)])
-+        cmd.extend(['-bl', os.path.join(self.layout.specdir, self.spec)])
-         # Run the command
-         self._run_command(cmd)
- 
-diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py
-index 9694f14..b0a16fb 100644
---- a/pyrpkg/cli.py
-+++ b/pyrpkg/cli.py
-@@ -1484,7 +1484,7 @@ class cliClient(object):
-             'sources', help='Download source files',
-             description='Download source files')
-         sources_parser.add_argument(
--            '--outdir', default=os.curdir,
-+            '--outdir',
-             help='Directory to download files into (defaults to pwd)')
-         sources_parser.set_defaults(command=self.sources)
- 
-diff --git a/pyrpkg/sources.py b/pyrpkg/sources.py
-index 858461d..cdd5275 100644
---- a/pyrpkg/sources.py
-+++ b/pyrpkg/sources.py
-@@ -67,15 +67,35 @@ class SourcesFile(object):
-             return self.entry_type(m.group('hashtype'), m.group('file'),
-                                    m.group('hash'))
- 
--        # Try falling back on the old format
-+        # Try falling back on the old Fedora format
-         try:
-             hash, file = stripped.split('  ', 1)
- 
-         except ValueError:
--            raise MalformedLineError(
--                'sources has invalid content: {0}\n'
--                'Please note that sources file must not be modified manually.'
--                .format(stripped))
-+            # Try old Centos Format
-+            try:
-+                hash, file_path = stripped.split(' ', 1)
-+                if len(hash) == 128:
-+                    hashtype = 'sha512'
-+                elif len(hash) == 64:
-+                    hashtype = 'sha256'
-+                elif len(hash) == 40:
-+                    hashtype = 'sha1'
-+                elif len(hash) == 32:
-+                    hashtype = 'md5'
-+                else:
-+                    raise MalformedLineError(
-+                        'sources has invalid content: {0}\n'
-+                        'Please note that sources file must not be modified manually.'
-+                        .format(stripped))
-+                file = os.path.split(file_path)[1]
-+                return self.entry_type(hashtype, file, hash)
-+
-+            except ValueError:
-+                raise MalformedLineError(
-+                    'sources has invalid content: {0}\n'
-+                    'Please note that sources file must not be modified manually.'
-+                    .format(stripped))
- 
-         return self.entry_type('md5', file, hash)
- 
-diff --git a/tests/test_cli.py b/tests/test_cli.py
-index 97ae0ce..dd1399a 100644
---- a/tests/test_cli.py
-+++ b/tests/test_cli.py
-@@ -1579,7 +1579,7 @@ class TestSources(LookasideCacheMock, CliTestCase):
-         # NOTE: without --outdir, whatever to run sources command in package
-         # repository, sources file is downloaded into current working
-         # directory. Is this a bug, or need to improve?
--        self.assertTrue(os.path.exists('readme.patch'))
-+        self.assertTrue(os.path.exists(os.path.join(self.cloned_repo_path, 'readme.patch')))
- 
-     def test_sources_to_outdir(self):
-         cli_cmd = ['rpkg', '--path', self.cloned_repo_path,
-diff --git a/tests/test_sources.py b/tests/test_sources.py
-index cfacc51..f041373 100644
---- a/tests/test_sources.py
-+++ b/tests/test_sources.py
-@@ -66,6 +66,39 @@ class SourcesFileTestCase(unittest.TestCase):
-         self.assertEqual(entry.file, 'afile')
-         self.assertEqual(str(entry), newline)
- 
-+    def test_parse_old_style_centos_line(self):
-+        s = sources.SourcesFile(self.sourcesfile, 'old')
-+
-+        my_hash = 'abababab01010101010101010101010101010101'
-+        my_file = 'SUBDIR/afile'
-+
-+        line = '{0} {1}\n'.format(my_hash, my_file)
-+        newline = '{0}  {1}\n'.format(my_hash, 'afile')
-+        entry = s.parse_line(line)
-+
-+        self.assertTrue(isinstance(entry, sources.SourceFileEntry))
-+        self.assertEqual(entry.hashtype, 'sha1')
-+        self.assertEqual(entry.hash, my_hash)
-+        self.assertEqual(entry.file, 'afile')
-+        self.assertEqual(str(entry), newline)
-+
-+    def test_migrate_old_style_centos_line(self):
-+        s = sources.SourcesFile(self.sourcesfile, 'bsd')
-+
-+        my_hash = 128 * 'x'
-+        my_file = 'SUBDIR/afile'
-+
-+        line = '{0} {1}\n'.format(my_hash, my_file)
-+        newline = '{0}  {1}\n'.format(my_hash, 'afile')
-+        newline = 'SHA512 (afile) = {0}\n'.format(my_hash)
-+        entry = s.parse_line(line)
-+
-+        self.assertTrue(isinstance(entry, sources.SourceFileEntry))
-+        self.assertEqual(entry.hashtype, 'sha512')
-+        self.assertEqual(entry.hash, my_hash)
-+        self.assertEqual(entry.file, 'afile')
-+        self.assertEqual(str(entry), newline)
-+
-     def test_parse_entry_line(self):
-         s = sources.SourcesFile(self.sourcesfile, 'bsd')
- 
--- 
-2.37.3
-

diff --git a/0006-mockbuild-escape-rpm-command-under-mock.patch b/0006-mockbuild-escape-rpm-command-under-mock.patch
deleted file mode 100644
index e0d97e9..0000000
--- a/0006-mockbuild-escape-rpm-command-under-mock.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 7cefc5fe35a514637b1b0b68e044f0de0d188e22 Mon Sep 17 00:00:00 2001
-From: Ondrej Nosek <onosek@redhat.com>
-Date: Wed, 5 Oct 2022 03:45:22 +0200
-Subject: [PATCH 2/2] mockbuild: escape rpm command under mock
-
-Arguments of the 'rpm' part after 'mock --shell' needs to be escaped.
-Example:
-
-  mock -r xxx --chroot ... --shell rpm --define '_sourcedir xxx' ...
-
-JIRA: RHELCMP-10150
-Resolves: rhbz#2130349
-
-Signed-off-by: Ondrej Nosek <onosek@redhat.com>
----
- pyrpkg/__init__.py | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
-index a40fa5a..1595344 100644
---- a/pyrpkg/__init__.py
-+++ b/pyrpkg/__init__.py
-@@ -22,6 +22,7 @@ import os
- import posixpath
- import random
- import re
-+import shlex
- import shutil
- import subprocess
- import sys
-@@ -43,13 +44,14 @@ from six.moves.urllib.parse import urljoin
- 
- from pyrpkg import layout
- from pyrpkg.errors import (AlreadyUploadedError, HashtypeMixingError,
--                           UnknownTargetError, rpkgAuthError, rpkgError, NoSourcesError)
-+                           NoSourcesError, UnknownTargetError, rpkgAuthError,
-+                           rpkgError)
- from pyrpkg.lookaside import CGILookasideCache
- 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,
--                          spec_file_processed_by_rpmautospec, log_result)
-+                          log_result, spec_file_processed_by_rpmautospec)
- 
- from .gitignore import GitIgnore
- 
-@@ -813,6 +815,8 @@ class Commands(object):
-         # listing for each subpackage.  We only care about the first.
-         rpm_cmd.extend(["-q", "--qf", "??%{NAME} %{EPOCH} %{VERSION} %{RELEASE}??",
-                         "--specfile", "%s" % os.path.join(tmp_root, self.spec)])
-+        # escape whole 'rpm' command because it will be executed under mock command
-+        rpm_cmd = [shlex.quote(item) for item in rpm_cmd]
-         main_cmd = cmd + ['--shell'] + rpm_cmd \
-             + ['> ' + os.path.join(tmp_root, 'output')]
- 
--- 
-2.37.3
-

diff --git a/rpkg.spec b/rpkg.spec
index b6f1558..2de2f47 100644
--- a/rpkg.spec
+++ b/rpkg.spec
@@ -1,6 +1,6 @@
 Name:           rpkg
-Version:        1.65
-Release:        3%{?dist}
+Version:        1.66
+Release:        1%{?dist}
 
 Summary:        Python library for interacting with rpm+git
 License:        GPLv2+ and LGPLv2
@@ -37,9 +37,6 @@ Patch2:         0002-Remove-pytest-coverage-execution.patch
 %if 0%{?with_python2}
 Patch3:         0003-Remove-Environment-Markers-syntax.patch
 %endif
-Patch4:         0004-fedpkg-local-does-not-show-rpmbuild-output.patch
-Patch5:         0005-Fixes-for-exploded-SRPM-layouts.patch
-Patch6:         0006-mockbuild-escape-rpm-command-under-mock.patch
 
 %description
 Python library for interacting with rpm+git
@@ -54,6 +51,7 @@ BuildRequires:  python2-devel
 
 # We br these things for man page generation due to imports
 BuildRequires:  rpmlint
+BuildRequires:  rpmdevtools
 BuildRequires:  python2-koji >= 1.21
 BuildRequires:  python2-cccolutils
 BuildRequires:  PyYAML
@@ -71,6 +69,7 @@ Requires:       mock
 Requires:       redhat-rpm-config
 Requires:       rpm-build
 Requires:       rpmlint
+Requires:       rpmdevtools
 Requires:       python2-argcomplete
 Requires:       python2-cccolutils
 Requires:       python2-koji >= 1.21
@@ -127,11 +126,13 @@ BuildRequires:  python3-setuptools
 BuildRequires:  python3-pytest
 BuildRequires:  python3-PyYAML
 BuildRequires:  rpmlint
+BuildRequires:  rpmdevtools
 
 Requires:       mock
 Requires:       redhat-rpm-config
 Requires:       rpm-build
 Requires:       rpmlint
+Requires:       rpmdevtools
 
 Requires:       python3-argcomplete
 Requires:       python3-GitPython >= 0.2.0
@@ -252,6 +253,30 @@ example_cli_dir=$RPM_BUILD_ROOT%{_datadir}/%{name}/examples/cli
 
 
 %changelog
+* Mon Feb 20 2023 Ondřej Nosek <onosek@redhat.com> - 1.66-1
+- container-build: document --compose-ids overrides any new composes (kdreyer)
+- Use srpm when scratch-building from dirty repo - #652 (otto.liljalaakso)
+- Code cleanup in tests/test_cli.py (otto.liljalaakso)
+- Reduce indentation in assert_build helper (otto.liljalaakso)
+- Allow empty commits - 494 (msuchy)
+- Allow forcing download of all sources - #650 (otto.liljalaakso)
+- Add test case for not downloading unused sources (otto.liljalaakso)
+- Support 'results_dir=subdir' when building from srpm - #648
+  (otto.liljalaakso)
+- Use local branch name as release when there is no remote (otto.liljalaakso)
+- Allow downstreams to define a default release (otto.liljalaakso)
+- Switch load_branch_merge to use multiple return (otto.liljalaakso)
+- Unittests for 'git push' hook script (onosek)
+- Checking a repo configuration before 'git push' with a git hook script - 491
+  (onosek)
+- Fix skipping NVR check with autorelease (nils)
+- pyrpkg.spec.SpecFile: More lenient parser for Source/Patch lines (fweimer)
+- Fix URL in CHANGELOG.rst (tmz)
+- Add Jenkinsfile for CI (onosek)
+- mockbuild: escape rpm command under mock - rhbz#2130349 (onosek)
+- Fixes for exploded SRPM layouts - #633 (tdawson)
+- `fedpkg local` does not show rpmbuild output - rhbz#2124809 (onosek)
+
 * Mon Oct 10 2022 Ondřej Nosek <onosek@redhat.com> - 1.65-3
 - Patch: Fixes for exploded SRPM layouts
 - Patch: mockbuild: escape rpm command under mock

diff --git a/sources b/sources
index 78dc275..d98b3f9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rpkg-1.65.tar.gz) = 6f8b5b0b075b0f42ffa4f1456c1a6ab9e3eff1c0bba89a9badee47e22670928e1c2769147b26aede3d79e17df783344e3b681d684dc8d011c77d439cbd3e2b65
+SHA512 (rpkg-1.66.tar.gz) = 14a6947146cd5a8f9baa2d3fba0a37bb0d7ab5bd69e29c04282c882e1f249831c8faf443d4dd94adfe1bf385f6525cefef84b10d44a3949d815fd293d5f5fccc

                 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=178639827184.1.7897087528870557752.rpms-rpkg-a5e0d4c6670f@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