From eecef8d4a7d4b35f5eb591da8c94cc85fa0d4dd4 Mon Sep 17 00:00:00 2001 From: g-mathias <40861554+g-mathias@users.noreply.github.com> Date: Mon, 23 Jul 2018 00:07:44 +0200 Subject: fix to build libmatheval with guile@2.0: (#8680) * fix to build libmatheval with guile@2.0: * fixed formatting issues * fixed formatting issues2 * fixed check for autoreconf and renaming of configure.in * fixed force_autoreconf * now patching configure, which is hopefully more robust * minimal patches for guile 2.0 and 2.2 (disabeling unit testing for libmatheval) * minimal patches for guile 2.0 and 2.2 (disabeling unit testing for libmatheval) --- .../builtin/packages/libmatheval/guile-2.0.patch | 197 +++++++++++++++++++++ .../builtin/packages/libmatheval/guile-2.2.patch | 20 +++ .../repos/builtin/packages/libmatheval/package.py | 7 + 3 files changed, 224 insertions(+) create mode 100644 var/spack/repos/builtin/packages/libmatheval/guile-2.0.patch create mode 100644 var/spack/repos/builtin/packages/libmatheval/guile-2.2.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/libmatheval/guile-2.0.patch b/var/spack/repos/builtin/packages/libmatheval/guile-2.0.patch new file mode 100644 index 0000000000..18bacb44ca --- /dev/null +++ b/var/spack/repos/builtin/packages/libmatheval/guile-2.0.patch @@ -0,0 +1,197 @@ +--- libmatheval-1.1.11-v/configure 2018-07-13 11:16:19.115719477 +0200 ++++ libmatheval-1.1.11/configure 2018-07-13 11:33:07.914093005 +0200 +@@ -640,6 +640,7 @@ + GUILE_CFLAGS + GUILE_TOOLS + GUILE_CONFIG ++GUILE_EFFECTIVE_VERSION + GUILE + AUTOM4TE + YFLAGS +@@ -4831,21 +4832,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + # Check whether --with-gnu-ld was given. + if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +@@ -12267,8 +12253,9 @@ + break + fi + done ++# start patch + +- ++CPPFLAGS="$GUILE_CFLAGS -DSCM_ENABLE_DEPRECATED=0 $CPPFLAGS" + ac_fn_c_check_type "$LINENO" "scm_t_bits" "ac_cv_type_scm_t_bits" "#include + " + if test "x$ac_cv_type_scm_t_bits" = xyes; then : +@@ -12276,14 +12263,15 @@ + $as_echo "#define HAVE_SCM_T_BITS 1" >>confdefs.h + + fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for scm_c_define_gsubr in -lguile" >&5 +-$as_echo_n "checking for scm_c_define_gsubr in -lguile... " >&6; } +-if ${ac_cv_lib_guile_scm_c_define_gsubr+:} false; then : ++GUILE_EFFECTIVE_VERSION=2.0 ++as_ac_Lib=`$as_echo "ac_cv_lib_guile-$GUILE_EFFECTIVE_VERSION''_scm_c_define_gsubr" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for scm_c_define_gsubr in -lguile-$GUILE_EFFECTIVE_VERSION" >&5 ++$as_echo_n "checking for scm_c_define_gsubr in -lguile-$GUILE_EFFECTIVE_VERSION... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lguile $GUILE_LDFLAGS $LIBS" ++LIBS="-lguile-$GUILE_EFFECTIVE_VERSION $GUILE_LDFLAGS $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -12303,29 +12291,31 @@ + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_guile_scm_c_define_gsubr=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_guile_scm_c_define_gsubr=no ++ eval "$as_ac_Lib=no" + fi + 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_guile_scm_c_define_gsubr" >&5 +-$as_echo "$ac_cv_lib_guile_scm_c_define_gsubr" >&6; } +-if test "x$ac_cv_lib_guile_scm_c_define_gsubr" = xyes; then : ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + + $as_echo "#define HAVE_SCM_C_DEFINE_GSUBR 1" >>confdefs.h + + fi + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for scm_make_gsubr in -lguile" >&5 +-$as_echo_n "checking for scm_make_gsubr in -lguile... " >&6; } +-if ${ac_cv_lib_guile_scm_make_gsubr+:} false; then : ++as_ac_Lib=`$as_echo "ac_cv_lib_guile-$GUILE_EFFECTIVE_VERSION''_scm_make_gsubr" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for scm_make_gsubr in -lguile-$GUILE_EFFECTIVE_VERSION" >&5 ++$as_echo_n "checking for scm_make_gsubr in -lguile-$GUILE_EFFECTIVE_VERSION... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lguile $GUILE_LDFLAGS $LIBS" ++LIBS="-lguile-$GUILE_EFFECTIVE_VERSION $GUILE_LDFLAGS $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -12345,29 +12335,31 @@ + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_guile_scm_make_gsubr=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_guile_scm_make_gsubr=no ++ eval "$as_ac_Lib=no" + fi + 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_guile_scm_make_gsubr" >&5 +-$as_echo "$ac_cv_lib_guile_scm_make_gsubr" >&6; } +-if test "x$ac_cv_lib_guile_scm_make_gsubr" = xyes; then : ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + + $as_echo "#define HAVE_SCM_MAKE_GSUBR 1" >>confdefs.h + + fi + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for scm_num2dbl in -lguile" >&5 +-$as_echo_n "checking for scm_num2dbl in -lguile... " >&6; } +-if ${ac_cv_lib_guile_scm_num2dbl+:} false; then : ++as_ac_Lib=`$as_echo "ac_cv_lib_guile-$GUILE_EFFECTIVE_VERSION''_scm_num2dbl" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for scm_num2dbl in -lguile-$GUILE_EFFECTIVE_VERSION" >&5 ++$as_echo_n "checking for scm_num2dbl in -lguile-$GUILE_EFFECTIVE_VERSION... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lguile $GUILE_LDFLAGS $LIBS" ++LIBS="-lguile-$GUILE_EFFECTIVE_VERSION $GUILE_LDFLAGS $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -12387,22 +12379,25 @@ + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_guile_scm_num2dbl=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_guile_scm_num2dbl=no ++ eval "$as_ac_Lib=no" + fi + 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_guile_scm_num2dbl" >&5 +-$as_echo "$ac_cv_lib_guile_scm_num2dbl" >&6; } +-if test "x$ac_cv_lib_guile_scm_num2dbl" = xyes; then : ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + + $as_echo "#define HAVE_SCM_NUM2DBL 1" >>confdefs.h + + fi + ++# end patch ++# end patch + + ac_config_files="$ac_config_files Makefile doc/Makefile lib/Makefile" + +--- libmatheval-1.1.11-v/tests/matheval.c.bak 2018-07-13 12:43:21.718862366 +0200 ++++ libmatheval-1.1.11/tests/matheval.c 2018-07-13 12:46:34.162597100 +0200 +@@ -51,7 +51,7 @@ + + /* Guile interface for libmatheval library. Procedures below are simple + * wrappers for corresponding libmatheval procedures. */ +-static scm_sizet evaluator_destroy_scm(SCM evaluator_smob); ++static size_t evaluator_destroy_scm(SCM evaluator_smob); + static SCM evaluator_create_scm(SCM string); + static SCM evaluator_evaluate_scm(SCM evaluator_smob, SCM count, + SCM names, SCM values); +@@ -122,7 +122,7 @@ + } + + /* Wrapper for evaluator_destroy() procedure from libmatheval library. */ +-static scm_sizet ++static size_t + evaluator_destroy_scm(SCM evaluator_smob) + { + SCM_ASSERT((SCM_NIMP(evaluator_smob) diff --git a/var/spack/repos/builtin/packages/libmatheval/guile-2.2.patch b/var/spack/repos/builtin/packages/libmatheval/guile-2.2.patch new file mode 100644 index 0000000000..394f9ebdef --- /dev/null +++ b/var/spack/repos/builtin/packages/libmatheval/guile-2.2.patch @@ -0,0 +1,20 @@ +--- libmatheval-1.1.11/Makefile.in.orig 2018-07-13 17:42:03.426339145 +0200 ++++ libmatheval-1.1.11/Makefile.in 2018-07-13 17:42:24.190310979 +0200 +@@ -316,7 +316,7 @@ + MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config.h.in \ + config.log config.status stamp-h.in $(AUX_DIST) + +-SUBDIRS = doc lib tests ++SUBDIRS = doc lib + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = libmatheval.pc + all: config.h +@@ -863,7 +863,7 @@ + .PHONY: beauty dist-hook + + beauty: +- -for dir in lib tests; do cd $$dir; $(MAKE) $@; cd ..; done ++ -for dir in lib ; do cd $$dir; $(MAKE) $@; cd ..; done + + dist-hook: + for file in $(AUX_DIST); do \ diff --git a/var/spack/repos/builtin/packages/libmatheval/package.py b/var/spack/repos/builtin/packages/libmatheval/package.py index 3b9acc92a8..223f6b4a8e 100644 --- a/var/spack/repos/builtin/packages/libmatheval/package.py +++ b/var/spack/repos/builtin/packages/libmatheval/package.py @@ -40,3 +40,10 @@ class Libmatheval(AutotoolsPackage): # Only needed for unit tests, but configure crashes without it depends_on('guile', type='build') + + # guile 2.0 provides a deprecated interface for the unit test using guile + patch('guile-2.0.patch', when='^guile@2.0') + + # guile 2.2 does not support deprecated functions any longer + # the patch skips the unit tests + patch('guile-2.2.patch', when='^guile@2.2:') -- cgit v1.2.3-60-g2f50