2
0
mirror of https://github.com/xcat2/confluent.git synced 2024-11-22 01:22:00 +00:00

Revamp license gathering for genesis

This commit is contained in:
Jarrod Johnson 2023-01-31 08:52:32 -05:00
parent 521a58c1d9
commit 23f33a8420
2 changed files with 44 additions and 3 deletions

View File

@ -18,7 +18,11 @@ popd
rm -rf $tdir
cp $tfile rpmlist
cp confluent-genesis.spec confluent-genesis-out.spec
for lic in $(python3 getlicenses.py rpmlist); do
python3 getlicenses.py > /tmp/tmpliclist
if [ $? -ne 0 ]; then
exit 1
fi
for lic in $(cat /tmp/tmpliclist); do
lo=${lic#/usr/share/}
lo=${lo#licenses/}
fname=$(basename $lo)
@ -45,7 +49,7 @@ cp /usr/share/doc/ipmitool/COPYING licenses/ipmitool
echo %license /opt/confluent/genesis/%{arch}/licenses/ipmitool/COPYING >> confluent-genesis-out.spec
cp -f /boot/vmlinuz-$(uname -r) boot/kernel
cp /boot/efi/EFI/BOOT/BOOTX64.EFI boot/efi/boot
cp /boot/efi/EFI/centos/grubx64.efi boot/efi/boot/grubx64.efi
find /boot/efi -name grubx64.efi -exec cp {} boot/efi/boot/grubx64.efi \;
mkdir -p ~/rpmbuild/SOURCES/
tar cf ~/rpmbuild/SOURCES/confluent-genesis.tar boot rpmlist licenses
rpmbuild -bb confluent-genesis-out.spec

View File

@ -28,6 +28,7 @@ for rpm in allrpmlist:
with open(sys.argv[1]) as rpmlist:
rpmlist = rpmlist.read().split('\n')
licenses = set([])
licensesbyrpm = {}
for rpm in rpmlist:
if not rpm:
continue
@ -37,11 +38,47 @@ for rpm in rpmlist:
for relrpm in srpmtorpm[srpm]:
liclist = runcmd(f'rpm -qL {relrpm}')
for lic in liclist:
if not lic:
continue
if lic == '(contains no files)':
continue
licensesbyrpm[rpm] = lic
licenses.add(lic)
for lic in sorted(licenses):
print(lic)
manualrpms = [
'ipmitool',
'almalinux-release',
'libaio',
'hwdata',
'snmp',
'libnl3',
'libbpf', # this is covered by kernel
'sqlite', # public domain
'linux-firmware', #all pertinent licenses are stripped out
'xfsprogs', # manually added by hand below (not in rpm)
'tmux', # use the extracttmuxlicenses on the source to generate NOTICE below
]
manuallicenses = [
'/usr/share/doc/ipmitool/COPYING',
'/usr/share/doc/libaio/COPYING',
'/usr/share/doc/net-snmp/COPYING',
'/usr/share/doc/libnl3/COPYING',
'/usr/share/licenses/xfsprogs/GPL-2.0',
'/usr/share/licenses/xfsprogs/LGPL-2.1',
'/usr/share/licenses/tmux/NOTICE',
]
for lic in manuallicenses:
print(lic)
for rpm in rpmlist:
if not rpm:
continue
for manualrpm in manualrpms:
if manualrpm in rpm:
break
else:
if rpm not in licensesbyrpm:
raise Exception('Unresolved license info for ' + rpm)
print("UH OH: " + rpm)