diff options
author | Bjoern Schiessle <bjoern@schiessle.org> | 2016-06-06 18:19:29 +0200 |
---|---|---|
committer | Bjoern Schiessle <bjoern@schiessle.org> | 2016-06-06 19:18:24 +0200 |
commit | a41c579f636aefad7611f9dfd1f54cd15276bd56 (patch) | |
tree | 4ebdaf27e9708d8a68088ea05b4b5f9ace787f02 /build | |
parent | e8dc57c441f4aff997c8dc02fb1b86b2eebe234c (diff) | |
download | nextcloud-server-a41c579f636aefad7611f9dfd1f54cd15276bd56.tar.gz nextcloud-server-a41c579f636aefad7611f9dfd1f54cd15276bd56.zip |
no more CLA and switch to AGPLv3 or later
Diffstat (limited to 'build')
-rw-r--r-- | build/license.php | 66 |
1 files changed, 57 insertions, 9 deletions
diff --git a/build/license.php b/build/license.php index 493c7dafd98..bed3854925f 100644 --- a/build/license.php +++ b/build/license.php @@ -29,6 +29,27 @@ class Licenses /** @AUTHORS@ * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +EOD; + $this->licenseTextLegacy = <<<EOD +/** +@AUTHORS@ + * * @copyright Copyright (c) @YEAR@, ownCloud, Inc. * @license AGPL-3.0 * @@ -46,7 +67,7 @@ class Licenses * */ EOD; - $this->licenseText = str_replace('@YEAR@', date("Y"), $this->licenseText); + $this->licenseTextLegacy = str_replace('@YEAR@', date("Y"), $this->licenseTextLegacy); } /** @@ -118,10 +139,15 @@ With help from many libraries and frameworks including: echo "MIT licensed file: $path" . PHP_EOL; return; } - $source = $this->eatOldLicense($source); - $authors = $this->getAuthors($path, $gitRoot); - $license = str_replace('@AUTHORS@', $authors, $this->licenseText); + if ($this->isOwnCloudLicensed($source)) { + $authors = $this->getAuthors($path, $gitRoot, true); + $license = str_replace('@AUTHORS@', $authors, $this->licenseTextLegacy); + } else { + $authors = $this->getAuthors($path, $gitRoot); + $license = str_replace('@AUTHORS@', $authors, $this->licenseText); + } + $source = $this->eatOldLicense($source); $source = "<?php" . PHP_EOL . $license . PHP_EOL . $source; file_put_contents($path,$source); echo "License updated: $path" . PHP_EOL; @@ -143,6 +169,19 @@ With help from many libraries and frameworks including: return false; } + private function isOwnCloudLicensed($source) { + $lines = explode(PHP_EOL, $source); + while(!empty($lines)) { + $line = $lines[0]; + array_shift($lines); + if (strpos($line, 'ownCloud, Inc') !== false) { + return true; + } + } + + return false; + } + /** * @param string $source * @return string @@ -177,7 +216,7 @@ With help from many libraries and frameworks including: return implode(PHP_EOL, $lines); } - private function getAuthors($file, $gitRoot) { + private function getAuthors($file, $gitRoot, $legacyFiles = false) { // only add authors that changed code and not the license header $licenseHeaderEndsAtLine = trim(shell_exec("grep -n '*/' $file | head -n 1 | cut -d ':' -f 1")); $buildDir = getcwd(); @@ -205,10 +244,19 @@ With help from many libraries and frameworks including: $authors = array_unique($authors); } - $authors = array_map(function($author){ - $this->authors[$author] = $author; - return " * @author $author"; - }, $authors); + if ($legacyFiles) { + $authors = array_map(function($author){ + $this->authors[$author] = $author; + return " * @author $author"; + }, $authors); + } else { + $authors = array_map(function($author){ + $this->authors[$author] = $author; + return " * @copyright Copyright (c) " . date("Y") . ", $author"; + }, $authors); + } + + return implode(PHP_EOL, $authors); } |