File ecl.spec of Package ecl
#
# spec file for package ecl
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global major 24
%global minor 5
%global micro 10
Name: ecl
Version: %{major}.%{minor}.%{micro}
Release: 0
Summary: Embeddable Common-Lisp
# "ECL is LGPL-2.1+.",
# see https://common-lisp.net/project/ecl/posts/ECL-license.html
License: LGPL-2.1-or-later
Group: Development/Languages/Other
URL: https://common-lisp.net/project/%{name}/
Source0: %{url}/static/files/release/%{name}-%{version}.tgz
Source1: %{name}.rpmlintrc
BuildRequires: gmp-devel
BuildRequires: info
BuildRequires: m4
BuildRequires: makeinfo
BuildRequires: pkgconfig
BuildRequires: texinfo
BuildRequires: texlive-plain
BuildRequires: texlive-texinfo
BuildRequires: pkgconfig(atomic_ops)
BuildRequires: pkgconfig(libffi)
Requires: %{name}-devel
Requires: gmp-devel
Requires: pkgconfig(atomic_ops)
Requires: pkgconfig(libffi)
%description
ECL (Embeddable Common-Lisp) is an interpreter of the Common-Lisp language as
described in the X3J13 Ansi specification, featuring CLOS (Common-Lisp Object
System), conditions, loops, etc, plus a translator to C, which can produce
standalone executables.
ECL supports the operating systems Linux, FreeBSD, NetBSD, OpenBSD, OS X,
Solaris and Windows, running on top of the Intel, Sparc, Alpha, PowerPC and ARM
processors.
%package -n lib%{name}%{major}_%{minor}
Summary: Embeddable Common-Lisp -- shared library
Group: System/Libraries
%description -n lib%{name}%{major}_%{minor}
This package contains the ECL shared library.
%package devel
Summary: Embeddable Common-Lisp -- development files
Group: Development/Libraries/C and C++
Requires: lib%{name}%{major}_%{minor} = %{version}
%if 0%{?suse_version}
Requires(post): %{install_info_prereq}
Requires(preun): %{install_info_prereq}
%endif
%description devel
ECL (Embeddable Common-Lisp) is an interpreter of the Common-Lisp language as
described in the X3J13 Ansi specification, featuring CLOS (Common-Lisp Object
System), conditions, loops, etc, plus a translator to C, which can produce
standalone executables.
ECL supports the operating systems Linux, FreeBSD, NetBSD, OpenBSD, OS X,
Solaris and Windows, running on top of the Intel, Sparc, Alpha, PowerPC and ARM
processors.
This package contains development files for ECL.
%prep
%autosetup
%build
export TEX='tex -recorder'
export TEXI2DVI_USE_RECORDER=yes
%if 0%{?suse_version} >= 1550
# disable LTO on Tumbleweed as it breaks at least 'ecl -compile'
%define _lto_cflags %{nil}
%endif
%if 0%{?suse_version} > 1600
# needed for GCC 15
CFLAGS="-std=gnu17" \
%endif
%configure \
--enable-soname \
--disable-rpath \
--enable-gmp \
--enable-unicode \
--enable-threads \
--enable-libatomic=system \
--with-dffi \
--with-defsystem \
CFLAGS="$CFLAGS %{optflags} -Wno-unused -Wno-return-type -Wno-unknown-pragmas" \
%{nil}
%make_build
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
sed -i -e '/@macro seealso{node}/,+4d' src/doc/manual/macros.txi
sed -i -e '/@pxref{si_safe_eval}/ d' src/doc/manual/standards/evaluation.txi
%endif
%make_build -C src/doc/manual pdf
%install
%make_install
rm -f %{buildroot}%{_libdir}/%{name}-%{version}/{TAGS,*.a}
rm -f %{buildroot}%{_infodir}/dir
%post -n lib%{name}%{major}_%{minor} -p /sbin/ldconfig
%postun -n lib%{name}%{major}_%{minor} -p /sbin/ldconfig
%post
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%files
%license COPYING LICENSE
%{_bindir}/%{name}
%{_libdir}/%{name}-%{version}/
%{_mandir}/man1/%{name}.1%{?ext_man}
%{_infodir}/*
%doc README.md CHANGELOG src/doc/manual/manual.pdf
%files -n lib%{name}%{major}_%{minor}
%license COPYING LICENSE
%{_libdir}/lib%{name}.so.*
%files devel
%license COPYING LICENSE
%{_bindir}/%{name}-config
%{_libdir}/lib%{name}.so
%{_includedir}/%{name}/
%{_mandir}/man1/%{name}-config.1%{?ext_man}
%changelog