From a41c579f636aefad7611f9dfd1f54cd15276bd56 Mon Sep 17 00:00:00 2001
From: Bjoern Schiessle <bjoern@schiessle.org>
Date: Mon, 6 Jun 2016 18:19:29 +0200
Subject: [PATCH] no more CLA and switch to AGPLv3 or later

---
 build/license.php | 66 ++++++++++++++++++++++++++++++++++++++++-------
 1 file 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
@@ -27,6 +27,27 @@ class Licenses
 	public function __construct() {
 		$this->licenseText = <<<EOD
 /**
+@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.
@@ -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);
 	}
 
-- 
GitLab