Merge branch 'core-updates'
This commit is contained in:
		
						commit
						e170571887
					
				
					 53 changed files with 615 additions and 316 deletions
				
			
		| 
						 | 
				
			
			@ -4455,7 +4455,7 @@ Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;
 | 
			
		|||
Intel 32-bit architecture (IA32), Linux-Libre kernel;
 | 
			
		||||
 | 
			
		||||
@item armhf-linux
 | 
			
		||||
ARMv7-A architecture with hard float, Thumb-2 and VFP3D16 coprocessor,
 | 
			
		||||
ARMv7-A architecture with hard float, Thumb-2 and NEON,
 | 
			
		||||
using the EABI hard-float ABI, and Linux-Libre kernel.
 | 
			
		||||
 | 
			
		||||
@item mips64el-linux
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -403,7 +403,6 @@ dist_patch_DATA =						\
 | 
			
		|||
  gnu/packages/patches/clang-libc-search-path.patch		\
 | 
			
		||||
  gnu/packages/patches/clucene-pkgconfig.patch			\
 | 
			
		||||
  gnu/packages/patches/cmake-fix-tests.patch			\
 | 
			
		||||
  gnu/packages/patches/coreutils-dummy-man.patch		\
 | 
			
		||||
  gnu/packages/patches/cpio-CVE-2014-9112-pt1.patch		\
 | 
			
		||||
  gnu/packages/patches/cpio-CVE-2014-9112-pt2.patch		\
 | 
			
		||||
  gnu/packages/patches/cpio-CVE-2014-9112-pt3.patch		\
 | 
			
		||||
| 
						 | 
				
			
			@ -441,7 +440,6 @@ dist_patch_DATA =						\
 | 
			
		|||
  gnu/packages/patches/gcc-libvtv-runpath.patch			\
 | 
			
		||||
  gnu/packages/patches/gcc-5.0-libvtv-runpath.patch		\
 | 
			
		||||
  gnu/packages/patches/geoclue-config.patch			\
 | 
			
		||||
  gnu/packages/patches/gettext-msgunfmt.patch			\
 | 
			
		||||
  gnu/packages/patches/ghostscript-runpath.patch		\
 | 
			
		||||
  gnu/packages/patches/gitolite-openssh-6.8-compat.patch	\
 | 
			
		||||
  gnu/packages/patches/glib-tests-desktop.patch			\
 | 
			
		||||
| 
						 | 
				
			
			@ -473,6 +471,7 @@ dist_patch_DATA =						\
 | 
			
		|||
  gnu/packages/patches/hydra-automake-1.15.patch		\
 | 
			
		||||
  gnu/packages/patches/hydra-disable-darcs-test.patch		\
 | 
			
		||||
  gnu/packages/patches/icecat-enable-acceleration-and-webgl.patch \
 | 
			
		||||
  gnu/packages/patches/icecat-freetype-2.6.patch		\
 | 
			
		||||
  gnu/packages/patches/icecat-libvpx-1.4.patch			\
 | 
			
		||||
  gnu/packages/patches/irrlicht-mesa-10.patch			\
 | 
			
		||||
  gnu/packages/patches/jbig2dec-ignore-testtest.patch		\
 | 
			
		||||
| 
						 | 
				
			
			@ -540,6 +539,7 @@ dist_patch_DATA =						\
 | 
			
		|||
  gnu/packages/patches/ngircd-handle-zombies.patch		\
 | 
			
		||||
  gnu/packages/patches/ngircd-no-dns-in-tests.patch		\
 | 
			
		||||
  gnu/packages/patches/ninja-tests.patch			\
 | 
			
		||||
  gnu/packages/patches/ninja-zero-mtime.patch			\
 | 
			
		||||
  gnu/packages/patches/nss-pkgconfig.patch			\
 | 
			
		||||
  gnu/packages/patches/nvi-assume-preserve-path.patch		\
 | 
			
		||||
  gnu/packages/patches/nvi-dbpagesize-binpower.patch		\
 | 
			
		||||
