[arch-commits] Commit in pari-sage/repos (8 files)
Antonio Rojas
arojas at archlinux.org
Sun Jul 26 17:04:53 UTC 2015
Date: Sunday, July 26, 2015 @ 19:04:53
Author: arojas
Revision: 137433
archrelease: copy trunk to community-staging-i686, community-staging-x86_64
Added:
pari-sage/repos/community-staging-i686/
pari-sage/repos/community-staging-i686/PKGBUILD
(from rev 137432, pari-sage/trunk/PKGBUILD)
pari-sage/repos/community-staging-i686/perl_regex.patch
(from rev 137432, pari-sage/trunk/perl_regex.patch)
pari-sage/repos/community-staging-i686/public_memory_functions.patch
(from rev 137432, pari-sage/trunk/public_memory_functions.patch)
pari-sage/repos/community-staging-x86_64/
pari-sage/repos/community-staging-x86_64/PKGBUILD
(from rev 137432, pari-sage/trunk/PKGBUILD)
pari-sage/repos/community-staging-x86_64/perl_regex.patch
(from rev 137432, pari-sage/trunk/perl_regex.patch)
pari-sage/repos/community-staging-x86_64/public_memory_functions.patch
(from rev 137432, pari-sage/trunk/public_memory_functions.patch)
--------------------------------------------------------+
community-staging-i686/PKGBUILD | 49 +++
community-staging-i686/perl_regex.patch | 201 +++++++++++++++
community-staging-i686/public_memory_functions.patch | 61 ++++
community-staging-x86_64/PKGBUILD | 49 +++
community-staging-x86_64/perl_regex.patch | 201 +++++++++++++++
community-staging-x86_64/public_memory_functions.patch | 61 ++++
6 files changed, 622 insertions(+)
Copied: pari-sage/repos/community-staging-i686/PKGBUILD (from rev 137432, pari-sage/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD (rev 0)
+++ community-staging-i686/PKGBUILD 2015-07-26 17:04:53 UTC (rev 137433)
@@ -0,0 +1,49 @@
+# $Id$
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+# Contributor: Gaetan Bisson <bisson at archlinux.org>
+
+pkgname=pari-sage
+_pkgver=2.8-1637-g489005a
+pkgver=${_pkgver//-/.}
+pkgrel=1
+pkgdesc='Computer algebra system designed for fast computations in number theory. Development snapshot required by SageMath'
+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')
+conflicts=(pari)
+provides=(pari)
+# source=("http://www.sagemath.org/packages/upstream/pari/pari-$_pkgver.tar.gz"
+source=("http://mirrors.mit.edu/sage/spkg/upstream/pari/pari-$_pkgver.tar.gz"
+ 'public_memory_functions.patch' 'perl_regex.patch')
+md5sums=('41936ce2dce6bd00a662bf43a772685f'
+ '9172b9faee975cd3fe0f97126ea61af8'
+ '92b24f7e61c6268a4978636b819fba78')
+
+prepare() {
+ cd pari-${_pkgver}
+
+# make some private functions public
+ patch -p1 -i "$srcdir"/public_memory_functions.patch
+# fix doc build with Perl 5.22
+ patch -p1 -i "$srcdir"/perl_regex.patch
+}
+
+build() {
+ cd pari-${_pkgver}
+ ./Configure \
+ --prefix=/usr \
+ --with-readline \
+ --mt=pthread \
+ --with-gmp \
+
+ make all
+}
+
+package() {
+ cd pari-${_pkgver}
+ make DESTDIR="$pkgdir" install
+ ln -sf gp.1.gz "$pkgdir"/usr/share/man/man1/pari.1
+}
Copied: pari-sage/repos/community-staging-i686/perl_regex.patch (from rev 137432, pari-sage/trunk/perl_regex.patch)
===================================================================
--- community-staging-i686/perl_regex.patch (rev 0)
+++ community-staging-i686/perl_regex.patch 2015-07-26 17:04:53 UTC (rev 137433)
@@ -0,0 +1,201 @@
+commit 257750686ae1fe928a2b4b489844c1b57a108bd3
+Author: Karim Belabas <Karim.Belabas at math.u-bordeaux1.fr>
+Date: Tue Jul 14 15:23:42 2015 +0200
+
+ doc_make: escape all {} in regexps [ perl-5.22 warns on these => fatal
+
+diff --git a/src/desc/doc_make b/src/desc/doc_make
+index bb41bc9..8521a9d 100755
+--- a/src/desc/doc_make
++++ b/src/desc/doc_make
+@@ -38,13 +38,13 @@ while (<FILE>)
+ $v =~ s/\[\]/[\\,]/g;
+ $v =~ s/(\w\w+)/\\var{$1}/g;
+ $v =~ s/\^([a-z])/\\hbox{\\kbd{\\pow}}$1/g;
+- $v =~ s/\\var{flag}/\\fl/g;
+- $v =~ s/\\var{(\d+)}/{$1}/g;
++ $v =~ s/\\var\{flag\}/\\fl/g;
++ $v =~ s/\\var\{(\d+)\}/{$1}/g;
+ $v =~ s/_/\\_/g; # don't merge with first subst: \var{} rule kills it
+
+ $v = "\$($v)\$";
+ }
+- if ($doc !~ /\\syn\w*{/ && $sec !~ /programming\/control/) {
++ if ($doc !~ /\\syn\w*\{/ && $sec !~ /programming\/control/) {
+ $doc .= library_syntax($fun, $args);
+ }
+ s/_def_//;
+commit 742c70e505a7e75128720f619d63e882c03e9346
+Author: Karim Belabas <Karim.Belabas at math.u-bordeaux1.fr>
+Date: Tue Jul 14 13:20:07 2015 +0200
+
+ gphelp: escape all {} in regexps [ perl-5.22 warns on these => fatal ]
+
+diff --git a/doc/gphelp.in b/doc/gphelp.in
+index 00ff6bd..89f2768 100755
+--- a/doc/gphelp.in
++++ b/doc/gphelp.in
+@@ -298,7 +298,7 @@ sub treat {
+ if ($pat =~ /[a-zA-Z0-9]$/) { $pat .= '\b'; } else { $pat .= '}'; }
+ while (<DOC>)
+ {
+- if (/\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter|label){$pat/)
++ if (/\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter|label)\{$pat/)
+ { $first = $_; last; }
+ }
+ if (eof(DOC))
+@@ -380,7 +380,7 @@ sub apropos_check {
+ return if ($line !~ /$help/i);
+
+ local($_) = $current;
+- s/\\b{(.)}/\\$1/;
++ s/\\b\{(.)\}/\\$1/;
+ s/\{\}//g;
+ s/\\pow/^/;
+ s/\\%/%/;
+@@ -400,7 +400,7 @@ sub apropos {
+ @sentence_list = @list = "";
+ while (<DOC>)
+ {
+- if (/^\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter){/)
++ if (/^\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter)\{/)
+ {
+ $new = &get_match($_,'{','}');
+ &apropos_check($line, $current);
+@@ -748,7 +748,7 @@ sub basic_subst {
+ s/\\fun\s*\{([^{}]*)\}\s*\{((?:[^{}]|\{[^{}]*\})*)\}\s*\{((?:[^{}]|\{[^{}]*\})*)\}/\\kbd{$1 \\key{$2}($3)}\\sidx{$2}/g;
+
+ s/\\\\(?=[a-zA-Z])/\\bs /g;
+- s/\\b{}\\b{}/\\bs\\bs /g;
++ s/\\b\{\}\\b\{\}/\\bs\\bs /g;
+ s/\\\\/\\bs/g;
+ s/(\'\'|\`\`)/"/g unless $to_pod; # (english) double quotes
+ # asymptotic or isomorphic (~) [beware of ties]
+@@ -760,16 +760,16 @@ sub basic_subst {
+ s/\\(~|tilde)/~/g;
+
+ s/\\(equiv)(?![a-zA-Z])/ = /g;
+- s/\\`a/$tr{agrave}/; s/\\`{a}/$tr{agrave}/;
+- s/\\"o/$tr{ouml}/; s/\\"{o}/$tr{ouml}/;
+- s/\\"u/$tr{uuml}/; s/\\"{u}/$tr{uuml}/;
+- s/\\'e/$tr{eacute}/; s/\\'{e}/$tr{eacute}/;
++ s/\\`a/$tr{agrave}/; s/\\`\{a\}/$tr{agrave}/;
++ s/\\"o/$tr{ouml}/; s/\\"\{o\}/$tr{ouml}/;
++ s/\\"u/$tr{uuml}/; s/\\"\{u\}/$tr{uuml}/;
++ s/\\'e/$tr{eacute}/; s/\\'\{e\}/$tr{eacute}/;
+
+ s/(^|[^\\])%.*/$1/g; # comments
+ s/\\vadjust\s*\{\s*\\penalty\s*\d+\s*\}//g;
+
+ # We do not strip %\n, thus:
+- s/\\kbd{\n\s*/\\kbd{/g;
++ s/\\kbd\{\n\s*/\\kbd{/g;
+ s/\$\\bf(\b|(?=[\d_]))\s*([^\$]+)\$/\$$tr{startbcode}$1$tr{endbcode}\$/g;
+ s/\$/$tr{dollar}/g; # math mode
+ s/\t/ /g; s/\\,//g; s/\\[ ;]/ /g; # various spaces
+@@ -779,7 +779,7 @@ sub basic_subst {
+ s/\\TeX\{\}/TeX/g;
+ s/\\TeX(\W)/TeX$1/g;
+ s/ *\\circ\b */ o /g;
+- s/\\d?frac{\s*((?:[^{}]|\{[^{}]*\})*)}{\s*((?:[^{}]|\{[^{}]*\})*)}/($1)\/($2)/g;
++ s/\\d?frac\{\s*((?:[^{}]|\{[^{}]*\})*)\}\{\s*((?:[^{}]|\{[^{}]*\})*)\}/($1)\/($2)/g;
+ s(\\d?frac\s*(\d)\s*(\d))(($1/$2))g;
+ s[{\s*(\w)\s*\\over(?![a-zA-Z])\s*(\w)\s*}]{($1/$2)}g;
+ s[{\s*((?:[^{}]|\{[^{}]*\})*)\\over(?![a-zA-Z])\s*((?:[^{}]|\{[^{}]*\})*)}][($1)/($2)]g;
+@@ -796,7 +796,7 @@ sub basic_subst {
+
+ s/(\\string)?\\_/_/g;
+ s/\\([#\$&%|])/$1/g;
+- s/\\(hat(?![a-zA-Z])|\^)({\\?\s*})?/^/g;
++ s/\\(hat(?![a-zA-Z])|\^)(\{\\?\s*\})?/^/g;
+ s/^(\@\[podleader\]head\d *)\\pow(?![a-zA-z])( *)/$1^$2/gm;
+ s/ *\\pow(?![a-zA-z]) */^/g;
+
+@@ -896,21 +896,21 @@ sub basic_subst {
+ s/\\(floor|ceil|round|binom)\{/$1\{/g;
+ s/\\(var|emph)\{([^\}]*)\}/$tr{startit}$2$tr{endit}/g;
+ s/\\fl(?![a-zA-Z])/$tr{startit}flag$tr{endit}/g;
+- s/\\b{([^}]*)}/$tr{startcode}\\$1$tr{endcode}/g;
++ s/\\b\{([^}]*)\}/$tr{startcode}\\$1$tr{endcode}/g;
+ s/\\kbdsidx/\\sidx/g;
+ s/\\sidx\{[^\}]*\}//g unless $to_pod;
+ s/\\[a-zA-Z]*idx\{([^\}]*)\}/$1/g unless $to_pod;
+- s/{\\text{(st|nd|th)}}/\\text{$1}/g;
+- s/\^\\text{th}/-th/g;
+- s/1\^\\text{st}/1st/g;
+- s/2\^\\text{nd}/2nd/g;
++ s/\{\\text\{(st|nd|th)\}\}/\\text{$1}/g;
++ s/\^\\text\{th\}/-th/g;
++ s/1\^\\text\{st\}/1st/g;
++ s/2\^\\text\{nd\}/2nd/g;
+
+ s/\\(text|hbox|Big)//g;
+ s/^([ \t]+)\{ *\\(it|sl|bf|tt)\b/S<$1>{\\$2/gm;
+ s/\{ *\\(it|sl) *(([^{}]+(?=[{}])|\{[^{}]*\})*)\}/$tr{startit}$2$tr{endit}/g;
+ s/\{ *\\bf *(([^{}]+(?=[{}])|\{[^{}]*\})*)\}/$tr{startbold}$1$tr{endbold}/g;
+ s/\{ *\\tt *(([^{}]+(?=[{}])|\{[^{}]*\})*)\}/$tr{startpodcode}$1$tr{endpodcode}/g;
+- $seek=1 if (s/\\emph{ */$tr{startit}/g);
++ $seek=1 if (s/\\emph\{ */$tr{startit}/g);
+ if ($seek) { $seek=0 if (s/\}/$tr{endit}/) }
+ s/\\(backslash|bs)\{(\w)\}/\\$2/g;
+ s/\\(backslash|bs)(?![a-zA-Z]) */\\/g;
+@@ -1028,21 +1028,21 @@ sub TeXprint_topod {
+ # Try to guard \label/\sidx (removing possible '.')
+ # This somehow breaks index...
+ # s/(\\(?:section|subsec(?:ref|idx|op)?(unix)?)\s*{(?:(?:[^{}]+(?=[{}])|{[^{}]+})+)})\.?\s*\\(label|sidx)/$1\n\\$2/;
+- s/(\\(?:section|subsec(?:ref|idx|op)?)\s*{(?:(?:[^{}]+(?=[{}])|{[^{}]+})+)})\.?\s*\\(label|sidx)/$1\n\\$2/;
++ s/(\\(?:section|subsec(?:ref|idx|op)?)\s*\{(?:(?:[^{}]+(?=[{}])|{[^{}]+})+)\})\.?\s*\\(label|sidx)/$1\n\\$2/;
+
+ # last if /\\subsec[\\{}ref]*[\\\${]$help[}\\\$]/o;
+- s/\\chapter\s*{((?:[^{}]|\{[^{}]*\})*)}\s*/\n\n$tr{podleader}head1 NAME\n\nlibPARI - $1\n\n/;
+- s/\\appendix\s*{((?:[^{}]|\{[^{}]*\})*)}\s*/\n\n$tr{podleader}head1 NAME\n\nAppendix - $1\n\n/;
+- s/\\section\s*{((?:[^{}]|\{[^{}]*\})*)}\s*/"\n\n$tr{podleader}head1 " . indexify($1) . "\n\n"/e;
++ s/\\chapter\s*\{((?:[^{}]|\{[^{}]*\})*)\}\s*/\n\n$tr{podleader}head1 NAME\n\nlibPARI - $1\n\n/;
++ s/\\appendix\s*\{((?:[^{}]|\{[^{}]*\})*)\}\s*/\n\n$tr{podleader}head1 NAME\n\nAppendix - $1\n\n/;
++ s/\\section\s*\{((?:[^{}]|\{[^{}]*\})*)\}\s*/"\n\n$tr{podleader}head1 " . indexify($1) . "\n\n"/e;
+
+ # Try to delimit by :
+- s/\\subsec(?:ref)?(?:unix)?\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}([^\n]*):[\n ]/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
+- s/\\subsubsec(?:ref)?(?:unix)?\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}([^:]*):\s*/"\n\n$tr{podleader}head3 " . indexify("$1$3") . "\n\n"/e;
++ s/\\subsec(?:ref)?(?:unix)?\s*\{(([^{}]+(?=[{}])|{[^{}]+})+)\}([^\n]*):[\n ]/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
++ s/\\subsubsec(?:ref)?(?:unix)?\s*\{(([^{}]+(?=[{}])|{[^{}]+})+)\}([^:]*):\s*/"\n\n$tr{podleader}head3 " . indexify("$1$3") . "\n\n"/e;
+ s/\\subsubsec\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}(.*)$/"\n\n$tr{podleader}head3 " . indexify("$1") . "$3\n\n"/me;
+ s/\\subseckbd\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}([^:]*):\s*/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
+ # Try to delimit by ' '
+- s/\\subsec(?:ref)?(?:unix)?\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}(\S*)\s+/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
+- s/\\subsec(?:title)?(?:unix)?\s*{(([^{}]+(?=[{}])|{[^{}]*})+)}:?\s*/"\n\n$tr{podleader}head2 " . indexify("$1") . "\n\n"/e;
++ s/\\subsec(?:ref)?(?:unix)?\s*\{(([^{}]+(?=[{}])|{[^{}]+})+)\}(\S*)\s+/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
++ s/\\subsec(?:title)?(?:unix)?\s*\{(([^{}]+(?=[{}])|{[^{}]*})+)\}:?\s*/"\n\n$tr{podleader}head2 " . indexify("$1") . "\n\n"/e;
+
+ # This is to skip preface in refcard:
+ /\Q$tr{podleader}\Ehead1|\\title(?![a-zA-Z])\s*\{/o and $seen_start = 1
+@@ -1097,18 +1097,18 @@ sub TeXprint_topod {
+ s/\$\$(.*?)\$\$\s*/\n\nS< >$tr{startcode}$1$tr{endcode}\n\n/gs;
+ s/\$([^\$]+)\$/$tr{startcode}$1$tr{endcode}/g;
+
+- s/\\s(?:ref|idx){\s*([^{}]*)}/"X<" . for_index($1) . ">"/ge; #
+- s/\\(?:ref|idx){\s*([^{}]*)}/"X<" . for_index($1) . ">$1"/ge;
++ s/\\s(?:ref|idx)\{\s*([^{}]*)\}/"X<" . for_index($1) . ">"/ge; #
++ s/\\(?:ref|idx)\{\s*([^{}]*)\}/"X<" . for_index($1) . ">$1"/ge;
+
+ # Conflict between different versions of PARI and refcard:
+-# s/\\(?:key|li)\s*{(.*)}\s*{(.+)}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/msg;
+-# s/\\(?:key|li)\s*{(.*)}\s*{}[ \t]*\n/\n\n=back\n\n$1\n\n=over\n\n/mgs;
+-# s/\\(key|var)(?![a-zA-Z])\s*{(\w+)}/C<$2>/mg;
+- s/\\var\s*{X<(\w+)>(\w+)}/X<$1>$tr{startcode}$2$tr{endcode}/mg;
+- s/\\var\s*{f{}lag}/$tr{startcode}flag$tr{endcode}/mg;
+-
+- s/\\metax(?![a-zA-Z])\s*{(.*)}\s*{\s*(\w+)(?=C\<)(.*)}[ \t]*\n/\n\n=item C<L<$2>$3>\n\n$1\n\n/mg;
+- s/\\metax(?![a-zA-Z])\s*{(.*)}\s*{(.*)}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/mg;
++# s/\\(?:key|li)\s*\{(.*)\}\s*\{(.+)\}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/msg;
++# s/\\(?:key|li)\s*\{(.*)\}\s*\{\}[ \t]*\n/\n\n=back\n\n$1\n\n=over\n\n/mgs;
++# s/\\(key|var)(?![a-zA-Z])\s*\{(\w+)\}/C<$2>/mg;
++ s/\\var\s*\{X<(\w+)>(\w+)\}/X<$1>$tr{startcode}$2$tr{endcode}/mg;
++ s/\\var\s*\{f\{\}lag\}/$tr{startcode}flag$tr{endcode}/mg;
++
++ s/\\metax(?![a-zA-Z])\s*\{(.*)\}\s*\{\s*(\w+)(?=C\<)(.*)\}[ \t]*\n/\n\n=item C<L<$2>$3>\n\n$1\n\n/mg;
++ s/\\metax(?![a-zA-Z])\s*\{(.*)\}\s*\{(.*)\}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/mg;
+ s/C\<\{\}=/C\<=/g;
+ s/\\fl(?![a-zA-Z])/I<flag>/g;
+ s/\\file(?![a-zA-Z])/F<file>/g;
+
Copied: pari-sage/repos/community-staging-i686/public_memory_functions.patch (from rev 137432, pari-sage/trunk/public_memory_functions.patch)
===================================================================
--- community-staging-i686/public_memory_functions.patch (rev 0)
+++ community-staging-i686/public_memory_functions.patch 2015-07-26 17:04:53 UTC (rev 137433)
@@ -0,0 +1,61 @@
+diff --git a/src/headers/paridecl.h b/src/headers/paridecl.h
+index 7067183..4ede6ed 100644
+--- a/src/headers/paridecl.h
++++ b/src/headers/paridecl.h
+@@ -2819,6 +2819,9 @@ GEN pari_thread_start(struct pari_thread *t);
+ void pari_thread_valloc(struct pari_thread *t, size_t s, size_t v, GEN arg);
+ GEN pari_version(void);
+ void pari_warn(int numerr, ...);
++void * pari_mainstack_malloc(size_t size);
++void pari_mainstack_mfree(void *s, size_t size);
++void pari_mainstack_free(struct pari_mainstack *st);
+ void paristack_alloc(size_t rsize, size_t vsize);
+ void paristack_newrsize(ulong newsize);
+ void paristack_resize(ulong newsize);
+diff --git a/src/language/init.c b/src/language/init.c
+index 7b5922d..2a578d7 100644
+--- a/src/language/init.c
++++ b/src/language/init.c
+@@ -612,7 +612,7 @@ pari_add_oldmodule(entree *ep)
+ #ifndef MAP_NORESERVE
+ #define MAP_NORESERVE 0
+ #endif
+-static void *
++void *
+ pari_mainstack_malloc(size_t size)
+ {
+ void *b = mmap(NULL, size, PROT_READ|PROT_WRITE,
+@@ -620,7 +620,7 @@ pari_mainstack_malloc(size_t size)
+ return (b == MAP_FAILED) ? NULL: b;
+ }
+
+-static void
++void
+ pari_mainstack_mfree(void *s, size_t size)
+ {
+ munmap(s, size);
+@@ -634,13 +634,13 @@ pari_mainstack_mreset(void *s, size_t size)
+
+ #else
+ #define PARI_STACK_ALIGN (0x40UL)
+-static void *
++void *
+ pari_mainstack_malloc(size_t s)
+ {
+ return malloc(s); /* NOT pari_malloc, e_MEM would be deadly */
+ }
+
+-static void
++void
+ pari_mainstack_mfree(void *s, size_t size) { (void) size; free(s); }
+
+ static void
+@@ -681,7 +681,7 @@ pari_mainstack_alloc(struct pari_mainstack *st, size_t rsize, size_t vsize)
+ st->memused = 0;
+ }
+
+-static void
++void
+ pari_mainstack_free(struct pari_mainstack *st)
+ {
+ pari_mainstack_mfree((void*)st->vbot, st->vsize ? st->vsize : fix_size(st->rsize));
Copied: pari-sage/repos/community-staging-x86_64/PKGBUILD (from rev 137432, pari-sage/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2015-07-26 17:04:53 UTC (rev 137433)
@@ -0,0 +1,49 @@
+# $Id$
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+# Contributor: Gaetan Bisson <bisson at archlinux.org>
+
+pkgname=pari-sage
+_pkgver=2.8-1637-g489005a
+pkgver=${_pkgver//-/.}
+pkgrel=1
+pkgdesc='Computer algebra system designed for fast computations in number theory. Development snapshot required by SageMath'
+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')
+conflicts=(pari)
+provides=(pari)
+# source=("http://www.sagemath.org/packages/upstream/pari/pari-$_pkgver.tar.gz"
+source=("http://mirrors.mit.edu/sage/spkg/upstream/pari/pari-$_pkgver.tar.gz"
+ 'public_memory_functions.patch' 'perl_regex.patch')
+md5sums=('41936ce2dce6bd00a662bf43a772685f'
+ '9172b9faee975cd3fe0f97126ea61af8'
+ '92b24f7e61c6268a4978636b819fba78')
+
+prepare() {
+ cd pari-${_pkgver}
+
+# make some private functions public
+ patch -p1 -i "$srcdir"/public_memory_functions.patch
+# fix doc build with Perl 5.22
+ patch -p1 -i "$srcdir"/perl_regex.patch
+}
+
+build() {
+ cd pari-${_pkgver}
+ ./Configure \
+ --prefix=/usr \
+ --with-readline \
+ --mt=pthread \
+ --with-gmp \
+
+ make all
+}
+
+package() {
+ cd pari-${_pkgver}
+ make DESTDIR="$pkgdir" install
+ ln -sf gp.1.gz "$pkgdir"/usr/share/man/man1/pari.1
+}
Copied: pari-sage/repos/community-staging-x86_64/perl_regex.patch (from rev 137432, pari-sage/trunk/perl_regex.patch)
===================================================================
--- community-staging-x86_64/perl_regex.patch (rev 0)
+++ community-staging-x86_64/perl_regex.patch 2015-07-26 17:04:53 UTC (rev 137433)
@@ -0,0 +1,201 @@
+commit 257750686ae1fe928a2b4b489844c1b57a108bd3
+Author: Karim Belabas <Karim.Belabas at math.u-bordeaux1.fr>
+Date: Tue Jul 14 15:23:42 2015 +0200
+
+ doc_make: escape all {} in regexps [ perl-5.22 warns on these => fatal
+
+diff --git a/src/desc/doc_make b/src/desc/doc_make
+index bb41bc9..8521a9d 100755
+--- a/src/desc/doc_make
++++ b/src/desc/doc_make
+@@ -38,13 +38,13 @@ while (<FILE>)
+ $v =~ s/\[\]/[\\,]/g;
+ $v =~ s/(\w\w+)/\\var{$1}/g;
+ $v =~ s/\^([a-z])/\\hbox{\\kbd{\\pow}}$1/g;
+- $v =~ s/\\var{flag}/\\fl/g;
+- $v =~ s/\\var{(\d+)}/{$1}/g;
++ $v =~ s/\\var\{flag\}/\\fl/g;
++ $v =~ s/\\var\{(\d+)\}/{$1}/g;
+ $v =~ s/_/\\_/g; # don't merge with first subst: \var{} rule kills it
+
+ $v = "\$($v)\$";
+ }
+- if ($doc !~ /\\syn\w*{/ && $sec !~ /programming\/control/) {
++ if ($doc !~ /\\syn\w*\{/ && $sec !~ /programming\/control/) {
+ $doc .= library_syntax($fun, $args);
+ }
+ s/_def_//;
+commit 742c70e505a7e75128720f619d63e882c03e9346
+Author: Karim Belabas <Karim.Belabas at math.u-bordeaux1.fr>
+Date: Tue Jul 14 13:20:07 2015 +0200
+
+ gphelp: escape all {} in regexps [ perl-5.22 warns on these => fatal ]
+
+diff --git a/doc/gphelp.in b/doc/gphelp.in
+index 00ff6bd..89f2768 100755
+--- a/doc/gphelp.in
++++ b/doc/gphelp.in
+@@ -298,7 +298,7 @@ sub treat {
+ if ($pat =~ /[a-zA-Z0-9]$/) { $pat .= '\b'; } else { $pat .= '}'; }
+ while (<DOC>)
+ {
+- if (/\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter|label){$pat/)
++ if (/\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter|label)\{$pat/)
+ { $first = $_; last; }
+ }
+ if (eof(DOC))
+@@ -380,7 +380,7 @@ sub apropos_check {
+ return if ($line !~ /$help/i);
+
+ local($_) = $current;
+- s/\\b{(.)}/\\$1/;
++ s/\\b\{(.)\}/\\$1/;
+ s/\{\}//g;
+ s/\\pow/^/;
+ s/\\%/%/;
+@@ -400,7 +400,7 @@ sub apropos {
+ @sentence_list = @list = "";
+ while (<DOC>)
+ {
+- if (/^\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter){/)
++ if (/^\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter)\{/)
+ {
+ $new = &get_match($_,'{','}');
+ &apropos_check($line, $current);
+@@ -748,7 +748,7 @@ sub basic_subst {
+ s/\\fun\s*\{([^{}]*)\}\s*\{((?:[^{}]|\{[^{}]*\})*)\}\s*\{((?:[^{}]|\{[^{}]*\})*)\}/\\kbd{$1 \\key{$2}($3)}\\sidx{$2}/g;
+
+ s/\\\\(?=[a-zA-Z])/\\bs /g;
+- s/\\b{}\\b{}/\\bs\\bs /g;
++ s/\\b\{\}\\b\{\}/\\bs\\bs /g;
+ s/\\\\/\\bs/g;
+ s/(\'\'|\`\`)/"/g unless $to_pod; # (english) double quotes
+ # asymptotic or isomorphic (~) [beware of ties]
+@@ -760,16 +760,16 @@ sub basic_subst {
+ s/\\(~|tilde)/~/g;
+
+ s/\\(equiv)(?![a-zA-Z])/ = /g;
+- s/\\`a/$tr{agrave}/; s/\\`{a}/$tr{agrave}/;
+- s/\\"o/$tr{ouml}/; s/\\"{o}/$tr{ouml}/;
+- s/\\"u/$tr{uuml}/; s/\\"{u}/$tr{uuml}/;
+- s/\\'e/$tr{eacute}/; s/\\'{e}/$tr{eacute}/;
++ s/\\`a/$tr{agrave}/; s/\\`\{a\}/$tr{agrave}/;
++ s/\\"o/$tr{ouml}/; s/\\"\{o\}/$tr{ouml}/;
++ s/\\"u/$tr{uuml}/; s/\\"\{u\}/$tr{uuml}/;
++ s/\\'e/$tr{eacute}/; s/\\'\{e\}/$tr{eacute}/;
+
+ s/(^|[^\\])%.*/$1/g; # comments
+ s/\\vadjust\s*\{\s*\\penalty\s*\d+\s*\}//g;
+
+ # We do not strip %\n, thus:
+- s/\\kbd{\n\s*/\\kbd{/g;
++ s/\\kbd\{\n\s*/\\kbd{/g;
+ s/\$\\bf(\b|(?=[\d_]))\s*([^\$]+)\$/\$$tr{startbcode}$1$tr{endbcode}\$/g;
+ s/\$/$tr{dollar}/g; # math mode
+ s/\t/ /g; s/\\,//g; s/\\[ ;]/ /g; # various spaces
+@@ -779,7 +779,7 @@ sub basic_subst {
+ s/\\TeX\{\}/TeX/g;
+ s/\\TeX(\W)/TeX$1/g;
+ s/ *\\circ\b */ o /g;
+- s/\\d?frac{\s*((?:[^{}]|\{[^{}]*\})*)}{\s*((?:[^{}]|\{[^{}]*\})*)}/($1)\/($2)/g;
++ s/\\d?frac\{\s*((?:[^{}]|\{[^{}]*\})*)\}\{\s*((?:[^{}]|\{[^{}]*\})*)\}/($1)\/($2)/g;
+ s(\\d?frac\s*(\d)\s*(\d))(($1/$2))g;
+ s[{\s*(\w)\s*\\over(?![a-zA-Z])\s*(\w)\s*}]{($1/$2)}g;
+ s[{\s*((?:[^{}]|\{[^{}]*\})*)\\over(?![a-zA-Z])\s*((?:[^{}]|\{[^{}]*\})*)}][($1)/($2)]g;
+@@ -796,7 +796,7 @@ sub basic_subst {
+
+ s/(\\string)?\\_/_/g;
+ s/\\([#\$&%|])/$1/g;
+- s/\\(hat(?![a-zA-Z])|\^)({\\?\s*})?/^/g;
++ s/\\(hat(?![a-zA-Z])|\^)(\{\\?\s*\})?/^/g;
+ s/^(\@\[podleader\]head\d *)\\pow(?![a-zA-z])( *)/$1^$2/gm;
+ s/ *\\pow(?![a-zA-z]) */^/g;
+
+@@ -896,21 +896,21 @@ sub basic_subst {
+ s/\\(floor|ceil|round|binom)\{/$1\{/g;
+ s/\\(var|emph)\{([^\}]*)\}/$tr{startit}$2$tr{endit}/g;
+ s/\\fl(?![a-zA-Z])/$tr{startit}flag$tr{endit}/g;
+- s/\\b{([^}]*)}/$tr{startcode}\\$1$tr{endcode}/g;
++ s/\\b\{([^}]*)\}/$tr{startcode}\\$1$tr{endcode}/g;
+ s/\\kbdsidx/\\sidx/g;
+ s/\\sidx\{[^\}]*\}//g unless $to_pod;
+ s/\\[a-zA-Z]*idx\{([^\}]*)\}/$1/g unless $to_pod;
+- s/{\\text{(st|nd|th)}}/\\text{$1}/g;
+- s/\^\\text{th}/-th/g;
+- s/1\^\\text{st}/1st/g;
+- s/2\^\\text{nd}/2nd/g;
++ s/\{\\text\{(st|nd|th)\}\}/\\text{$1}/g;
++ s/\^\\text\{th\}/-th/g;
++ s/1\^\\text\{st\}/1st/g;
++ s/2\^\\text\{nd\}/2nd/g;
+
+ s/\\(text|hbox|Big)//g;
+ s/^([ \t]+)\{ *\\(it|sl|bf|tt)\b/S<$1>{\\$2/gm;
+ s/\{ *\\(it|sl) *(([^{}]+(?=[{}])|\{[^{}]*\})*)\}/$tr{startit}$2$tr{endit}/g;
+ s/\{ *\\bf *(([^{}]+(?=[{}])|\{[^{}]*\})*)\}/$tr{startbold}$1$tr{endbold}/g;
+ s/\{ *\\tt *(([^{}]+(?=[{}])|\{[^{}]*\})*)\}/$tr{startpodcode}$1$tr{endpodcode}/g;
+- $seek=1 if (s/\\emph{ */$tr{startit}/g);
++ $seek=1 if (s/\\emph\{ */$tr{startit}/g);
+ if ($seek) { $seek=0 if (s/\}/$tr{endit}/) }
+ s/\\(backslash|bs)\{(\w)\}/\\$2/g;
+ s/\\(backslash|bs)(?![a-zA-Z]) */\\/g;
+@@ -1028,21 +1028,21 @@ sub TeXprint_topod {
+ # Try to guard \label/\sidx (removing possible '.')
+ # This somehow breaks index...
+ # s/(\\(?:section|subsec(?:ref|idx|op)?(unix)?)\s*{(?:(?:[^{}]+(?=[{}])|{[^{}]+})+)})\.?\s*\\(label|sidx)/$1\n\\$2/;
+- s/(\\(?:section|subsec(?:ref|idx|op)?)\s*{(?:(?:[^{}]+(?=[{}])|{[^{}]+})+)})\.?\s*\\(label|sidx)/$1\n\\$2/;
++ s/(\\(?:section|subsec(?:ref|idx|op)?)\s*\{(?:(?:[^{}]+(?=[{}])|{[^{}]+})+)\})\.?\s*\\(label|sidx)/$1\n\\$2/;
+
+ # last if /\\subsec[\\{}ref]*[\\\${]$help[}\\\$]/o;
+- s/\\chapter\s*{((?:[^{}]|\{[^{}]*\})*)}\s*/\n\n$tr{podleader}head1 NAME\n\nlibPARI - $1\n\n/;
+- s/\\appendix\s*{((?:[^{}]|\{[^{}]*\})*)}\s*/\n\n$tr{podleader}head1 NAME\n\nAppendix - $1\n\n/;
+- s/\\section\s*{((?:[^{}]|\{[^{}]*\})*)}\s*/"\n\n$tr{podleader}head1 " . indexify($1) . "\n\n"/e;
++ s/\\chapter\s*\{((?:[^{}]|\{[^{}]*\})*)\}\s*/\n\n$tr{podleader}head1 NAME\n\nlibPARI - $1\n\n/;
++ s/\\appendix\s*\{((?:[^{}]|\{[^{}]*\})*)\}\s*/\n\n$tr{podleader}head1 NAME\n\nAppendix - $1\n\n/;
++ s/\\section\s*\{((?:[^{}]|\{[^{}]*\})*)\}\s*/"\n\n$tr{podleader}head1 " . indexify($1) . "\n\n"/e;
+
+ # Try to delimit by :
+- s/\\subsec(?:ref)?(?:unix)?\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}([^\n]*):[\n ]/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
+- s/\\subsubsec(?:ref)?(?:unix)?\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}([^:]*):\s*/"\n\n$tr{podleader}head3 " . indexify("$1$3") . "\n\n"/e;
++ s/\\subsec(?:ref)?(?:unix)?\s*\{(([^{}]+(?=[{}])|{[^{}]+})+)\}([^\n]*):[\n ]/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
++ s/\\subsubsec(?:ref)?(?:unix)?\s*\{(([^{}]+(?=[{}])|{[^{}]+})+)\}([^:]*):\s*/"\n\n$tr{podleader}head3 " . indexify("$1$3") . "\n\n"/e;
+ s/\\subsubsec\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}(.*)$/"\n\n$tr{podleader}head3 " . indexify("$1") . "$3\n\n"/me;
+ s/\\subseckbd\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}([^:]*):\s*/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
+ # Try to delimit by ' '
+- s/\\subsec(?:ref)?(?:unix)?\s*{(([^{}]+(?=[{}])|{[^{}]+})+)}(\S*)\s+/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
+- s/\\subsec(?:title)?(?:unix)?\s*{(([^{}]+(?=[{}])|{[^{}]*})+)}:?\s*/"\n\n$tr{podleader}head2 " . indexify("$1") . "\n\n"/e;
++ s/\\subsec(?:ref)?(?:unix)?\s*\{(([^{}]+(?=[{}])|{[^{}]+})+)\}(\S*)\s+/"\n\n$tr{podleader}head2 " . indexify("$1$3") . "\n\n"/e;
++ s/\\subsec(?:title)?(?:unix)?\s*\{(([^{}]+(?=[{}])|{[^{}]*})+)\}:?\s*/"\n\n$tr{podleader}head2 " . indexify("$1") . "\n\n"/e;
+
+ # This is to skip preface in refcard:
+ /\Q$tr{podleader}\Ehead1|\\title(?![a-zA-Z])\s*\{/o and $seen_start = 1
+@@ -1097,18 +1097,18 @@ sub TeXprint_topod {
+ s/\$\$(.*?)\$\$\s*/\n\nS< >$tr{startcode}$1$tr{endcode}\n\n/gs;
+ s/\$([^\$]+)\$/$tr{startcode}$1$tr{endcode}/g;
+
+- s/\\s(?:ref|idx){\s*([^{}]*)}/"X<" . for_index($1) . ">"/ge; #
+- s/\\(?:ref|idx){\s*([^{}]*)}/"X<" . for_index($1) . ">$1"/ge;
++ s/\\s(?:ref|idx)\{\s*([^{}]*)\}/"X<" . for_index($1) . ">"/ge; #
++ s/\\(?:ref|idx)\{\s*([^{}]*)\}/"X<" . for_index($1) . ">$1"/ge;
+
+ # Conflict between different versions of PARI and refcard:
+-# s/\\(?:key|li)\s*{(.*)}\s*{(.+)}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/msg;
+-# s/\\(?:key|li)\s*{(.*)}\s*{}[ \t]*\n/\n\n=back\n\n$1\n\n=over\n\n/mgs;
+-# s/\\(key|var)(?![a-zA-Z])\s*{(\w+)}/C<$2>/mg;
+- s/\\var\s*{X<(\w+)>(\w+)}/X<$1>$tr{startcode}$2$tr{endcode}/mg;
+- s/\\var\s*{f{}lag}/$tr{startcode}flag$tr{endcode}/mg;
+-
+- s/\\metax(?![a-zA-Z])\s*{(.*)}\s*{\s*(\w+)(?=C\<)(.*)}[ \t]*\n/\n\n=item C<L<$2>$3>\n\n$1\n\n/mg;
+- s/\\metax(?![a-zA-Z])\s*{(.*)}\s*{(.*)}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/mg;
++# s/\\(?:key|li)\s*\{(.*)\}\s*\{(.+)\}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/msg;
++# s/\\(?:key|li)\s*\{(.*)\}\s*\{\}[ \t]*\n/\n\n=back\n\n$1\n\n=over\n\n/mgs;
++# s/\\(key|var)(?![a-zA-Z])\s*\{(\w+)\}/C<$2>/mg;
++ s/\\var\s*\{X<(\w+)>(\w+)\}/X<$1>$tr{startcode}$2$tr{endcode}/mg;
++ s/\\var\s*\{f\{\}lag\}/$tr{startcode}flag$tr{endcode}/mg;
++
++ s/\\metax(?![a-zA-Z])\s*\{(.*)\}\s*\{\s*(\w+)(?=C\<)(.*)\}[ \t]*\n/\n\n=item C<L<$2>$3>\n\n$1\n\n/mg;
++ s/\\metax(?![a-zA-Z])\s*\{(.*)\}\s*\{(.*)\}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/mg;
+ s/C\<\{\}=/C\<=/g;
+ s/\\fl(?![a-zA-Z])/I<flag>/g;
+ s/\\file(?![a-zA-Z])/F<file>/g;
+
Copied: pari-sage/repos/community-staging-x86_64/public_memory_functions.patch (from rev 137432, pari-sage/trunk/public_memory_functions.patch)
===================================================================
--- community-staging-x86_64/public_memory_functions.patch (rev 0)
+++ community-staging-x86_64/public_memory_functions.patch 2015-07-26 17:04:53 UTC (rev 137433)
@@ -0,0 +1,61 @@
+diff --git a/src/headers/paridecl.h b/src/headers/paridecl.h
+index 7067183..4ede6ed 100644
+--- a/src/headers/paridecl.h
++++ b/src/headers/paridecl.h
+@@ -2819,6 +2819,9 @@ GEN pari_thread_start(struct pari_thread *t);
+ void pari_thread_valloc(struct pari_thread *t, size_t s, size_t v, GEN arg);
+ GEN pari_version(void);
+ void pari_warn(int numerr, ...);
++void * pari_mainstack_malloc(size_t size);
++void pari_mainstack_mfree(void *s, size_t size);
++void pari_mainstack_free(struct pari_mainstack *st);
+ void paristack_alloc(size_t rsize, size_t vsize);
+ void paristack_newrsize(ulong newsize);
+ void paristack_resize(ulong newsize);
+diff --git a/src/language/init.c b/src/language/init.c
+index 7b5922d..2a578d7 100644
+--- a/src/language/init.c
++++ b/src/language/init.c
+@@ -612,7 +612,7 @@ pari_add_oldmodule(entree *ep)
+ #ifndef MAP_NORESERVE
+ #define MAP_NORESERVE 0
+ #endif
+-static void *
++void *
+ pari_mainstack_malloc(size_t size)
+ {
+ void *b = mmap(NULL, size, PROT_READ|PROT_WRITE,
+@@ -620,7 +620,7 @@ pari_mainstack_malloc(size_t size)
+ return (b == MAP_FAILED) ? NULL: b;
+ }
+
+-static void
++void
+ pari_mainstack_mfree(void *s, size_t size)
+ {
+ munmap(s, size);
+@@ -634,13 +634,13 @@ pari_mainstack_mreset(void *s, size_t size)
+
+ #else
+ #define PARI_STACK_ALIGN (0x40UL)
+-static void *
++void *
+ pari_mainstack_malloc(size_t s)
+ {
+ return malloc(s); /* NOT pari_malloc, e_MEM would be deadly */
+ }
+
+-static void
++void
+ pari_mainstack_mfree(void *s, size_t size) { (void) size; free(s); }
+
+ static void
+@@ -681,7 +681,7 @@ pari_mainstack_alloc(struct pari_mainstack *st, size_t rsize, size_t vsize)
+ st->memused = 0;
+ }
+
+-static void
++void
+ pari_mainstack_free(struct pari_mainstack *st)
+ {
+ pari_mainstack_mfree((void*)st->vbot, st->vsize ? st->vsize : fix_size(st->rsize));
More information about the arch-commits
mailing list