1 |
%define bootstrap 0 |
%ifarch %{arm} aarch64 |
2 |
%define threads 1 |
%bcond_without bootstrap |
3 |
|
%else |
4 |
|
%bcond_with bootstrap |
5 |
|
%endif |
6 |
|
|
7 |
|
%bcond_without docs |
8 |
|
|
9 |
|
%define sbcl_shell /bin/bash |
10 |
|
|
11 |
|
%ifarch %{ix86} |
12 |
|
%define sbcl_arch x86 |
13 |
|
%endif |
14 |
|
|
15 |
|
%ifarch x86_64 |
16 |
|
%define sbcl_arch x86-64 |
17 |
|
%endif |
18 |
|
|
19 |
|
%ifarch %{arm} |
20 |
|
%define sbcl_arch arm |
21 |
|
%endif |
22 |
|
|
23 |
|
%ifarch aarch64 |
24 |
|
%define sbcl_arch arm64 |
25 |
|
%endif |
26 |
|
|
27 |
Name: sbcl |
Name: sbcl |
28 |
Version: 1.4.6 |
Version: 1.4.12 |
29 |
Release: %mkrel 3 |
Release: %mkrel 1 |
30 |
Summary: Steel Bank Common Lisp compiler and runtime system |
Summary: Steel Bank Common Lisp compiler and runtime system |
31 |
License: Public Domain and MIT and BSD with advertising |
License: Public Domain and MIT and BSD with advertising |
32 |
Group: Development/Other |
Group: Development/Other |
33 |
URL: http://sbcl.sourceforge.net/ |
URL: http://sbcl.sourceforge.net/ |
34 |
Source0: http://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/%{name}-%{version}-source.tar.bz2 |
Source0: http://downloads.sourceforge.net/sbcl/sbcl-%{version}-source.tar.bz2 |
35 |
Source10: customize-target-features.lisp |
Source1: http://downloads.sourceforge.net/sbcl/sbcl-%{version}-documentation-html.tar.bz2 |
36 |
Patch1: %{name}-1.0.45-default-%{name}-home.patch |
Patch1: sbcl-1.4.12-default-sbcl-home.patch |
37 |
Patch2: %{name}-1.1.14-personality.patch |
Patch2: sbcl-1.4.12-personality.patch |
38 |
Patch3: %{name}-1.1.14-optflags.patch |
Patch3: sbcl-1.4.12-optflags.patch |
39 |
Patch4: %{name}-0.9.17-LIB_DIR.patch |
Patch4: sbcl-1.4.12-LIB_DIR.patch |
40 |
# Allow override of contrib test failure(s) |
# Allow override of contrib test failure(s) |
41 |
Patch7: %{name}-1.1.14-permissive.patch |
Patch7: sbcl-1.1.14-permissive.patch |
42 |
|
|
43 |
Requires(post): /sbin/install-info |
## upstreamable patches |
44 |
Requires(preun):/sbin/install-info |
Patch50: sbcl-1.3.0-generate_version.patch |
45 |
|
|
46 |
|
# Modified from https://bugs.gentoo.org/468482 |
47 |
|
Patch100: sbcl-1.4.12-concurrency-test.patch |
48 |
|
|
49 |
|
BuildRequires: gcc |
50 |
|
BuildRequires: zlib-devel |
51 |
|
# %%check/tests |
52 |
|
BuildRequires: ed |
53 |
|
BuildRequires: hostname |
54 |
|
%if %{with docs} |
55 |
# doc generation |
# doc generation |
56 |
BuildRequires: ghostscript |
BuildRequires: ghostscript |
57 |
BuildRequires: gmp-devel |
BuildRequires: texinfo |
58 |
BuildRequires: texinfo |
BuildRequires: time |
59 |
BuildRequires: texlive |
%endif |
60 |
BuildRequires: time |
%if %{with bootstrap} |
|
BuildRequires: texinfo-tex |
|
|
%if %{bootstrap} |
|
61 |
BuildRequires: clisp |
BuildRequires: clisp |
62 |
%else |
%else |
63 |
BuildRequires: %{name} |
BuildRequires: %{name} |
72 |
%prep |
%prep |
73 |
%autosetup -p1 |
%autosetup -p1 |
74 |
|
|
75 |
%if %{threads} |
# fix permissions (some have eXecute bit set) |
76 |
install -m644 -p %{_sourcedir}/customize-target-features.lisp ./customize-target-features.lisp |
find . -name '*.c' | xargs chmod 644 |
77 |
%endif |
|
78 |
|
# set version.lisp-expr |
79 |
|
sed -i.rpmver -e "s|\"%{version}\"|\"%{version}-%{release}\"|" version.lisp-expr |
80 |
|
|
81 |
%build |
%build |
82 |
#setup SBCL_HOME, DEFAULT_SBCL_HOME and RPM_OPT_FLAGS |
|
83 |
#these variables are available thanks to patching |
export CFLAGS="%{optflags}" |
84 |
|
export LDFLAGS="%{ldflags}" |
85 |
|
|
86 |
export SBCL_HOME=%{_libdir}/%{name} |
export SBCL_HOME=%{_libdir}/%{name} |
87 |
export DEFAULT_SBCL_HOME=%{_libdir}/%{name} |
export DEFAULT_SBCL_HOME=%{_libdir}/%{name} |
88 |
export RPM_OPT_FLAGS=$(echo %optflags | sed -e "s/-fomit-frame-pointer//") |
%{?sbcl_arch:export SBCL_ARCH=%{sbcl_arch}} |
89 |
|
|
90 |
%if %{bootstrap} |
%{?sbcl_shell} \ |
91 |
sh make.sh "clisp" |
./make.sh \ |
92 |
%else |
--prefix=%{_prefix} \ |
93 |
sh make.sh "%{name}" |
--with-sb-core-compression \ |
94 |
|
%{?with_bootstrap:--xc-host=clisp} \ |
95 |
|
%nil |
96 |
|
|
97 |
|
# docs |
98 |
|
%if %{with docs} |
99 |
|
make -C doc/manual info |
100 |
|
|
101 |
|
# Handle pre-generated docs |
102 |
|
tar xvjf %{SOURCE1} |
103 |
|
cp -av %{name}-%{version}/doc/manual/* doc/manual/ |
104 |
%endif |
%endif |
105 |
|
|
|
%__make -C doc/manual asdf.texinfo info html |
|
|
|
|
106 |
%install |
%install |
107 |
unset SBCL_HOME |
unset SBCL_HOME |
108 |
export INSTALL_ROOT=%{buildroot}%{_prefix} |
export INSTALL_ROOT=%{buildroot}%{_prefix} |
109 |
export LIB_DIR=%{buildroot}%{_libdir} |
export LIB_DIR=%{buildroot}%{_libdir} |
110 |
sh install.sh |
%{?sbcl_shell} ./install.sh |
111 |
|
|
112 |
|
# handle docs in files section |
113 |
|
rm -rf %{buildroot}%{_docdir} |
114 |
|
|
|
if test %{_docdir} != %{_prefix}/share/doc ;then |
|
|
mkdir -p %{buildroot}%{_docdir} |
|
|
mv %{buildroot}%{_prefix}/share/doc/%{name} %{buildroot}%{_docdir}/ |
|
|
fi |
|
|
|
|
|
## Unpackaged files |
|
|
rm -f %{buildroot}%{_infodir}/dir |
|
|
# CVS crud |
|
|
find %{buildroot} -name CVS -type d | xargs rm -rf |
|
|
find %{buildroot} -name .cvsignore | xargs rm -f |
|
115 |
# 'test-passed' files from %%check |
# 'test-passed' files from %%check |
116 |
find %{buildroot} -name 'test-passed' | xargs rm -vf |
find %{buildroot} -name 'test-passed' | xargs rm -vf |
117 |
|
|
|
%post |
|
|
for info in %{name}.info.* %{name}.info-1.* %{name}.info-2.* asdf.info.* |
|
|
do |
|
|
%_install_info $info |
|
|
done |
|
|
|
|
|
%postun |
|
|
for info in %{name}.info.* %{name}.info-1.* %{name}.info-2.* asdf.info.* |
|
|
do |
|
|
%_remove_install_info $info |
|
|
done |
|
|
|
|
118 |
%files |
%files |
119 |
%doc %{_docdir}/%{name} |
%license COPYING |
120 |
|
%doc BUGS CREDITS NEWS |
121 |
%{_bindir}/* |
%{_bindir}/* |
122 |
%{_libdir}/%{name}/* |
%dir %{_libdir}/%{name}/ |
123 |
%define sb_prefix %{_libdir}/%{name}/contrib |
%{_libdir}/%{name}/sbcl.core |
124 |
%{sb_prefix}/asdf.* |
%{_libdir}/%{name}/sbcl.mk |
125 |
%{sb_prefix}/sb-aclrepl.* |
%dir %{_libdir}/%{name}/contrib |
126 |
%{sb_prefix}/sb-bsd-sockets.* |
%{_libdir}/%{name}/contrib/asdf.* |
127 |
%{sb_prefix}/sb-cltl2.* |
%{_libdir}/%{name}/contrib/sb-aclrepl.* |
128 |
%{sb_prefix}/sb-concurrency.* |
%{_libdir}/%{name}/contrib/sb-bsd-sockets.* |
129 |
%{sb_prefix}/sb-cover.* |
%{_libdir}/%{name}/contrib/sb-capstone.* |
130 |
%{sb_prefix}/sb-executable.* |
%{_libdir}/%{name}/contrib/sb-cltl2.* |
131 |
%{sb_prefix}/sb-gmp.* |
%{_libdir}/%{name}/contrib/sb-concurrency.* |
132 |
%{sb_prefix}/sb-grovel.* |
%{_libdir}/%{name}/contrib/sb-cover.* |
133 |
%{sb_prefix}/sb-introspect.* |
%{_libdir}/%{name}/contrib/sb-executable.* |
134 |
%{sb_prefix}/sb-md5.* |
%{_libdir}/%{name}/contrib/sb-gmp.* |
135 |
%{sb_prefix}/sb-posix.* |
%{_libdir}/%{name}/contrib/sb-grovel.* |
136 |
%{sb_prefix}/sb-queue.* |
%{_libdir}/%{name}/contrib/sb-introspect.* |
137 |
%{sb_prefix}/sb-rotate-byte.* |
%{_libdir}/%{name}/contrib/sb-md5.* |
138 |
%{sb_prefix}/sb-rt.* |
%{_libdir}/%{name}/contrib/sb-mpfr.* |
139 |
%{sb_prefix}/sb-simple-streams.* |
%{_libdir}/%{name}/contrib/sb-posix.* |
140 |
%{sb_prefix}/sb-sprof.* |
%{_libdir}/%{name}/contrib/sb-queue.* |
141 |
%{_infodir}/* |
%{_libdir}/%{name}/contrib/sb-rotate-byte.* |
142 |
|
%{_libdir}/%{name}/contrib/sb-rt.* |
143 |
|
%{_libdir}/%{name}/contrib/sb-simple-streams.* |
144 |
|
%{_libdir}/%{name}/contrib/sb-sprof.* |
145 |
|
%{_libdir}/%{name}/contrib/uiop.* |
146 |
%{_mandir}/man?/* |
%{_mandir}/man?/* |
147 |
|
%if %{with docs} |
148 |
|
%doc doc/manual/sbcl.html |
149 |
|
%doc doc/manual/asdf.html |
150 |
|
%{_infodir}/asdf.info* |
151 |
|
%{_infodir}/sbcl.info* |
152 |
|
%endif |