File maxima.spec of Package maxima

#
# spec file for package maxima
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#


# This can be changed by modifying the variables below.
%define enable_clisp 1
%define clisp_flags --enable-clisp
%define clisp_version 2.33
%define enable_cmucl 0
%define cmucl_flags --disable-cmucl
%define enable_sbcl 0
%define sbcl_flags --disable-sbcl
%define enable_gcl 0
%define gcl_flags --disable-gcl

Name:           maxima
Version:        5.38.0
Release:        0
#%%major_version is used only to package the latest changelog file, however upstream doesn't package the 5.36 changelog yet, so don't change this for now
%define major_version 5.34
Summary:        Symbolic Computation Program/Computer Algebra System
License:        GPL-2.0+
Group:          Productivity/Scientific/Math
Url:            http://maxima.sourceforge.net/
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Source0:        http://download.sourceforge.net/maxima/%{name}-%{version}.tar.gz
Source1:        maxima-rpmlintrc
%if 0%{?suse_version}
PreReq:         %install_info_prereq
%endif
BuildRequires:  gzip
BuildRequires:  makeinfo
BuildRequires:  python
BuildRequires:  recode-devel
Requires:       gnuplot
Requires:       maxima_exec
Requires:       plotutils
BuildRequires:  fdupes
%if 0%{?enable_clisp}
BuildRequires:  clisp >= 2.34.0
%endif
ExcludeArch:    ppc64 ppc64le

# Inhibit automatic compressing of info files. Compressed info
# files break maxima's internal help.
%define __spec_install_post /bin/true

%description
Maxima is a full symbolic computation program.  It is full featured
doing symbolic manipulation of polynomials, matrices, rational
functions, integration, Todd-coxeter, graphing, bigfloats.  It has a
symbolic debugger source level debugger for maxima code.  Maxima is
based on the original Macsyma developed at MIT in the 1970's.  It is
quite reliable, and has good garbage collection, and no memory leaks.
It comes with hundreds of self tests.

%package xmaxima
Summary:        Tcl/Tk interface to Maxima
Group:          Development/Languages/Other
PreReq:         %install_info_prereq
Requires:       maxima = %{version}
Requires:       tk
Provides:       xmaxima = %{version}

%description xmaxima
A graphical interface to the Maxima symbolic computation program. It
also provides Openmath, a graphics program that can be used from
Maxima, and a Web browser that accepts a custom html tag to execute
Maxima commands from an html page.

Xmaxima is written in the Tcl/Tk language.

%if 0%{?enable_clisp}
%package        exec-clisp
Summary:        Maxima compiled with clisp
Group:          Development/Languages/Other
BuildRequires:  clisp
Requires:       maxima = %{version}
Provides:       maxima_exec = %{version}

%description exec-clisp
Maxima compiled with Common Lisp.
%endif

%if 0%{?enable_cmucl}
%package exec-cmucl
Summary:        Maxima compiled with CMUCL
Group:          Development/Languages/Other
Requires:       maxima = %{version}
Provides:       maxima_exec = %{version}

%description    exec-cmucl
Maxima compiled with CMUCL.
%endif

%if 0%{?enable_sbcl}
%package exec-sbcl
Summary:        Maxima compiled with SBCL
Group:          Development/Languages/Other
Requires:       maxima = %{version}
Requires:       sbcl
Provides:       maxima_exec = %{version}

%description exec-sbcl
Maxima compiled with SBCL.
%endif

%if 0%{?enable_gcl}
%package exec-gcl
Summary:        Maxima compiled with GCL
Group:          Development/Languages/Other
Requires:       maxima = %{version}
Provides:       maxima_exec = %{version}

%description exec-gcl
Maxima compiled with Gnu Common Lisp.
%endif

%package lang-de-utf8
Summary:        Maxima German UTF-8 language pack
Group:          Productivity/Scientific/Math
PreReq:         %install_info_prereq
Requires:       maxima = %{version}
Provides:       locale(maxima:de)

