]> git.pld-linux.org Git - packages/php-pear-PEAR.git/blobdiff - php-pear-PEAR.spec
- updated to 1.6.2
[packages/php-pear-PEAR.git] / php-pear-PEAR.spec
index 66c15d7d0362e77970b6a900f81f9b5ba5566214..6e762b8f279ffa3b6f4b94975a84257f244b3392 100644 (file)
@@ -1,31 +1,73 @@
-%include       /usr/lib/rpm/macros.php
+# TODO
+# - bootstrap fails if /usr/share/pear/.lock doesn't exist (just create it as 644)
+# - should understand as php extension (php-pear-Auth):
+#   pear/Auth can optionally use package "pecl/vpopmail" (version >= 0.2)
+#   pear/Auth can optionally use package "pecl/kadm5" (version >= 0.2.3)
+#
+# Conditional build:
+%bcond_with    FHS                     # writable files in /var/lib/pear. NEEDS LOTS OF PATCHING AND CONVINCING UPSTREAM
+#
+# NOTE
+# - macros needed to build this package are in SOURCES/php-pear-build-macros@DEVEL
 %define                _class          PEAR
-%define                _status         beta
+%define                _status         stable
 %define                _pearname       %{_class}
-
-Summary:       %{_pearname} - main PHP PEAR class
-Summary(pl):   %{_pearname} - podstawowa klasa dla PHP PEAR
+#
+%include       /usr/lib/rpm/macros.php
+Summary:       PEAR Base System
+Summary(pl.UTF-8):     Podstawowy system PEAR
 Name:          php-pear-%{_pearname}
-Version:       1.4.0
-%define                _pre b1
-Release:       0.%{_pre}.1
+Version:       1.6.2
+Release:       1
 Epoch:         1
 License:       PHP 3.0
 Group:         Development/Languages/PHP
-Source0:       http://pear.php.net/get/%{_pearname}-%{version}%{_pre}.tgz
-# Source0-md5: fac6e8d80991ae3a63cb6a616958e833
-Patch0:                %{name}-memory.patch
-URL:           http://pear.php.net/package/PEAR/
-BuildRequires: rpm-php-pearprov >= 4.0.2-98
-BuildRequires: sed >= 4.0.0
-Requires:      php-pear
-Requires:      php-cli
+Source0:       http://pear.php.net/get/%{_pearname}-%{version}.tgz
+# Source0-md5: 8658f584d0ba2648b795fe8b1d8998c2
+Source1:       http://pear.php.net/get/Console_Getopt-1.2.3.tgz
+# Source1-md5: d7618327f9302a7191893768982de823
+Source2:       http://pear.php.net/get/Structures_Graph-1.0.2.tgz
+# Source2-md5: 2664e2d024048f982e12fad4d1bfbb87
+Patch0:                %{name}-sysconfdir.patch
+Patch1:                %{name}-strict.patch
+Patch5:                %{name}-FHS.patch
+URL:           http://pear.php.net/package/PEAR
+BuildRequires: /usr/bin/php
+BuildRequires: php(pcre)
+BuildRequires: php(xml)
+BuildRequires: rpm-php-pearprov >= 4.4.2-30.1
+BuildRequires: rpmbuild(macros) >= 1.375
+Requires:      %{name}-core = %{epoch}:%{version}-%{release}
+Requires:      /usr/bin/php
+Requires:      php(pcre)
+Requires:      php(xml)
+Requires:      php(zlib)
+Requires:      php-pear >= 4:1.0-14
+Requires:      php-pear-Archive_Tar >= 1.1
+Requires:      php-pear-Console_Getopt >= 1.2
+Requires:      php-pear-Structures_Graph >= 1.0.2
 Obsoletes:     php-pear-PEAR-Command
 Obsoletes:     php-pear-PEAR-Frontend-CLI
 Obsoletes:     php-pear-PEAR-OS
