Skip to content

Commit c243b09

Browse files
Fix qualifier bug in debian purls
See https://github.com/package-url/purl-spec/blob/master/PURL-TYPES.rst#deb Here `arch is the qualifiers key for a package architecture`, and we were using architecture, which was a bug. This commit is a fix for that. Signed-off-by: Ayan Sinha Mahapatra <[email protected]>
1 parent 3b29dcc commit c243b09

File tree

12 files changed

+1709
-1709
lines changed

12 files changed

+1709
-1709
lines changed

src/packagedcode/debian.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ def assemble(cls, package_data, resource, codebase, package_adder):
279279

280280
# We only need to adjust the md5sum/list path in the case of `same`
281281
qualifiers = package_data.qualifiers or {}
282-
architecture = qualifiers.get('architecture')
282+
architecture = qualifiers.get('arch')
283283

284284
multi_arch = package_data.extra_data.get('multi_arch')
285285

@@ -626,7 +626,7 @@ def build_package_data(debian_data, datasource_id, package_type='deb', distro=No
626626
qualifiers = {}
627627
architecture = debian_data.get('architecture')
628628
if architecture:
629-
qualifiers['architecture'] = architecture
629+
qualifiers['arch'] = architecture
630630

631631
extra_data = {}
632632
# Multi-Arch can be: "foreign", "same", "allowed", "all", "optional" or

tests/packagedcode/data/debian/basic-rootfs-expected.json

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"name": "libncurses5",
77
"version": "6.1-1ubuntu1.18.04",
88
"qualifiers": {
9-
"architecture": "amd64"
9+
"arch": "amd64"
1010
},
1111
"subpath": null,
1212
"primary_language": null,
@@ -180,7 +180,7 @@
180180
"repository_homepage_url": null,
181181
"repository_download_url": null,
182182
"api_data_url": null,
183-
"package_uid": "pkg:deb/ubuntu/[email protected]?architecture=amd64&uuid=fixed-uid-done-for-testing-5642512d1758",
183+
"package_uid": "pkg:deb/ubuntu/[email protected]?arch=amd64&uuid=fixed-uid-done-for-testing-5642512d1758",
184184
"datafile_paths": [
185185
"basic-rootfs.tar.gz/var/lib/dpkg/status",
186186
"basic-rootfs.tar.gz/usr/share/doc/libncurses5/copyright",
@@ -191,15 +191,15 @@
191191
"debian_copyright_in_package",
192192
"debian_installed_md5sums"
193193
],
194-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
194+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
195195
},
196196
{
197197
"type": "deb",
198198
"namespace": "ubuntu",
199199
"name": "libndp0",
200200
"version": "1.4-2ubuntu0.16.04.1",
201201
"qualifiers": {
202-
"architecture": "amd64"
202+
"arch": "amd64"
203203
},
204204
"subpath": null,
205205
"primary_language": null,
@@ -319,7 +319,7 @@
319319
"repository_homepage_url": null,
320320
"repository_download_url": null,
321321
"api_data_url": null,
322-
"package_uid": "pkg:deb/ubuntu/[email protected]?architecture=amd64&uuid=fixed-uid-done-for-testing-5642512d1758",
322+
"package_uid": "pkg:deb/ubuntu/[email protected]?arch=amd64&uuid=fixed-uid-done-for-testing-5642512d1758",
323323
"datafile_paths": [
324324
"basic-rootfs.tar.gz/var/lib/dpkg/status",
325325
"basic-rootfs.tar.gz/usr/share/doc/libndp0/copyright",
@@ -330,7 +330,7 @@
330330
"debian_copyright_in_package",
331331
"debian_installed_md5sums"
332332
],
333-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
333+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
334334
}
335335
],
336336
"dependencies": [],
@@ -507,7 +507,7 @@
507507
}
508508
],
509509
"for_packages": [
510-
"pkg:deb/ubuntu/[email protected]?architecture=amd64&uuid=fixed-uid-done-for-testing-5642512d1758"
510+
"pkg:deb/ubuntu/[email protected]?arch=amd64&uuid=fixed-uid-done-for-testing-5642512d1758"
511511
],
512512
"scan_errors": []
513513
},
@@ -619,7 +619,7 @@
619619
}
620620
],
621621
"for_packages": [
622-
"pkg:deb/ubuntu/[email protected]?architecture=amd64&uuid=fixed-uid-done-for-testing-5642512d1758"
622+
"pkg:deb/ubuntu/[email protected]?arch=amd64&uuid=fixed-uid-done-for-testing-5642512d1758"
623623
],
624624
"scan_errors": []
625625
},
@@ -738,7 +738,7 @@
738738
}
739739
],
740740
"for_packages": [
741-
"pkg:deb/ubuntu/[email protected]?architecture=amd64&uuid=fixed-uid-done-for-testing-5642512d1758"
741+
"pkg:deb/ubuntu/[email protected]?arch=amd64&uuid=fixed-uid-done-for-testing-5642512d1758"
742742
],
743743
"scan_errors": []
744744
},
@@ -820,7 +820,7 @@
820820
}
821821
],
822822
"for_packages": [
823-
"pkg:deb/ubuntu/[email protected]?architecture=amd64&uuid=fixed-uid-done-for-testing-5642512d1758"
823+
"pkg:deb/ubuntu/[email protected]?arch=amd64&uuid=fixed-uid-done-for-testing-5642512d1758"
824824
],
825825
"scan_errors": []
826826
},
@@ -834,7 +834,7 @@
834834
"name": "libncurses5",
835835
"version": "6.1-1ubuntu1.18.04",
836836
"qualifiers": {
837-
"architecture": "amd64"
837+
"arch": "amd64"
838838
},
839839
"subpath": null,
840840
"primary_language": null,
@@ -884,15 +884,15 @@
884884
"repository_download_url": null,
885885
"api_data_url": null,
886886
"datasource_id": "debian_installed_status_db",
887-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
887+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
888888
},
889889
{
890890
"type": "deb",
891891
"namespace": "ubuntu",
892892
"name": "libndp0",
893893
"version": "1.4-2ubuntu0.16.04.1",
894894
"qualifiers": {
895-
"architecture": "amd64"
895+
"arch": "amd64"
896896
},
897897
"subpath": null,
898898
"primary_language": null,
@@ -942,7 +942,7 @@
942942
"repository_download_url": null,
943943
"api_data_url": null,
944944
"datasource_id": "debian_installed_status_db",
945-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
945+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
946946
}
947947
],
948948
"for_packages": [],

