Skip to content

Commit

Permalink
sci-mathematics/octave-4.4.0: Import from Gentoo
Browse files Browse the repository at this point in the history
  • Loading branch information
devurandom committed Jul 13, 2018
1 parent d5aa9f9 commit 75689f4
Show file tree
Hide file tree
Showing 11 changed files with 367 additions and 0 deletions.
1 change: 1 addition & 0 deletions sci-mathematics/octave/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST octave-4.4.0.tar.gz 29009355 BLAKE2B 3f7b4a6e1262cd0009f8649a570749acc2dc8b42aa1f88a6ce69b9c6bb99a95390f5a153c391a60ac118dc1e87f15596c7225764634c6076bb1ab3dfa4e09bcc SHA512 6a167a4a6a2f6ae70511f13b14feea0ce3efcc964227c93f3195adb3a1f1f28dda56f86a2e1c7c5e9f54891d2846fb96972092387e3da41f2e04cb700606ffc2
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/m4/getcwd.m4
+++ b/m4/getcwd.m4
@@ -110,7 +110,7 @@

gl_abort_bug=no
case "$host_os" in
- mingw*)
+ *-gnu* | gnu* | mingw*)
gl_cv_func_getcwd_path_max=yes
;;
*)
41 changes: 41 additions & 0 deletions sci-mathematics/octave/files/octave-4.2.0-pkgbuilddir.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
--- a/scripts/pkg/private/install.m
+++ b/scripts/pkg/private/install.m
@@ -62,7 +62,14 @@
for i = 1:length (files)
tgz = files{i};

- if (exist (tgz, "file"))
+ ## The filename pointed to an uncompressed package to begin with.
+ if (exist (tgz, "dir"))
+ if (tgz(1) == '/')
+ packdir = tgz;
+ else
+ packdir = fullfile (pwd(), tgz);
+ endif
+ elseif (exist (tgz, "file"))
## Create a temporary directory.
tmpdir = tempname ();
tmpdirs{end+1} = tmpdir;
@@ -89,20 +96,12 @@
if (length (dirlist) > 3)
error ("bundles of packages are not allowed");
endif
- endif

- ## The filename pointed to an uncompressed package to begin with.
- if (exist (tgz, "dir"))
- dirlist = {".", "..", tgz};
+ ## The two first entries of dirlist are "." and "..".
+ packdir = fullfile (tmpdir, dirlist{3});
endif

if (exist (tgz, "file") || exist (tgz, "dir"))
- ## The two first entries of dirlist are "." and "..".
- if (exist (tgz, "file"))
- packdir = fullfile (tmpdir, dirlist{3});
- else
- packdir = fullfile (pwd (), dirlist{3});
- endif
packdirs{end+1} = packdir;

## Make sure the package contains necessary files.
10 changes: 10 additions & 0 deletions sci-mathematics/octave/files/octave-4.2.0-zlib-underlinking.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- a/libinterp/corefcn/module.mk
+++ b/libinterp/corefcn/module.mk
@@ -318,6 +318,7 @@
$(HDF5_CPPFLAGS) \
$(LLVM_CPPFLAGS) \
$(Z_CPPFLAGS)
+libinterp_corefcn_libcorefcn_la_LIBADD = $(Z_LIBS)

libinterp_corefcn_libcorefcn_la_CFLAGS = $(AM_CFLAGS) $(WARN_CFLAGS)

