diff --git a/clisp-2.39-clx.dif b/clisp-2.39-clx.dif index 318c63f..fec3078 100644 --- a/clisp-2.39-clx.dif +++ b/clisp-2.39-clx.dif @@ -1,7 +1,3 @@ ---- - modules/clx/new-clx/clx.f | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - --- a/modules/clx/new-clx/clx.f +++ b/modules/clx/new-clx/clx.f @@ -1721,7 +1721,8 @@ static void general_lookup (object type) @@ -24,3 +20,13 @@ /* ----------------------------------------------------------------------- +--- a/modules/clx/new-clx/clx.lisp ++++ b/modules/clx/new-clx/clx.lisp +@@ -22,6 +22,7 @@ + ;;;; -------------------------------------------------------------------------- + ;;;; Exports + ;;;; -------------------------------------------------------------------------- ++(export '*displays*) + (export + '(*version* access-control access-error access-hosts activate-screen-saver + add-access-host add-resource add-to-save-set alist alloc-color diff --git a/clisp-2.49-clx_demos.dif b/clisp-2.49-clx_demos.dif new file mode 100644 index 0000000..f0eedbd --- /dev/null +++ b/clisp-2.49-clx_demos.dif @@ -0,0 +1,153 @@ +--- a/modules/clx/new-clx/demos/clx-demos.lisp ++++ b/modules/clx/new-clx/demos/clx-demos.lisp +@@ -11,7 +11,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 +@@ -7,7 +7,30 @@ + ;;; $Id: koch.lisp,v 1.5 2008/06/25 23:05:28 sds Exp $ + ;;; $Source: /cvsroot/clisp/clisp/modules/clx/new-clx/demos/koch.lisp,v $ + +-(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)))) +@@ -123,4 +146,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..ed457e1 --- /dev/null +++ b/clisp-2.49-configure.dif @@ -0,0 +1,108 @@ +--- a/configure ++++ b/configure +@@ -393,11 +393,11 @@ do + passnext=both ;; + + --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 ;; +--- a/src/lispbibl.d ++++ b/src/lispbibl.d +@@ -121,7 +121,7 @@ + #define PC386 /* IBMPC-compatible with 80386/80486-processor */ + #endif + #ifdef GENERIC_UNIX +- #if (defined(unix) && (defined(linux) || defined(__CYGWIN32__) || 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(__CYGWIN32__) || 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)) +@@ -218,8 +218,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) */ +@@ -1245,7 +1251,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) +@@ -3312,9 +3318,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) \ +--- a/src/makemake.in ++++ b/src/makemake.in +@@ -228,6 +228,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 +@@ -1335,6 +1338,10 @@ if [ $XCC_GCC = true ] ; then + XCFLAGS=${XCFLAGS}" -pthread" + fi + ++ if [ -n "${MYCFLAGS}" ] ; then ++ XCFLAGS=$XCFLAGS' ${MYCFLAGS} ' ++ fi ++ + else + + if [ $TSYS = sun4 -a $CROSS = false ] ; then +@@ -3593,7 +3600,8 @@ if [ $CROSS = false ] ; then + echotab " mkdir -p \"\$\$absdest/\$\$m\"; \\" + echotab " cd \$\$m; \$(MAKE) clisp-module-distrib LN=\"\$(INSTALL_DATA)\" distribdir=\"\$\$absdest/\$\$m\" ; cd \"\$\$here\"; \\" + echotab " done; fi" +- line='linkkit/* base/*' ++ echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full" ++ line='linkkit/* base/* full/*' + else + echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full" + line='linkkit/* base/* full/*' +--- a/utils/modprep.lisp ++++ b/utils/modprep.lisp +@@ -345,7 +345,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..ed21bc7 --- /dev/null +++ b/clisp-2.49-gctoken.dif @@ -0,0 +1,10 @@ +--- a/utils/gctrigger.c ++++ b/utils/gctrigger.c +@@ -599,6 +599,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-new_clx.dif b/clisp-2.49-new_clx.dif new file mode 100644 index 0000000..04ab543 --- /dev/null +++ b/clisp-2.49-new_clx.dif @@ -0,0 +1,10 @@ +--- a/modules/clx/new-clx/clx.lisp ++++ b/modules/clx/new-clx/clx.lisp +@@ -22,6 +22,7 @@ + ;;;; -------------------------------------------------------------------------- + ;;;; Exports + ;;;; -------------------------------------------------------------------------- ++(export '*displays*) + (export + '(*version* access-control access-error access-hosts activate-screen-saver + add-access-host add-resource add-to-save-set alist alloc-color diff --git a/clisp-2.49-postgresql.dif b/clisp-2.49-postgresql.dif new file mode 100644 index 0000000..8bc575c --- /dev/null +++ b/clisp-2.49-postgresql.dif @@ -0,0 +1,9 @@ +--- a/modules/postgresql/link.sh.in ++++ b/modules/postgresql/link.sh.in +@@ -4,5 +4,5 @@ ${MAKE-make} clisp-module \ + NEW_MODULES='postgresql' + NEW_FILES='' + for f in ${NEW_MODULES}; do NEW_FILES=${NEW_FILES}" ${f}.o"; done +-NEW_LIBS="${NEW_FILES} @LIBS@" ++NEW_LIBS="${NEW_FILES} @LIBS@ -lcrypt -lssl" + TO_LOAD='postgresql sql' diff --git a/clisp-2.49-rpath.dif b/clisp-2.49-rpath.dif new file mode 100644 index 0000000..56e3bb5 --- /dev/null +++ b/clisp-2.49-rpath.dif @@ -0,0 +1,11 @@ +--- a/src/aclocal.m4 ++++ b/src/aclocal.m4 +@@ -6668,7 +6668,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do +- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" ++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-Wl,-rpath-link$found_dir" + done + fi + popdef([P_A_C_K]) diff --git a/clisp-rpmlintrc b/clisp-rpmlintrc index d5b29ec..0151a4d 100644 --- a/clisp-rpmlintrc +++ b/clisp-rpmlintrc @@ -1,4 +1,5 @@ addFilter(".*devel-file-in-non-devel-package.*/usr/lib.*/clisp-.*/.*") addFilter(".*make-check-outside-check-section.*make\ check.*") -addFilter(".*executable-stack.*/usr/lib.*/clisp-2.49/.*") -addFilter(".*binary-or-shlib-calls-gethostbyname.*/usr/lib.*/clisp-2.49/.*") +addFilter(".*executable-stack.*/usr/lib.*/clisp-.*") +addFilter(".*binary-or-shlib-calls-gethostbyname.*/usr/lib.*/clisp-.*") +addFilter(".*file-contains-date-and-time.*/usr/lib.*/clisp-.*") diff --git a/clisp.changes b/clisp.changes index af4d4f0..bd48b55 100644 --- a/clisp.changes +++ b/clisp.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +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 @@ -18,7 +31,6 @@ Wed Nov 28 15:03:30 UTC 2012 - toganm@opensuse.org * 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 diff --git a/clisp.spec b/clisp.spec index da818f3..87ffbae 100644 --- a/clisp.spec +++ b/clisp.spec @@ -25,11 +25,13 @@ BuildRequires: ffcall BuildRequires: gdbm-devel BuildRequires: gtk2-devel BuildRequires: libglade2-devel -BuildRequires: libsigsegv2-devel +BuildRequires: libsigsegv-devel BuildRequires: openssl-devel BuildRequires: pcre-devel BuildRequires: postgresql-devel BuildRequires: readline-devel +BuildRequires: screen +BuildRequires: vim-data %if 0%{?suse_version} >= %min_suse_ver BuildRequires: dbus-1-devel BuildRequires: fdupes @@ -42,8 +44,10 @@ BuildRequires: xorg-x11-devel # %define debug no Requires(pre): vim +Requires(pre): vim-data Requires: ffcall -Requires: libsigsegv2 +Provides: %{name}-devel +Suggests: %{name}-doc Version: 2.49 Release: 0 Summary: A Common Lisp Interpreter @@ -53,15 +57,33 @@ Url: http://clisp.cons.org Source0: http://switch.dl.sourceforge.net/sourceforge/clisp/clisp-2.49.tar.bz2 Source3: clisp-rpmlintrc Source4: README.SuSE -Patch3: clisp-2.49-personality.patch -Patch7: clisp-2.39-ia64-wooh.dif -Patch8: clisp-2.39-clx.dif +# 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 Help (new) CLX to work out of the box +Patch3: clisp-2.39-clx.dif +# PATCH-EXTEND-OPENSUSE Make sure to be able to use MYCLFAGS +Patch4: clisp-2.49-configure.dif +# PATCH-FIX-OPENSUSE Make sure to use initialized token on garbage collection +Patch5: clisp-2.49-gctoken.dif +# PATCH-FEATURE-OPENSUSE Make CLX demos usable at runtime +Patch6: clisp-2.49-clx_demos.dif +# PATCH-EXTEND-OPENSUSE Enable postgresql SSL feature +Patch7: clisp-2.49-postgresql.dif +# PATCH-FIX-OPENSUSE Do not use rpath but rpath-link +Patch8: clisp-2.49-rpath.dif +# PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls Patch12: clisp-linux.patch +# PATCH-FIX-OPENSUSE Glibc got rid of unused __swblk_t type therefore update linux.lisp Patch13: clisp-glibc-fix.patch #PATCH-FIX-UPSTREAM patch#3474660 changeset 15557 4f5985f83127 Patch14: clisp-hostname.patch +# PATCH-EXTEND-UPSTREAM Make armv7l work Patch15: clisp-arm.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-build +%global vimdir %{_datadir}/vim/site/after/syntax %global xarch ppc64 s390x armv4l ExcludeArch: ppc64 s390x armv4l @@ -72,6 +94,15 @@ 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/ @@ -93,9 +124,14 @@ contains two nice applications. %prep %setup -qT -b0 -%patch3 -p1 -b .sel -%patch7 -p1 -b .wooh -%patch8 -p1 -b .clx +%patch1 -p1 -b .sel +%patch2 -p1 -b .wooh +%patch3 -p1 -b .clx +%patch4 -p1 -b .conf +%patch5 -p1 -b .gc +%patch6 -p1 -b .demos +%patch7 -p1 -b .psql +%patch8 -p1 -b .rpath %patch12 -p1 %if 0%{?suse_version} > 1220 %patch13 -p1 -b .glibc @@ -128,15 +164,16 @@ else fi CC="${CC} -g ${RPM_OPT_FLAGS} -fno-strict-aliasing -fPIC -pipe" case "$RPM_ARCH" in - i[0-9]86) CC="${CC} -falign-functions=4 -mieee-fp -ffloat-store" ;; - ppc) CC="${CC}" ;; - s390) CC="${CC}" ;; - x86_64) CC="${CC} -fno-gcse" ;; - sparc*) CC="${CC} -fno-gcse" ;; - ppc64) CC="${CC} -fno-gcse -mpowerpc64" ;; - s390x) CC="${CC} -fno-gcse" ;; - ia64) CC="${CC} -fno-gcse" ;; - axp|alpha) CC="${CC}" ;; + i[0-9]86) + CC="${CC} -falign-functions=4 -mieee-fp -ffloat-store" ;; + ppc) CC="${CC}" ;; + s390) CC="${CC}" ;; + x86_64) CC="${CC} -fno-gcse" ;; + sparc*) CC="${CC} -fno-gcse" ;; + ppc64) CC="${CC} -fno-gcse -mpowerpc64" ;; + s390x) CC="${CC} -fno-gcse" ;; + ia64) CC="${CC} -fno-gcse" ;; + axp|alpha) CC="${CC}" ;; esac noexec='-DLINUX_NOEXEC_HEAPCODES' nommap='-DNO_MULTIMAP_SHM -DNO_MULTIMAP_FILE -DNO_SINGLEMAP -DNO_TRIVIALMAP' @@ -144,15 +181,15 @@ safety='-DSAFETY=3 -O' MYCFLAGS="${MYCFLAGS} -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE -Wno-unused -Wno-uninitialized" case "$RPM_ARCH" in - i[0-9]86) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; - ppc) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; - s390) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; - x86_64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; - ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - axp|alpha) MYCFLAGS="${MYCFLAGS} ${nommap}" ;; + i[0-9]86) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; + ppc) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; + s390) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; + x86_64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; + ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + axp|alpha) MYCFLAGS="${MYCFLAGS} ${nommap}" ;; esac export CC export MYCFLAGS @@ -160,11 +197,24 @@ unset cfi386 noexec nommap safety # # Environment for the case of missing terminal # -rm -rf /tmp/clispIO -mknod /tmp/clispIO p -cat /tmp/clispIO & +%global _configure screen -L -D -m ./configure +%global _make screen -L -D -m make +SCREENDIR=$(mktemp -d ${PWD}/screen.XXXXXX) || exit 1 +SCREENRC=${SCREENDIR}/clisp +export SCREENRC SCREENDIR exec 0< /dev/null -exec 1> /tmp/clispIO 2>&1 +SCREENLOG=${SCREENDIR}/log +cat > $SCREENRC<<-EOF + deflogin off + logfile $SCREENLOG + logfile flush 1 + logtstamp off + log on + setsid on + scrollback 0 + silence on + utf8 on + EOF # # Build the current system # @@ -182,39 +232,44 @@ find -name configure | xargs -r \ # The modules i18n, syscalls, regexp # are part of the base clisp system. # -./configure build ${DEBUG} \ - --prefix=%{_prefix} \ - --exec-prefix=%{_prefix} \ - --libdir=%{_libdir} \ - --fsstnd=suse \ - --with-readline \ +> $SCREENLOG +tail -q -s 0.5 -f $SCREENLOG & pid=$! +%_configure build ${DEBUG} \ + --prefix=%{_prefix} \ + --exec-prefix=%{_prefix} \ + --libdir=%{_libdir} \ + --vimdir=%{vimdir} \ + --fsstnd=suse \ + --with-readline \ --with-dynamic-modules \ - --with-gettext \ + --with-gettext \ %if 0%{?suse_version} >= %min_suse_ver - --with-module=dbus \ + --with-module=dbus \ %endif - --with-module=queens \ - --with-module=gdbm \ - --with-module=gtk2 \ - --with-module=pcre \ - --with-module=rawsock \ - --with-module=zlib \ - --with-module=wildcard \ - --with-module=bindings/glibc \ - --with-module=clx/new-clx \ - --with-module=berkeley-db \ + --with-module=queens \ + --with-module=gdbm \ + --with-module=gtk2 \ + --with-module=pcre \ + --with-module=rawsock \ + --with-module=zlib \ + --with-module=wildcard \ + --with-module=bindings/glibc\ + --with-module=clx/new-clx \ + --with-module=berkeley-db \ --with-module=postgresql -make -C build +%_make -C build +%_make -C build check # -# Remove pipe +# Stop tail # -rm -f /tmp/clispIO +kill $pid + # # Check for errors # -test -z "$(ls tests/*.erg 2>/dev/null)" +test -z "$(ls build/tests/*.erg 2>/dev/null)" %install # @@ -254,14 +309,15 @@ 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 +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/ %if 0%{?suse_version} >= %min_suse_ver %fdupes %{buildroot}${LSPLIB}/ %endif @@ -270,50 +326,16 @@ find %{buildroot}${LSPLIB}/ -name '*.run' | xargs -r chmod 0755 %files -f clisp.lang %defattr(-,root,root,755) -%doc %{_docdir}/clisp/ %{_bindir}/clisp %{_bindir}/clisp-link %{_libdir}/clisp-%{version}/ %{_datadir}/aclocal/clisp.m4 -%{_datadir}/emacs/site-lisp/clhs.el -%{_datadir}/emacs/site-lisp/clisp-coding.el -%{_datadir}/emacs/site-lisp/clisp-ffi.el -%{_datadir}/emacs/site-lisp/clisp-indent.el -%{_datadir}/emacs/site-lisp/clisp-indent.lisp -%{_datadir}/man/man1/clisp-link.1.gz -%{_datadir}/man/man1/clisp.1.gz -%{_datadir}/vim/vimfiles/after/syntax/lisp.vim -%dir %{_datadir}/vim/vimfiles -%dir %{_datadir}/vim/vimfiles/after -%dir %{_datadir}/vim/vimfiles/after/syntax -%if 0%{?centos_version} == 600 - /usr/share/doc/packages/clisp/ANNOUNCE -%{_datadir}/doc/packages/clisp/COPYRIGHT -%{_datadir}/doc/packages/clisp/GNU-GPL -%{_datadir}/doc/packages/clisp/MAGIC.add -%{_datadir}/doc/packages/clisp/NEWS -%{_datadir}/doc/packages/clisp/README -%{_datadir}/doc/packages/clisp/README.de -%{_datadir}/doc/packages/clisp/README.es -%{_datadir}/doc/packages/clisp/SUMMARY -%{_datadir}/doc/packages/clisp/doc/CLOS-guide.txt -%{_datadir}/doc/packages/clisp/doc/LISP-tutorial.txt -%{_datadir}/doc/packages/clisp/doc/clisp-link.1 -%{_datadir}/doc/packages/clisp/doc/clisp-link.html -%{_datadir}/doc/packages/clisp/doc/clisp-link.ps -%{_datadir}/doc/packages/clisp/doc/clisp.1 -%{_datadir}/doc/packages/clisp/doc/clisp.html -%{_datadir}/doc/packages/clisp/doc/clisp.png -%{_datadir}/doc/packages/clisp/doc/clisp.ps -%{_datadir}/doc/packages/clisp/doc/impnotes.css -%{_datadir}/doc/packages/clisp/doc/impnotes.html -%{_datadir}/locale/da/LC_MESSAGES/clisp.mo -%{_datadir}/locale/de/LC_MESSAGES/clisp.mo -%{_datadir}/locale/en/LC_MESSAGES/clisp.mo -%{_datadir}/locale/es/LC_MESSAGES/clisp.mo -%{_datadir}/locale/fr/LC_MESSAGES/clisp.mo -%{_datadir}/locale/nl/LC_MESSAGES/clisp.mo -%{_datadir}/locale/ru/LC_MESSAGES/clisp.mo -%endif +%{_datadir}/emacs/site-lisp/ +%doc %{_datadir}/man/man1/clisp*.1.gz +%{vimdir}/lisp.vim + +%files doc +%defattr(-,root,root,755) +%{_docdir}/clisp/ %changelog