summaryrefslogtreecommitdiff
path: root/sci-mathematics/octave
diff options
context:
space:
mode:
Diffstat (limited to 'sci-mathematics/octave')
-rw-r--r--sci-mathematics/octave/Manifest2
-rw-r--r--sci-mathematics/octave/octave-8.1.0.ebuild233
2 files changed, 235 insertions, 0 deletions
diff --git a/sci-mathematics/octave/Manifest b/sci-mathematics/octave/Manifest
index ed8bb84c60ee..2212130fd75f 100644
--- a/sci-mathematics/octave/Manifest
+++ b/sci-mathematics/octave/Manifest
@@ -4,5 +4,7 @@ AUX octave-6.4.0-omit-qtchooser-qtver.patch 765 BLAKE2B 2f889e8278e48489f2eab1c3
AUX octave-6.4.0-slibtool.patch 1416 BLAKE2B e4b487481490b41a4da499bb5eceff0f6a25a7e25d4f6c76088c3703259ab4899a354b0cf67eecb989bf4c4c05836be09881cce72145b3badca1393bd386a85f SHA512 cac0d183b3c555a25db37df250b2517ae4b762b7bc0d65ba0cb1093133f6f7ada42f6745b060d17f59c2177976841dafabcda61cf03d9cd14028399472f28ed7
AUX octave-7.3.0-docs-texinfo-7.0.patch 1623 BLAKE2B 36a6ceda753083171ece9e4045af8551121f7073901d9f32facfd6c2bb88a10226f5aa719a79e8677c7a0cb7f26a226f2da190d9b4281b3fd666f570af3ac761 SHA512 0ac71393c59681a2188316356235ddb876e5c7cbf4a2ff1752bd3dddde7babeb456e0619ed65e32d5048d754416fb33c949aa0979748f7282e3e9d2589931612
DIST octave-7.3.0.tar.xz 26215288 BLAKE2B 53fff89e798f8b8795f83e46f66793f2cf37f98933fa62a47d5ec389f89a3447eb96128c1d6b68a4184630d071ecf1a4323299c251b43c3211a8f781486b32e5 SHA512 1399d7010cbd4e83d6dc60ab8cc2abb20e64a762e905a00066e6331c5350df93b4ff8f2670fd52fc183918cea21bc176cb263ca71080de6e4041f5e0ea21558e
+DIST octave-8.1.0.tar.xz 26957620 BLAKE2B d1d90a242b1517dd0284af454b9de83238c5f515690c1ffd8bd5d8c43ff6c690ccab590a877e74631394295b97292d71b2dc1c62ea50f0c4ff3e9ac728f67dbf SHA512 7e43e1a272cb51e981d4f534bbed2c2915bb714be3f151f98862ed8ecec1ee3a90600dd22778077b6cdecee4c802a2e4d13a49c339cef683e1356941b9e1cd1d
EBUILD octave-7.3.0-r2.ebuild 6727 BLAKE2B 2de036fb8ff4ac1786aba15d3a115b61317a6f3262e39758840f07f96063a81b6b0f035439422f7b329ace56f4d63ab4891d7add71e1491d7a749c934054da2e SHA512 f1d39df10bdca389a8a9ca7dd477bd9897ed6ec9a0f36569ec0ce27521721ce67f9dc8abea214d52a9bf58eb1387e97b95d5110112fd5aedc2a88c3ccf8cfa95
+EBUILD octave-8.1.0.ebuild 6594 BLAKE2B 05466ca70998eb8ff86a2d1f12a3092ebdd1f9d8b82232283e89ecb3438683400cf08d8f274d0bef5a1b16eef0274eb4805e2344c681f189f52321ec217bcc6d SHA512 76e49fcd5c751ed4fe24ced673f9c6c60be0468b9cb0fe91004f25428b5292a83111e8f66530d8554f872a4da5c7645a52106204fe2058528e82c74fbcdb3889
MISC metadata.xml 1703 BLAKE2B 0471bc1eeaa2ce86b8eeca5c3e831eb0d9207b5fd1d3c03aba017a257b7b98b313c42a1054471c79dab1b5d2d84df8a8d3b0ee68e772cbe6970ac92f07dc3269 SHA512 3c051ff80c958af4315faa1670cc5e1d6a53397b4182304b760cf4f2e14f716e187dd76879d094e35713ac115c47ea623530c2f4b114f7bf2eae1cdf28bc46b8
diff --git a/sci-mathematics/octave/octave-8.1.0.ebuild b/sci-mathematics/octave/octave-8.1.0.ebuild
new file mode 100644
index 000000000000..212af2b3d89a
--- /dev/null
+++ b/sci-mathematics/octave/octave-8.1.0.ebuild
@@ -0,0 +1,233 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic fortran-2 java-pkg-opt-2 pax-utils qmake-utils toolchain-funcs xdg
+
+DESCRIPTION="High-level interactive language for numerical computations"
+HOMEPAGE="https://www.gnu.org/software/octave/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+IUSE="curl doc fftw fltk +glpk gnuplot gui hdf5 imagemagick java json opengl portaudio postscript +qhull +qrupdate readline sndfile +sparse ssl sundials X zlib"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+
+# Although it is listed in INSTALL.OCTAVE as a build tool, Octave runs
+# "makeinfo" from sys-apps/texinfo at runtime to convert its texinfo
+# documentation to text (see scripts/help/help.m).
+#
+# (un)zip isn't mentioned, but there's a test that uses it (bug #775254).
+#
+# The use of USE=imagemagick to pull in media-gfx/graphicsmagick is not
+# ideal, but both "graphicsmagick" and "imagemagick" are global USE
+# flags whose existing descriptions conflict with the obvious way we
+# would want to use them in octave. In any case, upstream doesn't really
+# support imagemagick, only graphicsmagick (bug 864785).
+RDEPEND="
+ app-arch/bzip2
+ app-arch/unzip
+ app-arch/zip
+ app-text/ghostscript-gpl
+ sys-apps/texinfo
+ dev-libs/libpcre2
+ sys-libs/ncurses:=
+ sys-libs/zlib
+ virtual/blas
+ virtual/lapack
+ curl? ( net-misc/curl:= )
+ fftw? ( sci-libs/fftw:3.0= )
+ fltk? ( >=x11-libs/fltk-1.3:1=[opengl,xft] )
+ glpk? ( sci-mathematics/glpk:= )
+ gnuplot? ( sci-visualization/gnuplot )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtopengl:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ x11-libs/qscintilla:=
+ )
+ hdf5? ( sci-libs/hdf5:= )
+ imagemagick? ( media-gfx/graphicsmagick:=[cxx] )
+ java? ( >=virtual/jre-1.8:* )
+ json? ( dev-libs/rapidjson )
+ opengl? (
+ media-libs/freetype:=
+ media-libs/fontconfig:=
+ virtual/glu
+ x11-libs/gl2ps:=
+ )
+ portaudio? ( media-libs/portaudio )
+ postscript? (
+ app-text/epstool
+ media-gfx/pstoedit
+ media-gfx/transfig
+ )
+ qhull? ( media-libs/qhull:= )
+ qrupdate? ( sci-libs/qrupdate:= )
+ readline? ( sys-libs/readline:= )
+ sndfile? ( media-libs/libsndfile )
+ sparse? (
+ sci-libs/arpack:=
+ sci-libs/camd:=
+ sci-libs/ccolamd:=
+ sci-libs/cholmod:=
+ sci-libs/colamd:=
+ sci-libs/cxsparse:=
+ sci-libs/umfpack:=
+ )
+ ssl? (
+ dev-libs/openssl:=
+ )
+ sundials? ( >=sci-libs/sundials-4:= )
+ X? ( x11-libs/libX11:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-util/gperf
+ virtual/pkgconfig
+ doc? (
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-plaingeneric
+ dev-texlive/texlive-metapost
+ virtual/latex-base
+ )
+ java? ( >=virtual/jdk-1.8:* )
+ gui? ( dev-qt/linguist-tools:5 )
+ qrupdate? ( app-misc/pax-utils )
+ sparse? ( app-misc/pax-utils )
+"
+
+# There are three ways to plot in Octave:
+#
+# 1. The old gnuplot renderer
+# 2. The OpenGL renderer using the FLTK backend
+# 3. The OpenGL renderer using the Qt backend
+#
+# It's possible to use the Qt GUI without OpenGL, but OpenGL rendering
+# is all that FLTK is used for, so it doesn't make sense to enable
+# USE=fltk without USE=opengl.
+#
+# Building without either USE=gnuplot or USE=opengl is technically legal,
+# but will leave you unable to plot anything.
+#
+# Octave's FLTK support is unofficially deprecated, in the sense that
+# you'll often get "why are you using FLTK?" in response to
+# bugs. (Upstream bug 59321 for a random example.) In the future, it
+# will probably make sense to merge USE=opengl and USE=X into USE=gui,
+# dropping USE=fltk entirely.
+REQUIRED_USE="
+ fltk? ( opengl X )
+ gui? ( X )
+ opengl? ( || ( fltk gui ) )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.1.0-pkgbuilddir.patch
+ "${FILESDIR}"/${PN}-6.4.0-omit-qtchooser-qtver.patch
+)
+
+src_prepare() {
+ default
+
+ # occasional fail on install, force regeneration (bug #401189)
+ rm doc/interpreter/contributors.texi || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # libstdc++ bug, bug #887815
+ append-cxxflags -U_GLIBCXX_ASSERTIONS
+
+ # Unfortunate dependency on mpi from hdf5 (bug #302621)
+ use hdf5 && has_version sci-libs/hdf5[mpi] && \
+ export CXX=mpicxx CC=mpicc FC=mpif77 F77=mpif77
+
+ # Tell autoconf where to find qt binaries, fix bug #837752
+ export MOC="$(qt5_get_bindir)/moc" \
+ UIC="$(qt5_get_bindir)/uic" \
+ RCC="$(qt5_get_bindir)/rcc" \
+ LRELEASE="$(qt5_get_bindir)/lrelease" \
+ QCOLLECTIONGENERATOR="$(qt5_get_bindir)/qcollectiongenerator" \
+ QHELPGENERATOR="$(qt5_get_bindir)/qhelpgenerator"
+
+ # Some of these use_with flags are a bit mismatched. The configure
+ # script offers only --without-foo, and detects "foo" automatically
+ # unless --without-foo is specified. Passing --with-foo is not an
+ # error, however, so it kind of works. We wind up with, for example,
+ #
+ # --with-sundials_ida (no-op) with USE="sundials"
+ # --without-sundials_ida (disables it) with USE="-sundials"
+ #
+ econf \
+ --localstatedir="${EPREFIX}/var/state/octave" \
+ --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \
+ --with-lapack="$($(tc-getPKG_CONFIG) --libs lapack)" \
+ --disable-64 \
+ --enable-shared \
+ --with-z \
+ --with-bz2 \
+ $(use_enable doc docs) \
+ $(use_enable java) \
+ $(use_enable json rapidjson) \
+ $(use_enable readline) \
+ $(use_with curl) \
+ $(use_with fftw fftw3) \
+ $(use_with fftw fftw3f) \
+ $(use_enable fftw fftw-threads) \
+ $(use_with glpk) \
+ $(use_with hdf5) \
+ $(use_with imagemagick magick GraphicsMagick++) \
+ $(use_with opengl) \
+ $(use_with fltk) \
+ $(use_with ssl openssl) \
+ $(use_with portaudio) \
+ $(use_with qhull qhull_r) \
+ $(use_with qrupdate) \
+ $(use_with gui qt 5) \
+ $(use_with sndfile) \
+ $(use_with sparse arpack) \
+ $(use_with sparse umfpack) \
+ $(use_with sparse colamd) \
+ $(use_with sparse ccolamd) \
+ $(use_with sparse cholmod) \
+ $(use_with sparse cxsparse) \
+ $(use_with sundials sundials_ida) \
+ $(use_with X x)
+}
+
+src_compile() {
+ # Otherwise it will write to /var/cache/fonts/ and trip sandbox
+ export VARTEXFONTS="${T}/fonts"
+
+ default
+
+ if use java; then
+ pax-mark m "${S}/src/.libs/octave-cli"
+ fi
+}
+
+src_install() {
+ default
+
+ if use doc; then
+ dodoc $(find doc -name '*.pdf')
+ else
+ # bug #566134, macros.texi is installed by make install if use doc
+ insinto /usr/share/${PN}/${PV}/etc
+ doins doc/interpreter/macros.texi
+ fi
+
+ use java && \
+ java-pkg_regjar "${ED}/usr/share/${PN}/${PV}/m/java/octave.jar"
+
+ echo "LDPATH=${EPREFIX}/usr/$(get_libdir)/${PN}/${PV}" > 99octave || die
+ doenvd 99octave
+
+ find "${ED}" -type f -name '*.la' -delete || die
+}