Skip to content
Snippets Groups Projects
Commit 7699419f authored by Gregory L. Lee's avatar Gregory L. Lee Committed by Massimiliano Culpo
Browse files

new xdot.py package and necessary updates to GUI libs (#9179)

* new xdot.py package and necessary updates to GUI libs

* new xdot.py package and necessary updates to GUI libs
parent e176f2a2
No related branches found
No related tags found
No related merge requests found
......@@ -41,8 +41,18 @@ class AtSpi2Core(MesonPackage):
depends_on('dbus@1.12.8:')
depends_on('libx11')
depends_on('libxi')
depends_on('libxtst', type='build')
depends_on('recordproto', type='build')
depends_on('inputproto', type='build')
depends_on('fixesproto', type='build')
depends_on('pkgconfig', type='build')
depends_on('python', type='build')
def url_for_version(self, version):
"""Handle gnome's version-based custom URLs."""
url = 'http://ftp.gnome.org/pub/gnome/sources/at-spi2-core'
return url + '/%s/at-spi2-core-%s.tar.xz' % (version.up_to(2), version)
def setup_environment(self, spack_env, run_env):
# this avoids an "import site" error in the build
spack_env.unset('PYTHONHOME')
......@@ -30,7 +30,7 @@ class Gtkplus(AutotoolsPackage):
interfaces for applications."""
homepage = "http://www.gtk.org"
url = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.31.tar.xz"
version('3.20.10', 'e81da1af1c5c1fee87ba439770e17272fa5c06e64572939814da406859e56b70')
version('2.24.32', 'b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e')
version('2.24.31', '68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658')
version('2.24.25', '38af1020cb8ff3d10dda2c8807f11e92af9d2fa4045de61c62eedb7fbc7ea5b3')
......@@ -45,8 +45,17 @@ class Gtkplus(AutotoolsPackage):
# see #6940 for rationale:
depends_on('pango+X')
depends_on('gobject-introspection')
depends_on('libepoxy', when='@3:')
depends_on('libxi', when='@3:')
depends_on('inputproto', when='@3:')
depends_on('fixesproto', when='@3:')
depends_on('at-spi2-atk', when='@3:')
patch('no-demos.patch', when='@2:2.99')
patch('no-demos.patch')
def url_for_version(self, version):
url = 'http://ftp.gnome.org/pub/gnome/sources/gtk+'
return url + '/%s/gtk+-%s.tar.xz' % (version.up_to(2), version)
def patch(self):
# remove disable deprecated flag.
......
......@@ -206,3 +206,8 @@ def libs(self):
shared=True, recursive=False)
if libs:
return libs
@when('^python@3:')
def setup_environment(self, spack_env, run_env):
# this avoids an "import site" error in the build
spack_env.unset('PYTHONHOME')
##############################################################################
# Copyright (c) 2013-2018, 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/spack/spack
# Please also see the NOTICE and LICENSE files 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 os
class PyPycairo(PythonPackage):
"""Pycairo is a set of Python bindings for the cairo graphics library."""
homepage = "https://www.cairographics.org/pycairo/"
url = "https://github.com/pygobject/pycairo/releases/download/v1.17.1/pycairo-1.17.1.tar.gz"
url = "https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz"
version('1.17.1', '34c1ee106655b450c4bd57e29371a4a7')
depends_on('cairo@1.2.0:')
depends_on('pkgconfig', type='build')
depends_on('py-setuptools', type='build')
@run_after('install')
def post_install(self):
src = self.prefix.lib + '/pkgconfig/py3cairo.pc'
dst = self.prefix.lib + '/pkgconfig/pycairo.pc'
if os.path.exists(src) and not os.path.exists(dst):
copy(src, dst)
......@@ -25,24 +25,27 @@
from spack import *
class PyPygobject(AutotoolsPackage):
class PyPygobject(PythonPackage):
"""bindings for the GLib, and GObject,
to be used in Python."""
homepage = "https://pypi.python.org/pypi/pygobject"
url = "http://ftp.gnome.org/pub/GNOME/sources/pygobject/2.28/pygobject-2.28.6.tar.bz2"
version('2.28.6', 'a43d783228dd32899e6908352b8308f3')
version('2.28.3', 'aa64900b274c4661a5c32e52922977f9')
version('3.28.3', '3bac63c86bb963aa401f97859464aa90')
version('2.28.6', '9415cb7f2b3a847f2310ccea258b101e')
version('2.28.3', 'aa64900b274c4661a5c32e52922977f9',
url='http://ftp.gnome.org/pub/GNOME/sources/pygobject/2.28/pygobject-2.28.3.tar.bz2')
extends('python')
depends_on('pkgconfig', type=('build'))
depends_on('py-setuptools', type=('build'))
depends_on("libffi")
depends_on('glib')
depends_on('py-py2cairo', type=('build', 'run'))
depends_on('python@2:2.99', when='@2:2.99', type=('build', 'run'))
depends_on('py-pycairo', type=('build', 'run'), when='@3:')
depends_on('py-py2cairo', type=('build', 'run'), when='@2:2.99')
depends_on('gobject-introspection')
depends_on('gtkplus', when='@3:')
patch('pygobject-2.28.6-introspection-1.patch', when='@2.28.3:2.28.6')
......@@ -50,5 +53,22 @@ class PyPygobject(AutotoolsPackage):
# for https://bugzilla.gnome.org/show_bug.cgi?id=668522
patch('pygobject-2.28.6-gio-types-2.32.patch', when='@2.28.6')
def url_for_version(self, version):
url = 'http://ftp.gnome.org/pub/GNOME/sources/pygobject'
return url + '/%s/pygobject-%s.tar.xz' % (version.up_to(2), version)
# pygobject version 2 requires an autotools build
@when('@2:2.99')
def build(self, spec, prefix):
configure('--prefix=%s' % spec.prefix)
@when('@2:2.99')
def install(self, spec, prefix):
make('install', parallel=False)
@when('^python@3:')
def patch(self):
filter_file(
r'Pycairo_IMPORT',
r'//Pycairo_IMPORT',
'gi/pygi-foreign-cairo.c')
......@@ -37,6 +37,11 @@ class PyPygtk(AutotoolsPackage):
depends_on('pkgconfig', type=('build'))
depends_on("libffi")
# atk@2.28.1 depends on meson which requires python 3
depends_on('atk@:2.20.0')
# PyGTK requires python 2
# Use py-pygobject@3: for GTK bindings for python 3
depends_on('python@2:2.99', type=('build', 'run'))
depends_on('cairo')
depends_on('glib')
# for GTK 3.X use pygobject 3.X instead of pygtk
......
##############################################################################
# Copyright (c) 2013-2018, 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/spack/spack
# Please also see the NOTICE and LICENSE files 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 PyXdot(PythonPackage):
"""xdot.py is an interactive viewer for graphs written in Graphviz's
dot language."""
homepage = "https://github.com/jrfonseca/xdot.py"
url = "https://github.com/jrfonseca/xdot.py/archive/0.9.tar.gz"
git = "https://github.com/jrfonseca/xdot.py.git"
version('master', branch="master")
version('0.9.1', commit="0fa629166989576b05d509c7ef0329c0f7655190")
version('0.9', '19c78311d73b0f9ea059a6febf42eeea')
# setuptools is required at runtime to avoid:
# No module named 'pkg_resources'
depends_on('py-setuptools', type=('build', 'run'))
depends_on('python@3:', type=('build', 'run'))
depends_on('py-pygobject', type=('build', 'run'))
depends_on('py-pycairo', type=('build', 'run'))
depends_on('pango', type=('build', 'run'))
depends_on('atk', type=('build', 'run'))
depends_on('gdk-pixbuf', type=('build', 'run'))
depends_on('gtkplus', type=('build', 'run'))
@run_after('install')
def post_install(self):
spec = self.spec
repo_paths = '%s:%s:%s:%s' % (
join_path(spec['pango'].prefix.lib, 'girepository-1.0'),
join_path(spec['atk'].prefix.lib64, 'girepository-1.0'),
join_path(spec['gdk-pixbuf'].prefix.lib, 'girepository-1.0'),
join_path(spec['gtkplus'].prefix.lib, 'girepository-1.0'))
dst = join_path(spec.prefix, spec['python'].package.site_packages_dir,
'xdot/__init__.py')
filter_file("import sys",
"import sys\nimport os\nos.environ['GI_TYPELIB_PATH']" +
" = '%s'" % repo_paths, dst)
# regenerate the byte-compiled __init__.py
python3 = spec['python'].command
python3('-m', 'compileall', dst)
def setup_environment(self, spack_env, run_env):
spec = self.spec
run_env.prepend_path('GI_TYPELIB_PATH',
join_path(spec['pango'].prefix.lib,
'girepository-1.0'))
run_env.prepend_path('GI_TYPELIB_PATH',
join_path(spec['atk'].prefix.lib64,
'girepository-1.0'))
run_env.prepend_path('GI_TYPELIB_PATH',
join_path(spec['gdk-pixbuf'].prefix.lib,
'girepository-1.0'))
run_env.prepend_path('GI_TYPELIB_PATH',
join_path(spec['gtkplus'].prefix.lib,
'girepository-1.0'))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment