From 83ecb6c1fd5e9c9349a1f7720da7a578578314ed8597e2bf7177cf9c220a1972 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 25 Nov 2024 09:24:54 +0000 Subject: [PATCH] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=148 --- .gitattributes | 23 + .gitignore | 1 + README.SUSE | 34 + check-build.sh | 43 + clhs.el | 142 +++ clisp-2.39-ia64-wooh.dif | 18 + clisp-2.49-clx_demos.dif | 174 ++++ clisp-2.49-configure.dif | 198 ++++ clisp-2.49-gctoken.dif | 13 + clisp-2.49-personality.patch | 32 + clisp-2.49-postgresql.dif | 9 + clisp-2.49.93+git20240704.f5acef38.tar.xz | 3 + clisp-db6.diff | 31 + clisp-gcc14.patch | 130 +++ clisp-link.dif | 36 + clisp-linux.patch | 16 + clisp-rpmlintrc | 6 + clisp.changes | 1107 +++++++++++++++++++++ clisp.spec | 420 ++++++++ 19 files changed, 2436 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README.SUSE create mode 100644 check-build.sh create mode 100644 clhs.el 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.93+git20240704.f5acef38.tar.xz 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/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.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..9a21f9d --- /dev/null +++ b/clisp-2.49-configure.dif @@ -0,0 +1,198 @@ +--- + 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 | 14 +++++++- + clisp-2.49.93+git20240704.f5acef38/utils/ccmp2c.c | 1 + clisp-2.49.93+git20240704.f5acef38/utils/modprep.lisp | 2 - + 9 files changed, 31 insertions(+), 14 deletions(-) + +--- clisp-2.49.93+git20240704.f5acef38/configure ++++ clisp-2.49.93+git20240704.f5acef38/configure 2024-09-02 13:23:26.124850752 +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.93+git20240704.f5acef38/modules/clx/new-clx/Makefile.in ++++ 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 + 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 ++++ 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 + + + +-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/configure.in ++++ 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) + 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-09-02 13:23:26.124850752 +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-09-02 13:23:26.128850679 +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)) +@@ -274,8 +274,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) */ +@@ -1271,7 +1277,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) +@@ -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 +- #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.93+git20240704.f5acef38/src/makemake.in ++++ 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 + case "$1" in ++ -ignore* | --ignore* ) ++ shift ++ ;; + -verb* | --verb* ) + verbose=`echol "$1"|sed 's/-*v[^=]*=*//'` + test -n "${verbose}" || verbose=true +@@ -1166,11 +1169,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 +@@ -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 +@@ -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 + 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.93+git20240704.f5acef38/utils/ccmp2c.c ++++ 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]; + + /* 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-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)))))) + +-(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..b0d94f8 --- /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 +@@ -606,6 +606,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.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-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..71c0873 --- /dev/null +++ b/clisp-gcc14.patch @@ -0,0 +1,130 @@ +--- + 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-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 */ +- 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 +@@ -1212,7 +1212,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``); +@@ -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) +-# 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); +@@ -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-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,[ + 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/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 new file mode 100644 index 0000000..867ec84 --- /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 +@@ -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 */ ++ #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. */ +@@ -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! */ +-#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..1f55ae4 --- /dev/null +++ b/clisp.changes @@ -0,0 +1,1107 @@ +------------------------------------------------------------------- +Mon Nov 25 09:24:25 UTC 2024 - Dr. Werner Fink + +- Make it build with latest pari version + +------------------------------------------------------------------- +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 + +- 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 + +- 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 + +- 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..000ce72 --- /dev/null +++ b/clisp.spec @@ -0,0 +1,420 @@ +# +# 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/ +# + + +%bcond_with debug +%global commit f5acef38 +%global vdate 20240704 + +Name: clisp +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}+git%{vdate}.%{commit}.tar.xz +Source2: clhs.el +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 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 + +%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: groff +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 +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 +# +%global ldflags %{nil} +%ifarch %arm ppc ppc64 ppc64le s390 s390x %ix86 +%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} %{**} +%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 +# 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 -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 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_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) +# +ulimit -Ss unlimited || true +ulimit -Hs unlimited || true +unset LC_CTYPE +LANG=C.UTF-8 +LC_ALL=C.UTF-8 +export LANG LC_ALL +# +# Current system +# +SYSTEM=${RPM_ARCH}-suse-linux +export PATH="$PATH:." +# +# Set gcc command line but do not use CFLAGS +%if %{with debug} + export CC="g++" + DEBUG=--with-debug +%add_optflags -g3 -DDEBUG_GCSAFETY +%else + 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 +%{expand:%%global optflags %(echo "%{optflags}"|sed -r -e s/-O[0-9]/-O/g)} +MYCFLAGS=-O +%endif +%ifarch aarch64 +%endif +%ifarch ppc +%endif +%ifarch s390 +%endif +%ifarch alpha +%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 +%endif +# +# FastCGI-devel seems a bit broken +# +%add_optflags -I%{_includedir}/fastcgi + +# 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 + +# +# Report final architectures +# +echo $(uname -i -m -p) %_build_arch %_arch +echo | $CC %{optflags} -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 + +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 pari lib doesn ot know anymore about diffptrE +sed -ri 's/(\(def-c-var diffptr)/;; \1/p' modules/pari/pari.lisp + +# +# 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-ffcall \ + --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=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 \ + --config \ + CC="${CC}" \ + CFLAGS="%{optflags}" \ + LDFLAGS="%{ldflags}" + +%_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 +# +. ./version.sh +SYSTEM=${RPM_ARCH}-suse-linux +LSPDOC=%{_docdir}/clisp +DOCDOC=${LSPDOC}/doc +CLXDOC=${LSPDOC}/clx +LSPLIB=%{_libdir}/clisp-${VERSION_NUMBER} +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}* +install -c -m 644 %{S:2} %{buildroot}%{_datadir}/emacs/site-lisp/clhs.el +%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