# # spec file for package clisp (Version 2.39) # # 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. # # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: clisp BuildRequires: db-devel gcc-c++ krb5-devel libstdc++-devel openssl-devel pcre-devel postgresql-devel readline-devel te_ams te_latex xorg-x11-devel ExcludeArch: ppc64 s390x armv4l # # If set to yes do not forget to add # gcc-c++ # to BuildRequires # %define debug no License: GNU General Public License (GPL) - all versions Group: Development/Languages/Other Autoreqprov: on Version: 2.39 Release: 8 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 Patch6: clisp-2.39-dump.dif Patch7: clisp-2.39-ia64-wooh.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %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 %patch -P 1 -b .mappriv %patch -P 2 -b .mapvar %patch -P 3 -b .sel %patch -P 4 -b .ia64 %patch -P 5 -b .alloca %patch -P 6 -b .dump %patch -P 7 -b .wooh %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} ${RPM_OPT_FLAGS} -g -fPIC -D_GNU_SOURCE" CC="${CC} -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" CC="${CC} -pipe -fno-strict-aliasing -Wno-unused -Wno-uninitialized" noexec="-DLINUX_NOEXEC_HEAPCODES" nommap="-DNO_MULTIMAP_SHM -DNO_MULTIMAP_FILE -DNO_SINGLEMAP -DNO_TRIVIALMAP" safety="-DSAFETY=3 -fno-gcse -O" case "$RPM_ARCH" in i[0-9]86) CC="${CC} -falign-functions=4 ${noexec}" ;; ppc) CC="${CC} ${noexec}" ;; s390) CC="${CC} ${noexec}" ;; x86_64) CC="${CC} ${safety}" ;; sparc*) CC="${CC} ${safety}" ;; ppc64) CC="${CC} ${safety} -DWIDE_HARD" ;; s390x) CC="${CC} ${safety} -DWIDE_HARD" ;; ia64) CC="${CC} ${safety}" ;; axp|alpha) CC="${CC} ${nommap}" ;; esac export CC export MYCFLAGS unset 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='-g3 -DDEBUG_GCSAFETY' else DEBUG="" MYCFLAGS="" fi # # Do not accept overwriting optimizing level # case "$RPM_ARCH" in i[0-9]86) ;; ppc) ;; s390) ;; x86_64) MYCFLAGS="${MYCFLAGS} -O" ;; sparc*) MYCFLAGS="${MYCFLAGS} -O" ;; ppc64) MYCFLAGS="${MYCFLAGS} -O" ;; s390x) MYCFLAGS="${MYCFLAGS} -O" ;; ia64) MYCFLAGS="${MYCFLAGS} -O" ;; axp|alpha) ;; esac # # 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} \ --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=postgresql # disabled: --with-module=berkeley-db # # 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 CLXLIB=${LSPLIB}/full # # Install the current system # make install -C ${SYSTEM} \ prefix=%{_prefix} \ exec_prefix=%{_prefix} \ mandir=%{_mandir} \ libdir=%{_libdir} \ DESTDIR=$RPM_BUILD_ROOT \ INSTALL_DATA='install -cm 0444' # # The CLX interface # install -d $RPM_BUILD_ROOT${CLXDOC} install -d $RPM_BUILD_ROOT${CLXLIB} install -d $RPM_BUILD_ROOT${LSPLIB}/fullnox pushd ${SYSTEM}/clx/new-clx/ install -c -m 0444 README $RPM_BUILD_ROOT${CLXDOC}/ install -c -m 0444 README.SuSE $RPM_BUILD_ROOT${CLXDOC}/ tar cf - demos/ | (cd $RPM_BUILD_ROOT${CLXDOC}/ ; tar xf - ) rm -f $RPM_BUILD_ROOT${CLXDOC}/demos/clx-demos.lisp popd pushd ${SYSTEM}/clx/ tar xfz clx-manual.tar.gz -C $RPM_BUILD_ROOT${CLXDOC} popd chmod -R g+r,o+r $RPM_BUILD_ROOT${LSPDOC}/ find $RPM_BUILD_ROOT${LSPDOC} -type d | xargs chmod 755 rm -f $RPM_BUILD_ROOT${CLXDOC}/*,v rm -f $RPM_BUILD_ROOT${CLXDOC}/.\#* rm -f $RPM_BUILD_ROOT${CLXDOC}/demos/*,v rm -f $RPM_BUILD_ROOT${CLXDOC}/demos/.\#* rm -f $RPM_BUILD_ROOT${CLXDOC}/demos/*.orig find $RPM_BUILD_ROOT${LSPLIB}/ -name '*.dvi' | xargs -r rm -f find $RPM_BUILD_ROOT${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/ /usr/bin/clisp %{_libdir}/clisp/ %doc %{_mandir}/man1/clisp.1.gz %changelog -n clisp * 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