37 changes: 37 additions & 0 deletions sci-mathematics/octave/files/octave-4.2.2-ncurses-pkgconfig.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
--- a/m4/acinclude.m4
+++ b/m4/acinclude.m4
@@ -1327,32 +1327,8 @@
dnl Find a suitable termlib to use.
dnl
AC_DEFUN([OCTAVE_CHECK_LIB_TERMLIB], [
- TERM_LIBS=
- ac_octave_save_LIBS="$LIBS"
- AC_SEARCH_LIBS([tputs],
- [ncurses curses termcap terminfo termlib],
- [], [])
- LIBS="$ac_octave_save_LIBS"
- case "$ac_cv_search_tputs" in
- -l*)
- TERM_LIBS="$ac_cv_search_tputs"
- ;;
- no)
- warn_termlibs="I couldn't find -ltermcap, -lterminfo, -lncurses, -lcurses, or -ltermlib!"
- AC_MSG_WARN([$warn_termlibs])
- ;;
- esac
-
-dnl Old code (9/9/2012). Delete when new code is definitely proven.
-dnl
-dnl for _termlib in ncurses curses termcap terminfo termlib; do
-dnl AC_CHECK_LIB([${_termlib}], [tputs], [
-dnl TERM_LIBS="-l${termlib}"
-dnl octave_cv_lib_found_termlib=yes
-dnl break])
-dnl done
-
- AC_SUBST(TERM_LIBS)
+ PKG_CHECK_MODULES([TERM], [ncurses])
+ CPPFLAGS="${CPPFLAGS} ${TERM_CFLAGS}"
])
dnl
dnl Check for the Qhull version.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
--- a/configure.ac 2018-04-30 19:03:56.000000000 +0200
+++ a/configure.ac.new 2018-05-22 12:23:30.371174341 +0200
@@ -1946,11 +1946,11 @@
MAGICK_LIBS=

PKG_CHECK_EXISTS([$magick++], [
- dnl Make sure we only get -I, -L, and -l flags.
+ dnl Make sure we only get -I, -D, -L, and -l flags.
dnl Some Graphics/ImageMagick++ dnl packages add extra flags that are
dnl useful when building Graphics/ImageMagick++ extentions. These extra
dnl flags break the Octave build.
- MAGICK_CPPFLAGS="$($PKG_CONFIG --cflags-only-I $magick++ | $SED -e 's/^ *$//')"
+ MAGICK_CPPFLAGS=`$PKG_CONFIG --cflags $magick++ | sed -e 's/\(-@<:@DI@:>@@<:@^ \t@:>@*\)\|\(-@<:@^ \t@:>@*\)/\1/g'`
MAGICK_LDFLAGS="$($PKG_CONFIG --libs-only-L $magick++ | $SED -e 's/^ *$//')"
MAGICK_LIBS="$($PKG_CONFIG --libs-only-l $magick++ | $SED -e 's/^ *$//')"

16 changes: 16 additions & 0 deletions sci-mathematics/octave/files/octave-4.4.0-imagemagick.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
--- a/libinterp/corefcn/__magick_read__.cc 2018-05-22 12:25:37.688173855 +0200
+++ a/libinterp/corefcn/__magick_read__.cc.new 2018-05-22 12:32:51.475172200 +0200
@@ -817,10 +817,11 @@
// depth is 8, there's a good chance that we will be limited. It
// is also the GraphicsMagick recommended setting and the default
// for ImageMagick.
- if (QuantumDepth < 16)
+ using namespace Magick;
+ if (MAGICKCORE_QUANTUM_DEPTH < 16)
warning_with_id ("Octave:GraphicsMagick-Quantum-Depth",
"your version of %s limits images to %d bits per pixel\n",
- MagickPackageName, QuantumDepth);
+ MagickPackageName, MAGICKCORE_QUANTUM_DEPTH);

initialized = true;
}
10 changes: 10 additions & 0 deletions sci-mathematics/octave/files/octave-4.4.0-qt-5.11.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- octave-4.4.0-orig/libgui/src/settings-dialog.cc 2018-05-01 03:03:56.000000000 +1000
+++ octave-4.4.0/libgui/src/settings-dialog.cc 2018-07-03 19:35:41.865149269 +1000
@@ -41,6 +41,7 @@
#include <QHash>
#include <QMessageBox>
#include <QTextCodec>
+#include <QButtonGroup>

#if defined (HAVE_QSCINTILLA)
# include "octave-qscintilla.h"
11 changes: 11 additions & 0 deletions sci-mathematics/octave/files/octave-4.4.0-texi.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/doc/interpreter/module.mk 2018-04-30 19:03:56.000000000 +0200
+++ a/doc/interpreter/module.mk.new 2018-05-22 12:17:03.587175816 +0200
@@ -368,6 +368,8 @@
$(AWK) -f $(srcdir)/%reldir%/mkcontrib.awk $(srcdir)/%reldir%/contributors.in > $@-t && \
mv $@-t $@

