Here is a (hopefully) better update of math/pari. Changes include:
- version 2.11 -> 2.11.1 (bugfix)
- restrict arch to amd64 (aarch64 seems to be the correct name for ports?),
  arm64 and i386. I don't have hardware to test arm64 and i386, so it would be
  great if someone could (as in my previous attempt the port builds with a GMP
  kernel).
- force clang instead of gcc
- build shared library, which is useful for gp2c (the port I sent on Nov 29 now
  works as expected). pari versions are of the form major.minor.patch where
  minor is always odd for stable releases (even for the development version). I
  used (100*major+minor).patch for the OpenBSD lib version, not sure if that's
  ideal. Also, pari creates a symlink named libpari.so to
  libpari-gmp.so.major.minor. There are few other ports doing that, but maybe
  that's not desirable on OpenBSD?
- make the build process honor optimization flags from CFLAGS instead of new
  ones

On Thu, Nov 29, 2018 at 11:04:28PM +0100, Olivier Taïbi wrote:
> On Thu, Nov 29, 2018 at 09:57:54AM -0500, Daniel Dickman wrote:
> > 
> > 
> > > On Nov 23, 2018, at 5:40 PM, Olivier Taïbi <[email protected]> wrote:
> > > 
> > > 
> > > Here is an attempt at an updated port. It now depends on gmp (on pari's
> > > website they recommend the gmp kernel). The use of gmake is probably
> > > overkill.
> > 
> > Thanks. I’ll take a look. I also have an update on my end. Will review and 
> > merge our updates.
> > 
> > Then we can check about the i386 problem after the update 
> > (https://marc.info/?l=openbsd-ports&m=154315956117631&w=2)
> 
> Does this problem still occur if using the gmp kernel (this is what the
> port I sent uses)? See
> https://pari.math.u-bordeaux.fr/faq.html#whichkernel
> I don't have any i386 to test this, unfortunately.
> 
> I am also testing gp2c (attached port), which seems to work on my amd64
> machine (I am using pari for my research, but I am very far from using
> everything in the library), except that gp2c-run looks for a few
> variables in lib/pari/pari.cfg to link compiled scripts (for example
> DLLD and DLLDFLAGS), and these variables are empty with the port of pari
> I sent before.  They are set in pari's config/get_dlld. We should add
> openbsd in several case statements there, I guess DLLD should be cc but
> I'm not sure about the flags. I used
> cc -o %s.so -g -O3 -Wall %s.o -L/usr/local/lib/ -lpari
> and it seems to work.


diff -uNprx CVS /usr/ports/math/pari/Makefile 
/build/usr/ports/math/pari/Makefile
--- /usr/ports/math/pari/Makefile       Sat Feb 16 18:34:09 2019
+++ /build/usr/ports/math/pari/Makefile Sun Mar  3 19:58:40 2019
@@ -1,39 +1,41 @@
-# $OpenBSD: Makefile,v 1.15 2019/01/29 11:43:09 sthen Exp $
+# $OpenBSD: Makefile,v 1.14 2015/02/16 22:57:10 naddy Exp $
 
 COMMENT=       number theory-oriented computer algebra system
 
-DISTNAME=      pari-2.1.7
-REVISION=      0
-EXTRACT_SUFX=  .tgz
+DISTNAME=      pari-2.11.1
+EXTRACT_SUFX=  .tar.gz
 CATEGORIES=    math
 
-HOMEPAGE=      http://pari.math.u-bordeaux.fr/
+HOMEPAGE=      https://pari.math.u-bordeaux.fr/
 
+ONLY_FOR_ARCHS= aarch64 amd64 i386
+
 # GPLv2
 PERMIT_PACKAGE_CDROM=  Yes
-WANTLIB=               X11 c m ncurses readline
+WANTLIB=               X11 c gmp m ncurses readline
 
-MASTER_SITES=          http://pari.math.u-bordeaux.fr/pub/pari/unix/OLD/2.1/
+MASTER_SITES=          https://pari.math.u-bordeaux.fr/pub/pari/unix/
 
 BUILD_DEPENDS=         print/texlive/base
 
+LIB_DEPENDS=    devel/gmp
+
+SHARED_LIBS +=  pari-gmp  0.0 # 211.1
+
 CONFIGURE_SCRIPT=      Configure
 CONFIGURE_STYLE=       simple
 CONFIGURE_ENV=         CFLAGS="${CFLAGS}"
 CONFIGURE_ARGS+=       --datadir=${PREFIX}/share/pari \
-                       --miscdir=${PREFIX}/share/pari \
                        --prefix=${PREFIX} \
-                       --host=${ARCH}
+                       --with-gmp=${PREFIX}
 
-TEST_TARGET=           dobench
+TEST_TARGET=           test-all
 
-.if ${MACHINE_ARCH} == i386
-CFLAGS+=               -Wl,-znotext
-.endif
-
 post-install:
+       mv ${PREFIX}/share/man/man1/* ${PREFIX}/man/man1/
        mv ${PREFIX}/share/pari/doc ${PREFIX}/share/doc/pari
-       mv ${PREFIX}/share/pari/[A-Z]* ${PREFIX}/share/doc/pari
+       mv ${PREFIX}/share/pari/[A-Z]* ${PREFIX}/share/doc/pari/
        mv ${PREFIX}/share/pari/examples ${PREFIX}/share/examples/pari
+       mv ${PREFIX}/share/pari/misc ${PREFIX}/share/misc/pari
 
 .include <bsd.port.mk>
diff -uNprx CVS /usr/ports/math/pari/distinfo 
/build/usr/ports/math/pari/distinfo
--- /usr/ports/math/pari/distinfo       Mon Jan  7 20:42:56 2019
+++ /build/usr/ports/math/pari/distinfo Sun Mar  3 19:55:43 2019
@@ -1,2 +1,2 @@
-SHA256 (pari-2.1.7.tgz) = kULyza8wg8iWLxpcK7Dp/okV99lJDAMxKsI2HH6hVfo=
-SIZE (pari-2.1.7.tgz) = 1542137
+SHA256 (pari-2.11.1.tar.gz) = JKmzJKbp+xYfSd2Tqk3D+LuJlslgUO4EaLL5K0Xqysk=
+SIZE (pari-2.11.1.tar.gz) = 4426390
diff -uNprx CVS /usr/ports/math/pari/patches/patch-Configure 
/build/usr/ports/math/pari/patches/patch-Configure
--- /usr/ports/math/pari/patches/patch-Configure        Mon Sep 15 17:11:35 2014
+++ /build/usr/ports/math/pari/patches/patch-Configure  Sun Mar  3 19:55:55 2019
@@ -1,49 +1,17 @@
-$OpenBSD: patch-Configure,v 1.3 2014/09/15 15:11:35 landry Exp $
---- Configure.orig     Wed Sep 14 13:26:40 2005
-+++ Configure  Thu Sep 11 09:10:43 2014
-@@ -246,7 +246,7 @@ fi
- #  We might need the following :
- #
- echo Looking for some tools first ...
--list='ld zcat gzip ranlib perl emacs'
-+list='ld zcat gzip ranlib perl'
- pathspace=`echo $PATH | sed -e "s/$dir_sep/ /g" | sed -e 's,\\\\,/,g'`
+$OpenBSD$
+
+Index: Configure
+--- Configure.orig
++++ Configure
+@@ -65,6 +65,11 @@ to aid debugging if Configure makes a mistake. Command
  
- for file in $list; do
-@@ -844,7 +844,7 @@ if test -n "$__gnuc__"; then
-       esac
-     ;;
-   esac
--  OPTFLAGS="$OPTFLAGS -DGCC_INLINE $warn"
-+  OPTFLAGS="$CFLAGS -DGCC_INLINE $warn"
-   DBGFLAGS="-g $warn"
-   # Some architectures need -fPIC for building dynamic lib
-   case "$osname-$arch" in hpux-*) DLCFLAGS=-fPIC;; esac
-@@ -1009,7 +1009,7 @@ if test "$optimization" = profiling; then DLLD=; else
- #    aix-*)  DLSUFFIX=a  ;; dynamic linking does not work!
-     sunos-*) sodest=$VersionMajor$VersionMinor.$patch
-              soname=$sodest;;
--    gnu-*|*-alpha|solaris-*|linux-*|freebsd-*)
-+    gnu-*|solaris-*|linux-*|freebsd-*)
-       case $libpari_base in
-         pari) sodest=$version.$patch;; # released versions
-         *) sodest=$patch.0.0;; # unstable versions
-@@ -1047,10 +1047,6 @@ if test -n "$DLLD"; then
-       freebsd-*)  DLLDFLAGS="-Bshareable -x" ;;
-       gnu-*|linux-*)    DLLDFLAGS="-shared -soname \$(LIBPARI_SONAME)" ;;
-       irix-*)     DLLDFLAGS="-shared -elf -no_unresolved -all" ;;
--      *-alpha)    DLLDFLAGS="-shared"; EXTRADLLDFLAGS='${LIBS}'
--         case "$optimization" in
--           full) DLLDFLAGS="$DLLDFLAGS -O3" ;;
--         esac;;
-       sunos-*)    DLLDFLAGS="-assert nodefinitions" ;;
-       solaris-*)  DLLDFLAGS="-G -h \$(LIBPARI_SONAME)" ;;
-       *)          DLLD=;;
-@@ -1162,7 +1158,6 @@ extra_flags=
- list=exp2; . ./look
- list=strftime; . ./look
- case "$arch" in
--  alpha) list='times ftime';; # gp-dyn has problems with getrusage 
-   *) case "$osname" in
-     *cygwin*) list='times ftime';; # getrusage based timer always returns 0
-     *) list='getrusage times ftime';;
+ EOT
+ exec 5>> $config_log
++# on OpenBSD, force clang instead of gcc
++case "$osname" in
++  openbsd) gcc=;;
++esac
++
+ 
+ ####################### CONFIGURE - COMPILATION #############################
+ # $_cc_list (includes 'optimization'), extraflag
diff -uNprx CVS /usr/ports/math/pari/patches/patch-config_Makefile_SH 
/build/usr/ports/math/pari/patches/patch-config_Makefile_SH
--- /usr/ports/math/pari/patches/patch-config_Makefile_SH       Thu Jan  1 
01:00:00 1970
+++ /build/usr/ports/math/pari/patches/patch-config_Makefile_SH Sun Mar  3 
19:55:55 2019
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Index: config/Makefile.SH
+--- config/Makefile.SH.orig
++++ config/Makefile.SH
+@@ -501,9 +501,9 @@ install-lib-dyn-base:
+       $install_implib
+ 
+ install-lib-dyn-link: install-lib-dyn-base
+-      -if test "\$(LIBPARI_DYN)" != "\$(LIBDIR)/\$(LIBPARI_SO)"; then \
++      -if test "\$(LIBPARI_DYN)" != "\$(LIBPARI_SO)"; then \
+           \$(LN) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SO); fi
+-      -if test "\$(LIBPARI_SONAME)" != "\$(LIBPARI_SO)"; then \
++      -if test "\$(LIBPARI_DYN)" != "\$(LIBPARI_SONAME)"; then \
+         \$(LN) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SONAME); fi
+ install-lib-dyn: \$(LIBPARI_DYN) install-lib-dyn-link
+ 
diff -uNprx CVS /usr/ports/math/pari/patches/patch-config_get_cc 
/build/usr/ports/math/pari/patches/patch-config_get_cc
--- /usr/ports/math/pari/patches/patch-config_get_cc    Thu Jan  1 01:00:00 1970
+++ /build/usr/ports/math/pari/patches/patch-config_get_cc      Sun Mar  3 
19:55:55 2019
@@ -0,0 +1,25 @@
+$OpenBSD$
+
+Index: config/get_cc
+--- config/get_cc.orig
++++ config/get_cc
+@@ -81,6 +81,11 @@ if test -z "$__gnuc__"; then
+   . cleanup_exe
+ fi
+ 
++# no gcc!
++case "$osname" in
++  openbsd) __gnuc__=;;
++esac
++
+ # Which Flags for Compiler ?
+ cflags=
+ ASMINLINE=
+@@ -137,6 +142,7 @@ else
+                   sparc*) OPTFLAGS="$OPTFLAGS -xalias_level=any";;
+                 esac;;
+     concentrix-*) OPTFLAGS=-Ogi;;
++    openbsd-*)    OPTFLAGS=;;
+     *)            OPTFLAGS=-O;;
+   esac
+   PRFFLAGS="$PRFFLAGS $OPTFLAGS"
diff -uNprx CVS /usr/ports/math/pari/patches/patch-config_get_dlcflags 
/build/usr/ports/math/pari/patches/patch-config_get_dlcflags
--- /usr/ports/math/pari/patches/patch-config_get_dlcflags      Thu Jan  1 
01:00:00 1970
+++ /build/usr/ports/math/pari/patches/patch-config_get_dlcflags        Sun Mar 
 3 19:55:55 2019
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: config/get_dlcflags
+--- config/get_dlcflags.orig
++++ config/get_dlcflags
+@@ -12,6 +12,7 @@ else #assume native compiler
+   case "$osname" in
+     hpux) DLCFLAGS=+z;;
+     solaris) DLCFLAGS=-KPIC;;
++    openbsd) DLCFLAGS=-fPIC;;
+   esac
+ fi
+ 
diff -uNprx CVS /usr/ports/math/pari/patches/patch-config_get_dlld 
/build/usr/ports/math/pari/patches/patch-config_get_dlld
--- /usr/ports/math/pari/patches/patch-config_get_dlld  Thu Jan  1 01:00:00 1970
+++ /build/usr/ports/math/pari/patches/patch-config_get_dlld    Sun Mar  3 
19:55:55 2019
@@ -0,0 +1,31 @@
+$OpenBSD$
+
+Index: config/get_dlld
+--- config/get_dlld.orig
++++ config/get_dlld
+@@ -14,6 +14,8 @@ case "$osname" in
+       *STABLE*)      sodest=.$version.$patch;; # released version
+       *DEVELOPMENT*) sodest=.$patch.0.0;;      # unstable version
+     esac ;;
++  openbsd) sodest=.`expr '(' 100 '*' $VersionMajor ')' '+' 
$VersionMinor`.$patch
++           soname=$sodest;;
+   sunos) sodest=.$VersionMajor$VersionMinor.$patch
+          soname=$sodest;;
+   hpux) soname= ; sodest= ; DLSUFFIX=sl;;
+@@ -41,7 +43,7 @@ esac
+ 
+ # if DLLD is defined at this point, respect it, even if do_dll=no
+ if test $do_dll = yes -a -z "$DLLD"; then
+-  if test -n "$__gnuc__" -o "$osname" = "solaris"; then
++  if test -n "$__gnuc__" -o "$osname" = "solaris" -o "$osname" = "openbsd"; 
then
+     DLLD="$CC"
+   else
+     DLLD=$ld # don't take risks
+@@ -77,6 +79,7 @@ if test -n "$DLLD"; then
+       aix)     DLLDFLAGS='-r' ;;
+       darwin)  DLLDFLAGS="-compatibility_version $compat_ver -current_version 
$num_ver" ;;
+       freebsd) DLLDFLAGS='-Bshareable -x' ;;
++      openbsd) DLLDFLAGS='-shared' ;;
+       hpux)    DLLDFLAGS='-b' ;;
+       irix)    DLLDFLAGS='-shared -elf -no_unresolved -all' ;;
+       osf1)    DLLDFLAGS='-shared' ;;
diff -uNprx CVS /usr/ports/math/pari/patches/patch-src_test_dotest 
/build/usr/ports/math/pari/patches/patch-src_test_dotest
--- /usr/ports/math/pari/patches/patch-src_test_dotest  Mon Sep 15 17:11:35 2014
+++ /build/usr/ports/math/pari/patches/patch-src_test_dotest    Thu Jan  1 
01:00:00 1970
@@ -1,8 +0,0 @@
-$OpenBSD: patch-src_test_dotest,v 1.1 2014/09/15 15:11:35 landry Exp $
---- src/test/dotest.orig       Thu Sep 11 06:39:25 2014
-+++ src/test/dotest    Thu Sep 11 06:39:37 2014
-@@ -180,3 +180,4 @@ can safely ignore the above warning.
- EOT
- fi
- fi
-+exit 1
diff -uNprx CVS /usr/ports/math/pari/pkg/PLIST 
/build/usr/ports/math/pari/pkg/PLIST
--- /usr/ports/math/pari/pkg/PLIST      Mon Sep 15 17:11:35 2014
+++ /build/usr/ports/math/pari/pkg/PLIST        Sun Mar  3 19:56:08 2019
@@ -1,10 +1,11 @@
-@comment $OpenBSD: PLIST,v 1.2 2014/09/15 15:11:35 landry Exp $
+@comment $OpenBSD: PLIST,v$
 bin/gp
-@bin bin/gp-2.1
+@bin bin/gp-2.11
 bin/gphelp
 bin/tex2mail
 include/pari/
 include/pari/genpari.h
+include/pari/mpinl.h
 include/pari/pari.h
 include/pari/paricast.h
 include/pari/paricfg.h
@@ -13,39 +14,45 @@ include/pari/paridecl.h
 include/pari/parierr.h
 include/pari/parigen.h
 include/pari/pariinl.h
-include/pari/pariport.h
+include/pari/parimt.h
+include/pari/parinf.h
+include/pari/pariold.h
+include/pari/paripriv.h
 include/pari/paristio.h
 include/pari/parisys.h
-include/pari/paritype.h
-lib/libpari.a
-@comment lib/libpari.a.2.1
+include/pari/paritune.h
+@lib lib/libpari-gmp.so.${LIBpari-gmp_VERSION}
+lib/libpari.so
+lib/pari/
+lib/pari/pari.cfg
+@man man/man1/gp-2.11.1
 @man man/man1/gp.1
 @man man/man1/gphelp.1
 @man man/man1/pari.1
 @man man/man1/tex2mail.1
 share/doc/pari/
-share/doc/pari/AUTHORS
-share/doc/pari/Announce.2.1
-share/doc/pari/CHANGES
-share/doc/pari/COMPAT
-share/doc/pari/COPYING
-share/doc/pari/CVS.txt
-share/doc/pari/MACHINES
-share/doc/pari/Makefile
-share/doc/pari/NEW
-share/doc/pari/README
-share/doc/pari/TODO
+share/doc/pari/INSTALL.dvi
+share/doc/pari/PARI/
+share/doc/pari/PARI/822.pm
 share/doc/pari/appa.tex
 share/doc/pari/appb.tex
-share/doc/pari/appc.tex
+share/doc/pari/appd.tex
+share/doc/pari/develop.dvi
+share/doc/pari/develop.tex
+share/doc/pari/libpari.dvi
+share/doc/pari/parallel.dvi
 share/doc/pari/paricfg.tex
-share/doc/pari/paricfg.tex.in
 share/doc/pari/parimacro.tex
 share/doc/pari/pdfmacs.tex
+share/doc/pari/refcard-ell.dvi
+share/doc/pari/refcard-lfun.dvi
+share/doc/pari/refcard-mf.dvi
+share/doc/pari/refcard-nf.dvi
 share/doc/pari/refcard.dvi
-share/doc/pari/refcard.ps
 share/doc/pari/refcard.tex
 share/doc/pari/translations
+share/doc/pari/tutorial-mf.dvi
+share/doc/pari/tutorial-mf.tex
 share/doc/pari/tutorial.dvi
 share/doc/pari/tutorial.tex
 share/doc/pari/users.dvi
@@ -55,6 +62,9 @@ share/doc/pari/usersch2.tex
 share/doc/pari/usersch3.tex
 share/doc/pari/usersch4.tex
 share/doc/pari/usersch5.tex
+share/doc/pari/usersch6.tex
+share/doc/pari/usersch7.tex
+share/doc/pari/usersch8.tex
 share/examples/pari/
 share/examples/pari/EXPLAIN
 share/examples/pari/Inputrc
@@ -63,18 +73,19 @@ share/examples/pari/bench.gp
 share/examples/pari/cl.gp
 share/examples/pari/classno.gp
 share/examples/pari/contfrac.gp
+share/examples/pari/extgcd.c
 share/examples/pari/lucas.gp
-share/examples/pari/matexp.c
 share/examples/pari/rho.gp
 share/examples/pari/squfof.gp
 share/examples/pari/taylor.gp
+share/man/
+share/man/man1/
+share/misc/pari/
+share/misc/pari/README
+share/misc/pari/color.dft
+share/misc/pari/gpalias
+share/misc/pari/gpflog
+share/misc/pari/gprc.dft
+share/misc/pari/xgp
 share/pari/
-share/pari/misc/
-share/pari/misc/README
-share/pari/misc/color.dft
-share/pari/misc/gpalias
-share/pari/misc/gpflog
-share/pari/misc/gprc.dft
-share/pari/misc/new.dic
-share/pari/misc/pari.xpm
-share/pari/misc/xgp
+share/pari/pari.desc

Reply via email to