OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 22-Dec-2006 15:37:32
Branch: HEAD Handle: 2006122214373200
Added files:
openpkg-src/pari pari.patch
Modified files:
openpkg-src/pari pari.spec
Log:
perl is always required even for building PARI/GP itself; add optional
Math-Pari Perl bindings
Summary:
Revision Changes Path
1.1 +32 -0 openpkg-src/pari/pari.patch
1.33 +48 -9 openpkg-src/pari/pari.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/pari/pari.patch
============================================================================
$ cvs diff -u -r0 -r1.1 pari.patch
--- /dev/null 2006-12-22 15:36:43 +0100
+++ pari.patch 2006-12-22 15:37:32 +0100
@@ -0,0 +1,32 @@
+Index: Makefile.PL
+--- Makefile.PL.orig 2006-10-25 22:36:34 +0200
++++ Makefile.PL 2006-12-22 15:24:00 +0100
+@@ -23,8 +23,9 @@
+ grep {/^pari_tgz=(.*?)[\/\\]?$/i and $parisrc = $1} @ARGV;
+ grep {/^force_download$/i and $force_download = 1} @ARGV;
+ grep {/^parilib=(.*)$/i and $common::parilib = $1} @ARGV;
++grep {/^parihdr=(.*)$/i and $common::parihdr = $1} @ARGV;
+
[EMAIL PROTECTED] = grep
!/^((machine|paridir|pari_tgz|parilib)=.*|configure|force_download)$/i, @ARGV;
[EMAIL PROTECTED] = grep
!/^((machine|paridir|pari_tgz|parilib|parihdr)=.*|configure|force_download)$/i,
@ARGV;
+
+ $paridir = find_pari_dir() unless defined $paridir or $parisrc or
$force_download;
+ ($paridir) = download_and_patch_pari($parisrc, $force_download)
+@@ -44,7 +45,7 @@
+ EOP
+
+ if ($common::parilib) {
+- $pari_version = '2001004'; # XXXX How to get a correct one?
++ $pari_version = '2003001'; # XXXX How to get a correct one?
+ $define = '-DNO_HIGHLEVEL_PARI';
+ print <<EOP;
+ Trying to use existing PARI library (at $common::parilib)
+@@ -151,7 +152,7 @@
+ # XXXX otherwise segfaults trying to install highlevel functions???
+ $define .= ' -DNO_HIGHLEVEL_PARI' if $pari_version >= 2003000;
+
+-my $extra_inc = extra_includes($paridir);
++my $extra_inc = $common::parihdr . " " . extra_includes($paridir);
+
+ # See lib/ExtUtils/MakeMaker.pm for details of how to influence
+ # the contents of the Makefile being created.
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/pari/pari.spec
============================================================================
$ cvs diff -u -r1.32 -r1.33 pari.spec
--- openpkg-src/pari/pari.spec 13 Oct 2006 17:31:26 -0000 1.32
+++ openpkg-src/pari/pari.spec 22 Dec 2006 14:37:32 -0000 1.33
@@ -25,6 +25,7 @@
# package version
%define V_major 2.3
%define V_minor 1
+%define V_perl 2.010709
# package information
Name: pari
@@ -37,28 +38,36 @@
Group: Algorithm
License: GPL
Version: %{V_major}.%{V_minor}
-Release: 20061013
+Release: 20061222
+
+# package options
+%option with_perl no
# list of sources
Source0:
http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-%{version}.tar.gz
+Source1:
http://www.cpan.org/modules/by-module/Math/Math-Pari-%{V_perl}.tar.gz
+Patch0: pari.patch
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
-BuildPreReq: OpenPKG, openpkg >= 20040130, make, gcc
+BuildPreReq: OpenPKG, openpkg >= 20040130, make, gcc, perl
PreReq: OpenPKG, openpkg >= 20040130
BuildPreReq: gmp, readline, ncurses
PreReq: gmp, readline, ncurses
+%if "%{with_perl}" == "yes"
+BuildPreReq: perl, perl-openpkg
+PreReq: perl
+%endif
AutoReq: no
AutoReqProv: no
%description
- PARI-GP is a software package for computer-aided number theory. It
- consists of a C library, libpari (with optional assembler cores for
- some popular architectures), and of the programmable interactive gp
- calculator. While you can write your own libpari-based programs,
- many people just start up a gp session, or have gp execute their
- scripts.
+ PARI-GP is a software package for computer-aided number theory.
+ It consists of the C library libpari and of the programmable
+ interactive gp(1) calculator. While you can write your own
+ libpari-based programs, many people just start up a gp(1) session,
+ or have gp(1) execute their scripts.
%track
prog pari = {
@@ -66,9 +75,17 @@
url = http://pari.math.u-bordeaux.fr/download.html
regex = pari-(\d+\.\d+\.\d+)\.(tgz|tar\.gz)
}
+ prog pari:Math-Pari = {
+ version = %{V_perl}
+ url = http://www.cpan.org/modules/by-module/Math/
+ regex = Math-Pari-(__VER__)\.tar\.gz
+ }
%prep
%setup -q
+ %setup -q -D -T -a 1
+ chmod u+w Math-Pari-%{V_perl}/*
+ %patch -p0 -d Math-Pari-%{V_perl}
%{l_shtool} subst \
-e 's;^\(install:.*\) install-doc \(.*\);\1 \2;' \
config/Makefile.SH
@@ -88,6 +105,21 @@
--with-ncurses=%{l_prefix} \
--static
%{l_make} %{l_mflags -O} gp
+%if "%{with_perl}" == "yes"
+ ( cd `./config/objdir`
+ %{l_make} %{l_mflags -O} libpari.a
+ ) || exit $?
+ %{l_prefix}/bin/perl-openpkg prepare
+ paridir=".."
+ parihdr="-I$paridir/`./config/objdir`"
+ parilib="-L$paridir/`./config/objdir` -lpari"
+ %{l_prefix}/bin/perl-openpkg \
+ -d Math-Pari-%{V_perl} \
+ --args "paridir=\"$paridir\"" \
+ --args "parihdr=\"$parihdr\"" \
+ --args "parilib=\"$parilib\"" \
+ configure build
+%endif
%install
rm -rf $RPM_BUILD_ROOT
@@ -101,7 +133,14 @@
rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/tex2mail
rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/tex2mail.1
strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
- %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+%if "%{with_perl}" == "yes"
+ %{l_prefix}/bin/perl-openpkg -d Math-Pari-%{V_perl} install
+ %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
+%else
+ >perl-openpkg-files
+%endif
+ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+ %{l_files_std} `cat perl-openpkg-files`
%files -f files
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]