Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-updates-src > by-pkgid > f3352a85b65001e16ec80417951eed72 > files > 3

octave-5.1.0-7.1.mga7.src.rpm

%define octave_api 53
%define major      7
%define guimajor   5

%define subrel  1

%bcond_without  audio
%bcond_without  gui
%bcond_without  java

Name:           octave
Epoch:          0
Version:        5.1.0
Release:        %mkrel 7
Summary:        High-level language for numerical computations
License:        GPLv3+
Group:          Sciences/Mathematics
Source0:        http://ftp.gnu.org/gnu/octave/%{name}-%{version}.tar.xz
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:       graphicsmagick
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
Requires(post): rpm-helper

#(eatdirt) qtoctave is dead, does not work with this version and
#octave now provides octave --gui
Obsoletes:      qtoctave <= 0.10.1
Provides:       qtoctave = %{version}-%{release}


BuildRequires:  lzip
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-nox
# (Abel) not strictly needed, but play safe
BuildRequires:  gperf
BuildRequires:  hdf5-devel
BuildRequires:  lapack-devel
BuildRequires:  pkgconfig(ncurses)
BuildRequires:  readline-devel
BuildRequires:  texinfo
BuildRequires:  texinfo-tex
BuildRequires:  texlive
BuildRequires:  pkgconfig(libpcre)
BuildRequires:  pkgconfig(libcurl)
# (Lev) needed to support sparse matrix functionality
BuildRequires:  suitesparse-devel
# (Lev) other useful libraries
BuildRequires:  qhull-devel
BuildRequires:  qrupdate-devel
# (Lev) for new experimental plotting
BuildRequires:  fltk-devel
BuildRequires:  pkgconfig(gl)
BuildRequires:  pkgconfig(glu)
# (Mitya) for eigs and svds to work
BuildRequires:  pkgconfig(arpack)
# to make imread more functional
BuildRequires:  pkgconfig(GraphicsMagick)
# (eatdirt) build against Qt5
%if %{with gui}
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  pkgconfig(Qt5Network)
BuildRequires:  pkgconfig(Qt5OpenGL)
BuildRequires:  pkgconfig(Qt5PrintSupport)
BuildRequires:  pkgconfig(Qt5Help)
BuildRequires:  pkgconfig(Qt5Xml)
BuildRequires:  qscintilla-qt5-devel
%endif
# (Mitya) Java interface
%if %{with java}
BuildRequires:  java-devel
%endif
# (Mitya) rendering stuff
BuildRequires:  gl2ps-devel
BuildRequires:  pkgconfig(osmesa)
# (Mitya) Audio processing
%if %{with audio}
BuildRequires:  pkgconfig(portaudio-2.0)
BuildRequires:  pkgconfig(sndfile)
%endif
# (eatdirt) fix some warnings for icon generation
BuildRequires:  icoutils
BuildRequires:  librsvg
BuildRequires:  sundials-devel

%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
Provides:       mkoctfile = %{epoch}:%{version}-%{release}

%description devel
The octave-devel package contains files needed for developing
applications which use GNU Octave.
This package is necessary if you intend to install external packages
(for example, through Octave forge) in Octave.

%package doc
Summary:        Documentation for Octave, a numerical computational language
Group:          Sciences/Mathematics
BuildArch:      noarch

%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

