# # spec file for package clisp (Version 2.43) # # Copyright (c) 2007 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. # # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: clisp # BuildRequires: db43-devel gcc-c++ libstdc++-devel openssl-devel pcre-devel postgresql-devel readline-devel texlive-latex xorg-x11-devel BuildRequires: db43-devel openssl-devel pcre-devel postgresql-devel readline-devel xorg-x11-devel ExcludeArch: ppc64 s390x armv4l # # If set to yes do not forget to add # gcc-c++ # to BuildRequires # %define debug no License: GPL v2 or later Group: Development/Languages/Other PreReq: vim AutoReqProv: on Version: 2.43 Release: 2 Summary: A Common Lisp Interpreter Url: http://clisp.cons.org Source: ftp://ftp.gnu.org/pub/gnu/clisp/latest/clisp-%{version}.tar.bz2 Patch: clisp-%{version}.dif Patch1: clisp-2.31-map_private.patch Patch2: clisp-2.31-map_variable.patch Patch3: clisp-2.31-personality.patch Patch4: clisp-2.39-ia64.dif Patch5: clisp-2.36-alloca.patch Patch7: clisp-2.39-ia64-wooh.dif Patch8: clisp-2.39-clx.dif Patch9: clisp-2.39-berkeley-db.dif Patch10: ffcall_1.10+2.41-3.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %global vimdir %{_datadir}/vim/current/vimfiles/after/syntax %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'. 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. Authors: -------- Bruno Haible Michael Stoll Marcus Daniels Gilbert Baumann %prep %setup -q %patch1 -p0 -b .mappriv %patch2 -p0 -b .mapvar %patch3 -p0 -b .sel %patch4 -p0 -b .ia64 %patch5 -p0 -b .alloca %patch7 -p0 -b .wooh %patch8 -p0 -b .clx %patch9 -p0 -b .bdb %patch10 -p1 -b .ffcall %patch %build # # Overwrite stack size limit (hopefully a soft limit only) # ulimit -Ss unlimited || true ulimit -Hs unlimited || true unset LC_CTYPE LANG=POSIX LC_ALL=POSIX export LANG LC_ALL # # Current system # SYSTEM=${RPM_ARCH}-suse-linux # # Update autoconf files # AUTODIR=$(find -name autoconf -and -type d 2> /dev/null) %{?suse_update_config $AUTODIR} export PATH="$PATH:." # # Set gcc command line but do not use CFLAGS # if test %debug = yes ; then CC="g++" else CC="gcc" 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}" ;; esac noexec='-DLINUX_NOEXEC_HEAPCODES' nommap='-DNO_MULTIMAP_SHM -DNO_MULTIMAP_FILE -DNO_SINGLEMAP -DNO_TRIVIALMAP' 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}" ;; esac export CC export MYCFLAGS unset cfi386 noexec nommap safety # # Environment for the case of missing terminal # rm -rf /tmp/clispIO mknod /tmp/clispIO p cat /tmp/clispIO & exec 0< /dev/null exec 1> /tmp/clispIO 2>&1 # # Build the current system # if test %debug = yes ; then DEBUG=--with-debug MYCFLAGS="${MYCFLAGS} -g3 -DDEBUG_GCSAFETY" else DEBUG="" MYCFLAGS="${MYCFLAGS}" fi # # May interfere with configure # unset CFLAGS # # The modules i18n, syscalls, regexp # are part of the base clisp system. # ./configure --build ${SYSTEM} ${DEBUG} \ --prefix=%{_prefix} \ --exec-prefix=%{_prefix} \ --libdir=%{_libdir} \ --vimdir=%{vimdir} \ --fsstnd=suse \ --ignore-absence-of-libsigsegv \ --with-readline \ --with-dynamic-ffi \ --with-dynamic-modules \ --with-gettext \ --with-module=queens \ --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 # # Remove pipe # rm -f /tmp/clispIO # # Check for errors # test -z "$(ls ${SYSTEM}/tests/*.erg 2>/dev/null)" %install # # Current system # SYSTEM=${RPM_ARCH}-suse-linux LSPDOC=%{_docdir}/clisp DOCDOC=${LSPDOC}/doc CLXDOC=${LSPDOC}/clx LSPLIB=%{_libdir}/clisp-%{version} CLXLIB=${LSPLIB}/full # # Install the current system # make install -C ${SYSTEM} \ 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} install -d %{buildroot}${LSPLIB}/fullnox pushd ${SYSTEM}/clx/new-clx/ install -c -m 0444 README %{buildroot}${CLXDOC}/ install -c -m 0444 README.SuSE %{buildroot}${CLXDOC}/ tar cf - demos/ | (cd %{buildroot}${CLXDOC}/ ; tar xf - ) popd pushd ${SYSTEM}/clx/ tar xfz clx-manual.tar.gz -C %{buildroot}${CLXDOC} popd chmod -R g+r,o+r %{buildroot}${LSPDOC}/ 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_lang clisp %find_lang clisplow clisp.lang %files -f clisp.lang %defattr(-,root,root,755) %doc %{_docdir}/clisp/ %{_bindir}/clisp %{_libdir}/clisp-%{version}/ %{_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 %{vimdir}/lisp.vim %doc %{_mandir}/man1/clisp.1.gz %changelog * Tue Dec 18 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 2007 - werner@suse.de - Add workaround to gcc bug in -O2 on i386 * Fri Dec 14 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 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 2007 - aj@suse.de - Remove unneeded BuildRequires. * Wed Jan 24 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 2006 - ro@suse.de - disabled berkeley-db module for the moment to fix build needs porting to db-4.4 * Wed Jul 19 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 2006 - ro@suse.de - remove self provides * Tue May 23 2006 - werner@suse.de - Skip exec-image test on ia64, currently broken - Use noexec heap codes on 32 bit architectures * Mon May 22 2006 - werner@suse.de - Update to clisp 2.38 * Tue Mar 21 2006 - werner@suse.de - Be sure not to be fooled by old kernels on IA64 * Mon Mar 13 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 05 2006 - schwab@suse.de - Remove ridiculous stack limit. * Wed Jan 25 2006 - mls@suse.de - converted neededforbuild to BuildRequires * Tue Jan 10 2006 - werner@suse.de - Update to bug fix release 2.37 * Wed Dec 21 2005 - werner@suse.de - Make the factorials of 17 upto 33 work on 64 bit without SIGSEGV * Wed Dec 07 2005 - werner@suse.de - Update to clisp 2.36 * Mon Sep 05 2005 - werner@suse.de - Update to clisp 2.35 * Thu Apr 14 2005 - werner@suse.de - Get clisp back on ix86 * Wed Jan 12 2005 - mfabian@suse.de - Bugzilla #39700: apply patch received from Bruno Haible to fix a problem with non-ASCII file names. * Tue Oct 26 2004 - werner@suse.de - Switch from heimdal-lib to kerberos-devel-packages macro * Wed Jun 30 2004 - werner@suse.de - Handle axp just as ia64 in CFLAGS to make it work correctly * Tue Jun 29 2004 - werner@suse.de - Make FFI work on ia64 - Make memory mapping of lisp object work correctly on ia64 * Wed Jun 23 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 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 2004 - kukuk@suse.de - Build as normal user - Cleanup neededforbuild * Fri Feb 13 2004 - werner@suse.de - Update to clisp 2.32 * Wed Nov 19 2003 - max@suse.de - Linking libpq dynamically, because it now depends on libkrb5. - Added heimdal-lib (libkrb5) to neededforbuild. * Thu Jun 12 2003 - coolo@suse.de - use BuildRoot - use %%find_lang * Wed Jun 11 2003 - kukuk@suse.de - Fix tail parameters - Fix filelist * Wed Jan 29 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 2003 - werner@suse.de - Update to 2.30 * Mon Nov 11 2002 - ro@suse.de - changed neededforbuild to - changed neededforbuild to <> * Thu Aug 01 2002 - werner@suse.de - Make it work on i386, on others gcc 3.1 runs into problems * Wed Jul 31 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 2002 - aj@suse.de - First draft for x86-64. Still work needed for avcall. * Wed Jun 26 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 2002 - ro@suse.de - fix permissions for doc directories * Sat Jun 01 2002 - adrian@suse.de - fix build on mips * fix wrong #includes * fix as path /bin/as -> /usr/bin/as * Thu Aug 23 2001 - ro@suse.de - fixed specfile to build on ppc * Wed Jul 11 2001 - ro@suse.de - update to 2.26 - no autoconf call at the moment * Mon May 07 2001 - mfabian@suse.de - bzip2 sources * Tue Dec 05 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 01 2000 - ro@suse.de - neededforbuild: postgresql * Mon Jun 05 2000 - uli@suse.de - moved docs to %%{_docdir} * Mon Jan 31 2000 - ro@suse.de - fixed libc6-checking again * Mon Jan 31 2000 - werner@suse.de - Tried to get PPC working (does NOT work) - /usr/man -> /usr/share/man * Thu Oct 28 1999 - werner@suse.de - Reintroduce FIFO hack for a missed tty * Mon Oct 11 1999 - werner@suse.de - New version clisp-1999-07-22 * remove Makefile.Linux and use spec instead * Mon Sep 13 1999 - bs@suse.de - ran old prepare_spec on spec file to switch to new prepare_spec. * Wed Mar 31 1999 - werner@suse.de - No string inlines * Tue Mar 30 1999 - werner@suse.de - Work around clisp's buffered *TERMINAL-IO* within a background build process * Mon Mar 29 1999 - werner@suse.de - New version clisp-1999-01-08 - Make -X and -F identical * Fri Dec 18 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 1998 - werner@suse.de - New Version 1997-12-06 - clx script removed - Option -F for clisp added * Mon Jun 09 1997 - werner@suse.de - Patch for GC in clisp included. * Fri Jun 06 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