%description lang-de-utf8
Maxima German language support (in UTF-8).

%package lang-es-utf8
Summary:        Maxima Spanish UTF-8 language pack
Group:          Productivity/Scientific/Math
PreReq:         %install_info_prereq
Requires:       maxima = %{version}
Provides:       locale(maxima:es)

%description lang-es-utf8
Maxima Spanish language support (in UTF-8).

%package lang-pt-utf8
Summary:        Maxima Portuguese UTF-8 language pack
Group:          Productivity/Scientific/Math
PreReq:         %install_info_prereq
Requires:       maxima = %{version}
Provides:       locale(maxima:pt)

%description lang-pt-utf8
Maxima Portuguese language support (in UTF-8).

%package lang-pt_BR-utf8
Summary:        Maxima Brazilian Portuguese UTF-8 language pack
Group:          Productivity/Scientific/Math
PreReq:         %install_info_prereq
Requires:       maxima = %{version}
Provides:       locale(maxima:pt_BR)

%description lang-pt_BR-utf8
Maxima Brazilian Portuguese language support (in UTF-8).

%prep
%setup -q

%build
%configure  %{?sbcl_flags:} %{?cmucl_flags:} %{?gcl_flags:} %{?clisp_flags:} \
            --enable-gettext \
            --enable-lang-de-utf8 \
            --enable-lang-es-utf8 \
            --enable-lang-pt-utf8 \
            --enable-lang-pt_BR-utf8 \
            --enable-recode
make %{?_smp_mflags}

#%check
#make check

%install
%makeinstall install-info
  make \
    prefix=%{?buildroot:%{buildroot}}%{_prefix} \
    exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \
    bindir=%{?buildroot:%{buildroot}}%{_bindir} \
    sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \
    sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \
    datadir=%{?buildroot:%{buildroot}}%{_datadir} \
    includedir=%{?buildroot:%{buildroot}}%{_includedir} \
    libdir=%{?buildroot:%{buildroot}}%{_libdir} \
    libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \
    localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \
    sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \
    mandir=%{?buildroot:%{buildroot}}%{_mandir} \
    infodir=%{?buildroot:%{buildroot}}%{_infodir} \
  install-info

%if 0%{?sles_version}
touch debugfiles.list
%endif
touch debugsources.list