#this command just returns the API number hardcoded in configure.ac
#and ensures that it matches the one defined above
OCTAVE_API=`%{__sed} -nr 's/^OCTAVE_API_VERSION="api-v([[: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"
export GNUPLOT=%{_bindir}/gnuplot-nox
%{configure2_5x} \
                 --enable-shared \
                 --disable-static \
                 --enable-64=%{enable64} \
                 --with-amd="-lamd -lsuitesparseconfig" \
                 --with-camd="-lcamd -lsuitesparseconfig" \
                 --with-colamd="-lcolamd -lsuitesparseconfig" \
                 --with-ccolamd="-lccolamd -lsuitesparseconfig" \
                 --enable-link-all-dependencies \
                 --disable-rpath


##(eatdirt)
##--with-gnu-ld

# (Mitya) Because of gnuplot-nox used for build, Octave will set it as default gnuplot binary.
# Revert it to original gnuplot.
#{__sed} -i 's/gnuplot-nox/gnuplot/' scripts/plot/util/gnuplot_binary.m

%{make_build} 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




%install

%{make_install}

# 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/examples
%{__cp} -a examples/[[:lower:]]* package-doc/examples/

%{__cp} -a doc/liboctave/liboctave.info %{buildroot}%{_infodir}/

# Create desktop file
%{__mv} %{buildroot}%{_datadir}/applications/org.octave.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/*.h


#(eatdirt) remove .la files
find %{buildroot}%{_libdir} -name "*.la" -delete
echo %{buildroot}%{_libdir}


#(eatdirt) trigger libification with symlinks (thanks tv)
pushd %{buildroot}%{_libdir}
%__ln_s ./octave/%{version}/liboctave.so liboctave.so
%__ln_s ./octave/%{version}/liboctinterp.so liboctinterp.so
%__ln_s ./octave/%{version}/liboctgui.so liboctgui.so
popd


%post
%create_ghostfile %{_datadir}/octave/octave_packages root root 0664





%files
%defattr(0644,root,root,0755)
%doc NEWS* README
%doc examples
%defattr(-,root,root,0755)
%{_bindir}/octave*
%config(noreplace) /etc/ld.so.conf.d/*
#(eatdirt) fix packaging of libraries (.so files go to devel)
%{_libdir}/octave/site
%{_libdir}/octave/%{version}/oct
%{_libdir}/octave/%{version}/liboctave.so.%{major}{,.*}
%{_libdir}/octave/%{version}/liboctinterp.so.%{major}*{,.*}
%{_libdir}/octave/%{version}/liboctgui.so.%{guimajor}*{,.*}
%{_datadir}/octave
%{_datadir}/metainfo/org.octave.Octave.appdata.xml
%{_datadir}/icons/*/*/apps/octave.png
%{_datadir}/icons/*/*/apps/octave.svg
%exclude %{_datadir}/octave/octave_packages
%ghost %{_datadir}/octave/octave_packages
#(eatdirt) why should they be the same?
#if "#{_libdir}" != "#{_libexecdir}"
#{_libexecdir}/octave
#endif
%{_libexecdir}/octave
%{_mandir}/man*/octave*
%{_infodir}/octave.info*
%{_datadir}/applications/*
%config(noreplace) %_sysconfdir/emacs/site-start.d/octave.el*

%files devel
%defattr(-,root,root)
%{_bindir}/mkoctfile*
%{_libdir}/pkgconfig/*.pc
#(eatdirt) adding library devel files
%{_libdir}/octave/%{version}/*.so
%{_libdir}/*.so
%{_includedir}/octave-%{version}
%dir %{multiarch_includedir}/octave-*
%multiarch %{multiarch_includedir}/octave-*/octave/*.h
%multiarch %{multiarch_includedir}/octave-*/octave/*.cc
%{_mandir}/man*/mkoctfile*

%files doc
%defattr(0644,root,root,0755)
%doc doc/refcard/*.pdf
%doc doc/interpreter/*.pdf
%doc doc/liboctave/*.pdf
%doc package-doc/*
%{_infodir}/liboctave.*


%changelog
* Tue Nov 05 2019 eatdirt <eatdirt> 0:5.1.0-7.1.mga7
+ Revision: 1458044
- Force link dependencies to build third party packages (mga#25617)

* Sun Mar 31 2019 umeabot <umeabot> 0:5.1.0-7.mga7
+ Revision: 1383589
- Qt5 Rebuild

* Fri Mar 08 2019 eatdirt <eatdirt> 0:5.1.0-6.mga7
+ Revision: 1372896
- Add symlinks to .so file to trigger missing libification

* Wed Mar 06 2019 eatdirt <eatdirt> 0:5.1.0-4.mga7
+ Revision: 1371920
- Tentative fix of missing devel files, obsoletes qtoctave
- Fix packaging of library devel files

* Tue Mar 05 2019 eatdirt <eatdirt> 0:5.1.0-2.mga7
+ Revision: 1371706
- Fixing wrong ld.conf file and disabling rpath

* Tue Mar 05 2019 eatdirt <eatdirt> 0:5.1.0-1.mga7
+ Revision: 1371639
- Upgrade to version 5.1.0

* Fri Nov 09 2018 joequant <joequant> 0:4.4.1-3.mga7
+ Revision: 1329220
- upgrade hdf5

* Thu Nov 08 2018 daviddavid <daviddavid> 0:4.4.1-2.mga7
+ Revision: 1328945
- rebuild for new hdf5 1.10.4

* Sun Oct 14 2018 shlomif <shlomif> 0:4.4.1-1.mga7
+ Revision: 1320352
- New version 4.4.1

* Mon Sep 03 2018 tv <tv> 0:4.4.0-3.mga7
+ Revision: 1256621
- rely on filetriggers for info system (mga#23482)

* Tue Jul 31 2018 eatdirt <eatdirt> 0:4.4.0-2.mga7
+ Revision: 1246442
- Rebuild for new gfortran

* Sun May 13 2018 eatdirt <eatdirt> 0:4.4.0-1.mga7
+ Revision: 1229198
- Upgrade to version 4.4.0

* Thu Apr 19 2018 daviddavid <daviddavid> 0:4.2.2-2.mga7
+ Revision: 1220178
- rebuild for new qscintilla 2.10.4

* Wed Mar 14 2018 kekepower <kekepower> 0:4.2.2-1.mga7
+ Revision: 1209544
- Update to version 4.2.2

* Thu Nov 02 2017 mjack <mjack> 0:4.2.1-5.mga7
+ Revision: 1175622
- Added Provides: mkoctfile for octave-devel

* Mon Oct 16 2017 mjack <mjack> 0:4.2.1-4.mga7
+ Revision: 1172270
- Added info in octave-devel description
- Added Requires: graphicsmagick

* Mon Sep 11 2017 tv <tv> 0:4.2.1-3.mga7
+ Revision: 1152748
- rebuild for new libgfortran

* Wed May 03 2017 eatdirt <eatdirt> 0:4.2.1-2.mga6
+ Revision: 1098827
- Rebuild for new gl2ps, fix compilation warnings

* Fri Mar 03 2017 eatdirt <eatdirt> 0:4.2.1-1.mga6
+ Revision: 1088563
- Upgrade to version 4.2.1

* Fri Dec 02 2016 eatdirt <eatdirt> 0:4.2.0-1.mga6
+ Revision: 1071703
- Upgrade to version 4.2.0

* Fri Sep 30 2016 eatdirt <eatdirt> 0:4.0.3-1.mga6
+ Revision: 1057870
- Upgrade to bugfix release 4.0.3

* Sat Apr 16 2016 shlomif <shlomif> 0:4.0.1-2.mga6
+ Revision: 1003004
- Rebuild for the new glpk

* Fri Apr 01 2016 eatdirt <eatdirt> 0:4.0.1-1.mga6
+ Revision: 997314
- Update to bug fixing release 4.0.1

* Mon Mar 14 2016 daviddavid <daviddavid> 0:4.0.0-6.mga6
+ Revision: 990435
- rebuild for new qhull 2015.2

* Tue Feb 16 2016 umeabot <umeabot> 0:4.0.0-5.mga6
+ Revision: 961812
- Mageia 6 Mass Rebuild

* Wed Dec 30 2015 mitya <mitya> 0:4.0.0-4.mga6
+ Revision: 916873
- introduce conditionals for GUI, Java and audio
- build with everything by default

* Tue Dec 29 2015 mitya <mitya> 0:4.0.0-3.mga6
+ Revision: 916858
- enable: GUI, Java, sparse matrices
- audio processing disabled by default, use --with audio
- use gnuplot-nox for build
- minor cleanups

* Tue Dec 29 2015 tv <tv> 0:4.0.0-2.mga6
+ Revision: 916739
- rebuild for new libGraphicsMagick

* Mon Nov 09 2015 shlomif <shlomif> 0:4.0.0-1.mga6
+ Revision: 900084
- New version 4.0.0

* Sun Aug 16 2015 ycantin <ycantin> 0:3.8.2-5.mga6
+ Revision: 865134
- rebuild for libfltk

* Tue Jul 21 2015 daviddavid <daviddavid> 0:3.8.2-4.mga6
+ Revision: 855869
- rebuild with new hdf5

* Wed Oct 15 2014 umeabot <umeabot> 0:3.8.2-3.mga5
+ Revision: 741674
- Second Mageia 5 Mass Rebuild
- Mageia 5 Mass Rebuild

* Thu Sep 04 2014 grenoya <grenoya> 0:3.8.2-1.mga5
+ Revision: 671908
- new version 3.8.2
- disable all SuiteSparse module at build due to incompatibility between Octave and new SuiteSparse 4.3.x (Octave bug #43063)

* Sun Mar 16 2014 grenoya <grenoya> 0:3.8.1-3.mga5
+ Revision: 604275
- new version 3.8.1

* Tue Oct 22 2013 umeabot <umeabot> 0:3.6.4-3.mga4
+ Revision: 545563
- Mageia 4 Mass Rebuild

* Wed Oct 16 2013 grenoya <grenoya> 0:3.6.4-2.mga4
+ Revision: 501406
- rebuild for new suitesparse

* Wed Oct 09 2013 grenoya <grenoya> 0:3.6.4-1.mga4
+ Revision: 494208
- new version 3.6.4

* Tue Jul 16 2013 fwang <fwang> 0:3.6.3-4.mga4
+ Revision: 455024
- rebuild for new hdf5

* Thu Jan 17 2013 pterjan <pterjan> 0:3.6.3-3.mga4
+ Revision: 389214
+ rebuild (emptylog)

* 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