From e06916e5e3b02845219a166db6dd246cda350d3b Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Wed, 1 May 2019 21:07:25 -0700 Subject: [PATCH] Factor out licence stripping Matches code in Blockly Games. No functional change. --- build.py | 59 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/build.py b/build.py index 2455bb74e..c62c2cb5c 100755 --- a/build.py +++ b/build.py @@ -390,30 +390,7 @@ class Gen_compressed(threading.Thread): code = HEADER + "\n" + json_data["compiledCode"] code = code.replace(remove, "") - - # The Closure Compiler preserves licences. - # Trim out Google's and MIT's (and nobody else's) Apache licences. - # MIT's permission to do this is logged in Blockly issue 2412. - LICENSE = re.compile("""/\\* - - [\w ]+ - - Copyright \\d+ (Google Inc.|Massachusetts Institute of Technology) - (https://developers.google.com/blockly/|All rights reserved.) - - Licensed under the Apache License, Version 2.0 \(the "License"\); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -\\*/""") - code = re.sub(LICENSE, "", code) + code = self.trim_licence(code) stats = json_data["statistics"] original_b = stats["originalSize"] @@ -432,6 +409,40 @@ class Gen_compressed(threading.Thread): else: print("UNKNOWN ERROR") + def trim_licence(self, code): + """Strip out Google's and MIT's Apache licences. + + JS Compiler preserves dozens of Apache licences in the Blockly code. + Remove these if they belong to Google or MIT. + MIT's permission to do this is logged in Blockly issue 2412. + + Args: + code: Large blob of compiled source code. + + Returns: + Code with Google's and MIT's Apache licences trimmed. + """ + apache2 = re.compile("""/\\* + + [\\w: ]+ + + (Copyright \\d+ (Google Inc.|Massachusetts Institute of Technology)) + (https://developers.google.com/blockly/|All rights reserved.) + + Licensed under the Apache License, Version 2.0 \\(the "License"\\); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\\*/""") + return re.sub(apache2, "", code) + class Gen_langfiles(threading.Thread): """Generate JavaScript file for each natural language supported.