X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=composer.spec;h=3324d98fb75096a721b567158aee26956e748fdf;hb=7d0581e3987f0fbaeb98d639c4357a59a9ee0224;hp=ba430b2c172b13832be945fc1de5045ac86c8d59;hpb=d9257928cdebaf62810241cd40fbe8993ad33210;p=packages%2Fcomposer.git diff --git a/composer.spec b/composer.spec index ba430b2..3324d98 100644 --- a/composer.spec +++ b/composer.spec @@ -1,48 +1,34 @@ -# NOTE -# - release tarballs: http://getcomposer.org/download/ - +# # Conditional build: -%bcond_with bootstrap # build boostrap +%bcond_with tests # build with tests %define php_min_version 5.3.4 -%define subver alpha8 -%define githash ac497fe -%define rel 3 %include /usr/lib/rpm/macros.php Summary: Dependency Manager for PHP Name: composer -Version: 1.0.0 -Release: 0.%{subver}.%{rel}.%{githash} +Version: 1.5.4 +Release: 1 License: MIT Group: Development/Languages/PHP -#Source0: https://github.com/composer/composer/archive/%{version}-%{subver}/%{name}-%{version}-%{subver}.tar.gz -Source0: https://github.com/composer/composer/archive/%{githash}/%{name}-%{version}-%{subver}-%{githash}.tar.gz -# Source0-md5: 124fe0335a9f61f1ab149d3f8e0616b4 -%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: a8e55e0033014a088329d7c20fad65bc 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 +%if %{with tests} +# instead of filling duplicate deps for running tests, +# update composer version that have neccessary runtime dependencies +BuildRequires: composer >= 1.4.0 +BuildRequires: git-core +BuildRequires: phpab +BuildRequires: phpunit >= 4.8 %endif Requires: php(core) >= %{php_min_version} Requires: php(ctype) @@ -51,28 +37,34 @@ Requires: php(filter) Requires: php(hash) Requires: php(json) Requires: php(openssl) +Requires: php(pcntl) Requires: php(pcre) Requires: php(phar) Requires: php(posix) Requires: php(simplexml) Requires: php(spl) Requires: php(zip) -%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(zlib) +Requires: php-composer-ca-bundle >= 1.0.2 +Requires: php-composer-semver >= 1.0.0 +Requires: php-composer-spdx-licenses >= 1.0.0 +Requires: php-justinrainbow-json-schema >= 3.0 +Requires: php-psr-Log >= 1.0 +Requires: php-seld-cli-prompt >= 1.0.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-Finder >= 2.7.7 +Requires: php-symfony2-Process >= 2.7.7 Suggests: bash-completion-%{name} Suggests: git-core Suggests: mercurial 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. @@ -93,43 +85,39 @@ 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 -COMPOSER_VERSION=%{version}%{?subver:-%{subver}} \ -%{__php} -d phar.readonly=0 ./bin/compile +# AutoloadGenerator needs this runtime +mv LICENSE res -# sanity check -%{__php} composer.phar --version +# move to Composer dir, this will simplify testing +mv res src/Composer +ln -s src/Composer/res -install -d build -%{__php} -r '$phar = new Phar($argv[1]); $phar->extractTo($argv[2]);' composer.phar build +# cleanup backups after patching +find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f + +%build +%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} -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} +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 @@ -139,14 +127,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)