php-pear/php-pear.spec
2023-07-13 10:37:10 +08:00

201 lines
7.5 KiB
RPMSpec

%global peardir %{_datadir}/pear
%global metadir %{_localstatedir}/lib/pear
%global getoptver 1.4.3
%global arctarver 1.4.14
%global structver 1.1.1
%global xmlutil 1.4.5
%global manpages 1.10.0
%global with_tests 0%{?_with_tests:1}
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
%{!?pecl_xmldir: %global pecl_xmldir %{_sharedstatedir}/php/peclxml}
Summary: PHP Extension and Application Repository framework
Name: php-pear
Version: 1.10.13
Release: 1
Epoch: 1
License: BSD-2-Clause AND BSD-3-Clause AND LGPL-3.0-or-later
URL: http://pear.php.net/package/PEAR
Source0: http://download.pear.php.net/package/PEAR-%{version}%{?pearprever}.tgz
Source1: install-pear.php
Source3: cleanup.php
Source10: pear.sh
Source11: pecl.sh
Source12: peardev.sh
Source13: macros.pear
Source21: http://pear.php.net/get/Archive_Tar-%{arctarver}.tgz
Source22: http://pear.php.net/get/Console_Getopt-%{getoptver}.tgz
Source23: http://pear.php.net/get/Structures_Graph-%{structver}.tgz
Source24: http://pear.php.net/get/XML_Util-%{xmlutil}.tgz
Source25: http://pear.php.net/get/PEAR_Manpages-%{manpages}.tgz
Patch0: pear-php82.patch
BuildArch: noarch
BuildRequires: php(language) > 5.4 php-cli php-xml %{_bindir}/gpg php-devel
%if %{with_tests}
BuildRequires: %{_bindir}/phpunit
%endif
Provides: php-pear(Console_Getopt) = %{getoptver}
Provides: php-pear(Archive_Tar) = %{arctarver}
Provides: php-pear(PEAR) = %{version}
Provides: php-pear(Structures_Graph) = %{structver}
Provides: php-pear(XML_Util) = %{xmlutil}
Provides: php-pear(PEAR_Manpages) = %{manpages}
Provides: php-composer(pear/console_getopt) = %{getoptver}
Provides: php-composer(pear/archive_tar) = %{arctarver}
Provides: php-composer(pear/pear-core-minimal) = %{version}
Provides: php-composer(pear/structures_graph) = %{structver}
Provides: php-composer(pear/xml_util) = %{xmlutil}
Requires: php(language) > 5.4 php-cli php-ftp php-pcre php-posix php-tokenizer php-xml
Requires: php-zlib php-bz2 httpd-filesystem
%description
PEAR is a framework and distribution system for reusable PHP
components. This package contains the basic PEAR components.
%prep
%setup -cT
for archive in %{SOURCE0} %{SOURCE21} %{SOURCE22} %{SOURCE23} %{SOURCE24} %{SOURCE25}
do
tar xzf $archive --strip-components 1 || tar xzf $archive --strip-path 1
file=${archive##*/}
[ -f LICENSE ] && mv LICENSE LICENSE-${file%%-*}
[ -f README ] && mv README README-${file%%-*}
tar xzf $archive 'package*xml'
[ -f package2.xml ] && mv package2.xml ${file%%-*}.xml \
|| mv package.xml ${file%%-*}.xml
done
cp %{SOURCE1} .
sed -e 's:@BINDIR@:%{_bindir}:' \
-e 's:@LIBDIR@:%{_localstatedir}/lib:' \
%{SOURCE13} > macros.pear
%build
# This is an empty build section.
%install
export PHP_PEAR_SYSCONF_DIR=%{_sysconfdir}
export PHP_PEAR_SIG_KEYDIR=%{_sysconfdir}/pearkeys
export PHP_PEAR_SIG_BIN=%{_bindir}/gpg
export PHP_PEAR_INSTALL_DIR=%{peardir}
export PHP_PEAR_CACHE_DIR=${PWD}%{_localstatedir}/cache/php-pear
export PHP_PEAR_TEMP_DIR=/var/tmp
install -d %{buildroot}%{peardir} \
%{buildroot}%{_localstatedir}/cache/php-pear \
%{buildroot}%{_localstatedir}/www/html \
%{buildroot}%{_localstatedir}/lib/pear/pkgxml \
%{buildroot}%{_sysconfdir}/pear
export INSTALL_ROOT=%{buildroot}
%{_bindir}/php --version
%{_bindir}/php -dmemory_limit=64M -dshort_open_tag=0 -dsafe_mode=0 \
-d 'error_reporting=E_ALL&~E_DEPRECATED' -ddetect_unicode=0 \
install-pear.php --force \
--dir %{peardir} \
--cache %{_localstatedir}/cache/php-pear \
--config %{_sysconfdir}/pear \
--bin %{_bindir} \
--www %{_localstatedir}/www/html \
--doc %{_docdir}/pear \
--test %{_datadir}/tests/pear \
--data %{_datadir}/pear-data \
--metadata %{metadir} \
--man %{_mandir} \
%{SOURCE0} %{SOURCE21} %{SOURCE22} %{SOURCE23} %{SOURCE24} %{SOURCE25}
install -m 755 %{SOURCE10} %{buildroot}%{_bindir}/pear
install -m 755 %{SOURCE11} %{buildroot}%{_bindir}/pecl
install -m 755 %{SOURCE12} %{buildroot}%{_bindir}/peardev
%{_bindir}/php %{SOURCE3} %{buildroot}%{_sysconfdir}/pear.conf %{_datadir}
%{_bindir}/php -r "print_r(unserialize(substr(file_get_contents('%{buildroot}%{_sysconfdir}/pear.conf'),17)));"
install -m 644 -D macros.pear \
%{buildroot}%{macrosdir}/macros.pear
pushd %{buildroot}%{peardir}
patch -p1 <%{PATCH0}
popd
rm -rf %{buildroot}/.depdb* %{buildroot}/.lock %{buildroot}/.channels %{buildroot}/.filemap
install -m 644 *.xml %{buildroot}%{_localstatedir}/lib/pear/pkgxml
%check
grep %{buildroot} %{buildroot}%{_sysconfdir}/pear.conf && exit 1
grep %{_libdir} %{buildroot}%{_sysconfdir}/pear.conf && exit 1
grep '"/tmp"' %{buildroot}%{_sysconfdir}/pear.conf && exit 1
grep /usr/local %{buildroot}%{_sysconfdir}/pear.conf && exit 1
grep -rl %{buildroot} %{buildroot} && exit 1
%if %{with_tests}
cp /etc/php.ini .
echo "include_path=.:%{buildroot}%{peardir}:/usr/share/php" >>php.ini
export PHPRC=$PWD/php.ini
LOG=$PWD/rpmlog
ret=0
cd %{buildroot}%{_datadir}/tests/pear/Structures_Graph/tests
phpunit \
AllTests || ret=1
cd %{buildroot}%{_datadir}/tests/pear/XML_Util/tests
phpunit \
--bootstrap=/usr/share/pear/XML/Util/autoload.php \
--test-suffix .php . || ret=1
cd %{buildroot}%{_datadir}/tests/pear/Console_Getopt/tests
%{_bindir}/php \
%{buildroot}/usr/share/pear/pearcmd.php \
run-tests \
| tee -a $LOG
grep "FAILED TESTS" $LOG && ret=1
exit $ret
%else
echo 'Test suite disabled (missing "--with tests" option)'
%endif
%transfiletriggerin -- %{pecl_xmldir}
while read file; do
%{_bindir}/pecl install --nodeps --soft --force --register-only --nobuild "$file" >/dev/null || :
done
%transfiletriggerun -- %{pecl_xmldir}
%{_bindir}/php -r '
while ($file=fgets(STDIN)) {
$file = trim($file);
$xml = simplexml_load_file($file);
if (isset($xml->channel) && isset($xml->name)) {
printf("%s/%s\n", $xml->channel, $xml->name);
} else {
fputs(STDERR, "Bad pecl package file ($file)\n");
}
}' | while read name; do
%{_bindir}/pecl uninstall --nodeps --ignore-errors --register-only "$name" >/dev/null || :
done
%postun
if [ $1 -eq 0 -a -d %{metadir}/.registry ] ; then
rm -rf %{metadir}/.registry
fi
%files
%{peardir}
%dir %{metadir}
%{metadir}/.channels
%verify(not mtime size md5) %{metadir}/.depdb
%verify(not mtime) %{metadir}/.depdblock
%verify(not mtime size md5) %{metadir}/.filemap
%verify(not mtime) %{metadir}/.lock
%{metadir}/.registry
%{metadir}/pkgxml
%{_bindir}/*
%config(noreplace) %{_sysconfdir}/pear.conf
%{macrosdir}/macros.pear
%dir %{_localstatedir}/cache/php-pear
%dir %{_sysconfdir}/pear
%license LICENSE*
%doc README*
%dir %{_docdir}/pear
%doc %{_docdir}/pear/*
%{_datadir}/tests/pear
%{_datadir}/pear-data
%{_mandir}/man1/pear.1*
%{_mandir}/man1/pecl.1*
%{_mandir}/man1/peardev.1*
%{_mandir}/man5/pear.conf.5*
%changelog
* Thu Jul 13 2023 liyanan <thistleslyn@163.com> - 1:1.10.13-1
- update to 1.10.13
* Tue Sep 7 2021 zhengyaohui <zhengyaohui1@huawei.com> - 1.10.12-1
- package init