Skip to content

Commit d5512b7

Browse files
committed
Merge branch '3.0' into fasttrack/3.0
2 parents b1c6ca2 + 1e47ea2 commit d5512b7

214 files changed

Lines changed: 11840 additions & 6854 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
distroless-packages-base
2-
nodejs24
3-
nodejs24-npm
2+
nodejs
3+
nodejs-npm
44
prebuilt-ca-certificates
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
nodejs24
1+
nodejs
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
ca-certificates
2-
nodejs24
3-
nodejs24-npm
2+
nodejs
3+
nodejs-npm

LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

LICENSES-AND-NOTICES/SPECS/data/licenses.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@
258258
"fxload",
259259
"gavl",
260260
"gbenchmark",
261+
"gcab",
261262
"gconf-editor",
262263
"GConf2",
263264
"gcovr",
@@ -559,6 +560,7 @@
559560
"kf-kcoreaddons",
560561
"kf-ki18n",
561562
"kf-kwidgetsaddons",
563+
"koji",
562564
"kpmcore",
563565
"kronosnet",
564566
"ksh",
@@ -1661,6 +1663,7 @@
16611663
"python-blivet",
16621664
"python-boltons",
16631665
"python-breathe",
1666+
"python-build",
16641667
"python-cached_property",
16651668
"python-cbor2",
16661669
"python-charset-normalizer",
@@ -1763,6 +1766,7 @@
17631766
"python-mpmath",
17641767
"python-msal",
17651768
"python-msrestazure",
1769+
"python-multilib",
17661770
"python-mutagen",
17671771
"python-networkx",
17681772
"python-nose2",
@@ -1785,12 +1789,14 @@
17851789
"python-productmd",
17861790
"python-prometheus_client",
17871791
"python-ptyprocess",
1792+
"python-pycdio",
17881793
"python-pycosat",
17891794
"python-pydbus",
17901795
"python-pymongo",
17911796
"python-PyMySQL",
17921797
"python-pyperclip",
17931798
"python-pyproject-api",
1799+
"python-pyproject-hooks",
17941800
"python-pyproject-metadata",
17951801
"python-pyroute2",
17961802
"python-pyrsistent",
@@ -1911,6 +1917,7 @@
19111917
"qhull",
19121918
"qpdf",
19131919
"qperf",
1920+
"qpid-proton",
19141921
"qr-code-generator",
19151922
"qt-rpm-macros",
19161923
"qt6-qtconnectivity",
@@ -2128,6 +2135,7 @@
21282135
"vhostmd",
21292136
"vino",
21302137
"virglrenderer",
2138+
"virt-manager",
21312139
"virt-p2v",
21322140
"virt-top",
21332141
"virt-what",
@@ -2227,6 +2235,7 @@
22272235
"Fedora (ISC)": {
22282236
"license": "[ISC License](https://github.com/sarugaku/resolvelib/blob/main/LICENSE)",
22292237
"specs": [
2238+
"python-requests-gssapi",
22302239
"python-resolvelib"
22312240
]
22322241
},
@@ -2460,6 +2469,7 @@
24602469
"vala",
24612470
"valkey",
24622471
"vnstat",
2472+
"walinuxagent-acl-config",
24632473
"zstd"
24642474
]
24652475
},
@@ -2952,7 +2962,6 @@
29522962
"nginx",
29532963
"ninja-build",
29542964
"nodejs",
2955-
"nodejs24",
29562965
"npth",
29572966
"nspr",
29582967
"nss",
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
From 73b4f34bea6613e9bcc9acfe46761073cceaff5a Mon Sep 17 00:00:00 2001
2+
From: Adam Williamson <awilliam@redhat.com>
3+
Date: Fri, 14 Mar 2025 16:04:21 -0700
4+
Subject: [PATCH 1/2] download-build: allow fallback to unsigned with --key
5+
6+
If you pass --key to download-build and signed packages aren't
7+
available, Koji will skip the unsigned package, or error out.
8+
This adds a modified behavior controlled by the new
9+
--fallback-unsigned arg. If this is passed with --key, unsigned
10+
copies will be downloaded for packages for which no signed copy
11+
can be found.
12+
13+
This is primarily intended to work with a proposed Bodhi feature:
14+
https://github.com/fedora-infra/bodhi/pull/5859 . That would
15+
make Bodhi's `bodhi updates download` command automatically try
16+
to download signed copies, but I think it would be best if it
17+
falls back to getting unsigned copies if that doesn't work. Just
18+
failing out entirely seems wrong for that case. Implementing the
19+
fallback in Bodhi itself is more awkward and messy than adding it
20+
in Koji, and it may be useful for others in Koji I guess.
21+
22+
Note there are two distinct 'no signed copies' cases. In the
23+
simple one, queryRPMSigs tells us Koji has no record of the
24+
package ever being signed with the key in question. In this case
25+
we don't bother trying to download a signed copy. In the other
26+
case, queryRPMSigs tells us the package *has* been signed with
27+
the key, but it turns out that signed copy has been garbage-
28+
collected and we can no longer download it. In this case we have
29+
to catch the failure on the download attempt and retry the
30+
download with sigkey set to None.
31+
32+
Signed-off-by: Adam Williamson <awilliam@redhat.com>
33+
---
34+
cli/koji_cli/commands.py | 26 ++++++++++++++++++++++++--
35+
1 file changed, 24 insertions(+), 2 deletions(-)
36+
37+
diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py
38+
index 29b6e0a6..73c586fc 100644
39+
--- a/cli/koji_cli/commands.py
40+
+++ b/cli/koji_cli/commands.py
41+
@@ -19,6 +19,7 @@ from datetime import datetime
42+
from dateutil.tz import tzutc
43+
from optparse import SUPPRESS_HELP, OptionParser
44+
45+
+from requests.exceptions import HTTPError
46+
import six
47+
import six.moves.xmlrpc_client
48+
from six.moves import filter, map, range, zip
49+
@@ -6830,6 +6831,8 @@ def anon_handle_download_build(options, session, args):
50+
parser.add_option("--task-id", action="store_true", help="Interperet id as a task id")
51+
parser.add_option("--rpm", action="store_true", help="Download the given rpm")
52+
parser.add_option("--key", help="Download rpms signed with the given key")
53+
+ parser.add_option("--fallback-unsigned", action="store_true",
54+
+ help="When used with --key: download unsigned if signed packages not found")
55+
parser.add_option("--topurl", metavar="URL", default=options.topurl,
56+
help="URL under which Koji files are accessible")
57+
parser.add_option("--noprogress", action="store_true", help="Do not display progress meter")
58+
@@ -6912,6 +6915,7 @@ def anon_handle_download_build(options, session, args):
59+
continue
60+
rpms.append(rpm)
61+
62+
+ unsigned = []
63+
if suboptions.key:
64+
with session.multicall() as m:
65+
results = [m.queryRPMSigs(rpm_id=r['id'], sigkey=suboptions.key) for r in rpms]
66+
@@ -6921,14 +6925,32 @@ def anon_handle_download_build(options, session, args):
67+
nvra = "%(nvr)s-%(arch)s.rpm" % rpm
68+
warn("No such sigkey %s for rpm %s" % (suboptions.key, nvra))
69+
rpms.remove(rpm)
70+
+ if suboptions.fallback_unsigned:
71+
+ unsigned.append(rpm)
72+
73+
- size = len(rpms) + len(archives)
74+
+ size = len(rpms) + len(unsigned) + len(archives)
75+
number = 0
76+
77+
# run the download
78+
for rpm in rpms:
79+
number += 1
80+
- download_rpm(info, rpm, suboptions.topurl, sigkey=suboptions.key, quiet=suboptions.quiet,
81+
+ try:
82+
+ download_rpm(info, rpm, suboptions.topurl, sigkey=suboptions.key, quiet=suboptions.quiet,
83+
+ noprogress=suboptions.noprogress, num=number, size=size)
84+
+ except HTTPError as err:
85+
+ # this is necessary even with the 'unsigned' handling above
86+
+ # because sometimes queryRPMSigs will still tell us a
87+
+ # package was signed with a given key, but the signed copy
88+
+ # has been garbage-collected
89+
+ if suboptions.key and suboptions.fallback_unsigned and err.response.status_code == 404:
90+
+ warn("Signed copy not present, will download unsigned copy")
91+
+ download_rpm(info, rpm, suboptions.topurl, sigkey=None, quiet=suboptions.quiet,
92+
+ noprogress=suboptions.noprogress, num=number, size=size)
93+
+ else:
94+
+ raise
95+
+ for rpm in unsigned:
96+
+ number += 1
97+
+ download_rpm(info, rpm, suboptions.topurl, sigkey=None, quiet=suboptions.quiet,
98+
noprogress=suboptions.noprogress, num=number, size=size)
99+
for archive in archives:
100+
number += 1
101+
--
102+
2.52.0
103+
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
From 7c0ec989b49a479309e2c1dff20621e037f9dd4c Mon Sep 17 00:00:00 2001
2+
From: Tomas Kopecek <tkopecek@redhat.com>
3+
Date: Tue, 29 Apr 2025 16:27:29 +0200
4+
Subject: [PATCH 2/2] Fix flake8 and unit test
5+
6+
---
7+
cli/koji_cli/commands.py | 5 +++--
8+
tests/test_cli/test_download_build.py | 2 ++
9+
2 files changed, 5 insertions(+), 2 deletions(-)
10+
11+
diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py
12+
index 73c586fc..c072ed43 100644
13+
--- a/cli/koji_cli/commands.py
14+
+++ b/cli/koji_cli/commands.py
15+
@@ -6935,8 +6935,9 @@ def anon_handle_download_build(options, session, args):
16+
for rpm in rpms:
17+
number += 1
18+
try:
19+
- download_rpm(info, rpm, suboptions.topurl, sigkey=suboptions.key, quiet=suboptions.quiet,
20+
- noprogress=suboptions.noprogress, num=number, size=size)
21+
+ download_rpm(info, rpm, suboptions.topurl, sigkey=suboptions.key,
22+
+ quiet=suboptions.quiet, noprogress=suboptions.noprogress, num=number,
23+
+ size=size)
24+
except HTTPError as err:
25+
# this is necessary even with the 'unsigned' handling above
26+
# because sometimes queryRPMSigs will still tell us a
27+
diff --git a/tests/test_cli/test_download_build.py b/tests/test_cli/test_download_build.py
28+
index 4c90aa9c..2495b189 100644
29+
--- a/tests/test_cli/test_download_build.py
30+
+++ b/tests/test_cli/test_download_build.py
31+
@@ -297,6 +297,8 @@ Options:
32+
--task-id Interperet id as a task id
33+
--rpm Download the given rpm
34+
--key=KEY Download rpms signed with the given key
35+
+ --fallback-unsigned When used with --key: download unsigned if signed
36+
+ packages not found
37+
--topurl=URL URL under which Koji files are accessible
38+
--noprogress Do not display progress meter
39+
-q, --quiet Suppress output
40+
--
41+
2.52.0
42+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"Signatures": {
3+
"koji-1.35.3.tar.bz2": "eb5c2f6bfd8ac0f173ba9170272b00201c73b4082734350430d6edf68fb15f22"
4+
}
5+
}

0 commit comments

Comments
 (0)