From 13248b3a30eee83bc91bd0d27e03593a77859e2b Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Sun, 7 Apr 2024 16:45:39 +0100 Subject: [PATCH] Add dependencies etc. to JSON output --- calm/package.py | 19 ++++++---- .../process_arch/packages.json.expected | 36 ++++++++++++++++++- 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/calm/package.py b/calm/package.py index 860bc64..5414053 100755 --- a/calm/package.py +++ b/calm/package.py @@ -1448,15 +1448,22 @@ def package(p): 'name': po.orig_name, 'versions': versions, 'summary': po.version_hints[bv]['sdesc'].strip('"'), - 'subpackages': [{'name': sp, 'categories': package(sp).version_hints[package(sp).best_version].get('category', '').split()} for sp in sorted(po.is_used_by)], 'arches': arches, } - if 'homepage' in po.version_hints[bv]: - d['homepage'] = po.version_hints[bv]['homepage'] - - if 'license' in po.version_hints[bv]: - d['license'] = po.version_hints[bv]['license'] + spl = [] + for sp in sorted(po.is_used_by): + hints = package(sp).version_hints[package(sp).best_version] + sp = {'name': sp, 'categories': hints.get('category', '').split()} + for k in ['depends', 'provides', 'obsoletes']: + if hints.get(k, None): + sp[k] = [d.strip() for d in hints[k].split(',')] + spl.append(sp) + d['subpackages'] = spl + + for k in ['homepage', 'license', 'build-depends']: + if k in po.version_hints[bv]: + d[k] = po.version_hints[bv][k] build_recipe = _find_build_recipe_file(args, po.orig_name) if build_recipe: diff --git a/test/testdata/process_arch/packages.json.expected b/test/testdata/process_arch/packages.json.expected index a915f4d..2c41b14 100644 --- a/test/testdata/process_arch/packages.json.expected +++ b/test/testdata/process_arch/packages.json.expected @@ -63,12 +63,18 @@ ' "categories": [\n' ' "Base"\n' ' ],\n' + ' "depends": [\n' + ' "base-cygwin"\n' + ' ],\n' ' "name": "cygwin"\n' ' },\n' ' {\n' ' "categories": [\n' ' "Debug"\n' ' ],\n' + ' "depends": [\n' + ' "cygwin-debuginfo"\n' + ' ],\n' ' "name": "cygwin-debuginfo"\n' ' },\n' ' {\n' @@ -102,6 +108,9 @@ ' "categories": [\n' ' "Utils"\n' ' ],\n' + ' "depends": [\n' + ' "openssh"\n' + ' ],\n' ' "name": "keychain"\n' ' }\n' ' ],\n' @@ -126,6 +135,9 @@ ' "categories": [\n' ' "Net"\n' ' ],\n' + ' "depends": [\n' + ' "libdns_sd1"\n' + ' ],\n' ' "name": "libdns_sd-devel"\n' ' },\n' ' {\n' @@ -138,6 +150,9 @@ ' "categories": [\n' ' "Net"\n' ' ],\n' + ' "depends": [\n' + ' "libdns_sd1"\n' + ' ],\n' ' "name": "mDNSResponder"\n' ' }\n' ' ],\n' @@ -224,6 +239,10 @@ ' "categories": [\n' ' "Base"\n' ' ],\n' + ' "depends": [\n' + ' "base-cygwin",\n' + ' "per-version"\n' + ' ],\n' ' "name": "per-version-replacement-hint-only"\n' ' }\n' ' ],\n' @@ -247,6 +266,9 @@ ' "categories": [\n' ' "Base"\n' ' ],\n' + ' "depends": [\n' + ' "base-cygwin"\n' + ' ],\n' ' "name": "per-version"\n' ' }\n' ' ],\n' @@ -347,7 +369,15 @@ ' "categories": [\n' ' "Devel"\n' ' ],\n' - ' "name": "test-c"\n' + ' "depends": [\n' + ' "test-d (>= 1.0)",\n' + ' "test-e"\n' + ' ],\n' + ' "name": "test-c",\n' + ' "obsoletes": [\n' + ' "obs-a",\n' + ' "obs-b"\n' + ' ]\n' ' }\n' ' ],\n' ' "summary": "test package C",\n' @@ -381,6 +411,7 @@ ' "arches": [\n' ' "x86_64"\n' ' ],\n' + ' "build-depends": "cygwin-devel",\n' ' "name": "test-e",\n' ' "subpackages": [\n' ' {\n' @@ -411,6 +442,9 @@ ' "categories": [\n' ' "Devel"\n' ' ],\n' + ' "depends": [\n' + ' "cygwin"\n' + ' ],\n' ' "name": "testpackage"\n' ' },\n' ' {\n'