%bcond_without doc # build without documentation
%bcond_with clisp # build using clisp instead of sbcl
#
+# To build with an unpackaged Common Lisp implementation,
+# pass --define bootstrap_cl /path/to/lisp/binary to builder.
+#
Summary: The Steel Bank Common Lisp development environment
-Summary(pl): ¦rodowisko programowania Steel Bank Common Lisp
+Summary(pl.UTF-8): Środowisko programowania Steel Bank Common Lisp
Name: sbcl
-Version: 0.9.10
-Release: 2
+Version: 1.1.6
+Release: 0.1
License: MIT
Group: Development/Languages
-Source0: http://dl.sourceforge.net/sbcl/%{name}-%{version}-source.tar.bz2
-# Source0-md5: 58678d7081f32bdcd174c5233efba4f3
-Patch0: %{name}-home.patch
+Source0: http://download.sourceforge.net/sbcl/%{name}-%{version}-source.tar.bz2
+# Source0-md5: 5daeabb9eaf7197006c4402bfc552d72
+Source10: http://download.sourceforge.net/sbcl/sbcl-1.0.58-x86-linux-binary.tar.bz2
+# Source10-md5: 28104cfb0ee2ac67000c77b9518377e8
+Source11: http://download.sourceforge.net/sbcl/sbcl-1.0.58-x86-64-linux-binary.tar.bz2
+# Source11-md5: 3d02edfdc851904d1d8dafeec20d1d06
Patch1: %{name}-threads.patch
URL: http://sbcl.sourceforge.net/
-%if %{with clisp}
-BuildRequires: clisp
-%else
-BuildRequires: sbcl
-%endif
+%{?with_clisp:BuildRequires: clisp}
%if %{with doc}
BuildRequires: tetex-dvips
BuildRequires: texinfo-texi2dvi
for Common Lisp based on CMUCL. It includes an integrated native compiler,
interpreter, and debugger.
-%description -l pl
-Steel Bank Common Lisp (SBCL) to ¶rodowisko programistyczne Open
+%description -l pl.UTF-8
+Steel Bank Common Lisp (SBCL) to środowisko programistyczne Open
Source dla Common Lispa oparte na CMUCL. Zawiera zintegrowany natywny
kompilator, interpreter i debugger.
%package doc-info
Summary: The Steel Bank Common Lisp documentation (info)
-Summary(pl): Dokumentacja Steel Bank Common Lisp (info)
+Summary(pl.UTF-8): Dokumentacja Steel Bank Common Lisp (info)
Group: Development/Languages
%description doc-info
Documentation of Steel Bank Common Lisp (SBCL) in info format.
-%description doc-info -l pl
+%description doc-info -l pl.UTF-8
Dokumentacja Steel Bank Common Lisp (SBCL) w formacie info.
%package doc-html
Summary: The Steel Bank Common Lisp documentation (HTML)
-Summary(pl): Dokumentacja Steel Bank Common Lisp (HTML)
+Summary(pl.UTF-8): Dokumentacja Steel Bank Common Lisp (HTML)
Group: Development/Languages
%description doc-html
Documentation of Steel Bank Common Lisp (SBCL) in HTML format.
-%description doc-html -l pl
+%description doc-html -l pl.UTF-8
Dokumentacja Steel Bank Common Lisp (SBCL) w formacie HTML.
%package doc-pdf
Summary: The Steel Bank Common Lisp documentation (PDF)
-Summary(pl): Dokumentacja Steel Bank Common Lisp (PDF)
+Summary(pl.UTF-8): Dokumentacja Steel Bank Common Lisp (PDF)
Group: Development/Languages
%description doc-pdf
Documentation of Steel Bank Common Lisp (SBCL) in PDF format.
-%description doc-pdf -l pl
+%description doc-pdf -l pl.UTF-8
Dokumentacja Steel Bank Common Lisp (SBCL) w formacie PDF.
%prep
-%setup -q
-%patch0 -p1
+%ifarch %{ix86}
+%setup -q -a 10
+%endif
+%ifarch %{x8664}
+%setup -q -a 11
+%endif
%ifarch %{ix86} %{x8664}
%patch1 -p1
%endif
+mkdir sbcl-bootstrap
+cd sbcl-*-linux
+INSTALL_ROOT=`pwd`/../sbcl-bootstrap sh ./install.sh
+cd -
+
+# clean.sh is so stupid it removed sbcl-bootstrap contents
+%{__mv} clean.sh clean.sh.orig
+echo "#!/bin/sh" >clean.sh
+chmod 755 clean.sh
+
%if %{with clisp}
%define bootstrap_cl "clisp"
-%else
-%define bootstrap_cl "sbcl --disable-debugger"
%endif
%build
CFLAGS="%{rpmcflags}"
CC="%{__cc}"
export GNUMAKE CC CFLAGS
-./make.sh %{bootstrap_cl}
+export SBCL_HOME=`pwd`/sbcl-bootstrap/lib/sbcl
+export PATH=`pwd`/sbcl-bootstrap/bin:${PATH}
+./make.sh \
+ --prefix=%{_prefix} \
+ %{?bootstrap_cl}
+
%if %{with doc}
make -C doc/manual
%endif
%install
rm -rf $RPM_BUILD_ROOT
-unset SBCL_HOME
-BUILD_ROOT=$RPM_BUILD_ROOT INSTALL_ROOT=%{_prefix} \
-MAN_DIR=%{_mandir} INFO_DIR=%{_infodir} DOC_DIR=%{_docdir}/%{name}-%{version} \
-sh ./install.sh
-cp README PRINCIPLES TODO $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_mandir},%{_infodir}} \
+ $RPM_BUILD_ROOT/etc/env.d
+
+env -u SBCL_HOME INSTALL_ROOT=`pwd`/_install %{_buildshell} ./install.sh
+
+%{__mv} _install/lib/sbcl $RPM_BUILD_ROOT%{_libdir}/%{name}
+%{__mv} _install/bin/sbcl $RPM_BUILD_ROOT%{_bindir}/%{name}
+%{__mv} _install/share/man/* $RPM_BUILD_ROOT%{_mandir}
+%if %{with doc}
+%{__mv} _install/share/info/*.info* $RPM_BUILD_ROOT%{_infodir}
+%endif
+
+echo SBCL_HOME=%{_libdir}/%{name} > $RPM_BUILD_ROOT/etc/env.d/SBCL_HOME
%clean
rm -rf $RPM_BUILD_ROOT
-%post doc-info
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post
+%env_update
+
+%postun
+%env_update
+
+%if %{with doc}
+%post doc-info -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
%postun doc-info
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%endif
%files
%defattr(644,root,root,755)
-%attr (755,root,root) %{_bindir}/sbcl
-%{_libdir}/sbcl
+%doc _install/share/doc/sbcl/[A-Z]*
+%attr (755,root,root) %{_bindir}/%{name}
+%{_libdir}/%{name}
%{_mandir}/man1/*
-%dir %{_docdir}/%{name}-%{version}
-%{_docdir}/%{name}-%{version}/BUGS
-%{_docdir}/%{name}-%{version}/COPYING
-%{_docdir}/%{name}-%{version}/CREDITS
-%{_docdir}/%{name}-%{version}/NEWS
-%{_docdir}/%{name}-%{version}/PRINCIPLES
-%{_docdir}/%{name}-%{version}/README
-%{_docdir}/%{name}-%{version}/SUPPORT
-%{_docdir}/%{name}-%{version}/TODO
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/*
%if %{with doc}
%files doc-info
%files doc-html
%defattr(644,root,root,755)
-%{_docdir}/%{name}-%{version}/html
+%doc _install/share/doc/sbcl/*.html
%files doc-pdf
%defattr(644,root,root,755)
-%{_docdir}/%{name}-%{version}/*.pdf
+%doc _install/share/doc/sbcl/*.pdf
%endif