diff options
Diffstat (limited to 'tools/licenses.py')
-rwxr-xr-x | tools/licenses.py | 77 |
1 files changed, 60 insertions, 17 deletions
diff --git a/tools/licenses.py b/tools/licenses.py index b01db48..28ffe06 100755 --- a/tools/licenses.py +++ b/tools/licenses.py @@ -93,13 +93,13 @@ PRUNE_DIRS = ('.svn', '.git', # VCS metadata 'layout_tests') # lots of subdirs ADDITIONAL_PATHS = ( + os.path.join('googleurl'), + os.path.join('native_client_sdk'), # The directory with the word list for Chinese and Japanese segmentation # with different license terms than ICU. os.path.join('third_party','icu','source','data','brkitr'), # Fake directory so we can include the strongtalk license. os.path.join('v8', 'strongtalk'), - # Fake directory so we can include the google-url license. - 'googleurl', ) @@ -116,6 +116,19 @@ SPECIAL_CASES = { "Name": "Almost Native Graphics Layer Engine", "URL": "http://code.google.com/p/angleproject/", }, + os.path.join('third_party', 'cros_system_api'): { + "Name": "Chromium OS system API", + "URL": "http://www.chromium.org/chromium-os", + "License": "BSD", + # Absolute path here is resolved as relative to the source root. + "License File": "/LICENSE.chromium_os", + }, + os.path.join('third_party', 'GTM'): { + "Name": "Google Toolbox for Mac", + "URL": "http://code.google.com/p/google-toolbox-for-mac/", + "License": "Apache 2.0", + "License File": "COPYING", + }, os.path.join('third_party', 'lss'): { "Name": "linux-syscall-support", "URL": "http://code.google.com/p/lss/", @@ -124,33 +137,46 @@ SPECIAL_CASES = { "Name": "OTS (OpenType Sanitizer)", "URL": "http://code.google.com/p/ots/", }, + os.path.join('third_party', 'pdfsqueeze'): { + "Name": "pdfsqueeze", + "URL": "http://code.google.com/p/pdfsqueeze/", + "License": "Apache 2.0", + "License File": "COPYING", + }, os.path.join('third_party', 'ppapi'): { "Name": "ppapi", "URL": "http://code.google.com/p/ppapi/", }, + os.path.join('third_party', 'scons-2.0.1'): { + "Name": "scons-2.0.1", + "URL": "http://www.scons.org", + "License": "MIT", + }, + os.path.join('third_party', 'trace-viewer'): { + "Name": "trace-viewer", + "URL": "http://code.google.com/p/trace-viewer", + "License": "BSD", + }, + os.path.join('third_party', 'v8-i18n'): { + "Name": "Internationalization Library for v8", + "URL": "http://code.google.com/p/v8-i18n/", + }, os.path.join('third_party', 'WebKit'): { "Name": "WebKit", "URL": "http://webkit.org/", + "License": "BSD and GPL v2", # Absolute path here is resolved as relative to the source root. "License File": "/webkit/LICENSE", }, - os.path.join('third_party', 'GTM'): { - "Name": "Google Toolbox for Mac", - "URL": "http://code.google.com/p/google-toolbox-for-mac/", - "License File": "COPYING", - }, - os.path.join('third_party', 'pdfsqueeze'): { - "Name": "pdfsqueeze", - "URL": "http://code.google.com/p/pdfsqueeze/", - "License File": "COPYING", - }, - os.path.join('third_party', 'v8-i18n'): { - "Name": "Internationalization Library for v8", - "URL": "http://code.google.com/p/v8-i18n/", + os.path.join('third_party', 'webpagereplay'): { + "Name": "webpagereplay", + "URL": "http://code.google.com/p/web-page-replay", + "License": "Apache 2.0", }, os.path.join('v8', 'strongtalk'): { "Name": "Strongtalk", "URL": "http://www.strongtalk.org/", + # Absolute path here is resolved as relative to the source root. "License File": "/v8/LICENSE.strongtalk", }, } @@ -194,7 +220,8 @@ def ParseDir(path): # Try to find README.chromium. readme_path = os.path.join(path, 'README.chromium') if not os.path.exists(readme_path): - raise LicenseError("missing README.chromium") + raise LicenseError("missing README.chromium or licenses.py " + "SPECIAL_CASES entry") for line in open(readme_path): line = line.strip() @@ -236,6 +263,15 @@ def ParseDir(path): return metadata +def ContainsFiles(path): + """Determines whether any files exist in a directory or in any of its + subdirectories.""" + for _, _, files in os.walk(path): + if files: + return True + return False + + def FindThirdPartyDirs(): """Find all third_party directories underneath the current directory.""" third_party_dirs = [] @@ -264,10 +300,17 @@ def FindThirdPartyDirs(): dirs[:] = [] continue + # Don't recurse into paths in ADDITIONAL_PATHS, like we do with regular + # third_party/foo paths. + if path in ADDITIONAL_PATHS: + dirs[:] = [] + for dir in ADDITIONAL_PATHS: third_party_dirs.append(dir) - return third_party_dirs + # If a directory contains no files, assume it's a DEPS directory for a + # project not used by our current configuration and skip it. + return [x for x in third_party_dirs if ContainsFiles(x)] def ScanThirdPartyDirs(): |