Factor out licence stripping

Matches code in Blockly Games.
No functional change.
This commit is contained in:
Neil Fraser
2019-05-01 21:07:25 -07:00
committed by Neil Fraser
parent 5e56b4ad58
commit e06916e5e3

View File

@@ -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.