Hello ports,

Here is an update for math/netcdf, laying the groundwork for py-netcdf and
python-pvlib, two ports I need for my projects.

Things to consider:
 - it's been decades since I worked in ports
 - netcdf is now split into C, C++ and Fortran parts, this update only
   preserves the C functionality
 - C++ and Fortran are available with different version numbers so they should
   probably go in their own packages which could follow at a later point
 - passes make test, needs gdiff and bash as TEST_DEPENDS, remote tests are
   disabled due to sporadic problems with the test server
 - docs are also gone, therefore the two patches from 3.6.2 can go away
 - the only dependency in-tree right now seems to be graphichs/gmt, checked it
   still builds OK
 - update probably needs some tuning (see #1)

-m


Index: Makefile
===================================================================
RCS file: /cvs/ports/math/netcdf/Makefile,v
retrieving revision 1.33
diff -u -p -u -p -r1.33 Makefile
--- Makefile    28 Oct 2018 07:31:29 -0000      1.33
+++ Makefile    5 Mar 2019 09:29:41 -0000
@@ -1,45 +1,54 @@
-# $OpenBSD: Makefile,v 1.33 2018/10/28 07:31:29 bentley Exp $ 
+# $OpenBSD: Makefile,v 1.33 2018/10/28 07:31:29 bentley Exp $
 
-BROKEN-powerpc=        fails to build
-BROKEN-hppa =  fails to configure
+# let's give it a chance?
+#BROKEN-powerpc=       fails to build
+#BROKEN-hppa = fails to configure
 
 COMMENT=       library for machine-independent, array-oriented data access
 
-DISTNAME=      netcdf-3.6.2
-REVISION =     7
+V=             4.6.3
+NAME=          netcdf
+DISTNAME=      ${NAME}-${V}
+DISTFILES=     ${NAME}-c-${V}${EXTRACT_SUFX}
+
 CATEGORIES=    math
 
-SHARED_LIBS=   netcdf          4.0 \
-               netcdff         4.0 \
-               netcdf_c++      4.0
+SHARED_LIBS=   netcdf          4.0
 
 HOMEPAGE=      http://www.unidata.ucar.edu/software/netcdf/
 
 MAINTAINER=    Tom Knienieder <t...@knienieder.com>
-MODULES =      fortran
-MODFORTRAN_COMPILER = g77
-BUILD_DEPENDS =        ${MODFORTRAN_BUILD_DEPENDS}
+
+DIST_SUBDIR=    ${DISTNAME}
+WRKDIST=        ${WRKDIR}/${NAME}-c-${V}
 
 # BSD-like
 PERMIT_PACKAGE_CDROM=  Yes
 
-WANTLIB=               c m ${COMPILER_LIBCXX}
+WANTLIB=               c m z pthread
+WANTLIB+=              curl crypto nghttp2 ssl
+WANTLIB+=              hdf5 hdf5_hl
+
+LIB_DEPENDS =          net/curl \
+                       math/hdf5
+
+TEST_DEPENDS=          shells/bash \
+                       textproc/gdiff
 
 COMPILER =             base-clang ports-gcc base-gcc
 
 MASTER_SITES=          ftp://ftp.unidata.ucar.edu/pub/netcdf/
 
 CONFIGURE_STYLE=       gnu
-CONFIGURE_ENV=         CPPFLAGS="-Df2cFortran"
+CONFIGURE_ENV+=                LDFLAGS="-L${LOCALBASE}/lib" \
+                       CPPFLAGS="-I${LOCALBASE}/include"
+
 CONFIGURE_ARGS+=       --enable-shared \
-                       --disable-f90
+                       --disable-doxygen \
+                       --with-hdf5=${LOCALBASE} \
+                       --disable-dap-remote-tests
 
 USE_GMAKE=             Yes
 SEPARATE_BUILD=                Yes
-
-post-install:
-       ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/netcdf
-       @cd ${WRKSRC}/man && ${INSTALL_DATA} *.txt *.pdf \
-               ${PREFIX}/share/doc/netcdf
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/math/netcdf/distinfo,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 distinfo
--- distinfo    18 Jan 2015 03:14:28 -0000      1.6
+++ distinfo    5 Mar 2019 09:29:41 -0000
@@ -1,2 +1,2 @@
-SHA256 (netcdf-3.6.2.tar.gz) = /qp2c/Np5ftX/MUUJuK+aUIo3cwUH8P9IDmSaftrkxE=
-SIZE (netcdf-3.6.2.tar.gz) = 5312882
+SHA256 (netcdf-4.6.3/netcdf-c-4.6.3.tar.gz) = 
M1/fFtdTH0MK115zLtGpo/yDrT75H7M6cBGaVV3VQVw=
+SIZE (netcdf-4.6.3/netcdf-c-4.6.3.tar.gz) = 5961248
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/math/netcdf/pkg/PLIST,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 PLIST
--- pkg/PLIST   16 Mar 2015 18:07:50 -0000      1.6
+++ pkg/PLIST   5 Mar 2019 09:29:41 -0000
@@ -1,36 +1,27 @@
-@comment $OpenBSD: PLIST,v 1.6 2015/03/16 18:07:50 naddy Exp $
+@comment $OpenBSD: PLIST,v$
+bin/nc-config
+@bin bin/nccopy
 @bin bin/ncdump
 @bin bin/ncgen
-include/ncvalues.h
+@bin bin/ncgen3
 include/netcdf.h
-include/netcdf.hh
-include/netcdf.inc
-include/netcdfcpp.h
+include/netcdf_aux.h
+include/netcdf_filter.h
+include/netcdf_mem.h
+include/netcdf_meta.h
+lib/libbzip2.a
+lib/libbzip2.la
+lib/libbzip2.so
+lib/libmisc.a
+lib/libmisc.la
+lib/libmisc.so
 lib/libnetcdf.a
 lib/libnetcdf.la
+lib/libnetcdf.settings
 @lib lib/libnetcdf.so.${LIBnetcdf_VERSION}
-lib/libnetcdf_c++.a
-lib/libnetcdf_c++.la
-@lib lib/libnetcdf_c++.so.${LIBnetcdf_c++_VERSION}
-lib/libnetcdff.a
-lib/libnetcdff.la
-@lib lib/libnetcdff.so.${LIBnetcdff_VERSION}
+lib/pkgconfig/netcdf.pc
+@man man/man1/nccopy.1
 @man man/man1/ncdump.1
 @man man/man1/ncgen.1
+@man man/man1/ncgen3.1
 @man man/man3/netcdf.3
-@man man/man3/netcdf_f77.3
-share/doc/netcdf/
-share/doc/netcdf/netcdf-c.pdf
-share/doc/netcdf/netcdf-c.txt
-share/doc/netcdf/netcdf-cxx.pdf
-share/doc/netcdf/netcdf-cxx.txt
-share/doc/netcdf/netcdf-f77.pdf
-share/doc/netcdf/netcdf-f77.txt
-share/doc/netcdf/netcdf-f90.pdf
-share/doc/netcdf/netcdf-f90.txt
-share/doc/netcdf/netcdf-install.pdf
-share/doc/netcdf/netcdf-install.txt
-share/doc/netcdf/netcdf-tutorial.pdf
-share/doc/netcdf/netcdf-tutorial.txt
-share/doc/netcdf/netcdf.pdf
-share/doc/netcdf/netcdf.txt
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-dap4_test_test_data_sh        Mon Mar  4 19:58:19 2019
@@ -0,0 +1,32 @@
+$OpenBSD$
+
+Index: dap4_test/test_data.sh
+--- dap4_test/test_data.sh.orig
++++ dap4_test/test_data.sh
+@@ -21,8 +21,8 @@ for f in $F ; do
+     fi
+     ${NCDUMP} ./results_test_data/${f}.nc > ./results_test_data/${f}.d4d
+     if test "x${TEST}" = x1 ; then
+-      if ! diff -wBb ${BASELINE}/${f}.d4d ./results_test_data/${f}.d4d ; then
+-          failure "diff -wBb ${BASELINE}/${f}.d4d 
./results_test_data/${f}.d4d"
++      if ! gdiff -wBb ${BASELINE}/${f}.d4d ./results_test_data/${f}.d4d ; then
++          failure "gdiff -wBb ${BASELINE}/${f}.d4d 
./results_test_data/${f}.d4d"
+       fi
+     elif test "x${RESET}" = x1 ; then
+       echo "${f}:"
+@@ -77,13 +77,13 @@ if test "x${CDLDIFF}" = x1 ; then
+       echo "Not found: ${CDLTESTFILES}/${STEM}.cdl"
+       continue
+     fi
+-    echo "diff -wBb ${CDLTESTFILES}/${STEM}.cdl ./results_test_data/${f}.d4d"
++    echo "gdiff -wBb ${CDLTESTFILES}/${STEM}.cdl ./results_test_data/${f}.d4d"
+     rm -f ./b1 ./b2 ./r1 ./r2
+     trim ${CDLTESTFILES}/${STEM}.cdl ./b1
+     trim ./results_test_data/${f}.d4d ./r1
+     baseclean b1 b2
+     resultclean r1 r2
+-    if ! diff -wBb ./b2 ./r2 ; then
++    if ! gdiff -wBb ./b2 ./r2 ; then
+       failure "${f}"
+     fi
+   done
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-dap4_test_test_meta_sh        Mon Mar  4 19:58:19 2019
@@ -0,0 +1,32 @@
+$OpenBSD$
+
+Index: dap4_test/test_meta.sh
+--- dap4_test/test_meta.sh.orig
++++ dap4_test/test_meta.sh
+@@ -34,8 +34,8 @@ for f in ${F} ; do
+     fi
+     ${NCDUMP} ${DUMPFLAGS} -h ./results_test_meta/${f} > 
./results_test_meta/${f}.d4m
+     if test "x${TEST}" = x1 ; then
+-      if ! diff -wBb ${BASELINE}/${f}.d4m ./results_test_meta/${f}.d4m ; then
+-          failure "diff -wBb ${BASELINE}/${f}.ncdump 
./results_test_meta/${f}.d4m"
++      if ! gdiff -wBb ${BASELINE}/${f}.d4m ./results_test_meta/${f}.d4m ; then
++          failure "gdiff -wBb ${BASELINE}/${f}.ncdump 
./results_test_meta/${f}.d4m"
+       fi
+     elif test "x${RESET}" = x1 ; then
+       echo "${f}:" 
+@@ -45,12 +45,12 @@ done
+ 
+ if test "x${CDLDIFF}" = x1 ; then
+   for f in $CDL ; do
+-    echo "diff -wBb ${CDLTESTFILES}/${f}.cdl ./results_test_meta/${f}.d4m"
++    echo "gdiff -wBb ${CDLTESTFILES}/${f}.cdl ./results_test_meta/${f}.d4m"
+     rm -f ./tmp
+     cat ${CDLTESTFILES}/${f}.cdl \
+     cat >./tmp
+-    echo diff -wBbu ./tmp ./results_test_meta/${f}.d4m
+-    if ! diff -wBbu ./tmp ./results_test_meta/${f}.d4m ; then
++    echo gdiff -wBbu ./tmp ./results_test_meta/${f}.d4m
++    if ! gdiff -wBbu ./tmp ./results_test_meta/${f}.d4m ; then
+       failure "${f}" 
+     fi
+   done
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-dap4_test_test_parse_sh       Mon Mar  4 19:58:19 2019
@@ -0,0 +1,27 @@
+$OpenBSD$
+
+Index: dap4_test/test_parse.sh
+--- dap4_test/test_parse.sh.orig
++++ dap4_test/test_parse.sh
+@@ -20,18 +20,18 @@ for f in $F ; do
+       failure "${f}"
+     fi
+     if test "x${TEST}" = x1 ; then
+-      if ! diff -wBb ${BASELINE}/${f}.d4p ./results_test_parse/${f}.d4p ; then
++      if ! gdiff -wBb ${BASELINE}/${f}.d4p ./results_test_parse/${f}.d4p ; 
then
+           failure "${f}"
+       fi
+     elif test "x${DIFF}" = x1 ; then
+-      echo "diff -wBb ${DMRTESTFILES}/${f}.dmr ./results_test_parse/${f}.d4p"
++      echo "gdiff -wBb ${DMRTESTFILES}/${f}.dmr ./results_test_parse/${f}.d4p"
+       rm -f ./tmp
+       cat ./results_test_parse/${f}.d4p \
+       | sed -e '/<Dimensions>/d' -e '/<Types>'/d -e '/<Variables>'/d -e 
'/<Groups>'/d \
+       | sed -e '/<\/Dimensions>/d' -e '/<\/Types>'/d -e '/<\/Variables>'/d -e 
'/<\/Groups>'/d  \
+       | sed -e '/_edu.ucar.opaque.size/,+2d' \
+       | cat > ./tmp
+-      if ! diff -wBb ${DMRTESTFILES}/${f}.dmr ./tmp ; then
++      if ! gdiff -wBb ${DMRTESTFILES}/${f}.dmr ./tmp ; then
+           failure "${f}" 
+       fi
+     elif test "x${RESET}" = x1 ; then
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-dap4_test_test_raw_sh Mon Mar  4 19:58:19 2019
@@ -0,0 +1,27 @@
+$OpenBSD$
+
+Index: dap4_test/test_raw.sh
+--- dap4_test/test_raw.sh.orig
++++ dap4_test/test_raw.sh
+@@ -51,8 +51,8 @@ for f in $F ; do
+         failure "${URL}"
+     fi
+     if test "x${TEST}" = x1 ; then
+-      if ! diff -wBb ${BASELINERAW}/${f}.dmp 
${builddir}/results_test_raw/${f}.dmp ; then
+-          failure "diff ${f}.dmp"
++      if ! gdiff -wBb ${BASELINERAW}/${f}.dmp 
${builddir}/results_test_raw/${f}.dmp ; then
++          failure "gdiff ${f}.dmp"
+       fi
+     elif test "x${RESET}" = x1 ; then
+       echo "${f}:"
+@@ -60,8 +60,8 @@ for f in $F ; do
+     elif test "x${DIFF}" = x1 ; then
+       echo "hdrtest: ${f}"
+       baseclean
+-        if ! diff -wBb ${BASELINERAW}/${f}.dmp ${BASELINE}/${f}.ncdump ; then
+-          failure diff -wBb ${BASELINERAW}/${f}.dmp ${BASELINE}/${f}.ncdump
++        if ! gdiff -wBb ${BASELINERAW}/${f}.dmp ${BASELINE}/${f}.ncdump ; then
++          failure gdiff -wBb ${BASELINERAW}/${f}.dmp ${BASELINE}/${f}.ncdump
+       fi
+     fi
+ done
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-libdispatch_dfile_c   Tue Mar  5 09:01:04 2019
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: libdispatch/dfile.c
+--- libdispatch/dfile.c.orig
++++ libdispatch/dfile.c
+@@ -32,7 +32,6 @@
+ #ifdef HAVE_STDIO_H
+ #include <stdio.h>
+ #endif
+-extern int fileno(FILE*);
+ 
+ #include "ncdispatch.h"
+ #include "netcdf_mem.h"
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-libdispatch_dparallel_c       Tue Mar  5 09:00:56 2019
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: libdispatch/dparallel.c
+--- libdispatch/dparallel.c.orig
++++ libdispatch/dparallel.c
+@@ -10,7 +10,6 @@
+ #ifdef HAVE_STDIO_H
+ #include <stdio.h>
+ #endif
+-extern int fileno(FILE*);
+ 
+ /**
+ Create a netCDF file for parallel I/O.
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-nc_test4_tst_camrun_c Mon Mar  4 12:09:14 2019
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Index: nc_test4/tst_camrun.c
+--- nc_test4/tst_camrun.c.orig
++++ nc_test4/tst_camrun.c
+@@ -685,10 +685,10 @@ get_mem_used2(int *mem_used)
+       fscanf(pf, "%u %u %u %u %u %u", &size, &resident, &share,
+            &text, &lib, &data);
+       *mem_used = (data * page_size) / MEGABYTE;
++      fclose(pf);
+    }
+    else
+       *mem_used = -1;
+-  fclose(pf);
+ }
+ 
+ int
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-ncgen3_ncgen_l        Tue Mar  5 09:00:56 2019
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: ncgen3/ncgen.l
+--- ncgen3/ncgen.l.orig
++++ ncgen3/ncgen.l
+@@ -25,8 +25,6 @@
+    We include lexical definitions for all three, but use the second version.
+ */
+ 
+-extern int fileno(FILE*);
+-
+ /* lex specification for tokens for ncgen */
+ 
+ /* Fill value used by ncdump from version 2.4 and later.  Should match
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-ncgen3_ncgen_y        Tue Mar  5 09:00:56 2019
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: ncgen3/ncgen.y
+--- ncgen3/ncgen.y.orig
++++ ncgen3/ncgen.y
+@@ -19,8 +19,6 @@ static char SccsId[] = "$Id: ncgen.y,v 1.34 2010/03/31
+ #include        "ncgen.h"
+ #include      "genlib.h"      /* for grow_darray() et al */
+ 
+-extern int fileno(FILE*);
+-
+ typedef struct Symbol {               /* symbol table entry */
+       char            *name;
+       struct Symbol   *next;
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-ncgen3_ncgentab_c     Tue Mar  5 09:00:56 2019
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: ncgen3/ncgentab.c
+--- ncgen3/ncgentab.c.orig
++++ ncgen3/ncgentab.c
+@@ -84,8 +84,6 @@ static char SccsId[] = "$Id: ncgen.y,v 1.34 2010/03/31
+ #include        "ncgen.h"
+ #include      "genlib.h"      /* for grow_darray() et al */
+ 
+-extern int fileno(FILE*);
+-
+ typedef struct Symbol {               /* symbol table entry */
+       char            *name;
+       struct Symbol   *next;
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-ncgen3_ncgenyy_c      Tue Mar  5 09:00:56 2019
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: ncgen3/ncgenyy.c
+--- ncgen3/ncgenyy.c.orig
++++ ncgen3/ncgenyy.c
+@@ -865,8 +865,6 @@ char *ncgtext;
+    We include lexical definitions for all three, but use the second version.
+ */
+ 
+-extern int fileno(FILE*);
+-
+ /* lex specification for tokens for ncgen */
+ 
+ /* Fill value used by ncdump from version 2.4 and later.  Should match
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-ncgen_ncgen_l Tue Mar  5 09:34:24 2019
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: ncgen/ncgen.l
+--- ncgen/ncgen.l.orig
++++ ncgen/ncgen.l
+@@ -38,8 +38,6 @@
+ #include "ncgen.h"
+ #include "ncgeny.h"
+ 
+-EXTERNL int fileno(FILE*);
+-
+ #define FILL_STRING "_"
+ #define XDR_INT32_MIN (-2147483647-1)
+ #define XDR_INT32_MAX 2147483647
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-ncgen_ncgenl_c        Tue Mar  5 09:34:20 2019
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: ncgen/ncgenl.c
+--- ncgen/ncgenl.c.orig
++++ ncgen/ncgenl.c
+@@ -1420,8 +1420,6 @@ char *yytext;
+ #include "ncgen.h"
+ #include "ncgeny.h"
+ 
+-EXTERNL int fileno(FILE*);
+-
+ #define FILL_STRING "_"
+ #define XDR_INT32_MIN (-2147483647-1)
+ #define XDR_INT32_MAX 2147483647
--- /dev/null   Tue Mar  5 11:15:40 2019
+++ patches/patch-oc2_ocdump_c  Tue Mar  5 09:00:56 2019
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: oc2/ocdump.c
+--- oc2/ocdump.c.orig
++++ oc2/ocdump.c
+@@ -10,8 +10,6 @@
+ #include <sys/stat.h>
+ #endif
+ 
+-extern int fileno(FILE*);
+-
+ #include "ocinternal.h"
+ #include "ocdebug.h"
+ 

Reply via email to