#  Deal with info/dir
rm -f %{buildroot}%{_infodir}/dir
# set executable rights for example scripts
chmod +x %{buildroot}%{_datadir}/%{name}/%{version}/doc/misc/grepforvariables.sh
chmod +x %{buildroot}%{_datadir}/%{name}/%{version}/doc/misc/processlisfiles.sh
chmod +x %{buildroot}%{_datadir}/%{name}/%{version}/share/contrib/lurkmathml/mathmltest
# zip the manpage
gzip %{buildroot}%{_mandir}/*/*
# reduce space, create symlinks
%if 0%{?suse_version} > 1020
%fdupes -s %{buildroot}/%{_datadir}/%{name}/%{version}/share %{buildroot}/%{_datadir}/%{name}/%{version}/src
%endif

%if 0%{?suse_version}
%post
%install_info --info-dir=%{_infodir} %{_infodir}/maxima.info

%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/maxima.info

%post xmaxima
%install_info --info-dir=%{_infodir} %{_infodir}/xmaxima.info
%mime_database_post

%postun xmaxima
%install_info_delete --info-dir=%{_infodir} %{_infodir}/xmaxima.info
%mime_database_postun

%post lang-de-utf8
%install_info --info-dir=%{_infodir} %{_infodir}/de.utf8/maxima.info

%postun lang-de-utf8
%install_info_delete --info-dir=%{_infodir} %{_infodir}/de.utf8/maxima.info

%post lang-es-utf8
%install_info --info-dir=%{_infodir} %{_infodir}/es.utf8/maxima.info

%postun lang-es-utf8
%install_info_delete --info-dir=%{_infodir} %{_infodir}/es.utf8/maxima.info

%post lang-pt-utf8
%install_info --info-dir=%{_infodir} %{_infodir}/pt.utf8/maxima.info

%postun lang-pt-utf8
%install_info_delete --info-dir=%{_infodir} %{_infodir}/pt.utf8/maxima.info

%post lang-pt_BR-utf8
%install_info --info-dir=%{_infodir} %{_infodir}/pt_BR.utf8/maxima.info

%postun lang-pt_BR-utf8
%install_info_delete --info-dir=%{_infodir} %{_infodir}/pt_BR.utf8/maxima.info
%endif

%files
%defattr(-,root,root,-)
%doc AUTHORS COPYING NEWS README README.* ChangeLog-%{major_version}
%doc %{_mandir}/man1/maxima.1*
%dir %{_datadir}/maxima
%dir %{_datadir}/maxima/%{version}
%dir %{_libdir}/maxima
%if 0%{?sles_version} == 0
%dir %{_libexecdir}/maxima
%endif
%{_datadir}/maxima/%{version}/*
%exclude %{_datadir}/maxima/%{version}/xmaxima
%exclude %{_datadir}/maxima/%{version}/doc/html/de.utf8
%exclude %{_datadir}/maxima/%{version}/doc/html/es.utf8
%exclude %{_datadir}/maxima/%{version}/doc/html/pt.utf8
%exclude %{_datadir}/maxima/%{version}/doc/html/pt_BR.utf8
%{_libdir}/maxima/%{version}
%exclude %{_libdir}/maxima/%{version}/binary-clisp
%if 0%{?suse_version} >= 1120
%dir %{_libexecdir}/maxima/%{version}
%{_libexecdir}/maxima/%{version}/mgnuplot
%endif
%{_infodir}/*
%exclude %{_infodir}/de.utf8
%exclude %{_infodir}/es.utf8
%exclude %{_infodir}/pt.utf8
%exclude %{_infodir}/pt_BR.utf8
%{_bindir}/maxima
%{_bindir}/rmaxima

%files xmaxima
%defattr(-,root,root,-)
%dir %{_datadir}/maxima/%{version}/xmaxima
%{_bindir}/xmaxima
%{_datadir}/maxima/%{version}/xmaxima/*
%{_datadir}/mime/packages/x-mac.xml

%if 0%{?enable_clisp}
%files exec-clisp
%defattr(-,root,root,-)
%dir %{_libdir}/maxima/%{version}/binary-clisp/
%defattr(-,root,root,-)
%{_libdir}/maxima/%{version}/binary-clisp/*
%endif

%if 0%{?enable_cmucl}
%files exec-cmucl
%defattr(-,root,root,-)
%{_libdir}/maxima/%{version}/binary-cmucl/*
%endif

%if 0%{?enable_sbcl}
%files exec-sbcl
%defattr(-,root,root,-)
%{_libdir}/maxima/%{version}/binary-sbcl/*
%endif

%if 0%{?enable_gcl}
%files exec-gcl
%defattr(-,root,root,-)
%{_libdir}/maxima/%{version}/binary-gcl/*
%endif

%files lang-de-utf8
%defattr(-,root,root)
%doc %{_datadir}/maxima/%{version}/doc/html/de.utf8
%{_infodir}/de.utf8

%files lang-es-utf8
%defattr(-,root,root)
%doc %{_datadir}/maxima/%{version}/doc/html/es.utf8
%{_datadir}/locale/es/LC_MESSAGES/maxima.mo
%{_infodir}/es.utf8

%files lang-pt-utf8
%defattr(-,root,root)
%doc %{_datadir}/maxima/%{version}/doc/html/pt.utf8
%{_datadir}/locale/pt/LC_MESSAGES/maxima.mo
%{_infodir}/pt.utf8

%files lang-pt_BR-utf8
%defattr(-,root,root)
%doc %{_datadir}/maxima/%{version}/doc/html/pt_BR.utf8
%{_infodir}/pt_BR.utf8

%changelog
openSUSE Build Service is sponsored by