diff --git a/clisp-libsvm.patch b/clisp-libsvm.patch new file mode 100644 index 0000000..b253991 --- /dev/null +++ b/clisp-libsvm.patch @@ -0,0 +1,63 @@ +--- modules/libsvm/config.h.in.orig 2010-06-30 12:02:55.000000000 -0600 ++++ modules/libsvm/config.h.in 2011-06-23 14:28:00.454999254 -0600 +@@ -27,8 +27,8 @@ + /* Define to 1 if you have the `svm_cross_validation' function. */ + #undef HAVE_SVM_CROSS_VALIDATION + +-/* Define to 1 if you have the `svm_destroy_model' function. */ +-#undef HAVE_SVM_DESTROY_MODEL ++/* Define to 1 if you have the `svm_free_and_destroy_model' function. */ ++#undef HAVE_SVM_FREE_AND_DESTROY_MODEL + + /* Define to 1 if you have the `svm_destroy_param' function. */ + #undef HAVE_SVM_DESTROY_PARAM +--- modules/libsvm/configure.in.orig 2010-06-30 12:02:55.000000000 -0600 ++++ modules/libsvm/configure.in 2011-06-23 14:28:49.333999905 -0600 +@@ -30,7 +30,7 @@ + AC_CHECK_FUNCS(svm_check_parameter dnl + svm_check_probability_model dnl + svm_cross_validation dnl +-svm_destroy_model dnl ++svm_free_and_destroy_model dnl + svm_destroy_param dnl + svm_get_labels dnl + svm_get_nr_class dnl +--- modules/libsvm/configure.orig 2010-06-30 12:02:55.000000000 -0600 ++++ modules/libsvm/configure 2011-06-23 14:28:27.827999766 -0600 +@@ -4555,7 +4555,7 @@ + if test "$ac_cv_search_svm_train" = "no"; then + as_fn_error "cannot find LibSVM library" "$LINENO" 5 + fi +-for ac_func in svm_check_parameter svm_check_probability_model svm_cross_validation svm_destroy_model svm_destroy_param svm_get_labels svm_get_nr_class svm_get_svm_type svm_get_svr_probability svm_load_model svm_predict svm_predict_probability svm_predict_values svm_save_model svm_train svm_set_print_string_function ++for ac_func in svm_check_parameter svm_check_probability_model svm_cross_validation svm_free_and_destroy_model svm_destroy_param svm_get_labels svm_get_nr_class svm_get_svm_type svm_get_svr_probability svm_load_model svm_predict svm_predict_probability svm_predict_values svm_save_model svm_train svm_set_print_string_function + do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` + ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +--- modules/libsvm/libsvm.lisp.orig 2010-06-30 11:56:36.000000000 -0600 ++++ modules/libsvm/libsvm.lisp 2011-06-23 14:33:44.334999678 -0600 +@@ -97,11 +97,11 @@ + ;;; foreign functions and small wrappers + ;;; + +-(ffi:def-call-out svm_destroy_model +- (:arguments (model model)) (:return-type nil)) ++(ffi:def-call-out svm_free_and_destroy_model ++ (:arguments (model (c-pointer model))) (:return-type nil)) + (defun destroy-model (model) + (when (validp model) +- (svm_destroy_model model) ++ (svm_free_and_destroy_model (ffi:with-c-var (modelp 'model model) (ffi:c-var-address modelp))) + (setf (validp model) nil))) + (cl:defun finalize-model (model) + (ext:finalize (set-foreign-pointer model :copy) #'destroy-model) +--- modules/libsvm/svm.xml.orig 2010-05-26 11:52:55.000000000 -0600 ++++ modules/libsvm/svm.xml 2011-06-23 14:34:44.021999852 -0600 +@@ -91,7 +91,7 @@ + (destroy-model &model-r;) + Release the memory taken by the model + object and invalidate the &foreign-variable-t; &model-r;. +- Calls svm_destroy_model. ++ Calls svm_free_and_destroy_model. + You do ¬-e; have to call this function yourself, it is + attached to the &model-r; by train + and load-model via &finalize;. diff --git a/clisp.spec b/clisp.spec index 748e0c0..b0fbc28 100644 --- a/clisp.spec +++ b/clisp.spec @@ -1,12 +1,14 @@ Name: clisp Summary: ANSI Common Lisp implementation Version: 2.49 -Release: 3%{?dist} +Release: 4%{?dist} Group: Development/Languages License: GPLv2 URL: http://clisp.cons.org -Source0: http://downloads.sourceforge.net/project/clisp/clisp/%{version}/clisp-%{version}.tar.bz2 +Source0: http://downloads.sourceforge.net/clisp/clisp-%{version}.tar.bz2 +# Adapt to libsvm 3.1. Sent upstream 23 Jun 2011. +Patch0: clisp-libsvm.patch BuildRequires: compat-readline5-devel BuildRequires: db4-devel BuildRequires: dbus-devel @@ -17,6 +19,7 @@ BuildRequires: gettext-devel BuildRequires: ghostscript BuildRequires: groff BuildRequires: gtk2-devel +BuildRequires: gzip BuildRequires: libICE-devel BuildRequires: libSM-devel BuildRequires: libX11-devel @@ -33,6 +36,9 @@ BuildRequires: pari-devel BuildRequires: pcre-devel BuildRequires: postgresql-devel BuildRequires: zlib-devel +%ifarch %{ix86} ppc sparc +BuildRequires: lightning +%endif # See Red Hat bug #238954 ExcludeArch: ppc64 @@ -72,6 +78,7 @@ Files necessary for linking CLISP programs. %prep %setup -q +%patch0 # Convince CLisp to build against compat-readline5 instead of readline. # This is to avoid pulling the GPLv3 readline 6 into a GPLv2 CLisp binary. @@ -93,10 +100,7 @@ sed -i -e 's/${wl}-rpath ${wl}/-L/g' src/build-aux/config.rpath %build %ifarch ppc ppc64 -%define opt_flags "$RPM_OPT_FLAGS -DNO_GENERATIONAL_GC -DNO_MULTIMAP_FILE -DNO_SINGLEMAP" ulimit -s unlimited -%else -%define opt_flags "$RPM_OPT_FLAGS" %endif # Do not need to specify base modules: i18n, readline, regexp, syscalls @@ -107,6 +111,9 @@ ulimit -s unlimited --docdir=%{_docdir}/clisp-%{version} \ --fsstnd=redhat \ --hyperspec=http://www.lispworks.com/documentation/HyperSpec/ \ +%ifarch %{ix86} ppc sparc + --with-jitc=lightning \ +%endif --with-module=berkeley-db \ --with-module=bindings/glibc \ --with-module=clx/new-clx \ @@ -124,8 +131,12 @@ ulimit -s unlimited --with-libreadline-prefix=`pwd`/readline \ --cbc \ build \ - CFLAGS="$RPM_OPT_FLAGS -I/usr/include/libsvm -Wa,--noexecstack" \ - LDFLAGS="-Wl,-z,noexecstack" +%ifarch ppc ppc64 + CFLAGS="${RPM_OPT_FLAGS} -DNO_GENERATIONAL_GC -DNO_MULTIMAP_FILE -DNO_SINGLEMAP -I/usr/include/readline5 -I/usr/include/libsvm -Wa,--noexecstack -L%{_libdir}/readline5" \ +%else + CFLAGS="${RPM_OPT_FLAGS} -I/usr/include/readline5 -I/usr/include/libsvm -Wa,--noexecstack -L%{_libdir}/readline5" \ +%endif + LDFLAGS="-L%{_libdir}/readline5 -Wl,-z,noexecstack" %install rm -rf $RPM_BUILD_ROOT @@ -194,6 +205,11 @@ rm -fr $RPM_BUILD_ROOT %changelog +* Thu Jun 23 2011 Jerry James - 2.49-4 +- Add libsvm patch to fix FTBFS on Rawhide (bz 715970) +- Fix readline module to also use compat-readline5 instead of readline6 +- Enable use of lightning on supported arches + * Fri Feb 11 2011 Jerry James - 2.49-3 - Build with compat-readline5 instead of readline (#511303) - Build the libsvm module