#!/usr/bin/python3 import json from urllib.request import urlopen def get_pkgs(compose_url): rpms_url = compose_url + 'compose/metadata/rpms.json' with urlopen(rpms_url) as response: data = json.loads(response.read()) return { # convert name-epoch:version-release.arch key to just the name nevra.rsplit('.', maxsplit=1)[0].rsplit('-', maxsplit=2)[0] # only packages from these repos are forbidden in epel for repo in ['BaseOS', 'AppStream', 'CRB'] for arch in data['payload']['rpms'][repo].keys() for nevra in data['payload']['rpms'][repo][arch].keys() } pkgs_c9 = get_pkgs('https://composes.stream.centos.org/production/latest-CentOS-Stream/') pkgs_c10 = get_pkgs('https://composes.stream.centos.org/stream-10/production/latest-CentOS-Stream/') # packages that were in CentOS 9 but not are not in CentOS 10 results = sorted(pkgs_c9 - pkgs_c10) print('\n'.join(results))