> Good.  You can already commit that one (but please make it
> (string-append bash "/bin/sh") rather.)

I found more and added them to 'python.scm'.

There are other files that use faulty shells, but I'm not sure that they
are really needed (e.g., platform-specific ones).  Could you check them
using 'grep -r "/bin/sh" .'?

> Are you looking at the subprocess.py that’s actually mentioned in the
> gobject-introspection backtrace?

Yes.

> If yes, then it likely means that it’s the caller–i.e., some .py file in
> gobject-introspection–that’s passing /bin/sh somewhere.  Can you check
> the files mentioned in the backtrace?

Those are fine (I guess).  The only file I found is 'm4/libtool.m4'.  I
added it, but 'build' failed again.

I'm attaching both recipes.  Please have a look.

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix 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
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages gobject-introspection)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages bison)
  #:use-module (gnu packages flex)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages libffi)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python))

(define-public gobject-introspection
  (package
    (name "gobject-introspection")
    (version "1.34.2")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://ftp.gnome.org/pub/gnome/sources/";
                          name "/1.34/" name "-" version ".tar.xz"))
      (sha256
       (base32
        "0a9lq0y67sr3g37l1hy0biqn046jr9wnd05hvwi8j8g2bjilhydw"))))
    (build-system gnu-build-system)
    (arguments `(#:phases (alist-cons-before
                           'configure 'fix-sh
                           (lambda _
                             (substitute* '("configure"
                                            "build-aux/ltmain.sh"
                                            "m4/libtool.m4")
                               (("-/bin/sh")
                                (string-append "-" (which "sh"))))
                             (substitute* '("configure"
                                            "build-aux/missing"
                                            "build-aux/ltmain.sh"
                                            "build-aux/config.guess")
                               ((" /bin/sh")
                                (string-append " " (which "sh")))))
                           (alist-cons-after
                            'configure 'fix-python
                            (lambda _
                              (substitute* '("tools/g-ir-annotation-tool.in"
                                             "tools/g-ir-scanner.in")
                                (("@PYTHON@") (which "python"))))
                           (alist-cons-before
                            'build 'fix-sh
                            (lambda _
                              (substitute* "libtool"
                                (("-/bin/sh")
                                 (string-append "-" (which "sh")))
                                ((" /bin/sh")
                                 (string-append " " (which "sh")))))
                            %standard-phases)))))
    (inputs
     `(("bison" ,bison)
       ("flex" ,flex)
       ("glib" ,glib)
       ("libffi" ,libffi)
       ("pkg-config" ,pkg-config)
       ("python" ,python)))
    (home-page
     "https://live.gnome.org/GObjectIntrospection";)
    (synopsis
     "GObject introspection, a middleware layer between C libraries")
    (description
     "GObject introspection is a middleware layer between C
libraries (using GObject) and language bindings.  The C library can be
scanned at compile time and generate a metadata file, in addition to the
actual native C library.  Then at runtime, language bindings can read
this metadata and automatically provide bindings to call into the C
library.")
    (license (list lgpl2.0+ gpl2+ bsd-2))))
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <[email protected]>
;;; Copyright © 2013 Ludovic Courtès <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix 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
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages python)
  #:use-module ((guix licenses) #:select (psfl))
  #:use-module (gnu packages compression)
  #:use-module (gnu packages openssl)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu))

(define-public python
  (package
    (name "python")
    (version "2.7.3")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://www.python.org/ftp/python/";
                          version "/Python-" version ".tar.xz"))
      (sha256
       (base32
        "11f9aw855lrmknr6c82gm1ijr3n0smc6idyp94y7774yivjnplv1"))))
    (build-system gnu-build-system)
    (arguments `(#:tests? #f ; XXX: some tests fail
                 #:phases (alist-cons-before
                           'configure 'pre-configure
                           (lambda* (#:key inputs #:allow-other-keys)
                             (let ((bash (assoc-ref inputs "bash")))
                               (substitute*
                                 '("Makefile.pre.in"
                                   "configure"
                                   "Lib/popen2.py"
                                   "Lib/subprocess.py"
                                   "Modules/_ctypes/libffi/m4/libtool.m4"
                                   "Modules/_ctypes/libffi/config.guess"
                                   "Modules/_ctypes/libffi/ltmain.sh"
                                   "Modules/_ctypes/libffi/configure")
                                 (("/bin/sh")
                                  (string-append bash "/bin/sh")))))
                           %standard-phases)))
    (inputs
     `(("zlib" ,zlib)
       ("openssl" ,openssl)
       ("bzip2" ,bzip2)))
    (home-page "http://python.org";)
    (synopsis
     "Python, a high-level dynamically-typed programming language")
    (description
     "Python is a remarkably powerful dynamic programming language that
is used in a wide variety of application domains.  Some of its key
distinguishing features include: clear, readable syntax; strong
introspection capabilities; intuitive object orientation; natural
expression of procedural code; full modularity, supporting hierarchical
packages; exception-based error handling; and very high level dynamic
data types.")
    (license psfl)))

Attachment: pgpahni_9sUUY.pgp
Description: PGP signature

Reply via email to