public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michael Orlitzky" <mjo@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/octave/
Date: Wed,  9 Nov 2022 18:20:43 +0000 (UTC)	[thread overview]
Message-ID: <1668017976.ff61ef7d2434eebfec1e13e04f5d7e92b2c1772d.mjo@gentoo> (raw)

commit:     ff61ef7d2434eebfec1e13e04f5d7e92b2c1772d
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  9 17:58:19 2022 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Wed Nov  9 18:19:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ff61ef7d

sci-mathematics/octave: new revision fixing some dependency issues.

This revision adds a new flag, USE=imagemagick, to pull in
media-gfx/graphicsmagick. That's not a typo -- the global USE flag
descriptions for "imagemagick" and "graphicsmagick" make this awkward.
In any case, Octave upstream doesn't really support imagemagick, only
graphicsmagick. Thanks to Fabio Rossi for reporting the issue and
suggesting the fix.

Furthermore,

  1. media-gfx/graphicsmagick was moved to DEPEND because Octave
     links with it.

  2. The "static-libs" USE flag was dropped.

  3. A new flag, USE=fltk, was factored out of USE=opengl. The Qt
     GUI can make use of OpenGL on its own.

  4. An old hack for linking with fltk was dropped.

  5. A new REQUIRED_USE prevents some nonsense combinations of the
     X, gui, fltk, and opengl USE flags.

  6. Local descriptions for the fltk, gnuplot, and imagemagick flags
     were added to metadata.xml to explain more accurately what they
     actually do.

Closes: https://bugs.gentoo.org/864785
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 sci-mathematics/octave/metadata.xml                |  3 ++
 ...{octave-7.3.0.ebuild => octave-7.3.0-r1.ebuild} | 46 ++++++++++++++++------
 2 files changed, 38 insertions(+), 11 deletions(-)

diff --git a/sci-mathematics/octave/metadata.xml b/sci-mathematics/octave/metadata.xml
index 9058f2f3596f..72d5085bcfb1 100644
--- a/sci-mathematics/octave/metadata.xml
+++ b/sci-mathematics/octave/metadata.xml
@@ -9,7 +9,10 @@
   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. It may also be used as a batch-oriented language.
   </longdescription>
   <use>
+    <flag name="fltk">Use <pkg>x11-libs/fltk</pkg> as the backend for the OpenGL renderer in the absence of the Qt GUI</flag>
     <flag name="glpk">Add support for <pkg>sci-mathematics/glpk</pkg> for linear programming</flag>
+    <flag name="gnuplot">Use <pkg>sci-visualization/gnuplot</pkg> to render plots if OpenGL is unavailable</flag>
+    <flag name="imagemagick">Use <pkg>media-gfx/graphicsmagick</pkg> to read and write images</flag>
     <flag name="json">Allow using jsonencode and jsondecode commands via <pkg>dev-libs/rapidjson</pkg></flag>
     <flag name="qhull">Add support for <pkg>media-libs/qhull</pkg>, to allow `delaunay', `convhull', and related functions</flag>
     <flag name="qrupdate">Add support for <pkg>sci-libs/qrupdate</pkg>for QR and Cholesky update functions</flag>

diff --git a/sci-mathematics/octave/octave-7.3.0.ebuild b/sci-mathematics/octave/octave-7.3.0-r1.ebuild
similarity index 75%
rename from sci-mathematics/octave/octave-7.3.0.ebuild
rename to sci-mathematics/octave/octave-7.3.0-r1.ebuild
index ab0821420539..05285cf1f3e5 100644
--- a/sci-mathematics/octave/octave-7.3.0.ebuild
+++ b/sci-mathematics/octave/octave-7.3.0-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-inherit autotools flag-o-matic fortran-2 java-pkg-opt-2 pax-utils qmake-utils toolchain-funcs xdg
+inherit autotools 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/"
@@ -11,7 +11,7 @@ SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
 
 LICENSE="GPL-3"
 SLOT="0/${PV}"
-IUSE="curl doc fftw +glpk gnuplot gui hdf5 java json opengl portaudio postscript +qhull +qrupdate readline sndfile +sparse ssl static-libs sundials X zlib"
+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 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
 
 # Although it is listed in INSTALL.OCTAVE as a build tool, Octave runs
@@ -20,6 +20,11 @@ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
 #
 # (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
@@ -33,6 +38,7 @@ RDEPEND="
 	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? (
@@ -46,13 +52,13 @@ RDEPEND="
 		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/fltk-1.3:1=[opengl,xft]
 		x11-libs/gl2ps:=
 	)
 	portaudio? ( media-libs/portaudio )
@@ -83,7 +89,6 @@ RDEPEND="
 DEPEND="${RDEPEND}"
 BDEPEND="
 	dev-util/gperf
-	virtual/imagemagick-tools
 	virtual/pkgconfig
 	doc? (
 		dev-texlive/texlive-fontsrecommended
@@ -97,6 +102,30 @@ BDEPEND="
 	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}-4.2.2-ncurses-pkgconfig.patch
