File lem.spec of Package lem

Name:           lem
Version:        1.9.2
Release:        0
Summary:        Common Lisp editor/IDE with high expansibility
License:        MIT
Group:          Productivity/Text/Editors
URL:            https://github.com/lem-project/lem
Source0:        lem-%{version}.tar.gz
Source1:        asdf-dependencies.tar
Source2:        https://beta.quicklisp.org/quickstart/quicklisp.tar
Source3:        https://beta.quicklisp.org/quickstart/setup.lisp
Source4:        https://beta.quicklisp.org/quickstart/asdf.lisp
Requires:       libncurses5
BuildRequires:  automake
BuildRequires:  autoconf
BuildRequires:  libtool
BuildRequires:  ncurses5-devel
BuildRequires:  sbcl
BuildRequires:  gcc-c++
BuildRequires:  roswell

%description
Lem is the editor/IDE well-tuned for Common Lisp.

%define roswell_home ~/.roswell
%define ql_home %{roswell_home}/lisp/quicklisp
%define ql_local_projects %{roswell_home}/local-projects

%prep
%setup -q
ros sbcl-bin.version=system setup
mkdir -p %{ql_home}/{dists/,local-init/} %{ql_local_projects}
tar -C %{ql_home} -xf %{SOURCE2}
cp %{SOURCE3} %{SOURCE4} %{ql_home}
echo '(roswell:include "patch-quicklisp")' > %{ql_home}/local-init/roswell.lisp
tar -C %{ql_local_projects} -xf %{SOURCE1}
find %{ql_local_projects} -name '*.tgz' -exec tar -C %{ql_local_projects} -xzf {} \;
# libncurses6 causes error "Trying to access undefined foreign variable "COLORS"."
find %{ql_local_projects} -name curses-bindings.lisp \
  -exec sed -r 's/(libncursesw?\.so)\.6/\1.5/g' -i {} \;
# https://github.com/lem-project/lem/issues/330
sed -re '/push bin cffi:.foreign-library-directories./d' \
    -e 's!push lib (cffi:.foreign-library-directories.)!setf \1 (list #P"%{_libdir}/lem/")!' \
    -i scripts/build/set-foreign-path.lisp

%build
ASYNCPROCESSDIR=$(find %{ql_local_projects} -type d -name "async-process-*")
env -C ${ASYNCPROCESSDIR} sh bootstrap
sh bootstrap
%configure
make

%install
%make_install
mkdir %{buildroot}%{_libdir}/lem/
mv %{buildroot}%{_libdir}/{,lem/}libasyncprocess.so

%files
%defattr(-,root,root)
%{_bindir}/lem
%{_bindir}/lem-ncurses
%{_libdir}/lem/
%{_libdir}/lem/libasyncprocess.so
%{_datadir}/lem/

%changelog
openSUSE Build Service is sponsored by