+# TODO:
+# - review alpha patch
+#
+# Conditional build:
+%bcond_with tests # run test suite `make check' (uses network, won't pass on vserver)
+#
Summary: Common Lisp (ANSI CL) implementation
-Summary(pl): Implementacja Common Lisp (ANSI CL)
+Summary(pl.UTF-8): Implementacja Common Lisp (ANSI CL)
+Summary(pt_BR.UTF-8): Implementação do Common Lisp (ANSI CL)
Name: clisp
-Version: 2.27
-Release: 1
-Icon: clisp.gif
+Version: 2.47
+Release: 4
License: GPL
Group: Development/Languages
-Group(de): Entwicklung/Sprachen
-Group(pl): Programowanie/Jêzyki
-Source0: ftp://cvs2.cons.org/pub/lisp/clisp/source/latest/%{name}-%{version}.tar.bz2
-#Alternatively http://prdownloads.sourceforge.net/clisp/clisp-2.27.tar.bz2
+Source0: http://dl.sourceforge.net/clisp/%{name}-%{version}.tar.bz2
+# Source0-md5: 8fa89bb13e865fc7c7150b82682f35af
Patch0: %{name}-shell.patch
+Patch1: %{name}-alpha.patch
URL: http://clisp.cons.org/
-BuildRequires: readline-devel
+BuildRequires: ffcall-devel
BuildRequires: gettext-devel
+BuildRequires: libsigsegv >= 2.4
BuildRequires: ncurses-devel
+BuildRequires: readline-devel
+BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xorg-lib-libXpm-devel
+BuildRequires: xorg-proto-xextproto-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
language interface and a socket interface. An X11 interface is
available through CLX and Garnet.
-%description -l pl
-Common Lisp to wysokopoziomowy jêzyk programowania ogólnego
-przeznaczenia. CLISP to implementacja Common Lisp, której autorami s±
+%description -l pl.UTF-8
+Common Lisp to wysokopoziomowy język programowania ogólnego
+przeznaczenia. CLISP to implementacja Common Lisp, której autorami są
Bruno Haible z Karlsruhe University oraz Michael Stoll z Munich
-University (oba w Niemczech). W wiêkszo¶ci wspiera Common Lisp opisany
-w standardzie ANSI CL. Dzia³a na mikrokomputerach (DOS, OS/2, Windows
-NT, Windows 95, Amiga 500-4000, Acorn RICS PC), a tak¿e stacjach
+University (oba w Niemczech). W większości wspiera Common Lisp opisany
+w standardzie ANSI CL. Działa na mikrokomputerach (DOS, OS/2, Windows
+NT, Windows 95, Amiga 500-4000, Acorn RICS PC), a także stacjach
uniksowych (Linux, SVR4, Sun4, DEC Alpha OSF, HP-UX, NeXTstep, SGI,
AIX, Sun3 i inne) i wymaga tylko 2 MB RAM.
-To jest oprogramowanie wolnodostêpne, na licencji GNU GPL, mo¿liwe
+To jest oprogramowanie wolnodostępne, na licencji GNU GPL, możliwe
jest dystrybuowanie komercyjnych aplikacji skompilowanych CLISP-em.
-Interfejs u¿ytkownika dostêpny jest po niemiecku, angielsku, francusku
-i hiszpañsku. CLISP zawiera interpreter, kompilator, znaczny podzbiór
-CLOS, interfejs do innych jêzyków oraz interfejs do gniazdek.
-Interfejs X11 jest dostêpny poprzez CLX i Garnet.
+Interfejs użytkownika dostępny jest po niemiecku, angielsku, francusku
+i hiszpańsku. CLISP zawiera interpreter, kompilator, znaczny podzbiór
+CLOS, interfejs do innych języków oraz interfejs do gniazdek.
+Interfejs X11 jest dostępny poprzez CLX i Garnet.
+
+%description -l pt_BR.UTF-8
+Common Lisp é uma linguagem de programação de propósito geral de alto
+nível. CLISP é uma implementação do Common Lisp feita por Bruno
+Haible, da Universidade Karlsruhe, e Michael Stoll, da Universidade de
+Munique, ambas na Alemanha. O CLISP é quase totalmente compatível com
+o Common Lisp descrito pelo padrão ANSI CL. Além disso, CLISP é
+software livre, distribuído sob os termos da GNU GPL.
%prep
%setup -q
%patch0 -p1
+#%patch1 -p1
+
+# changing default -O to optflags causes memory fault on amd64
+# - so something is broken... code or compiler
+# -fno-strict-aliasing seems to fix crashes on amd64 but doesn't fix
+# random crashes on sparc (which occur with default CFLAGS)
+#%{__perl} -pi -e "s@' -O2?([^0])@' %{rpmcflags} -fno-strict-aliasing\$1@" src/makemake.in
%build
-./configure --prefix=%{_prefix}
+
+%ifarch ppc ppc64
+CFLAGS="%{rpmcflags} -DNO_GENERATIONAL_GC -DNO_MULTIMAP_FILE -DNO_SINGLEMAP"
+ulimit -s unlimited
+%endif
+
+CC="%{__cc}" \
+./configure \
+ --prefix=%{_prefix}
+
cd src
./makemake \
--prefix=%{_prefix} \
--with-readline \
--with-gettext \
--with-dynamic-ffi \
+ --fsstnd=redhat \
--with-module=wildcard \
- --with-module=regexp \
- --with-module=bindings/linuxlibc6 \
+ --with-module=bindings/glibc \
+ --with-module=clx/new-clx \
>Makefile
-%{__make} config.lisp
-%{__make}
-#make check
+%{__make} -j1 config.lisp \
+ TOPDIR=clisp
+%{__make} -j1 \
+ libdir=%{_libdir} \
+ TOPDIR=clisp
+
+%{?with_tests:%{__make} -j1 check}
%install
rm -rf $RPM_BUILD_ROOT
-cd src
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_docdir},%{_libdir},%{_mandir}}
-%{__make} install \
+
+%{__make} -j1 -C src install \
DESTDIR=$RPM_BUILD_ROOT \
+ libdir=%{_libdir} \
lispdocdir=%{_docdir}/%{name}-%{version} \
- mandir=%{_mandir}
-cd ..
-mkdir $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/modules
+ mandir=%{_mandir} \
+ TOPDIR=clisp
+
+install -d $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/modules
install modules/*/*.dvi $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/modules
+%find_lang %{name} --all-name
+
%clean
rm -rf $RPM_BUILD_ROOT
-%files
+%files -f %{name}.lang
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/clisp
-%doc %{_docdir}/%{name}-%{version}
+%doc %{_docdir}/%{name}-%{version}
%dir %{_libdir}/clisp
%dir %{_libdir}/clisp/base
%{_libdir}/clisp/base/*.[aho]
%{_libdir}/clisp/base/makevars
%{_libdir}/clisp/clisp-link
%{_libdir}/clisp/data
+%dir %{_libdir}/clisp/full
+%attr(755,root,root) %{_libdir}/clisp/full/lisp.run
%{_libdir}/clisp/full/*.[aho]
%{_libdir}/clisp/full/lispinit.mem
-%attr(755,root,root) %{_libdir}/clisp/full/lisp.run
%{_libdir}/clisp/full/makevars
%{_libdir}/clisp/linkkit
-%lang(de) %{_datadir}/locale/de/LC_MESSAGES/*
-%lang(en) %{_datadir}/locale/en/LC_MESSAGES/*
-%lang(es) %{_datadir}/locale/es/LC_MESSAGES/*
-%lang(fr) %{_datadir}/locale/fr/LC_MESSAGES/*
-%lang(nl) %{_datadir}/locale/nl/LC_MESSAGES/*
%{_mandir}/man[13]/*