X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=composer.spec;h=4e0df57f101dec68da15c402a86dbad2294fdb03;hb=f27cdb61b3d5e2319406c99bce0d5335481ea2d4;hp=0a49872e0d3db8969e4cde8463cf697829f76afa;hpb=084e990bb6940399f2f7e7716916f3cdf6c8f032;p=packages%2Fcomposer.git diff --git a/composer.spec b/composer.spec index 0a49872..4e0df57 100644 --- a/composer.spec +++ b/composer.spec @@ -1,71 +1,81 @@ -# NOTE -# - release tarballs: http://getcomposer.org/download/ - +# # Conditional build: -%bcond_with bootstrap # build boostrap +%bcond_with tests # build with tests +%bcond_without online # online self-test + +%if 0%{?_pld_builder:1} +%undefine with_online +%endif %define php_min_version 5.3.4 -%define subver alpha8 -%define rel 1 -%include /usr/lib/rpm/macros.php Summary: Dependency Manager for PHP Name: composer -Version: 1.0.0 -Release: 0.%{subver}.%{rel} +Version: 1.10.11 +Release: 1 License: MIT Group: Development/Languages/PHP -Source0: https://github.com/composer/composer/archive/%{version}-%{subver}/%{name}-%{version}-%{subver}.tar.gz -# Source0-md5: a304aecf48b8406730d572e204afd6db -%if %{with bootstrap} -Source1: http://getcomposer.org/download/%{version}-%{subver}/%{name}.phar -# Source1-md5: df1001975035f07d09307bf1f1e62584 -%endif +Source0: https://github.com/composer/composer/archive/%{version}/%{name}-%{version}.tar.gz +# Source0-md5: 155e49f0c0587ecb6f1a5d9d6e10dac7 Source2: https://raw.githubusercontent.com/iArren/%{name}-bash-completion/86a8129/composer # Source2-md5: cdeebf0a0da1fd07d0fd886d0461642e -Patch0: nogit.patch -Patch1: no-vendors.patch -Patch2: autoload-config.patch -URL: http://www.getcomposer.org/ -BuildRequires: /usr/bin/phar -BuildRequires: /usr/bin/php -BuildRequires: php(ctype) -BuildRequires: php(hash) -BuildRequires: php(json) -BuildRequires: php(openssl) -BuildRequires: php(phar) -BuildRequires: php(zip) -BuildRequires: php(zlib) +Source3: autoload.php +Patch0: autoload.patch +Patch1: update-memory-limit.patch +Patch2: svn-ignore-externals.patch +URL: https://getcomposer.org/ +BuildRequires: php-devel BuildRequires: rpm-php-pearprov >= 4.4.2-11 BuildRequires: rpmbuild(macros) >= 1.673 -%if %{without bootstrap} -BuildRequires: %{name} -BuildRequires: php-symfony2-Console >= 2.3 -BuildRequires: php-symfony2-Finder >= 2.2 +# instead of filling duplicate deps for running tests, +# update composer version that have neccessary runtime dependencies +BuildRequires: composer >= 1.7.0 +%if %{with tests} +BuildRequires: git-core +BuildRequires: phpab +BuildRequires: phpunit >= 4.8 %endif Requires: php(core) >= %{php_min_version} +Requires: php(ctype) +Requires: php(date) +Requires: php(filter) Requires: php(hash) +Requires: php(json) +Requires: php(openssl) +Requires: php(pcntl) +Requires: php(pcre) Requires: php(phar) -%if %{without bootstrap} -Requires: php-justinrainbow-json-schema >= 1.1.0 -Requires: php-seld-jsonlint >= 1.1.2 -Requires: php-symfony2-Console >= 2.3 -Requires: php-symfony2-Finder >= 2.2 -Requires: php-symfony2-Process >= 2.1 -%endif +Requires: php(posix) +Requires: php(simplexml) +Requires: php(spl) +Requires: php(zip) +Requires: php(zlib) +Requires: php-composer-ca-bundle >= 1.0.2 +Requires: php-composer-semver >= 1.0.0 +Requires: php-composer-spdx-licenses >= 1.2 +Requires: php-composer-xdebug-handler >= 1.1 +Requires: php-justinrainbow-json-schema >= 3.0 +Requires: php-psr-log >= 1.0 +Requires: php-seld-jsonlint >= 1.4 +Requires: php-seld-phar-utils >= 1.0.0 +Requires: php-symfony2-ClassLoader >= 2.7.7 +Requires: php-symfony2-Console >= 2.7.7 +Requires: php-symfony2-Filesystem >= 2.7.7 +Requires: php-symfony2-Finder >= 2.7.7 +Requires: php-symfony2-Process >= 2.7.7 +Requires: unzip +Suggests: bash-completion-%{name} Suggests: git-core Suggests: mercurial -Suggests: php(openssl) -Suggests: php(zip) Suggests: subversion +Conflicts: satis < 1.0.0-1.alpha1.193 BuildArch: noarch BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _appdir %{_datadir}/%{name} - %description -Composer is a tool for dependency management in PHP. It allows you to -declare the dependent libraries your project needs and it will install -them in your project for you. +Composer is a tool for dependency management in PHP. + +Composer helps you declare, manage and install dependencies of PHP +projects, ensuring you have the right stack everywhere. %package -n bash-completion-%{name} Summary: Bash completion for Composer @@ -81,42 +91,44 @@ Bash completion for Composer package and dependency manager. Pakiet ten dostarcza bashowe uzupełnianie nazw dla Composera. %prep -%setup -qc -n %{name}-%{version}-%{release} -mv composer-*/* . +%setup -q %patch0 -p1 -%{!?with_bootstrap:%patch1 -p1} +%patch1 -p1 +%patch2 -p1 mv composer.lock{,.disabled} -%{__sed} -i -e '1s,^#!.*env php,#!%{__php},' bin/* +# NOTE: do not use %{__php} macro here, need unversioned php binary +%{__sed} -i -e '1s,^#!.*env php,#!/usr/bin/php,' bin/* -%build -%if %{with bootstrap} -composer='%{__php} %{SOURCE1}' -phar extract -f "%{SOURCE1}" -i vendor . -%else -composer=composer -%endif -if [ ! -d vendor ]; then - COMPOSER_HOME=${PWD:=$(pwd)} \ - $composer dump-autoload -v - %{__patch} -p1 < %{PATCH2} -fi +cp -p %{SOURCE3} src/Composer/autoload.php + +# AutoloadGenerator needs this runtime +mv LICENSE res -COMPOSER_VERSION=%{version}%{?subver:-%{subver}} \ -%{__php} -d phar.readonly=0 ./bin/compile +# move to Composer dir, this will simplify testing +mv res src/Composer +ln -s src/Composer/res -# sanity check -%{__php} composer.phar --version +# cleanup backups after patching +find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f -install -d build -%{__php} -r '$phar = new Phar($argv[1]); $phar->extractTo($argv[2]);' composer.phar build +%build +%if %{with online} +# always run self-test +%{__php} ./bin/composer diagnose +%endif + +%if %{with tests} +phpab -n -o src/bootstrap.php -e '*/Fixtures/*' src/ tests/ +echo "require 'src/Composer/autoload.php';" >> src/bootstrap.php +phpunit +%endif %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_bindir},%{_appdir}} -cd build -cp -a bin src res vendor $RPM_BUILD_ROOT%{_appdir} -ln -s %{_appdir}/bin/%{name} $RPM_BUILD_ROOT%{_bindir}/%{name} +install -d $RPM_BUILD_ROOT{%{_bindir},%{php_data_dir}/Composer,/var/cache/composer} +cp -a src/Composer $RPM_BUILD_ROOT%{php_data_dir} +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 @@ -126,14 +138,13 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc README.md CHANGELOG.md LICENSE PORTING_INFO +%doc README.md CHANGELOG.md PORTING_INFO +%doc src/Composer/res/LICENSE %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 %files -n bash-completion-%{name} %defattr(644,root,root,755)