[arch-commits] Commit in pari/repos (6 files)

Gaetan Bisson bisson at archlinux.org
Fri Feb 20 08:45:45 UTC 2015


    Date: Friday, February 20, 2015 @ 09:45:45
  Author: bisson
Revision: 128022

archrelease: copy trunk to community-staging-i686, community-staging-x86_64

Added:
  pari/repos/community-staging-i686/
  pari/repos/community-staging-i686/PKGBUILD
    (from rev 128021, pari/trunk/PKGBUILD)
  pari/repos/community-staging-i686/err_handle.patch
    (from rev 128021, pari/trunk/err_handle.patch)
  pari/repos/community-staging-x86_64/
  pari/repos/community-staging-x86_64/PKGBUILD
    (from rev 128021, pari/trunk/PKGBUILD)
  pari/repos/community-staging-x86_64/err_handle.patch
    (from rev 128021, pari/trunk/err_handle.patch)

-------------------------------------------+
 community-staging-i686/PKGBUILD           |   45 ++++++++++++
 community-staging-i686/err_handle.patch   |  105 ++++++++++++++++++++++++++++
 community-staging-x86_64/PKGBUILD         |   45 ++++++++++++
 community-staging-x86_64/err_handle.patch |  105 ++++++++++++++++++++++++++++
 4 files changed, 300 insertions(+)

Copied: pari/repos/community-staging-i686/PKGBUILD (from rev 128021, pari/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD	                        (rev 0)
+++ community-staging-i686/PKGBUILD	2015-02-20 08:45:45 UTC (rev 128022)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer: Gaetan Bisson <bisson at archlinux.org>
+
+pkgname=pari
+pkgver=2.7.3
+pkgrel=1
+pkgdesc='Computer algebra system designed for fast computations in number theory'
+url='http://pari.math.u-bordeaux.fr/'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gmp' 'readline' 'libx11')
+makedepends=('perl' 'texlive-core')
+optdepends=('perl: gphelp, tex2mail')
+source=("http://pari.math.u-bordeaux.fr/pub/pari/unix/${pkgname}-${pkgver}.tar.gz"
+        'err_handle.patch')
+sha1sums=('fa01d548839301958564a2bec39928ba3c9c9d39'
+          '182066ab765eddb0b7fd98b441c158304545f5ec')
+
+prepare() {
+	cd "${srcdir}/${pkgname}-${pkgver}"
+	sed 's/\$addlib64//g' -i config/get_libpth
+	patch -p1 -i ../err_handle.patch # sage-5.6 uses this¸ from upstream trunk
+}
+
+build() {
+	cd "${srcdir}/${pkgname}-${pkgver}"
+	./Configure \
+		--prefix=/usr \
+		--with-readline \
+		--mt=pthread \
+		--with-gmp \
+
+	make all
+}
+
+check() {
+	cd "${srcdir}/${pkgname}-${pkgver}"
+	make bench
+}
+
+package() {
+	cd "${srcdir}/${pkgname}-${pkgver}"
+	make DESTDIR="${pkgdir}" install
+	ln -sf gp.1.gz "${pkgdir}"/usr/share/man/man1/pari.1
+}

Copied: pari/repos/community-staging-i686/err_handle.patch (from rev 128021, pari/trunk/err_handle.patch)
===================================================================
--- community-staging-i686/err_handle.patch	                        (rev 0)
+++ community-staging-i686/err_handle.patch	2015-02-20 08:45:45 UTC (rev 128022)
@@ -0,0 +1,105 @@
+Add cb_pari_err_handle() callback
+
+Backported from upstream commits
+e9e659dc9ecb5ca6a8296c7922528a4ecbb89cb0
+26a7ae0f42918407febe9901ded41faf26ef43a6
+
+diff -ru src/src/headers/paricom.h b/src/headers/paricom.h
+--- src/src/headers/paricom.h	2014-03-25 09:59:21.000000000 +0100
++++ b/src/headers/paricom.h	2015-01-13 19:41:47.430885048 +0100
+@@ -81,6 +81,7 @@
+ extern int  (*cb_pari_whatnow)(PariOUT *out, const char *, int);
+ extern void (*cb_pari_sigint)(void);
+ extern int (*cb_pari_handle_exception)(long);
++extern int (*cb_pari_err_handle)(GEN);
+ extern void (*cb_pari_pre_recover)(long);
+ extern void (*cb_pari_err_recover)(long);
+ extern const char *pari_library_path;
+diff -ru src/src/language/init.c b/src/language/init.c
+--- src/src/language/init.c	2015-01-13 19:40:30.643622993 +0100
++++ b/src/language/init.c	2015-01-13 19:41:47.431884833 +0100
+@@ -87,6 +87,7 @@
+ 
+ void (*cb_pari_ask_confirm)(const char *);
+ int  (*cb_pari_handle_exception)(long);
++int  (*cb_pari_err_handle)(GEN);
+ int  (*cb_pari_whatnow)(PariOUT *out, const char *, int);
+ void (*cb_pari_sigint)(void);
+ void (*cb_pari_pre_recover)(long);
+@@ -732,6 +733,8 @@
+ static void
+ dflt_err_recover(long errnum) { (void) errnum; pari_exit(); }
+ 
++static int pari_err_display(GEN err);
++
+ /* initialize PARI data. Initialize [new|old]fun to NULL for default set. */
+ void
+ pari_init_opts(size_t parisize, ulong maxprime, ulong init_opts)
+@@ -739,6 +742,8 @@
+   ulong u;
+ 
+   cb_pari_whatnow = NULL;
++  cb_pari_handle_exception = NULL;
++  cb_pari_err_handle = pari_err_display;
+   cb_pari_pre_recover = NULL;
+   cb_pari_sigint = dflt_sigint_fun;
+   if (init_opts&INIT_JMPm) cb_pari_err_recover = dflt_err_recover;
+@@ -887,9 +892,6 @@
+   evalstate_reset();
+   killallfiles();
+   pari_init_errcatch();
+-  out_puts(pariErr, "\n");
+-  pariErr->flush();
+-
+   cb_pari_err_recover(numerr);
+ }
+ 
+@@ -1266,21 +1268,22 @@
+   return NULL; /*NOT REACHED*/
+ }
+ 
+-static void
++static int
+ pari_err_display(GEN err)
+ {
+   long numerr=err_get_num(err);
++  err_init();
+   if (numerr==e_SYNTAX)
+   {
+     const char *msg = GSTR(gel(err,2));
+     const char *s     = (const char *) gmael(err,3,1);
+     const char *entry = (const char *) gmael(err,3,2);
+     print_errcontext(pariErr, msg, s, entry);
+-    return;
+   }
+   else
+   {
+     char *s = pari_err2str(err);
++    closure_err(0);
+     err_init_msg(numerr, e_USER);
+     pariErr->puts(s);
+     if (numerr==e_NOTFUNC)
+@@ -1295,6 +1298,8 @@
+     }
+     pari_free(s);
+   }
++  out_term_color(pariErr, c_NONE);
++  pariErr->flush(); return 0;
+ }
+ 
+ void
+@@ -1315,12 +1320,9 @@
+   global_err_data = E;
+   if (*iferr_env) longjmp(*iferr_env, numerr);
+   mt_err_recover(numerr);
+-  err_init();
+-  if (numerr != e_SYNTAX) closure_err(0);
+-  pari_err_display(E);
+-  out_term_color(pariErr, c_NONE);
+   va_end(ap);
+-  pariErr->flush();
++  if (cb_pari_err_handle &&
++      cb_pari_err_handle(E)) return;
+   if (cb_pari_handle_exception &&
+       cb_pari_handle_exception(numerr)) return;
+   err_recover(numerr);