| 
						 | 
				
			
			@ -625,6 +625,11 @@ dist_patch_DATA =						\
 | 
			
		|||
  gnu/packages/patches/unzip-CVE-2014-8139.patch		\
 | 
			
		||||
  gnu/packages/patches/unzip-CVE-2014-8140.patch		\
 | 
			
		||||
  gnu/packages/patches/unzip-CVE-2014-8141.patch		\
 | 
			
		||||
  gnu/packages/patches/unzip-CVE-2014-9636.patch		\
 | 
			
		||||
  gnu/packages/patches/unzip-allow-greater-hostver-values.patch	\
 | 
			
		||||
  gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch	\
 | 
			
		||||
  gnu/packages/patches/unzip-initialize-symlink-flag.patch	\
 | 
			
		||||
  gnu/packages/patches/unzip-remove-build-date.patch		\
 | 
			
		||||
  gnu/packages/patches/util-linux-tests.patch			\
 | 
			
		||||
  gnu/packages/patches/upower-builddir.patch			\
 | 
			
		||||
  gnu/packages/patches/valgrind-glibc-2.21.patch		\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -412,7 +412,11 @@ connection alive.")
 | 
			
		|||
                     (for-each patch-shebang
 | 
			
		||||
                               (find-files "bind-9.9.5-P1" ".*"))
 | 
			
		||||
                     (zero? (system* "tar" "cf" "bind.tar.gz"
 | 
			
		||||
                                     "bind-9.9.5-P1"))))
 | 
			
		||||
                                     "bind-9.9.5-P1"
 | 
			
		||||
                                     ;; avoid non-determinism in the archive
 | 
			
		||||
                                     "--mtime=@0"
 | 
			
		||||
                                     "--owner=root:0"
 | 
			
		||||
                                     "--group=root:0"))))
 | 
			
		||||
                 (alist-cons-after
 | 
			
		||||
                  'install 'post-install
 | 
			
		||||
                  (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -238,15 +238,14 @@ used to apply commands with arbitrarily long arguments.")
 | 
			
		|||
(define-public coreutils
 | 
			
		||||
  (package
 | 
			
		||||
   (name "coreutils")
 | 
			
		||||
   (version "8.23")
 | 
			
		||||
   (version "8.24")
 | 
			
		||||
   (source (origin
 | 
			
		||||
            (method url-fetch)
 | 
			
		||||
            (uri (string-append "mirror://gnu/coreutils/coreutils-"
 | 
			
		||||
                                version ".tar.xz"))
 | 
			
		||||
            (sha256
 | 
			
		||||
             (base32
 | 
			
		||||
              "0bdq6yggyl7nkc2pbl6pxhhyx15nyqhz3ds6rfn448n6rxdwlhzc"))
 | 
			
		||||
            (patches (list (search-patch "coreutils-dummy-man.patch")))))
 | 
			
		||||
              "0w11jw3fb5sslf0f72kxy7llxgk1ia3a6bcw0c9kmvxrlj355mx2"))))
 | 
			
		||||
   (build-system gnu-build-system)
 | 
			
		||||
   (inputs `(("acl"  ,acl)                        ; TODO: add SELinux
 | 
			
		||||
             ("gmp"  ,gmp)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -86,7 +86,13 @@
 | 
			
		|||
   (30 "0nrqb0m7s89qsrbfaffpilc5gcf82bx9yvgzld4hr79p5y54yhw5") ;CVE-2014-6278
 | 
			
		||||
   (31 "07d62bl3z7qa8v6kgk47vzzazw563mlk9zhrsr4xsbqgvmcrylnd")
 | 
			
		||||
   (32 "0jjgapfq4qhmndfrw8c3q3lva8xjdhlbd9cc631v41b0kb95g4w8")
 | 
			
		||||
   (33 "05ma5rlxiadnfh925p4y7s0vvk917kmsdb1mfdx05gizl63pfapv")))
 | 
			
		||||
   (33 "05ma5rlxiadnfh925p4y7s0vvk917kmsdb1mfdx05gizl63pfapv")
 | 
			
		||||
   (34 "12gq9whkq3naa3iy7c7x5pfpvrg7d0kwqld8609zxphhy424ysgi")
 | 
			
		||||
   (35 "1qy1jflmbazjykq766gwabkaiswnx7pwa66whqiny0w02zjqa39p")
 | 
			
		||||
   (36 "0z6jbyy70lfdm6d3x0sbazbqdxb3xnpn9bmz7madpvrnbd284pxc")
 | 
			
		||||
   (37 "04sqr8zkl6s5fccfvb775ppn3ldij5imria9swc39aq0fkfp1w9k")
 | 
			
		||||
   (38 "0rv3g14mpgv8br267bf7rmgqlgwnc4v6g3g8y0sjba571i8amgmd")
 | 
			
		||||
   (39 "1v3l3vkc3g2b6fjycqwlakr8xhiw6bmw6q0zd6bi0m0m4bnxr55b")))
 | 
			
		||||
(define (download-patches store count)
 | 
			
		||||
  "Download COUNT Bash patches into store.  Return a list of
 | 
			
		||||
number/base32-hash tuples, directly usable in the 'patch-series' form."
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -197,6 +197,33 @@ successful, or false to signal an error."
 | 
			
		|||
                            "guile-2.0.11.tar.xz")
 | 
			
		||||
                           (_
 | 
			
		||||
                            "guile-2.0.9.tar.xz"))))
 | 
			
		||||
         ;; The following code, run by the bootstrap guile after it is
 | 
			
		||||
         ;; unpacked, creates a wrapper for itself to set its load path.
 | 
			
		||||
         ;; This replaces the previous non-portable method based on
 | 
			
		||||
         ;; reading the /proc/self/exe symlink.
 | 
			
		||||
         (make-guile-wrapper
 | 
			
		||||
          '(begin
 | 
			
		||||
             (use-modules (ice-9 match))
 | 
			
		||||
             (match (command-line)
 | 
			
		||||
               ((_ out bash)
 | 
			
		||||
                (let ((bin-dir    (string-append out "/bin"))
 | 
			
		||||
                      (guile      (string-append out "/bin/guile"))
 | 
			
		||||
                      (guile-real (string-append out "/bin/.guile-real"))
 | 
			
		||||
                      ;; We must avoid using a bare dollar sign in this code,
 | 
			
		||||
                      ;; because it would be interpreted by the shell.
 | 
			
		||||
                      (dollar     (string (integer->char 36))))
 | 
			
		||||
                  (chmod bin-dir #o755)
 | 
			
		||||
                  (rename-file guile guile-real)
 | 
			
		||||
                  (call-with-output-file guile
 | 
			
		||||
                    (lambda (p)
 | 
			
		||||
                      (format p "\
 | 
			
		||||
#!~a
 | 
			
		||||
export GUILE_SYSTEM_PATH=~a/share/guile/2.0
 | 
			
		||||
export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.0/ccache
 | 
			
		||||
exec -a \"~a0\" ~a \"~a@\"\n"
 | 
			
		||||
                              bash out out dollar guile-real dollar)))
 | 
			
		||||
                  (chmod guile   #o555)
 | 
			
		||||
                  (chmod bin-dir #o555))))))
 | 
			
		||||
         (builder
 | 
			
		||||
          (add-text-to-store store
 | 
			
		||||
                             "build-bootstrap-guile.sh"
 | 
			
		||||
| 
						 | 
				
			
			@ -206,10 +233,17 @@ echo \"unpacking bootstrap Guile to '$out'...\"
 | 
			
		|||
cd $out
 | 
			
		||||
~a -dc < ~a | ~a xv
 | 
			
		||||
 | 
			
		||||
# Use the bootstrap guile to create its own wrapper to set the load path.
 | 
			
		||||
GUILE_SYSTEM_PATH=$out/share/guile/2.0 \
 | 
			
		||||
GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache \
 | 
			
		||||
$out/bin/guile -c ~s $out ~a
 | 
			
		||||
 | 
			
		||||
# Sanity check.
 | 
			
		||||
$out/bin/guile --version~%"
 | 
			
		||||
                                     mkdir xz guile tar)
 | 
			
		||||
                             (list mkdir xz guile tar))))
 | 
			
		||||
                                     mkdir xz guile tar
 | 
			
		||||
                                     (format #f "~s" make-guile-wrapper)
 | 
			
		||||
                                     bash)
 | 
			
		||||
                             (list mkdir xz guile tar bash))))
 | 
			
		||||
    (derivation store name
 | 
			
		||||
                bash `(,builder)
 | 
			
		||||
                #:system system
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -284,6 +284,7 @@
 | 
			
		|||
  ;; because we don't need the stand-alone Info reader.
 | 
			
		||||
  ;; Also, use %BOOT0-INPUTS to avoid building Perl once more.
 | 
			
		||||
  (let ((texinfo (package (inherit texinfo)
 | 
			
		||||
                   (native-inputs '())
 | 
			
		||||
                   (inputs (alist-delete "ncurses" (package-inputs texinfo))))))
 | 
			
		||||
    (package-with-bootstrap-guile
 | 
			
		||||
     (package-with-explicit-inputs texinfo %boot0-inputs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -165,8 +165,7 @@ may be either a libc package or #f.)"
 | 
			
		|||
                  ;; Add the cross Linux headers to CROSS_CPATH, and remove them
 | 
			
		||||
                  ;; from CPATH.
 | 
			
		||||
                  (let ((libc  (assoc-ref inputs "libc"))
 | 
			
		||||
                        (linux (assoc-ref inputs
 | 
			
		||||
                                          "libc/linux-headers")))
 | 
			
		||||
                        (linux (assoc-ref inputs "xlinux-headers")))
 | 
			
		||||
                    (define (cross? x)
 | 
			
		||||
                      ;; Return #t if X is a cross-libc or cross Linux.
 | 
			
		||||
                      (or (string-prefix? libc x)
 | 
			
		||||
| 
						 | 
				
			
			@ -245,6 +244,9 @@ GCC that does not target a libc; otherwise, target that libc."
 | 
			
		|||
                               (alist-delete "libc" %final-inputs))))
 | 
			
		||||
           (if libc
 | 
			
		||||
               `(("libc" ,libc)
 | 
			
		||||
                 ("xlinux-headers"                ;the target headers
 | 
			
		||||
                  ,@(assoc-ref (package-propagated-inputs libc)
 | 
			
		||||
                               "linux-headers"))
 | 
			
		||||
                 ,@inputs)
 | 
			
		||||
               inputs))))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -314,7 +316,7 @@ XBINUTILS and the cross tool chain."
 | 
			
		|||
              #t))
 | 
			
		||||
          ,phases))))
 | 
			
		||||
 | 
			
		||||
    ;; Shadow the native "linux-headers" because glibc's recipe expect the
 | 
			
		||||
    ;; Shadow the native "linux-headers" because glibc's recipe expects the
 | 
			
		||||
    ;; "linux-headers" input to point to the right thing.
 | 
			
		||||
    (propagated-inputs `(("linux-headers" ,xlinux-headers)))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,14 +27,14 @@
 | 
			
		|||
(define-public ed
 | 
			
		||||
  (package
 | 
			
		||||
    (name "ed")
 | 
			
		||||
    (version "1.11")
 | 
			
		||||
    (version "1.12")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "mirror://gnu/ed/ed-"
 | 
			
		||||
                                 version ".tar.lz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "0d518yhs3kpdpv9fbpa1rhxk2fbry2yzcknrdaa20pi2bzg6w55x"))))
 | 
			
		||||
               "0bw0187a311rci58vznvncsj6pfp8bhs5phrlrqn03sa2i1mfrfj"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (native-inputs `(("lzip" ,lzip)))
 | 
			
		||||
    (arguments
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -410,8 +410,7 @@ operations.")
 | 
			
		|||
                                         "/bin/emacs"))
 | 
			
		||||
                (magit    (string-append (assoc-ref %build-inputs "magit")
 | 
			
		||||
                                         "/share/emacs/site-lisp"))
 | 
			
		||||
                (commit   (string-append (assoc-ref %build-inputs
 | 
			
		||||
                                                    "magit/git-modes")
 | 
			
		||||
                (commit   (string-append (assoc-ref %build-inputs "git-modes")
 | 
			
		||||
                                         "/share/emacs/site-lisp"))
 | 
			
		||||
                (source   (assoc-ref %build-inputs "source"))
 | 
			
		||||
                (lisp-dir (string-append %output "/share/emacs/site-lisp")))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,13 +40,13 @@
 | 
			
		|||
(define-public freetype
 | 
			
		||||
  (package
 | 
			
		||||
   (name "freetype")
 | 
			
		||||
   (version "2.5.5")
 | 
			
		||||
   (version "2.6")
 | 
			
		||||
   (source (origin
 | 
			
		||||
            (method url-fetch)
 | 
			
		||||
            (uri (string-append "mirror://savannah/freetype/freetype-"
 | 
			
		||||
                                version ".tar.bz2"))
 | 
			
		||||
            (sha256 (base32
 | 
			
		||||
                     "1fdgl7js99xv1yy5zx1ravmqd0jxlnqpv7zcl954h4hbg15wqyrq"))))
 | 
			
		||||
                     "0zilx15fwcpa8hmcxpc423jwb8ijw4qpq968kh18akvn4j0znsc4"))))
 | 
			
		||||
   (build-system gnu-build-system)
 | 
			
		||||
   (arguments
 | 
			
		||||
    `(#:phases
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,9 +59,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC
 | 
			
		|||
         '("--with-arch=armv7-a"
 | 
			
		||||
           "--with-float=hard"
 | 
			
		||||
           "--with-mode=thumb"
 | 
			
		||||
 | 
			
		||||
           ;; See <https://wiki.debian.org/ArmHardFloatPort/VfpComparison#FPU>
 | 
			
		||||
           "--with-fpu=vfpv3-d16"))
 | 
			
		||||
           "--with-fpu=neon"))
 | 
			
		||||
 | 
			
		||||
        (else
 | 
			
		||||
         ;; TODO: Add `arm.*-gnueabi', etc.
 | 
			
		||||
| 
						 | 
				
			
			@ -323,17 +321,15 @@ Go.  It also includes runtime support libraries for these languages.")
 | 
			
		|||
 | 
			
		||||
(define-public gcc-4.9
 | 
			
		||||
  (package (inherit gcc-4.8)
 | 
			
		||||
    (version "4.9.2")
 | 
			
		||||
    (version "4.9.3")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "mirror://gnu/gcc/gcc-"
 | 
			
		||||
                                  version "/gcc-" version ".tar.bz2"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"))
 | 
			
		||||
              (patches (map search-patch
 | 
			
		||||
                            '("gcc-arm-link-spec-fix.patch"
 | 
			
		||||
                              "gcc-libvtv-runpath.patch")))))))
 | 
			
		||||
                "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3"))
 | 
			
		||||
              (patches (list (search-patch "gcc-libvtv-runpath.patch")))))))
 | 
			
		||||
 | 
			
		||||
(define-public gcc-5.1
 | 
			
		||||
  (package (inherit gcc-4.9)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,15 +35,14 @@
 | 
			
		|||
(define-public gnu-gettext
 | 
			
		||||
  (package
 | 
			
		||||
    (name "gettext")
 | 
			
		||||
    (version "0.19.4")
 | 
			
		||||
    (version "0.19.5")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "mirror://gnu/gettext/gettext-"
 | 
			
		||||
                                 version ".tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "0gvz86m4cs8bdf3mwmwsyx6lrq4ydfxgadrgd9jlx32z3bnz3jca"))
 | 
			
		||||
             (patches (list (search-patch "gettext-msgunfmt.patch")))))
 | 
			
		||||
               "0fppvj4l9maa9q1swvhnv96hsqxx90vcjbdyjhqpir3ll55q2n0j"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("expat" ,expat)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1110,8 +1110,7 @@ to access local and remote files with a single consistent API.")
 | 
			
		|||
          (substitute* "libgnome/Makefile.in"
 | 
			
		||||
            (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))
 | 
			
		||||
        %standard-phases)))
 | 
			
		||||
    (inputs `(("popt" ,popt)
 | 
			
		||||
              ("libxml2" ,libxml2)))
 | 
			
		||||
    (inputs `(("libxml2" ,libxml2)))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("glib" ,glib "bin")             ; for glib-mkenums, etc.
 | 
			
		||||
       ("intltool" ,intltool)
 | 
			
		||||
| 
						 | 
				
			
			@ -1124,7 +1123,8 @@ to access local and remote files with a single consistent API.")
 | 
			
		|||
     `(("libcanberra" ,libcanberra)
 | 
			
		||||
       ("libbonobo" ,libbonobo)
 | 
			
		||||
       ("gconf" ,gconf)
 | 
			
		||||
       ("gnome-vfs" ,gnome-vfs)))
 | 
			
		||||
       ("gnome-vfs" ,gnome-vfs)
 | 
			
		||||
       ("popt" ,popt)))                       ;gnome-program.h includes popt.h
 | 
			
		||||
    (home-page "https://developer.gnome.org/libgnome/")
 | 
			
		||||
    (synopsis "Useful routines for building applications")
 | 
			
		||||
    (description  "The libgnome library provides a number of useful routines
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,7 @@
 | 
			
		|||
(define-public libgpg-error
 | 
			
		||||
  (package
 | 
			
		||||
    (name "libgpg-error")
 | 
			
		||||
    (version "1.18")
 | 
			
		||||
    (version "1.19")
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
      (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +49,7 @@
 | 
			
		|||
                          version ".tar.bz2"))
 | 
			
		||||
      (sha256
 | 
			
		||||
       (base32
 | 
			
		||||
        "0408v19h3h0q6w61g51hgbdg6cyw81nyzkh70qfprvsc3pkddwcz"))))
 | 
			
		||||
        "12wpqhjlsw4iaanifbqm2kich6c7x7lm8a7zhy6x5ifm6c9hw4jk"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (home-page "http://gnupg.org")
 | 
			
		||||
    (synopsis "Library of error values for GnuPG components")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -279,6 +279,7 @@ standards.")
 | 
			
		|||
                      "db/sqlite3"))
 | 
			
		||||
          #t))
 | 
			
		||||
      (patches (map search-patch '("icecat-enable-acceleration-and-webgl.patch"
 | 
			
		||||
                                   "icecat-freetype-2.6.patch"
 | 
			
		||||
                                   "icecat-libvpx-1.4.patch")))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (inputs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -116,6 +116,11 @@
 | 
			
		|||
       ;; gremlin) doesn't support it yet, so skip this phase.
 | 
			
		||||
       #:validate-runpath? #f
 | 
			
		||||
 | 
			
		||||
       ;; Don't pass --build=<triplet>, because the configure script
 | 
			
		||||
       ;; auto-detects slightly different triplets for --host and --target and
 | 
			
		||||
       ;; then complains that they don't match.
 | 
			
		||||
       #:build #f
 | 
			
		||||
 | 
			
		||||
       #:modules ((guix build gnu-build-system)
 | 
			
		||||
                  (guix build utils)
 | 
			
		||||
                  (guix build rpath)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,13 +26,13 @@
 | 
			
		|||
(define-public libidn
 | 
			
		||||
  (package
 | 
			
		||||
   (name "libidn")
 | 
			
		||||
   (version "1.30")
 | 
			
		||||
   (version "1.31")
 | 
			
		||||
   (source (origin
 | 
			
		||||
            (method url-fetch)
 | 
			
		||||
            (uri (string-append "mirror://gnu/libidn/libidn-" version
 | 
			
		||||
                                ".tar.gz"))
 | 
			
		||||
            (sha256 (base32
 | 
			
		||||
                     "0lxh5r1z8gsk4jxx3rv8aasjv8p53j4y04kvfn2w30a0syagrf9r"))))
 | 
			
		||||
                     "026z12mczlag443ms9n954h36pi3m7iva9jfw8y4ispsj772zpxg"))))
 | 
			
		||||
   (build-system gnu-build-system)
 | 
			
		||||
;; FIXME: No Java and C# libraries are currently built.
 | 
			
		||||
   (synopsis "Internationalized string processing library")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@
 | 
			
		|||
