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
This commit is contained in:
parent
e176f2a2f5
commit
7699419fc1
@ -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')
|
||||
patch('no-demos.patch', when='@2:2.99')
|
||||
|
||||
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')
|
||||
|
47
var/spack/repos/builtin/packages/py-pycairo/package.py
Normal file
47
var/spack/repos/builtin/packages/py-pycairo/package.py
Normal file
@ -0,0 +1,47 @@
|
||||
##############################################################################
|
||||
# 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
|
||||
|
81
var/spack/repos/builtin/packages/py-xdot/package.py
Normal file
81
var/spack/repos/builtin/packages/py-xdot/package.py
Normal file
@ -0,0 +1,81 @@
|
||||
##############################################################################
|
||||
# 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'))
|
Loading…
Reference in New Issue
Block a user