+#Suggests:     php-pear-Net_FTP
+Conflicts:     php-pear-Archive_Tar = 1.3.0
+Conflicts:     php-pear-PEAR_Frontend_Gtk < 0.4.0
+Conflicts:     php-pear-PEAR_Frontend_Web < 0.5.0
 BuildArch:     noarch
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+# PEAR_Command_Packaging is separate package
+%define                _noautoreq      'pear(PEAR/FTP.php)' 'pear(Net/FTP.php)' 'pear(XML/RPC.*)' 'pear(PEAR/Command/Packaging.php)'
+%if %{with FHS}
+%define                _statedir               /var/lib/pear
+%define                _registrydir    %{_statedir}/registry
+%define                _channelsdir    %{_statedir}/.channels
+%else
+%define                _statedir               %{php_pear_dir}
+%define                _registrydir    %{_statedir}/.registry
+%define                _channelsdir    %{_statedir}/.channels
+%endif
+
 %description
 The PEAR package contains:
 - the PEAR installer, for creating, distributing and installing
@@ -41,60 +83,167 @@ The PEAR package contains:
 
 In PEAR status of this package is: %{_status}.
 
-%description -l pl
+%description -l pl.UTF-8
 Pakiet PEAR zawiara:
-- PEAR installer do tworzenia, dystrybucji i instalowania pakietów,
-- mechanizm PEAR_Exception (w fazie alpha) do obs³ugi b³êdów PHP5,
-- zaawansowany mechanizm PEAR_ErrorStack (w fazie beta) do obs³ugi
-  b³êdów,
-- mechanizm obs³ugi b³êdów PEAR_Error,
-- klasê OS_Guess do pozyskiwania informacji na temat systemu
+- PEAR installer do tworzenia, dystrybucji i instalowania pakietów,
+- mechanizm PEAR_Exception (w fazie alpha) do obsługi błędów PHP5,
+- zaawansowany mechanizm PEAR_ErrorStack (w fazie beta) do obsługi
+  błędów,
+- mechanizm obsługi błędów PEAR_Error,
+- klasę OS_Guess do pozyskiwania informacji na temat systemu
   operacyjnego,
-- klasê System do szybkiej obs³ugi typowych operacji na plikach i
+- klasę System do szybkiej obsługi typowych operacji na plikach i
   katalogach,
-- podstawow± klasy PEAR.
+- podstawową klasy PEAR.
 
 Ta klasa ma w PEAR status: %{_status}.
 
+%package core
+Summary:       PEAR core classes
+Summary(pl.UTF-8):     Główne klasy PEAR-a
+Group:         Development/Languages/PHP
+
+%description core
+This package includes PEAR core classes:
+- PEAR class and PEAR_Error
+- System
+- OS_Guess
+and classes for PHP 5:
+- PEAR_ErrorStack and PEAR_Exception
+
+%description core -l pl.UTF-8
+Ten pakiet zawiera główne klasy PEAR-a:
+- klasę PEAR i PEAR_Error
+- System
+- OS_Gueass
+oraz klasy dla PHP 5:
+- PEAR_ErrorStack i PEAR_Exception
+
 %prep
-%setup -q -c -n %{name}-%{version}%{_pre}
-%patch0 -p2
+%define __build_dir %{_builddir}/%{_class}-%{version}%{?_rc}
+%define        __php_include_path %{__build_dir}/%{_class}-%{version}%{?_rc}:%{__build_dir}/%(basename %{SOURCE1} .tgz):%{__build_dir}/%(basename %{SOURCE2} .tgz)
+%define __pear php -dmemory_limit=-1 -doutput_buffering=1 -dinclude_path="%__php_include_path" %{__build_dir}/%{_class}-%{version}%{?_rc}/scripts/pearcmd.php
+
+%setup -q -c -n %{_pearname}-%{version} -a1 -a2
+%pear_package_setup -z -D -n %{_pearname}-%{version}%{?_rc}
+
+%patch0 -p1
+%patch1 -p1
+%{?with_FHS:%patch5 -p1}
+
+find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v
 
 %build