(define-public libunistring
 | 
			
		||||
  (package
 | 
			
		||||
   (name "libunistring")
 | 
			
		||||
   (version "0.9.5")
 | 
			
		||||
   (version "0.9.6")
 | 
			
		||||
   (source (origin
 | 
			
		||||
            (method url-fetch)
 | 
			
		||||
            (uri (string-append
 | 
			
		||||
| 
						 | 
				
			
			@ -34,7 +34,7 @@
 | 
			
		|||
                  version ".tar.gz"))
 | 
			
		||||
            (sha256
 | 
			
		||||
             (base32
 | 
			
		||||
              "05va4x47ik006nd13grwm276gfxb8igsj63k37vvwl3q8rr0g30s"))))
 | 
			
		||||
              "0ixxmgpgh2v8ifm6hbwsjxl023myk3dfnj7wnvmqjivza31fw9cn"))))
 | 
			
		||||
   (propagated-inputs '())                  ; FIXME: add libiconv when !glibc
 | 
			
		||||
   (build-system gnu-build-system)
 | 
			
		||||
   (arguments
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -428,17 +428,26 @@ providing the system administrator with some help in common tasks.")
 | 
			
		|||
                               (string-append "--with-bashcompletiondir="
 | 
			
		||||
                                              (assoc-ref %outputs "out")
 | 
			
		||||
                                              "/etc/bash_completion.d"))
 | 
			
		||||
       #:phases (alist-cons-before
 | 
			
		||||
                 'check 'pre-check
 | 
			
		||||
                 (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
                   (let ((out (assoc-ref outputs "out"))
 | 
			
		||||
                         (net (assoc-ref inputs "net-base")))
 | 
			
		||||
                     ;; Change the test to refer to the right file.
 | 
			
		||||
                     (substitute* "tests/ts/misc/mcookie"
 | 
			
		||||
                       (("/etc/services")
 | 
			
		||||
                        (string-append net "/etc/services")))
 | 
			
		||||
                     #t))
 | 
			
		||||
                 %standard-phases)))
 | 
			
		||||
       #:phases (modify-phases %standard-phases
 | 
			
		||||
                  (add-before
 | 
			
		||||
                   'build 'set-umount-file-name
 | 
			
		||||
                   (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
                     ;; Tell 'eject' the right file name of 'umount'.
 | 
			
		||||
                     (let ((out (assoc-ref outputs "out")))
 | 
			
		||||
                       (substitute* "sys-utils/eject.c"
 | 
			
		||||
                         (("\"/bin/umount\"")
 | 
			
		||||
                          (string-append "\"" out "/bin/umount\"")))
 | 
			
		||||
                       #t)))
 | 
			
		||||
                  (add-before
 | 
			
		||||
                   'check 'pre-check
 | 
			
		||||
                   (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
                     (let ((out (assoc-ref outputs "out"))
 | 
			
		||||
                           (net (assoc-ref inputs "net-base")))
 | 
			
		||||
                       ;; Change the test to refer to the right file.
 | 
			
		||||
                       (substitute* "tests/ts/misc/mcookie"
 | 
			
		||||
                         (("/etc/services")
 | 
			
		||||
                          (string-append net "/etc/services")))
 | 
			
		||||
                       #t))))))
 | 
			
		||||
    (inputs `(("zlib" ,zlib)
 | 
			
		||||
              ("ncurses" ,ncurses)))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
| 
						 | 
				
			
			@ -2132,13 +2141,6 @@ also contains the libsysfs library.")
 | 
			
		|||
           (substitute* "configure"
 | 
			
		||||
             (("includedir='(\\$\\{prefix\\}/include)'" all orig)
 | 
			
		||||
              (string-append "includedir='" orig "/sysfs'")))))))
 | 
			
		||||
    ;; XXX sysfsutils-1.3.0's config.guess fails on mips64el
 | 
			
		||||
    (arguments `(#:configure-flags
 | 
			
		||||
                 '(,@(if (%current-target-system)
 | 
			
		||||
                         '()
 | 
			
		||||
                         (let ((triplet
 | 
			
		||||
                                (nix-system->gnu-triplet (%current-system))))
 | 
			
		||||
                           (list (string-append "--build=" triplet)))))))
 | 
			
		||||
    (synopsis "System utilities based on Linux sysfs (version 1.x)")))
 | 
			
		||||
 | 
			
		||||
(define-public cpufrequtils
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -168,7 +168,10 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
 | 
			
		|||
              ("readline" ,readline)
 | 
			
		||||
              ("libsigsegv" ,libsigsegv)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:phases
 | 
			
		||||
     '(;; XXX The custom configure script does not cope well when passed
 | 
			
		||||
       ;; --build=<triplet>.
 | 
			
		||||
       #:build #f
 | 
			
		||||
       #:phases
 | 
			
		||||
       (alist-cons-after
 | 
			
		||||
        'unpack 'patch-sh-and-pwd
 | 
			
		||||
        (lambda _
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -629,7 +629,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
 | 
			
		|||
                                              ,(or (%current-target-system)
 | 
			
		||||
                                                   (%current-system))
 | 
			
		||||
                                              ".tar.xz")
 | 
			
		||||
                               "."))))))))))
 | 
			
		||||
                               "."
 | 
			
		||||
                               ;; avoid non-determinism in the archive
 | 
			
		||||
                               "--mtime=@0" "--owner=root:0" "--group=root:0"))))))))))
 | 
			
		||||
 | 
			
		||||