@@ -107,11 +136,6 @@ PATCHES=(
 src_prepare() {
 	default
 
-	# nasty prefix hacks for fltk:1 linking
-	if use prefix; then
-		use opengl && append-ldflags -Wl,-rpath,"${EPREFIX}/usr/$(get_libdir)/fltk-1"
-	fi
-
 	# occasional fail on install, force regeneration (bug #401189)
 	rm doc/interpreter/contributors.texi || die
 
@@ -147,7 +171,6 @@ src_configure() {
 		--enable-shared \
 		--with-z \
 		--with-bz2 \
-		$(use_enable static-libs static) \
 		$(use_enable doc docs) \
 		$(use_enable java) \
 		$(use_enable json rapidjson) \
@@ -158,8 +181,9 @@ src_configure() {
 		$(use_enable fftw fftw-threads) \
 		$(use_with glpk) \
 		$(use_with hdf5) \
+		$(use_with imagemagick magick GraphicsMagick++) \
 		$(use_with opengl) \
-		$(use_with opengl fltk) \
+		$(use_with fltk) \
 		$(use_with ssl openssl) \
 		$(use_with portaudio) \
 		$(use_with qhull qhull_r) \


             reply	other threads:[~2022-11-09 18:20 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-09 18:20 Michael Orlitzky [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-08-29 21:56 [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/octave/ Andreas Sturmlechner
2024-08-29 21:56 Andreas Sturmlechner
2024-07-02 11:48 Andrew Ammerlaan
2024-04-16 16:30 Jimi Huotari
2023-12-17 17:40 Arthur Zamarin
2023-12-17 17:40 Arthur Zamarin
2023-12-16  9:28 Joonas Niilola
2023-11-12 12:28 Pacho Ramos
2023-08-23 11:40 Michael Orlitzky
2023-06-09 17:05 Arthur Zamarin
2023-06-09 15:27 Arthur Zamarin
2023-05-26  9:35 Sam James
2023-03-16 23:13 Sam James
2023-02-07 17:25 Andreas Sturmlechner
2023-01-13 13:37 Arthur Zamarin
2023-01-09 15:10 Sam James
2023-01-08  5:17 Sam James
2023-01-08  5:17 Sam James
2022-12-20 14:14 Michael Orlitzky
2022-12-18 20:47 Arthur Zamarin
2022-12-18 20:16 Arthur Zamarin
2022-12-18 20:11 Arthur Zamarin
2022-12-18 19:59 Arthur Zamarin
2022-12-18 11:29 Sam James
2022-11-05  7:55 Sam James
2022-11-05  5:35 Sam James
2022-10-18  2:47 Sam James
2022-10-18  2:18 Sam James
2022-09-11 22:31 Michael Orlitzky
2022-09-11 12:44 Michael Orlitzky
2022-08-13  2:26 Michael Orlitzky
2022-08-03  2:54 Sam James
2022-08-03  2:54 Sam James
2022-07-26 22:02 Maciej Barć
2022-07-08  6:45 Agostino Sarubbo
2022-07-07  6:34 Agostino Sarubbo
2022-07-06 13:07 Arthur Zamarin
2022-05-26  0:28 Sam James
2022-05-17 22:20 Sam James
2022-05-07 16:17 Michael Orlitzky
2022-05-05  1:07 Sam James
2022-05-05  1:07 Sam James
2022-05-05  1:07 Sam James
2022-05-05  0:40 Sam James
2022-05-05  0:39 Sam James
2022-04-16 17:34 Andrew Ammerlaan
2022-01-17 17:28 Michael Orlitzky
2022-01-17 17:28 Michael Orlitzky
2021-10-11 22:22 Yixun Lan
2021-09-30 22:30 Michael Orlitzky
2021-05-03  9:50 Mikle Kolyada
2021-03-10 12:26 Michael Orlitzky
2020-12-12 23:31 Sam James
2020-12-12 22:20 Sam James
2020-12-07 15:27 Sam James
2020-12-07 15:27 Sam James
2020-12-01 16:14 Michael Orlitzky
2020-12-01  4:49 Michael Orlitzky
2020-11-06 15:23 Sam James
2020-10-06 21:11 Sam James
2020-06-04  6:35 Agostino Sarubbo
2020-05-25 12:28 Mikle Kolyada
2020-04-11 15:57 Sergei Trofimovich
2020-03-27 18:46 Michael Orlitzky
2020-01-12 11:14 David Seifert
2019-06-24  7:01 Pacho Ramos
2019-01-25 20:56 Robin H. Johnson
2018-09-23 20:45 Jeroen Roovers
2018-09-12  6:07 Andreas Sturmlechner
2018-07-21 12:25 Alexis Ballier
2018-07-05  0:52 Mark Wright
2018-04-26  3:01 Matt Turner
2018-04-07 20:49 Andreas Sturmlechner
2018-04-07 20:49 Andreas Sturmlechner
2018-04-07 20:49 Andreas Sturmlechner
2018-04-07 20:49 Andreas Sturmlechner
2017-06-11 11:22 Alexis Ballier
2017-05-26 14:59 Agostino Sarubbo
2017-05-26 14:05 Agostino Sarubbo
2017-05-24 13:42 Agostino Sarubbo
2017-05-23 23:25 Michael Weber
2017-05-10 20:02 Jeroen Roovers
2017-05-10 12:47 Jeroen Roovers
2017-02-28 20:41 David Seifert
2017-02-26  9:29 David Seifert
2017-02-02 11:01 David Seifert
2017-01-10 16:47 David Seifert
2017-01-06 15:17 David Seifert
2016-12-22 18:26 David Seifert
2016-08-09  7:08 David Seifert
2016-08-05  7:19 David Seifert
2016-07-31 13:24 David Seifert
2016-06-05 11:47 Michał Górny
2016-05-14 23:32 David Seifert
2016-05-14 23:32 David Seifert
2016-05-14 23:32 David Seifert
2016-05-02 22:39 Mark Wright
2016-05-02 22:39 Mark Wright
2016-04-30 11:24 Manuel Rüger
2016-04-19 20:14 Ian Stakenvicius
2016-04-19 20:12 Ian Stakenvicius
2016-03-27 22:03 Manuel Rüger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1668017976.ff61ef7d2434eebfec1e13e04f5d7e92b2c1772d.mjo@gentoo \
    --to=mjo@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox