Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > 91de49e17257cb4d65d2775fa70db7db > files > 6

octave-3.6.3-3.mga3.src.rpm

%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