(define %bootstrap-binaries-tarball
 | 
			
		||||
  ;; A tarball with the statically-linked bootstrap binaries.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,15 +47,7 @@
 | 
			
		|||
                '(;; Build a "fat binary", with routines for several
 | 
			
		||||
                  ;; sub-architectures.
 | 
			
		||||
                  "--enable-fat"
 | 
			
		||||
                  "--enable-cxx"
 | 
			
		||||
 | 
			
		||||
                  ;; FIXME: gmp-6.0.0a's config.guess fails on
 | 
			
		||||
                  ;; multi-core armhf systems.
 | 
			
		||||
                  ,@(if (%current-target-system)
 | 
			
		||||
                        '()
 | 
			
		||||
                        (let ((triplet
 | 
			
		||||
                               (nix-system->gnu-triplet (%current-system))))
 | 
			
		||||
                          (list (string-append "--build=" triplet)))))))
 | 
			
		||||
                  "--enable-cxx")))
 | 
			
		||||
   (synopsis "Multiple-precision arithmetic library")
 | 
			
		||||
   (description
 | 
			
		||||
    "GMP is a library for arbitrary precision arithmetic, operating on
 | 
			
		||||
| 
						 | 
				
			
			@ -69,13 +61,13 @@ cryptography and computational algebra.")
 | 
			
		|||
(define-public mpfr
 | 
			
		||||
  (package
 | 
			
		||||
   (name "mpfr")
 | 
			
		||||
   (version "3.1.2")
 | 
			
		||||
   (version "3.1.3")
 | 
			
		||||
   (source (origin
 | 
			
		||||
            (method url-fetch)
 | 
			
		||||
            (uri (string-append "mirror://gnu/mpfr/mpfr-" version
 | 
			
		||||
                                ".tar.xz"))
 | 
			
		||||
            (sha256 (base32
 | 
			
		||||
                     "0fs501qi8l523gs3cpy4jjcnvwxggyfbklcys80wq236xx3hz79r"))))
 | 
			
		||||
                     "05jaa5z78lvrayld09nyr0v27c1m5dm9l7kr85v2bj4jv65s0db8"))))
 | 
			
		||||
   (build-system gnu-build-system)
 | 
			
		||||
   (outputs '("out" "debug"))
 | 
			
		||||
   (propagated-inputs `(("gmp" ,gmp)))            ; <mpfr.h> refers to <gmp.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
;;; GNU Guix --- Functional package management for GNU
 | 
			
		||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 | 
			
		||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -36,38 +37,41 @@
 | 
			
		|||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw"))
 | 
			
		||||
              (patches (list (search-patch "ninja-tests.patch")))))
 | 
			
		||||
              (patches (map search-patch
 | 
			
		||||
                            '("ninja-zero-mtime.patch" "ninja-tests.patch")))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (native-inputs `(("python" ,python-2)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     '(#:phases
 | 
			
		||||
       (alist-replace
 | 
			
		||||
        'configure
 | 
			
		||||
        (lambda _
 | 
			
		||||
          (substitute* "src/subprocess-posix.cc"
 | 
			
		||||
            (("/bin/sh") (which "sh"))))
 | 
			
		||||
        (alist-replace
 | 
			
		||||
         'build
 | 
			
		||||
         (lambda _
 | 
			
		||||
           (zero? (system* "./configure.py" "--bootstrap")))
 | 
			
		||||
         (alist-replace
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (replace
 | 
			
		||||
          'configure
 | 
			
		||||
          (lambda _
 | 
			
		||||
            (substitute* "src/subprocess-posix.cc"
 | 
			
		||||
              (("/bin/sh") (which "sh")))
 | 
			
		||||
            #t))
 | 
			
		||||
         (replace
 | 
			
		||||
          'build
 | 
			
		||||
          (lambda _
 | 
			
		||||
            (zero? (system* "./configure.py" "--bootstrap"))))
 | 
			
		||||
         (replace
 | 
			
		||||
          'check
 | 
			
		||||
          (lambda _
 | 
			
		||||
            (and (zero? (system* "./configure.py"))
 | 
			
		||||
                 (zero? (system* "./ninja" "ninja_test"))
 | 
			
		||||
                 (zero? (system* "./ninja_test"))))
 | 
			
		||||
          (alist-replace
 | 
			
		||||
           'install
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (let* ((out (assoc-ref outputs "out"))
 | 
			
		||||
                    (bin (string-append out "/bin"))
 | 
			
		||||
                    (doc (string-append out "/share/doc/ninja")))
 | 
			
		||||
               (mkdir-p bin)
 | 
			
		||||
               (copy-file "ninja" (string-append bin "/ninja"))
 | 
			
		||||
               (mkdir-p doc)
 | 
			
		||||
               (copy-file "doc/manual.asciidoc"
 | 
			
		||||
                          (string-append doc "/manual.asciidoc"))))
 | 
			
		||||
           %standard-phases))))))
 | 
			
		||||
    (native-inputs `(("python" ,python-2)))
 | 
			
		||||
                 (zero? (system* "./ninja_test")))))
 | 
			
		||||
         (replace
 | 
			
		||||
          'install
 | 
			
		||||
          (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
            (let* ((out (assoc-ref outputs "out"))
 | 
			
		||||
                   (bin (string-append out "/bin"))
 | 
			
		||||
                   (doc (string-append out "/share/doc/ninja")))
 | 
			
		||||
              (mkdir-p bin)
 | 
			
		||||
              (copy-file "ninja" (string-append bin "/ninja"))
 | 
			
		||||
              (mkdir-p doc)
 | 
			
		||||
              (copy-file "doc/manual.asciidoc"
 | 
			
		||||
                         (string-append doc "/manual.asciidoc"))
 | 
			
		||||
              #t))))))
 | 
			
		||||
    (home-page "http://martine.github.io/ninja/")
 | 
			
		||||
    (synopsis "Small build system")
 | 
			
		||||
    (description
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,21 +0,0 @@
 | 
			
		|||
Patch adapted from <http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/coreutils/coreutils-8.22/fix-for-dummy-man-usage.patch>.
 | 
			
		||||
 | 
			
		||||
Fix for 'dummy-man' usage, when cross-compiling.
 | 
			
		||||
 | 
			
		||||
The options should be before the final argument, otherwise, the following error
 | 
			
		||||
would appear when compiling:
 | 
			
		||||
 | 
			
		||||
  dummy-man: too many non-option arguments
 | 
			
		||||
 | 
			
		||||
--- coreutils-8.23/Makefile.in	2014-07-18 18:22:24.000000000 -0400
 | 
			
		||||
+++ coreutils-8.23/Makefile.in	2014-08-03 20:21:10.849158313 -0400
 | 
			
		||||
@@ -14076,8 +14076,8 @@
 | 
			
		||||
 	  && $(run_help2man)						\
 | 
			
		||||
 		     --source='$(PACKAGE_STRING)'			\
 | 
			
		||||
 		     --include=$(srcdir)/man/$$name.x			\
 | 
			
		||||
-		     --output=$$t/$$name.1 $$t/$$argv			\
 | 
			
		||||
 		     --info-page='coreutils \(aq'$$name' invocation\(aq' \
 | 
			
		||||
+		     --output=$$t/$$name.1 $$t/$$argv			\
 | 
			
		||||
 	  && sed \
 | 
			
		||||
 	       -e 's|$*\.td/||g' \
 | 
			
		||||
 	       -e '/For complete documentation/d' \
 | 
			
		||||
| 
						 | 
				
			
			@ -1,58 +0,0 @@
 | 
			
		|||
From <http://git.savannah.gnu.org/cgit/gettext.git/patch/?id=5d3eeaa0d3b7f4f6932bd29d859925a940b69459>.
 | 
			
		||||
 | 
			
		||||
2015-03-11  Daiki Ueno  <ueno@gnu.org>
 | 
			
		||||
 | 
			
		||||
	msgunfmt: Check allocated size for static segment
 | 
			
		||||
	Reported by Max Lin in:
 | 
			
		||||
	http://lists.gnu.org/archive/html/bug-gettext/2015-03/msg00005.html
 | 
			
		||||
	* read-mo.c (get_sysdep_string): Check if the embedded segment
 | 
			
		||||
	size is valid, before adding it to the string length.
 | 
			
		||||
 | 
			
		||||
diff --git a/gettext-tools/src/read-mo.c b/gettext-tools/src/read-mo.c
 | 
			
		||||
index b97bbad..1c024a8 100644
 | 
			
		||||
--- a/gettext-tools/src/read-mo.c
 | 
			
		||||
+++ b/gettext-tools/src/read-mo.c
 | 
			
		||||
@@ -149,6 +149,7 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset,
 | 
			
		||||
   nls_uint32 s_offset;
 | 
			
		||||
 
 | 
			
		||||
   /* Compute the length.  */
 | 
			
		||||
+  s_offset = get_uint32 (bfp, offset);
 | 
			
		||||
   length = 0;
 | 
			
		||||
   for (i = 4; ; i += 8)
 | 
			
		||||
     {
 | 
			
		||||
@@ -158,9 +159,14 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset,
 | 
			
		||||
       nls_uint32 ss_length;
 | 
			
		||||
       nls_uint32 ss_offset;
 | 
			
		||||
       size_t ss_end;
 | 
			
		||||
+      size_t s_end;
 | 
			
		||||
       size_t n;
 | 
			
		||||
 
 | 
			
		||||
+      s_end = xsum (s_offset, segsize);
 | 
			
		||||
+      if (size_overflow_p (s_end) || s_end > bfp->size)
 | 
			
		||||
+        error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
 | 
			
		||||
       length += segsize;
 | 
			
		||||
+      s_offset += segsize;
 | 
			
		||||
 
 | 
			
		||||
       if (sysdepref == SEGMENTS_END)
 | 
			
		||||
         break;
 | 
			
		||||
@@ -175,7 +181,7 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset,
 | 
			
		||||
       ss_end = xsum (ss_offset, ss_length);
 | 
			
		||||
       if (size_overflow_p (ss_end) || ss_end > bfp->size)
 | 
			
		||||
         error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
 | 
			
		||||
-      if (!(ss_length > 0 && bfp->data[ss_offset + ss_length - 1] == '\0'))
 | 
			
		||||
+      if (!(ss_length > 0 && bfp->data[ss_end - 1] == '\0'))
 | 
			
		||||
         {
 | 
			
		||||
           char location[30];
 | 
			
		||||
           sprintf (location, "sysdep_segment[%u]", (unsigned int) sysdepref);
 | 
			
		||||
@@ -198,11 +204,8 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset,
 | 
			
		||||
       nls_uint32 sysdep_segment_offset;
 | 
			
		||||
       nls_uint32 ss_length;
 | 
			
		||||
       nls_uint32 ss_offset;
 | 
			
		||||
-      size_t s_end = xsum (s_offset, segsize);
 | 
			
		||||
       size_t n;
 | 
			
		||||
 
 | 
			
		||||
-      if (size_overflow_p (s_end) || s_end > bfp->size)
 | 
			
		||||
-        error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
 | 
			
		||||
       memcpy (p, bfp->data + s_offset, segsize);
 | 
			
		||||
       p += segsize;
 | 
			
		||||
       s_offset += segsize;
 | 
			
		||||
							
								
								
									
										14
									
								
								gnu/packages/patches/icecat-freetype-2.6.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								gnu/packages/patches/icecat-freetype-2.6.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
Adapt to freetype 2.6.  This patch copied from upstream, see:
 | 
			
		||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1143411
 | 
			
		||||
https://hg.mozilla.org/mozilla-central/rev/afd840d66e6a
 | 
			
		||||
 | 
			
		||||
--- a/config/system-headers
 | 
			
		||||
+++ b/config/system-headers
 | 
			
		||||
@@ -415,6 +415,7 @@ freetype/ftbitmap.h
 | 
			
		||||
 freetype/ftxf86.h
 | 
			
		||||
 freetype.h
 | 
			
		||||
 ftcache.h
 | 
			
		||||
+ftfntfmt.h
 | 
			
		||||
 ftglyph.h
 | 
			
		||||
 ftsynth.h
 | 
			
		||||
 ftoutln.h
 | 
			
		||||
							
								
								
									
										19
									
								
								gnu/packages/patches/ninja-zero-mtime.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								gnu/packages/patches/ninja-zero-mtime.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
Work around a design defect in Ninja whereby a zero mtime is used to
 | 
			
		||||
denote missing files (we happen to produce files that have a zero mtime
 | 
			
		||||
and yet really do exist.)
 | 
			
		||||
 | 
			
		||||
--- ninja-1.5.3/src/disk_interface.cc	2014-11-24 18:37:47.000000000 +0100
 | 
			
		||||
+++ ninja-1.5.3/src/disk_interface.cc	2015-07-18 23:20:38.572290139 +0200
 | 
			
		||||
@@ -194,6 +194,12 @@ TimeStamp RealDiskInterface::Stat(const
 | 
			
		||||
     }
 | 
			
		||||
     return -1;
 | 
			
		||||
   }
 | 
			
		||||
+
 | 
			
		||||
+  if (st.st_mtime == 0)
 | 
			
		||||
+    // All the code assumes that mtime == 0 means "file missing".  Here we
 | 
			
		||||
+    // know the file is not missing, so tweak the mtime.
 | 
			
		||||
+    st.st_mtime = 1;
 | 
			
		||||
+
 | 
			
		||||
   return st.st_mtime;
 | 
			
		||||
 #endif
 | 
			
		||||
 }
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,25 @@
 | 
			
		|||
Despite all the efforts below, the 'wc-queries-test.c' still fails,
 | 
			
		||||
both with SQLite 3.8.9 and 3.8.10.2.  We choose to just skip it
 | 
			
		||||
until a better solution arises.
 | 
			
		||||
 | 
			
		||||
--- subversion/tests/libsvn_wc/wc-queries-test.c	2015-07-16 23:24:03.458279053 +0200
 | 
			
		||||
+++ subversion/tests/libsvn_wc/wc-queries-test.c	2015-07-16 23:24:18.866423439 +0200
 | 
			
		||||
@@ -898,8 +898,6 @@ struct svn_test_descriptor_t test_funcs[
 | 
			
		||||
                    "sqlite up-to-date"),
 | 
			
		||||
     SVN_TEST_PASS2(test_parsable,
 | 
			
		||||
                    "queries are parsable"),
 | 
			
		||||
-    SVN_TEST_PASS2(test_query_expectations,
 | 
			
		||||
-                   "test query expectations"),
 | 
			
		||||
     SVN_TEST_PASS2(test_schema_statistics,
 | 
			
		||||
                    "test schema statistics"),
 | 
			
		||||
     SVN_TEST_NULL
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
This upstream patch (r1672295) is needed to fix a test failure when built
 | 
			
		||||
against sqlite 3.8.9.  See:
 | 
			
		||||
 | 
			
		||||
  https://mail-archives.apache.org/mod_mbox/subversion-dev/201504.mbox/%3C5526D197.6020808@gmx.de%3E
 | 
			
		||||
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785496
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
r1672295 | rhuijben | 2015-04-09 07:31:12 -0400 (Thu, 09 Apr 2015) | 15 lines
 | 
			
		||||
| 
						 | 
				
			
			@ -57,3 +75,58 @@ Index: subversion/libsvn_wc/wc-metadata.sql
 | 
			
		|||
 /* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is
 | 
			
		||||
    a INTEGER PRIMARY KEY AUTOINCREMENT table */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
r1673691 | rhuijben | 2015-04-15 05:30:04 -0400 (Wed, 15 Apr 2015) | 5 lines
 | 
			
		||||
 | 
			
		||||
* subversion/libsvn_wc/wc-metadata.sql
 | 
			
		||||
  (STMT_INSTALL_SCHEMA_STATISTICS): Delete existing sqlite_stat1 rows for
 | 
			
		||||
    the externals table before installing new rows to avoid duplicate entries.
 | 
			
		||||
    Remove unneeded 'OR REPLACE' from all inserts.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Index: subversion/libsvn_wc/wc-metadata.sql
 | 
			
		||||
===================================================================
 | 
			
		||||
--- subversion/libsvn_wc/wc-metadata.sql	(revision 1673690)
 | 
			
		||||
+++ subversion/libsvn_wc/wc-metadata.sql	(revision 1673691)
 | 
			
		||||
@@ -598,30 +598,30 @@
 | 
			
		||||
 ANALYZE sqlite_master; /* Creates empty sqlite_stat1 if necessary */
 | 
			
		||||
 
 | 
			
		||||
 DELETE FROM sqlite_stat1
 | 
			
		||||
-WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK');
 | 
			
		||||
+WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS');
 | 
			
		||||
 
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('NODES', 'sqlite_autoindex_NODES_1',               '8000 8000 2 1');
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('NODES', 'I_NODES_PARENT',                         '8000 8000 10 2 1');
 | 
			
		||||
 /* Tell a lie: We ignore that 99.9% of all moved_to values are NULL */
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('NODES', 'I_NODES_MOVED',                          '8000 8000 1 1');
 | 
			
		||||
 
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1',   '8000 8000 1');
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('ACTUAL_NODE', 'I_ACTUAL_PARENT',                  '8000 8000 10 1');
 | 
			
		||||
 
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('LOCK', 'sqlite_autoindex_LOCK_1',                 '100 100 1');
 | 
			
		||||
 
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1',           '100 100 1');
 | 
			
		||||
 
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('EXTERNALS','sqlite_autoindex_EXTERNALS_1',        '100 100 1');
 | 
			
		||||
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
 | 
			
		||||
     ('EXTERNALS','I_EXTERNALS_DEFINED',                 '100 100 3 1');
 | 
			
		||||
 
 | 
			
		||||
 /* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										41
									
								
								gnu/packages/patches/unzip-CVE-2014-9636.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								gnu/packages/patches/unzip-CVE-2014-9636.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
Copied from Debian.
 | 
			
		||||
 | 
			
		||||
From: mancha <mancha1 AT zoho DOT com>
 | 
			
		||||
Date: Mon, 3 Nov 2014
 | 
			
		||||
Subject: Info-ZIP UnZip buffer overflow
 | 
			
		||||
Bug-Debian: http://bugs.debian.org/776589
 | 
			
		||||
 | 
			
		||||
By carefully crafting a corrupt ZIP archive with "extra fields" that
 | 
			
		||||
purport to have compressed blocks larger than the corresponding
 | 
			
		||||
uncompressed blocks in STORED no-compression mode, an attacker can
 | 
			
		||||
trigger a heap overflow that can result in application crash or
 | 
			
		||||
possibly have other unspecified impact.
 | 
			
		||||
 | 
			
		||||
This patch ensures that when extra fields use STORED mode, the
 | 
			
		||||
"compressed" and uncompressed block sizes match.
 | 
			
		||||
 | 
			
		||||
--- a/extract.c
 | 
			
		||||
+++ b/extract.c
 | 
			
		||||
@@ -2228,6 +2228,7 @@
 | 
			
		||||
     ulg eb_ucsize;
 | 
			
		||||
     uch *eb_ucptr;
 | 
			
		||||
     int r;
 | 
			
		||||
+    ush eb_compr_method;
 | 
			
		||||
 
 | 
			
		||||
     if (compr_offset < 4)                /* field is not compressed: */
 | 
			
		||||
         return PK_OK;                    /* do nothing and signal OK */
 | 
			
		||||
@@ -2244,6 +2245,14 @@
 | 
			
		||||
      ((eb_ucsize > 0L) && (eb_size <= (compr_offset + EB_CMPRHEADLEN))))
 | 
			
		||||
         return IZ_EF_TRUNC;             /* no/bad compressed data! */
 | 
			
		||||
 
 | 
			
		||||
+    /* 2014-11-03 Michal Zalewski, SMS.
 | 
			
		||||
+     * For STORE method, compressed and uncompressed sizes must agree.
 | 
			
		||||
+     * http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=450
 | 
			
		||||
+     */
 | 
			
		||||
+    eb_compr_method = makeword( eb + (EB_HEADSIZE + compr_offset));
 | 
			
		||||
+    if ((eb_compr_method == STORED) && (eb_size - compr_offset != eb_ucsize))
 | 
			
		||||
+        return PK_ERR;
 | 
			
		||||
+
 | 
			
		||||
     if (
 | 
			
		||||
 #ifdef INT_16BIT
 | 
			
		||||
         (((ulg)(extent)eb_ucsize) != eb_ucsize) ||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
Copied from Debian.
 | 
			
		||||
 | 
			
		||||
From: Santiago Vila <sanvila@debian.org>
 | 
			
		||||
Subject: zipinfo.c: Do not crash when hostver byte is >= 100
 | 
			
		||||
 | 
			
		||||
--- a/zipinfo.c
 | 
			
		||||
+++ b/zipinfo.c
 | 
			
		||||
@@ -2114,7 +2114,7 @@
 | 
			
		||||
             else
 | 
			
		||||
                 attribs[9] = (xattr & UNX_ISVTX)? 'T' : '-';  /* T==undefined */
 | 
			
		||||
 
 | 
			
		||||
-            sprintf(&attribs[12], "%u.%u", hostver/10, hostver%10);
 | 
			
		||||
+            sprintf(&attribs[11], "%2u.%u", hostver/10, hostver%10);
 | 
			
		||||
             break;
 | 
			
		||||
 
 | 
			
		||||
     } /* end switch (hostnum: external attributes format) */
 | 
			
		||||
							
								
								
									
										18
									
								
								gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
Copied from Debian.
 | 
			
		||||
 | 
			
		||||
From: sms
 | 
			
		||||
Subject: Increase size of cfactorstr array to avoid buffer overflow
 | 
			
		||||
Bug-Debian: http://bugs.debian.org/741384
 | 
			
		||||
X-Debian-version: 6.0-11
 | 
			
		||||
 | 
			
		||||
--- a/list.c
 | 
			
		||||
+++ b/list.c
 | 
			
		||||
@@ -97,7 +97,7 @@
 | 
			
		||||
 {
 | 
			
		||||
     int do_this_file=FALSE, cfactor, error, error_in_archive=PK_COOL;
 | 
			
		||||
 #ifndef WINDLL
 | 
			
		||||
-    char sgn, cfactorstr[10];
 | 
			
		||||
+    char sgn, cfactorstr[12];
 | 
			
		||||
     int longhdr=(uO.vflag>1);
 | 
			
		||||
 #endif
 | 
			
		||||
     int date_format;
 | 
			
		||||
							
								
								
									
										22
									
								
								gnu/packages/patches/unzip-initialize-symlink-flag.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								gnu/packages/patches/unzip-initialize-symlink-flag.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
Copied from Debian.
 | 
			
		||||
 | 
			
		||||
From: Andreas Schwab <schwab@linux-m68k.org>
 | 
			
		||||
Subject: Initialize the symlink flag
 | 
			
		||||
Bug-Debian: http://bugs.debian.org/717029
 | 
			
		||||
X-Debian-version: 6.0-10
 | 
			
		||||
 | 
			
		||||
--- a/process.c
 | 
			
		||||
+++ b/process.c
 | 
			
		||||
@@ -1758,6 +1758,12 @@
 | 
			
		||||
         = (G.crec.general_purpose_bit_flag & (1 << 11)) == (1 << 11);
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
+#ifdef SYMLINKS
 | 
			
		||||
+    /* Initialize the symlink flag, may be set by the platform-specific
 | 
			
		||||
+       mapattr function.  */
 | 
			
		||||
+    G.pInfo->symlink = 0;
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
     return PK_COOL;
 | 
			
		||||
 
 | 
			
		||||
 } /* end function process_cdir_file_hdr() */
 | 
			
		||||
							
								
								
									
										19
									
								
								gnu/packages/patches/unzip-remove-build-date.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								gnu/packages/patches/unzip-remove-build-date.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
Copied from Debian.
 | 
			
		||||
 | 
			
		||||
From: Jérémy Bobbio <lunar@debian.org>
 | 
			
		||||
Subject: Remove build date
 | 
			
		||||
Bug-Debian: http://bugs.debian.org/782851
 | 
			
		||||
 In order to make unzip build reproducibly, we remove the
 | 
			
		||||
 (already optional) build date from the binary.
 | 
			
		||||
 | 
			
		||||
--- a/unix/unix.c
 | 
			
		||||
+++ b/unix/unix.c
 | 
			
		||||
@@ -1705,7 +1705,7 @@
 | 
			
		||||
 #endif /* Sun */
 | 
			
		||||
 #endif /* SGI */
 | 
			
		||||
 
 | 
			
		||||
-#ifdef __DATE__
 | 
			
		||||
+#if 0
 | 
			
		||||
       " on ", __DATE__
 | 
			
		||||
 #else
 | 
			
		||||
       "", ""
 | 
			
		||||
| 
						 | 
				
			
			@ -45,6 +45,9 @@
 | 
			
		|||
                          "--enable-pcregrep-libz"
 | 
			
		||||
                          "--enable-pcregrep-libbz2"
 | 
			
		||||
                          "--enable-pcretest-libreadline"
 | 
			
		||||
                          "--enable-unicode-properties"
 | 
			
		||||
                          "--enable-pcre16"
 | 
			
		||||
                          "--enable-pcre32"
 | 
			
		||||
                          "--enable-jit")))
 | 
			
		||||
   (synopsis "Perl Compatible Regular Expressions")
 | 
			
		||||
   (description
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,7 +72,15 @@
 | 
			
		|||
                        "-Dinstallstyle=lib/perl5"
 | 
			
		||||
                        "-Duseshrplib"
 | 
			
		||||
                        (string-append "-Dlocincpth=" libc "/include")
 | 
			
		||||
                        (string-append "-Dloclibpth=" libc "/lib"))))))
 | 
			
		||||
                        (string-append "-Dloclibpth=" libc "/lib")
 | 
			
		||||
 | 
			
		||||
                        ;; Force the library search path to contain only libc
 | 
			
		||||
                        ;; because it is recorded in Config.pm and
 | 
			
		||||
                        ;; Config_heavy.pl; we don't want to keep a reference
 | 
			
		||||
                        ;; to everything that's in $LIBRARY_PATH at build
 | 
			
		||||
                        ;; time (Binutils, bzip2, file, etc.)
 | 
			
		||||
                        (string-append "-Dlibpth=" libc "/lib")
 | 
			
		||||
                        (string-append "-Dplibpth=" libc "/lib"))))))
 | 
			
		||||
 | 
			
		||||
         (add-before
 | 
			
		||||
          'strip 'make-shared-objects-writable
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -156,24 +156,40 @@
 | 
			
		|||
                "-L" zlib "/lib "
 | 
			
		||||
                "-Wl,-rpath=" out "/lib")))
 | 
			
		||||
 | 
			
		||||
        #:modules ((ice-9 ftw)
 | 
			
		||||
                   ,@%gnu-build-system-modules)
 | 
			
		||||
        #:phases
 | 
			
		||||
        (alist-cons-before
 | 
			
		||||
         'configure 'patch-lib-shells
 | 
			
		||||
         (lambda _
 | 
			
		||||
           ;; Filter for existing files, since some may not exist in all
 | 
			
		||||
           ;; versions of python that are built with this recipe.
 | 
			
		||||
           (substitute* (filter file-exists?
 | 
			
		||||
                                '("Lib/subprocess.py"
 | 
			
		||||
                                  "Lib/popen2.py"
 | 
			
		||||
                                  "Lib/distutils/tests/test_spawn.py"
 | 
			
		||||
                                  "Lib/test/test_subprocess.py"))
 | 
			
		||||
             (("/bin/sh") (which "sh"))))
 | 
			
		||||
         (alist-cons-before
 | 
			
		||||
          'check 'pre-check
 | 
			
		||||
          (lambda _
 | 
			
		||||
            ;; 'Lib/test/test_site.py' needs a valid $HOME
 | 
			
		||||
            (setenv "HOME" (getcwd)))
 | 
			
		||||
          %standard-phases))))
 | 
			
		||||
        (modify-phases %standard-phases
 | 
			
		||||
          (add-before
 | 
			
		||||
           'configure 'patch-lib-shells
 | 
			
		||||
           (lambda _
 | 
			
		||||
             ;; Filter for existing files, since some may not exist in all
 | 
			
		||||
             ;; versions of python that are built with this recipe.
 | 
			
		||||
             (substitute* (filter file-exists?
 | 
			
		||||
                                  '("Lib/subprocess.py"
 | 
			
		||||
                                    "Lib/popen2.py"
 | 
			
		||||
                                    "Lib/distutils/tests/test_spawn.py"
 | 
			
		||||
                                    "Lib/test/test_subprocess.py"))
 | 
			
		||||
               (("/bin/sh") (which "sh")))
 | 
			
		||||
             #t))
 | 
			
		||||
          (add-before
 | 
			
		||||
           'check 'pre-check
 | 
			
		||||
           (lambda _
 | 
			
		||||
             ;; 'Lib/test/test_site.py' needs a valid $HOME
 | 
			
		||||
             (setenv "HOME" (getcwd))
 | 
			
		||||
             #t))
 | 
			
		||||
          (add-after
 | 
			
		||||
           'unpack 'set-source-file-times-to-1980
 | 
			
		||||
           ;; XXX One of the tests uses a ZIP library to pack up some of the
 | 
			
		||||
           ;; source tree, and fails with "ZIP does not support timestamps
 | 
			
		||||
           ;; before 1980".  Work around this by setting the file times in the
 | 
			
		||||
           ;; source tree to sometime in early 1980.
 | 
			
		||||
           (lambda _
 | 
			
		||||
             (let ((circa-1980 (* 10 366 24 60 60)))
 | 
			
		||||
               (ftw "." (lambda (file stat flag)
 | 
			
		||||
                          (utime file circa-1980 circa-1980)
 | 
			
		||||
                          #t))
 | 
			
		||||
               #t))))))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("bzip2" ,bzip2)
 | 
			
		||||
       ("gdbm" ,gdbm)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -297,8 +297,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
 | 
			
		|||
                      "-no-ssse3"
 | 
			
		||||
                      "-no-sse4.1"
 | 
			
		||||
                      "-no-sse4.2"
 | 
			
		||||
                      "-no-avx"
 | 
			
		||||
                      "-no-neon")))))
 | 
			
		||||
                      "-no-avx")))))
 | 
			
		||||
         (add-after
 | 
			
		||||
          'install 'move-doc
 | 
			
		||||
          (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -262,7 +262,7 @@ libssh library.")
 | 
			
		|||
     '(#:phases
 | 
			
		||||
       (alist-replace
 | 
			
		||||
        'configure
 | 
			
		||||
        (lambda* (#:key outputs inputs system target
 | 
			
		||||
        (lambda* (#:key outputs inputs system build target
 | 
			
		||||
                        #:allow-other-keys #:rest args)
 | 
			
		||||
          (let* ((configure (assoc-ref %standard-phases 'configure))
 | 
			
		||||
                 (prefix (assoc-ref outputs "out"))
 | 
			
		||||
| 
						 | 
				
			
			@ -270,9 +270,8 @@ libssh library.")
 | 
			
		|||
                 ;; Set --build and --host flags as the provided config.guess
 | 
			
		||||
                 ;; is not able to detect them
 | 
			
		||||
                 (flags `(,(string-append "--prefix=" prefix)
 | 
			
		||||
                          ,(string-append "--build=" system)
 | 
			
		||||
                          ,(string-append "--host="
 | 
			
		||||
                                          (or target system)))))
 | 
			
		||||
                          ,(string-append "--build=" build)
 | 
			
		||||
                          ,(string-append "--host=" (or target build)))))
 | 
			
		||||
            (setenv "CONFIG_SHELL" bash)
 | 
			
		||||
            (zero? (apply system* bash
 | 
			
		||||
                          (string-append "." "/configure")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
;;; GNU Guix --- Functional package management for GNU
 | 
			
		||||
;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 | 
			
		||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -25,20 +26,22 @@
 | 
			
		|||
  #:use-module (gnu packages)
 | 
			
		||||
  #:use-module (gnu packages compression)
 | 
			
		||||
  #:use-module (gnu packages perl)
 | 
			
		||||
  #:use-module (gnu packages linux)
 | 
			
		||||
  #:use-module (gnu packages ncurses))
 | 
			
		||||
 | 
			
		||||
(define-public texinfo
 | 
			
		||||
  (package
 | 
			
		||||
    (name "texinfo")
 | 
			
		||||
    (version "5.2")
 | 
			
		||||
    (version "6.0")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "mirror://gnu/texinfo/texinfo-"
 | 
			
		||||
                                 version ".tar.xz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal"))))
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "mirror://gnu/texinfo/texinfo-"
 | 
			
		||||
                                  version ".tar.xz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1r3i6jyynn6ab45fxw5bms8mflk9ry4qpj6gqyry72vfd5c47fhi"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (native-inputs `(("procps" ,procps)))  ;one of the tests needs pgrep
 | 
			
		||||
    (inputs `(("ncurses" ,ncurses)
 | 
			
		||||
              ("xz" ,xz)
 | 
			
		||||
              ("perl" ,perl)))
 | 
			
		||||
