]> git.pld-linux.org Git - packages/composer.git/commitdiff
simplify install, install to php data dir
authorElan Ruusamäe <glen@delfi.ee>
Wed, 25 Nov 2015 22:05:48 +0000 (00:05 +0200)
committerElan Ruusamäe <glen@delfi.ee>
Wed, 25 Nov 2015 22:06:55 +0000 (00:06 +0200)
autoload.patch [new file with mode: 0644]
autoload.php [new file with mode: 0644]
composer.spec

diff --git a/autoload.patch b/autoload.patch
new file mode 100644 (file)
index 0000000..87b44f7
--- /dev/null
@@ -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 (file)
index 0000000..f86f15a
--- /dev/null
@@ -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;
index fbd8738df4778669155cdb3f7d8591d82c0fccb6..4f1fba5db2dbec83467269f88251b810fa72cf7d 100644 (file)
@@ -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
This page took 0.043059 seconds and 4 git commands to generate.