From 6c80b152208e8f2154db6c658475fe18a9c9f8bc Mon Sep 17 00:00:00 2001
From: "Kelly (KT) Thompson" <kgt@lanl.gov>
Date: Fri, 29 Jul 2016 08:46:31 -0600
Subject: [PATCH] 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
---
 .../repos/builtin/packages/atk/package.py     |  1 +
 .../repos/builtin/packages/glib/package.py    | 10 +++--
 .../builtin/packages/libepoxy/package.py      | 39 +++++++++++++++++++
 .../repos/builtin/packages/pango/package.py   |  2 +
 .../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 @@ def install(self, spec, prefix):
         configure_args = ['--prefix=%s' % prefix]
         if '+utf' in spec:
             configure_args.append('--enable-utf')
+            configure_args.append('--enable-unicode-properties')
 
         configure(*configure_args)
         make()
-- 
GitLab