| 
						 | 
				
			
			@ -53,17 +56,17 @@ their source and the command-line Info reader.  The emphasis of the language
 | 
			
		|||
is on expressing the content semantically, avoiding physical markup commands.")
 | 
			
		||||
    (license gpl3+)))
 | 
			
		||||
 | 
			
		||||
(define-public texinfo-6
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit texinfo)
 | 
			
		||||
    (version "6.0")
 | 
			
		||||
(define-public texinfo-5
 | 
			
		||||
  (package (inherit texinfo)
 | 
			
		||||
    (version "5.2")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "mirror://gnu/texinfo/texinfo-"
 | 
			
		||||
                                  version ".tar.xz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1r3i6jyynn6ab45fxw5bms8mflk9ry4qpj6gqyry72vfd5c47fhi"))))))
 | 
			
		||||
                "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal"))))
 | 
			
		||||
    (native-inputs '())))
 | 
			
		||||
 | 
			
		||||
(define-public texinfo-4
 | 
			
		||||
  (package (inherit texinfo)
 | 
			
		||||
| 
						 | 
				
			
			@ -77,6 +80,7 @@ is on expressing the content semantically, avoiding physical markup commands.")
 | 
			
		|||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d"))))
 | 
			
		||||
    (native-inputs '())
 | 
			
		||||
    (inputs `(("ncurses" ,ncurses) ("xz" ,xz)))))
 | 
			
		||||
 | 
			
		||||
(define-public texi2html
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -190,7 +190,7 @@ required structures.")
 | 
			
		|||
   (build-system gnu-build-system)
 | 
			
		||||
   (native-inputs `(("perl" ,perl)))
 | 
			
		||||
   (arguments
 | 
			
		||||
    '(#:parallel-build? #f
 | 
			
		||||
    `(#:parallel-build? #f
 | 
			
		||||
      #:parallel-tests? #f
 | 
			
		||||
      #:test-target "test"
 | 
			
		||||
      #:phases
 | 
			
		||||
| 
						 | 
				
			
			@ -202,7 +202,13 @@ required structures.")
 | 
			
		|||
            (system* "./config"
 | 
			
		||||
                     "shared"                   ; build shared libraries
 | 
			
		||||
                     "--libdir=lib"
 | 
			
		||||
                     (string-append "--prefix=" out)))))
 | 
			
		||||
                     (string-append "--prefix=" out)
 | 
			
		||||
                     ;; XXX FIXME: Work around a code generation bug in GCC
 | 
			
		||||
                     ;; 4.9.3 on ARM when compiled with -mfpu=neon.
 | 
			
		||||
                     ,@(if (and (not (%current-target-system))
 | 
			
		||||
                                (string-prefix? "armhf" (%current-system)))
 | 
			
		||||
                           '("-mfpu=vfpv3")
 | 
			
		||||
                           '())))))
 | 
			
		||||
       (alist-cons-before
 | 
			
		||||
        'patch-source-shebangs 'patch-tests
 | 
			
		||||
        (lambda* (#:key inputs native-inputs #:allow-other-keys)
 | 
			
		||||
| 
						 | 
				
			
			@ -276,18 +282,30 @@ security, and applying best practice development processes.")
 | 
			
		|||
                                  "Net-SSLeay-" version ".tar.gz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "1m2wwzhjwsg0drlhp9w12fl6bsgj69v8gdz72jqrqll3qr7f408p"))
 | 
			
		||||
              (patches
 | 
			
		||||
               ;; XXX Try removing this patch for perl-net-ssleay > 1.68
 | 
			
		||||
               (list (search-patch "perl-net-ssleay-disable-ede-test.patch")))))
 | 
			
		||||
                "1m2wwzhjwsg0drlhp9w12fl6bsgj69v8gdz72jqrqll3qr7f408p"))))
 | 
			
		||||
    (build-system perl-build-system)
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("patch" ,patch)
 | 
			
		||||
       ("patch/disable-ede-test"
 | 
			
		||||
        ,(search-patch "perl-net-ssleay-disable-ede-test.patch"))))
 | 
			
		||||
    (inputs `(("openssl" ,openssl)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases (alist-cons-before
 | 
			
		||||
                 'configure 'set-ssl-prefix
 | 
			
		||||
                 (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
                   (setenv "OPENSSL_PREFIX" (assoc-ref inputs "openssl")))
 | 
			
		||||
                 %standard-phases)))
 | 
			
		||||
     `(#:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (add-after
 | 
			
		||||
          'unpack 'apply-patch
 | 
			
		||||
          (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
            ;; XXX We apply this patch here instead of in the 'origin' because
 | 
			
		||||
            ;; this package's build system fails badly when the source file
 | 
			
		||||
            ;; times are zeroed.
 | 
			
		||||
            ;; XXX Try removing this patch for perl-net-ssleay > 1.68
 | 
			
		||||
            (zero? (system* "patch" "--force" "-p1" "-i"
 | 
			
		||||
                            (assoc-ref inputs "patch/disable-ede-test")))))
 | 
			
		||||
         (add-before
 | 
			
		||||
          'configure 'set-ssl-prefix
 | 
			
		||||
          (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
            (setenv "OPENSSL_PREFIX" (assoc-ref inputs "openssl"))
 | 
			
		||||
            #t)))))
 | 
			
		||||
    (synopsis "Perl extension for using OpenSSL")
 | 
			
		||||
    (description
 | 
			
		||||
     "This module offers some high level convenience functions for accessing
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,7 +104,7 @@ as well as the classic centralized workflow.")
 | 
			
		|||
    `(,name
 | 
			
		||||
      ,@(map (match-lambda
 | 
			
		||||
               ((label (? package? _) . _)
 | 
			
		||||
                (string-append name "/" label)))
 | 
			
		||||
                label))
 | 
			
		||||
             (package-transitive-propagated-inputs package)))))
 | 
			
		||||
 | 
			
		||||
