Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: tools/licenses.py

Issue 10830201: Update license tool to check several additional directories (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tweak Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/harfbuzz-ng/README.chromium ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/licenses.py
diff --git a/tools/licenses.py b/tools/licenses.py
index cd33aa6655e0d5555397cf0d73c412969f0aeadd..d67c08226518b7b8811a58ec43adfc2087fffcb2 100755
--- a/tools/licenses.py
+++ b/tools/licenses.py
@@ -21,34 +21,16 @@ import sys
# Paths from the root of the tree to directories to skip.
PRUNE_PATHS = set([
- # Same module occurs in both the top-level third_party and others.
- os.path.join('base','third_party','icu'),
-
- # Assume for now that breakpad has their licensing in order.
- os.path.join('breakpad'),
-
- # Assume for now that native client has their licensing in order.
- os.path.join('native_client'),
-
- # Same module occurs in chrome/ and in net/, so skip one of them.
- os.path.join('net','third_party','mozilla_security_manager'),
-
- # Same module occurs in base/, net/, and src/ so skip all but one of them.
+ # Same module occurs in crypto/third_party/nss and net/third_party/nss, so
+ # skip this one.
os.path.join('third_party','nss'),
- os.path.join('net','third_party','nss'),
# Placeholder directory only, not third-party code.
os.path.join('third_party','adobe'),
- # Same license as Chromium.
- os.path.join('third_party','lss'),
-
# Only binaries, used during development.
os.path.join('third_party','valgrind'),
- # Directories that are the same as those in base/third_party.
- os.path.join('v8','src','third_party','valgrind'),
-
# Used for development and test, not in the shipping product.
os.path.join('third_party','bidichecker'),
os.path.join('third_party','cygwin'),
@@ -70,9 +52,6 @@ PRUNE_PATHS = set([
os.path.join('third_party','directxsdk'),
os.path.join('third_party','platformsdk_win2008_6_1'),
os.path.join('third_party','platformsdk_win7'),
-
- # Harfbuzz-ng is not currently shipping in any product:
- os.path.join('third_party','harfbuzz-ng'),
])
# Directories we don't scan through.
@@ -81,12 +60,26 @@ PRUNE_DIRS = ('.svn', '.git', # VCS metadata
'layout_tests') # lots of subdirs
ADDITIONAL_PATHS = (
+ os.path.join('breakpad'),
+ os.path.join('chrome', 'common', 'extensions', 'docs', 'examples'),
+ os.path.join('chrome', 'test', 'chromeos', 'autotest'),
+ os.path.join('chrome', 'test', 'data'),
os.path.join('googleurl'),
+ os.path.join('native_client'),
os.path.join('native_client_sdk'),
+ os.path.join('net', 'tools', 'spdyshark'),
os.path.join('ppapi'),
+ os.path.join('sandbox', 'linux', 'seccomp-legacy'),
+ os.path.join('sdch', 'open-vcdiff'),
+ os.path.join('testing', 'gmock'),
+ os.path.join('testing', 'gtest'),
# 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'),
+ os.path.join('tools', 'grit'),
+ os.path.join('tools', 'gyp'),
+ os.path.join('tools', 'page_cycler', 'acid3'),
+ os.path.join('v8'),
# Fake directory so we can include the strongtalk license.
os.path.join('v8', 'strongtalk'),
)
@@ -96,12 +89,37 @@ ADDITIONAL_PATHS = (
# can't provide a README.chromium. Please prefer a README.chromium
# wherever possible.
SPECIAL_CASES = {
- 'googleurl': {
+ os.path.join('googleurl'): {
"Name": "google-url",
"URL": "http://code.google.com/p/google-url/",
"License": "BSD and MPL 1.1/GPL 2.0/LGPL 2.1",
"License File": "LICENSE.txt",
},
+ os.path.join('native_client'): {
+ "Name": "native client",
+ "URL": "http://code.google.com/p/nativeclient",
+ "License": "BSD",
+ },
+ os.path.join('sandbox', 'linux', 'seccomp-legacy'): {
+ "Name": "seccompsandbox",
+ "URL": "http://code.google.com/p/seccompsandbox",
+ "License": "BSD",
+ },
+ os.path.join('sdch', 'open-vcdiff'): {
+ "Name": "open-vcdiff",
+ "URL": "http://code.google.com/p/open-vcdiff",
+ "License": "Apache 2.0, MIT, GPL v2 and custom licenses",
+ },
+ os.path.join('testing', 'gmock'): {
+ "Name": "gmock",
+ "URL": "http://code.google.com/p/googlemock",
+ "License": "BSD",
+ },
+ os.path.join('testing', 'gtest'): {
+ "Name": "gtest",
+ "URL": "http://code.google.com/p/googletest",
+ "License": "BSD",
+ },
os.path.join('third_party', 'angle'): {
"Name": "Almost Native Graphics Layer Engine",
"URL": "http://code.google.com/p/angleproject/",
@@ -123,6 +141,8 @@ SPECIAL_CASES = {
os.path.join('third_party', 'lss'): {
"Name": "linux-syscall-support",
"URL": "http://code.google.com/p/lss/",
+ "License": "BSD",
+ "License File": "/LICENSE",
},
os.path.join('third_party', 'ots'): {
"Name": "OTS (OpenType Sanitizer)",
@@ -166,6 +186,21 @@ SPECIAL_CASES = {
"URL": "http://code.google.com/p/web-page-replay",
"License": "Apache 2.0",
},
+ os.path.join('tools', 'grit'): {
+ "Name": "grit",
+ "URL": "http://code.google.com/p/grit-i18n",
+ "License": "BSD",
+ },
+ os.path.join('tools', 'gyp'): {
+ "Name": "gyp",
+ "URL": "http://code.google.com/p/gyp",
+ "License": "BSD",
+ },
+ os.path.join('v8'): {
+ "Name": "gyp",
+ "URL": "http://code.google.com/p/v8",
+ "License": "BSD",
+ },
os.path.join('v8', 'strongtalk'): {
"Name": "Strongtalk",
"URL": "http://www.strongtalk.org/",
@@ -175,6 +210,11 @@ SPECIAL_CASES = {
},
}
+# Special value for 'License File' field used to indicate that the license file
+# should not be used in about:credits.
+NOT_SHIPPED = "NOT_SHIPPED"
+
+
class LicenseError(Exception):
"""We raise this exception when a directory's licensing info isn't
fully filled out."""
@@ -234,19 +274,22 @@ def ParseDir(path):
"in README.chromium or licences.py "
"SPECIAL_CASES")
- # Check that the license file exists.
- for filename in (metadata["License File"], "COPYING"):
- license_path = AbsolutePath(path, filename)
- if license_path is not None:
- metadata["License File"] = license_path
- break
+ # Special-case modules that aren't in the shipping product, so don't need
+ # their license in about:credits.
+ if metadata["License File"] != NOT_SHIPPED:
+ # Check that the license file exists.
+ for filename in (metadata["License File"], "COPYING"):
+ license_path = AbsolutePath(path, filename)
+ if license_path is not None:
+ metadata["License File"] = license_path
+ break
- if not license_path:
- raise LicenseError("License file not found. "
- "Either add a file named LICENSE, "
- "import upstream's COPYING if available, "
- "or add a 'License File:' line to README.chromium "
- "with the appropriate path.")
+ if not license_path:
+ raise LicenseError("License file not found. "
+ "Either add a file named LICENSE, "
+ "import upstream's COPYING if available, "
+ "or add a 'License File:' line to "
+ "README.chromium with the appropriate path.")
if "Required Text" in metadata:
required_path = AbsolutePath(path, metadata["Required Text"])
@@ -350,6 +393,10 @@ def GenerateCredits():
print >>sys.stderr, ("WARNING: licensing info for " + path +
" is incomplete, skipping.")
continue
+ if metadata['License File'] == NOT_SHIPPED:
+ print >>sys.stderr, ("Path " + path + " marked as " + NOT_SHIPPED +
+ ", skipping.")
+ continue
env = {
'name': metadata['Name'],
'url': metadata['URL'],
« no previous file with comments | « third_party/harfbuzz-ng/README.chromium ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698