Summary: Symbolic Computation Program Name: maxima Version: 5.48.1 Release: 1%{?dist} License: GPL-2.0-or-later URL: https://maxima.sourceforge.io Source: https://downloads.sourceforge.net/sourceforge/maxima/maxima-%{version}%{?beta}.tar.gz # Patches # fix matrix exponentiation (from Arch) # https://gitlab.archlinux.org/archlinux/packaging/packages/maxima/-/raw/main/matrixexp.patch Patch1: matrixexp.patch # Use GMP arithmetic with sbcl (from Arch/Void) # https://gitlab.archlinux.org/archlinux/packaging/packages/maxima/-/raw/main/maxima-sbcl-gmp.patch Patch2: maxima-sbcl-gmp.patch # Build only on arches with sbcl available in Fedora ExclusiveArch: x86_64 aarch64 ppc64le # Maxima version macro used in paths %global maxima_ver %{version}%{?beta} # Info pages must remain uncompressed (Maxima help needs that) %global __spec_install_post %{nil} # debuginfo.list ends up empty; disable debug_package generation %global debug_package %{nil} # workaround debug-id conflicts (with sbcl) %global _build_id_links none # Tooling BuildRequires: make BuildRequires: desktop-file-utils BuildRequires: pkgconfig(bash-completion) %global bash_completionsdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null || echo '/etc/bash_completion.d') BuildRequires: perl-interpreter BuildRequires: perl(Getopt::Long) BuildRequires: python3 BuildRequires: python3-devel BuildRequires: %{py3_dist vtk} BuildRequires: recode BuildRequires: texinfo-tex BuildRequires: tex(latex) BuildRequires: tex(fullpage.sty) BuildRequires: emacs # SBCL toolchain BuildRequires: sbcl BuildRequires: gmp-devel # Xmaxima (Tk) BuildRequires: tk >= 1:9.0 # For tests BuildRequires: gnuplot # Runtime deps Requires: %{name}-runtime-sbcl = %{version}-%{release} Requires: gnuplot Requires: rlwrap # Emacs site-start (byte-compiled at build time) Requires: emacs-filesystem Source1: maxima.png Source6: maxima-modes.el # Docs (kept like Fedora does) Source10: https://www.math.u-szeged.hu/~kovzol/SzAAMT-2003/macref.pdf Source11: http://maxima.sourceforge.net/docs/maximabook/maximabook-19-Sept-2004.pdf %description Maxima is a full symbolic computation program. It is full featured doing symbolic manipulation of polynomials, matrices, rational functions, integration, graphing, bigfloats, etc. Maxima is based on the original Macsyma developed at MIT in the 1970's. %package gui Summary: Tcl/Tk GUI interface for %{name} Requires: %{name} = %{version}-%{release} Obsoletes: %{name}-xmaxima < %{version}-%{release} Requires: tk >= 1:9.0 Requires: xdg-utils %description gui Tcl/Tk GUI interface for %{name} (xmaxima). %package src Summary: %{name} lisp source code Requires: %{name} = %{version}-%{release} %description src %{name} lisp source code. %package runtime-sbcl Summary: Maxima compiled with SBCL Provides: %{name}-runtime = %{version}-%{release} Obsoletes: maxima-exec-sbcl < %{version}-%{release} Requires: %{name} = %{version}-%{release} # when built without --enable-sbcl-exec, require same sbcl; we use exec build, so no pin %description runtime-sbcl Maxima compiled with Steel Bank Common Lisp (SBCL). %prep %autosetup -n %{name}-%{version}%{?beta} -p1 # Tk 9.0 sed -i -E 's/(package require Tk) 8\.6-/\1 9.0/' interfaces/xmaxima/Tkmaxima/Header.tcl.in sed -i -E 's/"~\/sdfplot\.ps"/[file tildeexpand "~\/sdfplot.ps"]/' interfaces/xmaxima/Tkmaxima/Printops.tcl # Extra docs copied like Fedora does install -p -m644 %{SOURCE10} . install -D -p -m644 %{SOURCE11} doc/maximabook/maxima.pdf # Minor fixes in shipped files sed -i -e 's|@ARCH@|%{_target_cpu}|' src/maxima.in sed -i -e 's:/usr/local/info:/usr/share/info:' interfaces/emacs/emaxima/maxima.el sed -i -E 's/(defcustom\s+maxima-info-index-file\s+)(\S+)/\1"maxima.info-16"/' interfaces/emacs/emaxima/maxima.el %build %configure \ --with-default-lisp=sbcl \ --enable-sbcl-exec \ --disable-clisp \ --disable-cmucl \ --disable-gcl \ --disable-ecl \ --enable-lang-es --enable-lang-es-utf8 \ --enable-lang-pt --enable-lang-pt-utf8 \ --enable-lang-pt_BR --enable-lang-pt_BR-utf8 # avoid re-running makeinfo/tex touch doc/info/maxima.info \ share/contrib/maxima-odesolve/kovacicODE.info %make_build %install %make_install # Ensure .desktop is installed (some tarballs don't install it) if [ -f interfaces/xmaxima/net.sourceforge.maxima.xmaxima.desktop ]; then install -Dpm644 interfaces/xmaxima/net.sourceforge.maxima.xmaxima.desktop \ %{buildroot}%{_datadir}/applications/net.sourceforge.maxima.xmaxima.desktop elif [ -f interfaces/xmaxima/xmaxima.desktop ]; then install -Dpm644 interfaces/xmaxima/xmaxima.desktop \ %{buildroot}%{_datadir}/applications/net.sourceforge.maxima.xmaxima.desktop else cat > net.sourceforge.maxima.xmaxima.desktop <<'EOF' [Desktop Entry] Type=Application Name=XMaxima Comment=Tcl/Tk interface for Maxima Exec=xmaxima Icon=maxima Categories=Education;Science;Math; Terminal=false EOF install -Dpm644 net.sourceforge.maxima.xmaxima.desktop \ %{buildroot}%{_datadir}/applications/net.sourceforge.maxima.xmaxima.desktop fi # remove upstream's extra desktop file to avoid "unpackaged" rm -f %{buildroot}%{_datadir}/applications/Xmaxima.desktop # app icon (ensure we ship one in hicolor too) install -p -D -m644 %{SOURCE1} %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/maxima.png # drop upstream icons in /usr/share/icons to avoid "unpackaged" rm -f %{buildroot}%{_datadir}/icons/xmaxima.png rm -f %{buildroot}%{_datadir}/icons/xmaxima.svg rm -f %{buildroot}%{_datadir}/icons/text-x-maxima-out.svg rm -f %{buildroot}%{_datadir}/icons/text-x-maximasession.svg # emacs site-start install -D -m644 -p %{SOURCE6} %{buildroot}%{_emacs_sitelispdir}/site_start.d/maxima-modes.el for file in %{buildroot}%{_emacs_sitelispdir}/{,site_start.d/}*.el ; do %{_emacs_bytecompile} "${file}" || : done # оставляем только .el, чтобы не было дубликатов rm -f %{buildroot}%{_emacs_sitelispdir}/site_start.d/maxima-modes.elc # emaxima LaTeX style (ghost link) — make relative symlink %global texmf %{_datadir}/texmf install -d %{buildroot}%{texmf}/tex/latex/ ln -sfr --relative \ %{buildroot}%{_datadir}/maxima/%{maxima_ver}/emacs \ %{buildroot}%{texmf}/tex/latex/emaxima # clean up info dir file rm -f %{buildroot}%{_infodir}/dir # drop bulky docs not packaged (like Fedora) rm -rf %{buildroot}%{_datadir}/maxima/%{maxima_ver}/doc/{contributors,implementation,misc,maximabook,EMaximaIntro.ps} # help debuginfo touch debugfiles.list %check desktop-file-validate %{buildroot}%{_datadir}/applications/net.sourceforge.maxima.xmaxima.desktop || : %triggerin -- tetex-latex,texlive-latex if [ -d %{texmf}/tex/latex ]; then rm -rf %{texmf}/tex/latex/emaxima || : ln -sf %{_datadir}/maxima/%{maxima_ver}/emacs %{texmf}/tex/latex/emaxima || : %{_bindir}/texhash 2>/dev/null || : fi %triggerun -- tetex-latex,texlive-latex if [ $2 -eq 0 ]; then rm -f %{texmf}/tex/latex/emaxima || : fi %files %license COPYING %doc AUTHORS ChangeLog README README-lisps.md %doc doc/implementation/ %doc doc/maximabook/maxima.pdf %{_bindir}/maxima %{_bindir}/rmaxima %dir %{_datadir}/maxima %dir %{_datadir}/maxima/%{maxima_ver} %{_datadir}/maxima/%{maxima_ver}/[a-c,f-r,t-w,y-z,A-Z]* %{_datadir}/maxima/%{maxima_ver}/demo/ %dir %{_datadir}/maxima/%{maxima_ver}/doc/ %dir %{_datadir}/maxima/%{maxima_ver}/doc/html/ %{_datadir}/maxima/%{maxima_ver}/doc/html/figures/ %doc %lang(en) %{_datadir}/maxima/%{maxima_ver}/doc/html/*.h* %doc %{_datadir}/maxima/%{maxima_ver}/doc/html/manual.css %doc %lang(en) %{_datadir}/maxima/%{maxima_ver}/doc/share/ %doc %lang(es) %{_datadir}/maxima/%{maxima_ver}/doc/html/es/ %doc %lang(pt) %{_datadir}/maxima/%{maxima_ver}/doc/html/pt/ %doc %lang(pt_BR) %{_datadir}/maxima/%{maxima_ver}/doc/html/pt_BR/ %{_datadir}/maxima/%{maxima_ver}/share/ %{_datadir}/mime/packages/x-mac.xml %{_datadir}/mime/packages/x-maxima-out.xml %{bash_completionsdir}/*maxima %dir %{_libdir}/maxima/ %dir %{_libdir}/maxima/%{maxima_ver}/ %{_libexecdir}/maxima %{_infodir}/imaxima* %{_infodir}/maxima* %{_infodir}/abs_integrate.info* %{_infodir}/drawutils.info* %{_infodir}/guess.info* %{_infodir}/kovacicODE.info* %{_infodir}/logic.info* %{_infodir}/mathml.info* %{_infodir}/nelder_mead.info %{_infodir}/raddenest.info* %{_infodir}/symplectic_ode.info %lang(es) %{_infodir}/es* %lang(pt) %{_infodir}/pt/ %lang(pt_BR) %{_infodir}/pt_BR* %{_mandir}/man1/maxima.* %{_mandir}/*/man1/maxima.* %ghost %{texmf}/tex/latex/emaxima %{_emacs_sitelispdir}/* %exclude %{_emacs_sitelispdir}/site_start.d/* %{_emacs_sitelispdir}/site_start.d/maxima-modes.el %files src %{_datadir}/maxima/%{maxima_ver}/src/ %files gui %{_bindir}/xmaxima %{_datadir}/maxima/%{maxima_ver}/xmaxima/ %{_datadir}/applications/net.sourceforge.maxima.xmaxima.desktop %{_metainfodir}/net.sourceforge.maxima.xmaxima.appdata.xml %{_datadir}/icons/hicolor/32x32/apps/maxima.png %{_infodir}/xmaxima* %files runtime-sbcl %{_libdir}/maxima/%{maxima_ver}/binary-sbcl %changelog * Mon Oct 20 2025 Ilia Gradina - 5.48.1-1 - Update to 5.48.1 with sbcl 2.5.9 - Fedora 42/43+: SBCL-only build, Tcl/Tk9 support, matrixexp + GMP patches, cleanup * Sat May 17 2025 Ilia Gradina - 5.47.0-13 - Rebuild with new sbcl version 2.5.4 * Fri Apr 11 2025 Ilia Gradina - 5.47.0-12 - Rebuild with new sbcl version 2.5.3 * Sun Oct 27 2024 Ilia Gradina - 5.47.0-11 - Rebuild with new sbcl version 2.4.9 * Wed Jul 17 2024 Ilia Gradina - 5.47.0-10 - Rebuild with new sbcl version 2.4.6 * Thu Jun 6 2024 Ilia Gradina - 5.47.0-9 - Rebuild with new sbcl version 2.4.5 * Mon May 6 2024 Ilia Gradina - 5.47.0-8 - Rebuild for new sbcl version 2.4.4 * Tue Apr 23 2024 Ilia Gradina - 5.47.0-7 - Rebuild for new sbcl version 2.4.3 * Sat Mar 9 2024 Ilia Gradina - 5.47.0-6 - Rebuild for new sbcl version 2.4.2 - build only for sbcl * Wed Jan 31 2024 Ilia Gradina - 5.47.0-5 - Rebuild for new sbcl version 2.4.1 * Fri Dec 29 2023 Ilia Gradina - 5.47.0-4 - Rebuild for new sbcl version 2.4.0 * Thu Nov 30 2023 Ilia Gradina - 5.47.0-3 - Rebuild for new sbcl version 2.3.11 * Sun Nov 12 2023 Ilia Graidna - 5.47.0-2 - Rebuilt for new sbcl version 2.3.10 * Sun Oct 15 2023 Ilia Gradina - 5.47.0-1 - Update to 5.47.0 - added patches Patch54 and Patch55 * Fri Sep 22 2023 Jerry James - 5.45.1-6 - Rebuild for ecl 23.9.9 - Update deprecated %%patchN usage - Avoid obsolescence warnings from egrep