summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am2
-rw-r--r--gnu/packages/base.scm10
-rw-r--r--gnu/packages/m4.scm16
-rw-r--r--gnu/packages/patches/glibc-ldd-x86_64.patch10
-rw-r--r--gnu/packages/patches/m4-s_isdir.patch14
-rw-r--r--guix/build/utils.scm39
-rw-r--r--guix/scripts/pull.scm4
7 files changed, 45 insertions, 50 deletions
diff --git a/gnu-system.am b/gnu-system.am
index a7fbb27252..304c51f6cf 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -210,6 +210,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/glib-tests-homedir.patch			\
   gnu/packages/patches/glib-tests-prlimit.patch			\
   gnu/packages/patches/glibc-bootstrap-system.patch		\
+  gnu/packages/patches/glibc-ldd-x86_64.patch			\
   gnu/packages/patches/glibc-no-ld-so-cache.patch		\
   gnu/packages/patches/grub-gets-undeclared.patch		\
   gnu/packages/patches/guile-1.8-cpp-4.5.patch			\
@@ -221,7 +222,6 @@ dist_patch_DATA =						\
   gnu/packages/patches/libtool-skip-tests.patch			\
   gnu/packages/patches/m4-gets-undeclared.patch			\
   gnu/packages/patches/m4-readlink-EINVAL.patch			\
-  gnu/packages/patches/m4-s_isdir.patch				\
   gnu/packages/patches/make-impure-dirs.patch			\
   gnu/packages/patches/mcron-install.patch			\
   gnu/packages/patches/perl-no-sys-dirs.patch			\
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index b8efb6e9d8..5a32e57535 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -387,14 +387,14 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
 (define-public glibc
   (package
    (name "glibc")
-   (version "2.17")
+   (version "2.18")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/glibc/glibc-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0gmjnn4kma9vgizccw1jv979xw55a8n1nkk94gg0l3hy80vy6539"))))
+              "18spla703zav8dq9fw7rbzkyv9qfisxb26p7amg1x3wjh7iy3d1c"))))
    (build-system gnu-build-system)
 
    ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -409,7 +409,8 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
 
    (arguments
     `(#:out-of-source? #t
-      #:patches (list (assoc-ref %build-inputs "patch/ld.so.cache"))
+      #:patches (list (assoc-ref %build-inputs "patch/ld.so.cache")
+                      (assoc-ref %build-inputs "patch/ldd"))
       #:configure-flags
       (list "--enable-add-ons"
             "--sysconfdir=/etc"
@@ -422,7 +423,6 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
                            (assoc-ref %outputs "locales")
                            "/share/locale")
 
-
             (string-append "--with-headers="
                            (assoc-ref %build-inputs "linux-headers")
                            "/include")
@@ -496,6 +496,8 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
 
    (inputs `(("patch/ld.so.cache"
               ,(search-patch "glibc-no-ld-so-cache.patch"))
+             ("patch/ldd"
+              ,(search-patch "glibc-ldd-x86_64.patch"))
              ("static-bash" ,(static-package bash-light))))
    (synopsis "The GNU C Library")
    (description
diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm
index 0be1824382..17ca7c8440 100644
--- a/gnu/packages/m4.scm
+++ b/gnu/packages/m4.scm
@@ -26,14 +26,14 @@
 (define-public m4
   (package
    (name "m4")
-   (version "1.4.16")
+   (version "1.4.17")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/m4/m4-"
                                 version ".tar.bz2"))
             (sha256
              (base32
-              "035r7ma272j2cwni2961jp22k6bn3n9xwn3b3qbcn2yrvlghql22"))))
+              "0w0da1chh12mczxa5lnwzjk9czi3dq6gnnndbpa6w4rj76b1yklf"))))
    (build-system gnu-build-system)
    (arguments
     ;; XXX: Disable tests on those platforms with know issues.
@@ -41,10 +41,8 @@
                              '("x86_64-darwin"
                                "i686-cygwin"
                                "i686-sunos")))
