From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- sci-chemistry/vmd/Manifest | 8 + .../vmd/files/vmd-1.9.1-cuda-device_ptr.patch | 28 +++ .../vmd/files/vmd-1.9.2-format-security.patch | 16 ++ sci-chemistry/vmd/metadata.xml | 19 ++ sci-chemistry/vmd/vmd-1.9.2.ebuild | 251 +++++++++++++++++++++ 5 files changed, 322 insertions(+) create mode 100644 sci-chemistry/vmd/Manifest create mode 100644 sci-chemistry/vmd/files/vmd-1.9.1-cuda-device_ptr.patch create mode 100644 sci-chemistry/vmd/files/vmd-1.9.2-format-security.patch create mode 100644 sci-chemistry/vmd/metadata.xml create mode 100644 sci-chemistry/vmd/vmd-1.9.2.ebuild (limited to 'sci-chemistry/vmd') diff --git a/sci-chemistry/vmd/Manifest b/sci-chemistry/vmd/Manifest new file mode 100644 index 000000000000..aa1283c7ab08 --- /dev/null +++ b/sci-chemistry/vmd/Manifest @@ -0,0 +1,8 @@ +AUX vmd-1.9.1-cuda-device_ptr.patch 934 SHA256 8d32ebe81adb4ec0186ceba08743c0b6a25c76b3c58edaefa85df38328aaa87e SHA512 274756fe17fdcc39ce471c3187f3076407d34b64e49b0006ee30525a952277b2b5c713fffa8786162dc542eef2b021f2bf7339736cf9e81b673d5146114829ed WHIRLPOOL 400959a0b52ce0026308bf2c251de9e0c87ee65c8c10844a7cd2f21b319623868316970247984a22b19dcd17a15e8cdf6959b60c5575a05f3709191a55eb4fb2 +AUX vmd-1.9.2-format-security.patch 550 SHA256 4e3fa85105117ab4c259ae6e58fb38fee668fc3000b981369841f98740c0ba61 SHA512 81a71ee4c4c438d18f3a393ebad5c9a08f1a7bb95fa58b78a8798955a34ae2494f80fa074b973a1b595862080e9103d21e509443742cfe2bc3cf77f10c0e3c9d WHIRLPOOL 8a2b64514ba9876bdbc2c4afa9ae48b4742099c1cb39b3835f4e340e0b4330cf06f28f92320c15481d4d6ed27c8491dc899572c091a952fa17eb1b0356b01aed +DIST vmd-1.9.2-gentoo-patches.tar.xz 14896 SHA256 91508b384cb0a8aab8d8cfc31c1e7e0bc4225dbd7cdb36fbaefcfe8baca9442c SHA512 0516b9e57b256ce822a64df420ebf3ab7391722757caeaa7e615526242043e9375fee8f4ee86fb4eb8de7a50d5cfc8f8d973ace5fa082e6f9010eb692cd6ee51 WHIRLPOOL 3f87d24ad0ca7eb60e0ae3d561da7c61e0caa9fe8bb71cd3a06731228926d4c16ee03699d80adf02e2c9b263f96ea8d5b096e64e3e94b0208b1cb618c8a8a7ca +DIST vmd-1.9.2.src.tar.gz 34903084 SHA256 870ee1e483ad23eb7f3bb6ac816cb7be5df893879dddc0bda8423a011993ccdb SHA512 b232b743d4ea97dcf76e3005e1c8716d7138602edc078c4846026ab67759c8559af956182cb1acf3c85890db10b6f658ac9c269d432f2595612cf376d6d505ef WHIRLPOOL e2489b4bd8f28359ee959d6ebec3a9e775fbaf7a25baa1324c99dd04c7768e002924c671c11830ec6e9589ecc9de4864f2bcf3dfaf9eb36f5a1d03d5e5841f17 +EBUILD vmd-1.9.2.ebuild 7144 SHA256 d6d38d62c6b8001bbf0a43a96bb1dafc80025addd1faa98f0abe1a492825876d SHA512 d3432b08ea1b5888a05e49911daabaaac64f265940fb639c1677532c7828431735e89119ca450f8983ddf961857a866ba5e2cb288b960b8f386746e87ae9411e WHIRLPOOL 571a6f8832b61f6fa120fc8c876a1d06592ec3ba7eea5af4b39a572d46a04afde3c169efa181e9773ee0cb03bc19bfd657c9f1e1eb16f29517855b017f6ffe7a +MISC ChangeLog 2551 SHA256 e9fb995684082a287b3209a9d642c652499b9bab26da73f4a28fd6e03b8407ac SHA512 c28866e3cf85f8c1ff40408da7ea6a2c08b449a516d5b73e7fafb936901e4b086d2d7145f3b27557546a88ed45efa66bc2ca29188ac058cf82a0476600545925 WHIRLPOOL 41002b5fa58cee1d9ecefa015636ec32d55904425e9fdbd81b57bb910553ea47c272beacbabb9b881c2e8c3214023bd85d614c7b6b9f285800be415cfb520326 +MISC ChangeLog-2015 10735 SHA256 a86018bbed7e1a61b0c80a738ec7d1bc5684d3f90769045be55714c187a46857 SHA512 210b17a4758411bf7344e7c235ff5c16a7f538bb031aaa53bcd134014ddcf497335863870fb4fb237dc2724528ba0e847d1d53d4e28f4d1383af93859f02d60c WHIRLPOOL 2854f8e671cb5bc4f203de6995b896485521bce7119adeda55756d545fe6e33ce9ba4e280f171081693dd7728cdd39c141550fb7d425fafa93cdbb7f7f645bad +MISC metadata.xml 778 SHA256 79ee62bd7447526f07950c756d31d87e2c52d6f79773bbf95f806717926b40ce SHA512 8ac6f9bf6f78c1da366fa5e61950be887ce7aafe479e359e18448de2ad422b977ef3a2d44a36434f36701aa7c0447f2a041dedb91102b2628a09379e664f46df WHIRLPOOL 6795ec883c6137f16510816bacf7cd0fd0262bf5da774af31adf4c0411f3d0b04d8213dd1e8b7591ce4426e59e9612a1baea4b6cab3a2412b4853e023040dd09 diff --git a/sci-chemistry/vmd/files/vmd-1.9.1-cuda-device_ptr.patch b/sci-chemistry/vmd/files/vmd-1.9.1-cuda-device_ptr.patch new file mode 100644 index 000000000000..ce842448decf --- /dev/null +++ b/sci-chemistry/vmd/files/vmd-1.9.1-cuda-device_ptr.patch @@ -0,0 +1,28 @@ + vmd-1.9.1/src/CUDAMarchingCubes.cu | 1 + + vmd-1.9.1/src/CUDAQuickSurf.cu | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/vmd-1.9.1/src/CUDAMarchingCubes.cu b/vmd-1.9.1/src/CUDAMarchingCubes.cu +index 5bfe7bf..36faaf0 100755 +--- a/vmd-1.9.1/src/CUDAMarchingCubes.cu ++++ b/vmd-1.9.1/src/CUDAMarchingCubes.cu +@@ -45,6 +45,7 @@ + #include "CUDAMarchingCubes.h" + #include + #include ++#include + + // The number of threads to use for triangle generation + // (limited by shared memory size) +diff --git a/vmd-1.9.1/src/CUDAQuickSurf.cu b/vmd-1.9.1/src/CUDAQuickSurf.cu +index a21ebde..56a42c8 100755 +--- a/vmd-1.9.1/src/CUDAQuickSurf.cu ++++ b/vmd-1.9.1/src/CUDAQuickSurf.cu +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + #if CUDART_VERSION < 4000 + #error The VMD QuickSurf feature requires CUDA 4.0 or later diff --git a/sci-chemistry/vmd/files/vmd-1.9.2-format-security.patch b/sci-chemistry/vmd/files/vmd-1.9.2-format-security.patch new file mode 100644 index 000000000000..3f9ea5c8c2ef --- /dev/null +++ b/sci-chemistry/vmd/files/vmd-1.9.2-format-security.patch @@ -0,0 +1,16 @@ + plugins/molfile_plugin/src/maeffplugin.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/molfile_plugin/src/maeffplugin.cxx b/plugins/molfile_plugin/src/maeffplugin.cxx +index cfe1223..41d92bb 100644 +--- a/plugins/molfile_plugin/src/maeffplugin.cxx ++++ b/plugins/molfile_plugin/src/maeffplugin.cxx +@@ -1979,7 +1979,7 @@ namespace { + } + } + catch (std::exception &e) { +- fprintf(stderr, e.what()); ++ fprintf(stderr, "%s", e.what()); + return MOLFILE_ERROR; + } + return MOLFILE_SUCCESS; diff --git a/sci-chemistry/vmd/metadata.xml b/sci-chemistry/vmd/metadata.xml new file mode 100644 index 000000000000..1b24082830f2 --- /dev/null +++ b/sci-chemistry/vmd/metadata.xml @@ -0,0 +1,19 @@ + + + + + alexxy@gentoo.org + Alexey Shvetsov + + + sci-chemistry@gentoo.org + Gentoo Chemistry Project + + + Use nvidia cuda toolkit for speeding up computations + Add support for TNG file format + Add support for MSMS SAS calcualtion tool + Add support for povray raytracer for HQ images + Add support for tachyon raytracer for HQ images + + diff --git a/sci-chemistry/vmd/vmd-1.9.2.ebuild b/sci-chemistry/vmd/vmd-1.9.2.ebuild new file mode 100644 index 000000000000..347a8c9a751f --- /dev/null +++ b/sci-chemistry/vmd/vmd-1.9.2.ebuild @@ -0,0 +1,251 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +PYTHON_COMPAT=( python2_7 ) + +inherit cuda eutils flag-o-matic multilib prefix python-single-r1 toolchain-funcs + +DESCRIPTION="Visual Molecular Dynamics" +HOMEPAGE="http://www.ks.uiuc.edu/Research/vmd/" +SRC_URI=" + https://dev.gentoo.org/~jlec/distfiles/${P}-gentoo-patches.tar.xz + ${P}.src.tar.gz" + +SLOT="0" +LICENSE="vmd" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="cuda gromacs msms povray sqlite tachyon xinerama" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RESTRICT="fetch" + +# currently, tk-8.5* with USE=truetype breaks some +# tk apps such as Sequence Viewer or Timeline. +CDEPEND=" + >=dev-lang/tk-8.6.1 + dev-lang/perl + dev-libs/expat + dev-python/numpy[${PYTHON_USEDEP}] + sci-libs/netcdf:0= + virtual/opengl + >=x11-libs/fltk-1.1.10-r2:1 + x11-libs/libXft + x11-libs/libXi + ${PYTHON_DEPS} + cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1:= ) + gromacs? ( >=sci-chemistry/gromacs-5.0.4-r1[tng] ) + sqlite? ( dev-db/sqlite:3= ) + tachyon? ( >=media-gfx/tachyon-0.99_beta6 ) + xinerama? ( x11-libs/libXinerama )" +DEPEND="${CDEPEND} + virtual/pkgconfig + dev-lang/swig" +RDEPEND="${CDEPEND} + sci-biology/stride + sci-chemistry/surf + x11-terms/xterm + msms? ( sci-chemistry/msms-bin ) + povray? ( media-gfx/povray ) + " + +VMD_DOWNLOAD="http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=VMD" +# Binary only plugin!! +QA_PREBUILT="usr/lib*/vmd/plugins/LINUX/tcl/intersurf1.1/bin/intersurf.so" +QA_FLAGS_IGNORED_amd64=" usr/lib64/vmd/plugins/LINUX/tcl/volutil1.3/volutil" +QA_FLAGS_IGNORED_x86=" usr/lib/vmd/plugins/LINUX/tcl/volutil1.3/volutil" + +pkg_nofetch() { + elog "Please download ${P}.src.tar.gz from" + elog "${VMD_DOWNLOAD}" + elog "after agreeing to the license and get" + elog "https://dev.gentoo.org/~jlec/distfiles/${P}-gentoo-patches.tar.xz" + elog "Place both in ${DISTDIR}" +} + +src_prepare() { + use cuda && cuda_sanitize + + epatch "${FILESDIR}"/${PN}-1.9.1-cuda-device_ptr.patch + + cd "${WORKDIR}"/plugins || die + + epatch \ + "${WORKDIR}"/${P}-gentoo-plugins.patch \ + "${FILESDIR}"/${P}-format-security.patch + + [[ ${SILENT} == yes ]] || sed '/^.SILENT/d' -i $(find -name Makefile) + + sed \ + -e "s:CC = gcc:CC = $(tc-getCC):" \ + -e "s:CXX = g++:CXX = $(tc-getCXX):" \ + -e "s:COPTO =.*\":COPTO = -fPIC -o \":" \ + -e "s:LOPTO = .*\":LOPTO = ${LDFLAGS} -fPIC -o \":" \ + -e "s:CCFLAGS =.*\":CCFLAGS = ${CFLAGS}\":" \ + -e "s:CXXFLAGS =.*\":CXXFLAGS = ${CXXFLAGS}\":" \ + -e "s:SHLD = gcc:SHLD = $(tc-getCC) -shared:" \ + -e "s:SHXXLD = g++:SHXXLD = $(tc-getCXX) -shared:" \ + -e "s:-ltcl8.5:-ltcl:" \ + -i Make-arch || die "Failed to set up plugins Makefile" + + sed \ + -e '/^AR /s:=:?=:g' \ + -e '/^RANLIB /s:=:?=:g' \ + -i ../plugins/*/Makefile || die + + tc-export AR RANLIB + + sed \ + -e "s:\$(CXXFLAGS)::g" \ + -i hesstrans/Makefile || die + + # prepare vmd itself + cd "${S}" || die + + epatch "${WORKDIR}"/${P}-gentoo-base.patch + + # PREFIX + sed \ + -e "s:/usr/include/:${EPREFIX}/usr/include:g" \ + -i configure || die + + sed \ + -e "s:gentoo-bindir:${ED}/usr/bin:g" \ + -e "s:gentoo-libdir:${ED}/usr/$(get_libdir):g" \ + -e "s:gentoo-opengl-include:${EPREFIX}/usr/include/GL:g" \ + -e "s:gentoo-opengl-libs:${EPREFIX}/usr/$(get_libdir):g" \ + -e "s:gentoo-gcc:$(tc-getCC):g" \ + -e "s:gentoo-g++:$(tc-getCXX):g" \ + -e "s:gentoo-nvcc:${EPREFIX}/opt/cuda/bin/nvcc:g" \ + -e "s:gentoo-cflags:${CFLAGS}:g" \ + -e "s:gentoo-cxxflags:${CXXFLAGS}:g" \ + -e "s:gentoo-nvflags::g" \ + -e "s:gentoo-ldflags:${LDFLAGS}:g" \ + -e "s:gentoo-plugindir:${WORKDIR}/plugins:g" \ + -e "s:gentoo-fltk-include:$(fltk-config --includedir):g" \ + -e "s:gentoo-fltk-libs:$(dirname $(fltk-config --libs)) -Wl,-rpath,$(dirname $(fltk-config --libs)):g" \ + -e "s:gentoo-netcdf-include:${EPREFIX}/usr/include:g" \ + -e "s:gentoo-netcdf-libs:${EPREFIX}/usr/$(get_libdir):g" \ + -i configure || die + + if use cuda; then + sed \ + -e "s:gentoo-cuda-lib:${EPREFIX}/opt/cuda/$(get_libdir):g" \ + -e "/NVCCFLAGS/s:=:= ${NVCCFLAGS}:g" \ + -i configure src/Makefile || die + sed \ + -e '/compute_/d' \ + -i configure || die + sed \ + -e 's:-gencode .*code=sm_..::' \ + -i src/Makefile || die + fi + + sed \ + -e "s:LINUXPPC:LINUX:g" \ + -e "s:LINUXALPHA:LINUX:g" \ + -e "s:LINUXAMD64:LINUX:g" \ + -e "s:gentoo-stride:${EPREFIX}/usr/bin/stride:g" \ + -e "s:gentoo-surf:${EPREFIX}/usr/bin/surf:g" \ + -e "s:gentoo-tachyon:${EPREFIX}/usr/bin/tachyon:g" \ + -i "${S}"/bin/vmd.sh || die "failed setting up vmd wrapper script" + + EMAKEOPTS=( + TCLINC="-I${EPREFIX}/usr/include" + TCLLIB="-L${EPREFIX}/usr/$(get_libdir)" + TCLLDFLAGS="-shared" + NETCDFLIB="$($(tc-getPKG_CONFIG) --libs-only-L netcdf) ${EPREFIX}/usr/$(get_libdir)/libnetcdf.so" + NETCDFINC="$($(tc-getPKG_CONFIG) --cflags-only-I netcdf) ${EPREFIX}/usr/include" + NETCDFLDFLAGS="$($(tc-getPKG_CONFIG) --libs netcdf)" + NETCDFDYNAMIC=1 + EXPATINC="-I${EPREFIX}/usr/include" + EXPATLIB="$($(tc-getPKG_CONFIG) --libs expat)" + EXPATLDFLAGS="-shared" + EXPATDYNAMIC=1 + ) + if use gromacs; then + EMAKEOPTS+=( + TNGLIB="$($(tc-getPKG_CONFIG) --libs libgromacs)" + TNGINC="-I${EPREFIX}/usr/include" + TNGLDFLAGS="-shared" + TNGDYNAMIC=1 + ) + fi + if use sqlite; then + EMAKEOPTS+=( + SQLITELIB="$($(tc-getPKG_CONFIG) --libs sqlite3)" + SQLITEINC="-I${EPREFIX}/usr/include" + SQLITELDFLAGS="-shared" + SQLITEDYNAMIC=1 + ) + fi +} + +src_configure() { + local myconf="OPENGL OPENGLPBUFFER COLVARS FLTK TK TCL PTHREADS PYTHON IMD NETCDF NUMPY NOSILENT XINPUT" + rm -f configure.options && echo $myconf >> configure.options + + use cuda && myconf+=" CUDA" +# use mpi && myconf+=" MPI" + use tachyon && myconf+=" LIBTACHYON" && append-cflags -I"${EPREFIX}/usr/include/tachyon" + use xinerama && myconf+=" XINERAMA" + + export \ + PYTHON_INCLUDE_DIR="$(python_get_includedir)" \ + PYTHON_LIBRARY_DIR="$(python_get_library_path)" \ + PYTHON_LIBRARY="$(python_get_LIBS)" \ + NUMPY_INCLUDE_DIR="$(python_get_sitedir)/numpy/core/include" \ + NUMPY_LIBRARY_DIR="$(python_get_sitedir)/numpy/core/include" + + perl ./configure LINUX \ + ${myconf} || die +} + +src_compile() { + # build plugins + cd "${WORKDIR}"/plugins || die + + emake \ + ${EMAKEOPTS[@]} \ + LINUX + + # build vmd + cd "${S}"/src || die + emake +} + +src_install() { + # install plugins + cd "${WORKDIR}"/plugins || die + emake \ + PLUGINDIR="${ED}/usr/$(get_libdir)/${PN}/plugins" \ + distrib + + # install vmd + cd "${S}"/src || die + emake install + + # install docs + cd "${S}" || die + dodoc Announcement README doc/ig.pdf doc/ug.pdf + + # remove some of the things we don't want and need in + # /usr/lib + cd "${ED}"/usr/$(get_libdir)/vmd || die + rm -fr doc README Announcement LICENSE || \ + die "failed to clean up /usr/lib/vmd directory" + + # adjust path in vmd wrapper + sed \ + -e "s:${ED}::" -i "${ED}"/usr/bin/${PN} \ + -e "/^defaultvmddir/s:^.*$:defaultvmddir=\"${EPREFIX}/usr/$(get_libdir)/${PN}\":g" \ + || die "failed to set up vmd wrapper script" + + # install icon and generate desktop entry + insinto /usr/share/pixmaps + doins "${WORKDIR}"/vmd.png + eprefixify "${WORKDIR}"/vmd.desktop + sed -i '/^Path/d' "${WORKDIR}"/vmd.desktop || die + domenu "${WORKDIR}"/vmd.desktop +} -- cgit v1.2.3