com web/rmtools: first shot for license packaging: client/include/PeclExt.php
| From: | Anatol Belski | Date: | Mon, 07 Oct 2013 18:18:55 +0000 |
| Subject: | com web/rmtools: first shot for license packaging: client/include/PeclExt.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-19127@lists.php.net to get a copy of this message | ||
Commit: 8b44fe891b507c6e8d480c033b45f7289aa08d89
Author: Anatol Belski <ab@php.net> Mon, 7 Oct 2013 20:18:55 +0200
Parents: b85c4446de839b1e4773192c312d19f7f3fb0bca
Branches: master
Link: http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=8b44fe891b507c6e8d480c033b45f7289aa08d89
Log:
first shot for license packaging
Changed paths:
M client/include/PeclExt.php
Diff:
diff --git a/client/include/PeclExt.php b/client/include/PeclExt.php
index 11becfb..44a8d98 100644
--- a/client/include/PeclExt.php
+++ b/client/include/PeclExt.php
@@ -530,6 +530,57 @@ if (!function_exists('rmtools\combinations')) {
return $this->buildConfigureLine($config);
}
+ public function prepareLicenseSimple($source, $target, $suffix = NULL)
+ {
+ $ret = array();
+ $base = array(
+ "COPYING",
+ "COPYRIGHT",
+ "LICENSE",
+ "README",
+ );
+
+ $names = $base;
+ foreach ($base as $nm) {
+ $names[] = "$nm*";
+ $names[] = strtolower($nm) . "*";
+ $names[] = ucfirst(strtolower($nm)) . "*";
+ }
+
+ foreach ($names as $name) {
+ $pat = $source .. DIRECTORY_SEPARATOR . $name;
+
+ $glob = glob($pat);
+
+ if (is_array($glob)) {
+ foreach ($glob as $fl) {
+ $tgt_fl = $target . DIRECTORY_SEPARATOR
+ . basename($fl) . "." . strtoupper($suffix);
+ if (!copy($fl, $tgt_fl)) {
+ throw new \Exception("The license file '$fl' "
+ . "was found but couldn't be copied into '$tgt_fl'");
+ }
+
+ $ret[] = $tgt_fl;
+ }
+ }
+ }
+
+ return $ret;
+ }
+
+ public function prepareExtLicense($source, $target, $suffix = NULL)
+ {
+ $ret = $this->prepareLicenseSimple($source, $target, $suffix);
+
+ if (!$ret) {
+ /* XXX check package.xml here*/
+ }
+
+
+ return $ret;
+ }
+
public function prepareAllDepDlls($dll_file, $target)
{
$ret = array();
@@ -560,6 +611,14 @@ if (!function_exists('rmtools\combinations')) {
$ret[] = $dll_file;
/* some dep dll might have another dep :) */
$ret = array_merge($this->prepareAllDepDlls($look_for, $target), $ret);
+ $ret = array_merge(
+ $this->prepareLicenseSimple(
+ $deps_path . DIRECTORY_SEPARATOR . $lib,
+ $target,
+ $lib
+ ),
+ $ret
+ );
}
$look_for = $deps_path
@@ -635,6 +694,12 @@ if (!function_exists('rmtools\combinations')) {
throw new \Exception($msg);
}
+ /* care about extension license */
+ $files_to_zip = array_merge(
+ $files_to_zip,
+ $this->prepareExtLicense($this->tmp_extract_path, $target, "php." .
$this->name)
+ );
+
/* pack */
$zip_file = TMP_DIR . DIRECTORY_SEPARATOR . $this->getPackageName() . '.zip';
$zip_cmd = $this->zip_cmd . ' -9 -D -j ' . $zip_file . ' ' .
implode(' ', $files_to_zip);