(define (package-propagated-input-refs inputs packages)
 | 
			
		||||
| 
						 | 
				
			
			@ -112,8 +112,9 @@ as well as the classic centralized workflow.")
 | 
			
		|||
PACKAGES and their propagated inputs."
 | 
			
		||||
  (map (lambda (l)
 | 
			
		||||
         `(assoc-ref ,inputs ,l))
 | 
			
		||||
       (append-map package-transitive-propagated-labels*
 | 
			
		||||
                   packages)))
 | 
			
		||||
       (delete-duplicates                  ;XXX: efficiency
 | 
			
		||||
        (append-map package-transitive-propagated-labels*
 | 
			
		||||
                    packages))))
 | 
			
		||||
 | 
			
		||||
(define-public git
 | 
			
		||||
  ;; Keep in sync with 'git-manpages'!
 | 
			
		||||
| 
						 | 
				
			
			@ -236,13 +237,12 @@ PACKAGES and their propagated inputs."
 | 
			
		|||
              (wrap-program git-se*
 | 
			
		||||
                `("PERL5LIB" ":" prefix
 | 
			
		||||
                  ,(map (lambda (o) (string-append o "/lib/perl5/site_perl"))
 | 
			
		||||
                        (delete-duplicates
 | 
			
		||||
                         (list
 | 
			
		||||
                          ,@(package-propagated-input-refs
 | 
			
		||||
                             'inputs
 | 
			
		||||
                             `(,perl-authen-sasl
 | 
			
		||||
                               ,perl-net-smtp-ssl
 | 
			
		||||
                               ,perl-io-socket-ssl)))))))
 | 
			
		||||
                        (list
 | 
			
		||||
                         ,@(package-propagated-input-refs
 | 
			
		||||
                            'inputs
 | 
			
		||||
                            (list perl-authen-sasl
 | 
			
		||||
                                  perl-net-smtp-ssl
 | 
			
		||||
                                  perl-io-socket-ssl))))))
 | 
			
		||||
 | 
			
		||||
              ;; Tell 'git-submodule' where Perl is.
 | 
			
		||||
              (wrap-program git-sm
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -139,14 +139,7 @@ old-fashioned output methods with powerful ascii-art renderer.")
 | 
			
		|||
     `(("autoconf" ,autoconf)
 | 
			
		||||
       ("automake" ,automake)
 | 
			
		||||
       ("libtool" ,libtool)))
 | 
			
		||||
    (arguments `(#:configure-flags
 | 
			
		||||
                 '("--enable-shared"
 | 
			
		||||
                   ;; FIXME: liba52-0.7.4's config.guess fails on mips64el.
 | 
			
		||||
                   ,@(if (%current-target-system)
 | 
			
		||||
                         '()
 | 
			
		||||
                         (let ((triplet
 | 
			
		||||
                                (nix-system->gnu-triplet (%current-system))))
 | 
			
		||||
                           (list (string-append "--build=" triplet)))))
 | 
			
		||||
    (arguments `(#:configure-flags '("--enable-shared")
 | 
			
		||||
                 #:phases
 | 
			
		||||
                 (modify-phases %standard-phases
 | 
			
		||||
                   ;; XXX We need to run ./bootstrap because of the build
 | 
			
		||||
| 
						 | 
				
			
			@ -665,7 +658,6 @@ treaming protocols.")
 | 
			
		|||
                                    (or (%current-target-system)
 | 
			
		||||
                                        (nix-system->gnu-triplet
 | 
			
		||||
                                         (%current-system)))))))
 | 
			
		||||
                      "--disable-neon"
 | 
			
		||||
                      "--disable-iwmmxt"))))
 | 
			
		||||
          %standard-phases)))
 | 
			
		||||
    (home-page "http://www.mplayerhq.hu/design7/news.html")
 | 
			
		||||
| 
						 | 
				
			
			@ -905,23 +897,6 @@ projects while introducing many more.")
 | 
			
		|||
                     (zero? (system* "./configure"
 | 
			
		||||
                                     "--enable-shared"
 | 
			
		||||
                                     "--as=yasm"
 | 
			
		||||
                                     ,@(if (and (not (%current-target-system))
 | 
			
		||||
                                                (string-prefix?
 | 
			
		||||
                                                 "armhf-"
 | 
			
		||||
                                                 (%current-system)))
 | 
			
		||||
                                           ;; When building on ARMv7, libvpx
 | 
			
		||||
                                           ;; assumes that NEON will be
 | 
			
		||||
                                           ;; available.  On Guix, armhf
 | 
			
		||||
                                           ;; does not require NEON, so we
 | 
			
		||||
                                           ;; build for ARMv6 and -marm (since
 | 
			
		||||
                                           ;; no thumb2 on ARMv6) to ensure
 | 
			
		||||
                                           ;; compatibility with all ARMv7
 | 
			
		||||
                                           ;; cores we support.  Based on
 | 
			
		||||
                                           ;; the Debian libvpx package.
 | 
			
		||||
                                           '("--target=armv6-linux-gcc"
 | 
			
		||||
                                             "--extra-cflags=-marm"
 | 
			
		||||
                                             "--enable-small")
 | 
			
		||||
                                           '())
 | 
			
		||||
                                     (string-append "--prefix=" out)))))
 | 
			
		||||
                 %standard-phases)
 | 
			
		||||
       #:tests? #f)) ; no check target
 | 
			
		||||
