# The package notes feature leads to failed builds for everything that depends # on ECL. Turn it off until somebody figures out how to make it work without # polluting linker flags. %undefine _package_note_file Name: ecl Version: 24.5.10 Release: %autorelease Summary: Embeddable Common-Lisp # The project as a whole is LGPL-2.1-or-later. Other licenses in play: # BSD-2-Clause: # - contrib/ecl-curl # MIT: # - contrib/asdf # - contrib/cl-simd # - contrib/quicklisp # X11: # - contrib/deflate # HPND: # - contrib/rt # LOOP: # - src/lsp/loop.lsp # LicenseRef-Fedora-Public-Domain: # - src/lsp/cmuutil.lsp # - src/lsp/format.lsp # - src/lsp/pprint.lsp License: LGPL-2.1-or-later AND BSD-2-Clause AND MIT AND X11 AND HPND AND LOOP AND LicenseRef-Fedora-Public-Domain URL: https://common-lisp.net/project/ecl/ VCS: https://gitlab.com/embeddable-common-lisp/ecl/ Source0: %{url}/static/files/release/%{name}-%{version}.tgz Source1: %{name}.desktop # A modified version of src/util/ecl.svg with extra whitespace removed. The # extra whitespace made the icon appear very small and shoved into a corner. Source2: %{name}.svg # Metainfo for ECL Source3: net.common-lisp.ecl.metainfo.xml # This patch was sent upstream on 4 Feb 2012. It fixes a few warnings # from the C compiler that indicate situations that might be dangerous at # runtime. Patch0: %{name}-24.5.10-warnings.patch # GCC does not implement support for #pragma STDC FENV_ACCESS Patch1: %{name}-23.9.9-fenv-access.patch # Avoid an infinite loop if there is a write error on stderr. See # build/pkgs/ecl/patches/write_error.patch in the sagemath distribution. Patch2: %{name}-20.4.24-write-error.patch # Fix bogus test compromised by LTO. Patch3: %{name}-20.4.24-configure.patch # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} BuildRequires: desktop-file-utils BuildRequires: docbook5-schemas BuildRequires: docbook5-style-xsl BuildRequires: emacs-common BuildRequires: gcc BuildRequires: gmp-devel BuildRequires: libappstream-glib BuildRequires: make BuildRequires: pkgconfig BuildRequires: pkgconfig(atomic_ops) BuildRequires: pkgconfig(bdw-gc) BuildRequires: pkgconfig(libffi) BuildRequires: pkgconfig(x11) BuildRequires: texinfo BuildRequires: xmlto Requires: gcc Requires: libgcc%{?_isa} Requires: glibc-devel%{?_isa} Requires: gc-devel%{?_isa} Requires: gmp-devel%{?_isa} Requires: libatomic_ops-devel%{?_isa} Requires: libffi-devel%{?_isa} Requires: hicolor-icon-theme %description ECL (Embeddable Common Lisp) is an implementation of the Common Lisp language as defined by the ANSI X3J13 specification. ECL features a bytecode compiler and interpreter, the ability to build standalone executables and libraries, and extensions such as ASDF, sockets, and Gray streams. # no -devel package for header files is split off # since they are required by the main package %prep %autosetup -p0 # Remove spurious executable bits find src/{c,h} -type f -perm /0111 -exec chmod a-x {} + # Don't give the library a useless rpath sed -i "/ECL_LDRPATH='-Wl,--rpath,~A'/d" src/configure # Adapt to texinfo changes sed -i 's/mv ecl/&_html/' src/doc/manual/Makefile %build %configure --enable-manual=html --with-sse=auto \ CFLAGS="%{build_cflags} -std=gnu17 -Wno-unused -Wno-return-type -Wno-unknown-pragmas" # Parallel build does NOT work. Do NOT use _smp_mflags. make %install %make_install # Remove installed files that are in the wrong place rm -fr %{buildroot}%{_docdir} rm -f %{buildroot}%{_libdir}/Copyright rm -f %{buildroot}%{_libdir}/LGPL # Install the man pages mkdir -p %{buildroot}%{_mandir}/man1 sed -e "s|@bindir@|%{_bindir}|" src/doc/ecl.man.in > \ %{buildroot}%{_mandir}/man1/ecl.1 cp -p src/doc/ecl-config.man.in %{buildroot}%{_mandir}/man1/ecl-config.1 # Add missing executable bits chmod a+x %{buildroot}%{_libdir}/ecl-%{version}/dpp chmod a+x %{buildroot}%{_libdir}/ecl-%{version}/ecl_min # Install the desktop file desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1} # Install the desktop icon mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps cp -p %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/scalable/apps # Install the AppData file mkdir -p %{buildroot}%{_metainfodir} install -pm 644 %{SOURCE3} %{buildroot}%{_metainfodir} appstream-util validate-relax --nonet \ %{buildroot}%{_metainfodir}/net.common-lisp.ecl.metainfo.xml %files %{_bindir}/ecl %{_bindir}/ecl-config %{_datadir}/applications/ecl.desktop %{_datadir}/icons/hicolor/scalable/apps/ecl.svg %{_metainfodir}/net.common-lisp.ecl.metainfo.xml %{_libdir}/ecl* %{_libdir}/libecl.so.24* %{_libdir}/libecl.so %{_includedir}/ecl/ %{_mandir}/man1/ecl.1* %{_mandir}/man1/ecl-config.1* %doc examples CHANGELOG README.md build/doc/manual/html %doc src/doc/amop.txt src/doc/types-and-classes %license COPYING LICENSE %changelog %autochangelog