15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/env python 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file. 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"""Makes sure that all files contain proper licensing information.""" 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)import json 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import optparse 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import os.path 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import subprocess 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import sys 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def PrintUsage(): 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print """Usage: python checklicenses.py [--root <root>] [tocheck] 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --root Specifies the repository root. This defaults to "../.." relative 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) to the script file. This will be correct given the normal location 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) of the script in "<root>/tools/checklicenses". 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --ignore-suppressions Ignores path-specific license whitelist. Useful when 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) trying to remove a suppression/whitelist entry. 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tocheck Specifies the directory, relative to root, to check. This defaults 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) to "." so it checks everything. 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Examples: 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) python checklicenses.py 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) python checklicenses.py --root ~/chromium/src third_party""" 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)WHITELISTED_LICENSES = [ 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'Anti-Grain Geometry', 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Apache (v2.0)', 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Apache (v2.0) BSD (2 clause)', 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Apache (v2.0) GPL (v2)', 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Apple MIT', # https://fedoraproject.org/wiki/Licensing/Apple_MIT_License 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'APSL (v2)', 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'APSL (v2) BSD (4 clause)', 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD', 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (2 clause)', 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'BSD (2 clause) ISC', 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (2 clause) MIT/X11 (BSD like)', 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (3 clause)', 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'BSD (3 clause) GPL (v2)', 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (3 clause) ISC', 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'BSD (3 clause) LGPL (v2 or later)', 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (3 clause) LGPL (v2.1 or later)', 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (3 clause) MIT/X11 (BSD like)', 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (4 clause)', 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD-like', 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # TODO(phajdan.jr): Make licensecheck not print BSD-like twice. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD-like MIT/X11 (BSD like)', 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSL (v1.0)', 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'FreeType (BSD like)', 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'FreeType (BSD like) with patent clause', 60eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'GPL (v2) LGPL (v2.1 or later)', 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v2 or later) with Bison parser exception', 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v2 or later) with libtool exception', 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v3 or later) with Bison parser exception', 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL with Bison parser exception', 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'Independent JPEG Group License', 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'ISC', 67eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'LGPL (unversioned/unknown version)', 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'LGPL (v2)', 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'LGPL (v2 or later)', 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'LGPL (v2.1)', 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'LGPL (v2.1 or later)', 72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'LGPL (v3 or later)', 73eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MIT/X11 (BSD like)', 74a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 'MIT/X11 (BSD like) LGPL (v2.1 or later)', 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'MPL (v1.0) LGPL (v2 or later)', 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'MPL (v1.1)', 77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MPL (v1.1) BSD (3 clause) GPL (v2) LGPL (v2.1 or later)', 78eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MPL (v1.1) BSD (3 clause) LGPL (v2.1 or later)', 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'MPL (v1.1) BSD-like', 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'MPL (v1.1) BSD-like GPL (unversioned/unknown version)', 81eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MPL (v1.1) BSD-like GPL (v2) LGPL (v2.1 or later)', 82eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MPL (v1.1) GPL (v2)', 83eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MPL (v1.1) GPL (v2) LGPL (v2 or later)', 84eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MPL (v1.1) GPL (v2) LGPL (v2.1 or later)', 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'MPL (v1.1) GPL (unversioned/unknown version)', 86eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MPL (v1.1) LGPL (v2 or later)', 87eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'MPL (v1.1) LGPL (v2.1 or later)', 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'MPL (v2.0)', 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Ms-PL', 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Public domain', 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Public domain BSD', 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Public domain BSD (3 clause)', 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Public domain BSD-like', 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'Public domain LGPL (v2.1 or later)', 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'libpng', 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'zlib/libpng', 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'SGI Free Software License B', 986e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 'SunSoft (BSD like)', 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'University of Illinois/NCSA Open Source License (BSD like)', 1005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ('University of Illinois/NCSA Open Source License (BSD like) ' 1015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'MIT/X11 (BSD like)'), 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)] 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PATH_SPECIFIC_WHITELISTED_LICENSES = { 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'base/third_party/icu': [ # http://crbug.com/98087 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # http://code.google.com/p/google-breakpad/issues/detail?id=450 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'breakpad/src': [ 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'chrome/common/extensions/docs/examples': [ # http://crbug.com/98092 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # This contains files copied from elsewhere from the tree. Since the copied 1195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # directories might have suppressions below (like simplejson), whitelist the 1205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # whole directory. This is also not shipped code. 1215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 'chrome/common/extensions/docs/server2/third_party': [ 1225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 'UNKNOWN', 1235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ], 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'courgette/third_party/bsdiff_create.cc': [ # http://crbug.com/98095 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'native_client': [ # http://crbug.com/98099 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'native_client/toolchain': [ 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD GPL (v2 or later)', 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (2 clause) GPL (v2 or later)', 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSD (3 clause) GPL (v2 or later)', 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSL (v1.0) GPL', 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'BSL (v1.0) GPL (v3.1)', 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL', 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (unversioned/unknown version)', 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v2)', 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v2 or later)', 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v3.1)', 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v3 or later)', 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/WebKit': [ 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # http://code.google.com/p/angleproject/issues/detail?id=217 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/angle': [ 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) # http://crbug.com/222828 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) # http://bugs.python.org/issue17514 1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'third_party/chromite/third_party/argparse.py': [ 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 158a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) # http://crbug.com/326117 159a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) # https://bitbucket.org/chrisatlee/poster/issue/21 160a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 'third_party/chromite/third_party/poster': [ 161a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 'UNKNOWN', 162a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) ], 163a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # http://crbug.com/333508 1655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'third_party/clang_format/script': [ 1665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'UNKNOWN', 1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ], 1685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch # http://crbug.com/333508 170116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 'buildtools/clang_format/script': [ 171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 'UNKNOWN', 172116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ], 173116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1745f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # https://mail.python.org/pipermail/cython-devel/2014-July/004062.html 1755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 'third_party/cython': [ 1765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 'UNKNOWN', 1775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ], 1785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/devscripts': [ 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v2 or later)', 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/expat/files/lib': [ # http://crbug.com/98121 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/ffmpeg': [ 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL', 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v2)', 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v2 or later)', 1891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'GPL (v3 or later)', 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', # http://crbug.com/98123 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 1925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'third_party/fontconfig': [ 1935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # https://bugs.freedesktop.org/show_bug.cgi?id=73401 1945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'UNKNOWN', 1955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ], 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'third_party/freetype2': [ # http://crbug.com/177319 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'UNKNOWN', 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ], 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/hunspell': [ # http://crbug.com/98134 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/iccjpeg': [ # http://crbug.com/98137 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/icu': [ # http://crbug.com/98301 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/lcov': [ # http://crbug.com/98304 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/lcov/contrib/galaxy/genflat.pl': [ 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v2 or later)', 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'third_party/libc++/trunk/include/support/solaris': [ 2155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # http://llvm.org/bugs/show_bug.cgi?id=18291 2165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'UNKNOWN', 2175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ], 2185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'third_party/libc++/trunk/src/support/solaris/xlocale.c': [ 2195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # http://llvm.org/bugs/show_bug.cgi?id=18291 2205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'UNKNOWN', 2215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ], 2225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'third_party/libc++/trunk/test': [ 2235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # http://llvm.org/bugs/show_bug.cgi?id=18291 2245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'UNKNOWN', 2255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ], 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/libevent': [ # http://crbug.com/98309 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/libjingle/source/talk': [ # http://crbug.com/98310 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/libjpeg_turbo': [ # http://crbug.com/98314 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Many liblouis files are mirrored but not used in the NaCl module. 2371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # They are not excluded from the mirror because of lack of infrastructure 2381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # support. Getting license headers added to the files where missing is 2391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # tracked in https://github.com/liblouis/liblouis/issues/22. 2401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'third_party/liblouis/src': [ 2411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'GPL (v3 or later)', 2421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'UNKNOWN', 2431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ], 2441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/libpng': [ # http://crbug.com/98318 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The following files lack license headers, but are trivial. 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/libusb/src/libusb/os/poll_posix.h': [ 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/libvpx/source': [ # http://crbug.com/98319 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/libxml': [ 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/libxslt': [ 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/lzma_sdk': [ 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 266868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 'third_party/mesa/src': [ 267868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 'GPL (v2)', 268868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 'GPL (v3 or later)', 269868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 'MIT/X11 (BSD like) GPL (v3 or later) with Bison parser exception', 270868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 'UNKNOWN', # http://crbug.com/98450 271868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ], 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/modp_b64': [ 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 275c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'third_party/openmax_dl/dl' : [ 276c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'Khronos Group', 277c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ], 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/openssl': [ # http://crbug.com/98451 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 281116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 'third_party/boringssl': [ 282116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch # There are some files in BoringSSL which came from OpenSSL and have no 283116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch # license in them. We don't wish to add the license header ourselves 284116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch # thus we don't expect to pass license checks. 285116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 'UNKNOWN', 286116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ], 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/ots/tools/ttf-checksum.py': [ # http://code.google.com/p/ots/issues/detail?id=2 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/molokocacao': [ # http://crbug.com/98453 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/npapi/npspy': [ 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/ocmock/OCMock': [ # http://crbug.com/98454 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/ply/__init__.py': [ 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'third_party/protobuf': [ # http://crbug.com/98455 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) # http://crbug.com/222831 3072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) # https://bitbucket.org/eliben/pyelftools/issue/12 3082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'third_party/pyelftools': [ 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/scons-2.0.1/engine/SCons': [ # http://crbug.com/98462 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/simplejson': [ 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/skia': [ # http://crbug.com/98463 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/snappy/src': [ # http://crbug.com/98464 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/smhasher/src': [ # http://crbug.com/98465 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 327c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'third_party/speech-dispatcher/libspeechd.h': [ 328c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'GPL (v2 or later)', 329c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ], 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/sqlite': [ 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 33358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # http://crbug.com/334668 3355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # MIT license. 3365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'tools/swarming_client/third_party/httplib2': [ 3375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'UNKNOWN', 3385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ], 3395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # http://crbug.com/334668 3415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # Apache v2.0. 3425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'tools/swarming_client/third_party/oauth2client': [ 3435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'UNKNOWN', 3445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ], 3455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 34668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) # https://github.com/kennethreitz/requests/issues/1610 3470f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 'tools/swarming_client/third_party/requests': [ 34868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 'UNKNOWN', 34968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ], 35068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/swig/Lib/linkruntime.c': [ # http://crbug.com/98585 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/talloc': [ 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'GPL (v3 or later)', 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', # http://crbug.com/98588 3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/tcmalloc': [ 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', # http://crbug.com/98589 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/tlslite': [ 3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/webdriver': [ # http://crbug.com/98590 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 367a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 368a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) # https://github.com/html5lib/html5lib-python/issues/125 369a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) # https://github.com/KhronosGroup/WebGL/issues/435 370a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 'third_party/webgl/src': [ 371a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 'UNKNOWN', 372a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) ], 373a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/webrtc': [ # http://crbug.com/98592 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/xdg-utils': [ # http://crbug.com/98593 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/yasm/source': [ # http://crbug.com/98594 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/zlib/contrib/minizip': [ 3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party/zlib/trees.h': [ 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'tools/emacs': [ # http://crbug.com/98595 3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'tools/gyp/test': [ 3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'tools/python/google/__init__.py': [ 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'tools/stats_viewer/Properties/AssemblyInfo.cs': [ 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'tools/symsrc/pefile.py': [ 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 4045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'tools/telemetry/third_party/pyserial': [ 4055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # https://sourceforge.net/p/pyserial/feature-requests/35/ 4065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'UNKNOWN', 4075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ], 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'v8/test/cctest': [ # http://crbug.com/98597 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'UNKNOWN', 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ], 411116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 'v8/src/third_party/kernel/tools/perf/util/jitdump.h': [ # http://crbug.com/391716 412116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 'UNKNOWN', 413116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ], 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def check_licenses(options, args): 4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Figure out which directory we have to check. 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if len(args) == 0: 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # No directory to check specified, use the repository root. 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) start_dir = options.base_directory 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif len(args) == 1: 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Directory specified. Start here. It's supposed to be relative to the 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # base directory. 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) start_dir = os.path.abspath(os.path.join(options.base_directory, args[0])) 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else: 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # More than one argument, we don't handle this. 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PrintUsage() 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 1 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "Using base directory:", options.base_directory 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "Checking:", start_dir 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) licensecheck_path = os.path.abspath(os.path.join(options.base_directory, 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'third_party', 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'devscripts', 4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'licensecheck.pl')) 4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) licensecheck = subprocess.Popen([licensecheck_path, 4412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) '-l', '100', 4422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) '-r', start_dir], 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stdout=subprocess.PIPE, 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stderr=subprocess.PIPE) 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stdout, stderr = licensecheck.communicate() 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if options.verbose: 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print '----------- licensecheck stdout -----------' 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print stdout 4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print '--------- end licensecheck stdout ---------' 4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if licensecheck.returncode != 0 or stderr: 4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print '----------- licensecheck stderr -----------' 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print stderr 4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print '--------- end licensecheck stderr ---------' 4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "\nFAILED\n" 4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 1 4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4570f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) used_suppressions = set() 45846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) errors = [] 4590f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for line in stdout.splitlines(): 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filename, license = line.split(':', 1) 4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filename = os.path.relpath(filename.strip(), options.base_directory) 4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # All files in the build output directory are generated one way or another. 4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # There's no need to check them. 4664e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if filename.startswith('out/'): 4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # For now we're just interested in the license. 4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) license = license.replace('*No copyright*', '').strip() 4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Skip generated files. 4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if 'GENERATED FILE' in license: 4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if license in WHITELISTED_LICENSES: 4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if not options.ignore_suppressions: 4800f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) matched_prefixes = [ 4810f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) prefix for prefix in PATH_SPECIFIC_WHITELISTED_LICENSES 4820f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) if filename.startswith(prefix) and 4830f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) license in PATH_SPECIFIC_WHITELISTED_LICENSES[prefix]] 4840f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) if matched_prefixes: 4850f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) used_suppressions.update(set(matched_prefixes)) 4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) errors.append({'filename': filename, 'license': license}) 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if options.json: 49146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) with open(options.json, 'w') as f: 49246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) json.dump(errors, f) 4930f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 49446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if errors: 49546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) for error in errors: 49646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) print "'%s' has non-whitelisted license '%s'" % ( 49746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) error['filename'], error['license']) 4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "\nFAILED\n" 4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "Please read", 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "http://www.chromium.org/developers/adding-3rd-party-libraries" 5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "for more info how to handle the failure." 5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "Please respect OWNERS of checklicenses.py. Changes violating" 5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print "this requirement may be reverted." 5050f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 5060f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) # Do not print unused suppressions so that above message is clearly 5070f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) # visible and gets proper attention. Too much unrelated output 5080f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) # would be distracting and make the important points easier to miss. 5090f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 1 5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) print "\nSUCCESS\n" 51346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 51446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if not len(args): 51546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) unused_suppressions = set( 51646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) PATH_SPECIFIC_WHITELISTED_LICENSES.iterkeys()).difference( 51746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) used_suppressions) 51846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if unused_suppressions: 51946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) print "\nNOTE: unused suppressions detected:\n" 52046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) print '\n'.join(unused_suppressions) 52146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 52246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return 0 52346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def main(): 5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) default_root = os.path.abspath( 5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) os.path.join(os.path.dirname(__file__), '..', '..')) 5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) option_parser = optparse.OptionParser() 5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) option_parser.add_option('--root', default=default_root, 5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dest='base_directory', 5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help='Specifies the repository root. This defaults ' 5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'to "../.." relative to the script file, which ' 5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'will normally be the repository root.') 5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) option_parser.add_option('-v', '--verbose', action='store_true', 5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) default=False, help='Print debug logging') 5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) option_parser.add_option('--ignore-suppressions', 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) action='store_true', 5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) default=False, 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help='Ignore path-specific license whitelist.') 54046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) option_parser.add_option('--json', help='Path to JSON output file') 5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) options, args = option_parser.parse_args() 5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return check_licenses(options, args) 5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if '__main__' == __name__: 5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sys.exit(main()) 547