From 6c80b152208e8f2154db6c658475fe18a9c9f8bc Mon Sep 17 00:00:00 2001 From: "Kelly (KT) Thompson" Date: Fri, 29 Jul 2016 08:46:31 -0600 Subject: GTK+3: Provide updates to package dependencies. WIP: I started trying to build gtkplus@3.20, but this package has many more dependencies than v2 and it requires newer versions of existing packages. This commit provides updates for 5 packages that are required by GTK+3. This is not the complete set of changes required for GTK+3. atk - move default version from 2.14 -> 2.20. glib - move default version from 2.42 -> 2.49 - v2.49 requires pcre+utf as a new dependency. pcre - if variant +utf is selected, add '--enable-unicode-properties' to the configure options. libepoxy - new package to spack - manages OpenGL function pointers. pango - move default version from 1.36 -> 1.40 --- var/spack/repos/builtin/packages/atk/package.py | 1 + var/spack/repos/builtin/packages/glib/package.py | 10 +++--- .../repos/builtin/packages/libepoxy/package.py | 39 ++++++++++++++++++++++ var/spack/repos/builtin/packages/pango/package.py | 2 ++ var/spack/repos/builtin/packages/pcre/package.py | 2 +- 5 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 var/spack/repos/builtin/packages/libepoxy/package.py diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py index 1d26145fd1..8da562f122 100644 --- a/var/spack/repos/builtin/packages/atk/package.py +++ b/var/spack/repos/builtin/packages/atk/package.py @@ -32,6 +32,7 @@ class Atk(Package): homepage = "https://developer.gnome.org/atk/" url = "http://ftp.gnome.org/pub/gnome/sources/atk/2.14/atk-2.14.0.tar.xz" + version('2.20.0', '5187b0972f4d3905f285540b31395e20') version('2.14.0', 'ecb7ca8469a5650581b1227d78051b8b') depends_on("glib") diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 0a0a02f464..512f446617 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -32,14 +32,16 @@ class Glib(Package): 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" + 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') - depends_on("libffi") - depends_on("zlib") - depends_on("pkg-config", type='build') + depends_on('libffi') + depends_on('zlib') + depends_on('pkg-config', type='build') depends_on('gettext', when=sys.platform == 'darwin') + depends_on('pcre+utf', when='@2.49:') # The following patch is needed for gcc-6.1 patch('g_date_strftime.patch') diff --git a/var/spack/repos/builtin/packages/libepoxy/package.py b/var/spack/repos/builtin/packages/libepoxy/package.py new file mode 100644 index 0000000000..364ea1e30c --- /dev/null +++ b/var/spack/repos/builtin/packages/libepoxy/package.py @@ -0,0 +1,39 @@ +############################################################################## +# 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 Libepoxy(Package): + """Epoxy is a library for handling OpenGL function pointer management for + you.""" + homepage = "https://github.com/anholt/libepoxy" + url = "https://github.com/anholt/libepoxy/releases/download/v1.3.1/libepoxy-1.3.1.tar.bz2" + + version('1.3.1', '96f6620a9b005a503e7b44b0b528287d') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py index a04f6d64e0..7ae90f1795 100644 --- a/var/spack/repos/builtin/packages/pango/package.py +++ b/var/spack/repos/builtin/packages/pango/package.py @@ -24,6 +24,7 @@ ############################################################################## from spack import * + class Pango(Package): """Pango is a library for laying out and rendering of text, with an emphasis on internationalization. It can be used anywhere @@ -33,6 +34,7 @@ class Pango(Package): url = "http://ftp.gnome.org/pub/gnome/sources/pango/1.36/pango-1.36.8.tar.xz" version('1.36.8', '217a9a753006275215fa9fa127760ece') + version('1.40.1', '6fc88c6529890d6c8e03074d57a3eceb') depends_on("harfbuzz") depends_on("cairo") diff --git a/var/spack/repos/builtin/packages/pcre/package.py b/var/spack/repos/builtin/packages/pcre/package.py index a43729a1ac..6f306ab0f9 100644 --- a/var/spack/repos/builtin/packages/pcre/package.py +++ b/var/spack/repos/builtin/packages/pcre/package.py @@ -29,7 +29,6 @@ class Pcre(Package): """The PCRE package contains Perl Compatible Regular Expression libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl 5.""" - homepage = "http://www.pcre.org""" url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.bz2" @@ -46,6 +45,7 @@ class Pcre(Package): configure_args = ['--prefix=%s' % prefix] if '+utf' in spec: configure_args.append('--enable-utf') + configure_args.append('--enable-unicode-properties') configure(*configure_args) make() -- cgit v1.2.3-60-g2f50 From 17f0eb51483b13270219e70b0c7e405f191b9d86 Mon Sep 17 00:00:00 2001 From: "Kelly (KT) Thompson" Date: Mon, 1 Aug 2016 22:10:54 -0600 Subject: Provide correct download urls and additional dependencies. --- var/spack/repos/builtin/packages/atk/package.py | 8 +++++++- var/spack/repos/builtin/packages/glib/package.py | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py index 8da562f122..361ea24b96 100644 --- a/var/spack/repos/builtin/packages/atk/package.py +++ b/var/spack/repos/builtin/packages/atk/package.py @@ -24,6 +24,7 @@ ############################################################################## from spack import * + class Atk(Package): """ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications. Using the ATK @@ -35,7 +36,12 @@ class Atk(Package): version('2.20.0', '5187b0972f4d3905f285540b31395e20') version('2.14.0', 'ecb7ca8469a5650581b1227d78051b8b') - depends_on("glib") + depends_on('glib') + depends_on('pkg-config', type='build') + + def url_for_version(self, version): + """Handle atk's version-based custom URLs.""" + return 'http://ftp.gnome.org/pub/gnome/sources/atk/%s/atk-%s.tar.xz' % (version.up_to(2), version) def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 512f446617..3450791124 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -42,10 +42,15 @@ class Glib(Package): depends_on('pkg-config', type='build') depends_on('gettext', when=sys.platform == 'darwin') depends_on('pcre+utf', when='@2.49:') + depends_on('gettext', when='@2.49:') # The following patch is needed for gcc-6.1 patch('g_date_strftime.patch') + def url_for_version(self, version): + """Handle glib's version-based custom URLs.""" + return 'http://ftp.gnome.org/pub/gnome/sources/glib/%s/glib-%s.tar.xz' % (version.up_to(2), version) + def install(self, spec, prefix): configure("--prefix=%s" % prefix) make() -- cgit v1.2.3-60-g2f50 From 9433e8477657c54e8377b6131e0b3eeb56386c79 Mon Sep 17 00:00:00 2001 From: "Kelly (KT) Thompson" Date: Mon, 1 Aug 2016 22:54:51 -0600 Subject: Formatting changes for flake8. --- var/spack/repos/builtin/packages/atk/package.py | 3 ++- var/spack/repos/builtin/packages/glib/package.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py index 361ea24b96..d5b6933ec3 100644 --- a/var/spack/repos/builtin/packages/atk/package.py +++ b/var/spack/repos/builtin/packages/atk/package.py @@ -41,7 +41,8 @@ class Atk(Package): def url_for_version(self, version): """Handle atk's version-based custom URLs.""" - return 'http://ftp.gnome.org/pub/gnome/sources/atk/%s/atk-%s.tar.xz' % (version.up_to(2), version) + url = 'http://ftp.gnome.org/pub/gnome/sources/atk' + return 'url+/%s/atk-%s.tar.xz' % (version.up_to(2), version) def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 3450791124..98704eaa4c 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -49,7 +49,8 @@ class Glib(Package): def url_for_version(self, version): """Handle glib's version-based custom URLs.""" - return 'http://ftp.gnome.org/pub/gnome/sources/glib/%s/glib-%s.tar.xz' % (version.up_to(2), version) + url = 'http://ftp.gnome.org/pub/gnome/sources/glib' + return url+'/%s/glib-%s.tar.xz' % (version.up_to(2), version) def install(self, spec, prefix): configure("--prefix=%s" % prefix) -- cgit v1.2.3-60-g2f50 From d7d12aa2dc5deea4330d13ed73a804d1ab83adcc Mon Sep 17 00:00:00 2001 From: "Kelly (KT) Thompson" Date: Tue, 2 Aug 2016 19:05:48 -0600 Subject: One more formatting change to make flake8 happy. --- var/spack/repos/builtin/packages/glib/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 98704eaa4c..1e5a53ab14 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -50,7 +50,7 @@ class Glib(Package): def url_for_version(self, version): """Handle glib's version-based custom URLs.""" url = 'http://ftp.gnome.org/pub/gnome/sources/glib' - return url+'/%s/glib-%s.tar.xz' % (version.up_to(2), version) + return url + '/%s/glib-%s.tar.xz' % (version.up_to(2), version) def install(self, spec, prefix): configure("--prefix=%s" % prefix) -- cgit v1.2.3-60-g2f50 From 7c46a4c0e4c255f3c7969d6681cd8fd7c239ed98 Mon Sep 17 00:00:00 2001 From: "Kelly (KT) Thompson" Date: Wed, 3 Aug 2016 13:26:02 -0600 Subject: Provide minor updates after code review + Always depend on the gettext package. This simplifies the logic and I no longer need to 'import sys' + Only apply the patch for the older version of glib. --- var/spack/repos/builtin/packages/glib/package.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 1e5a53ab14..2720831e4f 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -23,7 +23,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * -import sys class Glib(Package): @@ -40,12 +39,11 @@ class Glib(Package): depends_on('libffi') depends_on('zlib') depends_on('pkg-config', type='build') - depends_on('gettext', when=sys.platform == 'darwin') + depends_on('gettext') depends_on('pcre+utf', when='@2.49:') - depends_on('gettext', when='@2.49:') # The following patch is needed for gcc-6.1 - patch('g_date_strftime.patch') + patch('g_date_strftime.patch', when='@2.42.1') def url_for_version(self, version): """Handle glib's version-based custom URLs.""" -- cgit v1.2.3-60-g2f50