Yves Duret wrote:
On Sun, Dec 08, 2002 at 10:02:24PM +0100, Pascal Terjan wrote:I just wrote a small PHP script that write a .spec from a PEAR XML Description
Just a small thing, I think this file should be (I know it is not packaged currently) in php-pear, not php-devel.yeap i know for the pear files (thus horde2 is completly broken on 9.0).
but they are neither on pear rpm (as urpmf showed it)
I don't know how PERL CPAN Modules are packaged.do not care, i want my files back :)
That could be fine do make some small packages like php-pear-Log (this package is not only one file in fact).
This should not be too difficult as dependances between pear modules are indicated.
I tested it on xome packages. On the files you want I got a quite nice one that I join to this mail
Here are the remaining thins rpmlint tells me :
W: php-pear-Log invalid-license PHP 2.02 : I need to fix that in my script
E: php-pear-Log only-non-binary-in-usr-lib : Don't know what to do about that...
W: php-pear-Log no-documentation : I currently don't care about that but I may put thes 'test' files as doc.
<?php require_once 'PEAR/Common.php';
$filename = isset($argv[1])?$argv[1]:'package.xml';
$pc =& new PEAR_Common();
$desc = $pc->infoFromDescriptionFile($filename);
$desc['deps'] = Array();
$f=fopen('php-pear-'.$desc['package'].'.spec', 'w');
fputs($f, '%define name php-pear-'.$desc['package']."\n");
fputs($f, '%define rname '.$desc['package']."\n");
fputs($f, '%define version '.$desc['version']."\n");
fputs($f, '%define release 1mdk'."\n");
fputs($f, '%define pear_basedir %{_libdir}/php/pear'."\n\n");
fputs($f, 'Summary: '.$desc['summary']."\n");
fputs($f, 'Name: %{name}'."\n");
fputs($f, 'Version: %{version}'."\n");
fputs($f, 'Release: %{release}'."\n");
fputs($f, 'Source0: http://pear.php.net/get/%{rname}-%{version}.tar.bz2'."\n");
fputs($f, 'License: '.$desc['release_license']."\n");
fputs($f, 'Group: Development/Other'."\n");
fputs($f, 'Url: http://pear.php.net/get/'.$desc['package']."\n");
fputs($f, 'BuildRoot: %{_tmppath}/%{name}-buildroot'."\n");
fputs($f, 'BuildArch: noarch'."\n");
fputs($f, 'Prefix: %{_prefix}'."\n");
fputs($f, 'Requires: php-pear'."\n");
foreach($desc['deps'] as $dep){
if($dep['rel']=='has') fputs($f, 'Requires: php-pear-'.$dep['name']."\n");
fputs($f, 'Requires: php-pear-'.$dep['name'].
signOperator($dep['rel']).$dep['version']."\n");
}
fputs($f, '%description'."\n".wordwrap($desc['description'])."\n\n");
fputs($f, '%prep'."\n".'%setup -q -n %rname-%version'."\n\n");
fputs($f, '%build'."\n\n");
fputs($f, '%install'."\n".'rm -rf $RPM_BUILD_ROOT'."\n");
$dirs = Array();
foreach($desc['filelist'] as $name=>$file){
# if($file['role']!='php') continue;
$dir = dirname($file['baseinstalldir'].'/'.$name);
if($dir!='/') $dirs[$dir]=$dir;
}
foreach($dirs as $dir){
fputs($f, 'mkdir -p $RPM_BUILD_ROOT%{pear_basedir}'.$dir."\n");
}
foreach($desc['filelist'] as $name=>$file){
# if($file['role']!='php') continue;
if(isset($file['baseinstalldir']))
$dir = $file['baseinstalldir'].'/';
else
$dir = '';
fputs($f, 'cp '.$name.' $RPM_BUILD_ROOT%{pear_basedir}/'
.$dir.$name."\n");
$files[]='%{pear_basedir}/'.$dir.$name;
}
fputs($f, "\n");
fputs($f, '%clean'."\n".'rm -rf $RPM_BUILD_ROOT'."\n\n");
fputs($f, '%files'."\n".'%defattr(-,root,root)'."\n");
foreach($files as $file){
fputs($f, $file."\n");
}
fputs($f, "\n");
fputs($f, '%changelog'."\n");
fputs($f, date('* D M d Y ').$argv[2].' <'.$argv[3].'>
'.$desc['version'].'-1mdk'."\n");
fputs($f, '- First mdk package'."\n\n");
function signOperator($operator){
switch($operator) {
case 'lt': return '<';
case 'le': return '<=';
case 'gt': return '>';
case 'ge': return '>=';
case 'eq': return '==';
case 'ne': return '!=';
default:
return $operator;
}
}
?>
%define name php-pear-Log
%define rname Log
%define version 1.5.2
%define release 1mdk
%define pear_basedir %{_libdir}/php/pear
Summary: Logging utilities
Name: %{name}
Version: %{version}
Release: %{release}
Source0: http://pear.php.net/get/%{rname}-%{version}.tar.bz2
License: PHP 2.02
Group: Development/Other
Url: http://pear.php.net/get/Log
BuildRoot: %{_tmppath}/%{name}-buildroot
BuildArch: noarch
Prefix: %{_prefix}
Requires: php-pear
%description
The Log framework provides an abstracted logging system. It supports
logging to console, file, syslog, SQL, mail, and mcal targets. It also
provides a subject - observer mechanism.
%prep
%setup -q -n %rname-%version
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{pear_basedir}/Log
cp Log.php $RPM_BUILD_ROOT%{pear_basedir}/Log.php
cp Log/composite.php $RPM_BUILD_ROOT%{pear_basedir}/Log/composite.php
cp Log/console.php $RPM_BUILD_ROOT%{pear_basedir}/Log/console.php
cp Log/file.php $RPM_BUILD_ROOT%{pear_basedir}/Log/file.php
cp Log/mail.php $RPM_BUILD_ROOT%{pear_basedir}/Log/mail.php
cp Log/mcal.php $RPM_BUILD_ROOT%{pear_basedir}/Log/mcal.php
cp Log/observer.php $RPM_BUILD_ROOT%{pear_basedir}/Log/observer.php
cp Log/sql.php $RPM_BUILD_ROOT%{pear_basedir}/Log/sql.php
cp Log/syslog.php $RPM_BUILD_ROOT%{pear_basedir}/Log/syslog.php
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%{pear_basedir}/Log.php
%{pear_basedir}/Log/composite.php
%{pear_basedir}/Log/console.php
%{pear_basedir}/Log/file.php
%{pear_basedir}/Log/mail.php
%{pear_basedir}/Log/mcal.php
%{pear_basedir}/Log/observer.php
%{pear_basedir}/Log/sql.php
%{pear_basedir}/Log/syslog.php
%changelog
* Tue Dec 10 2002 Pascal Terjan <[EMAIL PROTECTED]> 1.5.2-1mdk
- First mdk package