+%reldir%/preface.texi: %reldir%/contributors.texi
+
AUTHORS: %reldir%/preface.texi %reldir%/contributors.texi | %reldir%/$(octave_dirstamp)
$(AM_V_MAKEINFO)rm -f $@-t $@ && \
if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/%reldir%/contributors.texi ] && [ ! -f %reldir%/contributors.texi ]; then \
19 changes: 19 additions & 0 deletions sci-mathematics/octave/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sci-mathematics@gentoo.org</email>
<name>Gentoo Mathematics Project</name>
</maintainer>
<longdescription lang="en">
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="glpk">Add support for <pkg>sci-mathematics/glpk</pkg> for linear programming</flag>
<flag name="gui">Enable the graphical user interface</flag>
<flag name="openssl">Use <pkg>dev-libs/openssl</pkg> for low level hash functions</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>
<flag name="sparse">Add enhanced support for sparse matrix algebra with SuiteSparse</flag>
</use>
</pkgmetadata>
195 changes: 195 additions & 0 deletions sci-mathematics/octave/octave-4.4.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

inherit autotools flag-o-matic fortran-2 gnome2-utils java-pkg-opt-2 pax-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 graphicsmagick gui hdf5 +imagemagick java libressl opengl
portaudio postscript +qhull +qrupdate readline sndfile +sparse ssl static-libs X zlib"
KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"

RDEPEND="
app-arch/bzip2
app-text/ghostscript-gpl
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= )
imagemagick? (
!graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
)
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=
)
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl: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=
)
X? ( x11-libs/libX11:0= )"
DEPEND="${RDEPEND}
dev-util/gperf
sys-apps/texinfo
virtual/pkgconfig
doc? (
dev-texlive/texlive-fontsrecommended
|| ( dev-texlive/texlive-plaingeneric dev-texlive/texlive-genericrecommended )
dev-texlive/texlive-metapost
virtual/latex-base
)
gui? ( dev-qt/linguist-tools:5 )
java? ( >=virtual/jdk-1.6.0 )
qrupdate? ( app-misc/pax-utils )
sparse? ( app-misc/pax-utils )"

PATCHES=(
"${FILESDIR}"/${PN}-4.4.0-texi.patch
"${FILESDIR}"/${PN}-4.2.0-disable-getcwd-path-max-test-as-it-is-too-slow.patch
"${FILESDIR}"/${PN}-4.4.0-imagemagick-configure.patch
"${FILESDIR}"/${PN}-4.4.0-imagemagick.patch
"${FILESDIR}"/${PN}-4.2.0-pkgbuilddir.patch
"${FILESDIR}"/${PN}-4.2.2-ncurses-pkgconfig.patch
"${FILESDIR}"/${PN}-4.2.0-zlib-underlinking.patch
"${FILESDIR}"/${PN}-4.4.0-qt-5.11.patch
)

src_prepare() {
# 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

default
eautoreconf
}

src_configure() {
# [QA] detect underlinking #593670
append-ldflags $(test-flags-CXX -Wl,-z,defs)

# 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

econf \
--localstatedir="${EPREFIX}/var/state/octave" \
--with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \
--with-lapack="$($(tc-getPKG_CONFIG) --libs lapack)" \
--disable-64 \
--disable-jit \
--enable-shared \
--with-z \
--with-bz2 \
--without-OSMesa \
$(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 imagemagick magick $(usex graphicsmagick GraphicsMagick ImageMagick)) \
$(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 X x)
}

src_compile() {
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() {
gnome2_icon_cache_update
xdg_mimeinfo_database_update
xdg_desktop_database_update
}

pkg_postrm() {
gnome2_icon_cache_update
xdg_mimeinfo_database_update
xdg_desktop_database_update
}

0 comments on commit 75689f4

Please sign in to comment.