Date: Sunday, July 26, 2015 @ 19:02:13 Author: arojas Revision: 137432
New snapshot for SageMath 6.8, use upstream perl 5.22 fix Added: pari-sage/trunk/perl_regex.patch Modified: pari-sage/trunk/PKGBUILD Deleted: pari-sage/trunk/no_warnings_fatal.patch -------------------------+ PKGBUILD | 28 +++--- no_warnings_fatal.patch | 8 - perl_regex.patch | 201 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 215 insertions(+), 22 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-07-26 16:46:57 UTC (rev 137431) +++ PKGBUILD 2015-07-26 17:02:13 UTC (rev 137432) @@ -3,24 +3,24 @@ # Contributor: Gaetan Bisson <bis...@archlinux.org> pkgname=pari-sage -_pkgver=2.8-1564-gdeac36e +_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') +license=(GPL) +arch=(i686 x86_64) +depends=(gmp readline libx11) +makedepends=(perl texlive-core) optdepends=('perl: gphelp, tex2mail') -conflicts=('pari') -provides=('pari') +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' 'no_warnings_fatal.patch') -md5sums=('971950d42bd6d953b22f86a02a486878' + 'public_memory_functions.patch' 'perl_regex.patch') +md5sums=('41936ce2dce6bd00a662bf43a772685f' '9172b9faee975cd3fe0f97126ea61af8' - 'ee8dc8a52fb92392b2c82cc47b9af1a8') + '92b24f7e61c6268a4978636b819fba78') prepare() { cd pari-${_pkgver} @@ -27,8 +27,8 @@ # make some private functions public patch -p1 -i "$srcdir"/public_memory_functions.patch -# don't treat Perl warnings as errors, fixed doc build with Perl 5.22 - patch -p0 -i "$srcdir"/no_warnings_fatal.patch +# fix doc build with Perl 5.22 + patch -p1 -i "$srcdir"/perl_regex.patch } build() { @@ -44,6 +44,6 @@ package() { cd pari-${_pkgver} - make DESTDIR="${pkgdir}" install - ln -sf gp.1.gz "${pkgdir}"/usr/share/man/man1/pari.1 + make DESTDIR="$pkgdir" install + ln -sf gp.1.gz "$pkgdir"/usr/share/man/man1/pari.1 } Deleted: no_warnings_fatal.patch =================================================================== --- no_warnings_fatal.patch 2015-07-26 16:46:57 UTC (rev 137431) +++ no_warnings_fatal.patch 2015-07-26 17:02:13 UTC (rev 137432) @@ -1,8 +0,0 @@ ---- src/desc/doc_make.orig 2015-07-04 11:03:38.247781017 +0200 -+++ src/desc/doc_make 2015-07-04 11:03:53.224517403 +0200 -@@ -1,5 +1,4 @@ - #!/usr/bin/perl --use warnings FATAL => 'all'; - use strict; - use PARI::822; - Added: perl_regex.patch =================================================================== --- perl_regex.patch (rev 0) +++ perl_regex.patch 2015-07-26 17:02:13 UTC (rev 137432) @@ -0,0 +1,201 @@ +commit 257750686ae1fe928a2b4b489844c1b57a108bd3 +Author: Karim Belabas <karim.bela...@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.bela...@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; +