Copied: pari/repos/community-staging-x86_64/PKGBUILD (from rev 128021, pari/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD	                        (rev 0)
+++ community-staging-x86_64/PKGBUILD	2015-02-20 08:45:45 UTC (rev 128022)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer: Gaetan Bisson <bisson at archlinux.org>
+
+pkgname=pari
+pkgver=2.7.3
+pkgrel=1
+pkgdesc='Computer algebra system designed for fast computations in number theory'
+url='http://pari.math.u-bordeaux.fr/'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gmp' 'readline' 'libx11')
+makedepends=('perl' 'texlive-core')
+optdepends=('perl: gphelp, tex2mail')
+source=("http://pari.math.u-bordeaux.fr/pub/pari/unix/${pkgname}-${pkgver}.tar.gz"
+        'err_handle.patch')
+sha1sums=('fa01d548839301958564a2bec39928ba3c9c9d39'
+          '182066ab765eddb0b7fd98b441c158304545f5ec')
+
+prepare() {
+	cd "${srcdir}/${pkgname}-${pkgver}"
+	sed 's/\$addlib64//g' -i config/get_libpth
+	patch -p1 -i ../err_handle.patch # sage-5.6 uses this¸ from upstream trunk
+}
+
+build() {
+	cd "${srcdir}/${pkgname}-${pkgver}"
+	./Configure \
+		--prefix=/usr \
+		--with-readline \
+		--mt=pthread \
+		--with-gmp \
+
+	make all
+}
+
+check() {
+	cd "${srcdir}/${pkgname}-${pkgver}"
+	make bench
+}
+
+package() {
+	cd "${srcdir}/${pkgname}-${pkgver}"
+	make DESTDIR="${pkgdir}" install
+	ln -sf gp.1.gz "${pkgdir}"/usr/share/man/man1/pari.1
+}

Copied: pari/repos/community-staging-x86_64/err_handle.patch (from rev 128021, pari/trunk/err_handle.patch)
===================================================================
--- community-staging-x86_64/err_handle.patch	                        (rev 0)
+++ community-staging-x86_64/err_handle.patch	2015-02-20 08:45:45 UTC (rev 128022)
@@ -0,0 +1,105 @@
+Add cb_pari_err_handle() callback
+
+Backported from upstream commits
+e9e659dc9ecb5ca6a8296c7922528a4ecbb89cb0
+26a7ae0f42918407febe9901ded41faf26ef43a6
+
+diff -ru src/src/headers/paricom.h b/src/headers/paricom.h
+--- src/src/headers/paricom.h	2014-03-25 09:59:21.000000000 +0100
++++ b/src/headers/paricom.h	2015-01-13 19:41:47.430885048 +0100
+@@ -81,6 +81,7 @@
+ extern int  (*cb_pari_whatnow)(PariOUT *out, const char *, int);
+ extern void (*cb_pari_sigint)(void);
+ extern int (*cb_pari_handle_exception)(long);
++extern int (*cb_pari_err_handle)(GEN);
+ extern void (*cb_pari_pre_recover)(long);
+ extern void (*cb_pari_err_recover)(long);
+ extern const char *pari_library_path;
+diff -ru src/src/language/init.c b/src/language/init.c
+--- src/src/language/init.c	2015-01-13 19:40:30.643622993 +0100
++++ b/src/language/init.c	2015-01-13 19:41:47.431884833 +0100
+@@ -87,6 +87,7 @@
+ 
+ void (*cb_pari_ask_confirm)(const char *);
+ int  (*cb_pari_handle_exception)(long);
++int  (*cb_pari_err_handle)(GEN);
+ int  (*cb_pari_whatnow)(PariOUT *out, const char *, int);
+ void (*cb_pari_sigint)(void);
+ void (*cb_pari_pre_recover)(long);
+@@ -732,6 +733,8 @@
+ static void
+ dflt_err_recover(long errnum) { (void) errnum; pari_exit(); }
+ 
++static int pari_err_display(GEN err);
++
+ /* initialize PARI data. Initialize [new|old]fun to NULL for default set. */
+ void
+ pari_init_opts(size_t parisize, ulong maxprime, ulong init_opts)
+@@ -739,6 +742,8 @@
+   ulong u;
+ 
+   cb_pari_whatnow = NULL;
++  cb_pari_handle_exception = NULL;
++  cb_pari_err_handle = pari_err_display;
+   cb_pari_pre_recover = NULL;
+   cb_pari_sigint = dflt_sigint_fun;
+   if (init_opts&INIT_JMPm) cb_pari_err_recover = dflt_err_recover;
+@@ -887,9 +892,6 @@
+   evalstate_reset();
+   killallfiles();
+   pari_init_errcatch();
+-  out_puts(pariErr, "\n");
+-  pariErr->flush();
+-
+   cb_pari_err_recover(numerr);
+ }
+ 
+@@ -1266,21 +1268,22 @@
+   return NULL; /*NOT REACHED*/
+ }
+ 
+-static void
++static int
+ pari_err_display(GEN err)
+ {
+   long numerr=err_get_num(err);
++  err_init();
+   if (numerr==e_SYNTAX)
+   {
+     const char *msg = GSTR(gel(err,2));
+     const char *s     = (const char *) gmael(err,3,1);
+     const char *entry = (const char *) gmael(err,3,2);
+     print_errcontext(pariErr, msg, s, entry);
+-    return;
+   }
+   else
+   {
+     char *s = pari_err2str(err);
++    closure_err(0);
+     err_init_msg(numerr, e_USER);
+     pariErr->puts(s);
+     if (numerr==e_NOTFUNC)
+@@ -1295,6 +1298,8 @@
+     }
+     pari_free(s);
+   }
++  out_term_color(pariErr, c_NONE);
++  pariErr->flush(); return 0;
+ }
+ 
+ void
+@@ -1315,12 +1320,9 @@
+   global_err_data = E;
+   if (*iferr_env) longjmp(*iferr_env, numerr);
+   mt_err_recover(numerr);
+-  err_init();
+-  if (numerr != e_SYNTAX) closure_err(0);
+-  pari_err_display(E);
+-  out_term_color(pariErr, c_NONE);
+   va_end(ap);
+-  pariErr->flush();
++  if (cb_pari_err_handle &&
++      cb_pari_err_handle(E)) return;
+   if (cb_pari_handle_exception &&
+       cb_pari_handle_exception(numerr)) return;
+   err_recover(numerr);



More information about the arch-commits mailing list