Hello!

I've got some requests regarding the PHP package in cooker.

a) The php-devel package contains the PEAR repository.  However, I don't
think "php-devel" is a good name for this kind of package.  Would it be
possible to move the PEAR files from php-devel to, let's say, php-pear?

b) The PEAR files are located in /usr/lib/php.  IMO it would be nicer if
those files were in /usr/lib/php/pear.

c) The /etc/php.ini file sets include_path to /usr/lib/php.  I cannot
include/require files from /usr/lib/php with a simple "include
'file.php'".  When I change the include_path line to /usr/lib/php/ (note
the trailing slash), I'm able to do so.  Could this please be changed?

d) For whatever reason, I'm unable to build extension modules for PHP.
I tried to compile a php-recode package, basically doing:

%{phpsource}/buildext recode recode.c
....
install -m 755 -s recode.so $RPM_BUILD_ROOT%{phpdir}/extensions/

When I start PHP, it always complains that iconv.so is not a valid php
library.  I really don't know what I did do wrong.  The error message I
get is:

PHP Warning:  Invalid library (maybe not a PHP library) 'recode.so'  in
Unknown on line 0

I'll attach the spec used for building the RPM to this message.

e) Would it be possible to compile/ship PHP with --with-recode?

I can provide SRPMS/RPMS for all of this, if required.

Alexander Skwar
-- 
How to quote:   http://learn.to/quote (german) http://quote.6x.to (english)
Homepage:       http://www.iso-top.de      |     Jabber: [EMAIL PROTECTED]
   iso-top.de - Die g�nstige Art an Linux Distributionen zu kommen
                       Uptime: 1 day 23 hours 0 minutes
%define phpversion 4.1.2
%define phprelease 2mdk
%define phpdir %{_libdir}/php 
%define phpsource /usr/src/php-devel
%define release 1mdk

%define modname recode
%define dirname %{modname}
%define soname  %{modname}.so

Summary:        lib%{modname} module for PHP4
Name:           php-%{modname}
Version:        %{phpversion}
Release:        %{release}
Group:          System/Servers
URL:            http://www.php.net
License:        PHP License
BuildRoot:      %{_tmppath}/%{name}-root
Prereq:         php-common = %{phpversion}, perl
BuildRequires:  php-devel = %{phpversion}

%description
The %{name} package is a dynamic shared object (DSO) that adds %{modname}
support to PHP4. PHP4 is an HTML-embedded scripting language. If you need
%{modname} support for PHP4 applications, you will need to install this package in
addition to the php package.

%build
[ -e ./%{dirname} ] && rm -fr ./%{dirname}
cp -dpR %{phpsource}/extensions/%{dirname} .
cd %{dirname}
#ln -vs php_xmlrpc.h xmlrpc.h

#%{phpsource}/buildext xmlrpc xmlrpc-epi-php.c "-lexpat" "-DCOMPILE_DL_XML 
-DHAVE_LIBEXPAT -DHAVE_DLFCN_H" 
#%{phpsource}/buildext iconv iconv.c "-Ilibxmlrpc"
%{phpsource}/buildext %{modname} %{modname}.c


%install
cd %{dirname}
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot} 
mkdir -p %{buildroot}%{phpdir}/extensions

install -m 755 -s %{soname} %{buildroot}%{phpdir}/extensions/

mkdir -p %{buildroot}%{_docdir}/%{name}-%{version}
echo > %{buildroot}%{_docdir}/%{name}-%{version}/README <<EOF
The %{name} package contains a dynamic shared object (DSO) for PHP4. 
To activate it, make sure the line 'extension=%{modname}' is uncommented
in your /etc/php.ini file.
EOF
#cp EXPERIMENTAL %{buildroot}%{_docdir}/%{name}-%{version}

%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
[ -e ./%{dirname} ] && rm -fr ./%{dirname}

%post
if [ $1 = "1" ]; then
  if [ -f %{_sysconfdir}/php.ini ]; then
    perl -pi -e 's|^;extension\s*=\s*%{soname}|extension = %{soname}|' 
%{_sysconfdir}/php.ini
    LINE=`grep %{soname} %{_sysconfdir}/php.ini |grep extension`
    if [ "x$LINE" = "x" ]; then
      echo extension = %{soname} >> %{_sysconfdir}/php.ini
    fi
  fi
fi
if [ $1 -gt 1 ]; then
   #We're in *upgrade mode*. Since we can't be sure the configuration files
   #are sane, remove module from the conf files to clean them, re-add again
   #in a way that the older module we're replacing won't try to erase (the
   #post scripts were broken on some packages)
   #Also, there could be extra lines, so make sure we uncomment one
   #Finally, don't check for presence of php.ini, if it's not there,
   #we have a problem, so it should generate an error message.
   perl -pi -e 's|^extension\s*=\s*%{soname}|;extension = %{soname}|g' 
%{_sysconfdir}/php.ini
   perl -pi -e 's|^;extension\s*=\s*%{soname}|extension = %{soname}|' 
%{_sysconfdir}/php.ini
fi
if [ -e %{_sbindir}/AESctl ]; then %{_sbindir}/AESctl reload;fi 

%preun
if [ $1 = "0" ]; then
  if [ -f %{_sysconfdir}/php.ini ]; then
    perl -pi -e 's|^extension\s*=\s*%{soname}|;extension = %{soname}|g' 
%{_sysconfdir}/php.ini
  fi
  if [ -e %{_sbindir}/AESctl ]; then %{_sbindir}/AESctl reload;fi 
fi

%files 
%defattr(-,root,root)
%{phpdir}/extensions/%{soname}
%dir %{_docdir}/%{name}-%{version}
%doc %{_docdir}/%{name}-%{version}/README
#%doc %{_docdir}/%{name}-%{version}/EXPERIMENTAL

%changelog
* Tue Mar 19 2002 Alexander Skwar <[EMAIL PROTECTED]> 4.1.2-1mdk
- First release of the php-recode package

Reply via email to