From 84685f125134bc8f4d6a523a861e8aeb26e301f9 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 12 Nov 2023 16:26:05 +0000 Subject: gentoo auto-resync : 12:11:2023 - 16:26:05 --- sci-mathematics/octave/Manifest | 1 + sci-mathematics/octave/octave-8.3.0-r1.ebuild | 241 ++++++++++++++++++++++++++ 2 files changed, 242 insertions(+) create mode 100644 sci-mathematics/octave/octave-8.3.0-r1.ebuild (limited to 'sci-mathematics/octave') diff --git a/sci-mathematics/octave/Manifest b/sci-mathematics/octave/Manifest index ccfbfc71662b..e97a4d1a14fc 100644 --- a/sci-mathematics/octave/Manifest +++ b/sci-mathematics/octave/Manifest @@ -10,5 +10,6 @@ DIST octave-8.3.0.tar.xz 26970776 BLAKE2B 8c7241ff6bd5b23244edb47e74753ddf867139 EBUILD octave-7.3.0-r2.ebuild 6728 BLAKE2B 71e9479d926d8309750e7a9fe273cbc974d9c31e25db5a7e7433ee1926bee0aadc90cf40911897816ad178af7464ea21c877f37bb4787bdcf002469a7a0b7e7d SHA512 cbb2754d28e5cf8b2533baa076841b95ed6d18f19f3c0a21a1accff4bb38c073c64552cf6b7afab51a1a9557280b2c14065a525b4c3033380c8d99def27880f8 EBUILD octave-8.1.0.ebuild 6591 BLAKE2B 5dadb4a7c9630b779979ddb072155ed0f6c01b91fdd9462b0dbefbd68addc8f5adb5d9ed955820b2f23cd86f3a089967e0681b43daf6455ba6e78ca7d3fdb9a2 SHA512 51a3622262c584620170af47bce5e2295f2b1a8257483a8d3b11842e1b39ae205a8ae6b28f0614536a8df8dec6a08581b280f27116720f40e06b065c28b97436 EBUILD octave-8.2.0.ebuild 6648 BLAKE2B 9311b5befed393215880922e48d80bd189c74fab43dba2d29fc75de341ec20382baa41c7359bce32f27e5cd2429b701db3d31ae5c38638407faf6637dbc8f49c SHA512 b3eae1f150e448d3a30ec6d4fb389852a4d3c797c48c31e16a9bba71842fa55931530faab69c875c3d70330c0c00c2666b2c58a96f0b0d2c1828c075c325c1b7 +EBUILD octave-8.3.0-r1.ebuild 6658 BLAKE2B 6ee690479ffb83a686461869ab33133ed08e2bb81b92d6e7539aadea4269781a3ddf13c2fa6fa6771e267b6523fc6f2916d7b62db98bcfc5778e89a28b44f474 SHA512 b2a3dfb2ddee9c36a6986b8ccc3dd2cde26a570856ee681da59b82220bf86d26d3ce603d43c72300ef4dc017ecf141aca14d363bb09aaf8a8d4335307dde90c4 EBUILD octave-8.3.0.ebuild 6648 BLAKE2B 9311b5befed393215880922e48d80bd189c74fab43dba2d29fc75de341ec20382baa41c7359bce32f27e5cd2429b701db3d31ae5c38638407faf6637dbc8f49c SHA512 b3eae1f150e448d3a30ec6d4fb389852a4d3c797c48c31e16a9bba71842fa55931530faab69c875c3d70330c0c00c2666b2c58a96f0b0d2c1828c075c325c1b7 MISC metadata.xml 1703 BLAKE2B 0471bc1eeaa2ce86b8eeca5c3e831eb0d9207b5fd1d3c03aba017a257b7b98b313c42a1054471c79dab1b5d2d84df8a8d3b0ee68e772cbe6970ac92f07dc3269 SHA512 3c051ff80c958af4315faa1670cc5e1d6a53397b4182304b760cf4f2e14f716e187dd76879d094e35713ac115c47ea623530c2f4b114f7bf2eae1cdf28bc46b8 diff --git a/sci-mathematics/octave/octave-8.3.0-r1.ebuild b/sci-mathematics/octave/octave-8.3.0-r1.ebuild new file mode 100644 index 000000000000..35f4d8535b46 --- /dev/null +++ b/sci-mathematics/octave/octave-8.3.0-r1.ebuild @@ -0,0 +1,241 @@ +# 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/fig2dev-3.2.9-r1 + ) + 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" + # + local myeconfargs=( + --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 + + # bug #901965 + --without-libiconv-prefix + --without-libreadline-prefix + + $(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) + ) + + econf "${myeconfargs[@]}" +} + +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 +} -- cgit v1.2.3