From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1435543-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id C01EF158094
	for <garchives@archives.gentoo.org>; Sun, 11 Sep 2022 22:31:24 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id BFA32E0833;
	Sun, 11 Sep 2022 22:31:22 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id A43E2E0833
	for <gentoo-commits@lists.gentoo.org>; Sun, 11 Sep 2022 22:31:22 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 9537B335D88
	for <gentoo-commits@lists.gentoo.org>; Sun, 11 Sep 2022 22:31:21 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 33FA575
	for <gentoo-commits@lists.gentoo.org>; Sun, 11 Sep 2022 22:31:20 +0000 (UTC)
From: "Michael Orlitzky" <mjo@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Michael Orlitzky" <mjo@gentoo.org>
Message-ID: <1662935396.ee828164174dac808cc0b37b9306871b45857246.mjo@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/octave/
X-VCS-Repository: repo/gentoo
X-VCS-Files: sci-mathematics/octave/octave-6.4.0-r4.ebuild
X-VCS-Directories: sci-mathematics/octave/
X-VCS-Committer: mjo
X-VCS-Committer-Name: Michael Orlitzky
X-VCS-Revision: ee828164174dac808cc0b37b9306871b45857246
X-VCS-Branch: master
Date: Sun, 11 Sep 2022 22:31:20 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 9effac14-1128-4cb6-8adc-a2f4d101936e
X-Archives-Hash: 60dcc263ed0250d60181d44c1d8d3a9b

commit:     ee828164174dac808cc0b37b9306871b45857246
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 11 22:26:15 2022 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Sun Sep 11 22:29:56 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee828164

sci-mathematics/octave: better slibtool fix in v6.4.0.

The --enable-link-all-dependencies flag was added to octave-6.4.0 to fix
the build with slibtool, but that had some unintended consequences (bug
858554). The whole thing is moot in v7.2.0, but there's a better fix for
v6.4.0: using --disable-no-undefined, which, double-negatively, allows
for undefined symbols wherever they were causing problems. It still
builds OK with rlibtool, ship it!

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

 sci-mathematics/octave/octave-6.4.0-r4.ebuild | 215 ++++++++++++++++++++++++++
 1 file changed, 215 insertions(+)

diff --git a/sci-mathematics/octave/octave-6.4.0-r4.ebuild b/sci-mathematics/octave/octave-6.4.0-r4.ebuild
new file mode 100644
index 000000000000..354b3b02baf9
--- /dev/null
+++ b/sci-mathematics/octave/octave-6.4.0-r4.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2022 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-utils
+
+DESCRIPTION="High-level interactive language for numerical computations"
+LICENSE="GPL-3"
+HOMEPAGE="https://www.gnu.org/software/octave/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+
+SLOT="0/${PV}"
+IUSE="curl doc fftw +glpk gnuplot gui hdf5 java opengl
+	portaudio postscript +qhull +qrupdate readline sndfile +sparse
+	ssl static-libs 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).
+#
+RDEPEND="
+	app-arch/bzip2
+	app-arch/unzip
+	app-arch/zip
+	app-text/ghostscript-gpl
+	sys-apps/texinfo
+	dev-libs/libpcre:3=
+	sys-libs/ncurses:0=
+	sys-libs/zlib
+	virtual/blas
+	virtual/lapack
+	curl? ( net-misc/curl:0= )
+	fftw? ( sci-libs/fftw:3.0= )
+	glpk? ( sci-mathematics/glpk:0= )
+	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:0= )
+	java? ( >=virtual/jre-1.6.0:* )
+	opengl? (
+		media-libs/freetype:2=
+		media-libs/fontconfig:1.0=
+		virtual/glu
+		>=x11-libs/fltk-1.3:1=[opengl,xft]
+		x11-libs/gl2ps:0=
+	)
+	portaudio? ( media-libs/portaudio )
+	postscript? (
+		app-text/epstool
+		media-gfx/pstoedit
+		media-gfx/transfig
+	)
+	qhull? ( media-libs/qhull:0= )
+	qrupdate? ( sci-libs/qrupdate:0= )
+	readline? ( sys-libs/readline:0= )
+	sndfile? ( media-libs/libsndfile )
+	sparse? (
+		sci-libs/arpack:0=
+		sci-libs/camd:0=
+		sci-libs/ccolamd:0=
+		sci-libs/cholmod:0=
+		sci-libs/colamd:0=
+		sci-libs/cxsparse:0=
+		sci-libs/umfpack:0=
+	)
+	ssl? (
+		dev-libs/openssl:0=
+	)
+	sundials? ( <sci-libs/sundials-6.2.0:= )
+	X? ( x11-libs/libX11:0= )"
+# bug #846968 for sundials < dep
+DEPEND="${RDEPEND}
+	dev-util/gperf
+	doc? (
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-plaingeneric
+		dev-texlive/texlive-metapost
+		virtual/latex-base
+	)
+	java? ( >=virtual/jdk-1.6.0 )
+	qrupdate? ( app-misc/pax-utils )
+	sparse? ( app-misc/pax-utils )
+	|| ( media-gfx/imagemagick media-gfx/graphicsmagick[imagemagick] )"
+BDEPEND="
+	virtual/pkgconfig
+	gui? ( dev-qt/linguist-tools:5 )"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-5.1.0-pkgbuilddir.patch
+	"${FILESDIR}"/${PN}-4.2.2-ncurses-pkgconfig.patch
+	"${FILESDIR}/${PN}-6.4.0-slibtool.patch"
+	"${FILESDIR}"/${PN}-6.4.0-omit-qtchooser-qtver.patch
+)
+
+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
+
+	eautoreconf
+}
+
+src_configure() {
+	# 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"
+	#
+	# The --disable-no-undefined flag is needed because otherwise, the
+	# build system appends --no-undefined to LDFLAGS and then proceeds
+	# to undefine things. GNU libtool ignores this, but slibtool (for
+	# example) does not (bug 776583).
+	econf \
+		--localstatedir="${EPREFIX}/var/state/octave" \
+		--with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \
+		--with-lapack="$($(tc-getPKG_CONFIG) --libs lapack)" \
+		--disable-64 \
+		--disable-jit \
+		--disable-no-undefined \
+		--enable-shared \
+		--with-z \
+		--with-bz2 \
+		$(use_enable static-libs static) \
+		$(use_enable doc docs) \
+		$(use_enable java) \
+		$(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 opengl) \
+		$(use_with opengl fltk) \
+		$(use_with ssl openssl) \
+		$(use_with portaudio) \
+		$(use_with qhull) \
+		$(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() {
+	export VARTEXFONTS="${T}/fonts" # otherwise it will write to /var/cache/fonts/ and trip sandbox
+	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
+	[[ -e test/fntests.log ]] && dodoc test/fntests.log
+	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
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_mimeinfo_database_update
+	xdg_desktop_database_update
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_mimeinfo_database_update
+	xdg_desktop_database_update
+}