tests/packagedcode/data/debian/basic/status.expected

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"name": "libncurses5",
66
"version": "6.1-1ubuntu1.18.04",
77
"qualifiers": {
8-
"architecture": "amd64"
8+
"arch": "amd64"
99
},
1010
"subpath": null,
1111
"primary_language": null,
@@ -55,15 +55,15 @@
5555
"repository_download_url": null,
5656
"api_data_url": null,
5757
"datasource_id": "debian_installed_status_db",
58-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
58+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
5959
},
6060
{
6161
"type": "deb",
6262
"namespace": "ubuntu",
6363
"name": "libcom-err2",
6464
"version": "1.44.1-1ubuntu1.1",
6565
"qualifiers": {
66-
"architecture": "amd64"
66+
"arch": "amd64"
6767
},
6868
"subpath": null,
6969
"primary_language": null,
@@ -113,15 +113,15 @@
113113
"repository_download_url": null,
114114
"api_data_url": null,
115115
"datasource_id": "debian_installed_status_db",
116-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
116+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
117117
},
118118
{
119119
"type": "deb",
120120
"namespace": "ubuntu",
121121
"name": "libapt-pkg5.0",
122122
"version": "1.6.11",
123123
"qualifiers": {
124-
"architecture": "amd64"
124+
"arch": "amd64"
125125
},
126126
"subpath": null,
127127
"primary_language": null,
@@ -171,15 +171,15 @@
171171
"repository_download_url": null,
172172
"api_data_url": null,
173173
"datasource_id": "debian_installed_status_db",
174-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
174+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
175175
},
176176
{
177177
"type": "deb",
178178
"namespace": "ubuntu",
179179
"name": "libaudit1",
180180
"version": "1:2.8.2-1ubuntu1",
181181
"qualifiers": {
182-
"architecture": "amd64"
182+
"arch": "amd64"
183183
},
184184
"subpath": null,
185185
"primary_language": null,
@@ -229,15 +229,15 @@
229229
"repository_download_url": null,
230230
"api_data_url": null,
231231
"datasource_id": "debian_installed_status_db",
232-
"purl": "pkg:deb/ubuntu/libaudit1@1:2.8.2-1ubuntu1?architecture=amd64"
232+
"purl": "pkg:deb/ubuntu/libaudit1@1:2.8.2-1ubuntu1?arch=amd64"
233233
},
234234
{
235235
"type": "deb",
236236
"namespace": "ubuntu",
237237
"name": "perl-base",
238238
"version": "5.26.1-6ubuntu0.3",
239239
"qualifiers": {
240-
"architecture": "amd64"
240+
"arch": "amd64"
241241
},
242242
"subpath": null,
243243
"primary_language": null,
@@ -285,15 +285,15 @@
285285
"repository_download_url": null,
286286
"api_data_url": null,
287287
"datasource_id": "debian_installed_status_db",
288-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
288+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
289289
},
290290
{
291291
"type": "deb",
292292
"namespace": "ubuntu",
293293
"name": "libudev1",
294294
"version": "237-3ubuntu10.22",
295295
"qualifiers": {
296-
"architecture": "amd64"
296+
"arch": "amd64"
297297
},
298298
"subpath": null,
299299
"primary_language": null,
@@ -343,6 +343,6 @@
343343
"repository_download_url": null,
344344
"api_data_url": null,
345345
"datasource_id": "debian_installed_status_db",
346-
"purl": "pkg:deb/ubuntu/[email protected]?architecture=amd64"
346+
"purl": "pkg:deb/ubuntu/[email protected]?arch=amd64"
347347
}
348348
]

