[packages/composer/1.0.0-alpha11-dev] simplify install, install to php data dir
glen
glen at pld-linux.org
Wed Nov 25 23:16:53 CET 2015
commit 65715e5be20a8899f57ce9caeee8d814793865fe
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Thu Nov 26 00:05:48 2015 +0200
simplify install, install to php data dir
autoload.patch | 26 ++++++++++++++++++++++++++
autoload.php | 30 ++++++++++++++++++++++++++++++
composer.spec | 38 +++++++++++++++++---------------------
3 files changed, 73 insertions(+), 21 deletions(-)
---
diff --git a/composer.spec b/composer.spec
index fbd8738..4f1fba5 100644
--- a/composer.spec
+++ b/composer.spec
@@ -6,7 +6,7 @@
%define rel 14
#define githash 5744981
-# $ git rev-list 1.0.0-alpha10..%{githash} --count
+# $ git rev-list 1.0.0-alpha11..%{githash} --count
#define commits 216
%define subver alpha11
%define php_min_version 5.3.4
@@ -26,11 +26,13 @@ Source1: http://getcomposer.org/download/%{version}-alpha8/%{name}.phar
%endif
Source2: https://raw.githubusercontent.com/iArren/%{name}-bash-completion/86a8129/composer
# Source2-md5: cdeebf0a0da1fd07d0fd886d0461642e
+Source3: autoload.php
Patch0: nogit.patch
Patch1: no-vendors.patch
Patch2: autoload-config.patch
Patch3: update-memory-limit.patch
Patch4: svn-ignore-externals.patch
+Patch10: autoload.patch
URL: http://www.getcomposer.org/
BuildRequires: %{php_name}-cli
BuildRequires: %{php_name}-ctype
@@ -70,9 +72,10 @@ Requires: php(zlib)
%if %{without bootstrap}
Requires: php-justinrainbow-json-schema >= 1.4
Requires: php-seld-jsonlint >= 1.1.2
-Requires: php-symfony2-Console >= 2.5
-Requires: php-symfony2-Finder >= 2.2
-Requires: php-symfony2-Process >= 2.1
+Requires: php-symfony2-ClassLoader >= 2.7.7
+Requires: php-symfony2-Console >= 2.7.7
+Requires: php-symfony2-Finder >= 2.7.7
+Requires: php-symfony2-Process >= 2.7.7
%endif
Suggests: bash-completion-%{name}
Suggests: git-core
@@ -81,8 +84,6 @@ Suggests: subversion
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _appdir %{_datadir}/%{name}
-
%description
Composer is a tool for dependency management in PHP.
@@ -105,19 +106,19 @@ Pakiet ten dostarcza bashowe uzupełnianie nazw dla Composera.
%prep
%setup -qc -n %{name}-%{version}-%{release}
mv composer-*/* .
-%patch0 -p1
-%{!?with_bootstrap:%patch1 -p1}
-%patch3 -p1
-%patch4 -p1
+%patch10 -p1
mv composer.lock{,.disabled}
# NOTE: do not use %{__php} macro here, need unversioned php binary
%{__sed} -i -e '1s,^#!.*env php,#!/usr/bin/php,' bin/*
+cp -p %{SOURCE3} src/Composer/autoload.php
+
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
%build
+%if 0
%if %{with bootstrap}
composer='%{__php} %{SOURCE1}'
phar extract -f "%{SOURCE1}" -i vendor .
@@ -140,14 +141,14 @@ DEV_VERSION=%{!?githash:0}%{?githash:1} \
install -d build
%{__php} -r '$phar = new Phar($argv[1]); $phar->extractTo($argv[2]);' composer.phar build
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_appdir},/var/cache/composer}
-cd build
-cp -a bin src res vendor $RPM_BUILD_ROOT%{_appdir}
-ln -s %{_appdir}/bin/%{name} $RPM_BUILD_ROOT%{_bindir}/%{name}
-chmod +x $RPM_BUILD_ROOT%{_appdir}/bin/*
+install -d $RPM_BUILD_ROOT{%{_bindir},%{php_data_dir}/Composer,/var/cache/composer}
+cp -a src/Composer $RPM_BUILD_ROOT%{php_data_dir}
+cp -a res $RPM_BUILD_ROOT%{php_data_dir}/Composer
+install -p bin/composer $RPM_BUILD_ROOT%{_bindir}/%{name}
install -d $RPM_BUILD_ROOT%{bash_compdir}
cp -p %{SOURCE2} $RPM_BUILD_ROOT%{bash_compdir}/composer
@@ -159,12 +160,7 @@ rm -rf $RPM_BUILD_ROOT
%defattr(644,root,root,755)
%doc README.md CHANGELOG.md LICENSE PORTING_INFO
%attr(755,root,root) %{_bindir}/composer
-%dir %{_appdir}
-%dir %{_appdir}/bin
-%attr(755,root,root) %{_appdir}/bin/*
-%{_appdir}/res
-%{_appdir}/src
-%{_appdir}/vendor
+%{php_data_dir}/Composer
# top level cachedir, create user cache dirs here manually
%dir %attr(711,root,http) /var/cache/composer
diff --git a/autoload.patch b/autoload.patch
new file mode 100644
index 0000000..87b44f7
--- /dev/null
+++ b/autoload.patch
@@ -0,0 +1,26 @@
+--- composer-1.0.0-14.alpha11/bin/composer~ 2015-11-25 23:34:22.000000000 +0200
++++ composer-1.0.0-14.alpha11/bin/composer 2015-11-25 23:34:25.939418752 +0200
+@@ -5,7 +5,11 @@
+ echo 'Warning: Composer should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
+ }
+
+-require __DIR__.'/../src/bootstrap.php';
++if (file_exists($autoload = __DIR__ . '/../src/Composer/autoload.php')) {
++ require $autoload;
++} else {
++ require '/usr/share/php/Composer/autoload.php';
++}
+
+ use Composer\Console\Application;
+
+--- composer-1.0.0-14.alpha11/src/Composer/Json/JsonFile.php~ 2015-11-25 23:45:44.000000000 +0200
++++ composer-1.0.0-14.alpha11/src/Composer/Json/JsonFile.php 2015-11-25 23:45:49.118198863 +0200
+@@ -149,7 +149,7 @@
+ self::validateSyntax($content, $this->path);
+ }
+
+- $schemaFile = __DIR__ . '/../../../res/composer-schema.json';
++ $schemaFile = __DIR__ . '/../res/composer-schema.json';
+ $schemaData = json_decode(file_get_contents($schemaFile));
+
+ if ($schema === self::LAX_SCHEMA) {
diff --git a/autoload.php b/autoload.php
new file mode 100644
index 0000000..f86f15a
--- /dev/null
+++ b/autoload.php
@@ -0,0 +1,30 @@
+<?php
+$phpDir = defined('PHP_DATADIR') && PHP_DATADIR ? PHP_DATADIR . '/php/' : '/usr/share/php/';
+
+// Use Symfony autoloader
+if (!isset($loader) || !($loader instanceof \Symfony\Component\ClassLoader\ClassLoader)) {
+ if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) {
+ require_once $phpDir . '/Symfony/Component/ClassLoader/ClassLoader.php';
+ }
+
+ $loader = new \Symfony\Component\ClassLoader\ClassLoader();
+ $loader->register();
+}
+
+$baseDir = dirname(__DIR__);
+
+$loader->addPrefixes(array(
+ 'Composer\\' => $baseDir,
+ // Dependencies
+ 'Composer\\Semver\\' => array($phpDir),
+ 'Composer\\Spdx\\' => array($phpDir),
+ 'JsonSchema' => array($phpDir),
+ 'Seld\\JsonLint' => array($phpDir),
+ 'Seld\\PharUtils\\' => array($phpDir),
+ 'Symfony\\Component\\Console\\' => array($phpDir),
+ 'Symfony\\Component\\Finder' => array($phpDir),
+ 'Symfony\\Component\\Process\\' => array($phpDir),
+));
+$loader->register();
+
+return $loader;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/composer.git/commitdiff/78d564c277adc609b6acedefa196ce827aadd576
More information about the pld-cvs-commit
mailing list