%define octave_api 48 Name: octave Version: 3.6.3 Release: %mkrel 3 Epoch: 0 Summary: High-level language for numerical computations License: GPLv3+ Group: Sciences/Mathematics Source0: ftp://ftp.gnu.org/gnu/octave/%{name}-%{version}.tar.bz2 Source4: octave-2.1.36-emac.lisp URL: http://www.octave.org/ Obsoletes: octave3 < %{epoch}:%{version}-%{release} Provides: octave3 = %{epoch}:%{version}-%{release} Provides: octave(api) = api-v%{octave_api} Requires: gnuplot # (Anssi) for makeinfo which is needed for "help foo" command: Requires: texinfo Requires(post): desktop-file-utils Requires(postun): desktop-file-utils Requires(post): rpm-helper Requires(post): info-install Requires(preun): info-install BuildRequires: bison BuildRequires: blas-devel BuildRequires: dejagnu BuildRequires: desktop-file-utils BuildRequires: emacs BuildRequires: emacs-bin BuildRequires: fftw-devel >= 0:3.0.1 BuildRequires: flex BuildRequires: gcc-gfortran BuildRequires: glpk-devel BuildRequires: gnuplot # (Abel) not strictly needed, but play safe BuildRequires: gperf BuildRequires: hdf5-devel BuildRequires: lapack-devel BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: texinfo BuildRequires: texlive BuildRequires: pcre-devel BuildRequires: curl-devel # (Lev) needed to support sparse matrix functionality BuildRequires: amd-devel BuildRequires: camd-devel BuildRequires: ccolamd-devel BuildRequires: cholmod-devel BuildRequires: colamd-devel BuildRequires: cxsparse-devel BuildRequires: umfpack-devel # (Lev) other useful libraries BuildRequires: qhull-devel BuildRequires: qrupdate-devel # (Lev) for new experimental plotting BuildRequires: fltk-devel BuildRequires: MesaGL-devel, MesaGLU-devel # (Mitya) for eigs and svds to work BuildRequires: arpack-devel # to make imread more functional BuildRequires: GraphicsMagick-devel Patch0: octave-3.4.2-i586-hack.patch Patch1: octave-3.4.2-curl.patch Patch2: octave-3.4.2-link.patch %description GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language. Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages. %package devel Summary: Development headers and files for Octave Group: Development/C Obsoletes: octave3-devel < %{epoch}:%{version}-%{release} Provides: octave3-devel = %{epoch}:%{version}-%{release} Requires: %{name} = %{epoch}:%{version}-%{release} Requires: blas-devel Requires: fftw-devel Requires: gcc-c++ Requires: gcc-gfortran Requires: hdf5-devel Requires: lapack-devel Requires: readline-devel Requires: zlib-devel Requires: gnuplot-nox Requires: pstoedit Requires: transfig %description devel The octave-devel package contains files needed for developing applications which use GNU Octave. %package doc Summary: Documentation for Octave, a numerical computational language Group: Sciences/Mathematics BuildArch: noarch Requires(post): info-install Requires(preun): info-install %description doc GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language. This package contains documentation of Octave in various formats. %prep %setup -q %patch0 -p0 #%%patch1 -p0 #%%patch2 -p0 OCTAVE_API=`%{__sed} -nr 's/^OCTAVE_API_VERSION_NUMBER="([[:digit:]]+)"/\1/p' configure.ac` test "x${OCTAVE_API}" = x%{octave_api} || exit 1 %{__cp} -a %{SOURCE4} octave.el %build %define enable64 no export CPPFLAGS="%{optflags} -DH5_USE_16_API" %{configure2_5x} --enable-dl --enable-shared --disable-static --enable-64=%{enable64} make OCTAVE_RELEASE="%{distribution} %{version}-%{release}" LDFLAGS="-lgfortran -llapack -lGL -lGLU -lpthread" # emacs mode %{_bindir}/emacs -batch -q -no-site-file -f batch-byte-compile %{name}.el %check #%%{make} check %install %{__rm} -rf %{buildroot} %{makeinstall_std} # Make library links %{__mkdir_p} %{buildroot}/etc/ld.so.conf.d /bin/echo "%{_libdir}/octave-%{version}" > %{buildroot}/etc/ld.so.conf.d/octave-%{_arch}.conf # Remove RPM_BUILD_ROOT from ls-R files %{__perl} -pi -e "s,%{buildroot},," %{buildroot}%{_libexecdir}/octave/ls-R %{__perl} -pi -e "s,%{buildroot},," %{buildroot}%{_datadir}/octave/ls-R %{_bindir}/find %{buildroot} -name "*.oct" -print0 | %{_bindir}/xargs -t -0 -r strip --strip-unneeded %{__mkdir_p} %{buildroot}%{_sysconfdir}/emacs/site-start.d %{__cp} -a %{name}.elc %{buildroot}%{_sysconfdir}/emacs/site-start.d/%{name}.elc %{__cp} -a %{name}.el %{buildroot}%{_sysconfdir}/emacs/site-start.d/%{name}.el # prepare documentation %{__rm} -rf package-doc %{__mkdir_p} package-doc %{__mkdir_p} package-doc/interpreter/octave.html/ /bin/ln doc/interpreter/octave.html/*.html package-doc/interpreter/octave.html/ %{__mkdir_p} package-doc/liboctave/liboctave.html/ /bin/ln doc/liboctave/liboctave.html/*.html package-doc/liboctave/liboctave.html/ %{__mkdir_p} package-doc/faq/OctaveFAQ.html/ /bin/ln doc/faq/OctaveFAQ.html/*.html package-doc/faq/OctaveFAQ.html/ %{__mkdir_p} package-doc/examples /bin/ln examples/[[:lower:]]* package-doc/examples/ %{__cp} -a doc/liboctave/liboctave.info %{buildroot}%{_infodir}/ %{__cp} -a doc/faq/OctaveFAQ.info %{buildroot}%{_infodir}/ # Create desktop file %{__mv} %{buildroot}%{_datadir}/applications/www.octave.org-octave.desktop \ %{buildroot}%{_datadir}/applications/octave.desktop %{_bindir}/desktop-file-install --add-category Education --remove-category Development \ --dir %{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/octave.desktop # Create directories for add-on packages HOST_TYPE=`%{buildroot}%{_bindir}/octave-config -p CANONICAL_HOST_TYPE` %{__mkdir_p} %{buildroot}%{_libexecdir}/octave/site/oct/%{octave_api}/$HOST_TYPE %{__mkdir_p} %{buildroot}%{_libexecdir}/octave/site/oct/$HOST_TYPE %{__mkdir_p} %{buildroot}%{_datadir}/octave/packages /bin/touch %{buildroot}%{_datadir}/octave/octave_packages %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/config.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/Array.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/defaults.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/dim-vector.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/idx-vector.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/lo-error.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/lo-mappers.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/lo-math.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/lo-traits.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/lo-utils.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/oct-alloc.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/oct-cmplx.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/oct-conf.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/oct-inttypes.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/oct-sort.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/pathsearch.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/quit.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/str-vec.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/syswait.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/lo-cutils.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/lo-macros.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/oct-mem.h %multiarch_includes %{buildroot}%{_includedir}/octave-%{version}/octave/oct-refcount.h %clean %{__rm} -rf %{buildroot} %post %_install_info octave.info %create_ghostfile %{_datadir}/octave/octave_packages root root 0664 %preun %_remove_install_info octave.info %post doc %_install_info liboctave.info %_install_info Octave-FAQ.info %preun doc %_remove_install_info liboctave.info %_remove_install_info Octave-FAQ.info %files %defattr(0644,root,root,0755) %doc NEWS* README %doc examples #%%doc doc/interpreter/octave.p* #%%doc doc/faq doc/interpreter/HTML doc/refcard %defattr(-,root,root,0755) %{_bindir}/octave* %config(noreplace) /etc/ld.so.conf.d/* %{_libdir}/octave* %{_datadir}/octave %exclude %{_datadir}/octave/octave_packages %ghost %{_datadir}/octave/octave_packages %if "%{_libdir}" != "%{_libexecdir}" %{_libexecdir}/octave %endif %{_mandir}/man*/octave* %{_infodir}/octave.info* %{_datadir}/applications/* %config(noreplace) %_sysconfdir/emacs/site-start.d/octave.el* %files devel %defattr(0644,root,root,0755) #%%doc doc/liboctave %defattr(-,root,root) %{_bindir}/mkoctfile* %{_includedir}/octave-%{version} %dir %{multiarch_includedir}/octave-* %multiarch %{multiarch_includedir}/octave-*/octave/config.h %multiarch %{multiarch_includedir}/octave-*/octave/Array.h %multiarch %{multiarch_includedir}/octave-*/octave/defaults.h %multiarch %{multiarch_includedir}/octave-*/octave/dim-vector.h %multiarch %{multiarch_includedir}/octave-*/octave/idx-vector.h %multiarch %{multiarch_includedir}/octave-*/octave/lo-error.h %multiarch %{multiarch_includedir}/octave-*/octave/lo-mappers.h %multiarch %{multiarch_includedir}/octave-*/octave/lo-math.h %multiarch %{multiarch_includedir}/octave-*/octave/lo-traits.h %multiarch %{multiarch_includedir}/octave-*/octave/lo-utils.h %multiarch %{multiarch_includedir}/octave-*/octave/oct-alloc.h %multiarch %{multiarch_includedir}/octave-*/octave/oct-cmplx.h %multiarch %{multiarch_includedir}/octave-*/octave/oct-conf.h %multiarch %{multiarch_includedir}/octave-*/octave/oct-inttypes.h %multiarch %{multiarch_includedir}/octave-*/octave/oct-sort.h %multiarch %{multiarch_includedir}/octave-*/octave/pathsearch.h %multiarch %{multiarch_includedir}/octave-*/octave/quit.h %multiarch %{multiarch_includedir}/octave-*/octave/str-vec.h %multiarch %{multiarch_includedir}/octave-*/octave/syswait.h %multiarch %{multiarch_includedir}/octave-*/octave/lo-cutils.h %multiarch %{multiarch_includedir}/octave-*/octave/lo-macros.h %multiarch %{multiarch_includedir}/octave-*/octave/oct-mem.h %multiarch %{multiarch_includedir}/octave-*/octave/oct-refcount.h %{_mandir}/man*/mkoctfile* %files doc %defattr(0644,root,root,0755) %doc doc/refcard/*.pdf %doc doc/interpreter/*.pdf %doc doc/liboctave/*.pdf %doc doc/faq/*.pdf %doc package-doc/* %{_infodir}/liboctave.* %{_infodir}/OctaveFAQ.* %changelog * Sun Jan 13 2013 umeabot <umeabot> 0:3.6.3-3.mga3 + Revision: 361782 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Sat Dec 01 2012 fwang <fwang> 0:3.6.3-2.mga3 + Revision: 323831 - rebuild for new pcre * Sat Sep 22 2012 grenoya <grenoya> 0:3.6.3-1.mga3 + Revision: 296721 - new version 3.6.3 * Thu Apr 05 2012 mitya <mitya> 0:3.6.1-2.mga2 + Revision: 228781 - Build with ARPACK to support eigs and svds functions * Thu Mar 01 2012 grenoya <grenoya> 0:3.6.1-1.mga2 + Revision: 216573 - update to 3.6.1 + fwang <fwang> - mark doc package as noarch * Wed Jan 18 2012 grenoya <grenoya> 0:3.4.3-4.mga2 + Revision: 197868 - fix flags for linkage - add gnuplot-nox, pstoedit and transfig for better functioning + anssi <anssi> - require texinfo, needed for the "help" command to work properly * Sat Dec 10 2011 grenoya <grenoya> 0:3.4.3-2.mga2 + Revision: 180467 - add missing pdf files * Sat Nov 12 2011 grenoya <grenoya> 0:3.4.3-1.mga2 + Revision: 166963 - new version 3.4.3 * Sat Sep 03 2011 grenoya <grenoya> 0:3.4.2-1.mga2 + Revision: 138319 - build without parallel make - fix new info and html doc path - fix octave.desktop build - fix rpm file content + misc <misc> - remove old file from sha1.lst + fwang <fwang> - fix linkage - fix build with latest curl - new version 3.4.2 - rebuild for new fltk * Mon Jun 20 2011 grenoya <grenoya> 0:3.2.4-6.mga2 + Revision: 110415 - rebuild after upgrade of umfpack library * Mon Apr 18 2011 grenoya <grenoya> 0:3.2.4-5.mga1 + Revision: 87881 -rebuild for new version of qhull * Fri Apr 15 2011 grenoya <grenoya> 0:3.2.4-4.mga1 + Revision: 85774 - clean old Mdv syntax - put texlive requirement instead of tetex-* - imported package octave