summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorConnor Behan2015-06-08 15:21:30 -0400
committerConnor Behan2015-06-08 15:21:30 -0400
commitc29326187aba75a296d164dd1efb423c24ad002d (patch)
treea93f71ca00cd8e6419a79b48e8438137b75607ae
downloadaur-c29326187aba75a296d164dd1efb423c24ad002d.tar.gz
Initial import
-rw-r--r--.SRCINFO50
-rw-r--r--PKGBUILD86
-rw-r--r--default_comment.patch44
-rw-r--r--dlmodule.patch12
-rw-r--r--fortran.patch26
-rw-r--r--grace-mimetypes7
-rw-r--r--grace.desktop9
-rw-r--r--grace.install14
-rw-r--r--grace.pngbin0 -> 345 bytes
-rw-r--r--handle_nans.patch20
-rw-r--r--longer_formulas.patch12
-rw-r--r--meaningful_timestamp.patch12
-rw-r--r--mkstemp.patch55
-rw-r--r--netcdf_fftw2.patch33
-rw-r--r--pdfdrv.patch11
15 files changed, 391 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..11c3386d3732
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,50 @@
+pkgbase = grace-openmotif
+ pkgdesc = 2D plotting tool
+ pkgver = 5.1.25
+ pkgrel = 1
+ url = http://plasma-gate.weizmann.ac.il/Grace/
+ install = grace.install
+ arch = i686
+ arch = x86_64
+ license = GPL
+ depends = libjpeg
+ depends = libpng
+ depends = openmotif
+ depends = t1lib
+ depends = zlib
+ depends = netcdf
+ depends = xbae
+ depends = pdflib-lite
+ depends = xdg-utils
+ provides = grace
+ conflicts = grace
+ replaces = grace
+ source = ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace5/grace-5.1.25.tar.gz
+ source = mkstemp.patch
+ source = netcdf_fftw2.patch
+ source = fortran.patch
+ source = dlmodule.patch
+ source = pdfdrv.patch
+ source = longer_formulas.patch
+ source = default_comment.patch
+ source = meaningful_timestamp.patch
+ source = handle_nans.patch
+ source = grace.png
+ source = grace-mimetypes
+ source = grace.desktop
+ md5sums = c0482b1f18b113192946a96f5ff35a4d
+ md5sums = cc9183f093cfb4da3327e725ba574f4a
+ md5sums = 28735e961bd0adf61810cda1932de034
+ md5sums = 03702b4503676fb14dbb9afe003f0b8c
+ md5sums = ca0dae0fde7ec34acbd73a2fae04e656
+ md5sums = 7715ca2b98be6c9bc4e28ab30c9ee069
+ md5sums = 35ed21fed6db617c053ca15deccaca8c
+ md5sums = ecb013fe77b5aa4d6d8eeb009bff7213
+ md5sums = 9ec0b3945719528bb7bcd948d5078080
+ md5sums = abc9f5ebc490e7049c30208dc5fb9835
+ md5sums = 0ccd7a766cb0c84934b60c264d1a1e41
+ md5sums = 3beba5237f56a2ff28b6cd878865b25c
+ md5sums = 3b84533b7d54b4705232f4dfa0923c58
+
+pkgname = grace-openmotif
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..6f6374b1b93c
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,86 @@
+# Contributor: Bernhard Walle <bernhard.walle@gmx.de>
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Contributor: Connor Behan <connor.behan@gmail.com>
+# and patches from http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-visualization/grace/
+# AUR Category: science
+
+pkgname=grace-openmotif
+pkgver=5.1.25
+pkgrel=1
+pkgdesc="2D plotting tool"
+arch=(i686 x86_64)
+url="http://plasma-gate.weizmann.ac.il/Grace/"
+depends=('libjpeg' 'libpng' 'openmotif' 't1lib' 'zlib' 'netcdf' 'xbae' 'pdflib-lite' 'xdg-utils')
+replaces=('grace')
+conflicts=('grace')
+provides=('grace')
+license=('GPL')
+install=grace.install
+# patches
+# mkstemp.patch : move tmpnam to mkstemp (adapted from debian)
+# netcdf_fftw2.patch : fix configure instead of aclocal.m4
+# fortran.patch : fix for missing defines when fortran is disabled
+# dlmodule.patch pdfdrv.patch : fix a leak and pdf driver (from freebsd)
+source=(ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace5/grace-$pkgver.tar.gz \
+ mkstemp.patch \
+ netcdf_fftw2.patch \
+ fortran.patch \
+ dlmodule.patch \
+ pdfdrv.patch \
+ longer_formulas.patch \
+ default_comment.patch \
+ meaningful_timestamp.patch \
+ handle_nans.patch \
+ grace.png \
+ grace-mimetypes \
+ grace.desktop)
+
+
+build() {
+ cd "$srcdir"/grace-$pkgver
+ grep -rl "'H', TRUE" src | xargs sed -i -e "s/'H', TRUE/'H', FALSE/g"
+
+# patch -Np1 < ../netcdf_fftw2.patch
+ patch -Np1 < ../mkstemp.patch
+ patch -Np1 < ../fortran.patch
+ patch -Np1 < ../dlmodule.patch
+ patch -Np1 < ../pdfdrv.patch
+ patch -Np1 < ../longer_formulas.patch
+ patch -Np1 < ../default_comment.patch
+ patch -Np1 < ../meaningful_timestamp.patch
+ patch -Np1 < ../handle_nans.patch
+
+ ./configure --prefix=/usr --exec-prefix=/usr \
+ --enable-grace-home=/usr/share/grace \
+ --disable-xmhtml \
+ --without-bundled-xbae \
+ --without-bundled-t1lib \
+ --with-fftw \
+ --with-f77=/usr/bin/gfortran \
+ --with-helpviewer="xdg-open %s" \
+ --with-editor="xdg-open %s" \
+ --with-printcmd="lpr"
+# --with-fftw-library=/usr/lib/libdfftw.a
+
+ make
+}
+
+package() {
+ cd "$srcdir"/grace-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ cd "$pkgdir"/usr/share/grace && mv bin ../../
+
+ # Desktop integration
+ install -D -m644 "$srcdir/grace.png" \
+ "$pkgdir/usr/share/pixmaps/grace.png"
+
+ install -D -m644 "$srcdir/grace.desktop" \
+ "$pkgdir/usr/share/applications/grace.desktop"
+
+ install -D -m644 "$srcdir/grace-mimetypes" "$pkgdir/usr/share/mime/packages/grace.xml"
+}
+
+md5sums=('c0482b1f18b113192946a96f5ff35a4d' 'cc9183f093cfb4da3327e725ba574f4a' '28735e961bd0adf61810cda1932de034' '03702b4503676fb14dbb9afe003f0b8c' 'ca0dae0fde7ec34acbd73a2fae04e656' '7715ca2b98be6c9bc4e28ab30c9ee069' '35ed21fed6db617c053ca15deccaca8c' 'ecb013fe77b5aa4d6d8eeb009bff7213' '9ec0b3945719528bb7bcd948d5078080' 'abc9f5ebc490e7049c30208dc5fb9835' '0ccd7a766cb0c84934b60c264d1a1e41' '3beba5237f56a2ff28b6cd878865b25c' '3b84533b7d54b4705232f4dfa0923c58')
diff --git a/default_comment.patch b/default_comment.patch
new file mode 100644
index 000000000000..773370b3e719
--- /dev/null
+++ b/default_comment.patch
@@ -0,0 +1,44 @@
+diff -ru grace-5.1.23.orig/src/setwin.c grace-5.1.23/src/setwin.c
+--- grace-5.1.23.orig/src/setwin.c 2013-12-26 14:12:41.000000000 -0800
++++ grace-5.1.23/src/setwin.c 2013-12-26 16:12:58.000000000 -0800
+@@ -758,6 +758,7 @@
+ char *formula[MAX_SET_COLS];
+ int res;
+ int setno, gno;
++ int comment_chars;
+ grarr *t;
+
+ gno = levalui.gno;
+@@ -814,9 +815,11 @@
+ }
+
+ set_parser_setno(gno, setno);
++ comment_chars = 0;
+
+ for (i = 0; i < nscols; i++) {
+ char buf[32], *expr;
++ comment_chars += strlen(formula[i]);
+
+ /* preparing the expression */
+ sprintf(buf, "GRAPH[%d].SET[%d].%s = ", gno, setno, dataset_colname(i));
+@@ -838,6 +841,20 @@
+ }
+ }
+
++ char *comment = malloc((comment_chars + 2 * nscols + 1) * sizeof(char));
++ strcpy(comment, "(");
++ for (i = 0; i < nscols; i++) {
++ strcat(comment, formula[i]);
++
++ if (i != (nscols - 1)) {
++ strcat(comment, ", ");
++ }
++ }
++ strcat(comment, ")");
++ comment[comment_chars + 2 * nscols] = '\0';
++ setcomment(gno, setno, comment);
++ free(comment);
++
+ XCFREE(t->data);
+ t->length = 0;
+
diff --git a/dlmodule.patch b/dlmodule.patch
new file mode 100644
index 000000000000..2ea6ef8fd6bc
--- /dev/null
+++ b/dlmodule.patch
@@ -0,0 +1,12 @@
+--- grace-5.1.22/src/dlmodule.c 2005-11-13 07:45:16.000000000 +0900
++++ grace-5.1.22.new/src/dlmodule.c 2008-06-16 15:28:33.000000000 +0900
+@@ -89,6 +89,9 @@
+ return RETURN_FAILURE;
+ }
+
++ /* clear error indicator */
++ dlerror();
++
+ newkey.data = dlsym(handle, dl_function);
+ if (!newkey.data && (error = dlerror()) != NULL) {
+ errmsg(error);
diff --git a/fortran.patch b/fortran.patch
new file mode 100644
index 000000000000..f3d859e95060
--- /dev/null
+++ b/fortran.patch
@@ -0,0 +1,26 @@
+--- grace-5.1.22/grace_np/gracef_np.c 2008-03-03 11:45:12.000000000 +0000
++++ grace-5.1.22.new/grace_np/grace_np/gracef_np.c 2008-03-03 12:05:37.000000000 +0000
+@@ -1,5 +1,11 @@
+ #include <config.h>
+
++#ifdef NEED_F77_UNDERSCORE
++# define F77_FNAME(fname) fname ## _
++#else
++# define F77_FNAME(fname) fname
++#endif
++
+ #if defined(WITH_F77_WRAPPER)
+
+ #include <stdio.h>
+@@ -8,11 +14,6 @@
+
+ #include "grace_np.h"
+
+-#ifdef NEED_F77_UNDERSCORE
+-# define F77_FNAME(fname) fname ## _
+-#else
+-# define F77_FNAME(fname) fname
+-#endif
+
+ typedef void (*GraceFortranFunctionType) (const char *str, int len);
+ static GraceFortranFunctionType fortran_error = (GraceFortranFunctionType) 0;
diff --git a/grace-mimetypes b/grace-mimetypes
new file mode 100644
index 000000000000..1018e3b36ed3
--- /dev/null
+++ b/grace-mimetypes
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+ <mime-type type="application/grace">
+ <comment>xmgrace format</comment>
+ <glob pattern="*.agr"/>
+ </mime-type>
+</mime-info>
diff --git a/grace.desktop b/grace.desktop
new file mode 100644
index 000000000000..8209cf606424
--- /dev/null
+++ b/grace.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Terminal=false
+Name=Grace
+Type=Application
+Icon=/usr/share/pixmaps/grace.png
+Exec=/usr/bin/xmgrace %f
+Comment=An application for 2D plotting
+Categories=Science;X-Plotting;
diff --git a/grace.install b/grace.install
new file mode 100644
index 000000000000..702c510609bb
--- /dev/null
+++ b/grace.install
@@ -0,0 +1,14 @@
+post_install() {
+ echo "update mime database..."
+ update-mime-database usr/share/mime > /dev/null
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/grace.png b/grace.png
new file mode 100644
index 000000000000..6f95f99b2e98
--- /dev/null
+++ b/grace.png
Binary files differ
diff --git a/handle_nans.patch b/handle_nans.patch
new file mode 100644
index 000000000000..ef2b1f5d1ad7
--- /dev/null
+++ b/handle_nans.patch
@@ -0,0 +1,20 @@
+diff -ru grace-5.1.23.orig/src/ssdata.c grace-5.1.23/src/ssdata.c
+--- grace-5.1.23.orig/src/ssdata.c 2015-03-01 16:13:28.394687611 -0500
++++ grace-5.1.23/src/ssdata.c 2015-03-01 16:06:15.303700533 -0500
+@@ -275,8 +275,14 @@
+ (*nncols)++;
+ } else {
+ /* last resort - treat the field as string, even if not quoted */
+- (*formats)[ncols] = FFORMAT_STRING;
+- (*nscols)++;
++ if (!strncmp(token, "inf", 3) || !strncmp(token, "-inf", 4) ||
++ !strncmp(token, "nan", 3) || !strncmp(token, "-nan", 4)) {
++ (*formats)[ncols] = FFORMAT_NUMBER;
++ (*nncols)++;
++ } else {
++ (*formats)[ncols] = FFORMAT_STRING;
++ (*nscols)++;
++ }
+ }
+ }
+ xfree(buf);
diff --git a/longer_formulas.patch b/longer_formulas.patch
new file mode 100644
index 000000000000..2b4861bc0d75
--- /dev/null
+++ b/longer_formulas.patch
@@ -0,0 +1,12 @@
+diff -ru grace-5.1.23.orig/src/setwin.c grace-5.1.23/src/setwin.c
+--- grace-5.1.23.orig/src/setwin.c 2013-12-26 14:12:41.000000000 -0800
++++ grace-5.1.23/src/setwin.c 2013-12-26 14:16:56.000000000 -0800
+@@ -695,7 +695,7 @@
+ char **cells[MAX_SET_COLS];
+ char *rowlabels[MAX_SET_COLS];
+ short column_widths[1] = {50};
+- int column_maxlengths[1] = {256};
++ int column_maxlengths[1] = {8192};
+
+ levalui.top = CreateDialogForm(app_shell, "Load & evaluate");
+
diff --git a/meaningful_timestamp.patch b/meaningful_timestamp.patch
new file mode 100644
index 000000000000..4a09adcba246
--- /dev/null
+++ b/meaningful_timestamp.patch
@@ -0,0 +1,12 @@
+diff -ru grace-5.1.23.orig/src/utils.c grace-5.1.23/src/utils.c
+--- grace-5.1.23.orig/src/utils.c 2013-12-26 14:12:41.000000000 -0800
++++ grace-5.1.23/src/utils.c 2013-12-26 14:13:25.000000000 -0800
+@@ -1342,6 +1342,8 @@
+ time_t time_value;
+ char *str;
+
++ if (!inwin) return;
++
+ (void) time(&time_value);
+ tm = *localtime(&time_value);
+ str = asctime(&tm);
diff --git a/mkstemp.patch b/mkstemp.patch
new file mode 100644
index 000000000000..402a5162c584
--- /dev/null
+++ b/mkstemp.patch
@@ -0,0 +1,55 @@
+diff -Naur grace-5.1.22/src/editpwin.c grace-5.1.22.new/src/editpwin.c
+--- grace-5.1.22/src/editpwin.c 2006-06-03 17:19:52.000000000 -0400
++++ grace-5.1.22.new/src/editpwin.c 2008-07-26 12:45:21.000000000 -0400
+@@ -776,12 +776,12 @@
+ */
+ void do_ext_editor(int gno, int setno)
+ {
+- char *fname, ebuf[256];
++ char fname[64], ebuf[256];
+ FILE *cp;
+ int save_autos;
+
+- fname = tmpnam(NULL);
+- cp = grace_openw(fname);
++ strcpy(fname, "grace-XXXXXX");
++ cp = fdopen(mkstemp(fname), "wb");
+ if (cp == NULL) {
+ return;
+ }
+diff -Naur grace-5.1.22/src/plotone.c grace-5.1.22.new/src/plotone.c
+--- grace-5.1.22/src/plotone.c 2005-05-19 16:30:25.000000000 -0400
++++ grace-5.1.22.new/src/plotone.c 2008-07-26 12:45:40.000000000 -0400
+@@ -121,19 +121,27 @@
+ sprintf(print_file, "%s.%s", get_docbname(), dev.fext);
+ }
+ strcpy(fname, print_file);
++ prstream = grace_openw(fname);
+ } else {
++ int hdfd;
+ s = get_print_cmd();
+ if (s == NULL || s[0] == '\0') {
+ errmsg("No print command defined, output aborted");
+ return;
+ }
+- tmpnam(fname);
+- /* VMS doesn't like extensionless files */
+- strcat(fname, ".prn");
++ strcpy(fname, "grace-hardcopy-XXXXXX");
++ hdfd=mkstemp(fname);
++ if (hdfd == -1) {
++ errmsg("Could not create a temporary file, output aborted.");
++ return;
++ }
++ prstream = fdopen(hdfd, "wb");
++ if (prstream == NULL) {
++ errmsg("Could not create a temporary file, output aborted.");
++ return;
++ }
+ }
+
+- prstream = grace_openw(fname);
+-
+ if (prstream == NULL) {
+ return;
+ }
diff --git a/netcdf_fftw2.patch b/netcdf_fftw2.patch
new file mode 100644
index 000000000000..6e3ea58f57ea
--- /dev/null
+++ b/netcdf_fftw2.patch
@@ -0,0 +1,33 @@
+diff -Naur grace-5.1.22/configure grace-5.1.22.new/configure
+--- grace-5.1.22/configure 2007-02-16 22:44:49.000000000 +0000
++++ grace-5.1.22.new/configure 2007-09-28 23:03:29.000000000 +0100
+@@ -15614,7 +15614,7 @@
+ int main(void) {
+ char *vlib;
+ vlib = nc_inq_libvers();
+- if (strcmp(vlib, "3.0") < 0) {
++ if (((vlib[0] == '"') && (strcmp(vlib, "\"3.0") < 0)) || ((vlib[0] != '"') && (strcmp(vlib, "3.0") < 0))){
+ exit(1);
+ }
+ exit(0);
+@@ -15722,7 +15722,7 @@
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+
+-#include <fftw.h>
++#include <dfftw.h>
+ #include <string.h>
+ int main(void) {
+ char *vlib = (char *) fftw_version;
+diff -Naur grace-5.1.22/src/fourier.c grace-5.1.22.new/src/fourier.c
+--- grace-5.1.22/src/fourier.c 2004-07-04 03:47:45.000000000 +0700
++++ grace-5.1.22.new/src/fourier.c 2009-06-16 02:51:37.229858237 +0700
+@@ -230,7 +230,7 @@
+ #else
+ /* Start of new FFTW-based transforms by Marcus H. Mendenhall */
+
+-#include <fftw.h>
++#include <dfftw.h>
+ #include <string.h>
+
+ static char *wisdom_file=0;
diff --git a/pdfdrv.patch b/pdfdrv.patch
new file mode 100644
index 000000000000..cb82e8eed181
--- /dev/null
+++ b/pdfdrv.patch
@@ -0,0 +1,11 @@
+--- grace-5.1.22/src/pdfdrv.c 2004-08-05 04:37:47.000000000 +0900
++++ grace-5.1.22.new/src/pdfdrv.c 2008-06-16 15:29:00.000000000 +0900
+@@ -57,6 +57,8 @@
+ # include "motifinc.h"
+ #endif
+
++#define PDF_set_fillrule(handle, rule) PDF_set_parameter(handle, "fillrule", rule)
++
+ static void pdf_error_handler(PDF *p, int type, const char* msg);
+
+ static unsigned long page_scale;