tests/packagedcode/data/debian/control.expected.json

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"name": "gzip",
77
"version": null,
88
"qualifiers": {
9-
"architecture": "any"
9+
"arch": "any"
1010
},
1111
"subpath": null,
1212
"primary_language": null,
@@ -39,22 +39,22 @@
3939
"repository_homepage_url": null,
4040
"repository_download_url": null,
4141
"api_data_url": null,
42-
"package_uid": "pkg:deb/debian/gzip?architecture=any&uuid=fixed-uid-done-for-testing-5642512d1758",
42+
"package_uid": "pkg:deb/debian/gzip?arch=any&uuid=fixed-uid-done-for-testing-5642512d1758",
4343
"datafile_paths": [
4444
"control/debian/control"
4545
],
4646
"datasource_ids": [
4747
"debian_control_in_source"
4848
],
49-
"purl": "pkg:deb/debian/gzip?architecture=any"
49+
"purl": "pkg:deb/debian/gzip?arch=any"
5050
},
5151
{
5252
"type": "deb",
5353
"namespace": "debian",
5454
"name": "gzip-win32",
5555
"version": null,
5656
"qualifiers": {
57-
"architecture": "all"
57+
"arch": "all"
5858
},
5959
"subpath": null,
6060
"primary_language": null,
@@ -87,14 +87,14 @@
8787
"repository_homepage_url": null,
8888
"repository_download_url": null,
8989
"api_data_url": null,
90-
"package_uid": "pkg:deb/debian/gzip-win32?architecture=all&uuid=fixed-uid-done-for-testing-5642512d1758",
90+
"package_uid": "pkg:deb/debian/gzip-win32?arch=all&uuid=fixed-uid-done-for-testing-5642512d1758",
9191
"datafile_paths": [
9292
"control/debian/control"
9393
],
9494
"datasource_ids": [
9595
"debian_control_in_source"
9696
],
97-
"purl": "pkg:deb/debian/gzip-win32?architecture=all"
97+
"purl": "pkg:deb/debian/gzip-win32?arch=all"
9898
}
9999
],
100100
"dependencies": [],
@@ -104,8 +104,8 @@
104104
"type": "directory",
105105
"package_data": [],
106106
"for_packages": [
107-
"pkg:deb/debian/gzip?architecture=any&uuid=fixed-uid-done-for-testing-5642512d1758",
108-
"pkg:deb/debian/gzip-win32?architecture=all&uuid=fixed-uid-done-for-testing-5642512d1758"
107+
"pkg:deb/debian/gzip?arch=any&uuid=fixed-uid-done-for-testing-5642512d1758",
108+
"pkg:deb/debian/gzip-win32?arch=all&uuid=fixed-uid-done-for-testing-5642512d1758"
109109
],
110110
"scan_errors": []
111111
},
@@ -114,8 +114,8 @@
114114
"type": "directory",
115115
"package_data": [],
116116
"for_packages": [
117-
"pkg:deb/debian/gzip?architecture=any&uuid=fixed-uid-done-for-testing-5642512d1758",
118-
"pkg:deb/debian/gzip-win32?architecture=all&uuid=fixed-uid-done-for-testing-5642512d1758"
117+
"pkg:deb/debian/gzip?arch=any&uuid=fixed-uid-done-for-testing-5642512d1758",
118+
"pkg:deb/debian/gzip-win32?arch=all&uuid=fixed-uid-done-for-testing-5642512d1758"
119119
],
120120
"scan_errors": []
121121
},
@@ -183,7 +183,7 @@
183183
"name": "gzip",
184184
"version": null,
185185
"qualifiers": {
186-
"architecture": "any"
186+
"arch": "any"
187187
},
188188
"subpath": null,
189189
"primary_language": null,
@@ -219,15 +219,15 @@
219219
"repository_download_url": null,
220220
"api_data_url": null,
221221
"datasource_id": "debian_control_in_source",
222-
"purl": "pkg:deb/debian/gzip?architecture=any"
222+
"purl": "pkg:deb/debian/gzip?arch=any"
223223
},
224224
{
225225
"type": "deb",
226226
"namespace": "debian",
227227
"name": "gzip-win32",
228228
"version": null,
229229
"qualifiers": {
230-
"architecture": "all"
230+
"arch": "all"
231231
},
232232
"subpath": null,
233233
"primary_language": null,
@@ -263,12 +263,12 @@
263263
"repository_download_url": null,
264264
"api_data_url": null,
265265
"datasource_id": "debian_control_in_source",
266-
"purl": "pkg:deb/debian/gzip-win32?architecture=all"
266+
"purl": "pkg:deb/debian/gzip-win32?arch=all"
267267
}
268268
],
269269
"for_packages": [
270-
"pkg:deb/debian/gzip?architecture=any&uuid=fixed-uid-done-for-testing-5642512d1758",
271-
"pkg:deb/debian/gzip-win32?architecture=all&uuid=fixed-uid-done-for-testing-5642512d1758"
270+
"pkg:deb/debian/gzip?arch=any&uuid=fixed-uid-done-for-testing-5642512d1758",
271+
"pkg:deb/debian/gzip-win32?arch=all&uuid=fixed-uid-done-for-testing-5642512d1758"
272272
],
273273
"scan_errors": []
274274
}

0 commit comments

Comments
 (0)