summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/glib.scm7
-rw-r--r--gnu/packages/patches/gobject-introspection-cc.patch14
3 files changed, 19 insertions, 3 deletions
diff --git a/gnu-system.am b/gnu-system.am
index c5134740de..742a6135e0 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -244,6 +244,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/glibc-bootstrap-system.patch		\
   gnu/packages/patches/glibc-ldd-x86_64.patch			\
   gnu/packages/patches/glibc-make-4.0.patch			\
+  gnu/packages/patches/gobject-introspection-cc.patch		\
   gnu/packages/patches/grub-gets-undeclared.patch		\
   gnu/packages/patches/gstreamer-0.10-bison3.patch		\
   gnu/packages/patches/gstreamer-0.10-silly-test.patch		\
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 097a5d0f49..2ba1460444 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -176,7 +176,8 @@ dynamic loading, and an object system.")
                    "/gobject-introspection-"
                    version ".tar.xz"))
              (sha256
-              (base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m"))))
+              (base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m"))
+             (patches (list (search-patch "gobject-introspection-cc.patch")))))
     (build-system gnu-build-system)
     (inputs
      `(("bison" ,bison)
@@ -192,8 +193,8 @@ dynamic loading, and an object system.")
          'configure
          (lambda* (#:key #:allow-other-keys #:rest args)
           (let ((configure (assoc-ref %standard-phases 'configure)))
-           ;; giscanner/sourcescanner.py looks for 'CC', let's set it here.
-           (setenv "CC" "gcc")
+           (substitute* "giscanner/sourcescanner.py"
+             (("GUIX_GCC_PATH") (which "gcc")))
            (apply configure args)))
          %standard-phases)))
     (home-page "https://wiki.gnome.org/GObjectIntrospection")
diff --git a/gnu/packages/patches/gobject-introspection-cc.patch b/gnu/packages/patches/gobject-introspection-cc.patch
new file mode 100644
index 0000000000..38b919a746
--- /dev/null
+++ b/gnu/packages/patches/gobject-introspection-cc.patch
@@ -0,0 +1,14 @@
+--- a/giscanner/sourcescanner.py	2013-12-15 23:03:54.002937000 +0100
++++ b/giscanner/sourcescanner.py	2013-12-15 23:04:50.322937000 +0100
+@@ -277,6 +277,11 @@
+         defines = ['__GI_SCANNER__']
+         undefs = []
+         cpp_args = os.environ.get('CC', 'cc').split()  # support CC="ccache gcc"
++        if (cpp_args == ['cc'] and
++            not any(map(lambda x: os.access(os.path.join(x, 'cc'), os.X_OK),
++                        os.environ.get('PATH').split(':')))):
++            cpp_args = ['GUIX_GCC_PATH']
++
+         if 'cl' in cpp_args:
+             # The Microsoft compiler/preprocessor (cl) does not accept
+             # source input from stdin (the '-' flag), so we need