import subprocess
import sys
import shlex

def runcmd(cmd):
    return subprocess.check_output(shlex.split(cmd)).decode('utf8').split('\n')

def getsrpm(rpm):
    rpminfo = runcmd(f'rpm -qi {rpm}')
    for inf in rpminfo:
        if inf.startswith('Source RPM'):
            srpm = inf.split(':', 1)[1].strip()
            return srpm

srpmtorpm = {}
rpmtosrpm = {}
allrpmlist = runcmd('rpm -qa')
for rpm in allrpmlist:
    if not rpm:
        continue
    srpm = getsrpm(rpm)
    rpmtosrpm[rpm] = srpm
    if srpm in srpmtorpm:
        srpmtorpm[srpm].add(rpm)
    else:
        srpmtorpm[srpm] = {rpm}

with open(sys.argv[1]) as rpmlist:
    rpmlist = rpmlist.read().split('\n')
licenses = set([])
for rpm in rpmlist:
    if not rpm:
        continue
    srpm = rpmtosrpm[rpm]
    for relrpm in srpmtorpm[srpm]:
        liclist = runcmd(f'rpm -qL {relrpm}')
        for lic in liclist:
            licenses.add(lic)
for lic in sorted(licenses):
    print(lic)

            


@@ -877,24 +877,94 @@
 in liclist:%0A
+            if lic == '(contains no files)':%0A                continue%0A
             

Handle metapackages