media-gfx/meshlab: fix align and plugin path
authorAmy Liffey <amynka@gentoo.org>
Wed, 27 Dec 2017 16:16:45 +0000 (17:16 +0100)
committerAmy Liffey <amynka@gentoo.org>
Wed, 27 Dec 2017 16:21:15 +0000 (17:21 +0100)
- Align fix -> Submitted-by:luc_pierard_de_maujouy@yahoo.fr
Closes: https://bugs.gentoo.org/638796

Package-Manager: Portage-2.3.13, Repoman-2.3.3

media-gfx/meshlab/files/2016.12/meshlab-2016.12-align1.patch [new file with mode: 0644]
media-gfx/meshlab/files/2016.12/meshlab-2016.12-align2.patch [new file with mode: 0644]
media-gfx/meshlab/files/2016.12/meshlab-2016.12-fix-plugins-path.patch [new file with mode: 0644]
media-gfx/meshlab/meshlab-2016.12-r1.ebuild [new file with mode: 0644]

diff --git a/media-gfx/meshlab/files/2016.12/meshlab-2016.12-align1.patch b/media-gfx/meshlab/files/2016.12/meshlab-2016.12-align1.patch
new file mode 100644 (file)
index 0000000..cdba89c
--- /dev/null
@@ -0,0 +1,16 @@
+--- a/meshlabplugins/edit_align/align/AlignGlobal.cpp  2016-12-23 13:24:59.000000000 +0300
++++ b/meshlabplugins/edit_align/align/AlignGlobal.cpp  2017-11-26 03:05:11.010113483 +0300
+@@ -429,11 +429,11 @@
+ 
+ ******************************/
+ 
+-bool AlignGlobal::GlobalAlign(const std::map<int,string> &Names,      const double epsilon, int maxiter, bool Rigid, FILE *elfp, CallBack* cb )
++bool AlignGlobal::GlobalAlign(const std::map<int,string> &Names,      const double epsilon, int maxiter, bool Rigid, FILE *elfp, CallBackPos* cb )
+ {
+   double change;
+   int step, localmaxiter;
+-  cb("Global Alignment...");
++  cb(0,"Global Alignment...");
+   LOG(elfp,"----------------\n----------------\nGlobalAlignment (target eps %7.3f)\n",epsilon);
+ 
+   queue<AlignGlobal::Node *>  Q;
diff --git a/media-gfx/meshlab/files/2016.12/meshlab-2016.12-align2.patch b/media-gfx/meshlab/files/2016.12/meshlab-2016.12-align2.patch
new file mode 100644 (file)
index 0000000..455eec0
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/meshlabplugins/edit_align/align/AlignGlobal.h    2016-12-23 13:24:59.000000000 +0300
++++ b/meshlabplugins/edit_align/align/AlignGlobal.h    2017-11-26 03:10:09.210116792 +0300
+@@ -115,7 +115,7 @@
+       Node *ChooseDormantWithMostActiveLink  ();
+   void MakeAllDormant();
+   void Clear();
+-  bool GlobalAlign(const std::map<int,std::string> &Names,    const double epsilon, int maxiter, bool Rigid, FILE *elfp=0, CallBack * cb=DummyCallBack );
++  bool GlobalAlign(const std::map<int,std::string> &Names,    const double epsilon, int maxiter, bool Rigid, FILE *elfp=0, CallBackPos * cb=DummyCallBackPos );
+ 
+     bool CheckGraph();
+ 
diff --git a/media-gfx/meshlab/files/2016.12/meshlab-2016.12-fix-plugins-path.patch b/media-gfx/meshlab/files/2016.12/meshlab-2016.12-fix-plugins-path.patch
new file mode 100644 (file)
index 0000000..d7b17fe
--- /dev/null
@@ -0,0 +1,17 @@
+diff --git a/common/pluginmanager.cpp b/common/pluginmanager.cpp
+index 5354055..9a523d4 100644
+--- a/common/pluginmanager.cpp
++++ b/common/pluginmanager.cpp
+@@ -189,7 +189,11 @@ QString PluginManager::osDependentFileBaseName(const QString &plname)
+ 
+ QString PluginManager::getBaseDirPath()
+ {
+-  QDir baseDir(qApp->applicationDirPath());
++  #if defined(Q_OS_LINUX)
++      QDir baseDir("/usr/share/meshlab");
++  #else
++      QDir baseDir(qApp->applicationDirPath());
++  #endif
+ 
+ #if defined(Q_OS_WIN)
+   // Windows:
diff --git a/media-gfx/meshlab/meshlab-2016.12-r1.ebuild b/media-gfx/meshlab/meshlab-2016.12-r1.ebuild
new file mode 100644 (file)
index 0000000..8242619
--- /dev/null
@@ -0,0 +1,104 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit qmake-utils
+
+DESCRIPTION="the open source system for processing and editing 3D triangular meshes"
+HOMEPAGE="http://www.meshlab.net"
+VCG_VERSION="1.0.1"
+SRC_URI="https://github.com/cnr-isti-vclab/meshlab/archive/v${PV}.tar.gz -> ${P}.tar.gz
+        https://github.com/cnr-isti-vclab/vcglib/archive/v${VCG_VERSION}.tar.gz -> vcglib-${VCG_VERSION}.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="-minimal"
+DEPEND="dev-cpp/eigen:3
+       dev-cpp/muParser
+       dev-qt/qtcore:5
+       dev-qt/qtopengl:5
+       dev-qt/qtscript:5
+       dev-qt/qtxmlpatterns:5
+       >=media-gfx/jhead-3.00-r2
+       media-libs/glew:0
+       media-libs/qhull
+       =media-libs/lib3ds-1*
+       media-libs/openctm
+       sci-libs/levmar
+       sci-libs/mpir"
+
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/meshlab-${PV}/src"
+
+PATCHES=(
+               "${FILESDIR}/${PV}/0001-set-shader-and-texture-paths.patch"
+               #remove ot working plugins
+               "${FILESDIR}/${PV}/remove-edit_mutualcorrs.patch"
+               "${FILESDIR}/${PV}/remove-io_TXT.patch"
+               #since structure synth doesn't seem to be compiling
+               "${FILESDIR}/${PV}/0001-disable-filter-ssynth.patch"
+               #this has been fixed in the tree
+               "${FILESDIR}/${PV}/0001-disable-edit-quality.patch"
+               #this causes segfaults 
+               "${FILESDIR}/${PV}/0001-disable-filter-layer.patch"
+               #for when we use minimal
+               "${FILESDIR}/${PV}/0001-compile-server.patch"
+               "${FILESDIR}/${PV}/0001-use-external-lib3ds.patch"
+               "${FILESDIR}/${PV}/0001-use-external-openctm.patch"
+               "${FILESDIR}/${PV}/0001-use-external-muParser.patch"
+               "${FILESDIR}/${PV}/0001-use-external-bzip.patch"
+               "${FILESDIR}/${PV}/0001-use-external-jhead.patch"
+               "${FILESDIR}/${PV}/0001-use-external-glew.patch"
+               #cause gnu stack quickstart related qa
+               "${FILESDIR}/${PV}/0001-remove-not-sane-plugins.patch"
+               "${FILESDIR}/${PV}/${P}-fix-plugins-path.patch"
+               "${FILESDIR}/${PV}/${P}-align1.patch"
+               "${FILESDIR}/${PV}/${P}-align2.patch"
+       )
+
+src_prepare(){
+       mv "${WORKDIR}/vcglib-${VCG_VERSION}" "${WORKDIR}/vcglib" || die "vcglib mv failed"
+       default
+       #proof of patchset
+       #remove libs that are being used from the system
+       rm -r "external/lib3ds-1.3.0" || die "rm failed"
+       rm -r "external/OpenCTM-1.0.3" || die "rm failed"
+       rm -r "external/muparser_v132" || die "rm failed"
+       rm -r "external/muparser_v225" || die "rm failed"
+       rm -r "external/bzip2-1.0.5" || die "rm failed"
+       rm -r "external/jhead-2.95" || die "rm failed"
+       rm -r "external/glew-1.5.1" || die "rm failed"
+       rm -r "external/glew-1.7.0" || die "rm failed"
+       #we still depend on lm.h
+       #rm -r "external"
+       rm -r "distrib/plugins/U3D_W32" || die
+       rm -r "distrib/plugins/U3D_OSX" || die
+}
+
+src_configure() {
+       use minimal || eqmake5 -r meshlab_full.pro
+       use minimal && eqmake5 -r meshlab_mini.pro
+}
+
+src_install() {
+       dobin distrib/{meshlab,meshlabserver}
+       dolib distrib/libcommon.so.1.0.0
+       dosym libcommon.so.1.0.0 /usr/$(get_libdir)/libcommon.so.1
+       dosym libcommon.so.1 /usr/$(get_libdir)/libcommon.so
+       exeinto /usr/$(get_libdir)/meshlab/plugins
+       doexe distrib/plugins/*.so
+       insinto /usr/share/meshlab/shaders
+       doins -r distrib/shaders/*
+       insinto /usr/share/meshlab/plugins
+       doins -r distrib/plugins/*
+       insinto /usr/share/meshlab/textures
+       doins -r distrib/textures/*
+       insinto /usr/share/meshlab/sample
+       doins -r distrib/sample/*
+       newicon "${S}"/meshlab/images/eye512.png "${PN}".png
+       make_desktop_entry meshlab "Meshlab" "${PN}" Graphics
+}