Yves Duret wrote:

On Sun, Dec 08, 2002 at 10:02:24PM +0100, Pascal Terjan wrote:

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.
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.

do not care, i want my files back :)

I just wrote a small PHP script that write a .spec from a PEAR XML Description
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

Reply via email to