-# put proper paths
-sed -i -e 's,@php_dir@,%{php_pear_dir},g' -e 's,@php_bin@,%{_bindir}/php,g' %{_pearname}-%{version}%{_pre}/scripts/*
-# fix include path
-sed -i -e 's,PEAR/PackageFile/Generator/v2/rw.php,PEAR/PackageFile/v2/rw.php,g' %{_pearname}-%{version}%{_pre}/PEAR/PackageFile/v2.php
+D=$(pwd)
+pearcmd() {
+       %{__pear} -c ${D}/pearrc "$@"
+}
+pearcmd config-set doc_dir %{_docdir} || exit
+pearcmd config-set data_dir %{php_pear_dir}/data || exit
+pearcmd config-set php_dir %{php_pear_dir} || exit
+pearcmd config-set test_dir %{php_pear_dir}/tests || exit
+pearcmd config-set sig_bin %{_bindir}/gpg || exit
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{php_pear_dir}/{%{_class}/{ChannelFile,Command,Downloader,Frontend,Installer/Role,PackageFile/{Generator,Parser,v2},Task,Validator},OS},%{_bindir}}
-
-install %{_pearname}-%{version}%{_pre}/*.php $RPM_BUILD_ROOT%{php_pear_dir}
-install %{_pearname}-%{version}%{_pre}/*.dtd $RPM_BUILD_ROOT%{php_pear_dir}
-install %{_pearname}-%{version}%{_pre}/OS/*.php $RPM_BUILD_ROOT%{php_pear_dir}/OS
-install %{_pearname}-%{version}%{_pre}/%{_class}/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}
-install %{_pearname}-%{version}%{_pre}/%{_class}/ChannelFile/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/ChannelFile
-install %{_pearname}-%{version}%{_pre}/%{_class}/Command/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/Command
-install %{_pearname}-%{version}%{_pre}/%{_class}/Downloader/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/Downloader
-install %{_pearname}-%{version}%{_pre}/%{_class}/Frontend/CLI.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/Frontend
-install %{_pearname}-%{version}%{_pre}/%{_class}/Installer/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/Installer
-install %{_pearname}-%{version}%{_pre}/%{_class}/Installer/Role/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/Installer/Role
-install %{_pearname}-%{version}%{_pre}/%{_class}/PackageFile/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/PackageFile
-install %{_pearname}-%{version}%{_pre}/%{_class}/PackageFile/Generator/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/PackageFile/Generator
-install %{_pearname}-%{version}%{_pre}/%{_class}/PackageFile/Parser/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/PackageFile/Parser
-install %{_pearname}-%{version}%{_pre}/%{_class}/PackageFile/v2/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/PackageFile/v2
-install %{_pearname}-%{version}%{_pre}/%{_class}/Task/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/Task
-install %{_pearname}-%{version}%{_pre}/%{_class}/Validator/*.php $RPM_BUILD_ROOT%{php_pear_dir}/%{_class}/Validator
-install %{_pearname}-%{version}%{_pre}/scripts/pearcmd.php $RPM_BUILD_ROOT%{php_pear_dir}
-install %{_pearname}-%{version}%{_pre}/scripts/peclcmd.php $RPM_BUILD_ROOT%{php_pear_dir}
-install %{_pearname}-%{version}%{_pre}/scripts/pear.sh $RPM_BUILD_ROOT%{_bindir}/pear
-install %{_pearname}-%{version}%{_pre}/scripts/pecl.sh $RPM_BUILD_ROOT%{_bindir}/pecl
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{php_pear_dir},%{_bindir}}
+%pear_package_install
+cp pearrc $RPM_BUILD_ROOT%{_sysconfdir}/pear.conf
+
+install -d $RPM_BUILD_ROOT%{_channelsdir}/.alias
+install -d $RPM_BUILD_ROOT%{_registrydir}/{.channel.{__uri,pecl.php.net},channels/.alias}
+touch $RPM_BUILD_ROOT%{_statedir}/.depdb{,lock}
+touch $RPM_BUILD_ROOT%{_channelsdir}/{__uri,{pear,pecl}.php.net}.reg
+touch $RPM_BUILD_ROOT%{_channelsdir}/.alias/{pear,pecl}.txt
+touch $RPM_BUILD_ROOT%{php_pear_dir}/.filemap
+touch $RPM_BUILD_ROOT%{php_pear_dir}/.lock
+
+# -C and -q options were for php-cgi, in php-cli they're enabled by default.
+%define php_exec exec /usr/bin/php -dinclude_path=%{php_pear_dir} -doutput_buffering=1
+cat > $RPM_BUILD_ROOT%{_bindir}/pear <<'EOF'
+#!/bin/sh
+%php_exec -dopen_basedir="" -dmemory_limit=24M %{php_pear_dir}/pearcmd.php "$@"
+EOF
+cat > $RPM_BUILD_ROOT%{_bindir}/peardev <<'EOF'
+#!/bin/sh
+%php_exec -dopen_basedir="" -dmemory_limit=-1 %{php_pear_dir}/pearcmd.php "$@"
+EOF
+# This -dextension=pcre.so works with php-5.1, and patched php-cli >= 4:5.0.5-18.1, php4-cli >= 3:4.4.1-6.1
+# -n is there because devs on #pear said this avoids locking problems when replacing in use libraries.
+cat > $RPM_BUILD_ROOT%{_bindir}/pecl <<'EOF'
+#!/bin/sh
+%php_exec -dmemory_limit=24M -dsafe_mode=0 -n -dextension=pcre.so -dextension=xml.so %{php_pear_dir}/peclcmd.php "$@"
+EOF
+# for rpm to find interpreter
+chmod +x $RPM_BUILD_ROOT%{_bindir}/*
+
+%post
+%if %{with FHS}
+if [ ! -L %{php_pear_dir}/.registry ]; then
+       if [ -d %{php_pear_dir}/.registry ]; then
+               install -d %{_registrydir}
+               mv -f %{php_pear_dir}/.registry/*.reg %{_registrydir}
+               rmdir %{php_pear_dir}/.registry/.channel.* 2>/dev/null
+               rmdir %{php_pear_dir}/.registry/* 2>/dev/null
+               rmdir %{php_pear_dir}/.registry 2>/dev/null || mv -v %{php_pear_dir}/.registry{,.rpmsave}
+       fi
+       ln -s %{_registrydir} %{php_pear_dir}/.registry
+fi
+%endif
+
+if [ ! -f %{php_pear_dir}/.lock ]; then
+       umask 2
+       %{_bindir}/pear list > /dev/null
+fi
+
+if [ -f %{_docdir}/%{name}-%{version}/optional-packages.txt ]; then
+       cat %{_docdir}/%{name}-%{version}/optional-packages.txt
+fi
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
+%doc install.log optional-packages.txt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pear.conf
 %attr(755,root,root) %{_bindir}/*
-%{php_pear_dir}/*
+%{php_pear_dir}/.registry/pear.reg
+%{php_pear_dir}/pearcmd.php
+%{php_pear_dir}/peclcmd.php
+%{php_pear_dir}/PEAR/[!CE]*
+%{php_pear_dir}/PEAR/ChannelFile*
+%{php_pear_dir}/PEAR/Command*
+%{php_pear_dir}/PEAR/Config.php
+%{php_pear_dir}/PEAR/Common.php
+
+%{php_pear_dir}/data/*
+
+%if %{with FHS}
+%dir %{_statedir}
+%dir %{_registrydir}
+%ghost %dir %{php_pear_dir}/.registry
+%endif
+%dir %{_channelsdir}
+%dir %{_channelsdir}/.alias
+
+%ghost %{_channelsdir}/.alias/pear.txt
+%ghost %{_channelsdir}/.alias/pecl.txt
+%ghost %{_channelsdir}/pear.php.net.reg
+%ghost %{_channelsdir}/pecl.php.net.reg
+%ghost %{_channelsdir}/__uri.reg
+%ghost %{_registrydir}/.channel.__uri
+%ghost %{_registrydir}/.channel.pecl.php.net
+%ghost %{_statedir}/.depdblock
+%ghost %{_statedir}/.depdb
+%ghost %{php_pear_dir}/.filemap
+%ghost %{php_pear_dir}/.lock
+
+%files core
+%defattr(644,root,root,755)
+%{php_pear_dir}/PEAR.php
+%{php_pear_dir}/System.php
+%{php_pear_dir}/OS
+%dir %{php_pear_dir}/PEAR
+%{php_pear_dir}/PEAR/ErrorStack.php
+%{php_pear_dir}/PEAR/Exception.php
This page took 0.0322 seconds and 4 git commands to generate.