From edeb62eb5fe6f44f5bdf82228dd23c42b33bd3a4c5390e9854a0c6bb2aee29b5 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 28 Aug 2024 12:17:11 +0000 Subject: [PATCH 01/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=130 --- .gitattributes | 23 + .gitignore | 1 + README.SUSE | 34 ++ check-build.sh | 43 ++ clisp-2.39-ia64-wooh.dif | 18 + clisp-2.49-clx_demos.dif | 174 ++++++ clisp-2.49-configure.dif | 129 ++++ clisp-2.49-gctoken.dif | 13 + clisp-2.49-personality.patch | 32 + clisp-2.49-postgresql.dif | 9 + clisp-2.49-rpath.dif | 16 + clisp-2.49.92.tar.bz2 | 3 + clisp-db6.diff | 31 + clisp-gcc14.patch | 24 + clisp-link.dif | 36 ++ clisp-linux.patch | 16 + clisp-rpmlintrc | 6 + clisp.changes | 1075 ++++++++++++++++++++++++++++++++++ clisp.spec | 408 +++++++++++++ 19 files changed, 2091 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README.SUSE create mode 100644 check-build.sh create mode 100644 clisp-2.39-ia64-wooh.dif create mode 100644 clisp-2.49-clx_demos.dif create mode 100644 clisp-2.49-configure.dif create mode 100644 clisp-2.49-gctoken.dif create mode 100644 clisp-2.49-personality.patch create mode 100644 clisp-2.49-postgresql.dif create mode 100644 clisp-2.49-rpath.dif create mode 100644 clisp-2.49.92.tar.bz2 create mode 100644 clisp-db6.diff create mode 100644 clisp-gcc14.patch create mode 100644 clisp-link.dif create mode 100644 clisp-linux.patch create mode 100644 clisp-rpmlintrc create mode 100644 clisp.changes create mode 100644 clisp.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README.SUSE b/README.SUSE new file mode 100644 index 0000000..01031d0 --- /dev/null +++ b/README.SUSE @@ -0,0 +1,34 @@ +# +# (C) 1997-99, SuSE GmbH, Nürnberg +# + +Call of CLX + + + Please call clisp with the option '-K full' to use clx. The +X Window System is required for the usage of clx. Therefore the clisp +version under /usr/lib/clisp/full/ is used. +For some examples of clx try out in the directory demos/ + + clisp -K full -q -i sokoban + +and + + clisp -K full -q -i qix + +---------------------------------------------------------------------------- + +Aufruf von CLX + + + Bitte rufen Sie clisp mit der Option '-K full' auf. CLX erfordert ein +installiertes X-Window-System. Daher wird die entsprechende clisp-Version +aus /usr/lib/clisp/full/ benutzt. +Sie finden zwei Beispiele für clx im Verzeichnis demos/ + + clisp -K full -q -i sokoban + +und + + clisp -K full -q -i qix + diff --git a/check-build.sh b/check-build.sh new file mode 100644 index 0000000..edf1c5c --- /dev/null +++ b/check-build.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# This script use the following variable(s): +# +# - $BUILD_BASENAME +# + +case $BUILD_BASENAME in + *ia64) + read -t 10 name dummy version rest < /proc/version + if test -z "$version" ; then + echo "FATAL: can not read /proc/version" 1>&2 + exit 1 + fi + OIFS="$IFS" + IFS='.-' + version=($version) + IFS="$OIFS" + if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 16 ; then + echo "FATAL: kernel too old, need kernel >= 2.6.16 for this package" 1>&2 + exit 1 + fi + ;; + *) + ;; +esac + +# +# XEN kernel may use different stack addresse range +# +if test -e /proc/xen; then + echo "FATAL: kernel contains xen support!" 1>&2 + exit 1 +fi + +# +# Success +# +exit 0 diff --git a/clisp-2.39-ia64-wooh.dif b/clisp-2.39-ia64-wooh.dif new file mode 100644 index 0000000..91f8af2 --- /dev/null +++ b/clisp-2.39-ia64-wooh.dif @@ -0,0 +1,18 @@ +--- + tests/streams.tst | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/streams.tst b/tests/streams.tst +--- a/tests/streams.tst ++++ b/tests/streams.tst +@@ -1043,8 +1043,8 @@ T + (describe (make-array nil :element-type nil) s))) + T + +-(stringp (with-output-to-string (s) (describe nil s))) +-T ++;(stringp (with-output-to-string (s) (describe nil s))) ++;T + + ;; https://sourceforge.net/p/clisp/bugs/396/ + (let ((s "a b")) diff --git a/clisp-2.49-clx_demos.dif b/clisp-2.49-clx_demos.dif new file mode 100644 index 0000000..86d54d5 --- /dev/null +++ b/clisp-2.49-clx_demos.dif @@ -0,0 +1,174 @@ +--- + modules/clx/new-clx/demos/README | 4 +-- + modules/clx/new-clx/demos/clx-demos.lisp | 2 - + modules/clx/new-clx/demos/koch.lisp | 29 +++++++++++++++++++++++++- + modules/clx/new-clx/demos/qix.lisp | 30 ++++++++++++++++++++++++++- + modules/clx/new-clx/demos/sokoban.lisp | 34 +++++++++++++++++++++++++++++-- + 5 files changed, 92 insertions(+), 7 deletions(-) + +--- a/modules/clx/new-clx/demos/README ++++ b/modules/clx/new-clx/demos/README +@@ -3,8 +3,8 @@ Most came with the original CLX and has + Some are original with CLISP (notably sokoban). + + To try them, do +-$ clisp -i clx-demos ++$ clisp -K full -i clx-demos + and read the instructions. + + To try them all, one by one, do +-$ clisp -i clx-demos -x '(clx-demos:run-all-demos)' ++$ clisp -K full -i clx-demos -x '(clx-demos:run-all-demos)' +--- a/modules/clx/new-clx/demos/clx-demos.lisp ++++ b/modules/clx/new-clx/demos/clx-demos.lisp +@@ -13,7 +13,7 @@ + + (defparameter *demos* + ;; (demo-name [package requirements]) +- '((koch) (qix) (sokoban #:xpm) (greynetic) (petal) (hanoi) ++ '((greynetic) (petal) (hanoi) + (recurrence) (plaid) (clclock) (bball) (bwindow))) + + (defmacro do-demos ((fun-var) &body body) +--- a/modules/clx/new-clx/demos/koch.lisp ++++ b/modules/clx/new-clx/demos/koch.lisp +@@ -5,7 +5,30 @@ + ;;; See http://www.gnu.org/copyleft/gpl.html + ;;; + +-(in-package :clx-demos) ++(defpackage "KOCH" ++ (:use "COMMON-LISP" "XLIB" "EXT") ++ (:import-from "SYS" "GETENV") ++ (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH ++ (:export "KOCH")) ++ ++(in-package :koch) ++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ++(defun x-host-display (&optional (disp (getenv "DISPLAY"))) ++ "Parse the DISPLAY environment variable. ++Return 3 values: host, server, screen." ++ (if disp ++ (let* ((pos1 (position #\: disp)) ++ (pos2 (and pos1 (position #\. disp :start pos1)))) ++ (values (subseq disp 0 pos1) ++ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0) ++ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0))) ++ (values "" 0 0))) ++ ++(defun x-open-display () ++ "Open the appropriate X display." ++ (multiple-value-bind (host di) (x-host-display) ++ (xlib:open-display host :display di))) ++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + (defun koch-point (cx width/2 height/2 scale) + (list (round (+ width/2 (* scale width/2 (realpart cx)))) +@@ -121,4 +144,8 @@ Returns the new list and an indicator of + (xlib:unmap-window win) + (xlib:display-finish-output dpy)))) + ++(format t "~& Koch snoflake:~% ++ (koch:koch :width :height :delay :x :y :scale :font) ++~% Call (koch:koch)~%~%") ++ + (provide "koch") +--- a/modules/clx/new-clx/demos/qix.lisp ++++ b/modules/clx/new-clx/demos/qix.lisp +@@ -14,7 +14,30 @@ + ;;;; o or a spline option?! + ;;;; + +-(in-package :clx-demos) ++(defpackage "QIX" ++ (:use "COMMON-LISP" "XLIB" "EXT") ++ (:import-from "SYS" "GETENV") ++ (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH ++ (:export "QIX")) ++ ++(in-package :qix) ++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ++(defun x-host-display (&optional (disp (getenv "DISPLAY"))) ++ "Parse the DISPLAY environment variable. ++Return 3 values: host, server, screen." ++ (if disp ++ (let* ((pos1 (position #\: disp)) ++ (pos2 (and pos1 (position #\. disp :start pos1)))) ++ (values (subseq disp 0 pos1) ++ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0) ++ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0))) ++ (values "" 0 0))) ++ ++(defun x-open-display () ++ "Open the appropriate X display." ++ (multiple-value-bind (host di) (x-host-display) ++ (xlib:open-display host :display di))) ++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + (defvar *offset* 3) + (defvar *delta* 6) +@@ -87,4 +110,9 @@ + (xlib:unmap-window win) + (xlib:display-finish-output dpy)))) + ++;; since we have no herald, simply dump it: ++(format t "~& The famous swirling vectors.~% ++ (qix:qix :host :display :dpy :width :height :delay :nqixs :nlines) ++~% Call (qix:qix) or (qix:qix :delay 0)~%~%") ++ + (provide "qix") +--- a/modules/clx/new-clx/demos/sokoban.lisp ++++ b/modules/clx/new-clx/demos/sokoban.lisp +@@ -41,7 +41,30 @@ + ;;;; - maximum field size is hard wired to 20x20. (This is not in the LISP spirit!) + ;;;; - sometimes the programm could not count correctly ... + +-(in-package :clx-demos) ++(defpackage "SOKOBAN" ++ (:use "COMMON-LISP") ++ (:import-from "SYS" "GETENV") ++ (:import-from "XLIB" "CLOSED-DISPLAY-P") ++ (:export "SOKOBAN")) ++ ++(in-package :sokoban) ++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ++(defun x-host-display (&optional (disp (getenv "DISPLAY"))) ++ "Parse the DISPLAY environment variable. ++Return 3 values: host, server, screen." ++ (if disp ++ (let* ((pos1 (position #\: disp)) ++ (pos2 (and pos1 (position #\. disp :start pos1)))) ++ (values (subseq disp 0 pos1) ++ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0) ++ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0))) ++ (values "" 0 0))) ++ ++(defun x-open-display () ++ "Open the appropriate X display." ++ (multiple-value-bind (host di) (x-host-display) ++ (xlib:open-display host :display di))) ++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + ;;;; First a lot of global variables ... + (defvar *pixmaps* nil) ;array of pixmaps according to below indices +@@ -228,7 +251,12 @@ + (nny (+ ny dy))) + (when (>= (field nnx nny) %floor) + ;;Ok its legal ... +- (when (and (= (field nx ny) %object) ++ ;;Allow moving through ++ (when (and (= (field nx ny) %treasure) ++ (= (field nnx nny) %floor)) ++ (incf *n-objects*)) ++ ;;Take this point ++ (when (and (= (field nx ny) %object) + (= (field nnx nny) %goal)) + (decf *n-objects*)) + (incf (field nx ny) 4) ;remove object and add man +@@ -475,4 +503,6 @@ If you quit sokoban using 'q' the curren + (setq *level* 1) + (init-field))) ) + ++(format t "~&~% Call (sokoban:sokoban)~%~%") ++ + (provide "sokoban") diff --git a/clisp-2.49-configure.dif b/clisp-2.49-configure.dif new file mode 100644 index 0000000..1a33089 --- /dev/null +++ b/clisp-2.49-configure.dif @@ -0,0 +1,129 @@ +--- + clisp-2.49.90/configure | 4 ++-- + clisp-2.49.90/src/lispbibl.d | 16 +++++++++++----- + clisp-2.49.90/src/makemake.in | 17 +++++++++++++---- + clisp-2.49.90/utils/modprep.lisp | 2 +- + 4 files changed, 27 insertions(+), 12 deletions(-) + +--- clisp-2.49.90/configure ++++ clisp-2.49.90/configure 2018-02-12 08:20:34.280915654 +0000 +@@ -429,11 +429,11 @@ do + passnext=makemake ;; + + --vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*) +- subdir_configure_args="$subdir_configure_args $arg" ++# subdir_configure_args="$subdir_configure_args $arg" + makemake_args="$makemake_args --vimdir="`getarg "$arg"` ;; + + --vimdir | --vimdi | --vimd | --vim | --vi) +- subdir_configure_args="$subdir_configure_args $arg" ++# subdir_configure_args="$subdir_configure_args $arg" + makemake_args="$makemake_args --vimdir=" + prev=vimdir + passnext=both ;; +--- clisp-2.49.90/src/lispbibl.d ++++ clisp-2.49.90/src/lispbibl.d 2018-02-12 08:20:34.284915577 +0000 +@@ -178,7 +178,7 @@ + #define PC386 /* IBMPC-compatible with 80386/80486-processor */ + #endif + #ifdef GENERIC_UNIX +- #if (defined(unix) && (defined(linux) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__))) ++ #if (defined(unix) && ((defined(linux) || defined(__linux__)) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__))) + #define PC386 + #endif + #if (defined(sun) && defined(unix) && defined(sparc)) +@@ -270,8 +270,14 @@ + #endif + #ifdef GENERIC_UNIX + #define UNIX +- #ifdef __linux__ ++ #if defined(__linux__) || defined(linux) + #define UNIX_LINUX /* Linux (Linus Torvalds Unix) */ ++ #ifndef linux ++ #define linux ++ #endif ++ #ifndef __linux__ ++ #define __linux__ ++ #endif + #endif + #ifdef __GNU__ + #define UNIX_HURD /* the GNU system (Hurd + glibc) */ +@@ -1281,7 +1287,7 @@ typedef signed int signean; + address of its component 'ident' and return it as number: */ + #include + #ifndef offsetof +- #define offsetof(type,ident) ((ULONG)&(((type*)0)->ident)) ++ #define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) + #endif + /* Determine the offset of an array 'ident' in a struct of the type 'type': */ + #if defined(__cplusplus) || defined(MICROSOFT) +@@ -5520,9 +5526,9 @@ typedef signed_int_with_n_bits(intVsize) + type_data_object(type,data) */ + #if defined(WIDE) && defined(WIDE_STRUCT) + #if BIG_ENDIAN_P==WIDE_ENDIANNESS +- #define type_data_object(type,data) ((object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP}) ++ #define type_data_object(type,data) (object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP} + #else +- #define type_data_object(type,data) ((object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP}) ++ #define type_data_object(type,data) (object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP} + #endif + #elif !(oint_addr_shift==0) + #define type_data_object(type,data) \ +--- clisp-2.49.90/src/makemake.in ++++ clisp-2.49.90/src/makemake.in 2018-02-12 08:24:54.275897762 +0000 +@@ -250,6 +250,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} + # Handle --with-... arguments + while test -z "$endofargs"; do + case "$1" in ++ -ignore* | --ignore* ) ++ shift ++ ;; + -verb* | --verb* ) + verbose=`echol "$1"|sed 's/-*v[^=]*=*//'` + test -n "${verbose}" || verbose=true +@@ -1183,11 +1186,13 @@ else + fi + + # Main cpu dependencies: ++set -x + cpu="${host_cpu_c_abi}" + if test -z "$cpu"; then + echo "$0: WARNING: host_cpu_c_abi is void; using host_cpu=${host_cpu}" >&2 + cpu="${host_cpu}" + fi ++set +x + + test "${verbose}" = true -o "${verbose}" = yes && \ + cat <&2 +@@ -1384,6 +1389,9 @@ if [ $XCC_GCC = true ] ; then + XCFLAGS=${XCFLAGS}" -pthread" + fi + ++ if [ -n "${MYCFLAGS}" ] ; then ++ XCFLAGS=$XCFLAGS' ${MYCFLAGS} ' ++ fi + else + + if [ $CROSS = false ] ; then +@@ -4105,8 +4113,9 @@ if [ $CROSS = false ] ; then + echol + if [ "${with_dynamic_modules}" != no ]; then + depends="full install-modules force" +- line='linkkit base' ++ line='linkkit base full' + echol "install-modules : full force" ++ echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full" + echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/dynmod" + echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)" + echol +--- clisp-2.49.90/utils/modprep.lisp ++++ clisp-2.49.90/utils/modprep.lisp 2018-02-12 08:20:34.288915500 +0000 +@@ -328,7 +328,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); + ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out)) + (t (format out "_~2,'0x" (char-code cc)))))) + +-(defvar *tag-length-limit* 2000 ++(defvar *tag-length-limit* 4096 + "The approximate maximum length of a C name. + This works around the failure on i18n on Alpha Linux: + /tmp/ccYZBYCX.s: Assembler messages: diff --git a/clisp-2.49-gctoken.dif b/clisp-2.49-gctoken.dif new file mode 100644 index 0000000..f798c8e --- /dev/null +++ b/clisp-2.49-gctoken.dif @@ -0,0 +1,13 @@ + + +diff --git a/utils/gctrigger.c b/utils/gctrigger.c +--- a/utils/gctrigger.c ++++ b/utils/gctrigger.c +@@ -601,6 +601,7 @@ static inline void VectorToken_delete (V + static Token nexttoken (boolean within_prep_directive) + { + Token token; ++ memset(&token, 0, sizeof(Token)); + restart: + { int c = next_char(); + switch (c) { diff --git a/clisp-2.49-personality.patch b/clisp-2.49-personality.patch new file mode 100644 index 0000000..a97bb07 --- /dev/null +++ b/clisp-2.49-personality.patch @@ -0,0 +1,32 @@ +--- + src/_clisp.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/src/_clisp.c b/src/_clisp.c +--- a/src/_clisp.c ++++ b/src/_clisp.c +@@ -48,6 +48,11 @@ + /* Declare stderr, perror(). */ + # include + ++#if defined(HAS_PERSONALITY) && (HAS_PERSONALITY > 0) ++/* Declare syscall, PER_LINUX32. */ ++# include ++#endif ++ + #if defined(WIN32_NATIVE) + # include + int shell_quote (char * dest, const char * source); +@@ -435,6 +440,12 @@ int main (int argc, char* argv[]) + } + #undef W32ERR + #else ++#if defined(HAS_PERSONALITY) && (HAS_PERSONALITY > 0) ++ if (personality(PER_LINUX32)) { ++ perror(program_name); ++ return 1; ++ } ++#endif + execv(executable,new_argv); + { /* execv() returns only if there was an error. */ + int saved_errno = errno; diff --git a/clisp-2.49-postgresql.dif b/clisp-2.49-postgresql.dif new file mode 100644 index 0000000..8bc575c --- /dev/null +++ b/clisp-2.49-postgresql.dif @@ -0,0 +1,9 @@ +--- a/modules/postgresql/link.sh.in ++++ b/modules/postgresql/link.sh.in +@@ -4,5 +4,5 @@ ${MAKE-make} clisp-module \ + NEW_MODULES='postgresql' + NEW_FILES='' + for f in ${NEW_MODULES}; do NEW_FILES=${NEW_FILES}" ${f}.o"; done +-NEW_LIBS="${NEW_FILES} @LIBS@" ++NEW_LIBS="${NEW_FILES} @LIBS@ -lcrypt -lssl" + TO_LOAD='postgresql sql' diff --git a/clisp-2.49-rpath.dif b/clisp-2.49-rpath.dif new file mode 100644 index 0000000..4440ef6 --- /dev/null +++ b/clisp-2.49-rpath.dif @@ -0,0 +1,16 @@ +--- + src/aclocal.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/aclocal.m4 b/src/aclocal.m4 +--- a/src/aclocal.m4 ++++ b/src/aclocal.m4 +@@ -7723,7 +7723,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do +- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" ++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-Wl,-rpath-link$found_dir" + done + fi + popdef([P_A_C_K]) diff --git a/clisp-2.49.92.tar.bz2 b/clisp-2.49.92.tar.bz2 new file mode 100644 index 0000000..48b3ed6 --- /dev/null +++ b/clisp-2.49.92.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd443a94aa9b02da4c4abbcecfc04ffff1919c0a8b0e7e35649b86198cd6bb89 +size 8919616 diff --git a/clisp-db6.diff b/clisp-db6.diff new file mode 100644 index 0000000..6dce26f --- /dev/null +++ b/clisp-db6.diff @@ -0,0 +1,31 @@ +From: Jan Engelhardt +Date: 2013-06-14 13:55:00.148814697 +0200 + +Work around compile abort with libdb-6.0 + +BDB has removed RPC support (which was not implemented anyway; +it [set_rpc_server] always returned EOPNOTSUPP even in libdb-4.8). + +--- + clisp-536a48a9/modules/berkeley-db/bdb.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- clisp-536a48a9/modules/berkeley-db/bdb.c ++++ clisp-536a48a9/modules/berkeley-db/bdb.c 2016-11-29 11:58:23.833524665 +0000 +@@ -60,6 +60,7 @@ static void vecout (unsigned char* v, in + this is a macro and not a function for NO_UNICODE */ + #define asciz_to_string0(a,e) (a ? asciz_to_string(a,e) : NIL) + ++#include + #include + + /* http://www.oracle.com/technology/products/berkeley-db/db/update/4.4.20/if.4.4.20.html +@@ -2216,7 +2217,7 @@ DEFUN(BDB:DB-COMPACT, db &key TRANSACTIO + c_data.compact_timeout = timeout; + c_data.compact_pages = pages; + SYSCALL(db->compact,(db,txn,pstart,pstop,&c_data,flags,&end)); +- pushSTACK(uint32_to_I(c_data.compact_empty_buckets)); ++/*pushSTACK(uint32_to_I(c_data.compact_empty_buckets));*/ + pushSTACK(uint32_to_I(c_data.compact_pages_free)); + pushSTACK(uint32_to_I(c_data.compact_pages_examine)); + pushSTACK(uint32_to_I(c_data.compact_levels)); diff --git a/clisp-gcc14.patch b/clisp-gcc14.patch new file mode 100644 index 0000000..dfd93a8 --- /dev/null +++ b/clisp-gcc14.patch @@ -0,0 +1,24 @@ +--- + modules/gdbm/gdbm.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- modules/gdbm/gdbm.c ++++ modules/gdbm/gdbm.c 2024-08-28 11:55:51.720519565 +0000 +@@ -66,7 +66,7 @@ DEFCHECKER(check_gdbm_errno, prefix=GDBM + READER-CANT-REORGANIZE UNKNOWN-UPDATE ITEM-NOT-FOUND \ + REORGANIZE-FAILED CANNOT-REPLACE ILLEGAL-DATA OPT-ALREADY-SET \ + OPT-ILLEGAL) +-static _Noreturn void error_gdbm (char *fatal_message) { ++static _Noreturn void error_gdbm (const char *fatal_message) { + end_blocking_system_call(); /* in case we are called from _gdbm_fatal() */ + pushSTACK(`GDBM::GDBM-ERROR`); + pushSTACK(`:MESSAGE`); +@@ -126,7 +126,7 @@ static object open_gdbm (object path, in + GDBM_FILE gdbm; + with_string_0(path, GLO(pathname_encoding), name, { + SYSCALL(gdbm = gdbm_open(name, bsize, rw, mode, +- (void (*)(void))error_gdbm)); ++ (void (*)(const char *))error_gdbm)); + }); + if (gdbm == NULL) error_gdbm(NULL); + return allocate_fpointer(gdbm); diff --git a/clisp-link.dif b/clisp-link.dif new file mode 100644 index 0000000..ca822d2 --- /dev/null +++ b/clisp-link.dif @@ -0,0 +1,36 @@ +--- + src/clisp-link.in | 2 +- + src/lispbibl.d | 4 +++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +--- src/clisp-link.in ++++ src/clisp-link.in 2018-02-19 09:30:11.548748097 +0000 +@@ -579,7 +579,7 @@ case "$1" in + # when running "CLISP=./clisp ./clisp-link install " + # in the build directory, avoid "cp: `...' and `...' are the same file" + if [ "${absolute_moduledir}" != "${absdestdir}/$moduledir" ]; then +- make clisp-module-distrib LN=${INSTALL_DATA-cp} distribdir="${absdestdir}/$moduledir" ++ make clisp-module-distrib LN="${INSTALL_DATA-cp}" distribdir="${absdestdir}/$moduledir" + mkdir -p ${absdestdir}/${DYNMOD}; + for f in ${DYNDIR_FILES}; do + cp ${f} ${absdestdir}/${DYNMOD}/ +--- src/lispbibl.d ++++ src/lispbibl.d 2018-02-19 09:30:11.552748021 +0000 +@@ -1631,6 +1631,8 @@ typedef SLONG sint32; /* signed 32 bi + /* Emulate 64-Bit-numbers using two 32-Bit-numbers. */ + typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */ + typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */ ++ #define bitQ(n) bit(n) ++ #define bitQm(n) bitm(n) + #endif + /* Use 'uintX' and 'sintX' for Integers with approximately given width + and a minumum of storage space. */ +@@ -14397,7 +14399,7 @@ re-enters the corresponding top-level lo + #define pushSTACK(obj) (STACK_(-1) = (obj), STACK skipSTACKop -1) + /* Almost equivalent with *--STACK = obj resp. *STACK++ = obj , but + Careful: first enter the object into STACK_(-1), THEN modify the STACK! */ +-#define popSTACK() (STACK skipSTACKop 1, STACK_(-1)) ++#define popSTACK() ({STACK skipSTACKop 1; STACK_(-1);}) + #define skipSTACK(n) (STACK skipSTACKop (sintP)(n)) + + #if defined(GNU) && defined(M68K) && !defined(NO_ASM) && !defined(WIDE) && defined(STACK_register) diff --git a/clisp-linux.patch b/clisp-linux.patch new file mode 100644 index 0000000..e79112e --- /dev/null +++ b/clisp-linux.patch @@ -0,0 +1,16 @@ +--- + modules/bindings/glibc/linux.lisp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules/bindings/glibc/linux.lisp b/modules/bindings/glibc/linux.lisp +--- a/modules/bindings/glibc/linux.lisp ++++ b/modules/bindings/glibc/linux.lisp +@@ -294,6 +294,8 @@ + ;; for robust mutexes + (def-c-const EOWNERDEAD (:documentation "Owner died")) ; 130 + (def-c-const ENOTRECOVERABLE (:documentation "State not recoverable")) ; 131 ++(def-c-const ERFKILL (:documentation "Operation not possible due to RF-kill")) ; 132 ++(def-c-const EHWPOISON (:documentation "Memory page has hardware error")) ; 133 + + ; -------------------------- ----------------------------------- + diff --git a/clisp-rpmlintrc b/clisp-rpmlintrc new file mode 100644 index 0000000..0d4960f --- /dev/null +++ b/clisp-rpmlintrc @@ -0,0 +1,6 @@ +addFilter(".*devel-file-in-non-devel-package.*/usr/lib.*/clisp-.*/.*") +addFilter(".*make-check-outside-check-section.*make\ check.*") +addFilter(".*executable-stack.*/usr/lib.*/clisp-.*") +addFilter(".*binary-or-shlib-calls-gethostbyname.*/usr/lib.*/clisp-.*") +addFilter(".*file-contains-date-and-time.*/usr/lib.*/clisp-.*") +addFilter(".*position-independent-executable-suggested.*") diff --git a/clisp.changes b/clisp.changes new file mode 100644 index 0000000..29c9d51 --- /dev/null +++ b/clisp.changes @@ -0,0 +1,1075 @@ +------------------------------------------------------------------- +Wed Aug 28 12:16:12 UTC 2024 - Dr. Werner Fink + +- Add patch clisp-gcc14.patch to make it build again + +------------------------------------------------------------------- +Mon Feb 26 10:47:36 UTC 2024 - Dominique Leuenberger + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Fri Oct 21 12:57:41 UTC 2022 - Martin Liška + +- Depends on gzip as CLISP memory image data are compressed + with gzip (boo#1132118). + +------------------------------------------------------------------- +Mon Sep 9 07:50:29 UTC 2019 - Dr. Werner Fink + +- Do not use LTO for clisp images + +------------------------------------------------------------------- +Mon Jun 25 13:47:37 UTC 2018 - werner@suse.de + +- Remove -mieee-fp gcc option as gcc does not know or ignore + that l(ib)ieee is not part of glibc package anymore +- -fPIE/-fpie is brain dead for a binary used for dumping images + +------------------------------------------------------------------- +Wed Mar 14 08:03:57 UTC 2018 - werner@suse.de + +- Be aware that source tree of gnulib is GPL-3.0 or later + +------------------------------------------------------------------- +Mon Mar 5 13:36:16 UTC 2018 - crrodriguez@opensuse.org + +- change xorg-x11-devel --> pkgconfig(x11), pkgconfig(xaw6) + pkgconfig(xext), pkgconfig(xpm) +- Add explicit buildrequires on pkgconfig(zlib), glib2-devel, + ncurses-devel. + +------------------------------------------------------------------- +Mon Feb 12 09:02:18 UTC 2018 - werner@suse.de + +- Update 2.49.90 (pre-release 2.50) + * Module WILDCARD has been removed. + Functions WILDCARD:MATCH and WILDCARD:WILDCARD-MATCHER are deprecated + in favor of POSIX:FNMATCH and POSIX:FNMATCH-MATCHER. + See for details. + * Module REGEXP: + + Function REGEXP:REGEXP-EXEC no longer accepts :BOOLEAN argument; use + :RETURN-TYPE 'BOOLEAN instead. + See for details. + * Module RAWSOCK: + + Function RAWSOCK:CONVERT-ADDRESS now returns byte vectors instead of + integers. + See + for details. + * Mixing &OPTIONAL and &KEY in the same lambda list is a bad design + and now triggers a STYLE-WARNING during compilation. + See for details. + * Redefinition warnings are now of type STYLE-WARNING. + Some CLOS warnings are now of type STYLE-WARNING. + See + and + for details. + * FFI now converts REALs to FLOATs automatically as necessary. + * New user variable CUSTOM:*MODULE-PROVIDER-FUNCTIONS* allows user to + influence behavior of REQUIRE. + See for details. + * The readline-based completion facility is now more customizable. + See for details. + * New declaration DYNAMICALLY-MODIFIABLE disables GF-ALREADY-CALLED-WARNING. + See + for details. + * Function EXT:STREAM-HANDLES returns the OS file handles for the stream. + It has been present since 2.36 in package SOCKET but was not documented. + See for details. + * To help distributors distribute memory images of clisp applications in + package repositories, clisp has three new command-line options: + $ clisp [-K linking-set] -memfile-hash + Prints the hash code of the mem file binary interface. + $ clisp [-K linking-set] -memfile-hash-of mem-file + Prints the hash code of the mem file binary interface that was used to + create this mem-file. + $ clisp [-K linking-set] -memfile-compatible mem-file + Returns 0 or 1, depending whether this mem-file is compatible with the + linking-set or not. + See for how to use + these options. + * Module SYSCALLS: + + New function POSIX:FILE-TREE-WALK calls nftw(). + See for details. + + New function POSIX:GETDATE calls getdate(). + See for details. + + New macro POSIX:WITH-SUBPROCESSES temporarily enables SIGCLD so that + functions POSIX:WAIT, LINUX:wait and LINUX:waitpid work (bug#592). + See for details. + + Function POSIX:USAGE now accept an optional argument and returns a + single value. + See for details. + * Module berkeley-db now supports Berkeley-DB 5.1. + (Older versions are, of course, still supported). + See for details. + * Module pari now supports PARI 2.9.3 and most of the interface + functions are generated automatically. + See for details. + * Fix documentation strings handling for structs (bug#561). + * Fix SCREEN behavior when the window is resized. + * Pass the top-level configure arguments --build= & --host= + to the module configures (bug#566). + * Fix PROBE-PATHNAME behavior on win32 and on open file streams (bug#570). + * Fix handling of huge byte arrays on 64-bit platforms (bug#571). + * Fix LOADing corrupt FAS files (bug#578). + * Fix interaction of *DEFAULT-PATHNAME-DEFAULTS* with REQUIRE (bug#579). + * Correctly bind *LOAD-PATHNAME* in LOAD (bug#584). + * Fix OS:FILE-INFO on files with corrupt times (bug#581). + * Make wrong keyword argument a STYLE-WARNING in the presence of + :ALLOW-OTHER-KEYS T (bug#588). + * Fix LOOP mixing WITH & Hash Table FOR (bug#585); + avoid destructuring null patterns (bug#414); + detect incomplete FOR clauses (bug#572); + check whether DO clauses are compound forms (bug#711); + warn on REPEAT before FOR (bug#604). + * Fix SOCKET-CONNECT with non-0 timeout (bug#587). + * Reduce consing in HANDLER-BIND et al (bug#582). + * Implement :NO-HANG and :INTERACTIVE in WRITE-BYTE-SEQUENCE for all + sequences, not just byte vectors (bug#586). + * Fix protocol argument handling in POSIX:SERVICE (bug#596). + * Fix (SETF (VALUES (VALUES) ...) ...) (bug#597). + * Fix handling properties with "format=32" in NEW-CLX on 64-bit + machines (bug#598); handle more host families in XLIB:ACCESS-HOSTS. + * Do not ignore user-supplied print methods for user-defined + SIMPLE-CONDITIONs (bug#605). + * Better argument checking of FUNCALL on LAMBDA (bug#603). + * All truenames now have non-NIL version component (bug#606). + * Fix OS:FILE-STAT on very large files (bug#626). + * Fix error that occurred when constructing the dispatch code of generic + functions with a method that specializes on SEQUENCE (bug#628). + * Improve dotted list detection in APPLY (bug#636). + * Signal TYPE-ERROR in LOGICAL-PATHNAME-TRANSLATIONS on invalid + logical host as per ANSI (bug#638). + * Fix run-time error reporting in compiled FORMAT calls (bug#631). + * Fix symlink to directory handling (bug#625). + * PCRE-EXEC returns character positions instead of byte positions. + * Fix COMPILE-FILE-PATHNAME logical pathname handling (bug#677). + * Streams returned by MAKE-STREAM may be passed to TRUENAME (bug#679). + * Do not signal the CLOS:GF-ALREADY-CALLED-WARNING on Gray streams. + * Improve consistency in declaration handling (bug#702). + * Package locks are checked by DECLARATION and DEFTYPE (bug#701). + * Allow spaces in file names of clisp scripts (bug#699). +- Remove obsolete patches clisp-2.39-clx.dif and clisp-arm.patch +- Modify patches + * clisp-2.39-ia64-wooh.dif + * clisp-2.49-configure.dif + * clisp-2.49-personality.patch + * clisp-2.49-rpath.dif + * clisp-link.dif + * clisp-linux.patch + +------------------------------------------------------------------- +Thu Dec 7 11:04:09 UTC 2017 - dimstar@opensuse.org + +- Escape the usage of %{VERSION} when calling out to rpm. + RPM 4.14 has %{VERSION} defined as 'the main packages version'. + +------------------------------------------------------------------- +Thu Nov 9 08:36:26 UTC 2017 - dimstar@opensuse.org + +- Rename README.SuSE to README.SUSE, adhering to the correct + spelling. + +------------------------------------------------------------------- +Thu Sep 14 12:23:38 UTC 2017 - werner@suse.de + +- cfree() is missed now in (g)libc + +------------------------------------------------------------------- +Thu Jul 27 13:29:56 UTC 2017 - werner@suse.de + +- Try to build on all platforms with new configure option + --enable-portability ... let us see if this works + +------------------------------------------------------------------- +Thu Jul 27 13:08:17 UTC 2017 - werner@suse.de + +- Update to Mercurial source code from 2017/06/25 + aka test version 2.49.60+ +- Modify the patches + * clisp-2.49-configure.dif + * clisp-2.49-gctoken.dif + * clisp-2.49-rpath.dif + * clisp-arm.patch + * clisp-link.dif +- Remove patch modules_readline_readline.lisp.patch + as now the version of readline library is automatically detected + +------------------------------------------------------------------- +Fri Feb 10 08:52:25 UTC 2017 - werner@suse.de + +- Collect some informations on the build system for debugging + a random error on sockets during test suite + +------------------------------------------------------------------- +Thu Jan 19 12:20:06 UTC 2017 - werner@suse.de + +- Remove -L option on screen call dues API change, now we depend + on environment variables only. + +------------------------------------------------------------------- +Tue Nov 29 13:45:20 UTC 2016 - werner@suse.de + +- Update to Mercurial source code from 2016/11/28 + * which shows 2630 new lines in src/Changelog + * Support of new CPU types as well as better 64bit architectures +- Remove patches clisp-glibc-fix.patch and clisp-hostname.patch + as now upstream +- Modify the patches + clisp-2.39-clx.dif + clisp-2.39-ia64-wooh.dif + clisp-2.49-clx_demos.dif + clisp-2.49-configure.dif + clisp-2.49-personality.patch + clisp-2.49-rpath.dif + clisp-db6.diff + clisp-linux.patch +- Add patch clisp-link.dif to get module asdf for console + support well done + +------------------------------------------------------------------- +Thu Oct 27 10:52:29 UTC 2016 - werner@suse.de + +- Add patch modules_readline_readline.lisp.patch to reflect the + API change in libreadline in rl_readline_state(3) (boo#1007196) + +------------------------------------------------------------------- +Fri Aug 14 12:53:11 UTC 2015 - normand@linux.vnet.ibm.com + +- add ppc64le to list of ExcludeArch + related to src/lispbibl.d "CLISP not ported to this platform" + +------------------------------------------------------------------- +Sat Jun 15 14:27:43 UTC 2013 - jengelh@inai.de + +- Add clisp-db6.diff to resolve compile abort with libdb-6.0 +- Remove unused %xarch macro; use automirror-selection Source URL + +------------------------------------------------------------------- +Tue May 14 11:24:33 UTC 2013 - werner@suse.de + +- Reintroduce my old patches + + clisp-2.49-configure.dif -- Make sure to be able to use MYCLFAGS + + clisp-2.49-gctoken.dif -- Make sure to use initialized token on + garbage collection + + clisp-2.49-clx_demos.dif -- Make CLX demos usable at runtime + + clisp-2.49-postgresql.dif -- Enable postgresql SSL feature + + re-add clisp-2.49-rpath.dif -- Do not use rpath but rpath-link +- Re-enable test suite +- Use screen to have a terminla around even in build system + +------------------------------------------------------------------- +Thu Apr 18 19:46:40 UTC 2013 - leviathanch@opensuse.org + +- This (split up) package is one of three changes in order to make + clisp build on armv7l and other platforms. (SR#172680) + +------------------------------------------------------------------- +Wed Apr 3 17:35:18 UTC 2013 - dvaleev@suse.com + +- src/socket.d (get_hostname): turn into a function and allocate the + array in the caller to support gcc 4.7 [patch#3474660] + fixes ppc socket.d failing test. (clisp-hostname.patch) + +------------------------------------------------------------------- +Wed Nov 28 15:03:30 UTC 2012 - toganm@opensuse.org + +- Fix build with glibc 2.17 (clisp-glibc-fix.patch) + * rebase patches to -p1 as stated in the patching guidelines + * update to libsegsev-2.10 + +------------------------------------------------------------------- +Fri Jul 27 20:10:16 UTC 2012 - aj@suse.de + +- Fix build with glibc 2.16 (clisp-linux.patch taken from Fedora). + +------------------------------------------------------------------- +Fri Jul 13 06:43:29 UTC 2012 - adrian@suse.de + +- disable stackoverflow tests in qemu builds (fixes arm) + +------------------------------------------------------------------- +Wed Apr 18 16:04:38 UTC 2012 - dvaleev@suse.com + +- fix libsigsegv link. To make service run happy + +------------------------------------------------------------------- +Tue Mar 27 18:14:39 UTC 2012 - sweet_f_a@gmx.de + +- update to libsigsegv 2.9 to fix ppc build + +------------------------------------------------------------------- +Tue Jan 17 15:01:26 UTC 2012 - sweet_f_a@gmx.de + +- don't use deprecated macro suse_update_config +- remove berkeley-db.dif +- strip needs writable files + +------------------------------------------------------------------- +Sun Dec 18 15:49:35 UTC 2011 - sweet_f_a@gmx.de + +- minor portability fixes: + * don't call autoreconf for libsigsegv (not needed since sigsegv patch + has been removed in lately) + * require fdupes, dbus-1-devel and xorg-x11-devel only on recent suse + +------------------------------------------------------------------- +Mon Dec 5 12:01:05 UTC 2011 - werner@suse.de + +- Use _service to avoid silly osc checks + +------------------------------------------------------------------- +Fri Dec 2 08:37:00 UTC 2011 - werner@suse.de + +- Avoid download of ffcall-1.10+2.43 +- Convert libsigsegv-2.6.tar from bz2 to gz as build system is not + smart enough to detect and change the compression format + +------------------------------------------------------------------- +Fri Dec 2 07:42:14 UTC 2011 - coolo@suse.com + +- add automake as buildrequire to avoid implicit dependency + +------------------------------------------------------------------- +Sat Sep 17 23:05:18 UTC 2011 - jengelh@medozas.de + +- Remove redundant tags/sections from specfile + +------------------------------------------------------------------- +Wed Oct 6 20:36:32 UTC 2010 - aj@suse.de + +- Use fdupes +- Fix rpmlintrc for lib64. + +------------------------------------------------------------------- +Thu Jul 15 15:09:10 CEST 2010 - werner@suse.de + +- Update 2.49 + * FFI:OPEN-FOREIGN-LIBRARY now accepts the :REQUIRE argument. + * New user variable CUSTOM:*USER-LIB-DIRECTORY* is respected by REQUIRE + and used by "clisp-link install". + Dynamic modules are now the default build option. + * Function RENAME-FILE now accepts :IF-EXISTS argument which determines + the action when the destination exists, unless, of course, *ANSI* is T. + * The replacement value entered by the user in STORE-VALUE and USE-VALUE + restarts is now EVALuated. + * The old user variable CUSTOM:*PRINT-CLOSURE* now controls interpreted + closure output too (RFE#3001956). This is a tricky feature, read up! + * Module readline now supports readline 6.1. + * Module pcre now supports pcre 8.01. + * Module libsvm does not come with the upstream sources anymore, install + locally and pass --with-libsvm-prefix to the top-level configure instead. + All upstream versions up to 2.91 are supported. + * Module berkeley-db now supports Berkeley-DB 4.8. + * Module postgresql now supports PostgreSQL 8.4. + * Module pari has been updated to support both 64 & 32 bit platforms + with and without GMP. + * New functions OS:VERSION-COMPARE et al call strverscmp. + * Multiple threads of execution are now experimentally supported + (not ready for prime time yet). + * Module libsvm has been upgraded to the upstream version 2.89. + * Module Berkeley-DB now supports Berkeley DB 4.7. + (older versions 4.* are, of course, still supported). + * Module readline now supports readline 6.0. + (older versions 5.* are, of course, still supported). + * Passing :EXECUTABLE 0 to EXT:SAVEINITMEM results in an executable + image which delegates processing of all the usual CLISP command line + options to the :INIT-FUNCTION. + * Driver clisp accepts "-b" to print the installation directory. + * Add file clisp.m4 so that the packages which use CLISP can check + whether it is properly installed and has the required version. + * POSIX:COPY-FILE now accepts :METHOD :HARDLINK-OR-COPY. + * New function POSIX:WAIT calls waitpid or wait4. + * New function EXT:TRIM-IF removes leading and trailing matches. + * New user command "LocalSymbols" (abbreviated ":ls"). + * Commands "add" and "create" replace "add-module-set", "add-module-sets" and + "create-module-set" in clisp-link. + * New module DBUS interfaces to the D-Bus message bus system. + * New function EXT:PROBE-PATHNAME can figure out whether the existing + pathname refers to a file or a directory. + * New function EXT:CANONICALIZE lets you easily canonicalize a value + before processing it. + * New user variable CUSTOM:*REOPEN-OPEN-FILE* controls CLISP behavior + when opening an already open file. + * New SETFable function OS:FILE-SIZE extends FILE-LENGTH to pathname + designators and lets you change file size. + New function OS:USER-SHELLS returns the list of legal user shells. + New SETFable functions OS:HOSTID and OS:DOMAINNAME. + * LOAD now uses DIRECTORY only for wild *LOAD-PATHS* components, thus + speeding up the most common cases and preventing the denial-of-service + attack whereas CLISP would not start if a file with a name + incompatible with *PATHNAME-ENCODING* is present in USER-HOMEDIR-PATHNAME. + * ROOM now prints some GC statistics and returns the same values as GC. + * New user variable CUSTOM:*HTTP-LOG-STREAM* controls EXT:OPEN-HTTP logging. + * CLISP built natively on 64-bit platforms (i.e., with 64-bit pointers) + now has :WORD-SIZE=64 in *FEATURES*. + * Module syscalls now offers OS:ERRNO and OS:STRERROR (for the sake of + FFI modules). + * Modules MIT-CLX and NEW-CLX export a new macro XLIB:WITH-OPEN-DISPLAY. + * Module netica has been upgraded to the Netica C API version 3.25 (from 2.15). + * Module libsvm has been upgraded to the upstream version 2.86. + * The top-level configure option --build has been replaced by --cbc + (Configure/Build/Check) to avoid conflict with the standard autoconf option. + * Experimental Just-In-Time Compilation of byte-compiled closures is now + done using GNU lightning (this is a configure-time option). + * New command-line option -lp adds directories to *LOAD-PATHS*. + * New function FFI:OPEN-FOREIGN-LIBRARY allows pre-opening of shared libraries. + * New macro EXT:COMPILE-TIME-VALUE allows computing values at file compilation. + * New function FFI:FOREIGN-POINTER-INFO allows some introspection. + * Versioned library symbols are now accessible via the :VERSION argument of + DEF-CALL-OUT and DEF-C-VAR. + * New functions GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE have + been added for portability reasons. + * New user variable CUSTOM:*SUPPRESS-SIMILAR-CONSTANT-REDEFINITION-WARNING* + controls whether the redefinition warning is issues when the new + constant value is visually similar to the old one. + * REPL commands can now accept arguments. + * Bug fixes: + + Do not eliminate function calls which are advertised to have + exceptional situation in unsafe code (bug#2868166). + + Fix an internal error in DECLAIM on bad OPTIMIZE quality (bug#2868147). + + CLEAR-INPUT now clears the EOF condition on file streams (bug#2902716). + + When quitting on a signal, never enter the debugger (bug#2795278). + + Respect :FULL T in DIRECTORY :WILD-INFERIORS (bug#3009966). + + Handle TWO-WAY-STREAM and ECHO-STREAM correctly by + (SETF STREAM-EXTERNAL-FORMAT) (bug#3020933). + + Fix unbuffered output pipe stream initialization (bug#3024887). + + Better support of :START and :END arguments in NEW-CLX (bug#2159172). + + Fix LOAD-LOGICAL-PATHNAME-TRANSLATIONS when *LOAD-PATHS* contains + wild pathnames (introduced in 2.47) (bug#2198109). + + Module NEW-CLX now has the XLIB:QUEUE-EVENT function, + + Extend the domain of LOG to larger BIGNUMs and RATIOs (bug#1007358). + + Avoid a segfault on (EXPT ) (bug#2807311). + + Fix interaction of finalizers and weak objects (bug#1472478). + + Comparison of floats and rationals never underflows (bug#2014262). + + When failing to convert a huge LONG-FLOAT to a RATIONAL, signal an + ARITHMETIC-ERROR instead of blowing the stack (bug#2015118). + + Restored TYPECODES g++ compilation (bug#1385641), which allowed fixing + a few GC-safety bugs. + + Fixed a segfault when signaling some UNBOUND-VARIABLE errors in some + interpreted code on MacOS X (introduced in 2.46) (bug#2020784). + + Fixed input after switching a :DOS stream to binary (bug#2022362). + + Support circular objects in EQUAL and EQUALP hash-tables (bug#2029069). + + Avoid C namespace pollution (bug#2146126). + + Fix timeout precision in NEW-CLX (bug#2188102). + + Work around the absence of tgamma on solaris (bug#1966375). + + Avoid a rare segfault on SIGHUP (bug#1956715). + + Improve module portability to systems with non-GNU make (bug#1970141). + + Fix GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE (bug#1975798). + + Fix the remaining bugs in special bindings in evaluated code on + TYPECODES (64-bit) platforms. + + Fix SOCKET:SOCKET-CONNECT with timeout to a dead port (bug#2007052). + + Fix handling of quoted objects by READ-PRESERVING-WHITESPACE (bug#1890854). + + Fix rectangle count in NEW-CLX XLIB:SET-GCONTEXT-CLIP-MASK (bug#1918017). + + Fix argument handling in NEW-CLX XLIB:QUERY-COLORS (bug#1931101). + + Fix compilation on systems not supporting returning void (bug#1924506). + + Fix TANH floating point overflow for large floats (bug#1683394). + + Avoid extra aggressive bignum overflow reporting in READ (bug#1928735). + + Improved floating point number formatting. (bug#1790496, bug#1928759) + + COMPILE no longer discards MACRO doc strings (bug#1936255). + + Improved accuracy of LOG on complex numbers (bug#1934968). + + Fix COERCE for compound float result-types (bug#1942246). + + Fix $http_proxy parsing (bug#1959436). + + Fix LISTEN on buffered streams when the last character was + CRLF (bug#1961475). + + Cross-compilation process has been restored to its former glory, + thanks to the valiant and persistent testing by + (bug#1928920, bug#1929496, bug#1929516, bug#1931097) + * ANSI compliance: + + Implement the ANSI issue COMPILER-DIAGNOSTICS:USE-HANDLER: use the + CL Condition System for compiler diagnostics. + + STREAM-ELEMENT-TYPE on empty CONCATENATED-STREAMs now returns NIL + because nothing can be read from such streams (bug#3014921). + + Implement the ANSI (IGNORE #'FUNCTION) declaration. + + The sets of declaration and type names are disjoint. + + FLET, LABELS and MACROLET respect declarations. + + +------------------------------------------------------------------- +Wed Apr 21 14:35:56 UTC 2010 - coolo@novell.com + +- found patch to avoid endless configure + +------------------------------------------------------------------- +Tue Nov 3 19:09:10 UTC 2009 - coolo@novell.com + +- updated patches to apply with fuzz=0 + +------------------------------------------------------------------- +Wed Aug 26 12:53:54 CEST 2009 - mls@suse.de + +- make patch0 usage consistent + +------------------------------------------------------------------- +Thu Mar 5 15:54:47 CET 2009 - crrodriguez@suse.de + +- build this package against newer Berkeley DB, so db43 can be + dropped as nothing else depends on it. + +------------------------------------------------------------------- +Tue Feb 26 13:45:14 CET 2008 - werner@suse.de + +- Update 2.44.1 + + * Portability: + + Add a workaround against a gcc 4.2.x bug. + + Make it work with gcc 4.3 snapshots. + + * CLISP does not come with GNU libffcall anymore. + This is now a separate package and should be installed separately. + Pass --with-libffcall-prefix to the top-level configure if it is not + installed in a standard place. + Option --with-dynamic-ffi is now replaced with --with-ffcall. + + * CLOS now issues warnings of type CLOS:CLOS-WARNING. + See + for details. + + * The AFFI (simple ffi, originally for Amiga) code has been removed. + + * Speed up list and sequence functions when :TEST is EQ, EQL, EQUAL or EQUALP. + + * Rename EXT:DELETE-DIR, EXT:MAKE-DIR, and EXT:RENAME-DIR to + EXT:DELETE-DIRECTORY, EXT:MAKE-DIRECTORY, and EXT:RENAME-DIRECTORY, + respectively, for consistency with EXT:PROBE-DIRECTORY, + EXT:DEFAULT-DIRECTORY and CL:PATHNAME-DIRECTORY. + The old names are still available, but deprecated. + + * The :VERBOSE argument to SAVEINITMEM defaults to a new user variable + *SAVEINITMEM-VERBOSE*, intial value T. + See for details. + + * Bug fixes: + + Fix FRESH-LINE at the end of a line containing only TABs. [ 1834193 ] + + PPRINT-LOGICAL-BLOCK no longer ignores *PRINT-PPRINT-DISPATCH-TABLE*. + [ 1835520 ] + + BYTE is now a full-fledged type. [ 1854698 ] + + Fix linux:dirent definition in the bindings/glibc module. [ 1779490 ] + + Symbolic links into non-existent directories can now be deleted. [ 1860489 ] + + DIRECTORY :FULL on directories now returns the same information as + on files. [ 1860677 ] + + CLISP no longer hangs at the end of a script coming via a pipe + ("clisp < script.lisp" or "cat script | clisp"). [ 1865567 ] + + When *CURRENT-LANGUAGE* is incompatible with *TERMINAL-ENCODING*, + CLISP no longer goes into an infinite recursion trying to print + various help messages. [ 1865636 ] + + Fix the "Quit" debugger command. [ 1448744 ] + + Repeated terminating signals kill CLISP instantly with the correct + exit code. [ 1871205 ] + + Stack inspection is now safer. [ 1506316 ] + + Errors in the RC-file and init files are now handled properly. [ 1714737 ] + + Avoid the growth of the restart set with each image save. [ 1877497 ] + + Handle foreign functions coming from the old image which cannot be + validated. [ 1407486 ] + + Fix signal code in bindings/glibc/linux.lisp. [ 1781476 ] + +------------------------------------------------------------------- +Thu Jan 24 15:28:13 CET 2008 - werner@suse.de + +- Correct vim site path to current used one + +------------------------------------------------------------------- +Sun Jan 13 11:58:35 CET 2008 - coolo@suse.de + +- fix file list for vim + +------------------------------------------------------------------- +Tue Dec 18 14:51:46 CET 2007 - werner@suse.de + +- Use -ffloat-store on on i386 to avoid the previous bug +- Reorder -f options and -D defines of gcc + +------------------------------------------------------------------- +Mon Dec 17 15:09:09 CET 2007 - werner@suse.de + +- Add workaround to gcc bug in -O2 on i386 + +------------------------------------------------------------------- +Fri Dec 14 17:02:38 CET 2007 - werner@suse.de + +- Update to 2.43 + + * Infrastructure: + + Top-level configure now accepts a new option --vimdir which specifies + the installation directory for the VIM files (lisp.vim). + The default value is ${datadir}/vim/vimfiles/after/syntax/. + Thus, lisp.vim is now installed by "make install", and should + be included in the 3rd party distributions. + + Top-level configure now always runs makemake, and makemake no longer is + a "user-level" command; do not run it unless you know what you are doing. + This brings the CLISP build process in compliance with the GNU standards. + + We now use gnulib-tool to sync with gnulib (not really user visible, + but a major infrastructure change). + + * Portability: + + Support for ancient systems with broken CPP have been dropped. + This includes AIX 4.2, Coherent386, Ultrix, MSVC4, MSVC5. + + NeXT application (GUI) code has been removed. Plain TTY is still supported. + + * Module berkeley-db now supports Berkeley DB 4.5 & 4.6. + + * Bug fixes: + + FORCE-OUTPUT breakage on MacOS X when stdout is not a terminal. [ 1827572 ] + + Fixed *PRINT-PPRINT-DISPATCH* binding in WITH-STANDARD-IO-SYNTAX. + [ 1831367 ] + +- Update to 2.42 + + * New module gtk2 interfaces to GTK+ v2 and makes it possible to build + GUI with Glade. + Thanks to James Bailey for the original code. + See for details. + + * New module gdbm interfaces to GNU DataBase Manager. + Thanks to Masayuki Onjo . + See for details. + + * A kind of Meta-Object Protocol for structures is now available. + See for details. + + * Module libsvm has been upgraded to the upstream version 2.84. + See for details. + + * NEW-CLX module now supports Stumpwm . + Thanks to Shawn Betts . + New NEW-CLX demos: bball bwindow greynetic hanoi petal plaid recurrence from + . + New NEW-CLX demo: clclock based on . + New function XLIB:OPEN-DEFAULT-DISPLAY from portable CLX. + + * Function EXT:ARGLIST now works on macros too. + See for details. + + * Macro TRACE has a new option :BINDINGS, which is useful to share data + between PRE-* and POST-* forms. + See for details. + + * Macro FFI:DEF-C-TYPE can now be called with one argument to define an + integer type. + See for details. + + * New function EXT:RENAME-DIR can be used to rename directories. + See for details. + + * Functions FILE-LENGTH and FILE-POSITION now work on unbuffered streams too. + See for details. + + * Bug fixes: + + Fixed EXT:LETF to work with more than one place. [ 1731462 ] + + Fixed rounding of long floats [even+1/2]. [ 1589311 ] + + Fixed stdio when running without a TTY, e.g., under SSH. [ 1592343 ] + + ANSI compliance: PPRINT dispatch is now respected for nested + objects, not just the top-level. [ 1483768, 1598053 ] + + Fixed print-read-consistency of strings containing #\Return characters + (manifested by COMPILE-FILE). [ 1578179 ] + + Fixed "clisp-link run". [ 1469663 ] + + Fixed ATANH branch cut continuity. [ 1436987 ] + + Reset the function lambda expression when loading a compiled file. + [ 1603260 ] + + DOCUMENTATION set by SETF is now preserved by COMPILE. [ 1604579 ] + + LISTEN now calls STREAM-LISTEN as per the Gray proposal. [ 1607666 ] + + IMPORT into the KEYWORD package does not make a symbol a constant + variable. [ 1612859 ] + + DEFPACKAGE code was executed during non top-level compilation. [ 1612313 ] + + Fixed format error message formatting. [ 1482465 ] + + Fixed *PPRINT-FIRST-NEWLINE* handling. [ 1412454 ] + + Improved hash code generation for very large bignums and for long lists. + [ 948868, 1208124 ] + + Some bugs related to UNICODE-16 & UNICODE-32. [ 1564818, 1631760, 1632718 ] + + All exported defined symbols are now properly locked. [ 1713130 ] + + Berkeley-DB module no longer fills up error log file. [ 1779416 ] + + New-clx now supports 64-bit KeySym. [ 1797132 ] + +------------------------------------------------------------------- +Tue May 22 15:43:32 CEST 2007 - ro@suse.de + +- update to 2.41 + * New module libsvm interfaces to + and makes Support Vector Machines available in CLISP. + See for details. + + * The same internal interface now handles FFI forms DEF-CALL-OUT and + DEF-C-VAR regardless of the presence of the :LIBRARY argument. + (:LIBRARY NIL) is now identical to omitting the :LIBRARY argument. + The default for the :LIBRARY argument is set by + FFI:DEFAULT-FOREIGN-LIBRARY per compilation unit. + See for details. + + * Bug fixes: + + DOCUMENTATION on built-in functions was broken on some platforms. + [ 1569234 ] + + Fixed FFI callbacks, broken since the 2.36 release. + + Fixed the way the top-level driver handles the "--" option terminator. + + Fixed COMPILE of APPLY in LABELS for local function. [ 1575946 ] + +- update to 2.40 + + Important notes + --------------- + + * All .fas files generated by previous CLISP versions are invalid and + must be recompiled. This is because DOCUMENTATION and LAMBDA-LIST are + now kept with the closures. + Set CUSTOM:*LOAD-OBSOLETE-ACTION* to :COMPILE to automate this. + See for details. + + User visible changes + -------------------- + + * Infrastructure + + Top-level configure now accepts a new option --elispdir which specifies + the installation directory for the Emacs Lisp files (clhs.el et al). + The default value is ${datadir}/emacs/site-lisp/. + Thus, clhs.el at al are now installed by "make install", and should + be included in the 3rd party distributions. + + Top-level configure now accepts variables on command line, e.g., + ./configure CC=g++ CFLAGS=-g + + * Function PCRE:PCRE-EXEC accepts :DFA and calls pcre_dfa_exec() when + built against PCRE v6. See . + + * New functions RAWSOCK:IF-NAME-INDEX, RAWSOCK:IFADDRS. + See . + + * When the OPTIMIZE SPACE level is low enough, keep function + documentation and lambda list. + See . + + * Bug fixes: + + Make it possible to set *IMPNOTES-ROOT-DEFAULT* and *CLHS-ROOT-DEFAULT* + to local paths, as opposed to URLs. [ 1494059 ] + + Fix the evaluation order of initialization and :INITIALLY forms in + then extended LOOP. [ 1516684 ] + + Do not allow non-symbols as names of anonymous classes. [ 1528201 ] + + REINITIALIZE-INSTANCE now calls FINALIZE-INHERITANCE. [ 1526448 ] + + Fix the RAWSOCK module on big-endian platforms. [ 1529244 ] + + PRINT-OBJECT now works on built-in objects. [ 1482533 ] + + ADJUST-ARRAY signals an error if :FILL-POINTER is supplied and non-NIL + but the non-adjustable array has no fill pointer, as per ANSI. [ 1538333 ] + + MAKE-PATHNAME no longer ignores explicit :DIRECTORY NIL (thanks to + Stephen Compall ). [ 1550803 ] + + Executable images now work on ia64 (thanks to Dr. Werner Fink + ). + + MAKE-PATHNAME on win32 now handles correctly directories that start + with a non-string (e.g., :WILD). [ 1555096 ] + + SOCKET-STREAM-PEER and SOCKET-STREAM-LOCAL had do-not-resolved-p + inverted since 2.37. + + Set functions with :TEST 'EQUALP were broken on large lists. [ 1567186 ] + + +------------------------------------------------------------------- +Mon Apr 23 21:30:57 CEST 2007 - aj@suse.de + +- Remove unneeded BuildRequires. + +------------------------------------------------------------------- +Wed Jan 24 11:36:01 CET 2007 - werner@suse.de + +- Stop compiler complaining about x = x++ +- Use db-4.3 instead of db-4.4, the breaking all former versions + +------------------------------------------------------------------- +Mon Oct 30 00:42:12 CET 2006 - ro@suse.de + +- disabled berkeley-db module for the moment to fix build + needs porting to db-4.4 + +------------------------------------------------------------------- +Wed Jul 19 17:40:53 CEST 2006 - werner@suse.de + +- Update to clisp version 2.39 + * Many bug fixes and new features +- With a real bug fix for last crash on ia64 +- Add a new workaround for a new random crash on ia64 + +------------------------------------------------------------------- +Thu Jun 22 18:10:50 CEST 2006 - ro@suse.de + +- remove self provides + +------------------------------------------------------------------- +Tue May 23 18:12:47 CEST 2006 - werner@suse.de + +- Skip exec-image test on ia64, currently broken +- Use noexec heap codes on 32 bit architectures + +------------------------------------------------------------------- +Mon May 22 18:14:49 CEST 2006 - werner@suse.de + +- Update to clisp 2.38 + +------------------------------------------------------------------- +Tue Mar 21 13:29:37 CET 2006 - werner@suse.de + +- Be sure not to be fooled by old kernels on IA64 + +------------------------------------------------------------------- +Mon Mar 13 17:25:51 CET 2006 - werner@suse.de + +- Be sure that the stack size limit is large enough to be able + to dump the resulting clisp image. + +------------------------------------------------------------------- +Sun Feb 5 11:40:24 CET 2006 - schwab@suse.de + +- Remove ridiculous stack limit. + +------------------------------------------------------------------- +Wed Jan 25 21:35:03 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Tue Jan 10 16:27:05 CET 2006 - werner@suse.de + +- Update to bug fix release 2.37 + +------------------------------------------------------------------- +Wed Dec 21 16:26:51 CET 2005 - werner@suse.de + +- Make the factorials of 17 upto 33 work on 64 bit without SIGSEGV + +------------------------------------------------------------------- +Wed Dec 7 17:19:17 CET 2005 - werner@suse.de + +- Update to clisp 2.36 + +------------------------------------------------------------------- +Mon Sep 5 17:04:55 CEST 2005 - werner@suse.de + +- Update to clisp 2.35 + +------------------------------------------------------------------- +Thu Apr 14 17:30:43 CEST 2005 - werner@suse.de + +- Get clisp back on ix86 + +------------------------------------------------------------------- +Wed Jan 12 12:12:39 CET 2005 - mfabian@suse.de + +- Bugzilla #39700: apply patch received from Bruno Haible to fix + a problem with non-ASCII file names. + +------------------------------------------------------------------- +Tue Oct 26 13:41:33 CEST 2004 - werner@suse.de + +- Switch from heimdal-lib to kerberos-devel-packages macro + +------------------------------------------------------------------- +Wed Jun 30 17:41:46 CEST 2004 - werner@suse.de + +- Handle axp just as ia64 in CFLAGS to make it work correctly + +------------------------------------------------------------------- +Tue Jun 29 15:28:31 CEST 2004 - werner@suse.de + +- Make FFI work on ia64 +- Make memory mapping of lisp object work correctly on ia64 + +------------------------------------------------------------------- +Wed Jun 23 19:28:48 CEST 2004 - werner@suse.de + +- Update to clisp 2.33.2 +- Make it work on x86_64 +- Use FFI on s390 because it works +- Currently disable FFI in ia64 because it does not work + +------------------------------------------------------------------- +Fri Feb 20 14:24:46 CET 2004 - werner@suse.de + +- Back to clisp 2.30 because 2.32/2.31 does _not_ support 64bit + systems (work in progress, waiting on 2.33). OK, with 2.30 + and current compiler no of 64 bit systems are running, but + we get abck a s390 clisp version. + +------------------------------------------------------------------- +Fri Feb 13 22:58:10 CET 2004 - kukuk@suse.de + +- Build as normal user +- Cleanup neededforbuild + +------------------------------------------------------------------- +Fri Feb 13 13:56:36 CET 2004 - werner@suse.de + +- Update to clisp 2.32 + +------------------------------------------------------------------- +Wed Nov 19 16:44:56 CET 2003 - max@suse.de + +- Linking libpq dynamically, because it now depends on libkrb5. + +- Added heimdal-lib (libkrb5) to neededforbuild. + +------------------------------------------------------------------- +Thu Jun 12 16:18:01 CEST 2003 - coolo@suse.de + +- use BuildRoot +- use %find_lang + +------------------------------------------------------------------- +Wed Jun 11 05:31:28 CEST 2003 - kukuk@suse.de + +- Fix tail parameters +- Fix filelist + +------------------------------------------------------------------- +Wed Jan 29 16:30:59 CET 2003 - werner@suse.de + +- Get it running with gcc 3.3, with this compiler the TYPECODES + can not determined anymore and uses NO_TYPECODES. + +------------------------------------------------------------------- +Fri Jan 24 19:33:34 CET 2003 - werner@suse.de + +- Update to 2.30 + +------------------------------------------------------------------- +Mon Nov 11 23:49:54 CET 2002 - ro@suse.de + +- changed neededforbuild to +- changed neededforbuild to <> + +------------------------------------------------------------------- +Thu Aug 1 18:32:56 CEST 2002 - werner@suse.de + +- Make it work on i386, on others gcc 3.1 runs into problems + +------------------------------------------------------------------- +Wed Jul 31 16:06:33 CEST 2002 - werner@suse.de + +- Update to 2.29 (mainly for gcc 3.1) +- Use SAFETY=3 for some architectures (currently for + sparc sparcv9 sparc64 s390 s390x x86_64) +- Replace config.guess within all autoconf directories (ppc64?) + +------------------------------------------------------------------- +Wed Jun 26 16:05:41 CEST 2002 - aj@suse.de + +- First draft for x86-64. Still work needed for avcall. + +------------------------------------------------------------------- +Wed Jun 26 13:33:55 CEST 2002 - ro@suse.de + +- update to 2.28 +- build again with gcc-3.1 (use -fno-gcse and -DNO_ASM as proposed) +- use -fPIC for files linked into shared lib +- still needs some porting for x86_64 (processor-defs in lispbibl.d) + +------------------------------------------------------------------- +Mon Jun 24 00:00:09 CEST 2002 - ro@suse.de + +- fix permissions for doc directories + +------------------------------------------------------------------- +Sat Jun 1 18:53:03 UTC 2002 - adrian@suse.de + +- fix build on mips + * fix wrong #includes + * fix as path /bin/as -> /usr/bin/as + +------------------------------------------------------------------- +Thu Aug 23 00:33:50 CEST 2001 - ro@suse.de + +- fixed specfile to build on ppc + +------------------------------------------------------------------- +Wed Jul 11 02:42:10 CEST 2001 - ro@suse.de + +- update to 2.26 +- no autoconf call at the moment + +------------------------------------------------------------------- +Mon May 7 21:19:32 CEST 2001 - mfabian@suse.de + +- bzip2 sources + +------------------------------------------------------------------- +Tue Dec 5 15:21:09 CET 2000 - werner@suse.de + +- Update to 2000.03.06 +- Use postgresql and postgresql-devel +- Change libpq paths accordingly to postgresql-devel +- Make clx demos working as found in README + +------------------------------------------------------------------- +Fri Dec 1 02:01:33 CET 2000 - ro@suse.de + +- neededforbuild: postgresql + +------------------------------------------------------------------- +Mon Jun 5 17:00:57 MEST 2000 - uli@suse.de + +- moved docs to %{_docdir} + +------------------------------------------------------------------- +Mon Jan 31 23:30:03 CET 2000 - ro@suse.de + +- fixed libc6-checking again + +------------------------------------------------------------------- +Mon Jan 31 21:56:21 CET 2000 - werner@suse.de + + - Tried to get PPC working (does NOT work) + - /usr/man -> /usr/share/man + +------------------------------------------------------------------- +Thu Oct 28 17:32:32 CEST 1999 - werner@suse.de + + - Reintroduce FIFO hack for a missed tty + +------------------------------------------------------------------- +Mon Oct 11 22:39:26 CEST 1999 - werner@suse.de + + - New version clisp-1999-07-22 + * remove Makefile.Linux and use spec instead + +------------------------------------------------------------------- +Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de + +- ran old prepare_spec on spec file to switch to new prepare_spec. + +---------------------------------------------------------------------------- +Wed Mar 31 11:58:32 CEST 1999 - werner@suse.de + + - No string inlines + +---------------------------------------------------------------------------- +Tue Mar 30 17:54:43 CEST 1999 - werner@suse.de + + - Work around clisp's buffered *TERMINAL-IO* within a + background build process + +---------------------------------------------------------------------------- +Mon Mar 29 20:52:59 CEST 1999 - werner@suse.de + + - New version clisp-1999-01-08 + - Make -X and -F identical + +---------------------------------------------------------------------------- +Fri Dec 18 21:28:04 MET 1998 - werner@suse.de + + - New version clisp-1998-09-09 + - Change option -F (full version) to option -X + * Split modules into wildcard, regexp, bindings/linuxlibc6 on + one hand and new-clx on the other one. + * Replace normal version with full version without new-clx + * New version including new-clx and all other modules + +---------------------------------------------------------------------------- +Fri Feb 20 00:21:51 MET 1998 - werner@suse.de + + - New Version 1997-12-06 + - clx script removed + - Option -F for clisp added + +---------------------------------------------------------------------------- +Mon Jun 9 21:36:35 MET DST 1997 - werner@suse.de + - Patch for GC in clisp included. + +---------------------------------------------------------------------------- +Fri Jun 6 13:24:35 MET DST 1997 - werner@suse.de + - New package: clisp version 1997-05-03 + - Added nclx version 1996-10-12 a + clx re-implementation of Gilbert Baumann + - clisp+clx is called with /usr/bin/clx + clisp is called with /usr/bin/clisp diff --git a/clisp.spec b/clisp.spec new file mode 100644 index 0000000..88853bc --- /dev/null +++ b/clisp.spec @@ -0,0 +1,408 @@ +# +# spec file for package clisp +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: clisp +Version: 2.49.92 +Release: 0 +Summary: A Common Lisp Interpreter +# Included gllib is GPL-3.0-or-later +License: GPL-2.0-or-later AND GPL-3.0-or-later +Group: Development/Languages/Other +URL: https://gitlab.com/gnu-clisp/clisp +Source: %name-%version.tar.bz2 +Source3: clisp-rpmlintrc +Source4: README.SUSE +# PATCH-EXTEND-OPENSUSE Set the process execution domain +Patch1: clisp-2.49-personality.patch +# PATCH-FIX-OPENSUSE Fix crash on Ia64 +Patch2: clisp-2.39-ia64-wooh.dif +# PATCH-EXTEND-OPENSUSE Make sure to be able to use MYCLFAGS +Patch4: clisp-2.49-configure.dif +# PATCH-FIX-OPENSUSE Make sure to use initialized token on garbage collection +Patch5: clisp-2.49-gctoken.dif +# PATCH-FEATURE-OPENSUSE Make CLX demos usable at runtime +Patch6: clisp-2.49-clx_demos.dif +# PATCH-EXTEND-OPENSUSE Enable postgresql SSL feature +Patch7: clisp-2.49-postgresql.dif +# PATCH-FIX-OPENSUSE Do not use rpath but rpath-link +Patch8: clisp-2.49-rpath.dif +# PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls +Patch12: clisp-linux.patch +Patch13: clisp-gcc14.patch +Patch14: clisp-link.dif +Patch16: clisp-db6.diff + +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%global vimdir %{_datadir}/vim/site/after/syntax +BuildRequires: FastCGI-devel +BuildRequires: db-devel +BuildRequires: dbus-1-devel +BuildRequires: fdupes +BuildRequires: ffcall +#%ifarch s390x +#BuildRequires: gcc8 +#%endif +BuildRequires: gdbm-devel +BuildRequires: glib2-devel +BuildRequires: gtk2-devel +BuildRequires: libglade2-devel +BuildRequires: libsigsegv-devel +BuildRequires: ncurses-devel +BuildRequires: net-tools +BuildRequires: openssl-devel +BuildRequires: pcre-devel +BuildRequires: pcre2-devel +BuildRequires: postgresql-devel +BuildRequires: readline-devel +BuildRequires: screen +BuildRequires: vim-data +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xaw6) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xpm) +BuildRequires: pkgconfig(zlib) +# +# If set to yes do not forget to add +# gcc-c++ +# to BuildRequires +# +%define debug no +%define _lto_cflags %{nil} +%global rlver %(rpm -q --qf '%%{VERSION}' readline-devel | sed 's/\\.//g') +%define add_optflags(a:f:t:p:w:W:d:g:O:A:C:D:E:H:i:M:n:P:U:u:l:s:X:B:I:L:b:V:m:x:c:S:E:o:v:) \ +%global optflags %{optflags} %{**} +Requires(pre): vim +Requires(pre): vim-data +Requires: ffcall +# CLISP memory image data are compressed with gzip +Requires: /usr/bin/gzip +Provides: %{name}-devel +Suggests: %{name}-doc + +%description +Common Lisp is a high-level, all-purpose programming language. CLISP is +an implementation of Common Lisp that closely follows the book "Common +Lisp - The Language" by Guy L. Steele Jr. This package includes an +interactive programming environment with an interpreter, a compiler, +and a debugger. Start this environment with the command 'clisp'. + +%package doc +Summary: Documentation of CLisp +Group: Development/Languages/Other +Requires: %{name} +%if 0%{?suse_version} >= 1120 +BuildArch: noarch +%endif + +%description doc +CLISP documentation is placed in the following directories: + +/usr/share/doc/packages/clisp/ + +/usr/share/doc/packages/clisp/doc/ + +As well as the conventional CLISP, this package also includes CLX, an +extension of CLISP for the X Window System. The X Window System must be +installed before running the clx command. The description of this CLX +version (new-clx) is placed in + +/usr/share/doc/packages/clisp/clx/ + +with the file README. The subdirectory + +/usr/share/doc/packages/clisp/clx/demos/ + +contains two nice applications. + +%prep +%setup -qT -b0 +%patch -P 1 -p1 -b .sel +%patch -P 2 -p1 -b .wooh +%patch -P 4 -p1 -b .conf +%patch -P 5 -p1 -b .gc +%patch -P 6 -p1 -b .demos +%patch -P 7 -p1 -b .psql +%patch -P 8 -p1 -b .rpath +%patch -P 12 -p1 -b .p12 +%patch -P 13 -p0 -b .p13 +%patch -P 14 -p0 -b .p14 +%patch -P 16 -p1 -b .p16 + +%build +%add_optflags -g3 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE +# +# Overwrite stack size limit (hopefully a soft limit only) +# +ulimit -Ss unlimited || true +ulimit -Hs unlimited || true +unset LC_CTYPE +LANG=POSIX +LC_ALL=POSIX +export LANG LC_ALL +# +# Current system +# +SYSTEM=${RPM_ARCH}-suse-linux +export PATH="$PATH:." +# +# Set gcc command line but do not use CFLAGS +# +if test %debug = yes ; then + CC="g++" +else + CC="gcc" +fi +%ifarch s390x +##RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-fstack-protector-strong ?//g;s/-f(stack-clash-protection)/-fno-\1/') -fno-stack-limit" +%endif +CC="${CC} -g %{optflags} -fno-strict-aliasing -fPIC -pipe" +case "$(uname -m)" in + i[0-9]86) + CC="${CC} -ffloat-store" ;; + arm*) CC="${CC}" ;; + aarch64)CC="${CC}" ;; + ppc) CC="${CC}" ;; + s390) CC="${CC}" ;; + x86_64) CC="${CC} -fno-gcse" ;; + sparc*) CC="${CC} -mcpu=v9 -fno-gcse" ;; + ppc64) CC="${CC} -fno-gcse -mpowerpc64" ;; + ppc64le)CC="${CC} -fno-gcse" ;; + s390x) CC="${CC} -fno-gcse -fno-schedule-insns";; + ia64) CC="${CC} -fno-gcse" ;; + axp|alpha) + CC="${CC}" ;; +esac +# +# FastCGI-devel seems a bit broken +# +CC="${CC} -I%{_includedir}/fastcgi" + +safety='-O' +MYCFLAGS="$(getconf LFS_CFLAGS)" +if grep -q _DEFAULT_SOURCE /usr/include/features.h +then + MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE -D_DEFAULT_SOURCE" +else + MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE" +fi +MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var" +# From src/makemake.in +# +# Do NOT enable -DSAFETY=3 here, because -DSAFETY=3 not only disables some +# optimizations but also enables some debugging features (STACKCHECKs), which +# is not in the scope of --enable-portability. +# +port='' +%ifarch s390x +##port='--enable-portability' +%endif +case "$(uname -m)" in + i[0-9]86) + MYCFLAGS="${MYCFLAGS}" ;; + arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + aarch64)MYCFLAGS="${MYCFLAGS}" ;; + ppc) MYCFLAGS="${MYCFLAGS}" ;; + s390) MYCFLAGS="${MYCFLAGS}" ;; + x86_64) MYCFLAGS="${MYCFLAGS}" ;; + sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + axp|alpha) + MYCFLAGS="${MYCFLAGS}" ;; +esac +export CC +export MYCFLAGS +unset noexec nommap safety + +# +# Report final architectures +# +echo $(uname -i -m -p) %_build_arch %_arch +echo | $CC $MYCFLAGS -v -E - 2>&1 | grep /cc1 +# +# Environment for the case of missing terminal +# +%global _configure screen -D -m setarch $(uname -m) -R ./configure +%global _make screen -D -m setarch $(uname -m) -R make +SCREENDIR=$(mktemp -d ${PWD}/screen.XXXXXX) || exit 1 +SCREENRC=${SCREENDIR}/clisp +export SCREENRC SCREENDIR +exec 0< /dev/null +SCREENLOG=${SCREENDIR}/log +cat > $SCREENRC<<-EOF + deflogin off + deflog on + logfile $SCREENLOG + logfile flush 1 + logtstamp off + log on + setsid on + scrollback 0 + silence on + utf8 on + EOF +# +# Build the current system +# +if test %debug = yes ; then + DEBUG=--with-debug + MYCFLAGS="${MYCFLAGS} -g3 -DDEBUG_GCSAFETY" +else + DEBUG="" + MYCFLAGS="${MYCFLAGS}" +fi + +find -name configure | xargs -r \ + sed -ri "/ac_precious_vars='build_alias\$/ {N; s/build_alias\\n//; }" +# +# The modules i18n, syscalls, regexp +# are part of the base clisp system. +# +> $SCREENLOG +tail -q -s 0.5 -f $SCREENLOG & pid=$! +%_configure build ${DEBUG} \ + ${port+"$port"} \ + --prefix=%{_prefix} \ + --exec-prefix=%{_prefix} \ + --libdir=%{_libdir} \ + --vimdir=%{vimdir} \ + --fsstnd=suse \ + --with-readline \ + --with-dynamic-modules \ + --with-gettext \ + --with-module=asdf \ + --with-module=dbus \ + --with-module=editor \ + --with-module=fastcgi \ + --with-module=queens \ + --with-module=gdbm \ + --with-module=gtk2 \ + --with-module=pcre \ + --with-module=rawsock \ + --with-module=zlib \ + --with-module=bindings/glibc\ + --with-module=clx/new-clx \ + --with-module=berkeley-db \ + --with-module=postgresql + +%_make -C build lispbibl.h +grep TYPECODES build/lispbibl.h || : +%_make -C build +%_make -C build check + +# +# Stop tail +# +sleep 1 +kill $pid + +# +# Check for errors +# + +check=no +for err in build/tests/*.erg +do + test -e "$err" || break + check=yes + cat $err +done +if test $check != no +then + type -p uname > /dev/null 2>&1 && uname -a || : + type -p netstat > /dev/null 2>&1 && netstat -i || : + type -p netstat > /dev/null 2>&1 && netstat -x || : + type -p ip > /dev/null 2>&1 && ip link || : + type -p ss > /dev/null 2>&1 && ss -x || : +fi + +# +%install +# +# Clean +# +find modules/clx/ -name '*.demos' | xargs --no-run-if-empty rm -vf +# +# Current system +# +SYSTEM=${RPM_ARCH}-suse-linux +LSPDOC=%{_docdir}/clisp +DOCDOC=${LSPDOC}/doc +CLXDOC=${LSPDOC}/clx +LSPLIB=%{_libdir}/clisp-%{version} +CLXLIB=${LSPLIB}/full +# +# Install the current system +# +setarch $(uname -m) -R make -C build install prefix=%{_prefix} \ + exec_prefix=%{_prefix} \ + mandir=%{_mandir} \ + libdir=%{_libdir} \ + DESTDIR=%{buildroot} \ + INSTALL_DATA="install -cm 0444" + +# +# The CLX interface +# +install -d %{buildroot}${CLXDOC} +install -d %{buildroot}${CLXLIB} +pushd modules/clx/new-clx/ + install -c -m 0444 README %{buildroot}${CLXDOC}/ + install -c -m 0444 %{S:4} %{buildroot}${CLXDOC}/ + tar cf - demos/ | (cd %{buildroot}${CLXDOC}/ ; tar xf - ) +popd +pushd modules/clx/ + tar xfz clx-manual.tar.gz -C %{buildroot}${CLXDOC} +popd +find %{buildroot} -name "*.a" | xargs chmod u+w +chmod u+xrw,a+rx %{buildroot}%{_bindir}/clisp +chmod u+xrw,a+rx %{buildroot}%{_bindir}/clisp-link +chmod -R g+r,o+r %{buildroot}${LSPDOC}/ +chmod a-x %{buildroot}${CLXDOC}/clx-manual/html/doc-index.cgi +find %{buildroot}${LSPDOC} -type d | xargs chmod 755 +rm -f %{buildroot}${CLXDOC}/*,v +rm -f %{buildroot}${CLXDOC}/.\#* +rm -f %{buildroot}${CLXDOC}/demos/*,v +rm -f %{buildroot}${CLXDOC}/demos/.\#* +rm -f %{buildroot}${CLXDOC}/demos/*.orig +find %{buildroot}${LSPLIB}/ -name '*.dvi' | xargs -r rm -f +find %{buildroot}${LSPLIB}/ -name '*.run' | xargs -r chmod 0755 +rm -rf %{buildroot}${LSPLIB}/new-clx/demos/ +find %{buildroot} -type f | xargs -r chmod u+w +chmod a+x %{buildroot}${LSPLIB}/build-aux/{config,depcomp}* +%fdupes %{buildroot}${LSPLIB}/ +%find_lang clisp +%find_lang clisplow clisp.lang + +%files -f clisp.lang +%defattr(-,root,root,755) +%{_bindir}/clisp +%{_bindir}/clisp-link +%{_libdir}/clisp-%{version}/ +%{_datadir}/aclocal/clisp.m4 +%{_datadir}/emacs/site-lisp/ +%doc %{_datadir}/man/man1/clisp*.1.gz +%{vimdir}/lisp.vim + +%files doc +%defattr(-,root,root,755) +%{_docdir}/clisp/ + +%changelog From 9a649938465721999360e7a90f534541155467ae4adf3656a6438f1aa76f409b Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 28 Aug 2024 13:58:36 +0000 Subject: [PATCH 02/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=131 --- clisp-gcc14.patch | 61 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/clisp-gcc14.patch b/clisp-gcc14.patch index dfd93a8..4ed41f8 100644 --- a/clisp-gcc14.patch +++ b/clisp-gcc14.patch @@ -1,7 +1,64 @@ --- - modules/gdbm/gdbm.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + modules/berkeley-db/bdb.c | 8 ++++---- + modules/berkeley-db/configure | 2 +- + modules/berkeley-db/configure.in | 2 +- + modules/gdbm/gdbm.c | 4 ++-- + 4 files changed, 8 insertions(+), 8 deletions(-) +--- modules/berkeley-db/bdb.c ++++ modules/berkeley-db/bdb.c 2024-08-28 13:29:49.651861291 +0000 +@@ -365,7 +365,7 @@ DEFUN(BDB:DBE-CREATE,&key PASSWORD ENCRY + dbe_set_encryption(dbe,&STACK_0,&STACK_1); + skipSTACK(2); + /* set error & message callbacks */ +- begin_system_call(); dbe->set_errcall(dbe,&error_callback); ++ begin_system_call(); dbe->set_errcall(dbe,(void (*)(const DB_ENV *,const char *,const char *))&error_callback); + #if defined(HAVE_DB_ENV_SET_MSGCALL) + dbe->set_msgcall(dbe,&message_callback); + #endif +@@ -1213,7 +1213,7 @@ DEFUN(BDB:DB-CREATE, dbe) + SYSCALL(db_create,(&db,dbe,0)); + if (!dbe) { /* set error callback */ + begin_system_call(); +- db->set_errcall(db,&error_callback); ++ db->set_errcall(db,(void (*)(const DB_ENV *,const char *,const char *))&error_callback); + end_system_call(); + } + wrap_finalize(db,STACK_0,`BDB::MKDB`,``BDB::DB-CLOSE``); +@@ -1515,9 +1515,9 @@ DEFUN(BDB:DB-STAT, db &key FAST-STAT TRA + { /* Return database statistics */ + DB_TXN *txn = (DB_TXN*)bdb_handle(popSTACK(),`BDB::TXN`,BH_NIL_IS_NULL); + #if defined(HAVE_DB_STAT_ACCEPT_TXN) +-# define DB_STAT(s) SYSCALL(db->stat,(db,txn,&s,flags)); ++# define DB_STAT(s) SYSCALL(db->stat,(db,txn,(void*)&s,flags)); + #else +-# define DB_STAT(s) SYSCALL(db->stat,(db,&s,flags)); ++# define DB_STAT(s) SYSCALL(db->stat,(db,(void*)&s,flags)); + #endif + u_int32_t flags = missingp(STACK_0) ? 0 : DB_FAST_STAT; + DB *db = (DB*)bdb_handle(STACK_1,`BDB::DB`,BH_VALID); +--- modules/berkeley-db/configure ++++ modules/berkeley-db/configure 2024-08-28 13:50:11.630365795 +0000 +@@ -5712,7 +5712,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ + int + main () + { +-DB db; db.stat(&db,NULL,0,NULL); ++DB db; db.stat(&db,NULL,NULL,0); + ; + return 0; + } +--- modules/berkeley-db/configure.in ++++ modules/berkeley-db/configure.in 2024-08-28 13:49:39.294928188 +0000 +@@ -38,7 +38,7 @@ AC_CHECK_SIZEOF(db_recno_t,,[#include + AC_CACHE_CHECK([whether DB->stat() accepts TXNid],ac_cv_db_stat_accept_txn,[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], +-[[DB db; db.stat(&db,NULL,0,NULL);]])], ++[[DB db; db.stat(&db,NULL,NULL,0);]])], + ac_cv_db_stat_accept_txn=yes,ac_cv_db_stat_accept_txn=no)]) + if test "$ac_cv_db_stat_accept_txn" = "yes"; then + AC_DEFINE(HAVE_DB_STAT_ACCEPT_TXN,1,[Define to 1 if DB->stat() accepts TXNid]) --- modules/gdbm/gdbm.c +++ modules/gdbm/gdbm.c 2024-08-28 11:55:51.720519565 +0000 @@ -66,7 +66,7 @@ DEFCHECKER(check_gdbm_errno, prefix=GDBM From 3ec19820a7c132373fb24808737b8be63e43c7c229f5115571b74faa8b6f24e2 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 29 Aug 2024 12:27:52 +0000 Subject: [PATCH 03/17] Update to clisp-2.49.93+ with git commit f5acef38 from 20240704 OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=132 --- clhs.el | 142 ++++++++++++++++++++++ clisp-2.49-configure.dif | 107 +++++++++++----- clisp-2.49-gctoken.dif | 2 +- clisp-2.49-rpath.dif | 16 --- clisp-2.49.92.tar.bz2 | 3 - clisp-2.49.93+git20240704.f5acef38.tar.xz | 3 + clisp-gcc14.patch | 131 +++++++++++++------- clisp-link.dif | 4 +- clisp.changes | 15 +++ clisp.spec | 44 +++++-- 10 files changed, 363 insertions(+), 104 deletions(-) create mode 100644 clhs.el delete mode 100644 clisp-2.49-rpath.dif delete mode 100644 clisp-2.49.92.tar.bz2 create mode 100644 clisp-2.49.93+git20240704.f5acef38.tar.xz diff --git a/clhs.el b/clhs.el new file mode 100644 index 0000000..492e82f --- /dev/null +++ b/clhs.el @@ -0,0 +1,142 @@ +;;; clhs.el -- access the Common Lisp HyperSpec (CLHS) + +;;; this works with both +;;; * the "long file name" version released by Harlequin and available +;;; at the MIT web site as +;;; and +;;; * the "8.3 file name" version released later by Xanalys and available at +;;; +;;; and downloadable as +;;; +;;; This is accomplished by not hard-wiring the symbol->file table +;;; but reading the Data/ file instead + +;;; Copyright (C) 2002-2008, 2017 Sam Steingold +;;; Keywords: lisp, common lisp, emacs, ANSI CL, hyperspec +;;; released under the GNU GPL +;;; as a part of GNU CLISP , + +;;; Commentary: + +;; Kent Pitman and the Harlequin Group (later Xanalys) have made the +;; text of the "American National Standard for Information Technology -- +;; Programming Language -- Common Lisp", ANSI X3.226-1994 available on +;; the WWW, in the form of the Common Lisp HyperSpec. This package +;; makes it convenient to peruse this documentation from within Emacs. + +;; This is inspired by the Erik Naggum's version of 1997. + +;;; Code: + +(eval-when-compile (require 'cl)) ; push +(require 'browse-url) +(require 'thingatpt) +(require 'url) + +(defcustom common-lisp-hyperspec-root "http://clhs.lisp.se/" + ;; "http://www.lispworks.com/documentation/HyperSpec/" + ;; "http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/html/hyperspec/HyperSpec/" + ;; "http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/" + "*The root of the Common Lisp HyperSpec URL. +If you copy the HyperSpec to your local system, set this variable to +something like \"file:/usr/local/doc/HyperSpec/\"." + :group 'lisp + :type 'string) + +(defvar clhs-history nil + "History of symbols looked up in the Common Lisp HyperSpec so far.") + +(defvar clhs-symbols nil) + +(defun clhs-table-buffer (&optional root) + (unless root (setq root common-lisp-hyperspec-root)) + (if (string-match "^file:/" root) + (with-current-buffer (get-buffer-create " *clhs-tmp-buf*") + (insert-file-contents-literally + (let* ((d (concat (substring root 6) "/Data/")) + (f (concat d "Map_Sym.txt"))) + (if (file-exists-p f) f + (setq f (concat d "Symbol-Table.text")) + (if (file-exists-p f) f + (error "no symbol table at %s" root)))) + nil nil nil t) + (goto-char 0) + (current-buffer)) + (let* ((d (concat root "/Data/")) + (f (concat d "Map_Sym.txt"))) + (set-buffer (url-retrieve-synchronously f)) + (goto-char 0) + (unless (looking-at "^HTTP/.*200 *OK$") + (kill-buffer (current-buffer)) + (setq f (concat d "Symbol-Table.text")) + (set-buffer (url-retrieve-synchronously f)) + (goto-char 0) + (unless (looking-at "^HTTP/.*200 *OK$") + (kill-buffer (current-buffer)) + (error "no symbol table at %s" root))) + ;; skip to the first symbol + (search-forward "\n\n") + (current-buffer)))) + +(defun clhs-read-symbols () + "read `clhs-symbols' from the current position in the current buffer" + (while (not (eobp)) + (puthash (buffer-substring-no-properties ; symbol + (line-beginning-position) (line-end-position)) + (progn (forward-line 1) ; file name + (buffer-substring-no-properties ; strip "../" + (+ 3 (line-beginning-position)) (line-end-position))) + clhs-symbols) + (forward-line 1))) + +(defun clhs-symbols () + "Get `clhs-symbols' from `common-lisp-hyperspec-root'." + (if (and clhs-symbols (not (= 0 (hash-table-count clhs-symbols)))) + clhs-symbols + (with-current-buffer (clhs-table-buffer) + (unless clhs-symbols + (setq clhs-symbols (make-hash-table :test 'equal :size 1031))) + (clhs-read-symbols) + (kill-buffer (current-buffer)) + clhs-symbols))) + +(defun hash-table-complete (string table how) + "This makes it possible to use hash-tables with `completing-read'. +Actually, `completing-read' in Emacs 22 accepts hash-tables natively." + (let ((res nil) (st (upcase string)) (len (length string))) + (maphash (lambda (key val) + (when (and (<= len (length key)) + (string= st (substring key 0 len))) + (push key res))) + table) + (if how + res ; `all-completions' + (if (cdr res) + (try-completion st (mapcar #'list res)) + (if (string= st (car res)) + t + (car res)))))) + +;;;###autoload +(defun common-lisp-hyperspec (symbol-name &optional kill) + "Browse the Common Lisp HyperSpec documentation for SYMBOL-NAME. +Finds the HyperSpec at `common-lisp-hyperspec-root'. +With prefix arg, save the URL in the `kill-ring' instead." + (interactive (list (let ((sym (thing-at-point 'symbol t)) + (completion-ignore-case t)) + (completing-read + "Look-up symbol in the Common Lisp HyperSpec: " + #'hash-table-complete (clhs-symbols) + t sym 'clhs-history)) + current-prefix-arg)) + (unless (= ?/ (aref common-lisp-hyperspec-root + (1- (length common-lisp-hyperspec-root)))) + (setq common-lisp-hyperspec-root + (concat common-lisp-hyperspec-root "/"))) + (let ((url (concat common-lisp-hyperspec-root + (gethash (upcase symbol-name) (clhs-symbols))))) + (if kill + (kill-new url) + (browse-url url)))) + +(provide 'clhs) diff --git a/clisp-2.49-configure.dif b/clisp-2.49-configure.dif index 1a33089..5ddcf11 100644 --- a/clisp-2.49-configure.dif +++ b/clisp-2.49-configure.dif @@ -1,12 +1,17 @@ --- - clisp-2.49.90/configure | 4 ++-- - clisp-2.49.90/src/lispbibl.d | 16 +++++++++++----- - clisp-2.49.90/src/makemake.in | 17 +++++++++++++---- - clisp-2.49.90/utils/modprep.lisp | 2 +- - 4 files changed, 27 insertions(+), 12 deletions(-) + clisp-2.49.93+git20240704.f5acef38/configure | 4 +- + clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in | 2 - + clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure | 2 - + clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in | 2 - + clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp | 2 - + clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d | 16 ++++++---- + clisp-2.49.93+git20240704.f5acef38/src/makemake.in | 8 ++++- + clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c | 1 + clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp | 2 - + 9 files changed, 26 insertions(+), 13 deletions(-) ---- clisp-2.49.90/configure -+++ clisp-2.49.90/configure 2018-02-12 08:20:34.280915654 +0000 +--- clisp-2.49.93+git20240704.f5acef38/configure ++++ clisp-2.49.93+git20240704.f5acef38/configure 2024-08-29 06:36:55.221117779 +0000 @@ -429,11 +429,11 @@ do passnext=makemake ;; @@ -21,8 +26,52 @@ makemake_args="$makemake_args --vimdir=" prev=vimdir passnext=both ;; ---- clisp-2.49.90/src/lispbibl.d -+++ clisp-2.49.90/src/lispbibl.d 2018-02-12 08:20:34.284915577 +0000 +--- clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in ++++ clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in 2024-08-29 11:29:26.062049361 +0000 +@@ -18,7 +18,7 @@ distribdir = + ### Custom defs. + CCMP2C = ../../ccmp2c + RM = rm -f +-WANTS = @WANTS@ ++WANTS = @WANTS@ -I ../../ + X_CFLAGS = @X_CFLAGS@ + + # default target: make the module +--- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in 2024-08-29 10:51:10.118941018 +0000 +@@ -16,7 +16,7 @@ AC_LIB_LINKFLAGS([svm]) + BOLD_MSG([LibSVM (Headers)]) + AC_SUBST(LIBSVM_CFLAGS) + AC_SUBST(LIBSVM_LIBS) +-AC_CHECK_HEADERS(svm.h) ++AC_CHECK_HEADERS([libsvm/svm.h]) + if test "$ac_cv_header_svm_h" = "no"; then + AC_MSG_ERROR([cannot find LibSVM headers]) + fi +--- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure 2024-08-29 10:50:28.015691883 +0000 +@@ -5526,7 +5526,7 @@ printf "%s\n" "$as_me: ${term_bold}** Li + + + +-ac_fn_c_check_header_compile "$LINENO" "svm.h" "ac_cv_header_svm_h" "$ac_includes_default" ++ac_fn_c_check_header_compile "$LINENO" "libsvm/svm.h" "ac_cv_header_svm_h" "$ac_includes_default" + if test "x$ac_cv_header_svm_h" = xyes + then : + printf "%s\n" "#define HAVE_SVM_H 1" >>confdefs.h +--- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp 2024-08-29 10:50:46.759357613 +0000 +@@ -15,7 +15,7 @@ + + (default-foreign-language :stdc) + +-(c-lines "#include \"config.h\"~%#include ~%") ++(c-lines "#include \"config.h\"~%#include ~%") + + (defvar *libsvm-output* *standard-output* "The stream for svm.so messages.") + (cl:defun write-string-to-libsvm-output (s) +--- clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d ++++ clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d 2024-08-29 06:36:55.221117779 +0000 @@ -178,7 +178,7 @@ #define PC386 /* IBMPC-compatible with 80386/80486-processor */ #endif @@ -32,7 +81,7 @@ #define PC386 #endif #if (defined(sun) && defined(unix) && defined(sparc)) -@@ -270,8 +270,14 @@ +@@ -274,8 +274,14 @@ #endif #ifdef GENERIC_UNIX #define UNIX @@ -48,7 +97,7 @@ #endif #ifdef __GNU__ #define UNIX_HURD /* the GNU system (Hurd + glibc) */ -@@ -1281,7 +1287,7 @@ typedef signed int signean; +@@ -1271,7 +1277,7 @@ typedef signed int signean; address of its component 'ident' and return it as number: */ #include #ifndef offsetof @@ -57,7 +106,7 @@ #endif /* Determine the offset of an array 'ident' in a struct of the type 'type': */ #if defined(__cplusplus) || defined(MICROSOFT) -@@ -5520,9 +5526,9 @@ typedef signed_int_with_n_bits(intVsize) +@@ -5439,9 +5445,9 @@ typedef signed_int_with_n_bits(intVsize) type_data_object(type,data) */ #if defined(WIDE) && defined(WIDE_STRUCT) #if BIG_ENDIAN_P==WIDE_ENDIANNESS @@ -69,9 +118,9 @@ #endif #elif !(oint_addr_shift==0) #define type_data_object(type,data) \ ---- clisp-2.49.90/src/makemake.in -+++ clisp-2.49.90/src/makemake.in 2018-02-12 08:24:54.275897762 +0000 -@@ -250,6 +250,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} +--- clisp-2.49.93+git20240704.f5acef38/src/makemake.in ++++ clisp-2.49.93+git20240704.f5acef38/src/makemake.in 2024-08-29 06:36:55.221117779 +0000 +@@ -248,6 +248,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} # Handle --with-... arguments while test -z "$endofargs"; do case "$1" in @@ -81,7 +130,7 @@ -verb* | --verb* ) verbose=`echol "$1"|sed 's/-*v[^=]*=*//'` test -n "${verbose}" || verbose=true -@@ -1183,11 +1186,13 @@ else +@@ -1166,11 +1169,13 @@ else fi # Main cpu dependencies: @@ -95,17 +144,7 @@ test "${verbose}" = true -o "${verbose}" = yes && \ cat <&2 -@@ -1384,6 +1389,9 @@ if [ $XCC_GCC = true ] ; then - XCFLAGS=${XCFLAGS}" -pthread" - fi - -+ if [ -n "${MYCFLAGS}" ] ; then -+ XCFLAGS=$XCFLAGS' ${MYCFLAGS} ' -+ fi - else - - if [ $CROSS = false ] ; then -@@ -4105,8 +4113,9 @@ if [ $CROSS = false ] ; then +@@ -4036,8 +4041,9 @@ if [ $CROSS = false ] ; then echol if [ "${with_dynamic_modules}" != no ]; then depends="full install-modules force" @@ -116,8 +155,18 @@ echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/dynmod" echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)" echol ---- clisp-2.49.90/utils/modprep.lisp -+++ clisp-2.49.90/utils/modprep.lisp 2018-02-12 08:20:34.288915500 +0000 +--- clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c ++++ clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c 2024-08-29 09:03:44.413971085 +0000 +@@ -1042,6 +1042,7 @@ main (int argc, char *argv[]) + infilename = argv[1]; + + /* Emit prologue. */ ++ printf ("#include \n"); + printf ("#include \n"); + printf ("#include \n"); + printf ("#include \n"); +--- clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp ++++ clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp 2024-08-29 06:36:55.221117779 +0000 @@ -328,7 +328,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out)) (t (format out "_~2,'0x" (char-code cc)))))) diff --git a/clisp-2.49-gctoken.dif b/clisp-2.49-gctoken.dif index f798c8e..b0d94f8 100644 --- a/clisp-2.49-gctoken.dif +++ b/clisp-2.49-gctoken.dif @@ -3,7 +3,7 @@ diff --git a/utils/gctrigger.c b/utils/gctrigger.c --- a/utils/gctrigger.c +++ b/utils/gctrigger.c -@@ -601,6 +601,7 @@ static inline void VectorToken_delete (V +@@ -606,6 +606,7 @@ static inline void VectorToken_delete (V static Token nexttoken (boolean within_prep_directive) { Token token; diff --git a/clisp-2.49-rpath.dif b/clisp-2.49-rpath.dif deleted file mode 100644 index 4440ef6..0000000 --- a/clisp-2.49-rpath.dif +++ /dev/null @@ -1,16 +0,0 @@ ---- - src/aclocal.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/aclocal.m4 b/src/aclocal.m4 ---- a/src/aclocal.m4 -+++ b/src/aclocal.m4 -@@ -7723,7 +7723,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do -- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" -+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-Wl,-rpath-link$found_dir" - done - fi - popdef([P_A_C_K]) diff --git a/clisp-2.49.92.tar.bz2 b/clisp-2.49.92.tar.bz2 deleted file mode 100644 index 48b3ed6..0000000 --- a/clisp-2.49.92.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd443a94aa9b02da4c4abbcecfc04ffff1919c0a8b0e7e35649b86198cd6bb89 -size 8919616 diff --git a/clisp-2.49.93+git20240704.f5acef38.tar.xz b/clisp-2.49.93+git20240704.f5acef38.tar.xz new file mode 100644 index 0000000..28ae0dd --- /dev/null +++ b/clisp-2.49.93+git20240704.f5acef38.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b7d512b12653ea022cc461308ecd36a6aae66473ae797fbcd37ba7b663e4fa4 +size 7239936 diff --git a/clisp-gcc14.patch b/clisp-gcc14.patch index 4ed41f8..71c0873 100644 --- a/clisp-gcc14.patch +++ b/clisp-gcc14.patch @@ -1,13 +1,17 @@ --- - modules/berkeley-db/bdb.c | 8 ++++---- - modules/berkeley-db/configure | 2 +- - modules/berkeley-db/configure.in | 2 +- - modules/gdbm/gdbm.c | 4 ++-- - 4 files changed, 8 insertions(+), 8 deletions(-) + modules/berkeley-db/bdb.c | 11 ++++++----- + modules/berkeley-db/configure | 2 +- + modules/berkeley-db/configure.in | 2 +- + src/foreign.d | 2 +- + src/lispbibl.d | 2 +- + src/spvw_fault.d | 2 +- + src/spvw_language.d | 2 +- + src/spvw_sigsegv.d | 2 +- + 8 files changed, 13 insertions(+), 12 deletions(-) --- modules/berkeley-db/bdb.c -+++ modules/berkeley-db/bdb.c 2024-08-28 13:29:49.651861291 +0000 -@@ -365,7 +365,7 @@ DEFUN(BDB:DBE-CREATE,&key PASSWORD ENCRY ++++ modules/berkeley-db/bdb.c 2024-08-29 11:45:09.133249570 +0000 +@@ -364,7 +364,7 @@ DEFUN(BDB:DBE-CREATE,&key PASSWORD ENCRY dbe_set_encryption(dbe,&STACK_0,&STACK_1); skipSTACK(2); /* set error & message callbacks */ @@ -16,7 +20,7 @@ #if defined(HAVE_DB_ENV_SET_MSGCALL) dbe->set_msgcall(dbe,&message_callback); #endif -@@ -1213,7 +1213,7 @@ DEFUN(BDB:DB-CREATE, dbe) +@@ -1212,7 +1212,7 @@ DEFUN(BDB:DB-CREATE, dbe) SYSCALL(db_create,(&db,dbe,0)); if (!dbe) { /* set error callback */ begin_system_call(); @@ -25,7 +29,7 @@ end_system_call(); } wrap_finalize(db,STACK_0,`BDB::MKDB`,``BDB::DB-CLOSE``); -@@ -1515,9 +1515,9 @@ DEFUN(BDB:DB-STAT, db &key FAST-STAT TRA +@@ -1514,9 +1514,9 @@ DEFUN(BDB:DB-STAT, db &key FAST-STAT TRA { /* Return database statistics */ DB_TXN *txn = (DB_TXN*)bdb_handle(popSTACK(),`BDB::TXN`,BH_NIL_IS_NULL); #if defined(HAVE_DB_STAT_ACCEPT_TXN) @@ -37,19 +41,18 @@ #endif u_int32_t flags = missingp(STACK_0) ? 0 : DB_FAST_STAT; DB *db = (DB*)bdb_handle(STACK_1,`BDB::DB`,BH_VALID); ---- modules/berkeley-db/configure -+++ modules/berkeley-db/configure 2024-08-28 13:50:11.630365795 +0000 -@@ -5712,7 +5712,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ - int - main () - { --DB db; db.stat(&db,NULL,0,NULL); -+DB db; db.stat(&db,NULL,NULL,0); - ; - return 0; - } +@@ -2752,7 +2752,8 @@ DEFUN(BDB:TXN-RECOVER, dbe &key FIRST :N + DB_ENV *dbe = (DB_ENV*)bdb_handle(popSTACK(),`BDB::DBE`,BH_VALID); + u_int32_t tx_max; + DB_PREPLIST *preplist; +- int status, ii; ++ int status; ++ long ii; + u_int32_t retnum; + SYSCALL(dbe->get_tx_max,(dbe,&tx_max)); + preplist = (DB_PREPLIST*)clisp_malloc(tx_max * sizeof(DB_PREPLIST)); --- modules/berkeley-db/configure.in -+++ modules/berkeley-db/configure.in 2024-08-28 13:49:39.294928188 +0000 ++++ modules/berkeley-db/configure.in 2024-08-29 07:17:20.463971573 +0000 @@ -38,7 +38,7 @@ AC_CHECK_SIZEOF(db_recno_t,,[#include AC_CACHE_CHECK([whether DB->stat() accepts TXNid],ac_cv_db_stat_accept_txn,[ @@ -59,23 +62,69 @@ ac_cv_db_stat_accept_txn=yes,ac_cv_db_stat_accept_txn=no)]) if test "$ac_cv_db_stat_accept_txn" = "yes"; then AC_DEFINE(HAVE_DB_STAT_ACCEPT_TXN,1,[Define to 1 if DB->stat() accepts TXNid]) ---- modules/gdbm/gdbm.c -+++ modules/gdbm/gdbm.c 2024-08-28 11:55:51.720519565 +0000 -@@ -66,7 +66,7 @@ DEFCHECKER(check_gdbm_errno, prefix=GDBM - READER-CANT-REORGANIZE UNKNOWN-UPDATE ITEM-NOT-FOUND \ - REORGANIZE-FAILED CANNOT-REPLACE ILLEGAL-DATA OPT-ALREADY-SET \ - OPT-ILLEGAL) --static _Noreturn void error_gdbm (char *fatal_message) { -+static _Noreturn void error_gdbm (const char *fatal_message) { - end_blocking_system_call(); /* in case we are called from _gdbm_fatal() */ - pushSTACK(`GDBM::GDBM-ERROR`); - pushSTACK(`:MESSAGE`); -@@ -126,7 +126,7 @@ static object open_gdbm (object path, in - GDBM_FILE gdbm; - with_string_0(path, GLO(pathname_encoding), name, { - SYSCALL(gdbm = gdbm_open(name, bsize, rw, mode, -- (void (*)(void))error_gdbm)); -+ (void (*)(const char *))error_gdbm)); - }); - if (gdbm == NULL) error_gdbm(NULL); - return allocate_fpointer(gdbm); +--- modules/berkeley-db/configure ++++ modules/berkeley-db/configure 2024-08-29 07:17:20.463971573 +0000 +@@ -6241,7 +6241,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ + int + main (void) + { +-DB db; db.stat(&db,NULL,0,NULL); ++DB db; db.stat(&db,NULL,NULL,0); + ; + return 0; + } +--- src/foreign.d ++++ src/foreign.d 2024-08-29 07:24:17.508412215 +0000 +@@ -2417,7 +2417,7 @@ local void count_walk_post (object fvd, + { + unused(fvd); unused(obj); unused(walk); + } +-local maygc void convert_to_foreign_needs (object fvd, object obj, ++local maygc __attribute__((noinline)) void convert_to_foreign_needs (object fvd, object obj, + struct foreign_layout *sas) + { + struct walk_lisp walk +--- src/lispbibl.d ++++ src/lispbibl.d 2024-08-29 07:25:56.826610237 +0000 +@@ -11641,7 +11641,7 @@ All other long words on the LISP-Stack a + #define FAST_SP + #endif + #elif defined(GNU) && defined(SP_register) +- register __volatile__ aint __SP __asm__(SP_register); ++ register aint __SP __asm__(SP_register); + #ifdef SPARC64 + #define SP() (__SP+2048) + #else +--- src/spvw_fault.d ++++ src/spvw_fault.d 2024-08-29 07:20:02.297039630 +0000 +@@ -289,7 +289,7 @@ modexp bool handle_fault_range (int prot + + local void xmprotect (aint addr, uintM len, int prot) { + if (mprotect((void*)addr,len,prot) < 0) { +- fprintf(stderr,GETTEXTL("mprotect(0x%lx,%d,%d) failed."),addr,len,prot); ++ fprintf(stderr,GETTEXTL("mprotect(0x%lx,%lu,%d) failed."),addr,(unsigned long)len,prot); + errno_out(OS_errno); + abort(); + } +--- src/spvw_language.d ++++ src/spvw_language.d 2024-08-29 07:20:29.048554790 +0000 +@@ -172,7 +172,7 @@ global void init_language + { /* Invalidate the gettext internal caches. */ + char *td = textdomain(NULL); + if (NULL == td) { +- ANSIC_ERROR("textdomain",NULL); ++ ANSIC_ERROR("textdomain",""); + } + if (NULL == textdomain(td)) { + ANSIC_ERROR("textdomain",td); +--- src/spvw_sigsegv.d ++++ src/spvw_sigsegv.d 2024-08-29 07:21:09.115828518 +0000 +@@ -62,7 +62,7 @@ local void print_mem_stats (void) { + /* Put a breakpoint here if you want to catch CLISP just before it dies. */ + global void sigsegv_handler_failed (void* address) { + fprint(stderr,"\n"); +- fprintf(stderr,GETTEXTL("SIGSEGV cannot be cured. Fault address = 0x%lx."), ++ fprintf(stderr,GETTEXTL("SIGSEGV cannot be cured. Fault address = 0x%p."), + address); + fprint(stderr,"\n"); + print_mem_stats(); diff --git a/clisp-link.dif b/clisp-link.dif index ca822d2..867ec84 100644 --- a/clisp-link.dif +++ b/clisp-link.dif @@ -16,7 +16,7 @@ cp ${f} ${absdestdir}/${DYNMOD}/ --- src/lispbibl.d +++ src/lispbibl.d 2018-02-19 09:30:11.552748021 +0000 -@@ -1631,6 +1631,8 @@ typedef SLONG sint32; /* signed 32 bi +@@ -1610,6 +1610,8 @@ typedef SLONG sint32; /* signed 32 bi /* Emulate 64-Bit-numbers using two 32-Bit-numbers. */ typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */ typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */ @@ -25,7 +25,7 @@ #endif /* Use 'uintX' and 'sintX' for Integers with approximately given width and a minumum of storage space. */ -@@ -14397,7 +14399,7 @@ re-enters the corresponding top-level lo +@@ -14188,7 +14190,7 @@ re-enters the corresponding top-level lo #define pushSTACK(obj) (STACK_(-1) = (obj), STACK skipSTACKop -1) /* Almost equivalent with *--STACK = obj resp. *STACK++ = obj , but Careful: first enter the object into STACK_(-1), THEN modify the STACK! */ diff --git a/clisp.changes b/clisp.changes index 29c9d51..b9d38bc 100644 --- a/clisp.changes +++ b/clisp.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Thu Aug 29 12:15:45 UTC 2024 - Dr. Werner Fink + +- Update to latest commit f5acef38 of devel version 2.49.93+ from 20240704 +- Add modules libsvm and pari as well as feature ffcall +- Add source clhs.el as upstream has skipped this +- Drop patch + * clisp-2.49-rpath.dif + * clisp-2.49.92.tar.bz2 +- Port patches + * clisp-2.49-configure.dif + * clisp-2.49-gctoken.dif + * clisp-gcc14.patch + * clisp-link.dif + ------------------------------------------------------------------- Wed Aug 28 12:16:12 UTC 2024 - Dr. Werner Fink diff --git a/clisp.spec b/clisp.spec index 88853bc..5671c2e 100644 --- a/clisp.spec +++ b/clisp.spec @@ -16,15 +16,19 @@ # +%global commit f5acef38 +%global vdate 20240704 + Name: clisp -Version: 2.49.92 +Version: 2.49.93 Release: 0 Summary: A Common Lisp Interpreter # Included gllib is GPL-3.0-or-later License: GPL-2.0-or-later AND GPL-3.0-or-later Group: Development/Languages/Other URL: https://gitlab.com/gnu-clisp/clisp -Source: %name-%version.tar.bz2 +Source: %{name}-%{version}+git%{vdate}.%{commit}.tar.xz +Source2: clhs.el Source3: clisp-rpmlintrc Source4: README.SUSE # PATCH-EXTEND-OPENSUSE Set the process execution domain @@ -39,15 +43,12 @@ Patch5: clisp-2.49-gctoken.dif Patch6: clisp-2.49-clx_demos.dif # PATCH-EXTEND-OPENSUSE Enable postgresql SSL feature Patch7: clisp-2.49-postgresql.dif -# PATCH-FIX-OPENSUSE Do not use rpath but rpath-link -Patch8: clisp-2.49-rpath.dif # PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls Patch12: clisp-linux.patch Patch13: clisp-gcc14.patch Patch14: clisp-link.dif Patch16: clisp-db6.diff -BuildRoot: %{_tmppath}/%{name}-%{version}-build %global vimdir %{_datadir}/vim/site/after/syntax BuildRequires: FastCGI-devel BuildRequires: db-devel @@ -62,9 +63,12 @@ BuildRequires: glib2-devel BuildRequires: gtk2-devel BuildRequires: libglade2-devel BuildRequires: libsigsegv-devel +BuildRequires: libsvm-devel BuildRequires: ncurses-devel BuildRequires: net-tools BuildRequires: openssl-devel +BuildRequires: pari-devel +BuildRequires: pari-gp BuildRequires: pcre-devel BuildRequires: pcre2-devel BuildRequires: postgresql-devel @@ -130,14 +134,13 @@ with the file README. The subdirectory contains two nice applications. %prep -%setup -qT -b0 +%setup -qT -b0 -n %{name}-%{version}+git%{vdate}.%{commit} %patch -P 1 -p1 -b .sel %patch -P 2 -p1 -b .wooh %patch -P 4 -p1 -b .conf %patch -P 5 -p1 -b .gc %patch -P 6 -p1 -b .demos %patch -P 7 -p1 -b .psql -%patch -P 8 -p1 -b .rpath %patch -P 12 -p1 -b .p12 %patch -P 13 -p0 -b .p13 %patch -P 14 -p0 -b .p14 @@ -151,8 +154,8 @@ contains two nice applications. ulimit -Ss unlimited || true ulimit -Hs unlimited || true unset LC_CTYPE -LANG=POSIX -LC_ALL=POSIX +LANG=C.UTF-8 +LC_ALL=C.UTF-8 export LANG LC_ALL # # Current system @@ -271,6 +274,13 @@ fi find -name configure | xargs -r \ sed -ri "/ac_precious_vars='build_alias\$/ {N; s/build_alias\\n//; }" +# Runtime linker choose system libraries +sed -ri 's/(\$\{wl\})-rpath (\$\{wl\})/\1-rpath-link \2/g' src/build-aux/config.rpath +# Link libraries if really needed +sed -ri "s/CC='\\$\{CC\}'/CC='\\$\{CC\} -Wl,--as-needed'/g" src/makemake.in +#Default browser +sed -ri 's/;; (\(setq \*browser\* .*\))/\1/' src/cfgunix.lisp + # # The modules i18n, syscalls, regexp # are part of the base clisp system. @@ -286,6 +296,7 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --fsstnd=suse \ --with-readline \ --with-dynamic-modules \ + --with-ffcall \ --with-gettext \ --with-module=asdf \ --with-module=dbus \ @@ -294,13 +305,20 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --with-module=queens \ --with-module=gdbm \ --with-module=gtk2 \ + --with-module=pari \ --with-module=pcre \ --with-module=rawsock \ --with-module=zlib \ + --with-module=libsvm \ --with-module=bindings/glibc\ --with-module=clx/new-clx \ --with-module=berkeley-db \ - --with-module=postgresql + --with-module=postgresql \ + --config \ + build \ + CC="${CC}" \ + CFLAGS="%{build_cflags} ${MYCFLAGS} -Wa,--noexecstack" \ + LDFLAGS="-Wl,--as-needed -Wl,-z,relro -Wl,-z,noexecstack" %_make -C build lispbibl.h grep TYPECODES build/lispbibl.h || : @@ -342,11 +360,12 @@ find modules/clx/ -name '*.demos' | xargs --no-run-if-empty rm -vf # # Current system # +. ./version.sh SYSTEM=${RPM_ARCH}-suse-linux LSPDOC=%{_docdir}/clisp DOCDOC=${LSPDOC}/doc CLXDOC=${LSPDOC}/clx -LSPLIB=%{_libdir}/clisp-%{version} +LSPLIB=%{_libdir}/clisp-${VERSION_NUMBER} CLXLIB=${LSPLIB}/full # # Install the current system @@ -387,6 +406,7 @@ find %{buildroot}${LSPLIB}/ -name '*.run' | xargs -r chmod 0755 rm -rf %{buildroot}${LSPLIB}/new-clx/demos/ find %{buildroot} -type f | xargs -r chmod u+w chmod a+x %{buildroot}${LSPLIB}/build-aux/{config,depcomp}* +install -c -m 644 %{S:2} %{buildroot}%{_datadir}/emacs/site-lisp/clhs.el %fdupes %{buildroot}${LSPLIB}/ %find_lang clisp %find_lang clisplow clisp.lang @@ -395,7 +415,7 @@ chmod a+x %{buildroot}${LSPLIB}/build-aux/{config,depcomp}* %defattr(-,root,root,755) %{_bindir}/clisp %{_bindir}/clisp-link -%{_libdir}/clisp-%{version}/ +%{_libdir}/clisp-%{version}*/ %{_datadir}/aclocal/clisp.m4 %{_datadir}/emacs/site-lisp/ %doc %{_datadir}/man/man1/clisp*.1.gz From e9d2a0c86302fa4d8500109fae8ae20e6a91546fe7f2bcf78ae85bf876c03087 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 29 Aug 2024 13:02:50 +0000 Subject: [PATCH 04/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=133 --- clisp.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clisp.spec b/clisp.spec index 5671c2e..a574085 100644 --- a/clisp.spec +++ b/clisp.spec @@ -185,7 +185,7 @@ case "$(uname -m)" in sparc*) CC="${CC} -mcpu=v9 -fno-gcse" ;; ppc64) CC="${CC} -fno-gcse -mpowerpc64" ;; ppc64le)CC="${CC} -fno-gcse" ;; - s390x) CC="${CC} -fno-gcse -fno-schedule-insns";; + s390x) CC="${CC} -fno-gcse" ;; ia64) CC="${CC} -fno-gcse" ;; axp|alpha) CC="${CC}" ;; @@ -224,8 +224,8 @@ case "$(uname -m)" in x86_64) MYCFLAGS="${MYCFLAGS}" ;; sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -fno-stack-protector-strong";; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -fno-stack-protector-strong";; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; From 2c1e79d131634d757caa99361073530990c6785625ea69a635901b1536c6f574 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 29 Aug 2024 13:14:20 +0000 Subject: [PATCH 05/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=134 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index a574085..9c59924 100644 --- a/clisp.spec +++ b/clisp.spec @@ -171,7 +171,7 @@ else CC="gcc" fi %ifarch s390x -##RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-fstack-protector-strong ?//g;s/-f(stack-clash-protection)/-fno-\1/') -fno-stack-limit" +%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection//)} %endif CC="${CC} -g %{optflags} -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in From 0c659a4a7f0ce16c421542d1b6f167f1dc9350cae47effc763f690edd1c08f97 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 29 Aug 2024 13:20:01 +0000 Subject: [PATCH 06/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=135 --- clisp.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clisp.spec b/clisp.spec index 9c59924..e08ad5c 100644 --- a/clisp.spec +++ b/clisp.spec @@ -224,8 +224,8 @@ case "$(uname -m)" in x86_64) MYCFLAGS="${MYCFLAGS}" ;; sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -fno-stack-protector-strong";; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -fno-stack-protector-strong";; + ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; From 71748090230489d33c7d2db6e52de5bc3bd73c06144aa7b18dea2feb28cfc8db Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 29 Aug 2024 13:24:52 +0000 Subject: [PATCH 07/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=136 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index e08ad5c..3c256cd 100644 --- a/clisp.spec +++ b/clisp.spec @@ -148,6 +148,7 @@ contains two nice applications. %build %add_optflags -g3 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE +%add_optflags -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var # # Overwrite stack size limit (hopefully a soft limit only) # @@ -203,7 +204,6 @@ then else MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE" fi -MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var" # From src/makemake.in # # Do NOT enable -DSAFETY=3 here, because -DSAFETY=3 not only disables some From 0311196be48ac0d911331ec169ceb86da82843e14a2d93f0247942b7000724c9 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 29 Aug 2024 13:39:35 +0000 Subject: [PATCH 08/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=137 --- clisp.spec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/clisp.spec b/clisp.spec index 3c256cd..fd5d5b3 100644 --- a/clisp.spec +++ b/clisp.spec @@ -172,7 +172,7 @@ else CC="gcc" fi %ifarch s390x -%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection//)} +%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection// -e "s/(-D_FORTIFY_SOURCE)=3/\1=2/")} %endif CC="${CC} -g %{optflags} -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in @@ -315,9 +315,8 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --with-module=berkeley-db \ --with-module=postgresql \ --config \ - build \ CC="${CC}" \ - CFLAGS="%{build_cflags} ${MYCFLAGS} -Wa,--noexecstack" \ + CFLAGS="${MYCFLAGS} -Wa,--noexecstack" \ LDFLAGS="-Wl,--as-needed -Wl,-z,relro -Wl,-z,noexecstack" %_make -C build lispbibl.h From 703a98e19d8cfe2565fda0905b99666a6479e8a0c90f4c51eba04e05e86b277d Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 29 Aug 2024 13:47:14 +0000 Subject: [PATCH 09/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=138 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index fd5d5b3..32dd246 100644 --- a/clisp.spec +++ b/clisp.spec @@ -172,7 +172,7 @@ else CC="gcc" fi %ifarch s390x -%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection// -e "s/(-D_FORTIFY_SOURCE)=3/\1=2/")} +%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection//)} %endif CC="${CC} -g %{optflags} -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in From af415ff2f62f8605fbeffcd19b8be4f5368fb939e9839665481e4869a614d30e Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 2 Sep 2024 09:10:08 +0000 Subject: [PATCH 10/17] S390x OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=139 --- clisp.changes | 6 +++ clisp.spec | 118 +++++++++++++++++++++----------------------------- 2 files changed, 56 insertions(+), 68 deletions(-) diff --git a/clisp.changes b/clisp.changes index b9d38bc..c394194 100644 --- a/clisp.changes +++ b/clisp.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Sep 2 09:07:21 UTC 2024 - Dr. Werner Fink + +- Refresh clisp.spec and make it build on s390x as well by avoiding + Position Independent Executables at compile and link time. + ------------------------------------------------------------------- Thu Aug 29 12:15:45 UTC 2024 - Dr. Werner Fink diff --git a/clisp.spec b/clisp.spec index 32dd246..79d91d6 100644 --- a/clisp.spec +++ b/clisp.spec @@ -16,6 +16,7 @@ # +%bcond_with debug %global commit f5acef38 %global vdate 20240704 @@ -85,11 +86,13 @@ BuildRequires: pkgconfig(zlib) # gcc-c++ # to BuildRequires # -%define debug no -%define _lto_cflags %{nil} +%global ldflags %{nil} +%global _lto_cflags %{_lto_cflags} -ffat-lto-objects %global rlver %(rpm -q --qf '%%{VERSION}' readline-devel | sed 's/\\.//g') %define add_optflags(a:f:t:p:w:W:d:g:O:A:C:D:E:H:i:M:n:P:U:u:l:s:X:B:I:L:b:V:m:x:c:S:E:o:v:) \ %global optflags %{optflags} %{**} +%define add_ldflags(a:f:t:p:w:W:d:g:O:A:C:D:E:H:i:M:n:P:U:u:l:s:X:B:I:L:b:V:m:x:c:S:E:o:v:) \ +%global ldflags %{ldflags} %{**} Requires(pre): vim Requires(pre): vim-data Requires: ffcall @@ -147,8 +150,13 @@ contains two nice applications. %patch -P 16 -p1 -b .p16 %build -%add_optflags -g3 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE -%add_optflags -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var +%add_optflags -g3 -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE +%add_optflags -fno-strict-aliasing -fPIC -pipe -Wa,--noexecstack +%add_optflags -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var -Wno-address +%add_optflags -Wno-clobbered -Wno-dangling-pointer -Wno-unused-result -Wno-missing-declarations -Wno-cast-function-type +%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection//)} +%{expand:%%global optflags %%optflags %(getconf LFS_CFLAGS)} +%add_ldflags -Wl,--as-needed -Wl,-z,relro -Wl,-z,noexecstack # # Overwrite stack size limit (hopefully a soft limit only) # @@ -165,45 +173,47 @@ SYSTEM=${RPM_ARCH}-suse-linux export PATH="$PATH:." # # Set gcc command line but do not use CFLAGS -# -if test %debug = yes ; then - CC="g++" -else - CC="gcc" -fi -%ifarch s390x -%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection//)} +%if %{with debug} + export CC="g++" + DEBUG=--with-debug +%add_optflags -g3 -DDEBUG_GCSAFETY +%else + DEBUG= + export CC="gcc" +%endif +%ifarch s390x ppc64 ppc64le +%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection//)} +%add_optflags -fno-pie -fno-PIE +%add_ldflags -no-pie +%endif +%ifarch %arm +%add_optflags -O +%endif +%ifarch aarch64 +%endif +%ifarch ppc +%endif +%ifarch s390 +%endif +%ifarch alpha +%endif +%ifarch %ix86 +%add_optflags -ffloat-store +%endif +%ifarch x86_64 sparc sparc64 ia64 s390x ppc64 ppc64le +%add_optflags -fno-gcse +%endif +%ifarch ia64 s390x ppc64 ppc64le +%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-O[0-9]/-O/g)} +%endif +%ifarch sparc sparc64 +%add_optflags -mcpu=v9 %endif -CC="${CC} -g %{optflags} -fno-strict-aliasing -fPIC -pipe" -case "$(uname -m)" in - i[0-9]86) - CC="${CC} -ffloat-store" ;; - arm*) CC="${CC}" ;; - aarch64)CC="${CC}" ;; - ppc) CC="${CC}" ;; - s390) CC="${CC}" ;; - x86_64) CC="${CC} -fno-gcse" ;; - sparc*) CC="${CC} -mcpu=v9 -fno-gcse" ;; - ppc64) CC="${CC} -fno-gcse -mpowerpc64" ;; - ppc64le)CC="${CC} -fno-gcse" ;; - s390x) CC="${CC} -fno-gcse" ;; - ia64) CC="${CC} -fno-gcse" ;; - axp|alpha) - CC="${CC}" ;; -esac # # FastCGI-devel seems a bit broken # -CC="${CC} -I%{_includedir}/fastcgi" +%add_optflags -I%{_includedir}/fastcgi -safety='-O' -MYCFLAGS="$(getconf LFS_CFLAGS)" -if grep -q _DEFAULT_SOURCE /usr/include/features.h -then - MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE -D_DEFAULT_SOURCE" -else - MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE" -fi # From src/makemake.in # # Do NOT enable -DSAFETY=3 here, because -DSAFETY=3 not only disables some @@ -214,25 +224,7 @@ port='' %ifarch s390x ##port='--enable-portability' %endif -case "$(uname -m)" in - i[0-9]86) - MYCFLAGS="${MYCFLAGS}" ;; - arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - aarch64)MYCFLAGS="${MYCFLAGS}" ;; - ppc) MYCFLAGS="${MYCFLAGS}" ;; - s390) MYCFLAGS="${MYCFLAGS}" ;; - x86_64) MYCFLAGS="${MYCFLAGS}" ;; - sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - axp|alpha) - MYCFLAGS="${MYCFLAGS}" ;; -esac -export CC -export MYCFLAGS -unset noexec nommap safety +export MYCFLAGS="%{optflags}" # # Report final architectures @@ -261,16 +253,6 @@ cat > $SCREENRC<<-EOF silence on utf8 on EOF -# -# Build the current system -# -if test %debug = yes ; then - DEBUG=--with-debug - MYCFLAGS="${MYCFLAGS} -g3 -DDEBUG_GCSAFETY" -else - DEBUG="" - MYCFLAGS="${MYCFLAGS}" -fi find -name configure | xargs -r \ sed -ri "/ac_precious_vars='build_alias\$/ {N; s/build_alias\\n//; }" @@ -317,7 +299,7 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --config \ CC="${CC}" \ CFLAGS="${MYCFLAGS} -Wa,--noexecstack" \ - LDFLAGS="-Wl,--as-needed -Wl,-z,relro -Wl,-z,noexecstack" + LDFLAGS="%{ldflags}" %_make -C build lispbibl.h grep TYPECODES build/lispbibl.h || : From fe87fd5ba3f7d1afa28d8d29fb33ae1a5f78e4dec47064b62848b57f10c0a023 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 2 Sep 2024 09:52:33 +0000 Subject: [PATCH 11/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=140 --- clisp-2.49-configure.dif | 55 ++++++++++++++++++++++++---------------- clisp.spec | 8 ++++-- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/clisp-2.49-configure.dif b/clisp-2.49-configure.dif index 5ddcf11..6847a41 100644 --- a/clisp-2.49-configure.dif +++ b/clisp-2.49-configure.dif @@ -5,13 +5,13 @@ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in | 2 - clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp | 2 - clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d | 16 ++++++---- - clisp-2.49.93+git20240704.f5acef38/src/makemake.in | 8 ++++- + clisp-2.49.93+git20240704.f5acef38/src/makemake.in | 12 ++++++- clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c | 1 clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp | 2 - - 9 files changed, 26 insertions(+), 13 deletions(-) + 9 files changed, 30 insertions(+), 13 deletions(-) --- clisp-2.49.93+git20240704.f5acef38/configure -+++ clisp-2.49.93+git20240704.f5acef38/configure 2024-08-29 06:36:55.221117779 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/configure 2024-09-02 09:45:26.969435182 +0000 @@ -429,11 +429,11 @@ do passnext=makemake ;; @@ -27,7 +27,7 @@ prev=vimdir passnext=both ;; --- clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in -+++ clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in 2024-08-29 11:29:26.062049361 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in 2024-09-02 09:45:26.969435182 +0000 @@ -18,7 +18,7 @@ distribdir = ### Custom defs. CCMP2C = ../../ccmp2c @@ -37,19 +37,8 @@ X_CFLAGS = @X_CFLAGS@ # default target: make the module ---- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in -+++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in 2024-08-29 10:51:10.118941018 +0000 -@@ -16,7 +16,7 @@ AC_LIB_LINKFLAGS([svm]) - BOLD_MSG([LibSVM (Headers)]) - AC_SUBST(LIBSVM_CFLAGS) - AC_SUBST(LIBSVM_LIBS) --AC_CHECK_HEADERS(svm.h) -+AC_CHECK_HEADERS([libsvm/svm.h]) - if test "$ac_cv_header_svm_h" = "no"; then - AC_MSG_ERROR([cannot find LibSVM headers]) - fi --- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure -+++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure 2024-08-29 10:50:28.015691883 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure 2024-09-02 09:45:26.973435115 +0000 @@ -5526,7 +5526,7 @@ printf "%s\n" "$as_me: ${term_bold}** Li @@ -59,8 +48,19 @@ if test "x$ac_cv_header_svm_h" = xyes then : printf "%s\n" "#define HAVE_SVM_H 1" >>confdefs.h +--- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in 2024-09-02 09:45:26.969435182 +0000 +@@ -16,7 +16,7 @@ AC_LIB_LINKFLAGS([svm]) + BOLD_MSG([LibSVM (Headers)]) + AC_SUBST(LIBSVM_CFLAGS) + AC_SUBST(LIBSVM_LIBS) +-AC_CHECK_HEADERS(svm.h) ++AC_CHECK_HEADERS([libsvm/svm.h]) + if test "$ac_cv_header_svm_h" = "no"; then + AC_MSG_ERROR([cannot find LibSVM headers]) + fi --- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp -+++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp 2024-08-29 10:50:46.759357613 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp 2024-09-02 09:45:26.973435115 +0000 @@ -15,7 +15,7 @@ (default-foreign-language :stdc) @@ -71,7 +71,7 @@ (defvar *libsvm-output* *standard-output* "The stream for svm.so messages.") (cl:defun write-string-to-libsvm-output (s) --- clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d -+++ clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d 2024-08-29 06:36:55.221117779 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d 2024-09-02 09:45:26.973435115 +0000 @@ -178,7 +178,7 @@ #define PC386 /* IBMPC-compatible with 80386/80486-processor */ #endif @@ -119,7 +119,7 @@ #elif !(oint_addr_shift==0) #define type_data_object(type,data) \ --- clisp-2.49.93+git20240704.f5acef38/src/makemake.in -+++ clisp-2.49.93+git20240704.f5acef38/src/makemake.in 2024-08-29 06:36:55.221117779 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/src/makemake.in 2024-09-02 09:46:45.708085247 +0000 @@ -248,6 +248,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} # Handle --with-... arguments while test -z "$endofargs"; do @@ -144,7 +144,18 @@ test "${verbose}" = true -o "${verbose}" = yes && \ cat <&2 -@@ -4036,8 +4041,9 @@ if [ $CROSS = false ] ; then +@@ -1367,6 +1372,10 @@ if [ $XCC_GCC = true ] ; then + XCFLAGS=${XCFLAGS}" -pthread" + fi + ++ if [ -n "${MYCFLAGS}" ] ; then ++ XCFLAGS=$XCFLAGS" ${MYCFLAGS}" ++ fi ++ + else + + if [ $CROSS = false ] ; then +@@ -4036,8 +4045,9 @@ if [ $CROSS = false ] ; then echol if [ "${with_dynamic_modules}" != no ]; then depends="full install-modules force" @@ -156,7 +167,7 @@ echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)" echol --- clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c -+++ clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c 2024-08-29 09:03:44.413971085 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c 2024-09-02 09:45:26.977435045 +0000 @@ -1042,6 +1042,7 @@ main (int argc, char *argv[]) infilename = argv[1]; @@ -166,7 +177,7 @@ printf ("#include \n"); printf ("#include \n"); --- clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp -+++ clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp 2024-08-29 06:36:55.221117779 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp 2024-09-02 09:45:26.977435045 +0000 @@ -328,7 +328,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out)) (t (format out "_~2,'0x" (char-code cc)))))) diff --git a/clisp.spec b/clisp.spec index 79d91d6..5dff31e 100644 --- a/clisp.spec +++ b/clisp.spec @@ -181,13 +181,16 @@ export PATH="$PATH:." DEBUG= export CC="gcc" %endif +export MYCFLAGS="" %ifarch s390x ppc64 ppc64le %{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-fstack-protector-strong// -e s/-fstack-clash-protection//)} %add_optflags -fno-pie -fno-PIE %add_ldflags -no-pie +MYCFLAGS=-O %endif %ifarch %arm -%add_optflags -O +%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-O[0-9]/-O/g)} +MYCFLAGS=-O %endif %ifarch aarch64 %endif @@ -199,12 +202,14 @@ export PATH="$PATH:." %endif %ifarch %ix86 %add_optflags -ffloat-store +MYCFLAGS=-O %endif %ifarch x86_64 sparc sparc64 ia64 s390x ppc64 ppc64le %add_optflags -fno-gcse %endif %ifarch ia64 s390x ppc64 ppc64le %{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-O[0-9]/-O/g)} +MYCFLAGS=-O %endif %ifarch sparc sparc64 %add_optflags -mcpu=v9 @@ -224,7 +229,6 @@ port='' %ifarch s390x ##port='--enable-portability' %endif -export MYCFLAGS="%{optflags}" # # Report final architectures From 34cea0ff2ce1d6cbbb0f3e106828784b98cc1024f9ec857c63fa13c2bce1ba3c Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 2 Sep 2024 09:59:38 +0000 Subject: [PATCH 12/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=141 --- clisp-2.49-configure.dif | 2 +- clisp.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/clisp-2.49-configure.dif b/clisp-2.49-configure.dif index 6847a41..1e72e4d 100644 --- a/clisp-2.49-configure.dif +++ b/clisp-2.49-configure.dif @@ -149,7 +149,7 @@ fi + if [ -n "${MYCFLAGS}" ] ; then -+ XCFLAGS=$XCFLAGS" ${MYCFLAGS}" ++ XCFLAGS=$XCFLAGS' ${MYCFLAGS}' + fi + else diff --git a/clisp.spec b/clisp.spec index 5dff31e..135ffb2 100644 --- a/clisp.spec +++ b/clisp.spec @@ -234,7 +234,7 @@ port='' # Report final architectures # echo $(uname -i -m -p) %_build_arch %_arch -echo | $CC $MYCFLAGS -v -E - 2>&1 | grep /cc1 +echo | $CC %{optflags} -v -E - 2>&1 | grep /cc1 # # Environment for the case of missing terminal # From 01471d61b4945bf5d546c7bb2fd5b1f3573ac9fe5a54906fa7996b4591638d89 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 2 Sep 2024 10:38:21 +0000 Subject: [PATCH 13/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=142 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 135ffb2..011824c 100644 --- a/clisp.spec +++ b/clisp.spec @@ -302,7 +302,7 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --with-module=postgresql \ --config \ CC="${CC}" \ - CFLAGS="${MYCFLAGS} -Wa,--noexecstack" \ + CFLAGS="%{optflags}" \ LDFLAGS="%{ldflags}" %_make -C build lispbibl.h From d98d2bed84987eaefc5568a243706cbc3746ed1dcc0f3deeedad3610c05e070c Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 2 Sep 2024 10:54:34 +0000 Subject: [PATCH 14/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=143 --- clisp.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/clisp.spec b/clisp.spec index 011824c..f8ab61c 100644 --- a/clisp.spec +++ b/clisp.spec @@ -87,7 +87,11 @@ BuildRequires: pkgconfig(zlib) # to BuildRequires # %global ldflags %{nil} +%ifarch %arm ppc ppc64 ppc64le s390 s390x +%global _lto_cflags %{nil} +%else %global _lto_cflags %{_lto_cflags} -ffat-lto-objects +%endif %global rlver %(rpm -q --qf '%%{VERSION}' readline-devel | sed 's/\\.//g') %define add_optflags(a:f:t:p:w:W:d:g:O:A:C:D:E:H:i:M:n:P:U:u:l:s:X:B:I:L:b:V:m:x:c:S:E:o:v:) \ %global optflags %{optflags} %{**} From 149d710d71a5427573827593d410b0bcab4156154de0598a2da04765cb3a5d14 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 2 Sep 2024 13:35:47 +0000 Subject: [PATCH 15/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=144 --- clisp-2.49-configure.dif | 31 ++++++++++++++++++++----------- clisp.spec | 1 + 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/clisp-2.49-configure.dif b/clisp-2.49-configure.dif index 1e72e4d..9a21f9d 100644 --- a/clisp-2.49-configure.dif +++ b/clisp-2.49-configure.dif @@ -5,13 +5,13 @@ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in | 2 - clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp | 2 - clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d | 16 ++++++---- - clisp-2.49.93+git20240704.f5acef38/src/makemake.in | 12 ++++++- + clisp-2.49.93+git20240704.f5acef38/src/makemake.in | 14 +++++++- clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c | 1 clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp | 2 - - 9 files changed, 30 insertions(+), 13 deletions(-) + 9 files changed, 31 insertions(+), 14 deletions(-) --- clisp-2.49.93+git20240704.f5acef38/configure -+++ clisp-2.49.93+git20240704.f5acef38/configure 2024-09-02 09:45:26.969435182 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/configure 2024-09-02 13:23:26.124850752 +0000 @@ -429,11 +429,11 @@ do passnext=makemake ;; @@ -27,7 +27,7 @@ prev=vimdir passnext=both ;; --- clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in -+++ clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in 2024-09-02 09:45:26.969435182 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in 2024-09-02 13:23:26.124850752 +0000 @@ -18,7 +18,7 @@ distribdir = ### Custom defs. CCMP2C = ../../ccmp2c @@ -38,7 +38,7 @@ # default target: make the module --- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure -+++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure 2024-09-02 09:45:26.973435115 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure 2024-09-02 13:23:26.124850752 +0000 @@ -5526,7 +5526,7 @@ printf "%s\n" "$as_me: ${term_bold}** Li @@ -49,7 +49,7 @@ then : printf "%s\n" "#define HAVE_SVM_H 1" >>confdefs.h --- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in -+++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in 2024-09-02 09:45:26.969435182 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/configure.in 2024-09-02 13:23:26.124850752 +0000 @@ -16,7 +16,7 @@ AC_LIB_LINKFLAGS([svm]) BOLD_MSG([LibSVM (Headers)]) AC_SUBST(LIBSVM_CFLAGS) @@ -60,7 +60,7 @@ AC_MSG_ERROR([cannot find LibSVM headers]) fi --- clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp -+++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp 2024-09-02 09:45:26.973435115 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/modules/libsvm/libsvm.lisp 2024-09-02 13:23:26.124850752 +0000 @@ -15,7 +15,7 @@ (default-foreign-language :stdc) @@ -71,7 +71,7 @@ (defvar *libsvm-output* *standard-output* "The stream for svm.so messages.") (cl:defun write-string-to-libsvm-output (s) --- clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d -+++ clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d 2024-09-02 09:45:26.973435115 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/src/lispbibl.d 2024-09-02 13:23:26.128850679 +0000 @@ -178,7 +178,7 @@ #define PC386 /* IBMPC-compatible with 80386/80486-processor */ #endif @@ -119,7 +119,7 @@ #elif !(oint_addr_shift==0) #define type_data_object(type,data) \ --- clisp-2.49.93+git20240704.f5acef38/src/makemake.in -+++ clisp-2.49.93+git20240704.f5acef38/src/makemake.in 2024-09-02 09:46:45.708085247 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/src/makemake.in 2024-09-02 13:34:28.840613211 +0000 @@ -248,6 +248,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} # Handle --with-... arguments while test -z "$endofargs"; do @@ -155,6 +155,15 @@ else if [ $CROSS = false ] ; then +@@ -1468,7 +1477,7 @@ if [ "${with_dynamic_modules}" != no ]; + eval XCC_PICFLAG=\"${pic_flag}\" + if [ "$HSYSOS" != cygwin ]; then + eval "`./libtool --tag=CC --config | grep '^allow_undefined_flag='`" +- eval "`./libtool --tag=CC --config | grep '^archive_cmds='`" ++ eval "`./libtool --tag=CC --config | sed -rn '/^archive_cmds=/{ s/\s*-shared//; s/(\\\$compiler_flags)/\1 -shared/; p }'`" + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname' + fi @@ -4036,8 +4045,9 @@ if [ $CROSS = false ] ; then echol if [ "${with_dynamic_modules}" != no ]; then @@ -167,7 +176,7 @@ echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)" echol --- clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c -+++ clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c 2024-09-02 09:45:26.977435045 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c 2024-09-02 13:23:26.128850679 +0000 @@ -1042,6 +1042,7 @@ main (int argc, char *argv[]) infilename = argv[1]; @@ -177,7 +186,7 @@ printf ("#include \n"); printf ("#include \n"); --- clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp -+++ clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp 2024-09-02 09:45:26.977435045 +0000 ++++ clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp 2024-09-02 13:23:26.128850679 +0000 @@ -328,7 +328,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out)) (t (format out "_~2,'0x" (char-code cc)))))) diff --git a/clisp.spec b/clisp.spec index f8ab61c..4f83843 100644 --- a/clisp.spec +++ b/clisp.spec @@ -61,6 +61,7 @@ BuildRequires: ffcall #%endif BuildRequires: gdbm-devel BuildRequires: glib2-devel +BuildRequires: groff BuildRequires: gtk2-devel BuildRequires: libglade2-devel BuildRequires: libsigsegv-devel From bc9e3d1f359aed705dceeaf3e8cc5e4f3700de19b5d0d7f5a25d998abb6502ed Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 3 Sep 2024 06:48:42 +0000 Subject: [PATCH 16/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=145 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 4f83843..b4e82ec 100644 --- a/clisp.spec +++ b/clisp.spec @@ -88,7 +88,7 @@ BuildRequires: pkgconfig(zlib) # to BuildRequires # %global ldflags %{nil} -%ifarch %arm ppc ppc64 ppc64le s390 s390x +%ifarch %arm ppc ppc64 ppc64le s390 s390x %ix86 %global _lto_cflags %{nil} %else %global _lto_cflags %{_lto_cflags} -ffat-lto-objects From 98bd9c232d373183526dbb42247b07a9064482dad85851f3b1894b4de29fa963 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 3 Sep 2024 07:11:35 +0000 Subject: [PATCH 17/17] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=146 --- clisp.changes | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/clisp.changes b/clisp.changes index c394194..e99d7e1 100644 --- a/clisp.changes +++ b/clisp.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Sep 3 07:10:42 UTC 2024 - Dr. Werner Fink + +- Choose lto settings depending on architecture as otherwise + we might see crashing clisp + ------------------------------------------------------------------- Mon Sep 2 09:07:21 UTC 2024 - Dr. Werner Fink