| 
						 | 
				
			
			@ -1157,7 +1132,9 @@ for use with HTML5 video.")
 | 
			
		|||
           (with-directory-excursion "avidemux_core/ffmpeg_package"
 | 
			
		||||
             (substitute* "ffmpeg-1.2.1/configure"
 | 
			
		||||
               (("#! /bin/sh") (string-append "#!" (which "bash"))))
 | 
			
		||||
             (system* "tar" "cjf" "ffmpeg-1.2.1.tar.bz2" "ffmpeg-1.2.1")
 | 
			
		||||
             (system* "tar" "cjf" "ffmpeg-1.2.1.tar.bz2" "ffmpeg-1.2.1"
 | 
			
		||||
                      ;; avoid non-determinism in the archive
 | 
			
		||||
                      "--mtime=@0" "--owner=root:0" "--group=root:0")
 | 
			
		||||
             (delete-file-recursively "ffmpeg-1.2.1")))
 | 
			
		||||
         (alist-replace 'configure
 | 
			
		||||
          (lambda _
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -272,7 +272,13 @@ parse JSON formatted strings back into the C representation of JSON objects.")
 | 
			
		|||
             (file-name (string-append name "-" version ".tar.gz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "0rl6s0vg5y1dhh9vfl1lqay3sxf69sxjh0czxrjmasn7ng91wwf3"))))
 | 
			
		||||
               "0rl6s0vg5y1dhh9vfl1lqay3sxf69sxjh0czxrjmasn7ng91wwf3"))
 | 
			
		||||
             (modules '((guix build utils)))
 | 
			
		||||
             (snippet
 | 
			
		||||
              ;; Building with GCC 4.8 with -Werror was fine, but 4.9.3
 | 
			
		||||
              ;; complains in new ways, so turn of -Werror.
 | 
			
		||||
              '(substitute* (find-files "." "^CMakeLists\\.txt$")
 | 
			
		||||
                 (("-Werror") "")))))
 | 
			
		||||
    (build-system cmake-build-system)
 | 
			
		||||
    (home-page "https://github.com/miloyip/rapidjson")
 | 
			
		||||
    (synopsis "JSON parser/generator for C++ with both SAX/DOM style API")
 | 
			
		||||
| 
						 | 
				
			
			@ -320,20 +326,14 @@ for efficient socket-like bidirectional reliable communication channels.")
 | 
			
		|||
