Summary: PEAR - PHP Extension and Application Repository
Summary(pl.UTF-8): PEAR - rozszerzenie PHP i repozytorium aplikacji
Name: php-pear
-Version: 1.3.9
+Version: 1.4
Release: 1
Epoch: 4
License: Public Domain
Source12: channel-michelf.xml
Source13: channel-phpmd.xml
Source14: channel-pdepend.xml
+Source15: channel-symfony2.xml
+Source16: channel-saucelabs.xml
+Source17: channel-twig.xml
+Source18: channel-zz.xml
+Source19: channel-theseer.xml
+Source20: channel-indeyets.xml
+Source21: channel-phpdoc.xml
+Source22: channel-bartlett.xml
BuildRequires: /usr/bin/php
BuildRequires: php-pear-PEAR >= 1:1.9.0
BuildRequires: rpmbuild(macros) >= 1.570
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define __reg_provides php %{SOURCE0}
+%define __reg_provides %{__php} %{SOURCE0}
# find channel provides
%define _use_internal_dependency_generator 0
%prep
%setup -qcT
-%install
-rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{php_pear_dir}/{.registry,bin,data,tests}
+%build
+rm -rf pear
+install -d pear
# add extra channels
-%{__pear} -c pearrc config-set php_dir $RPM_BUILD_ROOT%{php_pear_dir}
+%{__pear} -c pearrc config-set php_dir pear
for xml in $(awk '/^Source[0-9]+:.+channel-.+.xml$/ {print $NF}' %{_specdir}/%{name}.spec); do
%{__pear} -c pearrc channel-add %{_sourcedir}/$xml
done
+%install
+install -d $RPM_BUILD_ROOT%{php_pear_dir}/{.registry,bin,data,tests}
+cp -a pear/.??* $RPM_BUILD_ROOT%{php_pear_dir}
+
+install -d $RPM_BUILD_ROOT%{php_data_dir}/Symfony/{Bridge,Component}
+
while read dir; do
install -d $RPM_BUILD_ROOT$dir
done <<EOF
%{php_pear_dir}/Payment
%{php_pear_dir}/QA
%{php_pear_dir}/Science
+%{php_pear_dir}/SebastianBergmann
%{php_pear_dir}/Services
%{php_pear_dir}/Structures
+%{php_pear_dir}/Symfony
+%{php_pear_dir}/Symfony/Bridge
+%{php_pear_dir}/Symfony/Component
%{php_pear_dir}/Testing
%{php_pear_dir}/Text
%{php_pear_dir}/Text/CAPTCHA
EOF
%clean
-cd $RPM_BUILD_ROOT%{php_pear_dir}
-
check_channel_dirs() {
- RPMFILE=%{name}-%{version}-%{release}.%{_target_cpu}.rpm
- TMPFILE=$(mktemp)
- find .channels .registry -type d | LC_ALL=C sort > $TMPFILE
+ local RPMFILE=%{name}-%{version}-%{release}.%{_target_cpu}.rpm
+ local installed=$(mktemp -t instXXXXXX.tmp)
+ local rpmfiles=$(mktemp -t rpmXXXXXX.tmp)
+ local rc diff=$(mktemp -t diffXXXXXX.tmp)
+
+ find $RPM_BUILD_ROOT%{php_pear_dir} | LC_ALL=C sort > $installed
+ sed -i -re "s#^$RPM_BUILD_ROOT%{php_pear_dir}/?##" $installed
+
+ rpm -qpl %{_rpmdir}/$RPMFILE | LC_ALL=C sort > $rpmfiles
+
+ # temp hack to exclude non-pear dirs
+ %{__sed} -i -e 's#%{php_data_dir}/.*##' $rpmfiles
+
+ sed -i -re "s#^%{php_pear_dir}/?##" $rpmfiles
# find finds also '.', so use option -B for diff
- if rpm -qplv %{_rpmdir}/$RPMFILE | sed -ne '/^d/s,^.*%{php_pear_dir}/\.,.,p' | LC_ALL=C sort | diff -uB $TMPFILE - ; then
- rm -rf $RPM_BUILD_ROOT
- else
- echo -e "\nNot so good, some channel directories are not included in package\n"
+ if ! diff -uB $installed $rpmfiles > $diff; then
+ cat <<-EOF
+
+ ERROR: some files/directories are not included in package:
+
+ $(%{__sed} -ne '/^-[^-]/ s#^-#%%{php_pear_dir}/#p' $diff)
+
+ EOF
+
exit 1
fi
- rm -f $TMPFILE
+ rm -rf $RPM_BUILD_ROOT
+ rm -f $installed $rpmfiles $diff
}
+
check_channel_dirs
%files
%dir %{php_pear_dir}
%{php_pear_dir}/*
+# other php dirs
+%dir %{php_data_dir}/Symfony
+%dir %{php_data_dir}/Symfony/Bridge
+%dir %{php_data_dir}/Symfony/Component
+
+# PEAR state files
%ghost %{php_pear_dir}/.depdblock
%ghost %{php_pear_dir}/.depdb
%ghost %{php_pear_dir}/.filemap
%{php_pear_dir}/.channels/.alias/phpmd.txt
%{php_pear_dir}/.channels/pear.phpmd.org.reg
%{php_pear_dir}/.registry/.channel.pear.phpmd.org
+
+%{php_pear_dir}/.channels/.alias/symfony2.txt
+%{php_pear_dir}/.channels/pear.symfony.com.reg
+%{php_pear_dir}/.registry/.channel.pear.symfony.com
+
+%{php_pear_dir}/.channels/.alias/saucelabs.txt
+%{php_pear_dir}/.channels/saucelabs.github.com_pear.reg
+%{php_pear_dir}/.registry/.channel.saucelabs.github.com_pear
+
+%{php_pear_dir}/.channels/.alias/twig.txt
+%{php_pear_dir}/.channels/pear.twig-project.org.reg
+%{php_pear_dir}/.registry/.channel.pear.twig-project.org
+
+%{php_pear_dir}/.channels/.alias/zz.txt
+%{php_pear_dir}/.channels/zustellzentrum.cweiske.de.reg
+%{php_pear_dir}/.registry/.channel.zustellzentrum.cweiske.de
+
+%{php_pear_dir}/.channels/.alias/theseer.txt
+%{php_pear_dir}/.channels/pear.netpirates.net.reg
+%{php_pear_dir}/.registry/.channel.pear.netpirates.net
+
+%{php_pear_dir}/.channels/.alias/indeyets.txt
+%{php_pear_dir}/.channels/pear.indeyets.ru.reg
+%{php_pear_dir}/.registry/.channel.pear.indeyets.ru
+
+%{php_pear_dir}/.channels/.alias/phpdoc.txt
+%{php_pear_dir}/.channels/pear.phpdoc.org.reg
+%{php_pear_dir}/.registry/.channel.pear.phpdoc.org
+
+%{php_pear_dir}/.channels/.alias/bartlett.txt
+%{php_pear_dir}/.channels/bartlett.laurent-laville.org.reg
+%{php_pear_dir}/.registry/.channel.bartlett.laurent-laville.org