From 65c250699f12fac5deb618e7dd719669e2c65497 Mon Sep 17 00:00:00 2001
From: Mayeul d'Avezac <m.davezac@ucl.ac.uk>
Date: Tue, 25 Oct 2016 19:08:32 +0100
Subject: [PATCH] pkg-config variant to use internal glib (#2104)

Pkg-config depends on glib which depends on pkg-config. As a result,
pkg-config used to build glib internally. However, this fails on Mac.
Building pkg-config with an internal glib is now a variant, turned on
by default, and required to build glib.
---
 .../repos/builtin/packages/glib/package.py     |  2 +-
 .../builtin/packages/pkg-config/package.py     | 18 +++++++++++-------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py
index 3e687ccd95..4d8085baf2 100644
--- a/var/spack/repos/builtin/packages/glib/package.py
+++ b/var/spack/repos/builtin/packages/glib/package.py
@@ -42,7 +42,7 @@ class Glib(Package):
     depends_on('autoconf', type='build')
     depends_on('automake', type='build')
     depends_on('libtool', type='build')
-    depends_on('pkg-config', type='build')
+    depends_on('pkg-config+internal_glib', type='build')
     depends_on('libffi')
     depends_on('zlib')
     depends_on('gettext')
diff --git a/var/spack/repos/builtin/packages/pkg-config/package.py b/var/spack/repos/builtin/packages/pkg-config/package.py
index 45e8e8b74e..a98f65fb07 100644
--- a/var/spack/repos/builtin/packages/pkg-config/package.py
+++ b/var/spack/repos/builtin/packages/pkg-config/package.py
@@ -30,23 +30,27 @@ class PkgConfig(Package):
     and libraries"""
 
     homepage = "http://www.freedesktop.org/wiki/Software/pkg-config/"
-    url      = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz"
+    url = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz"
 
     version('0.29.1', 'f739a28cae4e0ca291f82d1d41ef107d')
     version('0.28',   'aa3c86e67551adc3ac865160e34a2a0d')
 
     parallel = False
+    variant('internal_glib', default=True,
+            description='Builds with internal glib')
 
     # The following patch is needed for gcc-6.1
     patch('g_date_strftime.patch')
 
     def install(self, spec, prefix):
-        configure("--prefix={0}".format(prefix),
-                  "--enable-shared",
-                  # There's a bootstrapping problem here;
-                  # glib uses pkg-config as well, so break
-                  # the cycle by using the internal glib.
-                  "--with-internal-glib")
+        args = ["--prefix={0}".format(prefix),
+                "--enable-shared"]
+        if "+internal_glib" in spec:
+            # There's a bootstrapping problem here;
+            # glib uses pkg-config as well, so break
+            # the cycle by using the internal glib.
+            args.append("--with-internal-glib")
+        configure(*args)
 
         make()
         make("install")
-- 
GitLab