aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-misc')
-rw-r--r--sci-misc/elmer-post/ChangeLog16
-rw-r--r--sci-misc/elmer-post/Manifest4
-rw-r--r--sci-misc/elmer-post/elmer-post-5.4.1-r1.ebuild56
-rw-r--r--sci-misc/elmer-post/elmer-post-6.0_p4651.ebuild60
-rw-r--r--sci-misc/elmer-post/elmer-post-9999.ebuild66
-rw-r--r--sci-misc/elmer-post/files/elmer-post-6.0_p4651-bfr-overflow.patch16
-rw-r--r--sci-misc/elmer-post/files/elmer-post-6.0_p4651-impl-dec.patch15
-rw-r--r--sci-misc/elmer-post/files/elmer-post-6.0_p4651-oof.patch181
-rw-r--r--sci-misc/elmer-post/files/elmer-post-6.0_p4651-tcltk8.6.patch355
-rw-r--r--sci-misc/elmer-post/files/elmer-post-6.0_p4651-underlinking.patch20
-rw-r--r--sci-misc/elmer-post/metadata.xml5
11 files changed, 704 insertions, 90 deletions
diff --git a/sci-misc/elmer-post/ChangeLog b/sci-misc/elmer-post/ChangeLog
new file mode 100644
index 000000000..a9360f17a
--- /dev/null
+++ b/sci-misc/elmer-post/ChangeLog
@@ -0,0 +1,16 @@
+# ChangeLog for sci-misc/elmer-post
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*elmer-post-6.0_p4651 (03 Dec 2013)
+
+ 03 Dec 2013; Justin Lecher <jlec@gentoo.org> -elmer-post-5.4.1-r1.ebuild,
+ +elmer-post-6.0_p4651.ebuild, elmer-post-9999.ebuild,
+ +files/elmer-post-6.0_p4651-bfr-overflow.patch,
+ +files/elmer-post-6.0_p4651-impl-dec.patch,
+ +files/elmer-post-6.0_p4651-oof.patch,
+ +files/elmer-post-6.0_p4651-tcltk8.6.patch,
+ +files/elmer-post-6.0_p4651-underlinking.patch, +metadata.xml:
+ Bump EAPI; fix DESCRIPTION; drop keywords from live ebuild; use correct phase
+ functions; simplify configure
+
diff --git a/sci-misc/elmer-post/Manifest b/sci-misc/elmer-post/Manifest
index 02d085523..8ce95fea2 100644
--- a/sci-misc/elmer-post/Manifest
+++ b/sci-misc/elmer-post/Manifest
@@ -1,3 +1 @@
-DIST elmer-post-5.4.1.tar.gz 5211292 SHA256 4df38f81937f5357f6e9ca6708ae820e1e6119c9379222e0bff10435e26dc19d SHA512 29450b72245265fca0e4ff83307e2ae189ff506b32b6ee706367fe303d430095faba475f98d8bd6eda1e4d8688e81aa0552366905acc09d0e58de9c27a35eafc WHIRLPOOL e386498bc56611a3680e5c80db55097ce40b107700c447b4d9abb554b7ebd6ab35d324c83d570ccea7f7497d5d41e5496ea526f9e5829177a092401da1f8140f
-EBUILD elmer-post-5.4.1-r1.ebuild 1347 SHA256 ba3c9357654ff597e501f1938de839d9faf00bcc77d905f6ed8ca5028727b458 SHA512 73f57b079420a8b215700a8b9c3f812101f152ad64a06220d3ce1ae4619a28288bc7ee8b22042ea887b5c232c4237c5e57404bc91cad2bf84bcc2dcc464cdea7 WHIRLPOOL 8a91e631da5a8c9e9590c50ab685ab3c15736ed10d59914571156e5f6ce18b264700366ef9e8aa7cf16d512dfc874be5eb405fba7040f75acfd1d9035812935b
-EBUILD elmer-post-9999.ebuild 1438 SHA256 81d8ef803f36a607c7a2cc92e92535537e5b60d58140911639b25a181607ed32 SHA512 4fc05fe713120f954d69798c0bad1825ea5007686ace0bed939f4d3365ba58784f1c366e77e99061e6887b17c9c924870dc0d7938c53c11412ea670c43829483 WHIRLPOOL 4d57260192c4f45b3b5a232b28a2944501e3a89a96b3e0bad5d03e74a66377e13d7bf864c6c69b359ba50ac4b57ac941bd3d161ecb617af48fdfeec8e1738a2f
+DIST elmer-post-6.0_p4651.tar.gz 5213917 SHA256 6c54ea46701e95a7ef574198668013169231dd453faa6562aa01ce388bc49aba SHA512 4ff54ea1831923a9522f19cb1adb8a2b56959c31be26b2da61f6af56571bc9174a743fbb7457062c3bbf528056b53c0cb67fedede4e28871fe2a42d1dd6f9bc2 WHIRLPOOL d0f7363c7b5f8faeb6f8279e86e3050c98e3d1d96debc3ecbfd4d9e94152867363e2bfae7ad5ef214b6b249998d85577ab91527d61b94cfacbd4553b89a22eac
diff --git a/sci-misc/elmer-post/elmer-post-5.4.1-r1.ebuild b/sci-misc/elmer-post/elmer-post-5.4.1-r1.ebuild
deleted file mode 100644
index 459f6ce65..000000000
--- a/sci-misc/elmer-post/elmer-post-5.4.1-r1.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-
-inherit autotools eutils flag-o-matic
-
-ELMER_ROOT="elmerfem"
-MY_PN=${PN/elmer-/}
-
-DESCRIPTION="Elmer is a collection of finite element programs, libraries, and visualization tools, elmerpost"
-HOMEPAGE="http://www.csc.fi/english/pages/elmer"
-SRC_URI="http://elmerfem.svn.sourceforge.net/viewvc/${ELMER_ROOT}/release/${PV}/${MY_PN}/?view=tar -> ${P}.tar.gz"
-RESTRICT="mirror"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE="opengl X debug"
-DEPEND="=dev-lang/tcl-8.4*
- =dev-lang/tk-8.4*
- opengl? ( virtual/opengl
- media-libs/ftgl )
- sci-libs/matc"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/${PV}/post"
-
-src_unpack() {
- unpack ${A}
- cd "${S}"
- # configure must be executable
- chmod +x configure
- eautoreconf
-}
-
-src_compile() {
- cd "${S}"
- local myconf
- export FC="gfortran"
- export F77="gfortran"
- myconf="${myconf} --with-matc"
- use opengl && append-cppflags -I/usr/include/FTGL
- use debug &&
- myconf="${myconf} --with-debug" ||
- myconf="${myconf} --without-debug"
- econf $myconf \
- $(use_with X x) \
- || die "econf failed"
- emake || die "emake failed"
-}
-
-src_install() {
- emake ELMER_POST_DATADIR="${D}/usr/share/elmerpost" DESTDIR="${D}" install || die "emake install failed"
-}
diff --git a/sci-misc/elmer-post/elmer-post-6.0_p4651.ebuild b/sci-misc/elmer-post/elmer-post-6.0_p4651.ebuild
new file mode 100644
index 000000000..76159c7d5
--- /dev/null
+++ b/sci-misc/elmer-post/elmer-post-6.0_p4651.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+AUTOTOOLS_AUTORECONF=true
+
+inherit autotools-utils flag-o-matic multilib toolchain-funcs
+
+ELMER_ROOT="elmerfem"
+MY_PN=${PN/elmer-/}
+
+DESCRIPTION="Finite element programs, libraries, and visualization tools - elmerpost"
+HOMEPAGE="http://www.csc.fi/english/pages/elmer"
+SRC_URI="http://elmerfem.svn.sourceforge.net/viewvc/${ELMER_ROOT}/release/${PV%_p*}/${MY_PN}/?view=tar&pathrev=4651 -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug opengl"
+
+RDEPEND="
+ dev-lang/tcl
+ dev-lang/tk
+ opengl? (
+ virtual/opengl
+ media-libs/ftgl
+ )
+ sci-libs/matc"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/post"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-oof.patch
+ "${FILESDIR}"/${P}-underlinking.patch
+ "${FILESDIR}"/${P}-tcltk8.6.patch
+ "${FILESDIR}"/${P}-bfr-overflow.patch
+ "${FILESDIR}"/${P}-impl-dec.patch
+)
+
+src_prepare() {
+ use opengl && append-cppflags $($(tc-getPKG_CONFIG) --cflags ftgl)
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_with debug)
+ --with-matc
+ --with-x
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install ELMER_POST_DATADIR="/usr/share/elmerpost"
+}
diff --git a/sci-misc/elmer-post/elmer-post-9999.ebuild b/sci-misc/elmer-post/elmer-post-9999.ebuild
index 5ad6804d2..fb87afe18 100644
--- a/sci-misc/elmer-post/elmer-post-9999.ebuild
+++ b/sci-misc/elmer-post/elmer-post-9999.ebuild
@@ -1,58 +1,62 @@
-# Copyright 1999-2007 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
-EAPI="4"
+EAPI=5
-inherit autotools eutils flag-o-matic subversion
+AUTOTOOLS_AUTORECONF=true
+
+inherit autotools-utils flag-o-matic multilib subversion toolchain-funcs
ELMER_ROOT="elmerfem"
MY_PN=${PN/elmer-/}
-DESCRIPTION="Elmer is a collection of finite element programs, libraries, and visualization tools, elmerpost"
+DESCRIPTION="Finite element programs, libraries, and visualization tools - elmerpost"
HOMEPAGE="http://www.csc.fi/english/pages/elmer"
-#SRC_URI="http://elmerfem.svn.sourceforge.net/viewvc/${ELMER_ROOT}/release/${PV}/${MY_PN}/?view=tar -> ${P}.tar.gz"
SRC_URI=""
-RESTRICT="mirror"
ESVN_REPO_URI="https://elmerfem.svn.sourceforge.net/svnroot/elmerfem/trunk/${MY_PN}"
ESVN_PROJECT="${MY_PN}"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE="opengl X debug"
-DEPEND="dev-lang/tcl
+KEYWORDS=""
+IUSE="debug opengl"
+
+RDEPEND="
+ dev-lang/tcl
dev-lang/tk
- opengl? ( virtual/opengl
- media-libs/ftgl )
+ opengl? (
+ virtual/opengl
+ media-libs/ftgl
+ )
sci-libs/matc"
-RDEPEND="${DEPEND}"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/post"
-S="${WORKDIR}/${PV}/post"
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.0_p4651-oof.patch
+ "${FILESDIR}"/${PN}-6.0_p4651-underlinking.patch
+ "${FILESDIR}"/${PN}-6.0_p4651-tcltk8.6.patch
+ "${FILESDIR}"/${PN}-6.0_p4651-bfr-overflow.patch
+ "${FILESDIR}"/${PN}-6.0_p4651-impl-dec.patch
+)
src_prepare() {
- #unpack ${A}
- cd "${S}"
- # configure must be executable
- #chmod +x configure
- eautoreconf
+ use opengl && append-cppflags $($(tc-getPKG_CONFIG) --cflags ftgl)
+ autotools-utils_src_prepare
}
src_configure() {
- cd "${S}"
- local myconf
- export FC="gfortran"
- export F77="gfortran"
- myconf="${myconf} --with-matc"
- use opengl && append-cppflags -I/usr/include/FTGL
- use debug &&
- myconf="${myconf} --with-debug" ||
- myconf="${myconf} --without-debug"
- econf $myconf \
- $(use_with X x) \
- || die "econf failed"
+ local myeconfargs=(
+ $(use_with debug)
+ --with-matc
+ --with-x
+ )
+ autotools-utils_src_configure
}
src_install() {
- emake ELMER_POST_DATADIR="/usr/share/${MY_PN}" DESTDIR="${D}" install || die "emake install failed"
+ autotools-utils_src_install ELMER_POST_DATADIR="/usr/share/elmerpost"
}
diff --git a/sci-misc/elmer-post/files/elmer-post-6.0_p4651-bfr-overflow.patch b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-bfr-overflow.patch
new file mode 100644
index 000000000..b5d78116c
--- /dev/null
+++ b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-bfr-overflow.patch
@@ -0,0 +1,16 @@
+ src/sico2elmer/sico2elmerc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/sico2elmer/sico2elmerc.c b/src/sico2elmer/sico2elmerc.c
+index 1522030..6ae875c 100755
+--- a/src/sico2elmer/sico2elmerc.c
++++ b/src/sico2elmer/sico2elmerc.c
+@@ -27,7 +27,7 @@ void STDCALLBULL FC_FUNC(postgrid,POSTGRID) (float *xi, /* unscaled x coordinat
+ int imax, jmax, kcmax, ktmax;
+ float *staggered_grid[2];
+ float actual_scaled_coord[3];
+- char groupid[4], filename[80], yes_no, *suffix=".ep";
++ char groupid[8], filename[80], yes_no, *suffix=".ep";
+ FILE *ptFile;
+
+ /* constants */
diff --git a/sci-misc/elmer-post/files/elmer-post-6.0_p4651-impl-dec.patch b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-impl-dec.patch
new file mode 100644
index 000000000..30c82595e
--- /dev/null
+++ b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-impl-dec.patch
@@ -0,0 +1,15 @@
+ src/screensave.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/screensave.c b/src/screensave.c
+index ae4f577..810f54c 100755
+--- a/src/screensave.c
++++ b/src/screensave.c
+@@ -26,6 +26,7 @@
+ #include <math.h>
+ #include <stdlib.h>
+ #include <strings.h>
++#include <string.h>
+
+
+ #include <GL/gl.h>
diff --git a/sci-misc/elmer-post/files/elmer-post-6.0_p4651-oof.patch b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-oof.patch
new file mode 100644
index 000000000..cd9368748
--- /dev/null
+++ b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-oof.patch
@@ -0,0 +1,181 @@
+ src/ElmerPost.c | 2 +-
+ src/Makefile.am | 16 ++++++++--------
+ src/camera/context.cc | 2 +-
+ src/camera/file.cc | 2 +-
+ src/camera/glp.h | 4 ++--
+ src/elmerpost.h | 2 +-
+ src/fttext.cpp | 2 +-
+ src/graphics/graphics.h | 2 +-
+ src/second.c | 2 +-
+ src/sico2elmer/sico2elmerc.c | 2 +-
+ 10 files changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/src/ElmerPost.c b/src/ElmerPost.c
+index 2a238b0..9c63113 100644
+--- a/src/ElmerPost.c
++++ b/src/ElmerPost.c
+@@ -45,7 +45,7 @@
+
+ #define MODULE_MAIN
+ #include "elmerpost.h"
+-#include "../config.h"
++#include "config.h"
+
+ #include <tcl.h>
+ #include <tk.h>
+diff --git a/src/Makefile.am b/src/Makefile.am
+index f4234a1..cd35e72 100755
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -98,31 +98,31 @@ install-data-local:
+
+ @echo "Instaling help to ${ELMER_POST_DATADIR}/help"
+ mkdir -p $(DESTDIR)$(ELMER_POST_DATADIR)/help
+- cp -r help/* $(DESTDIR)$(ELMER_POST_DATADIR)/help
++ cp -r $(srcdir)/help/* $(DESTDIR)$(ELMER_POST_DATADIR)/help
+ rm -rf `find $(DESTDIR)$(ELMER_POST_DATADIR)/help -name .svn`
+
+ @echo "Instaling tcl scripts to ${ELMER_POST_DATADIR}/tcl"
+ mkdir -p $(DESTDIR)$(ELMER_POST_DATADIR)/tcl
+- cp -r tcl/* $(DESTDIR)$(ELMER_POST_DATADIR)/tcl
++ cp -r $(srcdir)/tcl/* $(DESTDIR)$(ELMER_POST_DATADIR)/tcl
+ rm -rf `find $(DESTDIR)$(ELMER_POST_DATADIR)/tcl -name .svn`
+
+ @echo "Instaling initialization scripts to ${ELMER_POST_DATADIR}/lib"
+ mkdir -p $(DESTDIR)$(ELMER_POST_DATADIR)/lib
+- cp -r lib/* $(DESTDIR)$(ELMER_POST_DATADIR)/lib
++ cp -r $(srcdir)/lib/* $(DESTDIR)$(ELMER_POST_DATADIR)/lib
+ rm -rf `find $(DESTDIR)$(ELMER_POST_DATADIR)/lib -name .svn`
+
+ @echo "Installing fonts to $(ELMER_POST_DATADIR)/fonts"
+ mkdir -p $(DESTDIR)$(ELMER_POST_DATADIR)/fonts
+- cp -r fonts/* $(DESTDIR)$(ELMER_POST_DATADIR)/fonts
++ cp -r $(srcdir)/fonts/* $(DESTDIR)$(ELMER_POST_DATADIR)/fonts
+ rm -rf `find $(DESTDIR)$(ELMER_POST_DATADIR)/fonts -name .svn`
+ #
+ # Copy the help and tcl
+ #
+ dist-hook:
+- cp -r tcl $(distdir)
+- cp -r help $(distdir)
+- cp -r lib $(distdir)
+- cp -r fonts $(distdir)
++ cp -r $(srcdir)/tcl $(distdir)
++ cp -r $(srcdir)/help $(distdir)
++ cp -r $(srcdir)/lib $(distdir)
++ cp -r $(srcdir)/fonts $(distdir)
+ rm -rf `find $(distdir)/ -name .svn`
+ rm -rf `find $(distdir)/ -name CVS`
+ rm -rf `find $(distdir)/ -name \#*`
+diff --git a/src/camera/context.cc b/src/camera/context.cc
+index c2bcbd4..e7926b3 100755
+--- a/src/camera/context.cc
++++ b/src/camera/context.cc
+@@ -38,7 +38,7 @@
+ // Include necessary headers.
+ //
+
+-#include <../../config.h>
++#include <config.h>
+
+ #include "glp.h"
+ #include <math.h>
+diff --git a/src/camera/file.cc b/src/camera/file.cc
+index 1f4cd30..6544830 100755
+--- a/src/camera/file.cc
++++ b/src/camera/file.cc
+@@ -47,7 +47,7 @@
+ //
+
+
+-#include <../../config.h>
++#include <config.h>
+
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/src/camera/glp.h b/src/camera/glp.h
+index 8c65318..31a2e49 100755
+--- a/src/camera/glp.h
++++ b/src/camera/glp.h
+@@ -35,7 +35,7 @@
+
+ #ifndef _GL_GLP_H_
+ # define _GL_GLP_H_
+-#include "../../config.h"
++#include "config.h"
+
+ #if defined(WIN32) ||defined(MINGW32)
+ #include <windows.h>
+@@ -49,7 +49,7 @@
+ // Include necessary headers.
+ //
+ #include <GL/gl.h>
+-#include "../../config.h"
++#include "config.h"
+
+
+
+diff --git a/src/elmerpost.h b/src/elmerpost.h
+index 53560c0..7d312df 100755
+--- a/src/elmerpost.h
++++ b/src/elmerpost.h
+@@ -44,7 +44,7 @@
+ *
+ ******************************************************************************/
+
+-#include "../config.h"
++#include "config.h"
+
+ #if defined(WIN32) || defined(MINGW32)
+ #include <windows.h>
+diff --git a/src/fttext.cpp b/src/fttext.cpp
+index 9ee88f8..48a3e0a 100644
+--- a/src/fttext.cpp
++++ b/src/fttext.cpp
+@@ -10,7 +10,7 @@
+ // Date: 15. Jan 2008
+ //-----------------------------------------------------------------------------------
+ #if defined(HAVE_CONFIG_H)
+-#include "../config.h"
++#include "config.h"
+ #endif
+
+ #if defined(HAVE_FTGL_NEW) || defined(HAVE_FTGL_OLD)
+diff --git a/src/graphics/graphics.h b/src/graphics/graphics.h
+index 6e702c1..5d6d81b 100755
+--- a/src/graphics/graphics.h
++++ b/src/graphics/graphics.h
+@@ -67,7 +67,7 @@
+ *
+ ******************************************************************************/
+
+-#include "../../config.h"
++#include "config.h"
+
+ #ifndef MINGW32
+
+diff --git a/src/second.c b/src/second.c
+index b719556..128e404 100755
+--- a/src/second.c
++++ b/src/second.c
+@@ -45,7 +45,7 @@
+ ******************************************************************************/
+
+
+-#include "../config.h"
++#include "config.h"
+ #ifndef WIN32
+
+ #include <sys/types.h>
+diff --git a/src/sico2elmer/sico2elmerc.c b/src/sico2elmer/sico2elmerc.c
+index 1522030..23f3abb 100755
+--- a/src/sico2elmer/sico2elmerc.c
++++ b/src/sico2elmer/sico2elmerc.c
+@@ -1,6 +1,6 @@
+ #include "sico2elmer.h"
+
+-#include "../../config.h"
++#include "config.h"
+
+ /*
+ jv: added fortran function name and char ptr macros to (hopefully) enhance portability
diff --git a/sci-misc/elmer-post/files/elmer-post-6.0_p4651-tcltk8.6.patch b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-tcltk8.6.patch
new file mode 100644
index 000000000..31596e6f4
--- /dev/null
+++ b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-tcltk8.6.patch
@@ -0,0 +1,355 @@
+ src/ElmerPost.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/modules/matctcl.c | 8 ++++++++
+ src/modules/readfile.c | 4 ++++
+ src/modules/transforms.c | 40 ++++++++++++++++++++++++++++++++++++++++
+ src/screensave.c | 12 ++++++++++++
+ 5 files changed, 112 insertions(+)
+
+diff --git a/src/ElmerPost.c b/src/ElmerPost.c
+index 2a238b0..b9e8df5 100644
+--- a/src/ElmerPost.c
++++ b/src/ElmerPost.c
+@@ -183,7 +183,11 @@ static int SetParentObject( ClientData cl,Tcl_Interp *interp,int argc,char **arg
+ obj = (object_t *)obj_find( &VisualObject,argv[1] );
+ if ( !obj )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "parent: no such object [%s]", argv[1] );
++#else
++ sprintf( Tcl_GetStringResult(interp), "parent: no such object [%s]", argv[1] );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -346,13 +350,21 @@ static int ClipPlane( ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+ int i,id;
+
+ if ( argc != 6 ) {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "clip: Wrong number of arguments.\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "clip: Wrong number of arguments.\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+ sscanf( argv[1], "%d", &id );
+ if ( id < 0 || id > 5 ) {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "clip: Plane argument should be from a int from 0..5.\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "clip: Plane argument should be from a int from 0..5.\n" );
++#endif
+ return TCL_ERROR;
+ }
+ CurrentObject->ClipPlane[id] = id;
+@@ -779,7 +791,11 @@ static int TimeStep(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( argc != 2 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "c_TimeStep: wrong number of parameters.\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "c_TimeStep: wrong number of parameters.\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -790,7 +806,11 @@ static int TimeStep(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( n < 0 || n >= ElementModel->NofTimesteps )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "c_TimeStep: Invalid timestep.\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "c_TimeStep: Invalid timestep.\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -1028,7 +1048,11 @@ static int CurrentCamera(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( argc != 2 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "camera: wrong number of arguments\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "camera: wrong number of arguments\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -1038,7 +1062,11 @@ static int CurrentCamera(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+ if ( strcmp( cam->Name, argv[1] ) == 0 )
+ {
+ cam_set_current( cam );
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "%d", i );
++#else
++ sprintf( Tcl_GetStringResult(interp), "%d", i );
++#endif
+ return TCL_OK;
+ }
+ }
+@@ -1548,7 +1576,11 @@ static int ShowString( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+
+ if ( argc < 5 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "string: Wrong number of arguments.\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "string: Wrong number of arguments.\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -1587,7 +1619,11 @@ static int SetFont( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+ int i;
+ if ( argc < 1 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "Set font: Wrong number of arguments.\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "Set font: Wrong number of arguments.\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -2146,7 +2182,11 @@ static int WindowSize( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+
+
+ if ( argc < 3 ) {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "Usage: winsize width height" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "Usage: winsize width height" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -2184,7 +2224,11 @@ static int WindowSize( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+ static int WindowPosition( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+ {
+ if ( argc < 3 ) {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "Usage: winpos xpos ypos" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "Usage: winpos xpos ypos" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -2210,7 +2254,11 @@ static int MPlayer( ClientData cl, Tcl_Interp *interp, int argc, char **argv )
+ #else
+
+ if( argc < 2 ) {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "Usage: mplayer filename");
++#else
++ sprintf( Tcl_GetStringResult(interp), "Usage: mplayer filename");
++#endif
+ return TCL_ERROR;
+ }
+
+diff --git a/src/modules/matctcl.c b/src/modules/matctcl.c
+index 4d6b64f..b69f9ba 100755
+--- a/src/modules/matctcl.c
++++ b/src/modules/matctcl.c
+@@ -79,11 +79,19 @@ static VARIABLE *matc_tcl( VARIABLE *ptr )
+
+ FREEMEM( command );
+
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ if ( TCLInterp->result && (n=strlen(TCLInterp->result))>0 )
+ {
+ res = var_temp_new( TYPE_STRING,1,n );
+ for( i=0; i<n; i++ ) M( res,0,i ) = TCLInterp->result[i];
+ }
++#else
++ if ( Tcl_GetStringResult(TCLInterp) && (n=strlen(Tcl_GetStringResult(TCLInterp)))>0 )
++ {
++ res = var_temp_new( TYPE_STRING,1,n );
++ for( i=0; i<n; i++ ) M( res,0,i ) = Tcl_GetStringResult(TCLInterp)[i];
++ }
++#endif
+
+ return res;
+ }
+diff --git a/src/modules/readfile.c b/src/modules/readfile.c
+index 254601c..0bcc8f7 100755
+--- a/src/modules/readfile.c
++++ b/src/modules/readfile.c
+@@ -90,7 +90,11 @@ static int epReadFile( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+ fp = fopen( argv[1], "r" );
+ if ( !fp )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "ReadModel: can't open file [%s]\n",argv[1] );
++#else
++ sprintf( Tcl_GetStringResult(interp), "ReadModel: can't open file [%s]\n",argv[1] );
++#endif
+ return TCL_ERROR;
+ }
+
+diff --git a/src/modules/transforms.c b/src/modules/transforms.c
+index 19808ff..4038210 100755
+--- a/src/modules/transforms.c
++++ b/src/modules/transforms.c
+@@ -72,7 +72,11 @@ static int TrnPriority(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( argc != 2 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cTrnPriority: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cTrnPriority: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -80,7 +84,11 @@ static int TrnPriority(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( n <= 0 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cTrnPriority: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cTrnPriority: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -96,7 +104,11 @@ static int RotPriority(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( argc != 2 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cRotPrioryty: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cRotPrioryty: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -104,7 +116,11 @@ static int RotPriority(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( n <= 0 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cRotPriority: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cRotPriority: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -130,7 +146,11 @@ static int Rotate(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( argc != 4 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cRotate: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cRotate: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -138,7 +158,11 @@ static int Rotate(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( n <= 0 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cRotate: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cRotate: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -156,7 +180,11 @@ static int Scale(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( argc != 4 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cScale: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cScale: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -164,7 +192,11 @@ static int Scale(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( n <= 0 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cScale: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cScale: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+@@ -182,13 +214,21 @@ static int Translate(ClientData cl,Tcl_Interp *interp,int argc,char **argv)
+
+ if ( argc != 4 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cScale: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cScale: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+ if ( (n = sscanf( argv[3], "%lf %lf %lf", &x,&y,&z ) ) <= 0 )
+ {
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result, "cScale: wrong number of parameters\n" );
++#else
++ sprintf( Tcl_GetStringResult(interp), "cScale: wrong number of parameters\n" );
++#endif
+ return TCL_ERROR;
+ }
+
+diff --git a/src/screensave.c b/src/screensave.c
+index ae4f577..703fe24 100755
+--- a/src/screensave.c
++++ b/src/screensave.c
+@@ -56,7 +56,11 @@ static int ScreenSave( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+ sprintf( interp->result,
+ "screensave: can't open [%s] for writing!\n", argv[1] );
+ #else
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result,
++#else
++ sprintf( Tcl_GetStringResult(interp),
++#endif
+ "screensave: can't open [%s] for writing:\n%s\n",
+ argv[1], strerror(errno) );
+ #endif
+@@ -76,7 +80,11 @@ static int ScreenSave( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+ sprintf( interp->result,
+ "screensave: can't allocate enough memory!\n" );
+ #else
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result,
++#else
++ sprintf( Tcl_GetStringResult(interp),
++#endif
+ "screensave: can't allocate enough memory:\n%s\n",
+ strerror(errno) );
+ #endif
+@@ -100,7 +108,11 @@ static int ScreenSave( ClientData cl,Tcl_Interp *interp,int argc,char **argv )
+ sprintf( interp->result,
+ "screensave: error writing to [%s]!\n", argv[1] );
+ #else
++#if TCL_MAJOR_VERSION <=8 && TCL_MINOR_VERSION < 6
+ sprintf( interp->result,
++#else
++ sprintf( Tcl_GetStringResult(interp),
++#endif
+ "screensave: error writing to [%s]:\n%s\n",
+ argv[1], strerror(errno) );
+ #endif
diff --git a/sci-misc/elmer-post/files/elmer-post-6.0_p4651-underlinking.patch b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-underlinking.patch
new file mode 100644
index 000000000..45e0d3e71
--- /dev/null
+++ b/sci-misc/elmer-post/files/elmer-post-6.0_p4651-underlinking.patch
@@ -0,0 +1,20 @@
+ src/Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index f4234a1..6d99d31 100755
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -23,9 +23,11 @@ ElmerPost_LDADD=\
+ ./visuals/libvisuals.a \
+ ./graphics/libgraphics.a \
+ ./glaux/libglaux.a \
+- ./tk/libtk.a
++ ./tk/libtk.a \
++ -lX11
+
+ QueryGLXExt_SOURCES=QueryGLXExt.c
++QueryGLXExt_LDADD=-lX11
+
+ all-local: screensave.so
+ clean-local:
diff --git a/sci-misc/elmer-post/metadata.xml b/sci-misc/elmer-post/metadata.xml
new file mode 100644
index 000000000..897aa2e6b
--- /dev/null
+++ b/sci-misc/elmer-post/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+</pkgmetadata>