Date: Thursday, November 2, 2017 @ 07:58:17 Author: arojas Revision: 265083
libva 2.0.0 rebuild, fix build with fftw3 Added: grace/trunk/grace-fftw3.patch Modified: grace/trunk/PKGBUILD -------------------+ PKGBUILD | 19 ++- grace-fftw3.patch | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 270 insertions(+), 7 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-11-02 07:58:03 UTC (rev 265082) +++ PKGBUILD 2017-11-02 07:58:17 UTC (rev 265083) @@ -5,21 +5,26 @@ pkgname=grace pkgver=5.1.25 -pkgrel=5 +pkgrel=6 pkgdesc="2D plotting tool" arch=(i686 x86_64) url="http://plasma-gate.weizmann.ac.il/Grace/" -depends=('libjpeg' 'libpng' 'openmotif' 't1lib' 'netcdf') -makedepends=('netcdf' 'fftw') +depends=('libjpeg' 'libpng' 'openmotif' 't1lib' 'netcdf' 'fftw') license=('GPL') options=('staticlibs') -source=(ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace5/$pkgname-$pkgver.tar.gz) -md5sums=('c0482b1f18b113192946a96f5ff35a4d') +source=(ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace5/$pkgname-$pkgver.tar.gz grace-fftw3.patch) +md5sums=('c0482b1f18b113192946a96f5ff35a4d' + '0c61460189e4d19713e59a84c28f23c2') +prepare() { + cd $pkgname-$pkgver + sed -i '1,1i#include <zlib.h>' src/rstdrv.c + sed -i 's|png_ptr->jmpbuf|png_jmpbuf(png_ptr)|g' src/rstdrv.c + patch -p1 -i ../grace-fftw3.patch # port to FFTW3 (Debian) +} + build() { cd "$srcdir"/$pkgname-$pkgver - sed -i '1,1i#include <zlib.h>' src/rstdrv.c - sed -i 's|png_ptr->jmpbuf|png_jmpbuf(png_ptr)|g' src/rstdrv.c ./configure --prefix=/usr --exec-prefix=/usr \ --enable-grace-home=/usr/share/grace \ --includedir=/usr/include --libdir=/usr/lib \ Added: grace-fftw3.patch =================================================================== --- grace-fftw3.patch (rev 0) +++ grace-fftw3.patch 2017-11-02 07:58:17 UTC (rev 265083) @@ -0,0 +1,258 @@ +Description: Switch dependency from FFTW2 to FFTW3 +Author: Ionut Georgescu +Bug: http://bugs.debian.org/264201 +Index: grace-5.1.24-patch/src/fourier.c +=================================================================== +--- grace-5.1.24-patch.orig/src/fourier.c ++++ grace-5.1.24-patch/src/fourier.c +@@ -230,7 +230,8 @@ static int bit_swap(int i, int nu) + #else + /* Start of new FFTW-based transforms by Marcus H. Mendenhall */ + +-#include <fftw.h> ++#include <complex.h> ++#include <fftw3.h> + #include <string.h> + + static char *wisdom_file=0; +@@ -258,7 +259,7 @@ void dft(double *jr, double *ji, int n, + fftw_plan plan; + int i; + double ninv; +- FFTW_COMPLEX *cbuf; ++ fftw_complex *cbuf; + static int wisdom_inited=0; + char *ram_cache_wisdom; + int plan_flags; +@@ -274,7 +275,7 @@ void dft(double *jr, double *ji, int n, + if(wisdom_file && wisdom_file[0] ) { + /* if a file was specified in GRACE_FFTW_WISDOM_FILE, try to read it */ + FILE *wf; +- fftw_status fstat; ++ int fstat; + wf=fopen(wisdom_file,"r"); + if(wf) { + fstat=fftw_import_wisdom_from_file(wf); +@@ -286,30 +287,35 @@ void dft(double *jr, double *ji, int n, + } + } + +- plan_flags=using_wisdom? (FFTW_USE_WISDOM | FFTW_MEASURE) : FFTW_ESTIMATE; +- +- plan=fftw_create_plan(n, iflag?FFTW_BACKWARD:FFTW_FORWARD, +- plan_flags | FFTW_IN_PLACE); +- cbuf=xcalloc(n, sizeof(*cbuf)); ++ /* fftw_malloc behaves like malloc except that it properly aligns the array ++ * when SIMD instructions (such as SSE and Altivec) are available. ++ */ ++ cbuf=(fftw_complex *)fftw_malloc(n*sizeof(fftw_complex)); + if(!cbuf) return; ++ + for(i=0; i<n; i++) { +- cbuf[i].re=jr[i]; cbuf[i].im=ji[i]; ++ cbuf[i] = jr[i] + I * ji[i]; + } +- fftw(plan, 1, cbuf, 1, 1, 0, 1, 1); ++ ++ plan_flags=using_wisdom? (FFTW_MEASURE) : FFTW_ESTIMATE; ++ plan=fftw_plan_dft_1d(n, cbuf, cbuf, iflag?FFTW_BACKWARD:FFTW_FORWARD, ++ plan_flags); ++ ++ fftw_execute(plan); + fftw_destroy_plan(plan); + + if(!iflag) { + ninv=1.0/n; + for(i=0; i<n; i++) { +- jr[i]=cbuf[i].re*ninv; ji[i]=cbuf[i].im*ninv; ++ jr[i]=creal(cbuf[i])*ninv; ji[i]=cimag(cbuf[i])*ninv; + } + } else { + for(i=0; i<n; i++) { +- jr[i]=cbuf[i].re; ji[i]=cbuf[i].im; ++ jr[i]=creal(cbuf[i]); ji[i]=cimag(cbuf[i]); + } + } + +- XCFREE(cbuf); ++ fftw_free(cbuf); + + } + +Index: grace-5.1.24-patch/ac-tools/configure.in +=================================================================== +--- grace-5.1.24-patch.orig/ac-tools/configure.in ++++ grace-5.1.24-patch/ac-tools/configure.in +@@ -554,8 +554,17 @@ fi + + if test $fftw = true + then +- ACX_CHECK_FFTW(2.1.3, AC_DEFINE(HAVE_FFTW), +- AC_MSG_RESULT(--> using legacy unoptimized FFT code)) ++ AC_CHECK_HEADERS(fftw3.h, ++ [ ++ AC_CHECK_LIB(fftw3, fftw_execute, ++ [ ++ FFTW_LIB="-lfftw3" ++ AC_DEFINE(HAVE_FFTW) ++ ], ++ [AC_MSG_RESULT([--> using legacy unoptimized FFT code])] ++ ) ++ ], ++ [AC_MSG_RESULT([--> using legacy unoptimized FFT code])]) + fi + + dnl **** check for libz - needed for PDF and PNG drivers and XmHTML +Index: grace-5.1.24-patch/configure +=================================================================== +--- grace-5.1.24-patch.orig/configure ++++ grace-5.1.24-patch/configure +@@ -748,7 +748,6 @@ with_printcmd + enable_debug + enable_maintainer + with_netcdf_libraries +-with_fftw_library + with_zlib_library + with_jpeg_library + with_png_library +@@ -1412,7 +1411,6 @@ Optional Packages: + --with-helpviewer=COMMAND define help viewer command ["mozilla %s"] + --with-printcmd=PROG use PROG for printing + --with-netcdf-libraries=OBJ use OBJ as netCDF libraries [-lnetcdf] +- --with-fftw-library=OBJ use OBJ as FFTW library [-lfftw] + --with-zlib-library=OBJ use OBJ as ZLIB library [-lz] + --with-jpeg-library=OBJ use OBJ as JPEG library [-ljpeg] + --with-png-library=OBJ use OBJ as PNG library [-lpng] +@@ -8225,84 +8223,69 @@ fi + + if test $fftw = true + then ++ for ac_header in fftw3.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default" ++if test "x$ac_cv_header_fftw3_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_FFTW3_H 1 ++_ACEOF + +- +-# Check whether --with-fftw_library was given. +-if test "${with_fftw_library+set}" = set; then : +- withval=$with_fftw_library; fftw_library="$withval" +-fi +- +- if test "x$fftw_library" = "x" +- then +- fftw_library=-lfftw +- fi +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFTW library >= 2.1.3" >&5 +-$as_echo_n "checking for FFTW library >= 2.1.3... " >&6; } +-if ${acx_cv_fftw+:} false; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw_execute in -lfftw3" >&5 ++$as_echo_n "checking for fftw_execute in -lfftw3... " >&6; } ++if ${ac_cv_lib_fftw3_fftw_execute+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if ${acx_cv_fftw_library+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- acx_cv_fftw_library=$fftw_library +-fi +- +- +- save_CFLAGS=$CFLAGS +- save_CPPFLAGS=$CPPFLAGS +- save_LDFLAGS=$LDFLAGS +- save_LIBS=$LIBS +- +- LIBS="$acx_cv_fftw_library $LIBS" +- if test "$cross_compiling" = yes; then : +- acx_cv_fftw="no" +- +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lfftw3 $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +-#include <fftw.h> +-#include <string.h> +- int main(void) { +- char *vlib = (char *) fftw_version; +- if (strcmp(vlib, "2.1.3") < 0) { +- exit(1); +- } +- exit(0); +- } +- ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char fftw_execute (); ++int ++main () ++{ ++return fftw_execute (); ++ ; ++ return 0; ++} + _ACEOF +-if ac_fn_c_try_run "$LINENO"; then : +- acx_cv_fftw="yes" ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_fftw3_fftw_execute=yes + else +- acx_cv_fftw="no" ++ ac_cv_lib_fftw3_fftw_execute=no + fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fftw3_fftw_execute" >&5 ++$as_echo "$ac_cv_lib_fftw3_fftw_execute" >&6; } ++if test "x$ac_cv_lib_fftw3_fftw_execute" = xyes; then : + ++ FFTW_LIB="-lfftw3" ++ $as_echo "#define HAVE_FFTW 1" >>confdefs.h + + +- CFLAGS=$save_CFLAGS +- CPPFLAGS=$save_CPPFLAGS +- LDFLAGS=$save_LDFLAGS +- LIBS=$save_LIBS +- ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> using legacy unoptimized FFT code" >&5 ++$as_echo "--> using legacy unoptimized FFT code" >&6; } + + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_fftw" >&5 +-$as_echo "$acx_cv_fftw" >&6; } +- if test "$acx_cv_fftw" = "yes" +- then +- FFTW_LIB="$acx_cv_fftw_library" +- $as_echo "#define HAVE_FFTW 1" >>confdefs.h + +- else +- FFTW_LIB= +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> using legacy unoptimized FFT code" >&5 ++ ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> using legacy unoptimized FFT code" >&5 + $as_echo "--> using legacy unoptimized FFT code" >&6; } +- fi ++fi ++ ++done + + fi + +