(define-public libpsl
 | 
			
		||||
  (package
 | 
			
		||||
    (name "libpsl")
 | 
			
		||||
    (version "0.6.0")
 | 
			
		||||
    (version "0.7.1")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "https://github.com/rockdaboot/libpsl/"
 | 
			
		||||
                                  "archive/" version ".tar.gz"))
 | 
			
		||||
                                  "archive/libpsl-" version ".tar.gz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "10s7xxxx6pp4ydp3san69sa6q379ih3pv92fyi565ggmlw8igv7a"))
 | 
			
		||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
			
		||||
              (modules '((guix build utils)))
 | 
			
		||||
              (snippet
 | 
			
		||||
               ;; Believe it or not, the .pc is invalid.  Fix it.
 | 
			
		||||
               '(substitute* "libpsl.pc.in"
 | 
			
		||||
                  (("-llibpsl") "-lpsl")))))
 | 
			
		||||
                "1k0klj668c9v0r4993vfs3kq773mzdz61vsigqw6v1mjcwnf1si3"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (inputs `(("icu4c" ,icu4c)))
 | 
			
		||||
    ;; The release tarball lacks the generated files.
 | 
			
		||||
| 
						 | 
				
			
			@ -341,7 +341,8 @@ for efficient socket-like bidirectional reliable communication channels.")
 | 
			
		|||
                     ("automake" ,automake)
 | 
			
		||||
                     ("gettext"  ,gnu-gettext)
 | 
			
		||||
                     ("which"    ,which)
 | 
			
		||||
                     ("libtool"  ,libtool)))
 | 
			
		||||
                     ("libtool"  ,libtool)
 | 
			
		||||
                     ("pkg-config" ,pkg-config)))
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:phases (alist-cons-after
 | 
			
		||||
                 'unpack 'bootstrap
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -447,13 +447,6 @@ transparent text on your screen.")
 | 
			
		|||
    (inputs
 | 
			
		||||
     `(("libx11" ,libx11)
 | 
			
		||||
       ("guile" ,guile-2.0)))
 | 
			
		||||
    (arguments `(#:configure-flags
 | 
			
		||||
                 '(;; FIXME: xbindkeys-1.8.6's config.guess fails on mips64el.
 | 
			
		||||
                   ,@(if (%current-target-system)
 | 
			
		||||
                         '()
 | 
			
		||||
                         (let ((triplet
 | 
			
		||||
                                (nix-system->gnu-triplet (%current-system))))
 | 
			
		||||
                           (list (string-append "--build=" triplet)))))))
 | 
			
		||||
    (home-page "http://www.nongnu.org/xbindkeys/")
 | 
			
		||||
    (synopsis "Associate a combination of keys with a shell command")
 | 
			
		||||
    (description
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
;;; GNU Guix --- Functional package management for GNU
 | 
			
		||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 | 
			
		||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -81,23 +81,29 @@ Compression ratios of 2:1 to 3:1 are common for text files.")
 | 
			
		|||
      (sha256
 | 
			
		||||
       (base32
 | 
			
		||||
        "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83"))
 | 
			
		||||
      (patches (list (search-patch "unzip-CVE-2014-8139.patch")
 | 
			
		||||
                     (search-patch "unzip-CVE-2014-8140.patch")
 | 
			
		||||
                     (search-patch "unzip-CVE-2014-8141.patch")))))
 | 
			
		||||
      (patches (map search-patch '("unzip-CVE-2014-8139.patch"
 | 
			
		||||
                                   "unzip-CVE-2014-8140.patch"
 | 
			
		||||
                                   "unzip-CVE-2014-8141.patch"
 | 
			
		||||
                                   "unzip-CVE-2014-9636.patch"
 | 
			
		||||
                                   "unzip-allow-greater-hostver-values.patch"
 | 
			
		||||
                                   "unzip-increase-size-of-cfactorstr.patch"
 | 
			
		||||
                                   "unzip-initialize-symlink-flag.patch"
 | 
			
		||||
                                   "unzip-remove-build-date.patch")))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:make-flags '("generic_gcc")
 | 
			
		||||
       #:phases
 | 
			
		||||
        (alist-replace
 | 
			
		||||
         'configure
 | 
			
		||||
         (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
			
		||||
           (let* ((out (assoc-ref outputs "out")))
 | 
			
		||||
             (copy-file "unix/Makefile" "Makefile")
 | 
			
		||||
             (substitute* "Makefile"
 | 
			
		||||
               (("/usr/local") out)
 | 
			
		||||
               (("/man/") "/share/man/"))))
 | 
			
		||||
        %standard-phases)))
 | 
			
		||||
     `(#:phases (modify-phases %standard-phases
 | 
			
		||||
                  (delete 'configure)
 | 
			
		||||
                  (replace 'build
 | 
			
		||||
                           (lambda* (#:key make-flags #:allow-other-keys)
 | 
			
		||||
                             (zero? (apply system* "make"
 | 
			
		||||
                                           `("-j" ,(number->string
 | 
			
		||||
                                                    (parallel-job-count))
 | 
			
		||||
                                             ,@make-flags
 | 
			
		||||
                                             "generic_gcc"))))))
 | 
			
		||||
       #:make-flags (list "-f" "unix/Makefile"
 | 
			
		||||
                          (string-append "prefix=" %output)
 | 
			
		||||
                          (string-append "MANDIR=" %output "/share/man/man1"))))
 | 
			
		||||
    (home-page "http://www.info-zip.org/UnZip.html")
 | 
			
		||||
    (synopsis "Decompression and file extraction utility")
 | 
			
		||||
    (description
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -289,6 +289,7 @@ standard packages used as implicit inputs of the GNU build system."
 | 
			
		|||
                    (phases '%standard-phases)
 | 
			
		||||
                    (locale "en_US.UTF-8")
 | 
			
		||||
                    (system (%current-system))
 | 
			
		||||
                    (build (nix-system->gnu-triplet system))
 | 
			
		||||
                    (imported-modules %gnu-build-system-modules)
 | 
			
		||||
                    (modules %default-modules)
 | 
			
		||||
                    (substitutable? #t)
 | 
			
		||||
| 
						 | 
				
			
			@ -333,6 +334,7 @@ are allowed to refer to."
 | 
			
		|||
                              (source
 | 
			
		||||
                               source))
 | 
			
		||||
                  #:system ,system
 | 
			
		||||
                  #:build ,build
 | 
			
		||||
                  #:outputs %outputs
 | 
			
		||||
                  #:inputs %build-inputs
 | 
			
		||||
                  #:search-paths ',(map search-path-specification->sexp
 | 
			
		||||
| 
						 | 
				
			
			@ -422,6 +424,7 @@ is one of `host' or `target'."
 | 
			
		|||
                          (phases '%standard-phases)
 | 
			
		||||
                          (locale "en_US.UTF-8")
 | 
			
		||||
                          (system (%current-system))
 | 
			
		||||
                          (build (nix-system->gnu-triplet system))
 | 
			
		||||
                          (imported-modules %gnu-build-system-modules)
 | 
			
		||||
                          (modules %default-modules)
 | 
			
		||||
                          (substitutable? #t)
 | 
			
		||||
| 
						 | 
				
			
			@ -472,6 +475,7 @@ platform."
 | 
			
		|||
                                (source
 | 
			
		||||
                                 source))
 | 
			
		||||
                    #:system ,system
 | 
			
		||||
                    #:build ,build
 | 
			
		||||
                    #:target ,target
 | 
			
		||||
                    #:outputs %outputs
 | 
			
		||||
                    #:inputs %build-target-inputs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,7 +184,7 @@ makefiles."
 | 
			
		|||
  ;; Patch `SHELL' in generated makefiles.
 | 
			
		||||
  (for-each patch-makefile-SHELL (find-files "." "^(GNU)?[mM]akefile$")))
 | 
			
		||||
 | 
			
		||||
(define* (configure #:key target native-inputs inputs outputs
 | 
			
		||||
(define* (configure #:key build target native-inputs inputs outputs
 | 
			
		||||
                    (configure-flags '()) out-of-source?
 | 
			
		||||
                    #:allow-other-keys)
 | 
			
		||||
  (define (package-name)
 | 
			
		||||
| 
						 | 
				
			
			@ -234,6 +234,9 @@ makefiles."
 | 
			
		|||
                             (list (string-append "--docdir=" docdir
 | 
			
		||||
                                                  "/share/doc/" (package-name)))
 | 
			
		||||
                             '())
 | 
			
		||||
                       ,@(if build
 | 
			
		||||
                             (list (string-append "--build=" build))
 | 
			
		||||
                             '())
 | 
			
		||||
                       ,@(if target               ; cross building
 | 
			
		||||
                             (list (string-append "--host=" target))
 | 
			
		||||
                             '())
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,7 @@
 | 
			
		|||
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 | 
			
		||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 | 
			
		||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -119,10 +120,24 @@ installed with setuptools."
 | 
			
		|||
      (rename-file easy-install-pth new-pth))
 | 
			
		||||
    #t))
 | 
			
		||||
 | 
			
		||||
(define* (ensure-no-mtimes-pre-1980 #:rest _)
 | 
			
		||||
  "Ensure that there are no mtimes before 1980-01-02 in the source tree."
 | 
			
		||||
  ;; Rationale: patch-and-repack creates tarballs with timestamps at the POSIX
 | 
			
		||||
  ;; epoch, 1970-01-01 UTC.  This causes problems with Python packages,
 | 
			
		||||
  ;; because Python eggs are ZIP files, and the ZIP format does not support
 | 
			
		||||
  ;; timestamps before 1980.
 | 
			
		||||
  (let ((early-1980 315619200))  ; 1980-01-02 UTC
 | 
			
		||||
    (ftw "." (lambda (file stat flag)
 | 
			
		||||
               (unless (<= early-1980 (stat:mtime stat))
 | 
			
		||||
                 (utime file early-1980 early-1980))
 | 
			
		||||
               #t))
 | 
			
		||||
    #t))
 | 
			
		||||
 | 
			
		||||
(define %standard-phases
 | 
			
		||||
  ;; 'configure' and 'build' phases are not needed.  Everything is done during
 | 
			
		||||
  ;; 'install'.
 | 
			
		||||
  (modify-phases gnu:%standard-phases
 | 
			
		||||
    (add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980)
 | 
			
		||||
    (delete 'configure)
 | 
			
		||||
    (replace 'install install)
 | 
			
		||||
    (replace 'check check)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
;;; GNU Guix --- Functional package management for GNU
 | 
			
		||||
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -480,7 +480,11 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
 | 
			
		|||
 | 
			
		||||
                      (begin (chdir "..") #t)
 | 
			
		||||
                      (zero? (system* (string-append #+tar "/bin/tar")
 | 
			
		||||
                                      "cvfa" #$output directory)))))))
 | 
			
		||||
                                      "cvfa" #$output directory
 | 
			
		||||
                                      ;; avoid non-determinism in the archive
 | 
			
		||||
                                      "--mtime=@0"
 | 
			
		||||
                                      "--owner=root:0"
 | 
			
		||||
                                      "--group=root:0")))))))
 | 
			
		||||
 | 
			
		||||
    (let ((name    (tarxz-name original-file-name))
 | 
			
		||||
          (modules (delete-duplicates (cons '(guix build utils) modules))))
 | 
			
		||||
| 
						 | 
				
			
			@ -491,21 +495,37 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
 | 
			
		|||
                        #:guile-for-build guile-for-build))))
 | 
			
		||||
 | 
			
		||||
(define (transitive-inputs inputs)
 | 
			
		||||
  (let loop ((inputs  inputs)
 | 
			
		||||
             (result '()))
 | 
			
		||||
  "Return the closure of INPUTS when considering the 'propagated-inputs'
 | 
			
		||||
edges.  Omit duplicate inputs, except for those already present in INPUTS
 | 
			
		||||
itself.
 | 
			
		||||
 | 
			
		||||
This is implemented as a breadth-first traversal such that INPUTS is
 | 
			
		||||
preserved, and only duplicate propagated inputs are removed."
 | 
			
		||||
  (define (seen? seen item outputs)
 | 
			
		||||
    (match (vhash-assq item seen)
 | 
			
		||||
      ((_ . o) (equal? o outputs))
 | 
			
		||||
      (_       #f)))
 | 
			
		||||
 | 
			
		||||
  (let loop ((inputs     inputs)
 | 
			
		||||
             (result     '())
 | 
			
		||||
             (propagated '())
 | 
			
		||||
             (first?     #t)
 | 
			
		||||
             (seen       vlist-null))
 | 
			
		||||
    (match inputs
 | 
			
		||||
      (()
 | 
			
		||||
       (delete-duplicates (reverse result)))      ; XXX: efficiency
 | 
			
		||||
      (((and i (name (? package? p) sub ...)) rest ...)
 | 
			
		||||
       (let ((t (map (match-lambda
 | 
			
		||||
                      ((dep-name derivation ...)
 | 
			
		||||
                       (cons (string-append name "/" dep-name)
 | 
			
		||||
                             derivation)))
 | 
			
		||||
                     (package-propagated-inputs p))))
 | 
			
		||||
         (loop (append t rest)
 | 
			
		||||
               (append t (cons i result)))))
 | 
			
		||||
       (if (null? propagated)
 | 
			
		||||
           (reverse result)
 | 
			
		||||
           (loop (reverse (concatenate propagated)) result '() #f seen)))
 | 
			
		||||
      (((and input (label (? package? package) outputs ...)) rest ...)
 | 
			
		||||
       (if (and (not first?) (seen? seen package outputs))
 | 
			
		||||
           (loop rest result propagated first? seen)
 | 
			
		||||
           (loop rest
 | 
			
		||||
                 (cons input result)
 | 
			
		||||
                 (cons (package-propagated-inputs package) propagated)
 | 
			
		||||
                 first?
 | 
			
		||||
                 (vhash-consq package outputs seen))))
 | 
			
		||||
      ((input rest ...)
 | 
			
		||||
       (loop rest (cons input result))))))
 | 
			
		||||
       (loop rest (cons input result) propagated first? seen)))))
 | 
			
		||||
 | 
			
		||||
(define (package-direct-sources package)
 | 
			
		||||
  "Return all source origins associated with PACKAGE; including origins in
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -536,6 +536,9 @@
 | 
			
		|||
                                          (guix build utils))))
 | 
			
		||||
       (ok? (built-derivations (list drv)))
 | 
			
		||||
       (guile-drv  (package->derivation %bootstrap-guile))
 | 
			
		||||
       (bash       (interned-file (search-bootstrap-binary "bash"
 | 
			
		||||
                                                           (%current-system))
 | 
			
		||||
                                  "bash" #:recursive? #t))
 | 
			
		||||
       (g-one   -> (derivation->output-path drv "one"))
 | 
			
		||||
       (g-two   -> (derivation->output-path drv "two"))
 | 
			
		||||
       (g-guile -> (derivation->output-path drv)))
 | 
			
		||||
| 
						 | 
				
			
			@ -543,8 +546,10 @@
 | 
			
		|||
                 (equal? (call-with-input-file g-one read) (list one))
 | 
			
		||||
                 (equal? (call-with-input-file g-two read)
 | 
			
		||||
                         (list one (derivation->output-path two "chbouib")))
 | 
			
		||||
 | 
			
		||||
                 ;; Note: %BOOTSTRAP-GUILE depends on the bootstrap Bash.
 | 
			
		||||
                 (equal? (call-with-input-file g-guile read)
 | 
			
		||||
                         (list (derivation->output-path guile-drv)))))))
 | 
			
		||||
                         (list (derivation->output-path guile-drv) bash))))))
 | 
			
		||||
 | 
			
		||||
(test-assertm "gexp->derivation #:allowed-references"
 | 
			
		||||
  (mlet %store-monad ((drv (gexp->derivation "allowed-refs"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -118,10 +118,32 @@
 | 
			
		|||
         (equal? `(("a" ,a)) (package-transitive-inputs c))
 | 
			
		||||
         (equal? (package-propagated-inputs d)
 | 
			
		||||
                 (package-transitive-inputs d))
 | 
			
		||||
         (equal? `(("b" ,b) ("b/a" ,a) ("c" ,c)
 | 
			
		||||
                   ("d" ,d) ("d/x" "something.drv"))
 | 
			
		||||
         (equal? `(("b" ,b) ("c" ,c) ("d" ,d)
 | 
			
		||||
                   ("a" ,a) ("x" "something.drv"))
 | 
			
		||||
                 (pk 'x (package-transitive-inputs e))))))
 | 
			
		||||
 | 
			
		||||
(test-assert "package-transitive-inputs, no duplicates"
 | 
			
		||||
  (let* ((a (dummy-package "a"))
 | 
			
		||||
         (b (dummy-package "b"
 | 
			
		||||
              (inputs `(("a+" ,a)))
 | 
			
		||||
              (native-inputs `(("a*" ,a)))
 | 
			
		||||
              (propagated-inputs `(("a" ,a)))))
 | 
			
		||||
         (c (dummy-package "c"
 | 
			
		||||
              (propagated-inputs `(("b" ,b)))))
 | 
			
		||||
         (d (dummy-package "d"
 | 
			
		||||
              (inputs `(("a" ,a) ("c" ,c)))))
 | 
			
		||||
         (e (dummy-package "e"
 | 
			
		||||
              (inputs `(("b" ,b) ("c" ,c))))))
 | 
			
		||||
    (and (null? (package-transitive-inputs a))
 | 
			
		||||
         (equal? `(("a*" ,a) ("a+" ,a) ("a" ,a))   ;here duplicates are kept
 | 
			
		||||
                 (package-transitive-inputs b))
 | 
			
		||||
         (equal? `(("b" ,b) ("a" ,a))
 | 
			
		||||
                 (package-transitive-inputs c))
 | 
			
		||||
         (equal? `(("a" ,a) ("c" ,c) ("b" ,b))     ;duplicate A removed
 | 
			
		||||
                 (package-transitive-inputs d))
 | 
			
		||||
         (equal? `(("b" ,b) ("c" ,c) ("a" ,a))
 | 
			
		||||
                 (package-transitive-inputs e))))) ;ditto
 | 
			
		||||
 | 
			
		||||
(test-equal "package-transitive-supported-systems"
 | 
			
		||||
  '(("x" "y" "z")                                 ;a
 | 
			
		||||
    ("x" "y")                                     ;b
 | 
			
		||||
| 
						 | 
				
			
			@ -573,8 +595,8 @@
 | 
			
		|||
         (dummy  (dummy-package "dummy"
 | 
			
		||||
                   (inputs `(("prop" ,prop)))))
 | 
			
		||||
         (inputs (bag-transitive-inputs (package->bag dummy #:graft? #f))))
 | 
			
		||||
    (match (assoc "prop/dep" inputs)
 | 
			
		||||
      (("prop/dep" package)
 | 
			
		||||
    (match (assoc "dep" inputs)
 | 
			
		||||
      (("dep" package)
 | 
			
		||||
       (eq? package dep)))))
 | 
			
		||||
 | 
			
		||||
(test-assert "bag->derivation"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,6 +24,7 @@
 | 
			
		|||
  #:use-module (guix gexp)
 | 
			
		||||
  #:use-module (guix tests)
 | 
			
		||||
  #:use-module (guix scripts size)
 | 
			
		||||
  #:use-module (gnu packages)
 | 
			
		||||
  #:use-module (gnu packages bootstrap)
 | 
			
		||||
  #:use-module (ice-9 match)
 | 
			
		||||
  #:use-module (srfi srfi-1)
 | 
			
		||||
| 
						 | 
				
			
			@ -54,9 +55,15 @@
 | 
			
		|||
      (built-derivations (list file2))
 | 
			
		||||
      (mlet %store-monad ((profiles (store-profile
 | 
			
		||||
                                     (derivation->output-path file2)))
 | 
			
		||||
                          (bash     (interned-file
 | 
			
		||||
                                     (search-bootstrap-binary
 | 
			
		||||
                                      "bash" (%current-system)) "bash"
 | 
			
		||||
                                      #:recursive? #t))
 | 
			
		||||
                          (guile    (package->derivation %bootstrap-guile)))
 | 
			
		||||
        (define (lookup-profile drv)
 | 
			
		||||
          (find (matching-profile (derivation->output-path drv))
 | 
			
		||||
        (define (lookup-profile item)
 | 
			
		||||
          (find (matching-profile (if (derivation? item)
 | 
			
		||||
                                      (derivation->output-path item)
 | 
			
		||||
                                      item))
 | 
			
		||||
                profiles))
 | 
			
		||||
 | 
			
		||||
        (letrec-syntax ((match* (syntax-rules (=>)
 | 
			
		||||
| 
						 | 
				
			
			@ -67,15 +74,17 @@
 | 
			
		|||
                                  ((_ () body)
 | 
			
		||||
                                   body))))
 | 
			
		||||
          ;; Make sure we get all three profiles with sensible values.
 | 
			
		||||
          (return (and (= (length profiles) 3)
 | 
			
		||||
          (return (and (= (length profiles) 4)
 | 
			
		||||
                       (match* ((file1 => profile1)
 | 
			
		||||
                                (file2 => profile2)
 | 
			
		||||
                                (guile => profile3))
 | 
			
		||||
                                (guile => profile3)
 | 
			
		||||
                                (bash  => profile4)) ;dependency of GUILE
 | 
			
		||||
                         (and (> (profile-closure-size profile2) 0)
 | 
			
		||||
                              (= (profile-closure-size profile2)
 | 
			
		||||
                                 (+ (profile-self-size profile1)
 | 
			
		||||
                                    (profile-self-size profile2)
 | 
			
		||||
                                    (profile-self-size profile3))))))))))))
 | 
			
		||||
                                    (profile-self-size profile3)
 | 
			
		||||
                                    (profile-self-size profile4))))))))))))
 | 
			
		||||
 | 
			
		||||
(test-end "size")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue