summaryrefslogtreecommitdiffstats
path: root/scripts/manifest.py
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-10-18 22:58:01 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-10-20 02:59:32 +0200
commitf6a553a976f797d310e613e29d54b7c6570b810a (patch)
tree910c8238764368056688da71aed020844719cd65 /scripts/manifest.py
parentf3c754121a25c2fc388355e6cc3b5c96d75277e8 (diff)
downloadmanifest-f6a553a976f797d310e613e29d54b7c6570b810a.tar.gz
manifest-f6a553a976f797d310e613e29d54b7c6570b810a.tar.bz2
manifest-f6a553a976f797d310e613e29d54b7c6570b810a.zip
Add script to check licenses
As we currently have 757 repositories, we can't review all the code of all repositories. And unlike GNU/Linux distributions, we don't have package definitions with licenses. And switching to a package manager would not only require extensive work, but we would also need to be really sure that that work would also need to be maintained over time. Because of all theses constraints, and to have at least some weak assurances that we don't bring in nonfree code from the Android open source project, I wrote this script to try to semi-automatically list the repositories licenses. While it doesn't look yet into the repositories themselves, we at least found one repository (external/dng) with a potentially problematic license that we need to review in more detail. For instance it has a clause that prevents the modification of the documentation, but there is no documentation. There is also still 425 repositories with an unknown license fo far: $ ./manifest/scripts/check-licenses.py manifest/default.xml | external/dng_sdk/LICENSE | [...] Remaining: 331 done: 426 total: 757 Also note that this script doesn't expend the includes and so it won't automatically check the repositories in replicant/repositories.xml when used with default.xml. However the repositories added or forked by Replicant are less a concern as developers forking repositories will probably have more probability of finding licensing issues in a given repository than if it was handled by this script. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'scripts/manifest.py')
-rwxr-xr-xscripts/manifest.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/scripts/manifest.py b/scripts/manifest.py
index d1188e6..065ee7f 100755
--- a/scripts/manifest.py
+++ b/scripts/manifest.py
@@ -184,5 +184,11 @@ class Manifest(object):
print(command)
print('')
+ def list_repositories_paths(self):
+ paths = []
+ for child in self.root.iter('project'):
+ paths.append(self.get_project_property(child, 'path'))
+ return paths
+
def close(self):
self.xml_file.close()