From 5b3d1572d7d742d3767015cb1b32f0686fc75401 Mon Sep 17 00:00:00 2001 From: gardenapple Date: Mon, 4 Jan 2021 19:24:35 +0200 Subject: [PATCH 1/7] Add clean_license_name function --- vrms_arch/license_finder.py | 251 +++++++++++++++--------------------- vrms_arch/unambiguous_db.py | 96 +++++++------- 2 files changed, 152 insertions(+), 195 deletions(-) diff --git a/vrms_arch/license_finder.py b/vrms_arch/license_finder.py index 6aa59a0..d88ef26 100644 --- a/vrms_arch/license_finder.py +++ b/vrms_arch/license_finder.py @@ -1,209 +1,165 @@ import pyalpm +import re import sys -AMBIGUOUS_LICENSES = [ +def clean_license_name(license): + license = license.lower() + license = re.sub('(?:^custom:|[,\s_"-])', '', license) + return license + +AMBIGUOUS_LICENSES = [clean_license_name(license) for license in [ "custom", "other", "unknown", - "CUSTOM", # CCPL (Creative Commons) should be specified with one of the # sublicenses (one of /usr/share/licenses/common/CCPL/*) , some of # which are non-free "CCPL", # ['claws-mail-themes', '0ad', '0ad-data', 'archlinux-lxdm-theme', 'mari0', 'performous-freesongs'] "CCPL:cc-by-sa-3.0", -] +]] -FREE_LICENSES = [ +FREE_LICENSES = [clean_license_name(license) for license in [ 'AGPL', 'AGPL3', - 'APACHE', 'Apache', 'Apache 2.0', + 'Apache 2.0 with LLVM Exception', + 'Apache 2.0 with LLVM Execption', 'Apache License (2.0)', - 'apache', + 'Arphic Public License', 'Artistic', - 'Artistic2.0', + 'Artistic 2.0', + 'bitstream-vera', 'Boost', - 'boost', 'BSD', - 'bsd', 'BSD2', - 'BSD-2', 'BSD3', + 'BSD-like', + 'BSD-style', + 'bzip2', 'CC0', + 'CCBYSA', + 'cc-by-sa-2.5', + 'CCBYSA3.0', 'CC BY-SA 4.0', - 'CC-BY-SA 4.0', 'CCPL:by-sa', 'CCPL:cc-by-sa', 'CDDL', + 'CeCILL', 'CPL', + 'Creative Commons, Attribution 3.0 Unported', + 'dumb', 'EPL', 'EPL/1.1', + 'etpan', + 'ex', + 'Expat', 'FDL', 'FDL1.2', + 'FFSL', + 'FIPL', + '"font embedding exception"', + 'GD', + 'GFL', 'GPL', - 'GPL-2' - 'GPL-2.0', - 'GPL-2.0+', - 'GPL-3', - 'GPL-3.0', 'GPL2', + 'GPL-2.0+', + 'GPL-2.0', 'GPL3', - 'GPL3-only', + 'GPL-3.0', 'GPL3+GPLv2', + 'GPL3-only', + 'GPL3 or any later version', + 'GPL/BSD', + 'GPL+FE', 'GPLv2', 'GPLv3', - 'GPL3 or any later version', + 'HPND', + '"IBM Public Licence"', + 'icu', + 'Info-ZIP', + 'INN', 'ISC', + 'isc-dhcp', + 'JasPer2.0', + 'Khronos', 'LGPL', 'LGPL2', 'LGPL2.1', 'LGPL3', 'LGPLv3+', + 'libpng', + 'libtiff', + 'libxcomposite', + 'lsof', + 'MirOS', 'MIT', + 'MIT/X', + 'MITX11', + 'Modified BSD', 'MPL', 'MPL2', - 'Modified BSD', + 'MPLv2', + 'neovim', + 'nfsidmap', + 'NoCopyright', + 'none', + 'OASIS', 'OFL', 'OFL-1.1', - 'PHP', - 'PSF', + 'OPEN DATA LICENSE', + 'OpenLDAP', + 'OpenMPI', + 'OSGPL', 'perl', 'PerlArtistic', 'PerlArtistic2', + 'PHP', + '"pil"', + 'PostgreSQL', + 'PSF', 'Public Domain', 'Python', - 'RUBY', + 'Qhull', + 'QPL', + 'QPL-1.0', + 'qwt', 'Ruby', + 'scite', + 'scowl', + 'Sendmail', + 'Sendmail open source license', + 'SGI', 'SIL', - 'SIL OPEN FONT LICENSE Version 1.1', + 'SIL Open Font License', 'SIL Open Font License 1.1 and Bitstream Vera License', + 'SIL Open Font License, Version 1.0', + 'SIL OPEN FONT LICENSE Version 1.1', + '"sip"', + 'Sleepycat', + 'tcl', + 'TekHVC', + 'TRADEMARKS', + 'Ubuntu Font Licence 1.0', + 'University of Illinois/NCSA Open Source License', + 'Unlicense', + 'unknown', + 'usermin', + 'vim', + 'voidspace', 'W3C', + 'w3m', + 'webmin', 'WTFPL', + 'wxWindows', 'X11', - 'ZLIB', + 'X11-DEC', + 'XFREE86', + 'Xiph', 'zlib', + 'zlib/libpng', 'ZPL', - 'custom: Arphic Public_License', - 'custom: BSD', - 'custom: ISC', - 'custom: MIT', - 'custom: OFL', - 'custom: SIL Open Font License', - 'custom: QPL-1.0', - 'custom: public domain', - 'custom:"IBM Public Licence"', - 'custom:"font embedding exception"', - 'custom:"icu"', - 'custom:"pil"', - 'custom:"sip"', - 'custom:Arphic Public License', - 'custom:Arphic_Public_License', - 'custom:Artistic', - 'custom:Artistic 2.0', - 'custom:Artistic-2.0', - 'custom:Apache 2.0 with LLVM Exception', - 'custom:Apache 2.0 with LLVM Execption', - 'custom:BSD', - 'custom:BSD-like', - 'custom:BSD-style', - 'custom:BSD2', - 'custom:BSD3', - 'custom:Boost', - 'custom:CC0', - 'custom:CCBYSA', - 'custom:CCBYSA3.0', - 'custom:CCPL:by-sa', - 'custom:CeCILL', - 'custom:Creative Commons, Attribution 3.0 Unported', - 'custom:EPL', - 'custom:Expat', - 'custom:FFSL', - 'custom:FIPL', - 'custom:GD', - 'custom:GFL', - 'custom:GPL', - 'custom:GPL/BSD', - 'custom:GPL+FE', - 'custom:HPND', - 'custom:INN', - 'custom:Info-ZIP', - 'custom:ISC', - 'custom:JasPer2.0', - 'custom:Khronos', - 'custom:LGPL', - 'custom:LGPL2', - 'custom:MIT', - 'custom:MIT/X', - 'custom:MITX11', - 'custom:MPL2', - 'custom:MPLv2', - 'custom:MirOS', - 'custom:NoCopyright', - 'custom:OASIS', - 'custom:OFL', - 'custom:OPEN DATA LICENSE', - 'custom:OpenLDAP', - 'custom:OpenMPI', - 'custom:OSGPL', - 'custom:PYTHON', - 'custom:PostgreSQL', - 'custom:PSF', - 'custom:Public Domain', - 'custom:Public_Domain', - 'custom:PublicDomain', - 'custom:QPL', - 'custom:Qhull', - 'custom:SGI', - 'custom:SIL', - 'custom:SIL Open Font License, Version 1.0', - 'custom:Sendmail', - 'custom:Sendmail open source license', - 'custom:Sleepycat', - 'custom:TekHVC', - 'custom:TRADEMARKS', - 'custom:Ubuntu Font Licence 1.0', - 'custom:University of Illinois/NCSA Open Source License', - 'custom:Unlicense', - 'custom:WTFPL', - 'custom:X11', - 'custom:X11-DEC', - 'custom:XFREE86', - 'custom:Xiph', - 'custom:ZLIB', - 'custom:artistic', - 'custom:bitstream-vera', - 'custom:bzip2', - 'custom:cc-by-sa-2.5', - 'custom:dumb', - 'custom:etpan', - 'custom:ex', - 'custom:icu', - 'custom:isc-dhcp', - 'custom:libpng', - 'custom:libtiff', - 'custom:libxcomposite', - 'custom:lsof', - 'custom:nfsidmap', - 'custom:neovim', - 'custom:none', - 'custom:public domain', - 'custom:publicdomain', - 'custom:qwt', - 'custom:scite', - 'custom:scowl', - 'custom:tcl', - 'custom:unknown', - 'custom:unlicense', - 'custom:usermin', - 'custom:vim', - 'custom:voidspace', - 'custom:w3m', - 'custom:webmin', - 'custom:wxWindows', - 'custom:zlib', - 'custom:zlib/libpng', -] +]] class LicenseFinder(object): def __init__(self): @@ -222,15 +178,16 @@ def visit_db(self, db): free_pkgs = [] for pkg in pkgs: - for license in pkg.licenses: + licenses = [clean_license_name(license) for license in pkg.licenses] + for license in licenses: # get a list of all licenses on the box if license not in self.by_license: self.by_license[license] = [pkg] else: self.by_license[license].append(pkg) - free_licenses = list(filter(lambda x: x in FREE_LICENSES, pkg.licenses)) - amb_licenses = list(filter(lambda x: x in AMBIGUOUS_LICENSES, pkg.licenses)) + free_licenses = list(filter(lambda x: x in FREE_LICENSES, licenses)) + amb_licenses = list(filter(lambda x: x in AMBIGUOUS_LICENSES, licenses)) if len(free_licenses) > 0: free_pkgs.append(pkg) diff --git a/vrms_arch/unambiguous_db.py b/vrms_arch/unambiguous_db.py index fe8c49a..ec74c5c 100644 --- a/vrms_arch/unambiguous_db.py +++ b/vrms_arch/unambiguous_db.py @@ -1,20 +1,20 @@ AMBIGUOUS_PACKAGES = { - 'acroread-fonts-systemwide': ['custom:non-free'], - 'adobe-base-14-fonts': ['custom:non-free'], + 'acroread-fonts-systemwide': ['non-free'], + 'adobe-base-14-fonts': ['non-free'], 'adobe-source-code-pro-fonts': ['OFL'], 'adobe-source-sans-pro-fonts': ['OFL'], 'adobe-source-serif-pro-fonts': ['OFL'], - 'bzip2': ['custom:bzip2'], - 'db': ['custom:Sleepycat'], + 'bzip2': ['bzip2'], + 'db': ['Sleepycat'], 'cups-filters': ['GPL', 'GPL2', 'GPL3-only', 'GPL3'], 'expat': ['MIT'], - 'flashplugin': ['custom:non-free'], - 'fontconfig': ['custom:HPND'], - 'gd': ['custom:GD'], + 'flashplugin': ['non-free'], + 'fontconfig': ['HPND'], + 'gd': ['GD'], 'ghc': ['BSD3'], 'ghc-libs': ['BSD3'], 'hdf5': ['BSD3'], - 'intel-ucode': ['custom:non-free'], + 'intel-ucode': ['non-free'], 'java-openjfx': ['GPL2'], 'jdk8-openjdk': ['GPL2'], 'jdk-openjdk': ['GPL2'], @@ -25,69 +25,69 @@ 'jre11-openjdk': ['GPL2'], 'jre11-openjdk-headless': ['GPL2'], 'l-smash': ['ISC'], - 'lib32-sqlite': ['custom:publicdomain'], + 'lib32-sqlite': ['publicdomain'], 'libaec': ['BSD2'], 'libdrm': ['MIT'], 'libfontenc': ['MIT'], - 'libice': ['custom:X11'], - 'libldap': ['custom:OpenLDAP'], - 'libmodplug': ['custom:publicdomain'], + 'libice': ['X11'], + 'libldap': ['OpenLDAP'], + 'libmodplug': ['publicdomain'], 'libmng': ['ZLIB'], - 'libpciaccess': ['MIT', 'ISC', 'custom:X11'], - 'libpng': ['custom:libpng'], - 'libpng12': ['custom:libpng'], - 'libsm': ['MIT', 'custom:X11'], - 'libtiff': ['custom:libtiff'], + 'libpciaccess': ['MIT', 'ISC', 'X11'], + 'libpng': ['libpng'], + 'libpng12': ['libpng'], + 'libsm': ['MIT', 'X11'], + 'libtiff': ['libtiff'], 'libuv': ['MIT', 'BSD2', 'BSD3', 'ISC'], 'libvdpau': ['MIT'], 'libwpe': ['BSD2'], - 'libx11': ['MIT', 'custom:X11', 'custom:TekHVC'], - 'libxau': ['custom:X11'], - 'libxcomposite': ['custom:libxcomposite', 'MIT'], - 'libxfixes': ['custom:HPND', 'MIT'], - 'libxft': ['custom:HPND'], - 'libxi': ['custom:X11', 'custom:HPND', 'MIT'], - 'libxinerama': ['MIT', 'custom:X11'], - 'libxv': ['custom:HPND'], - 'lsof': ['custom:lsof'], - 'mesa': ['MIT', 'custom:Khronos', 'custom:SGI'], - 'mesa-demos': ['MIT', 'custom:SGI', 'LGPL'], + 'libx11': ['MIT', 'X11', 'TekHVC'], + 'libxau': ['X11'], + 'libxcomposite': ['libxcomposite', 'MIT'], + 'libxfixes': ['HPND', 'MIT'], + 'libxft': ['HPND'], + 'libxi': ['X11', 'HPND', 'MIT'], + 'libxinerama': ['MIT', 'X11'], + 'libxv': ['HPND'], + 'lsof': ['lsof'], + 'mesa': ['MIT', 'Khronos', 'SGI'], + 'mesa-demos': ['MIT', 'SGI', 'LGPL'], 'minizip': ['ZLIB'], - 'ntp': ['custom:HPND', 'BSD2'], - 'nvidia': ['custom:non-free'], - 'nvidia-dkms': ['custom:non-free'], - 'nvidia-utils': ['custom:non-free'], + 'ntp': ['HPND', 'BSD2'], + 'nvidia': ['non-free'], + 'nvidia-dkms': ['non-free'], + 'nvidia-utils': ['non-free'], 'openjdk8-src': ['GPL2'], 'orc': ['BSD2', 'BSD3'], - 'pepper-flash': ['custom:non-free'], + 'pepper-flash': ['non-free'], 'pigz': ['ZLIB'], 'pixman': ['MIT'], 'python': ['Python'], 'python2': ['Python'], - 'python-docutils': ['custom:publicdomain', 'BSD2', 'Python', 'GPL3'], + 'python-docutils': ['publicdomain', 'BSD2', 'Python', 'GPL3'], 'python-numpy': ['BSD3'], - 'popt': ['custom:X11'], - 'qhull': ['custom:Qhull'], + 'popt': ['X11'], + 'qhull': ['Qhull'], 'rogue': ['BSD3'], 'rpcbind': ['BSD3'], - 'steam': ['custom:non-free'], + 'steam': ['non-free'], 'sudo': ['ISC', 'BSD3', 'BSD2', 'ZLIB'], - 'tcl': ['custom:tcl'], - 'ttf-bitstream-vera': ['custom:bitstream-vera'], - 'ttf-dejavu': ['custom:publicdomain', 'custom:bitstream-vera'], - 'unrar': ['custom:non-free'], + 'tcl': ['tcl'], + 'ttf-bitstream-vera': ['bitstream-vera'], + 'ttf-dejavu': ['publicdomain', 'bitstream-vera'], + 'unrar': ['non-free'], 'vulkan-icd-loader': ['Apache'], - 'w3m': ['custom:w3m'], + 'w3m': ['w3m'], 'webrtc-audio-processing': ['BSD3'], 'xorg-server-xwayland': ['MIT'], - 'xorg-x11perf': ['custom:HPND'], - 'xorg-xhost': ['MIT', 'custom:X11'], + 'xorg-x11perf': ['HPND'], + 'xorg-xhost': ['MIT', 'X11'], 'xorg-xinput': ['MIT'], - 'xorg-xkbevd': ['custom:HPND'], - 'xorg-xkbutils': ['custom:HPND', 'custom:X11-DEC', 'MIT'], - 'zip': ['custom:Info-ZIP'], + 'xorg-xkbevd': ['HPND'], + 'xorg-xkbutils': ['HPND', 'X11-DEC', 'MIT'], + 'zip': ['Info-ZIP'], 'zlib': ['ZLIB'], - 'zoom': ['custom:non-free'], # AUR + 'zoom': ['non-free'], # AUR } class Package(object): From 165c5bf3dd32a2414708d31c6c4ac4f0b84b4237 Mon Sep 17 00:00:00 2001 From: gardenapple Date: Mon, 4 Jan 2021 21:50:57 +0200 Subject: [PATCH 2/7] A bunch of disambiguations + some licenses --- vrms_arch/license_finder.py | 15 ++++-- vrms_arch/unambiguous_db.py | 94 ++++++++++++++++++++++++++++++++++++- 2 files changed, 103 insertions(+), 6 deletions(-) diff --git a/vrms_arch/license_finder.py b/vrms_arch/license_finder.py index d88ef26..b000d78 100644 --- a/vrms_arch/license_finder.py +++ b/vrms_arch/license_finder.py @@ -19,6 +19,7 @@ def clean_license_name(license): ]] FREE_LICENSES = [clean_license_name(license) for license in [ + 'AFL-3.0', 'AGPL', 'AGPL3', 'Apache', @@ -29,6 +30,7 @@ def clean_license_name(license): 'Arphic Public License', 'Artistic', 'Artistic 2.0', + 'Beerware', 'bitstream-vera', 'Boost', 'BSD', @@ -49,6 +51,7 @@ def clean_license_name(license): 'CPL', 'Creative Commons, Attribution 3.0 Unported', 'dumb', + 'EDL', 'EPL', 'EPL/1.1', 'etpan', @@ -58,7 +61,7 @@ def clean_license_name(license): 'FDL1.2', 'FFSL', 'FIPL', - '"font embedding exception"', + 'font embedding exception', 'GD', 'GFL', 'GPL', @@ -75,7 +78,7 @@ def clean_license_name(license): 'GPLv2', 'GPLv3', 'HPND', - '"IBM Public Licence"', + 'IBM Public Licence', 'icu', 'Info-ZIP', 'INN', @@ -96,6 +99,7 @@ def clean_license_name(license): 'MIT', 'MIT/X', 'MITX11', + 'MIT-style', 'Modified BSD', 'MPL', 'MPL2', @@ -115,7 +119,7 @@ def clean_license_name(license): 'PerlArtistic', 'PerlArtistic2', 'PHP', - '"pil"', + 'pil', 'PostgreSQL', 'PSF', 'Public Domain', @@ -135,15 +139,16 @@ def clean_license_name(license): 'SIL Open Font License 1.1 and Bitstream Vera License', 'SIL Open Font License, Version 1.0', 'SIL OPEN FONT LICENSE Version 1.1', - '"sip"', + 'sip', 'Sleepycat', 'tcl', 'TekHVC', 'TRADEMARKS', 'Ubuntu Font Licence 1.0', + 'UCD', + 'Unicode-DFS', 'University of Illinois/NCSA Open Source License', 'Unlicense', - 'unknown', 'usermin', 'vim', 'voidspace', diff --git a/vrms_arch/unambiguous_db.py b/vrms_arch/unambiguous_db.py index ec74c5c..093adad 100644 --- a/vrms_arch/unambiguous_db.py +++ b/vrms_arch/unambiguous_db.py @@ -4,18 +4,32 @@ 'adobe-source-code-pro-fonts': ['OFL'], 'adobe-source-sans-pro-fonts': ['OFL'], 'adobe-source-serif-pro-fonts': ['OFL'], + 'amd-ucode': ['non-free'], + 'boost': ['Boost'], + 'boost-libs': ['Boost'], + 'broadcom-wl': ['non-free'], + 'bsd-games': ['BSD'], 'bzip2': ['bzip2'], 'db': ['Sleepycat'], + 'cmake': ['BSD'], 'cups-filters': ['GPL', 'GPL2', 'GPL3-only', 'GPL3'], 'expat': ['MIT'], + 'file': ['BSD'], 'flashplugin': ['non-free'], + 'foldingathome': ['non-free'], 'fontconfig': ['HPND'], 'gd': ['GD'], 'ghc': ['BSD3'], 'ghc-libs': ['BSD3'], 'hdf5': ['BSD3'], + 'imagemagick': ['ImageMagick', 'Public Domain', 'MIT'], 'intel-ucode': ['non-free'], + 'ipw2100-fw': ['non-free'], + 'ipw2200-fw': ['non-free'], 'java-openjfx': ['GPL2'], + 'jdk': ['non-free'], + 'jre': ['non-free'], + 'jdk11-openjdk': ['GPL2'], 'jdk8-openjdk': ['GPL2'], 'jdk-openjdk': ['GPL2'], 'jre8-openjdk': ['GPL2'], @@ -25,12 +39,16 @@ 'jre11-openjdk': ['GPL2'], 'jre11-openjdk-headless': ['GPL2'], 'l-smash': ['ISC'], + 'lapack': ['BSD'], 'lib32-sqlite': ['publicdomain'], 'libaec': ['BSD2'], + 'libbsd': ['BSD', 'Expat', 'Public Domain', 'Beerware'], 'libdrm': ['MIT'], 'libfontenc': ['MIT'], 'libice': ['X11'], 'libldap': ['OpenLDAP'], + 'libtommath': ['Public Domain'], + 'libmagick6': ['ImageMagick', 'Public Domain', 'MIT'], 'libmodplug': ['publicdomain'], 'libmng': ['ZLIB'], 'libpciaccess': ['MIT', 'ISC', 'X11'], @@ -39,52 +57,126 @@ 'libsm': ['MIT', 'X11'], 'libtiff': ['libtiff'], 'libuv': ['MIT', 'BSD2', 'BSD3', 'ISC'], + 'libva-utils': ['MIT'], 'libvdpau': ['MIT'], 'libwpe': ['BSD2'], 'libx11': ['MIT', 'X11', 'TekHVC'], 'libxau': ['X11'], + 'libxaw': ['X11', 'HPND', 'MIT'], + 'libxcb': ['X11'], + 'libxcursor': ['HPND'], 'libxcomposite': ['libxcomposite', 'MIT'], + 'libxdamage': ['HPND'], + 'libxdmcp': ['X11'], + 'libxext': ['X11', 'HPND', 'MIT'], 'libxfixes': ['HPND', 'MIT'], + 'libxfont2': ['MIT', 'HPND', 'BSD2', 'X11'], 'libxft': ['HPND'], 'libxi': ['X11', 'HPND', 'MIT'], 'libxinerama': ['MIT', 'X11'], + 'libxkbcommon': ['MIT', 'HPND', 'X11'], + 'libxkbcommon-x11': ['MIT', 'HPND', 'X11'], + 'libxkbfile': ['HPND', 'X11'], + 'libxmu': ['X11'], + 'libxpm': ['X11'], + 'libxpresent': ['MIT', 'HPND'], + 'libxrandr': ['HPND'], + 'libxrender': ['HPND'], + 'libxres': ['X11'], + 'libxslt': ['X11'], + 'libxss': ['X11'], + 'libxt': ['MIT', 'HPND', 'X11'], + 'libxtst': ['MIT', 'HPND', 'X11'], 'libxv': ['HPND'], + 'libxxf86vm': ['X11'], + 'lolcat': ['BSD3'], 'lsof': ['lsof'], 'mesa': ['MIT', 'Khronos', 'SGI'], 'mesa-demos': ['MIT', 'SGI', 'LGPL'], 'minizip': ['ZLIB'], 'ntp': ['HPND', 'BSD2'], 'nvidia': ['non-free'], + 'nvidia-cg-toolkit': ['non-free'], 'nvidia-dkms': ['non-free'], 'nvidia-utils': ['non-free'], 'openjdk8-src': ['GPL2'], 'orc': ['BSD2', 'BSD3'], + 'perl-rename': ['Artistic'], 'pepper-flash': ['non-free'], 'pigz': ['ZLIB'], 'pixman': ['MIT'], + 'png++': ['BSD3'], 'python': ['Python'], 'python2': ['Python'], 'python-docutils': ['publicdomain', 'BSD2', 'Python', 'GPL3'], 'python-numpy': ['BSD3'], + 'python-magic': ['BSD2'], 'popt': ['X11'], 'qhull': ['Qhull'], 'rogue': ['BSD3'], 'rpcbind': ['BSD3'], + 'sdl_image': ['zlib'], + 'spirv-tools': ['Apache-2.0'], 'steam': ['non-free'], 'sudo': ['ISC', 'BSD3', 'BSD2', 'ZLIB'], 'tcl': ['tcl'], 'ttf-bitstream-vera': ['bitstream-vera'], 'ttf-dejavu': ['publicdomain', 'bitstream-vera'], 'unrar': ['non-free'], + 'unzip': ['Info-ZIP'], + 'vdpauinfo': ['MIT'], + 'vulkan-tools': ['Apache-2.0'], 'vulkan-icd-loader': ['Apache'], 'w3m': ['w3m'], + 'webkit2gtk': ['BSD', 'MIT', 'GPL2', 'GPL3', 'LGPL2', 'LGPL2.1', 'Unicode-DFS'], 'webrtc-audio-processing': ['BSD3'], - 'xorg-server-xwayland': ['MIT'], + 'xcb-proto': ['X11'], + 'xcb-util': ['X11'], + 'xcb-util-image': ['X11'], + 'xcb-util-keysyms': ['HPND', 'X11'], + 'xcb-util-renderutil': ['HPND', 'X11'], + 'xcb-util-wm': ['HPND', 'X11'], + 'xf86-input-libinput': ['HPND'], + 'xf86-video-amdgpu': ['X11', 'MIT', 'HPND'], + 'xfce4-wavelan-plugin': ['BSD2'], + 'xfce4-xkb-plugin': ['BSD2'], + 'xkeyboard-config': ['MIT', 'HPND', 'X11', 'MIT-style'], + 'xorg-bdftopcf': ['X11'], + 'xorg-fonts-encodings': ['Public Domain'], + 'xorg-font-util': ['UCD', 'MIT', 'BSD2'], + 'xorg-iceauth': ['X11'], + 'xorg-mkfontscale': ['MIT', 'HPND', 'X11'], + 'xorgproto': ['MIT', 'HPND', 'X11'], + 'xorg-server-common': ['BSD', 'MIT', 'HPND', 'X11'], + 'xorg-server': ['BSD', 'MIT', 'HPND', 'X11'], + 'xorg-setxkbmap': ['HPND'], + 'xorg-xauth': ['X11'], + 'xorg-xdpyinfo': ['X11'], + 'xorg-xev': ['X11'], + 'xorg-xeyes': ['X11'], + 'xorg-xfontsel': ['HPND', 'X11'], + 'xorg-xinit': ['X11'], + 'xorg-xkbcomp': ['HPND', 'X11'], + 'xorg-xmessage': ['X11'], + 'xorg-xmodmap': ['MIT', 'X11'], + 'xorg-xprop': ['HPND', 'X11'], + 'xorg-xrandr': ['HPND'], + 'xorg-xrdb': ['X11'], + 'xorg-xset': ['X11'], + 'xorg-xwayland': ['MIT'], 'xorg-x11perf': ['HPND'], 'xorg-xhost': ['MIT', 'X11'], 'xorg-xinput': ['MIT'], 'xorg-xkbevd': ['HPND'], 'xorg-xkbutils': ['HPND', 'X11-DEC', 'MIT'], + 'youtube-dl': ['Unlicense'], + 'zathura': ['zlib'], + 'zathura-cb': ['zlib'], + 'zathura-djvu': ['zlib'], + 'zathura-pdf-mupdf': ['zlib'], + 'zathura-pdf-poppler': ['zlib'], + 'zathura-ps': ['zlib'], + 'zsh': ['MIT-style', 'GPL'], 'zip': ['Info-ZIP'], 'zlib': ['ZLIB'], 'zoom': ['non-free'], # AUR From 572175e87f79fe00a949613652aca41b1be97daf Mon Sep 17 00:00:00 2001 From: gardenapple Date: Mon, 4 Jan 2021 22:30:49 +0200 Subject: [PATCH 3/7] A few more additions based on --global flag --- vrms_arch/license_finder.py | 8 ++++++++ vrms_arch/unambiguous_db.py | 1 + 2 files changed, 9 insertions(+) diff --git a/vrms_arch/license_finder.py b/vrms_arch/license_finder.py index b000d78..4569fef 100644 --- a/vrms_arch/license_finder.py +++ b/vrms_arch/license_finder.py @@ -27,6 +27,7 @@ def clean_license_name(license): 'Apache 2.0 with LLVM Exception', 'Apache 2.0 with LLVM Execption', 'Apache License (2.0)', + 'Apache2', 'Arphic Public License', 'Artistic', 'Artistic 2.0', @@ -35,9 +36,12 @@ def clean_license_name(license): 'Boost', 'BSD', 'BSD2', + 'BSD-2-clause', 'BSD3', + 'BSD-3-clause', 'BSD-like', 'BSD-style', + 'BSL', 'bzip2', 'CC0', 'CCBYSA', @@ -89,11 +93,13 @@ def clean_license_name(license): 'LGPL', 'LGPL2', 'LGPL2.1', + 'LGPL2.1+', 'LGPL3', 'LGPLv3+', 'libpng', 'libtiff', 'libxcomposite', + 'LPPL', 'lsof', 'MirOS', 'MIT', @@ -104,6 +110,7 @@ def clean_license_name(license): 'MPL', 'MPL2', 'MPLv2', + 'NCSA', 'neovim', 'nfsidmap', 'NoCopyright', @@ -155,6 +162,7 @@ def clean_license_name(license): 'W3C', 'w3m', 'webmin', + 'WTF', 'WTFPL', 'wxWindows', 'X11', diff --git a/vrms_arch/unambiguous_db.py b/vrms_arch/unambiguous_db.py index 093adad..b16b2e0 100644 --- a/vrms_arch/unambiguous_db.py +++ b/vrms_arch/unambiguous_db.py @@ -13,6 +13,7 @@ 'db': ['Sleepycat'], 'cmake': ['BSD'], 'cups-filters': ['GPL', 'GPL2', 'GPL3-only', 'GPL3'], + 'discord': ['non-free'], 'expat': ['MIT'], 'file': ['BSD'], 'flashplugin': ['non-free'], From cb0e8f41b0a2e048f7ceee36f5b87a5ca0cd53c1 Mon Sep 17 00:00:00 2001 From: gardenapple Date: Mon, 4 Jan 2021 23:04:39 +0200 Subject: [PATCH 4/7] Alphabetical sort + mesa packages --- vrms_arch/license_finder.py | 4 +-- vrms_arch/unambiguous_db.py | 59 +++++++++++++++++++++---------------- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/vrms_arch/license_finder.py b/vrms_arch/license_finder.py index 4569fef..d5b54af 100644 --- a/vrms_arch/license_finder.py +++ b/vrms_arch/license_finder.py @@ -44,9 +44,9 @@ def clean_license_name(license): 'BSL', 'bzip2', 'CC0', - 'CCBYSA', + 'CC-BY-SA', 'cc-by-sa-2.5', - 'CCBYSA3.0', + 'CC-BY-SA 3.0', 'CC BY-SA 4.0', 'CCPL:by-sa', 'CCPL:cc-by-sa', diff --git a/vrms_arch/unambiguous_db.py b/vrms_arch/unambiguous_db.py index b16b2e0..eec90b0 100644 --- a/vrms_arch/unambiguous_db.py +++ b/vrms_arch/unambiguous_db.py @@ -10,9 +10,9 @@ 'broadcom-wl': ['non-free'], 'bsd-games': ['BSD'], 'bzip2': ['bzip2'], - 'db': ['Sleepycat'], 'cmake': ['BSD'], 'cups-filters': ['GPL', 'GPL2', 'GPL3-only', 'GPL3'], + 'db': ['Sleepycat'], 'discord': ['non-free'], 'expat': ['MIT'], 'file': ['BSD'], @@ -28,17 +28,17 @@ 'ipw2100-fw': ['non-free'], 'ipw2200-fw': ['non-free'], 'java-openjfx': ['GPL2'], - 'jdk': ['non-free'], - 'jre': ['non-free'], 'jdk11-openjdk': ['GPL2'], 'jdk8-openjdk': ['GPL2'], + 'jdk': ['non-free'], 'jdk-openjdk': ['GPL2'], + 'jre11-openjdk': ['GPL2'], + 'jre11-openjdk-headless': ['GPL2'], 'jre8-openjdk': ['GPL2'], 'jre8-openjdk-headless': ['GPL2'], + 'jre': ['non-free'], 'jre-openjdk': ['GPL2'], 'jre-openjdk-headless': ['GPL2'], - 'jre11-openjdk': ['GPL2'], - 'jre11-openjdk-headless': ['GPL2'], 'l-smash': ['ISC'], 'lapack': ['BSD'], 'lib32-sqlite': ['publicdomain'], @@ -48,16 +48,17 @@ 'libfontenc': ['MIT'], 'libice': ['X11'], 'libldap': ['OpenLDAP'], - 'libtommath': ['Public Domain'], 'libmagick6': ['ImageMagick', 'Public Domain', 'MIT'], - 'libmodplug': ['publicdomain'], 'libmng': ['ZLIB'], + 'libmodplug': ['publicdomain'], 'libpciaccess': ['MIT', 'ISC', 'X11'], - 'libpng': ['libpng'], 'libpng12': ['libpng'], + 'libpng': ['libpng'], 'libsm': ['MIT', 'X11'], 'libtiff': ['libtiff'], + 'libtommath': ['Public Domain'], 'libuv': ['MIT', 'BSD2', 'BSD3', 'ISC'], + 'libva-mesa-driver': ['MIT', 'Khronos', 'SGI'], 'libva-utils': ['MIT'], 'libvdpau': ['MIT'], 'libwpe': ['BSD2'], @@ -65,16 +66,16 @@ 'libxau': ['X11'], 'libxaw': ['X11', 'HPND', 'MIT'], 'libxcb': ['X11'], - 'libxcursor': ['HPND'], 'libxcomposite': ['libxcomposite', 'MIT'], + 'libxcursor': ['HPND'], 'libxdamage': ['HPND'], 'libxdmcp': ['X11'], 'libxext': ['X11', 'HPND', 'MIT'], 'libxfixes': ['HPND', 'MIT'], 'libxfont2': ['MIT', 'HPND', 'BSD2', 'X11'], 'libxft': ['HPND'], - 'libxi': ['X11', 'HPND', 'MIT'], 'libxinerama': ['MIT', 'X11'], + 'libxi': ['X11', 'HPND', 'MIT'], 'libxkbcommon': ['MIT', 'HPND', 'X11'], 'libxkbcommon-x11': ['MIT', 'HPND', 'X11'], 'libxkbfile': ['HPND', 'X11'], @@ -91,32 +92,36 @@ 'libxv': ['HPND'], 'libxxf86vm': ['X11'], 'lolcat': ['BSD3'], + 'l-smash': ['ISC'], 'lsof': ['lsof'], - 'mesa': ['MIT', 'Khronos', 'SGI'], 'mesa-demos': ['MIT', 'SGI', 'LGPL'], + 'mesa': ['MIT', 'Khronos', 'SGI'], + 'mesa-vdpau': ['MIT', 'Khronos', 'SGI'], 'minizip': ['ZLIB'], + 'mobile-broadband-provider-info': ['Public Domain'], 'ntp': ['HPND', 'BSD2'], - 'nvidia': ['non-free'], 'nvidia-cg-toolkit': ['non-free'], 'nvidia-dkms': ['non-free'], + 'nvidia': ['non-free'], 'nvidia-utils': ['non-free'], 'openjdk8-src': ['GPL2'], 'orc': ['BSD2', 'BSD3'], - 'perl-rename': ['Artistic'], 'pepper-flash': ['non-free'], + 'perl-rename': ['Artistic'], 'pigz': ['ZLIB'], 'pixman': ['MIT'], 'png++': ['BSD3'], - 'python': ['Python'], + 'popt': ['X11'], 'python2': ['Python'], 'python-docutils': ['publicdomain', 'BSD2', 'Python', 'GPL3'], - 'python-numpy': ['BSD3'], 'python-magic': ['BSD2'], - 'popt': ['X11'], + 'python-numpy': ['BSD3'], + 'python': ['Python'], 'qhull': ['Qhull'], 'rogue': ['BSD3'], 'rpcbind': ['BSD3'], 'sdl_image': ['zlib'], + 'sound-theme-freedesktop': ['CC-BY-SA', 'GPL2' 'Creative Commons Attribution 3.0 Unported' 'GPL'], 'spirv-tools': ['Apache-2.0'], 'steam': ['non-free'], 'sudo': ['ISC', 'BSD3', 'BSD2', 'ZLIB'], @@ -126,17 +131,19 @@ 'unrar': ['non-free'], 'unzip': ['Info-ZIP'], 'vdpauinfo': ['MIT'], - 'vulkan-tools': ['Apache-2.0'], 'vulkan-icd-loader': ['Apache'], + 'vulkan-mesa-layers': ['MIT', 'Khronos', 'SGI'], + 'vulkan-radeon': ['MIT', 'Khronos', 'SGI'], + 'vulkan-tools': ['Apache-2.0'], 'w3m': ['w3m'], 'webkit2gtk': ['BSD', 'MIT', 'GPL2', 'GPL3', 'LGPL2', 'LGPL2.1', 'Unicode-DFS'], 'webrtc-audio-processing': ['BSD3'], 'xcb-proto': ['X11'], - 'xcb-util': ['X11'], 'xcb-util-image': ['X11'], 'xcb-util-keysyms': ['HPND', 'X11'], 'xcb-util-renderutil': ['HPND', 'X11'], 'xcb-util-wm': ['HPND', 'X11'], + 'xcb-util': ['X11'], 'xf86-input-libinput': ['HPND'], 'xf86-video-amdgpu': ['X11', 'MIT', 'HPND'], 'xfce4-wavelan-plugin': ['BSD2'], @@ -148,16 +155,21 @@ 'xorg-iceauth': ['X11'], 'xorg-mkfontscale': ['MIT', 'HPND', 'X11'], 'xorgproto': ['MIT', 'HPND', 'X11'], - 'xorg-server-common': ['BSD', 'MIT', 'HPND', 'X11'], 'xorg-server': ['BSD', 'MIT', 'HPND', 'X11'], + 'xorg-server-common': ['BSD', 'MIT', 'HPND', 'X11'], 'xorg-setxkbmap': ['HPND'], + 'xorg-x11perf': ['HPND'], 'xorg-xauth': ['X11'], 'xorg-xdpyinfo': ['X11'], 'xorg-xev': ['X11'], 'xorg-xeyes': ['X11'], 'xorg-xfontsel': ['HPND', 'X11'], + 'xorg-xhost': ['MIT', 'X11'], 'xorg-xinit': ['X11'], + 'xorg-xinput': ['MIT'], 'xorg-xkbcomp': ['HPND', 'X11'], + 'xorg-xkbevd': ['HPND'], + 'xorg-xkbutils': ['HPND', 'X11-DEC', 'MIT'], 'xorg-xmessage': ['X11'], 'xorg-xmodmap': ['MIT', 'X11'], 'xorg-xprop': ['HPND', 'X11'], @@ -165,22 +177,17 @@ 'xorg-xrdb': ['X11'], 'xorg-xset': ['X11'], 'xorg-xwayland': ['MIT'], - 'xorg-x11perf': ['HPND'], - 'xorg-xhost': ['MIT', 'X11'], - 'xorg-xinput': ['MIT'], - 'xorg-xkbevd': ['HPND'], - 'xorg-xkbutils': ['HPND', 'X11-DEC', 'MIT'], 'youtube-dl': ['Unlicense'], - 'zathura': ['zlib'], 'zathura-cb': ['zlib'], 'zathura-djvu': ['zlib'], 'zathura-pdf-mupdf': ['zlib'], 'zathura-pdf-poppler': ['zlib'], 'zathura-ps': ['zlib'], - 'zsh': ['MIT-style', 'GPL'], + 'zathura': ['zlib'], 'zip': ['Info-ZIP'], 'zlib': ['ZLIB'], 'zoom': ['non-free'], # AUR + 'zsh': ['MIT-style', 'GPL'], } class Package(object): From 90e2bd7da8c2d6a43cef6b27232b6bcfccc07f12 Mon Sep 17 00:00:00 2001 From: gardenapple Date: Mon, 4 Jan 2021 23:43:48 +0200 Subject: [PATCH 5/7] Display proper package names --- vrms_arch/license_finder.py | 38 ++++++++++++++++++++++++++----------- vrms_arch/unambiguous_db.py | 4 ++-- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/vrms_arch/license_finder.py b/vrms_arch/license_finder.py index d5b54af..1f3b3aa 100644 --- a/vrms_arch/license_finder.py +++ b/vrms_arch/license_finder.py @@ -46,7 +46,7 @@ def clean_license_name(license): 'CC0', 'CC-BY-SA', 'cc-by-sa-2.5', - 'CC-BY-SA 3.0', + 'CC-BY-SA3.0', 'CC BY-SA 4.0', 'CCPL:by-sa', 'CCPL:cc-by-sa', @@ -84,6 +84,7 @@ def clean_license_name(license): 'HPND', 'IBM Public Licence', 'icu', + 'ImageMagick', 'Info-ZIP', 'INN', 'ISC', @@ -176,9 +177,12 @@ def clean_license_name(license): class LicenseFinder(object): def __init__(self): - # all of the seen license names with counts + # all of the seen (clean) license names with counts self.by_license = {} + # all of the seen (clean) license names with their raw variants + self.license_names = {} + # packages with "custom" license self.unknown_packages = set() @@ -191,20 +195,29 @@ def visit_db(self, db): free_pkgs = [] for pkg in pkgs: - licenses = [clean_license_name(license) for license in pkg.licenses] - for license in licenses: - # get a list of all licenses on the box - if license not in self.by_license: - self.by_license[license] = [pkg] + licenses = [] + + # get a list of all licenses on the box + for license in pkg.licenses: + clean_license = clean_license_name(license) + licenses.append(clean_license) + + if clean_license not in self.by_license: + self.by_license[clean_license] = [pkg] else: - self.by_license[license].append(pkg) + self.by_license[clean_license].append(pkg) + + if clean_license not in self.license_names: + self.license_names[clean_license] = {} + if license not in self.license_names[clean_license]: + self.license_names[clean_license][license] = 0 + self.license_names[clean_license][license] += 1 free_licenses = list(filter(lambda x: x in FREE_LICENSES, licenses)) amb_licenses = list(filter(lambda x: x in AMBIGUOUS_LICENSES, licenses)) - if len(free_licenses) > 0: + if len(free_licenses) == len(licenses): free_pkgs.append(pkg) - continue elif len(amb_licenses) > 0: self.unknown_packages.add(pkg) else: @@ -217,7 +230,10 @@ def list_all_licenses_as_python(self): sorted_by_popularity.sort(key=lambda lic : len(self.by_license[lic]), reverse=True) for lic in sorted_by_popularity: pop = len(self.by_license[lic]) - print(" \"%s\",%s" % (lic.replace("\"", "\\\""), " # %s" % [ p.name for p in self.by_license[lic] ] if pop < obscure_license_pop_cutoff else "")) + license_names = self.license_names[lic] + print(license_names) + license_name = max(license_names, key=license_names.get) + print(" \"%s\",%s" % (license_name.replace("\"", "\\\""), " # %s" % [ p.name for p in self.by_license[lic] ] if pop < obscure_license_pop_cutoff else "")) def list_all_licenses(self): sorted_by_popularity = list(self.by_license.keys()) diff --git a/vrms_arch/unambiguous_db.py b/vrms_arch/unambiguous_db.py index eec90b0..5ccc176 100644 --- a/vrms_arch/unambiguous_db.py +++ b/vrms_arch/unambiguous_db.py @@ -107,7 +107,7 @@ 'openjdk8-src': ['GPL2'], 'orc': ['BSD2', 'BSD3'], 'pepper-flash': ['non-free'], - 'perl-rename': ['Artistic'], + 'perl-rename': ['GPL', 'PerlArtistic'], 'pigz': ['ZLIB'], 'pixman': ['MIT'], 'png++': ['BSD3'], @@ -121,7 +121,7 @@ 'rogue': ['BSD3'], 'rpcbind': ['BSD3'], 'sdl_image': ['zlib'], - 'sound-theme-freedesktop': ['CC-BY-SA', 'GPL2' 'Creative Commons Attribution 3.0 Unported' 'GPL'], + 'sound-theme-freedesktop': ['CC-BY-SA', 'GPL2', 'Creative Commons Attribution 3.0 Unported', 'GPL'], 'spirv-tools': ['Apache-2.0'], 'steam': ['non-free'], 'sudo': ['ISC', 'BSD3', 'BSD2', 'ZLIB'], From b786acf3bf04573bce23a670a8fd2476a5a49c00 Mon Sep 17 00:00:00 2001 From: gardenapple Date: Tue, 5 Jan 2021 00:04:08 +0200 Subject: [PATCH 6/7] Minor fixes --- vrms_arch/license_finder.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/vrms_arch/license_finder.py b/vrms_arch/license_finder.py index 1f3b3aa..444a321 100644 --- a/vrms_arch/license_finder.py +++ b/vrms_arch/license_finder.py @@ -45,9 +45,9 @@ def clean_license_name(license): 'bzip2', 'CC0', 'CC-BY-SA', - 'cc-by-sa-2.5', - 'CC-BY-SA3.0', - 'CC BY-SA 4.0', + 'CC-BY-SA-2.5', + 'CC-BY-SA-3.0', + 'CC BY-SA-4.0', 'CCPL:by-sa', 'CCPL:cc-by-sa', 'CDDL', @@ -216,7 +216,7 @@ def visit_db(self, db): free_licenses = list(filter(lambda x: x in FREE_LICENSES, licenses)) amb_licenses = list(filter(lambda x: x in AMBIGUOUS_LICENSES, licenses)) - if len(free_licenses) == len(licenses): + if len(free_licenses) > 0: free_pkgs.append(pkg) elif len(amb_licenses) > 0: self.unknown_packages.add(pkg) @@ -231,7 +231,6 @@ def list_all_licenses_as_python(self): for lic in sorted_by_popularity: pop = len(self.by_license[lic]) license_names = self.license_names[lic] - print(license_names) license_name = max(license_names, key=license_names.get) print(" \"%s\",%s" % (license_name.replace("\"", "\\\""), " # %s" % [ p.name for p in self.by_license[lic] ] if pop < obscure_license_pop_cutoff else "")) From 5a804730e84de969ab333974373012637aa93193 Mon Sep 17 00:00:00 2001 From: gardenapple Date: Tue, 5 Jan 2021 01:55:38 +0200 Subject: [PATCH 7/7] Bring back custom: prefixes to unambiguous_db --- vrms_arch/unambiguous_db.py | 250 ++++++++++++++++++------------------ 1 file changed, 125 insertions(+), 125 deletions(-) diff --git a/vrms_arch/unambiguous_db.py b/vrms_arch/unambiguous_db.py index 5ccc176..b8a2e60 100644 --- a/vrms_arch/unambiguous_db.py +++ b/vrms_arch/unambiguous_db.py @@ -1,193 +1,193 @@ AMBIGUOUS_PACKAGES = { - 'acroread-fonts-systemwide': ['non-free'], - 'adobe-base-14-fonts': ['non-free'], + 'acroread-fonts-systemwide': ['custom:non-free'], + 'adobe-base-14-fonts': ['custom:non-free'], 'adobe-source-code-pro-fonts': ['OFL'], 'adobe-source-sans-pro-fonts': ['OFL'], 'adobe-source-serif-pro-fonts': ['OFL'], - 'amd-ucode': ['non-free'], + 'amd-ucode': ['custom:non-free'], 'boost': ['Boost'], 'boost-libs': ['Boost'], - 'broadcom-wl': ['non-free'], + 'broadcom-wl': ['custom:non-free'], 'bsd-games': ['BSD'], - 'bzip2': ['bzip2'], + 'bzip2': ['custom:bzip2'], 'cmake': ['BSD'], 'cups-filters': ['GPL', 'GPL2', 'GPL3-only', 'GPL3'], - 'db': ['Sleepycat'], - 'discord': ['non-free'], + 'db': ['custom:Sleepycat'], + 'discord': ['custom:non-free'], 'expat': ['MIT'], 'file': ['BSD'], - 'flashplugin': ['non-free'], - 'foldingathome': ['non-free'], - 'fontconfig': ['HPND'], - 'gd': ['GD'], + 'flashplugin': ['custom:non-free'], + 'foldingathome': ['custom:non-free'], + 'fontconfig': ['custom:HPND'], + 'gd': ['custom:GD'], 'ghc': ['BSD3'], 'ghc-libs': ['BSD3'], 'hdf5': ['BSD3'], - 'imagemagick': ['ImageMagick', 'Public Domain', 'MIT'], - 'intel-ucode': ['non-free'], - 'ipw2100-fw': ['non-free'], - 'ipw2200-fw': ['non-free'], + 'imagemagick': ['custom:ImageMagick', 'custom:Public Domain', 'MIT'], + 'intel-ucode': ['custom:non-free'], + 'ipw2100-fw': ['custom:non-free'], + 'ipw2200-fw': ['custom:non-free'], 'java-openjfx': ['GPL2'], 'jdk11-openjdk': ['GPL2'], 'jdk8-openjdk': ['GPL2'], - 'jdk': ['non-free'], + 'jdk': ['custom:non-free'], 'jdk-openjdk': ['GPL2'], 'jre11-openjdk': ['GPL2'], 'jre11-openjdk-headless': ['GPL2'], 'jre8-openjdk': ['GPL2'], 'jre8-openjdk-headless': ['GPL2'], - 'jre': ['non-free'], + 'jre': ['custom:non-free'], 'jre-openjdk': ['GPL2'], 'jre-openjdk-headless': ['GPL2'], 'l-smash': ['ISC'], 'lapack': ['BSD'], - 'lib32-sqlite': ['publicdomain'], + 'lib32-sqlite': ['custom:publicdomain'], 'libaec': ['BSD2'], - 'libbsd': ['BSD', 'Expat', 'Public Domain', 'Beerware'], + 'libbsd': ['BSD', 'MIT', 'custom:Public Domain', 'custom:Beerware'], 'libdrm': ['MIT'], 'libfontenc': ['MIT'], - 'libice': ['X11'], - 'libldap': ['OpenLDAP'], - 'libmagick6': ['ImageMagick', 'Public Domain', 'MIT'], + 'libice': ['custom:X11'], + 'libldap': ['custom:OpenLDAP'], + 'libmagick6': ['custom:ImageMagick', 'custom:Public Domain', 'MIT'], 'libmng': ['ZLIB'], - 'libmodplug': ['publicdomain'], - 'libpciaccess': ['MIT', 'ISC', 'X11'], - 'libpng12': ['libpng'], - 'libpng': ['libpng'], - 'libsm': ['MIT', 'X11'], - 'libtiff': ['libtiff'], - 'libtommath': ['Public Domain'], + 'libmodplug': ['custom:publicdomain'], + 'libpciaccess': ['MIT', 'ISC', 'custom:X11'], + 'libpng12': ['custom:libpng'], + 'libpng': ['custom:libpng'], + 'libsm': ['MIT', 'custom:X11'], + 'libtiff': ['custom:libtiff'], + 'libtommath': ['custom:Public Domain'], 'libuv': ['MIT', 'BSD2', 'BSD3', 'ISC'], - 'libva-mesa-driver': ['MIT', 'Khronos', 'SGI'], + 'libva-mesa-driver': ['MIT', 'custom:Khronos', 'custom:SGI'], 'libva-utils': ['MIT'], 'libvdpau': ['MIT'], 'libwpe': ['BSD2'], - 'libx11': ['MIT', 'X11', 'TekHVC'], - 'libxau': ['X11'], - 'libxaw': ['X11', 'HPND', 'MIT'], - 'libxcb': ['X11'], - 'libxcomposite': ['libxcomposite', 'MIT'], - 'libxcursor': ['HPND'], - 'libxdamage': ['HPND'], - 'libxdmcp': ['X11'], - 'libxext': ['X11', 'HPND', 'MIT'], - 'libxfixes': ['HPND', 'MIT'], - 'libxfont2': ['MIT', 'HPND', 'BSD2', 'X11'], - 'libxft': ['HPND'], - 'libxinerama': ['MIT', 'X11'], - 'libxi': ['X11', 'HPND', 'MIT'], - 'libxkbcommon': ['MIT', 'HPND', 'X11'], - 'libxkbcommon-x11': ['MIT', 'HPND', 'X11'], - 'libxkbfile': ['HPND', 'X11'], - 'libxmu': ['X11'], - 'libxpm': ['X11'], - 'libxpresent': ['MIT', 'HPND'], - 'libxrandr': ['HPND'], - 'libxrender': ['HPND'], - 'libxres': ['X11'], - 'libxslt': ['X11'], - 'libxss': ['X11'], - 'libxt': ['MIT', 'HPND', 'X11'], - 'libxtst': ['MIT', 'HPND', 'X11'], - 'libxv': ['HPND'], - 'libxxf86vm': ['X11'], + 'libx11': ['MIT', 'custom:X11', 'custom:TekHVC'], + 'libxau': ['custom:X11'], + 'libxaw': ['custom:X11', 'custom:HPND', 'MIT'], + 'libxcb': ['custom:X11'], + 'libxcomposite': ['custom:libxcomposite', 'MIT'], + 'libxcursor': ['custom:HPND'], + 'libxdamage': ['custom:HPND'], + 'libxdmcp': ['custom:X11'], + 'libxext': ['custom:X11', 'custom:HPND', 'MIT'], + 'libxfixes': ['custom:HPND', 'MIT'], + 'libxfont2': ['MIT', 'custom:HPND', 'BSD2', 'custom:X11'], + 'libxft': ['custom:HPND'], + 'libxinerama': ['MIT', 'custom:X11'], + 'libxi': ['custom:X11', 'custom:HPND', 'MIT'], + 'libxkbcommon': ['MIT', 'custom:HPND', 'custom:X11'], + 'libxkbcommon-x11': ['MIT', 'custom:HPND', 'custom:X11'], + 'libxkbfile': ['custom:HPND', 'custom:X11'], + 'libxmu': ['custom:X11'], + 'libxpm': ['custom:X11'], + 'libxpresent': ['MIT', 'custom:HPND'], + 'libxrandr': ['custom:HPND'], + 'libxrender': ['custom:HPND'], + 'libxres': ['custom:X11'], + 'libxslt': ['custom:X11'], + 'libxss': ['custom:X11'], + 'libxt': ['MIT', 'custom:HPND', 'custom:X11'], + 'libxtst': ['MIT', 'custom:HPND', 'custom:X11'], + 'libxv': ['custom:HPND'], + 'libxxf86vm': ['custom:X11'], 'lolcat': ['BSD3'], 'l-smash': ['ISC'], - 'lsof': ['lsof'], - 'mesa-demos': ['MIT', 'SGI', 'LGPL'], - 'mesa': ['MIT', 'Khronos', 'SGI'], - 'mesa-vdpau': ['MIT', 'Khronos', 'SGI'], + 'lsof': ['custom:lsof'], + 'mesa-demos': ['MIT', 'custom:SGI', 'LGPL'], + 'mesa': ['MIT', 'custom:Khronos', 'custom:SGI'], + 'mesa-vdpau': ['MIT', 'custom:Khronos', 'custom:SGI'], 'minizip': ['ZLIB'], - 'mobile-broadband-provider-info': ['Public Domain'], - 'ntp': ['HPND', 'BSD2'], - 'nvidia-cg-toolkit': ['non-free'], - 'nvidia-dkms': ['non-free'], - 'nvidia': ['non-free'], - 'nvidia-utils': ['non-free'], + 'mobile-broadband-provider-info': ['custom:Public Domain'], + 'ntp': ['custom:HPND', 'BSD2'], + 'nvidia-cg-toolkit': ['custom:non-free'], + 'nvidia-dkms': ['custom:non-free'], + 'nvidia': ['custom:non-free'], + 'nvidia-utils': ['custom:non-free'], 'openjdk8-src': ['GPL2'], 'orc': ['BSD2', 'BSD3'], - 'pepper-flash': ['non-free'], + 'pepper-flash': ['custom:non-free'], 'perl-rename': ['GPL', 'PerlArtistic'], 'pigz': ['ZLIB'], 'pixman': ['MIT'], 'png++': ['BSD3'], - 'popt': ['X11'], + 'popt': ['custom:X11'], 'python2': ['Python'], - 'python-docutils': ['publicdomain', 'BSD2', 'Python', 'GPL3'], + 'python-docutils': ['custom:publicdomain', 'BSD2', 'Python', 'GPL3'], 'python-magic': ['BSD2'], 'python-numpy': ['BSD3'], 'python': ['Python'], - 'qhull': ['Qhull'], + 'qhull': ['custom:Qhull'], 'rogue': ['BSD3'], 'rpcbind': ['BSD3'], 'sdl_image': ['zlib'], - 'sound-theme-freedesktop': ['CC-BY-SA', 'GPL2', 'Creative Commons Attribution 3.0 Unported', 'GPL'], - 'spirv-tools': ['Apache-2.0'], - 'steam': ['non-free'], + 'sound-theme-freedesktop': ['custom:CC-BY-SA', 'GPL2', 'custom:Creative Commons Attribution 3.0 Unported', 'GPL'], + 'spirv-tools': ['Apache'], + 'steam': ['custom:non-free'], 'sudo': ['ISC', 'BSD3', 'BSD2', 'ZLIB'], - 'tcl': ['tcl'], - 'ttf-bitstream-vera': ['bitstream-vera'], - 'ttf-dejavu': ['publicdomain', 'bitstream-vera'], - 'unrar': ['non-free'], - 'unzip': ['Info-ZIP'], + 'tcl': ['custom:tcl'], + 'ttf-bitstream-vera': ['custom:bitstream-vera'], + 'ttf-dejavu': ['custom:publicdomain', 'custom:bitstream-vera'], + 'unrar': ['custom:non-free'], + 'unzip': ['custom:Info-ZIP'], 'vdpauinfo': ['MIT'], 'vulkan-icd-loader': ['Apache'], - 'vulkan-mesa-layers': ['MIT', 'Khronos', 'SGI'], - 'vulkan-radeon': ['MIT', 'Khronos', 'SGI'], - 'vulkan-tools': ['Apache-2.0'], - 'w3m': ['w3m'], - 'webkit2gtk': ['BSD', 'MIT', 'GPL2', 'GPL3', 'LGPL2', 'LGPL2.1', 'Unicode-DFS'], + 'vulkan-mesa-layers': ['MIT', 'custom:Khronos', 'custom:SGI'], + 'vulkan-radeon': ['MIT', 'custom:Khronos', 'custom:SGI'], + 'vulkan-tools': ['Apache'], + 'w3m': ['custom:w3m'], + 'webkit2gtk': ['BSD', 'MIT', 'GPL2', 'GPL3', 'LGPL2', 'LGPL2.1', 'custom:Unicode-DFS'], 'webrtc-audio-processing': ['BSD3'], - 'xcb-proto': ['X11'], - 'xcb-util-image': ['X11'], - 'xcb-util-keysyms': ['HPND', 'X11'], - 'xcb-util-renderutil': ['HPND', 'X11'], - 'xcb-util-wm': ['HPND', 'X11'], - 'xcb-util': ['X11'], - 'xf86-input-libinput': ['HPND'], - 'xf86-video-amdgpu': ['X11', 'MIT', 'HPND'], + 'xcb-proto': ['custom:X11'], + 'xcb-util-image': ['custom:X11'], + 'xcb-util-keysyms': ['custom:HPND', 'custom:X11'], + 'xcb-util-renderutil': ['custom:HPND', 'custom:X11'], + 'xcb-util-wm': ['custom:HPND', 'custom:X11'], + 'xcb-util': ['custom:X11'], + 'xf86-input-libinput': ['custom:HPND'], + 'xf86-video-amdgpu': ['custom:X11', 'MIT', 'custom:HPND'], 'xfce4-wavelan-plugin': ['BSD2'], 'xfce4-xkb-plugin': ['BSD2'], - 'xkeyboard-config': ['MIT', 'HPND', 'X11', 'MIT-style'], - 'xorg-bdftopcf': ['X11'], - 'xorg-fonts-encodings': ['Public Domain'], - 'xorg-font-util': ['UCD', 'MIT', 'BSD2'], - 'xorg-iceauth': ['X11'], - 'xorg-mkfontscale': ['MIT', 'HPND', 'X11'], - 'xorgproto': ['MIT', 'HPND', 'X11'], - 'xorg-server': ['BSD', 'MIT', 'HPND', 'X11'], - 'xorg-server-common': ['BSD', 'MIT', 'HPND', 'X11'], - 'xorg-setxkbmap': ['HPND'], - 'xorg-x11perf': ['HPND'], - 'xorg-xauth': ['X11'], - 'xorg-xdpyinfo': ['X11'], - 'xorg-xev': ['X11'], - 'xorg-xeyes': ['X11'], - 'xorg-xfontsel': ['HPND', 'X11'], - 'xorg-xhost': ['MIT', 'X11'], - 'xorg-xinit': ['X11'], + 'xkeyboard-config': ['MIT', 'custom:HPND', 'custom:X11', 'custom:MIT-style'], + 'xorg-bdftopcf': ['custom:X11'], + 'xorg-fonts-encodings': ['custom:Public Domain'], + 'xorg-font-util': ['custom:UCD', 'MIT', 'BSD2'], + 'xorg-iceauth': ['custom:X11'], + 'xorg-mkfontscale': ['MIT', 'custom:HPND', 'custom:X11'], + 'xorgproto': ['MIT', 'custom:HPND', 'custom:X11'], + 'xorg-server': ['BSD', 'MIT', 'custom:HPND', 'custom:X11'], + 'xorg-server-common': ['BSD', 'MIT', 'custom:HPND', 'custom:X11'], + 'xorg-setxkbmap': ['custom:HPND'], + 'xorg-x11perf': ['custom:HPND'], + 'xorg-xauth': ['custom:X11'], + 'xorg-xdpyinfo': ['custom:X11'], + 'xorg-xev': ['custom:X11'], + 'xorg-xeyes': ['custom:X11'], + 'xorg-xfontsel': ['custom:HPND', 'custom:X11'], + 'xorg-xhost': ['MIT', 'custom:X11'], + 'xorg-xinit': ['custom:X11'], 'xorg-xinput': ['MIT'], - 'xorg-xkbcomp': ['HPND', 'X11'], - 'xorg-xkbevd': ['HPND'], - 'xorg-xkbutils': ['HPND', 'X11-DEC', 'MIT'], - 'xorg-xmessage': ['X11'], - 'xorg-xmodmap': ['MIT', 'X11'], - 'xorg-xprop': ['HPND', 'X11'], - 'xorg-xrandr': ['HPND'], - 'xorg-xrdb': ['X11'], - 'xorg-xset': ['X11'], + 'xorg-xkbcomp': ['custom:HPND', 'custom:X11'], + 'xorg-xkbevd': ['custom:HPND'], + 'xorg-xkbutils': ['custom:HPND', 'custom:X11-DEC', 'MIT'], + 'xorg-xmessage': ['custom:X11'], + 'xorg-xmodmap': ['MIT', 'custom:X11'], + 'xorg-xprop': ['custom:HPND', 'custom:X11'], + 'xorg-xrandr': ['custom:HPND'], + 'xorg-xrdb': ['custom:X11'], + 'xorg-xset': ['custom:X11'], 'xorg-xwayland': ['MIT'], - 'youtube-dl': ['Unlicense'], + 'youtube-dl': ['custom:Unlicense'], 'zathura-cb': ['zlib'], 'zathura-djvu': ['zlib'], 'zathura-pdf-mupdf': ['zlib'], 'zathura-pdf-poppler': ['zlib'], 'zathura-ps': ['zlib'], 'zathura': ['zlib'], - 'zip': ['Info-ZIP'], + 'zip': ['custom:Info-ZIP'], 'zlib': ['ZLIB'], - 'zoom': ['non-free'], # AUR - 'zsh': ['MIT-style', 'GPL'], + 'zoom': ['custom:non-free'], # AUR + 'zsh': ['custom:MIT-style', 'GPL'], } class Package(object):