From bd8aab00e4c2ab00938e2d2658989d87b1f871f4 Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Thu, 28 Jul 2016 13:17:06 -0700 Subject: updated stat and added pygtk and dependent packages --- .../repos/builtin/packages/dyninst/package.py | 3 ++ var/spack/repos/builtin/packages/glib/package.py | 3 ++ .../packages/gobject-introspection/package.py | 48 +++++++++++++++++++++ .../repos/builtin/packages/graphlib/package.py | 5 ++- .../repos/builtin/packages/py-py2cairo/package.py | 46 ++++++++++++++++++++ .../repos/builtin/packages/py-pygobject/package.py | 49 ++++++++++++++++++++++ .../pygobject-2.28.6-introspection-1.patch | 35 ++++++++++++++++ .../repos/builtin/packages/py-pygtk/package.py | 47 +++++++++++++++++++++ var/spack/repos/builtin/packages/stat/package.py | 18 ++++++-- 9 files changed, 249 insertions(+), 5 deletions(-) create mode 100644 var/spack/repos/builtin/packages/gobject-introspection/package.py create mode 100644 var/spack/repos/builtin/packages/py-py2cairo/package.py create mode 100644 var/spack/repos/builtin/packages/py-pygobject/package.py create mode 100644 var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch create mode 100644 var/spack/repos/builtin/packages/py-pygtk/package.py diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 90c83bdc3a..856bd26d66 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -28,10 +28,13 @@ from spack import * class Dyninst(Package): """API for dynamic binary instrumentation. Modify programs while they are executing without recompiling, re-linking, or re-executing.""" + homepage = "https://paradyn.org" url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz" list_url = "http://www.dyninst.org/downloads/dyninst-8.x" + version('9.2.0', 'ad023f85e8e57837ed9de073b59d6bab', + url="https://github.com/dyninst/dyninst/archive/v9.2.0.tar.gz") version('9.1.0', '5c64b77521457199db44bec82e4988ac', url="http://www.paradyn.org/release9.1.0/DyninstAPI-9.1.0.tgz") version('8.2.1', 'abf60b7faabe7a2e4b54395757be39c7', diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 2720831e4f..15e89afc43 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -30,11 +30,14 @@ class Glib(Package): providing data structure handling for C, portability wrappers and interfaces for such runtime functionality as an event loop, threads, dynamic loading and an object system.""" + homepage = "https://developer.gnome.org/glib/" url = "http://ftp.gnome.org/pub/gnome/sources/glib/2.42/glib-2.42.1.tar.xz" version('2.49.4', 'e2c87c03017b0cd02c4c73274b92b148') version('2.42.1', '89c4119e50e767d3532158605ee9121a') + version('2.48.1', '67bd3b75c9f6d5587b457dc01cdcd5bb', + url='http://ftp.gnome.org/pub/GNOME/sources/glib/2.48/glib-2.48.1.tar.xz') depends_on('libffi') depends_on('zlib') diff --git a/var/spack/repos/builtin/packages/gobject-introspection/package.py b/var/spack/repos/builtin/packages/gobject-introspection/package.py new file mode 100644 index 0000000000..a1efdbe2b4 --- /dev/null +++ b/var/spack/repos/builtin/packages/gobject-introspection/package.py @@ -0,0 +1,48 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class GobjectIntrospection(Package): + """The GObject Introspection is used to describe the program APIs and + collect them in a uniform, machine readable format.Cairo is a 2D graphics + library with support for multiple output""" + + homepage = "https://wiki.gnome.org/Projects/GObjectIntrospection" + url = "http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.48/gobject-introspection-1.48.0.tar.xz" + + version('1.48.0', '01301fa9019667d48e927353e08bc218') + + depends_on("glib") + depends_on("python") + depends_on("cairo") + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + # we need to filter this file to avoid an overly long hashbang line + filter_file('@PYTHON@', 'python', + 'tools/g-ir-tool-template.in') + make() + make("install") diff --git a/var/spack/repos/builtin/packages/graphlib/package.py b/var/spack/repos/builtin/packages/graphlib/package.py index 0c3cd9b649..1e0eb2bf3b 100644 --- a/var/spack/repos/builtin/packages/graphlib/package.py +++ b/var/spack/repos/builtin/packages/graphlib/package.py @@ -27,10 +27,11 @@ from spack import * class Graphlib(Package): """Library to create, manipulate, and export graphs Graphlib.""" - homepage = "http://https://github.com/lee218llnl/graphlib" - url = "https://github.com/lee218llnl/graphlib/archive/v2.0.0.tar.gz" + homepage = "https://github.com/LLNL/graphlib" + url = "https://github.com/LLNL/graphlib/archive/v2.0.0.tar.gz" version('2.0.0', '43c6df84f1d38ba5a5dce0ae19371a70') + version('3.0.0', '625d199f97ab1b84cbc8daabcaee5e2a') depends_on('cmake', type='build') diff --git a/var/spack/repos/builtin/packages/py-py2cairo/package.py b/var/spack/repos/builtin/packages/py-py2cairo/package.py new file mode 100644 index 0000000000..131e8986f2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-py2cairo/package.py @@ -0,0 +1,46 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +import re + + +class PyPy2cairo(Package): + """bindings for the Cairo for Python 2, + to be used in Python.""" + + homepage = "https://pypi.python.org/pypi/pycairo" + url = "https://cairographics.org/releases/py2cairo-1.10.0.tar.bz2" + + version('1.10.0', '20337132c4ab06c1146ad384d55372c5') + + extends('python') + depends_on("cairo") + depends_on("pixman") + + def install(self, spec, prefix): + python('waf', 'configure', '--prefix=%s' % prefix) + python('waf', 'build') + python('waf', 'install') + diff --git a/var/spack/repos/builtin/packages/py-pygobject/package.py b/var/spack/repos/builtin/packages/py-pygobject/package.py new file mode 100644 index 0000000000..73eb47138d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygobject/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +import re + + +class PyPygobject(Package): + """bindings for the GLib, and GObject, + to be used in Python.""" + + homepage = "https://pypi.python.org/pypi/pygobject" + url = "https://pypi.python.org/packages/6d/15/97c8b5ccca2be14cf59a2f79e15e3a82a1c3408a6b76b4107689a8b94846/pygobject-2.28.3.tar.bz2" + + version('2.28.3', 'aa64900b274c4661a5c32e52922977f9') + + extends('python') + depends_on("libffi") + depends_on('glib') + depends_on('py-py2cairo') + depends_on('gobject-introspection') + + patch('pygobject-2.28.6-introspection-1.patch') + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make("install", parallel=False) diff --git a/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch b/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch new file mode 100644 index 0000000000..ef96ba3352 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch @@ -0,0 +1,35 @@ +Submitted By: Andrew Benton +Date: 2012-03-29 +Initial Package Version: 2.28.6 +Upstream Status: not submitted +Origin: me +Description: Fixes compiling with a recent version of gobject-introspection + +--- pygobject-2.28.6/gi/pygi-info.c-orig 2012-03-29 02:27:37.494228732 +0100 ++++ pygobject-2.28.6/gi/pygi-info.c 2012-03-29 02:26:37.735132310 +0100 +@@ -162,9 +162,6 @@ + case GI_INFO_TYPE_CONSTANT: + type = &PyGIConstantInfo_Type; + break; +- case GI_INFO_TYPE_ERROR_DOMAIN: +- type = &PyGIErrorDomainInfo_Type; +- break; + case GI_INFO_TYPE_UNION: + type = &PyGIUnionInfo_Type; + break; +@@ -481,7 +478,6 @@ + case GI_INFO_TYPE_INVALID: + case GI_INFO_TYPE_FUNCTION: + case GI_INFO_TYPE_CONSTANT: +- case GI_INFO_TYPE_ERROR_DOMAIN: + case GI_INFO_TYPE_VALUE: + case GI_INFO_TYPE_SIGNAL: + case GI_INFO_TYPE_PROPERTY: +@@ -860,7 +856,6 @@ + case GI_INFO_TYPE_INVALID: + case GI_INFO_TYPE_FUNCTION: + case GI_INFO_TYPE_CONSTANT: +- case GI_INFO_TYPE_ERROR_DOMAIN: + case GI_INFO_TYPE_VALUE: + case GI_INFO_TYPE_SIGNAL: + case GI_INFO_TYPE_PROPERTY: diff --git a/var/spack/repos/builtin/packages/py-pygtk/package.py b/var/spack/repos/builtin/packages/py-pygtk/package.py new file mode 100644 index 0000000000..359b844a72 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygtk/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +import re + + +class PyPygtk(Package): + """bindings for the Gtk in Python""" + homepage = "http://www.pygtk.org/" + url = "http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.24/pygtk-2.24.0.tar.gz" + + version('2.24.0', 'd27c7f245a9e027f6b6cd9acb7468e36') + + extends('python') + depends_on("libffi") + depends_on('cairo') + depends_on('glib') + depends_on('gtkplus') + depends_on('py-pygobject') + depends_on('py-py2cairo') + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make("install", parallel=False) diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index ec2fae5e9b..32ea8aef54 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -27,22 +27,34 @@ from spack import * class Stat(Package): """Library to create, manipulate, and export graphs Graphlib.""" + homepage = "http://paradyn.org/STAT/STAT.html" url = "https://github.com/lee218llnl/stat/archive/v2.0.0.tar.gz" version('2.2.0', '26bd69dd57a15afdd5d0ebdb0b7fb6fc') version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91') version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b') + version('3.0.0b', '31df1c2e56ce6ab2a0fe963cd47b769a', url='https://github.com/LLNL/STAT/files/382650/STAT-3.0.0b.tar.gz') + # TODO: dysect requires Dyninst patch for version 3.0.0b variant('dysect', default=False, description="enable DySectAPI") + variant('examples', default=False, description="enable examples") + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') depends_on('libelf') depends_on('libdwarf') depends_on('dyninst') - depends_on('graphlib') + depends_on('graphlib@2.0.0', when='@2.0.0:2.2.0') + depends_on('graphlib@3.0.0', when='@3:') depends_on('graphviz', type=alldeps) depends_on('launchmon') depends_on('mrnet') + depends_on('python') + depends_on('py-pygtk') + depends_on('swig') + depends_on('mpi', when='+examples') patch('configure_mpicxx.patch', when='@2.1.0') @@ -50,8 +62,6 @@ class Stat(Package): configure_args = [ "--enable-gui", "--prefix=%s" % prefix, - # Examples require MPI: avoid this dependency. - "--disable-examples", "--with-launchmon=%s" % spec['launchmon'].prefix, "--with-mrnet=%s" % spec['mrnet'].prefix, "--with-graphlib=%s" % spec['graphlib'].prefix, @@ -60,6 +70,8 @@ class Stat(Package): ] if '+dysect' in spec: configure_args.append('--enable-dysectapi') + if '~examples' in spec: + configure_args.append('--disable-examples') configure(*configure_args) make(parallel=False) -- cgit v1.2.3-70-g09d2 From 8b949376092e66d415bad473331dbc08eaa2e021 Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Thu, 28 Jul 2016 13:49:35 -0700 Subject: flake 8 fixes for stat and dependents flake 8 fixes for dyninst flake 8 fixes for dyninst flake 8 fixes for dyninst --- var/spack/repos/builtin/packages/dyninst/package.py | 4 ++-- var/spack/repos/builtin/packages/py-py2cairo/package.py | 2 -- var/spack/repos/builtin/packages/py-pygobject/package.py | 1 - var/spack/repos/builtin/packages/py-pygtk/package.py | 1 - var/spack/repos/builtin/packages/stat/package.py | 3 ++- 5 files changed, 4 insertions(+), 7 deletions(-) diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 856bd26d66..997f012992 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -30,7 +30,7 @@ class Dyninst(Package): are executing without recompiling, re-linking, or re-executing.""" homepage = "https://paradyn.org" - url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz" + url = "https://github.com/dyninst/dyninst/archive/v9.2.0.tar.gz" list_url = "http://www.dyninst.org/downloads/dyninst-8.x" version('9.2.0', 'ad023f85e8e57837ed9de073b59d6bab', @@ -50,7 +50,7 @@ class Dyninst(Package): depends_on('cmake', type='build') # new version uses cmake - def install(self, spec, prefix): + def install(self, spec, prefix): # NOQA: ignore=F811 libelf = spec['libelf'].prefix libdwarf = spec['libdwarf'].prefix diff --git a/var/spack/repos/builtin/packages/py-py2cairo/package.py b/var/spack/repos/builtin/packages/py-py2cairo/package.py index 131e8986f2..efc3645745 100644 --- a/var/spack/repos/builtin/packages/py-py2cairo/package.py +++ b/var/spack/repos/builtin/packages/py-py2cairo/package.py @@ -23,7 +23,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * -import re class PyPy2cairo(Package): @@ -43,4 +42,3 @@ class PyPy2cairo(Package): python('waf', 'configure', '--prefix=%s' % prefix) python('waf', 'build') python('waf', 'install') - diff --git a/var/spack/repos/builtin/packages/py-pygobject/package.py b/var/spack/repos/builtin/packages/py-pygobject/package.py index 73eb47138d..3af849e758 100644 --- a/var/spack/repos/builtin/packages/py-pygobject/package.py +++ b/var/spack/repos/builtin/packages/py-pygobject/package.py @@ -23,7 +23,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * -import re class PyPygobject(Package): diff --git a/var/spack/repos/builtin/packages/py-pygtk/package.py b/var/spack/repos/builtin/packages/py-pygtk/package.py index 359b844a72..ab0a139f02 100644 --- a/var/spack/repos/builtin/packages/py-pygtk/package.py +++ b/var/spack/repos/builtin/packages/py-pygtk/package.py @@ -23,7 +23,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * -import re class PyPygtk(Package): diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index 32ea8aef54..859f570266 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -34,7 +34,8 @@ class Stat(Package): version('2.2.0', '26bd69dd57a15afdd5d0ebdb0b7fb6fc') version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91') version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b') - version('3.0.0b', '31df1c2e56ce6ab2a0fe963cd47b769a', url='https://github.com/LLNL/STAT/files/382650/STAT-3.0.0b.tar.gz') + version('3.0.0b', '31df1c2e56ce6ab2a0fe963cd47b769a', + url='https://github.com/LLNL/STAT/files/382650/STAT-3.0.0b.tar.gz') # TODO: dysect requires Dyninst patch for version 3.0.0b variant('dysect', default=False, description="enable DySectAPI") -- cgit v1.2.3-70-g09d2 From 0074ecd6fa31707bc56a79ac2c9d378fd308d0f4 Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Fri, 29 Jul 2016 14:26:30 -0700 Subject: dyninst package use spec.satisfies instead of @when --- var/spack/repos/builtin/packages/dyninst/package.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 997f012992..5f4ae2e9d6 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -50,7 +50,13 @@ class Dyninst(Package): depends_on('cmake', type='build') # new version uses cmake - def install(self, spec, prefix): # NOQA: ignore=F811 + def install(self, spec, prefix): + if spec.satisfies('@:8.1'): + configure("--prefix=" + prefix) + make() + make("install") + return + libelf = spec['libelf'].prefix libdwarf = spec['libdwarf'].prefix -- cgit v1.2.3-70-g09d2 From f9cb21e8868ebf7555c715e353a5ec6bec4aad39 Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Fri, 29 Jul 2016 15:42:16 -0700 Subject: flake 8 fixes for dyninst --- var/spack/repos/builtin/packages/dyninst/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 5f4ae2e9d6..55c319165f 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -56,7 +56,7 @@ class Dyninst(Package): make() make("install") return - + libelf = spec['libelf'].prefix libdwarf = spec['libdwarf'].prefix -- cgit v1.2.3-70-g09d2 From 69931996bf88a74fb256ee778691ec775963e904 Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Mon, 8 Aug 2016 16:02:33 -0700 Subject: added dyninst patches for stat+dysect --- .../repos/builtin/packages/dyninst/package.py | 6 ++ .../builtin/packages/dyninst/stackanalysis_h.patch | 11 +++ .../builtin/packages/dyninst/stat_dysect.patch | 96 ++++++++++++++++++++++ var/spack/repos/builtin/packages/stat/package.py | 7 +- 4 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch create mode 100644 var/spack/repos/builtin/packages/dyninst/stat_dysect.patch diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 55c319165f..3df7ca551d 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -44,11 +44,17 @@ class Dyninst(Package): version('8.1.1', 'd1a04e995b7aa70960cd1d1fac8bd6ac', url="http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz") + variant('stat_dysect', default=False, + description="patch for STAT's DySectAPI") + depends_on("libelf") depends_on("libdwarf") depends_on("boost@1.42:") depends_on('cmake', type='build') + patch('stat_dysect.patch', when='+stat_dysect') + patch('stackanalysis_h.patch', when='@9.2.0') + # new version uses cmake def install(self, spec, prefix): if spec.satisfies('@:8.1'): diff --git a/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch b/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch new file mode 100644 index 0000000000..2c04d935d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch @@ -0,0 +1,11 @@ +--- a/dataflowAPI/h/stackanalysis.h 2016-06-29 14:54:14.000000000 -0700 ++++ b/dataflowAPI/h/stackanalysis.h 2016-08-02 09:50:13.619079000 -0700 +@@ -331,7 +331,7 @@ + + // To build intervals, we must replay the effect of each instruction. + // To avoid sucking enormous time, we keep those transfer functions around... +- typedef std::map> ++ typedef std::map > + InstructionEffects; + + DATAFLOW_EXPORT StackAnalysis(); diff --git a/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch b/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch new file mode 100644 index 0000000000..c15403683f --- /dev/null +++ b/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch @@ -0,0 +1,96 @@ +From 3aebb41ce0ea5b578a1ebf6810446c660066c525 Mon Sep 17 00:00:00 2001 +From: Jesper Puge Nielsen +Date: Wed, 12 Aug 2015 21:07:52 -0700 +Subject: [PATCH] =?UTF-8?q?Exposed=20stackwalker=20and=20proc=20callback=20status=20to=20DySect +=20=C3c?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + dyninstAPI/h/BPatch_process.h | 13 +++++++++++++ + dyninstAPI/src/BPatch_process.C | 18 ++++++++++++++++++ + dyninstAPI/src/dynProcess.h | 3 ++- + 3 files changed, 33 insertions(+), 1 deletions(-) + +diff --git a/dyninstAPI/h/BPatch_process.h b/dyninstAPI/h/BPatch_process.h +index 5e01bbb..1316bb2 100644 +--- a/dyninstAPI/h/BPatch_process.h ++++ b/dyninstAPI/h/BPatch_process.h +@@ -225,6 +225,10 @@ class BPATCH_DLL_EXPORT BPatch_process : public BPatch_addressSpace { + // + // this function should go away as soon as Paradyn links against Dyninst + PCProcess *lowlevel_process() const { return llproc; } ++ ++ // Expose walker from Dyninst proces ++ void *get_walker() const; ++ + // These internal funcs trigger callbacks registered to matching events + bool triggerStopThread(instPoint *intPoint, func_instance *intFunc, + int cb_ID, void *retVal); +@@ -281,6 +285,15 @@ class BPATCH_DLL_EXPORT BPatch_process : public BPatch_addressSpace { + + bool continueExecution(); + ++ // BPatch_process::keepStopped ++ // ++ // Changes the desired process stat to prevent ++ // Dyninst from resuming the process after ++ // handling the current event. ++ // Must be called from an event handler. ++ ++ void keepStopped(); ++ + // BPatch_process::terminateExecution + // + // Terminate mutatee process +diff --git a/dyninstAPI/src/BPatch_process.C b/dyninstAPI/src/BPatch_process.C +index 115f215..809e797 100644 +--- a/dyninstAPI/src/BPatch_process.C ++++ b/dyninstAPI/src/BPatch_process.C +@@ -507,6 +507,19 @@ bool BPatch_process::continueExecution() + } + + /* ++ * BPatch_process::keepStopped ++ * ++ * Changes the desired process stat to prevent ++ * Dyninst from resuming the process after ++ * handling the current event. ++ * Must be called from an event handler. ++ */ ++void BPatch_process::keepStopped() ++{ ++ llproc->setDesiredProcessState(PCProcess::ps_stopped); ++} ++ ++/* + * BPatch_process::terminateExecution + * + * Kill the thread. +@@ -1754,3 +1767,8 @@ bool BPatch_process::protectAnalyzedCode() + } + return ret; + } ++ ++void *BPatch_process::get_walker() const ++{ ++ return llproc->get_walker(); ++} +diff --git a/dyninstAPI/src/dynProcess.h b/dyninstAPI/src/dynProcess.h +index 54b0c6e..00721d1 100644 +--- a/dyninstAPI/src/dynProcess.h ++++ b/dyninstAPI/src/dynProcess.h +@@ -302,7 +302,8 @@ public: + // Stackwalking internals + bool walkStack(pdvector &stackWalk, PCThread *thread); + bool getActiveFrame(Frame &frame, PCThread *thread); +- ++ Dyninst::Stackwalker::Walker *get_walker() { return stackwalker_; } ++ + void addSignalHandler(Address, unsigned); + bool isInSignalHandler(Address addr); + +-- +1.7.1 + diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index 859f570266..7c54f22251 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -34,8 +34,8 @@ class Stat(Package): version('2.2.0', '26bd69dd57a15afdd5d0ebdb0b7fb6fc') version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91') version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b') - version('3.0.0b', '31df1c2e56ce6ab2a0fe963cd47b769a', - url='https://github.com/LLNL/STAT/files/382650/STAT-3.0.0b.tar.gz') + version('3.0.0b', '4977afd3de2d444a5e1b1fc3b26a38c6', + url='https://github.com/LLNL/STAT/files/397809/STAT-3.0.0b.tar.gz') # TODO: dysect requires Dyninst patch for version 3.0.0b variant('dysect', default=False, description="enable DySectAPI") @@ -46,7 +46,8 @@ class Stat(Package): depends_on('libtool', type='build') depends_on('libelf') depends_on('libdwarf') - depends_on('dyninst') + depends_on('dyninst', when='~dysect') + depends_on('dyninst@8.2.1+stat_dysect', when='+dysect') depends_on('graphlib@2.0.0', when='@2.0.0:2.2.0') depends_on('graphlib@3.0.0', when='@3:') depends_on('graphviz', type=alldeps) -- cgit v1.2.3-70-g09d2 From 3df208efc0a6a7c7ee74e8a21dcfd999dcc1aa53 Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Tue, 9 Aug 2016 21:16:39 -0700 Subject: stat and dependences package updates --- var/spack/repos/builtin/packages/glib/package.py | 5 ++--- var/spack/repos/builtin/packages/launchmon/package.py | 2 ++ var/spack/repos/builtin/packages/stat/package.py | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 15e89afc43..94ef95e7ab 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -35,15 +35,14 @@ class Glib(Package): url = "http://ftp.gnome.org/pub/gnome/sources/glib/2.42/glib-2.42.1.tar.xz" version('2.49.4', 'e2c87c03017b0cd02c4c73274b92b148') + version('2.48.1', '67bd3b75c9f6d5587b457dc01cdcd5bb') version('2.42.1', '89c4119e50e767d3532158605ee9121a') - version('2.48.1', '67bd3b75c9f6d5587b457dc01cdcd5bb', - url='http://ftp.gnome.org/pub/GNOME/sources/glib/2.48/glib-2.48.1.tar.xz') depends_on('libffi') depends_on('zlib') depends_on('pkg-config', type='build') depends_on('gettext') - depends_on('pcre+utf', when='@2.49:') + depends_on('pcre+utf', when='@2.48:') # The following patch is needed for gcc-6.1 patch('g_date_strftime.patch', when='@2.42.1') diff --git a/var/spack/repos/builtin/packages/launchmon/package.py b/var/spack/repos/builtin/packages/launchmon/package.py index d7c96a03d8..c2b289da4f 100644 --- a/var/spack/repos/builtin/packages/launchmon/package.py +++ b/var/spack/repos/builtin/packages/launchmon/package.py @@ -36,6 +36,8 @@ class Launchmon(Package): depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') + depends_on('libgcrypt') + depends_on('libgpg-error') def install(self, spec, prefix): configure( diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index 7c54f22251..db28c35c0f 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -34,8 +34,8 @@ class Stat(Package): version('2.2.0', '26bd69dd57a15afdd5d0ebdb0b7fb6fc') version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91') version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b') - version('3.0.0b', '4977afd3de2d444a5e1b1fc3b26a38c6', - url='https://github.com/LLNL/STAT/files/397809/STAT-3.0.0b.tar.gz') + version('3.0.0b', '653f961192e84f4611cabbe31c4dcd89', + url='https://github.com/LLNL/STAT/files/410276/STAT-3.0.0b.tar.gz') # TODO: dysect requires Dyninst patch for version 3.0.0b variant('dysect', default=False, description="enable DySectAPI") -- cgit v1.2.3-70-g09d2 From 749a4e78c73139ab7a884b68a9956a184dd93dfa Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Wed, 10 Aug 2016 10:12:13 -0700 Subject: gobject-introspection requires glib version 2.48.1 --- var/spack/repos/builtin/packages/gobject-introspection/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/gobject-introspection/package.py b/var/spack/repos/builtin/packages/gobject-introspection/package.py index a1efdbe2b4..02ec87826d 100644 --- a/var/spack/repos/builtin/packages/gobject-introspection/package.py +++ b/var/spack/repos/builtin/packages/gobject-introspection/package.py @@ -35,7 +35,8 @@ class GobjectIntrospection(Package): version('1.48.0', '01301fa9019667d48e927353e08bc218') - depends_on("glib") + # version 1.48.0 build fails with glib 2.49.4 + depends_on("glib@2.48.1") depends_on("python") depends_on("cairo") -- cgit v1.2.3-70-g09d2 From 74dd7a36b58e3f18dd3c654ddab82737bb8c5f7c Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Wed, 10 Aug 2016 10:12:46 -0700 Subject: allow parallel build of stat --- var/spack/repos/builtin/packages/stat/package.py | 1 - 1 file changed, 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index db28c35c0f..20c6ee984f 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -76,5 +76,4 @@ class Stat(Package): configure_args.append('--disable-examples') configure(*configure_args) - make(parallel=False) make("install") -- cgit v1.2.3-70-g09d2 From 54ef9443d3e357a595040f6b684aa371c10432bf Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Wed, 10 Aug 2016 10:36:01 -0700 Subject: fix atk url_for_version --- var/spack/repos/builtin/packages/atk/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py index d5b6933ec3..0a7d48774d 100644 --- a/var/spack/repos/builtin/packages/atk/package.py +++ b/var/spack/repos/builtin/packages/atk/package.py @@ -42,7 +42,7 @@ class Atk(Package): def url_for_version(self, version): """Handle atk's version-based custom URLs.""" url = 'http://ftp.gnome.org/pub/gnome/sources/atk' - return 'url+/%s/atk-%s.tar.xz' % (version.up_to(2), version) + return url + '/%s/atk-%s.tar.xz' % (version.up_to(2), version) def install(self, spec, prefix): configure("--prefix=%s" % prefix) -- cgit v1.2.3-70-g09d2 From f182590aae0ec228eab44b99f5f0aceccda88084 Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Mon, 15 Aug 2016 15:17:53 -0700 Subject: added pkg-config to build deps of cairo and pixman --- var/spack/repos/builtin/packages/cairo/package.py | 1 + var/spack/repos/builtin/packages/pixman/package.py | 1 + 2 files changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py index ddb8d2fd03..b2911e126a 100644 --- a/var/spack/repos/builtin/packages/cairo/package.py +++ b/var/spack/repos/builtin/packages/cairo/package.py @@ -37,6 +37,7 @@ class Cairo(Package): depends_on("glib") depends_on("pixman") depends_on("freetype") + depends_on("pkg-config", type="build") depends_on("fontconfig@2.10.91:") # Require newer version of fontconfig. def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/pixman/package.py b/var/spack/repos/builtin/packages/pixman/package.py index 3d7e332a3f..39041587f5 100644 --- a/var/spack/repos/builtin/packages/pixman/package.py +++ b/var/spack/repos/builtin/packages/pixman/package.py @@ -34,6 +34,7 @@ class Pixman(Package): version('0.32.6', '3a30859719a41bd0f5cccffbfefdd4c2') + depends_on("pkg-config", type="build") depends_on("libpng") def install(self, spec, prefix): -- cgit v1.2.3-70-g09d2 From a177b9be8a2dca5aefce904df652ec26d7e0dcba Mon Sep 17 00:00:00 2001 From: "Gregory L. Lee" Date: Mon, 15 Aug 2016 15:18:27 -0700 Subject: updated stat 3.0.0b url --- var/spack/repos/builtin/packages/stat/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index 20c6ee984f..8c4663c524 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -34,8 +34,8 @@ class Stat(Package): version('2.2.0', '26bd69dd57a15afdd5d0ebdb0b7fb6fc') version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91') version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b') - version('3.0.0b', '653f961192e84f4611cabbe31c4dcd89', - url='https://github.com/LLNL/STAT/files/410276/STAT-3.0.0b.tar.gz') + version('3.0.0b', '8851912ba40e31cf7be6dde3be8e702c', + url='https://github.com/LLNL/STAT/files/427762/STAT-3.0.0b.tar.gz') # TODO: dysect requires Dyninst patch for version 3.0.0b variant('dysect', default=False, description="enable DySectAPI") -- cgit v1.2.3-70-g09d2