-      #:patches (list (assoc-ref %build-inputs "patch/s_isdir")
-                      (assoc-ref %build-inputs
-                                 "patch/readlink-EINVAL")
-                      (assoc-ref %build-inputs "patch/gets"))
+      #:patches (list (assoc-ref %build-inputs
+                                 "patch/readlink-EINVAL"))
       #:phases (alist-cons-before
                 'check 'pre-check
                 (lambda* (#:key inputs #:allow-other-keys)
@@ -57,10 +55,8 @@
                       (("/bin/sh")
                        (format #f "~a/bin/bash" bash)))))
                 %standard-phases)))
-   (inputs `(("patch/s_isdir" ,(search-patch "m4-s_isdir.patch"))
-             ("patch/readlink-EINVAL"
-              ,(search-patch "m4-readlink-EINVAL.patch"))
-             ("patch/gets" ,(search-patch "m4-gets-undeclared.patch"))))
+   (inputs `(("patch/readlink-EINVAL"
+              ,(search-patch "m4-readlink-EINVAL.patch"))))
    (synopsis "Macro processor")
    (description
     "GNU M4 is an implementation of the traditional Unix macro processor.  It
diff --git a/gnu/packages/patches/glibc-ldd-x86_64.patch b/gnu/packages/patches/glibc-ldd-x86_64.patch
new file mode 100644
index 0000000000..b1b6d5a548
--- /dev/null
+++ b/gnu/packages/patches/glibc-ldd-x86_64.patch
@@ -0,0 +1,10 @@
+By default, 'RTDLLIST' in 'ldd' refers to 'lib64/ld-linux-x86-64.so', whereas
+it's in 'lib/' for us.  This patch fixes that.
+
+--- glibc-2.17/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed	2012-12-25 04:02:13.000000000 +0100
++++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed	2013-09-15 23:08:03.000000000 +0200
+@@ -1,3 +1,3 @@
+ /LD_TRACE_LOADED_OBJECTS=1/a\
+ add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+-s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ 	]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_
++s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ 	]*$_\1"\2\4\6 \2\4-x86-64\6 \2x32\4-x32\6"_
diff --git a/gnu/packages/patches/m4-s_isdir.patch b/gnu/packages/patches/m4-s_isdir.patch
deleted file mode 100644
index a009a4ba44..0000000000
--- a/gnu/packages/patches/m4-s_isdir.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Fails to build with glibc 2.12.1 without this patch.
-
-http://lists.gnu.org/archive/html/bug-m4/2010-05/msg00002.html
-
---- a/src/path.c
-+++ b/src/path.c
-@@ -22,6 +22,7 @@
- /* Handling of path search of included files via the builtins "include"
-    and "sinclude".  */
- 
- #include "m4.h"
-+#include "sys/stat.h"
- 
- struct includes
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 06e88b1ff8..8cc9c1ee1f 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -185,29 +185,32 @@ but ignore errors."
                     lstat))
 
 (define (find-files dir regexp)
-  "Return the list of files under DIR whose basename matches REGEXP."
+  "Return the lexicographically sorted list of files under DIR whose basename
+matches REGEXP."
   (define file-rx
     (if (regexp? regexp)
         regexp
         (make-regexp regexp)))
 
-  (file-system-fold (const #t)
-                    (lambda (file stat result)    ; leaf
-                      (if (regexp-exec file-rx (basename file))
-                          (cons file result)
-                          result))
-                    (lambda (dir stat result)     ; down
-                      result)
-                    (lambda (dir stat result)     ; up
-                      result)
-                    (lambda (file stat result)    ; skip
-                      result)
-                    (lambda (file stat errno result)
-                      (format (current-error-port) "find-files: ~a: ~a~%"
-                              file (strerror errno))
-                      #f)
-                    '()
-                    dir))
+  ;; Sort the result to get deterministic results.
+  (sort (file-system-fold (const #t)
+                          (lambda (file stat result)   ; leaf
+                            (if (regexp-exec file-rx (basename file))
+                                (cons file result)
+                                result))
+                          (lambda (dir stat result)    ; down
+                            result)
+                          (lambda (dir stat result)    ; up
+                            result)
+                          (lambda (file stat result)   ; skip
+                            result)
+                          (lambda (file stat errno result)
+                            (format (current-error-port) "find-files: ~a: ~a~%"
+                                    file (strerror errno))
+                            #f)
+                          '()
+                          dir)
+        string<?))
 
 
 ;;;
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index a1b5cdc991..023b83e6a3 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -115,9 +115,7 @@ files."
                    ;; download), we must build it first to avoid errors since
                    ;; (gnutls) is unavailable.
                    (cons (string-append out "/guix/build/download.scm")
-
-                         ;; Sort the file names to get deterministic results.
-                         (sort (find-files out "\\.scm") string<?)))
+                         (find-files out "\\.scm")))
 
          ;; Remove the "fake" (guix config).
          (delete-file (string-append out "/guix/config.scm"))