aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--THANKS1
-rw-r--r--doc/guix.texi10
-rw-r--r--gnu-system.am3
-rw-r--r--gnu/build/install.scm1
-rw-r--r--gnu/packages/audio.scm67
-rw-r--r--gnu/packages/bioinformatics.scm15
-rw-r--r--gnu/packages/game-development.scm44
-rw-r--r--gnu/packages/games.scm57
-rw-r--r--gnu/packages/gstreamer.scm46
-rw-r--r--gnu/packages/guile.scm78
-rw-r--r--gnu/packages/image.scm17
-rw-r--r--gnu/packages/java.scm386
-rw-r--r--gnu/packages/libreoffice.scm81
-rw-r--r--gnu/packages/patches/gstreamer-0.10-bison3.patch32
-rw-r--r--gnu/packages/patches/gstreamer-0.10-silly-test.patch14
-rw-r--r--gnu/packages/python.scm62
-rw-r--r--gnu/packages/tbb.scm2
-rw-r--r--gnu/packages/video.scm53
-rw-r--r--guix/build/download.scm65
-rw-r--r--guix/derivations.scm12
-rw-r--r--guix/download.scm3
-rw-r--r--guix/gexp.scm2
-rwxr-xr-xguix/scripts/substitute.scm1
-rw-r--r--guix/serialization.scm7
25 files changed, 774 insertions, 286 deletions
diff --git a/AUTHORS b/AUTHORS
index fa1835b707..e2dafe0b34 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -35,5 +35,6 @@ alphabetical order):
David Thompson <dthompson2@worcester.edu>
Paul van der Walt <paul@denknerd.org>
Mark H. Weaver <mhw@netris.org>
+ Christopher A. Webber <cwebber@dustycloud.org>
Andy Wingo <wingo@pobox.com>
Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
diff --git a/THANKS b/THANKS
index ff9714ebec..36c2a3ae1b 100644
--- a/THANKS
+++ b/THANKS
@@ -31,6 +31,7 @@ infrastructure help:
Adam Pribyl <pribyl@lowlevel.cz>
Pjotr Prins <pjotr.public12@thebird.nl>
rekado <rekado@elephly.net>
+ Joshua Randall <jcrandall@alum.mit.edu>
Bruno Félix Rezende Ribeiro <oitofelix@gnu.org>
Cyrill Schenkel <cyrill.schenkel@gmail.com>
Benno Schulenberg <coordinator@translationproject.org>
diff --git a/doc/guix.texi b/doc/guix.texi
index 4269d4fa5f..dd6af80965 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2187,7 +2187,7 @@ a derivation is the @code{derivation} procedure:
@var{args} [#:outputs '("out")] [#:hash #f] [#:hash-algo #f] @
[#:recursive? #f] [#:inputs '()] [#:env-vars '()] @
[#:system (%current-system)] [#:references-graphs #f] @
- [#:allowed-references #f] [#:local-build? #f]
+ [#:allowed-references #f] [#:leaked-env-vars #f] [#:local-build? #f]
Build a derivation with the given arguments, and return the resulting
@code{<derivation>} object.
@@ -2206,6 +2206,13 @@ a simple text format.
When @var{allowed-references} is true, it must be a list of store items
or outputs that the derivation's output may refer to.
+When @var{leaked-env-vars} is true, it must be a list of strings
+denoting environment variables that are allowed to ``leak'' from the
+daemon's environment to the build environment. This is only applicable
+to fixed-output derivations---i.e., when @var{hash} is true. The main
+use is to allow variables such as @code{http_proxy} to be passed to
+derivations that download files.
+
When @var{local-build?} is true, declare that the derivation is not a
good candidate for offloading and should rather be built locally
(@pxref{Daemon Offload Setup}). This is the case for small derivations
@@ -2728,6 +2735,7 @@ information about monads.)
[#:recursive? #f] [#:env-vars '()] [#:modules '()] @
[#:module-path @var{%load-path}] @
[#:references-graphs #f] [#:allowed-references #f] @
+ [#:leaked-env-vars #f] @
[#:local-build? #f] [#:guile-for-build #f]
Return a derivation @var{name} that runs @var{exp} (a gexp) with
@var{guile-for-build} (a derivation) on @var{system}. When @var{target}
diff --git a/gnu-system.am b/gnu-system.am
index 2692394519..26228fccfa 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -175,6 +175,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/libftdi.scm \
gnu/packages/libidn.scm \
gnu/packages/libphidget.scm \
+ gnu/packages/libreoffice.scm \
gnu/packages/libsigsegv.scm \
gnu/packages/libunistring.scm \
gnu/packages/libusb.scm \
@@ -440,8 +441,6 @@ dist_patch_DATA = \
gnu/packages/patches/grep-CVE-2015-1345.patch \
gnu/packages/patches/grub-gets-undeclared.patch \
gnu/packages/patches/grub-freetype.patch \
- gnu/packages/patches/gstreamer-0.10-bison3.patch \
- gnu/packages/patches/gstreamer-0.10-silly-test.patch \
gnu/packages/patches/guile-1.8-cpp-4.5.patch \
gnu/packages/patches/guile-arm-fixes.patch \
gnu/packages/patches/guile-default-utf8.patch \
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index f019fcb417..76536daf49 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -121,6 +121,7 @@ STORE."
(directory "/bin")
(directory "/tmp" 0 0 #o1777) ; sticky bit
(directory "/var/tmp" 0 0 #o1777)
+ (directory "/var/lock" 0 0 #o1777)
(directory "/root" 0 0) ; an exception
(directory "/home" 0 0)))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index c5c1a77b2f..6cba704b6d 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -1156,6 +1156,73 @@ compression modes. This package contains command-line programs and library to
encode and decode wavpack files.")
(license license:bsd-3)))
+(define-public libmodplug
+ (package
+ (name "libmodplug")
+ (version "0.8.8.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/project/modplug-xmms/"
+ name "/" version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
+ (build-system gnu-build-system)
+ (home-page "http://modplug-xmms.sourceforge.net/")
+ (synopsis "Mod file playing library")
+ (description
+ "Libmodplug renders mod music files as raw audio data, for playing or
+conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
+supported. Optional features include high-quality resampling, bass expansion,
+surround and reverb.")
+ (license license:public-domain)))
+
+(define-public libxmp
+ (package
+ (name "libxmp")
+ (version "4.3.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/xmp/libxmp/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0h06091hlpgc6ds4pjmfq8sx4snw7av3nhny180q4pwfyasjb6ny"))))
+ (build-system gnu-build-system)
+ (home-page "http://xmp.sourceforge.net/")
+ (synopsis "Module player library")
+ (description
+ "Libxmp is a library that renders module files to PCM data. It supports
+over 90 mainstream and obscure module formats including Protracker (MOD),
+Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
+ (license license:lgpl2.1+)))
+
+(define-public xmp
+ (package
+ (name "xmp")
+ (version "4.0.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/xmp/xmp/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0gjylvvmq7ha0nhcjg56qfp0xxpsrcsj7y5r914svd5x1ppmzm5n"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libxmp" ,libxmp)
+ ("pulseaudio" ,pulseaudio)))
+ (home-page "http://xmp.sourceforge.net/")
+ (synopsis "Extended module player")
+ (description
+ "Xmp is a portable module player that plays over 90 mainstream and
+obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
+Tracker 3 S3M and Impulse Tracker IT files.")
+ (license license:gpl2+)))
+
(define-public soundtouch
(package
(name "soundtouch")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index ccfda627f3..bcb7eba48f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -623,15 +623,20 @@ results. The FASTX-Toolkit tools perform some of these preprocessing tasks.")
"13jaykc3y1x8y5nn9j8ljnb79s5y51kyxz46hdmvvjj6qhyympmf"))))
(build-system cmake-build-system)
(arguments
- `(;; There is no test target, although there is a directory containing
- ;; test data and scripts (launched by flexbar_validate.sh).
- #:tests? #f
- #:configure-flags (list
+ `(#:configure-flags (list
(string-append "-DFLEXBAR_BINARY_DIR="
(assoc-ref %outputs "out")
"/bin/"))
#:phases
- (alist-delete 'install %standard-phases)))
+ (alist-replace
+ 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "PATH" (string-append
+ (assoc-ref outputs "out") "/bin:"
+ (getenv "PATH")))
+ (chdir "../flexbar_v2.5_src/test")
+ (zero? (system* "bash" "flexbar_validate.sh")))
+ (alist-delete 'install %standard-phases))))
(inputs
`(("tbb" ,tbb)
("zlib" ,zlib)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 0e6a1d5b89..219176722a 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -25,7 +25,15 @@
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages qt)
- #:use-module (gnu packages compression))
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages zip)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages audio)
+ #:use-module (gnu packages pulseaudio))
(define-public bullet
(package
@@ -85,3 +93,37 @@ clone.")
;; As noted in 'COPYING', part of it is under GPLv2+, while the rest is
;; under BSD-2.
(license license:gpl2+)))
+
+(define-public sfml
+ (package
+ (name "sfml")
+ (version "2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://mirror0.sfml-dev.org/files/SFML-"
+ version "-sources.zip"))
+ (sha256
+ (base32
+ "1xhkvgyfbhqsjdmfbxvk729kdrzh7kdyagxa3bvpzi6z43mh1frd"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ; no tests
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (inputs
+ `(("mesa" ,mesa)
+ ("glew" ,glew)
+ ("libx11" ,libx11)
+ ("libxrandr" ,libxrandr)
+ ("eudev" ,eudev)
+ ("freetype" ,freetype)
+ ("libjpeg" ,libjpeg)
+ ("libsndfile" ,libsndfile)
+ ("openal" ,openal)))
+ (home-page "http://www.sfml-dev.org")
+ (synopsis "Simple and Fast Multimedia Library")
+ (description
+ "SFML provides a simple interface to the various computer components,
+to ease the development of games and multimedia applications. It is composed
+of five modules: system, window, graphics, audio and network.")
+ (license license:zlib)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 192d0db397..d86e151a85 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
+;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,6 +43,7 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages libunwind)
#:use-module (gnu packages image)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
@@ -65,6 +67,7 @@
#:use-module (gnu packages lua)
#:use-module (gnu packages video)
#:use-module (gnu packages xml)
+ #:use-module (gnu packages tcl)
#:use-module (guix build-system trivial)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
@@ -822,3 +825,57 @@ interfaces or even in Emacs. It supports the standard game storage format
Modem Protocol).")
(home-page "http://www.gnu.org/software/gnugo/")
(license license:gpl3+)))
+
+(define-public extremetuxracer
+ (package
+ (name "extremetuxracer")
+ (version "0.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://downloads.sourceforge.net/project/extremetuxracer/releases/"
+ version "/etr-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0fl9pwkywqnsmgr6plfj9zb05xrdnl5xb2hcmbjk7ap9l4cjfca4"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("freetype" ,freetype)
+ ("mesa" ,mesa)
+ ("glu" ,glu)
+ ("libice" ,libice)
+ ("libpng" ,libpng)
+ ("sdl" ,sdl)
+ ("sdl-mixer" ,sdl-mixer)
+ ("sdl-image" ,sdl-image)
+ ("libsm" ,libsm)
+ ("libunwind" ,libunwind)
+ ("libx11" ,libx11)
+ ("libxext" ,libxext)
+ ("libxi" ,libxi)
+ ("libxmu" ,libxmu)
+ ("libxt" ,libxt)
+ ("tcl" ,tcl)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'patch-makefile
+ (lambda _
+ (substitute* "Makefile"
+ (("CXXFLAGS =") "CXXFLAGS = ${CFLAGS}")))))))
+ (synopsis "High speed arctic racing game based on Tux Racer")
+ ;; Snarfed straight from Debian
+ (description "Extreme Tux Racer, or etracer as it is called for short, is
+a simple OpenGL racing game featuring Tux, the Linux mascot. The goal of the
+game is to slide down a snow- and ice-covered mountain as quickly as possible,
+avoiding the trees and rocks that will slow you down.
+
+Collect herrings and other goodies while sliding down the hill, but avoid fish
+bones.
+
+This game is based on the GPL version of the famous game TuxRacer.")
+ (home-page "http://sourceforge.net/projects/extremetuxracer/")
+ (license license:gpl2+)))
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index b882208d76..03aecdfa53 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -124,32 +124,6 @@ simple plugin with a clean, generic interface.
This package provides the core library and elements.")
(license lgpl2.0+)))
-(define-public gstreamer-0.10
- (package (inherit gstreamer)
- (version "0.10.36")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
- version ".tar.xz"))
- (sha256
- (base32
- "1nkid1n2l3rrlmq5qrf5yy06grrkwjh3yxl5g0w58w0pih8allci"))
- (patches
- (list (search-patch "gstreamer-0.10-bison3.patch")
- (search-patch "gstreamer-0.10-silly-test.patch")))))
- (propagated-inputs
- `(("libxml2" ,libxml2)))
- (inputs `(("glib" ,glib)))
- (native-inputs
- `(("bison" ,bison)
- ("flex" ,flex)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("glib" ,glib "bin")
- ("python" ,python-2)))))
-
-
(define-public gst-plugins-base
(package
(name "gst-plugins-base")
@@ -288,23 +262,3 @@ developers consider to have good quality code and correct functionality.")
"This GStreamer plugin supports a large number of audio and video
compression formats through the use of the libav library.")
(license gpl2+)))
-
-(define-public gst-plugins-base-0.10
- (package (inherit gst-plugins-base)
- (version "0.10.36")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-"
- version ".tar.xz"))
- (sha256
- (base32
- "0jp6hjlra98cnkal4n6bdmr577q8mcyp3c08s3a02c4hjhw5rr0z"))))
- (inputs
- `(("glib" ,glib)
- ("gstreamer" ,gstreamer-0.10)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("glib" ,glib "bin")
- ("python" ,python-2)))))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index c605533fd2..751002f54c 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -36,7 +37,9 @@
#:use-module (gnu packages base)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
#:use-module (guix utils)
#:use-module (ice-9 match))
@@ -358,4 +361,79 @@ http:://json.org specification. These are the main features:
- Allows JSON pretty printing.")
(license lgpl3+)))
+(define-public guile-minikanren
+ (package
+ (name "guile-minikanren")
+ (version "20150424.e844d85")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ijp/minikanren.git")
+ (commit "e844d85512f8c055d3f96143ee506007389a25e3")))
+ (sha256
+ (base32
+ "0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules
+ ((guix build utils)
+ (ice-9 match))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let* ((out (assoc-ref %outputs "out"))
+ (module-dir (string-append out "/share/guile/site/2.0"))
+ (source (assoc-ref %build-inputs "source"))
+ (doc (string-append out "/share/doc"))
+ (scm-files '("minikanren.scm"
+ "minikanren/mkextraforms.scm"
+ "minikanren/mkprelude.scm"
+ "minikanren/mk.scm"))
+ (guild (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild")))
+ ;; Make installation directories.
+ (mkdir-p (string-append module-dir "/minikanren"))
+ (mkdir-p doc)
+
+ ;; Compile .scm files and install.
+ (chdir source)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+ file ".scm"))
+ (go-file (match (string-split file #\.)
+ ((base _)
+ (string-append module-dir "/"
+ base ".go")))))
+ ;; Install source module.
+ (copy-file file dest-file)
+ ;; Install compiled module.
+ (unless (zero? (system* guild "compile"
+ "-L" source
+ "-o" go-file
+ file))
+ (error (format #f "Failed to compile ~s to ~s!"
+ file go-file)))))
+ scm-files)
+
+ ;; Also copy over the README.
+ (copy-file "README.org" (string-append doc "/README.org"))
+ #t))))
+ (inputs
+ `(("guile" ,guile-2.0)))
+ (home-page "https://github.com/ijp/minikanren")
+ (synopsis "miniKanren declarative logic system, packaged for Guile")
+ (description
+ "MiniKanren is a relational programming extension to the Scheme
+programming Language, written as a smaller version of Kanren suitable for
+pedagogical purposes. It is featured in the book, The Reasoned Schemer,
+written by Dan Friedman, William Byrd, and Oleg Kiselyov.
+
+This is Ian Price's r6rs packaged version of miniKranen, which deviates
+slightly from miniKanren mainline.
+
+See http://minikanren.org/ for more on miniKanren generally.")
+ (license expat)))
+
;;; guile.scm ends here
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index ece0e8c54a..c24ec99375 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
@@ -384,25 +384,16 @@ compose, and analyze GIF images.")
(define-public imlib2
(package
(name "imlib2")
- (version "1.4.6")
+ (version "1.4.7")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/enlightenment/imlib2-"
- version ".tar.gz"))
+ version ".tar.bz2"))
(sha256
(base32
- "0kjggg4gfn6chi8v1xddd5qwk1fbnl7rvd93qiclv5v11s615k0p"))))
+ "00a7jbwj10x3jcvxa5rplnkvhv35gv9rb400zy636zdd4g737mrm"))))
(build-system gnu-build-system)
- (arguments
- '(;; Will be fixed in the next release:
- ;; <http://git.enlightenment.org/legacy/imlib2.git/commit/?id=5dde234b2d3caf067ea827858c53adc5d4c56c13>.
- #:phases (alist-cons-before
- 'configure 'patch-config
- (lambda _
- (substitute* "imlib2-config.in"
- (("@my_libs@") "")))
- %standard-phases)))
(native-inputs
`(("pkgconfig" ,pkg-config)))
(inputs
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index a77d1716bc..26fc3eccf5 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -20,6 +20,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages attr)
@@ -46,7 +47,8 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages zip)
- #:use-module (gnu packages texinfo))
+ #:use-module (gnu packages texinfo)
+ #:use-module ((srfi srfi-1) #:select (fold alist-delete)))
(define-public swt
(package
@@ -397,7 +399,7 @@ build process and its dependencies, whereas Make uses Makefile format.")
(setenv "PATH" (string-append antpath "/bin:"
(getenv "PATH")))))
(alist-cons-before
- 'check 'fix-tests
+ 'check 'fix-test-framework
(lambda _
;; Fix PATH in test environment
(substitute* "src/jtreg/com/sun/javatest/regtest/Main.java"
@@ -405,109 +407,114 @@ build process and its dependencies, whereas Make uses Makefile format.")
(string-append "PATH=" (getenv "PATH"))))
(substitute* "src/jtreg/com/sun/javatest/util/SysEnv.java"
(("/usr/bin/env") (which "env")))
-
- ;; Hotspot tests
- (with-directory-excursion "openjdk/hotspot/test/"
- (substitute* "jprt.config"
- (("PATH=\"\\$\\{path4sdk\\}\"")
- (string-append "PATH=" (getenv "PATH")))
- (("make=/usr/bin/make")
- (string-append "make=" (which "make"))))
- (substitute* '("runtime/6626217/Test6626217.sh"
- "runtime/7110720/Test7110720.sh")
- (("/bin/rm") (which "rm"))
- (("/bin/cp") (which "cp"))
- (("/bin/mv") (which "mv"))))
-
- ;; JDK tests
- (with-directory-excursion "openjdk/jdk/test/"
- (substitute* "com/sun/jdi/JdbReadTwiceTest.sh"
- (("/bin/pwd") (which "pwd")))
- (substitute* "com/sun/jdi/ShellScaffold.sh"
- (("/bin/kill") (which "kill")))
- (substitute* "start-Xvfb.sh"
- ;(("/usr/bin/X11/Xvfb") (which "Xvfb"))
- (("/usr/bin/nohup") (which "nohup")))
- (substitute* "javax/security/auth/Subject/doAs/Test.sh"
- (("/bin/rm") (which "rm")))
- (substitute* "tools/launcher/MultipleJRE.sh"
- (("echo \"#!/bin/sh\"")
- (string-append "echo \"#!" (which "rm") "\""))
- (("/usr/bin/zip") (which "zip")))
- (substitute* "com/sun/jdi/OnThrowTest.java"
- (("#!/bin/sh") (string-append "#!" (which "sh"))))
- (substitute* "java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java"
- (("/usr/bin/uptime") (which "uptime")))
- (substitute* "java/lang/ProcessBuilder/Basic.java"
- (("/usr/bin/env") (which "env"))
- (("/bin/false") (which "false"))
- (("/bin/true") (which "true"))
- (("/bin/cp") (which "cp"))
- (("/bin/sh") (which "sh")))
- (substitute* "java/lang/ProcessBuilder/FeelingLucky.java"
- (("/bin/sh") (which "sh")))
- (substitute* "java/lang/ProcessBuilder/Zombies.java"
- (("/usr/bin/perl") (which "perl"))
- (("/bin/ps") (which "ps"))
- (("/bin/true") (which "true")))
- (substitute* "java/lang/Runtime/exec/ConcurrentRead.java"
- (("/usr/bin/tee") (which "tee")))
- (substitute* "java/lang/Runtime/exec/ExecWithDir.java"
- (("/bin/true") (which "true")))
- (substitute* "java/lang/Runtime/exec/ExecWithInput.java"
- (("/bin/cat") (which "cat")))
- (substitute* "java/lang/Runtime/exec/ExitValue.java"
- (("/bin/sh") (which "sh"))
- (("/bin/true") (which "true"))
- (("/bin/kill") (which "kill")))
- (substitute* "java/lang/Runtime/exec/LotsOfDestroys.java"
- (("/usr/bin/echo") (which "echo")))
- (substitute* "java/lang/Runtime/exec/LotsOfOutput.java"
- (("/usr/bin/cat") (which "cat")))
- (substitute* "java/lang/Runtime/exec/SleepyCat.java"
- (("/bin/cat") (which "cat"))
- (("/bin/sleep") (which "sleep"))
- (("/bin/sh") (which "sh")))
- (substitute* "java/lang/Runtime/exec/StreamsSurviveDestroy.java"
- (("/bin/cat") (which "cat")))
- (substitute* "java/rmi/activation/CommandEnvironment/SetChildEnv.java"
- (("/bin/chmod") (which "chmod")))
- (substitute* "java/util/zip/ZipFile/Assortment.java"
- (("/bin/sh") (which "sh")))))
- (alist-replace
- 'check
+ #t)
+ (alist-cons-before
+ 'check 'fix-hotspot-tests
(lambda _
- ;; The "make check-*" targets always return zero, so we need to
- ;; check for errors in the associated log files to determine
- ;; whether any tests have failed.
- (use-modules (ice-9 rdelim))
- (let* ((error-pattern (make-regexp "^(Error|FAILED):.*"))
- (checker (lambda (port)
- (let loop ()
- (let ((line (read-line port)))
- (cond
- ((eof-object? line) #t)
- ((regexp-exec error-pattern line) #f)
- (else (loop)))))))
- (run-test (lambda (test)
- (system* "make" test)
- (call-with-input-file
- (string-append "test/" test ".log")
- checker))))
- (or #t ; skip tests
- (and (run-test "check-hotspot")
- (run-test "check-langtools")
- (run-test "check-jdk")))))
- (alist-replace
- 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((doc (string-append (assoc-ref outputs "doc") "/share/doc/" ,name))
- (jre (assoc-ref outputs "out"))
- (jdk (assoc-ref outputs "jdk")))
- (copy-recursively "openjdk.build/docs" doc)
- (copy-recursively "openjdk.build/j2re-image" jre)
- (copy-recursively "openjdk.build/j2sdk-image" jdk)))
- %standard-phases)))))))))
+ (with-directory-excursion "openjdk/hotspot/test/"
+ (substitute* "jprt.config"
+ (("PATH=\"\\$\\{path4sdk\\}\"")
+ (string-append "PATH=" (getenv "PATH")))
+ (("make=/usr/bin/make")
+ (string-append "make=" (which "make"))))
+ (substitute* '("runtime/6626217/Test6626217.sh"
+ "runtime/7110720/Test7110720.sh")
+ (("/bin/rm") (which "rm"))
+ (("/bin/cp") (which "cp"))
+ (("/bin/mv") (which "mv"))))
+ #t)
+ (alist-cons-before
+ 'check 'fix-jdk-tests
+ (lambda _
+ (with-directory-excursion "openjdk/jdk/test/"
+ (substitute* "com/sun/jdi/JdbReadTwiceTest.sh"
+ (("/bin/pwd") (which "pwd")))
+ (substitute* "com/sun/jdi/ShellScaffold.sh"
+ (("/bin/kill") (which "kill")))
+ (substitute* "start-Xvfb.sh"
+ ;;(("/usr/bin/X11/Xvfb") (which "Xvfb"))
+ (("/usr/bin/nohup") (which "nohup")))
+ (substitute* "javax/security/auth/Subject/doAs/Test.sh"
+ (("/bin/rm") (which "rm")))
+ (substitute* "tools/launcher/MultipleJRE.sh"
+ (("echo \"#!/bin/sh\"")
+ (string-append "echo \"#!" (which "rm") "\""))
+ (("/usr/bin/zip") (which "zip")))
+ (substitute* "com/sun/jdi/OnThrowTest.java"
+ (("#!/bin/sh") (string-append "#!" (which "sh"))))
+ (substitute* "java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java"
+ (("/usr/bin/uptime") (which "uptime")))
+ (substitute* "java/lang/ProcessBuilder/Basic.java"
+ (("/usr/bin/env") (which "env"))
+ (("/bin/false") (which "false"))
+ (("/bin/true") (which "true"))
+ (("/bin/cp") (which "cp"))
+ (("/bin/sh") (which "sh")))
+ (substitute* "java/lang/ProcessBuilder/FeelingLucky.java"
+ (("/bin/sh") (which "sh")))
+ (substitute* "java/lang/ProcessBuilder/Zombies.java"
+ (("/usr/bin/perl") (which "perl"))
+ (("/bin/ps") (which "ps"))
+ (("/bin/true") (which "true")))
+ (substitute* "java/lang/Runtime/exec/ConcurrentRead.java"
+ (("/usr/bin/tee") (which "tee")))
+ (substitute* "java/lang/Runtime/exec/ExecWithDir.java"
+ (("/bin/true") (which "true")))
+ (substitute* "java/lang/Runtime/exec/ExecWithInput.java"
+ (("/bin/cat") (which "cat")))
+ (substitute* "java/lang/Runtime/exec/ExitValue.java"
+ (("/bin/sh") (which "sh"))
+ (("/bin/true") (which "true"))
+ (("/bin/kill") (which "kill")))
+ (substitute* "java/lang/Runtime/exec/LotsOfDestroys.java"
+ (("/usr/bin/echo") (which "echo")))
+ (substitute* "java/lang/Runtime/exec/LotsOfOutput.java"
+ (("/usr/bin/cat") (which "cat")))
+ (substitute* "java/lang/Runtime/exec/SleepyCat.java"
+ (("/bin/cat") (which "cat"))
+ (("/bin/sleep") (which "sleep"))
+ (("/bin/sh") (which "sh")))
+ (substitute* "java/lang/Runtime/exec/StreamsSurviveDestroy.java"
+ (("/bin/cat") (which "cat")))
+ (substitute* "java/rmi/activation/CommandEnvironment/SetChildEnv.java"
+ (("/bin/chmod") (which "chmod")))
+ (substitute* "java/util/zip/ZipFile/Assortment.java"
+ (("/bin/sh") (which "sh"))))
+ #t)
+ (alist-replace
+ 'check
+ (lambda _
+ ;; The "make check-*" targets always return zero, so we need to
+ ;; check for errors in the associated log files to determine
+ ;; whether any tests have failed.
+ (use-modules (ice-9 rdelim))
+ (let* ((error-pattern (make-regexp "^(Error|FAILED):.*"))
+ (checker (lambda (port)
+ (let loop ()
+ (let ((line (read-line port)))
+ (cond
+ ((eof-object? line) #t)
+ ((regexp-exec error-pattern line) #f)
+ (else (loop)))))))
+ (run-test (lambda (test)
+ (system* "make" test)
+ (call-with-input-file
+ (string-append "test/" test ".log")
+ checker))))
+ (or #t ; skip tests
+ (and (run-test "check-hotspot")
+ (run-test "check-langtools")
+ (run-test "check-jdk")))))
+ (alist-replace
+ 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "doc") "/share/doc/" ,name))
+ (jre (assoc-ref outputs "out"))
+ (jdk (assoc-ref outputs "jdk")))
+ (copy-recursively "openjdk.build/docs" doc)
+ (copy-recursively "openjdk.build/j2re-image" jre)
+ (copy-recursively "openjdk.build/j2sdk-image" jdk)))
+ %standard-phases)))))))))))
(native-inputs
`(("ant-bootstrap"
,(origin
@@ -567,3 +574,174 @@ build process and its dependencies, whereas Make uses Makefile format.")
;; IcedTea is released under the GPL2 + Classpath exception, which is the
;; same license as both GNU Classpath and OpenJDK.
(license license:gpl2+)))
+
+(define-public icedtea7
+ (let* ((version "2.5.5")
+ (drop (lambda (name hash)
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://icedtea.classpath.org/download/drops/"
+ "/icedtea7/" version "/" name ".tar.bz2"))
+ (sha256 (base32 hash))))))
+ (package (inherit icedtea6)
+ (name "icedtea7")
+ (version version)
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://icedtea.wildebeest.org/download/source/icedtea-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1irxk2ndwsfk4c1zbzb5h3rpwv2bc9bhfjvz6p4dws5476vsxrq9"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "Makefile.in"
+ ;; do not leak information about the build host
+ (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"")
+ "DISTRIBUTION_ID=\"\\\"guix\\\"\"")))))
+ (arguments
+ `(;; There are many test failures. Some are known to
+ ;; fail upstream, others relate to not having an X
+ ;; server running at test time, yet others are a
+ ;; complete mystery to me.
+
+ ;; hotspot: passed: 241; failed: 45; error: 2
+ ;; langtools: passed: 1,934; failed: 26
+ ;; jdk: unknown
+ #:tests? #f
+ ;; Apparently, the C locale is needed for some of the tests.
+ #:locale "C"
+ ,@(substitute-keyword-arguments (package-arguments icedtea6)
+ ((#:configure-flags flags)
+ `(let ((jdk (assoc-ref %build-inputs "icedtea6"))
+ (ant (assoc-ref %build-inputs "ant")))
+ `("--disable-bootstrap"
+ "--without-rhino"
+ "--enable-nss"
+ "--enable-system-lcms"
+ "--disable-downloading"
+ ,(string-append "--with-ant-home=" ant)
+ ,(string-append "--with-jdk-home=" jdk))))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace
+ 'unpack
+ (lambda* (#:key source inputs #:allow-other-keys)
+ (let ((target (string-append "icedtea-" ,version))
+ (unpack (lambda (drop dir)
+ (mkdir dir)
+ (zero? (system* "tar" "xvjf"
+ (assoc-ref inputs drop)
+ "-C" dir
+ "--strip-components=1")))))
+ (and (zero? (system* "tar" "xvf" source))
+ (chdir target)
+ (unpack "openjdk-drop" "openjdk")
+ (unpack "corba-drop" "openjdk/corba")
+ (unpack "jdk-drop" "openjdk/jdk")
+ (unpack "hotspot-drop" "openjdk/hotspot")
+
+ ;; The build framework checks the tarballs, so we
+ ;; need to keep them around even though we have
+ ;; already unpacked some of them for patching.
+ (begin
+ (copy-file (assoc-ref inputs "openjdk-drop")
+ "openjdk.tar.bz2")
+ (copy-file (assoc-ref inputs "corba-drop")
+ "corba.tar.bz2")
+ (copy-file (assoc-ref inputs "hotspot-drop")
+ "hotspot.tar.bz2")
+ (copy-file (assoc-ref inputs "jaxp-drop")
+ "jaxp.tar.bz2")
+ (copy-file (assoc-ref inputs "jaxws-drop")
+ "jaxws.tar.bz2")
+ (copy-file (assoc-ref inputs "jdk-drop")
+ "jdk.tar.bz2")
+ (copy-file (assoc-ref inputs "langtools-drop")
+ "langtools.tar.bz2")
+ #t)))))
+ (replace
+ 'set-additional-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "openjdk/jdk/make/common/shared/Sanity.gmk"
+ (("ALSA_INCLUDE=/usr/include/alsa/version.h")
+ (string-append "ALSA_INCLUDE="
+ (assoc-ref inputs "alsa-lib")
+ "/include/alsa/version.h")))
+ (setenv "CC" "gcc")
+ (setenv "CPATH"
+ (string-append (assoc-ref inputs "libxrender")
+ "/include/X11/extensions" ":"
+ (assoc-ref inputs "libxtst")
+ "/include/X11/extensions" ":"
+ (assoc-ref inputs "libxinerama")
+ "/include/X11/extensions" ":"
+ (or (getenv "CPATH") "")))
+ (setenv "ALT_OBJCOPY" (which "objcopy"))
+ (setenv "ALT_CUPS_HEADERS_PATH"
+ (string-append (assoc-ref inputs "cups")
+ "/include"))
+ (setenv "ALT_FREETYPE_HEADERS_PATH"
+ (string-append (assoc-ref inputs "freetype")
+ "/include"))
+ (setenv "ALT_FREETYPE_LIB_PATH"
+ (string-append (assoc-ref inputs "freetype")
+ "/lib"))))
+ (add-after
+ 'unpack 'fix-x11-extension-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "openjdk/jdk/make/sun/awt/mawt.gmk"
+ (((string-append "\\$\\(firstword \\$\\(wildcard "
+ "\\$\\(OPENWIN_HOME\\)"
+ "/include/X11/extensions\\).*$"))
+ (string-append (assoc-ref inputs "libxrender")
+ "/include/X11/extensions"
+ " -I" (assoc-ref inputs "libxtst")
+ "/include/X11/extensions"
+ " -I" (assoc-ref inputs "libxinerama")
+ "/include/X11/extensions"))
+ (("\\$\\(wildcard /usr/include/X11/extensions\\)\\)") ""))
+ #t))
+ (replace
+ 'fix-test-framework
+ (lambda _
+ ;; Fix PATH in test environment
+ (substitute* "test/jtreg/com/sun/javatest/regtest/Main.java"
+ (("PATH=/bin:/usr/bin")
+ (string-append "PATH=" (getenv "PATH"))))
+ (substitute* "test/jtreg/com/sun/javatest/util/SysEnv.java"
+ (("/usr/bin/env") (which "env")))
+ (substitute* "openjdk/hotspot/test/test_env.sh"
+ (("/bin/rm") (which "rm"))
+ (("/bin/cp") (which "cp"))
+ (("/bin/mv") (which "mv")))
+ #t))
+ (delete 'patch-patches))))))
+ (native-inputs
+ `(("ant" ,ant)
+ ("icedtea6" ,icedtea6 "jdk")
+ ("openjdk-drop"
+ ,(drop "openjdk"
+ "03gxqn17cxwl1nspnwigacaqd28p02d45f396j5f4kkbzfnbl0ak"))
+ ("corba-drop"
+ ,(drop "corba"
+ "0ldcckknn2f92jv1144cnn0z3wmvxln28wc00rc6xxblnjcnamzh"))
+ ("jaxp-drop"
+ ,(drop "jaxp"
+ "0mnjdziffcnyqlyvf8dw1hrl4kiiwmh8ia0ym417wgvnjpaihci9"))
+ ("jaxws-drop"
+ ,(drop "jaxws"
+ "1gkmypnhygx2mxhca3ngy620k993wi2cc1wysc0np06y1rkx1mkn"))
+ ("jdk-drop"
+ ,(drop "jdk"
+ "10x43mqjfn43jlckic0nyf7apyyjyr910cdmmvy41kvw8ljhvg61"))
+ ("langtools-drop"
+ ,(drop "langtools"
+ "0q5nqc14r6vmhxgikw3wgdcc0r9symp830v13isnv8qdjgm6kcki"))
+ ("hotspot-drop"
+ ,(drop "hotspot"
+ "1yqxfd2jwbm5y41wscyfx8h0fr3h8ny2g2mda5iwd8sikxsaj96p"))
+ ,@(fold alist-delete (package-native-inputs icedtea6)
+ '("openjdk6-src" "ant-bootstrap" "gcj")))))))
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
new file mode 100644
index 0000000000..cbe1c75eeb
--- /dev/null
+++ b/gnu/packages/libreoffice.scm
@@ -0,0 +1,81 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014 John Darrington <jmd@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages libreoffice)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module ((guix licenses) #:select (mpl2.0))
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python))
+
+(define-public ixion
+ (package
+ (name "ixion")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://kohei.us/files/ixion/src/libixion-"
+ version ".tar.xz"))
+ (sha256 (base32
+ "18g3nk29ljiqbyi0ml49j2x3f3xrqckdm9i66sw5fxnj7hb5rqvp"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("mdds" ,mdds)
+ ("python" ,python-2))) ; looks for python.pc, not python3.pc
+ (home-page "https://gitlab.com/ixion/ixion")
+ (synopsis "General purpose formula parser and interpreter")
+ (description "Ixion is a library for calculating the results of formula
+expressions stored in multiple named targets, or \"cells\". The cells can
+be referenced from each other, and the library takes care of resolving
+their dependencies automatically upon calculation.")
+ (license mpl2.0)))
+
+(define-public orcus
+ (package
+ (name "orcus")
+ (version "0.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://kohei.us/files/" name "/src/lib"
+ name "-" version ".tar.xz"))
+ (sha256 (base32
+ "0hva4qalg3dk6n1118ncr5fy8cqnj2f7fwldw7aa04124rj6p104"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ixion" ,ixion)
+ ("mdds" ,mdds)
+ ("zlib" ,zlib)))
+ (home-page "https://gitlab.com/orcus/orcus")
+ (synopsis "File import filter library for spreadsheet documents")
+ (description "Orcus is a library that provides a collection of standalone
+file processing filters. It is currently focused on providing filters for
+spreadsheet documents. The library includes import filters for
+Microsoft Excel 2007 XML, Microsoft Excel 2003 XML, Open Document Spreadsheet,
+Plain Text, Gnumeric XML, Generic XML. It also includes low-level parsers for
+CSV, CSS and XML.")
+ (license mpl2.0)))
diff --git a/gnu/packages/patches/gstreamer-0.10-bison3.patch b/gnu/packages/patches/gstreamer-0.10-bison3.patch
deleted file mode 100644
index f6eb90cb02..0000000000
--- a/gnu/packages/patches/gstreamer-0.10-bison3.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-See https://bugzilla.gnome.org/show_bug.cgi?id=706462
-
-Subject: [PATCH] Make grammar.y work with Bison 3
-
-YYLEX_PARAM is no longer supported in Bison 3.
----
- gst/parse/grammar.y | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
-index 8a9019c..f533389 100644
---- a/gst/parse/grammar.y
-+++ b/gst/parse/grammar.y
-@@ -26,7 +26,6 @@
- */
-
- #define YYERROR_VERBOSE 1
--#define YYLEX_PARAM scanner
-
- #define YYENABLE_NLS 0
-
-@@ -659,6 +658,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s);
- %right '.'
- %left '!' '='
-
-+%lex-param { void *scanner }
- %parse-param { void *scanner }
- %parse-param { graph_t *graph }
- %pure-parser
---
-1.8.3.4
-
diff --git a/gnu/packages/patches/gstreamer-0.10-silly-test.patch b/gnu/packages/patches/gstreamer-0.10-silly-test.patch
deleted file mode 100644
index 678dd7b122..0000000000
--- a/gnu/packages/patches/gstreamer-0.10-silly-test.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-See http://lists.freedesktop.org/archives/gstreamer-bugs/2013-January/098461.html
-
-diff -ru gstreamer-0.10.36.orig/tests/check/Makefile.in gstreamer-0.10.36/tests/check/Makefile.in
---- gstreamer-0.10.36.orig/tests/check/Makefile.in 2012-02-20 23:48:29.000000000 +0100
-+++ gstreamer-0.10.36/tests/check/Makefile.in 2013-10-30 21:55:48.000000000 +0100
-@@ -42,7 +42,7 @@
- gst/gstbus$(EXEEXT) gst/gstcaps$(EXEEXT) $(am__EXEEXT_2) \
- gst/gstdatetime$(EXEEXT) gst/gstinfo$(EXEEXT) \
- gst/gstiterator$(EXEEXT) gst/gstmessage$(EXEEXT) \
-- gst/gstminiobject$(EXEEXT) gst/gstobject$(EXEEXT) \
-+ gst/gstminiobject$(EXEEXT) \
- gst/gstpad$(EXEEXT) gst/gstparamspecs$(EXEEXT) \
- gst/gstpoll$(EXEEXT) gst/gstsegment$(EXEEXT) \
- gst/gstsystemclock$(EXEEXT) gst/gstclock$(EXEEXT) \
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 050c0de402..29b47f357c 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -301,6 +301,33 @@ etc. ")
(define-public python2-babel
(package-with-python2 python-babel))
+(define-public python2-backport-ssl-match-hostname
+ (package
+ (name "python2-backport-ssl-match-hostname")
+ (version "3.4.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/b/"
+ "backports.ssl_match_hostname/backports.ssl_match_hostname-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1bnn47ipvhy49n0m50v27lp4xj6sqdkdw676ypd7pawsn1zhwh87"))))
+ (build-system python-build-system)
+ (arguments `(#:python ,python-2))
+ (inputs
+ `(("python2-setuptools" ,python2-setuptools)))
+ (home-page "https://pypi.python.org/pypi/backports.ssl_match_hostname")
+ (synopsis "Backport of ssl.match_hostname() function from Python 3.4")
+ (description
+ "This backport brings the ssl.match_hostname() function to users of
+earlier versions of Python. The function checks the hostname in the
+certificate returned by the server to which a connection has been established,
+and verifies that it matches the intended target hostname.")
+ (license psfl)))
+
(define-public python-h5py
(package
(name "python-h5py")
@@ -3509,6 +3536,41 @@ It is written entirely in Python.")
(define-public python2-singledispatch
(package-with-python2 python-singledispatch))
+(define-public python-tornado
+ (package
+ (name "python-tornado")
+ (version "4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/t/tornado/"
+ "tornado-" version ".tar.gz"))
+ (sha256
+ (base32 "0a12f00h277zbifibnj46wf14801f573irvf6hwkgja5vspd7awr"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-certifi" ,python-certifi)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (home-page "https://pypi.python.org/pypi/tornado/4.1")
+ (synopsis "Python web framework and asynchronous networking library")
+ (description
+ "Tornado is a Python web framework and asynchronous networking library,
+originally developed at FriendFeed. By using non-blocking network I/O,
+Tornado can scale to tens of thousands of open connections, making it ideal
+for long polling, WebSockets, and other applications that require a long-lived
+connection to each user.")
+ (license asl2.0)))
+
+(define-public python2-tornado
+ (let ((tornado (package-with-python2 python-tornado)))
+ (package (inherit tornado)
+ (inputs
+ `(("python2-backport-ssl-match-hostname"
+ ,python2-backport-ssl-match-hostname)
+ ,@(package-inputs tornado))))))
+
(define-public python-waf
(package
(name "python-waf")
diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm
index 3c41141dc6..0e9db720aa 100644
--- a/gnu/packages/tbb.scm
+++ b/gnu/packages/tbb.scm
@@ -46,6 +46,8 @@
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
+ #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib"))
#:phases (alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8868713ba1..c890d45d19 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -264,6 +264,27 @@ SMPTE 314M.")
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("mesa" ,mesa)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before
+ 'build 'fix-dlopen-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "va/drm/va_drm_auth_x11.c"
+ (("\"libva-x11\\.so\\.%d\"")
+ (string-append "\"" out "/lib/libva-x11.so.%d\"")))))))
+ ;; Most drivers are in mesa's $prefix/lib/dri, so use that. (Can be
+ ;; overridden at run-time via LIBVA_DRIVERS_PATH.)
+ #:configure-flags
+ (list (string-append "--with-drivers-path="
+ (assoc-ref %build-inputs "mesa") "/lib/dri"))
+ ;; However, we can't write to mesa's store directory, so override the
+ ;; following make variable to install the dummy driver to libva's
+ ;; $prefix/lib/dri directory.
+ #:make-flags
+ (list (string-append "dummy_drv_video_ladir="
+ (assoc-ref %outputs "out") "/lib/dri"))))
(home-page "http://www.freedesktop.org/wiki/Software/vaapi/")
(synopsis "Video acceleration library")
(description "The main motivation for VA-API (Video Acceleration API) is
@@ -275,14 +296,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "2.6")
+ (version "2.6.2")
(source (origin
(method url-fetch)
(uri (string-append "http://www.ffmpeg.org/releases/ffmpeg-"
version ".tar.bz2"))
(sha256
(base32
- "14a7zp8pa1rvw6nr9l2rf57xr004n5kwkhn5lglybjnn1p68xhr3"))))
+ "1fi93zy98wmls7x3jpr2yvckk2ia6a1yyygwrfaxq95pd6h3m7l8"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)
@@ -299,7 +320,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
("libvorbis" ,libvorbis)
("libvpx" ,libvpx)
("openal" ,openal)
- ("patchelf" ,patchelf)
("pulseaudio" ,pulseaudio)
("soxr" ,soxr)
("speex" ,speex)
@@ -316,12 +336,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
("yasm" ,yasm)))
(arguments
`(#:test-target "fate"
- #:modules ((guix build gnu-build-system)
- (guix build utils)
- (guix build rpath)
- (srfi srfi-26))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build rpath))
#:phases
(modify-phases %standard-phases
(replace
@@ -376,6 +390,9 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(zero? (system*
"./configure"
(string-append "--prefix=" out)
+ ;; Add $libdir to the RUNPATH of all the binaries.
+ (string-append "--extra-ldflags=-Wl,-rpath="
+ %output "/lib")
"--enable-avresample"
"--enable-gpl" ; enable optional gpl licensed parts
"--enable-shared"
@@ -417,17 +434,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(path (string-join (map dirname dso) ":")))
(format #t "setting LD_LIBRARY_PATH to ~s~%" path)
(setenv "LD_LIBRARY_PATH" path)
- #t)))
- (add-after
- 'strip 'add-lib-to-runpath
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib")))
- ;; Add LIB to the RUNPATH of all the executables and libraries.
- (with-directory-excursion out
- (for-each (cut augment-rpath <> lib)
- (append (find-files "bin" ".*")
- (find-files "lib" "\\.so\\..*\\."))))))))))
+ #t))))))
(home-page "http://www.ffmpeg.org/")
(synopsis "Audio and video framework")
(description "FFmpeg is a complete, cross-platform solution to record,
@@ -710,7 +717,7 @@ several areas.")
(define-public mpv
(package
(name "mpv")
- (version "0.8.3")
+ (version "0.9.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -718,14 +725,14 @@ several areas.")
".tar.gz"))
(sha256
(base32
- "1kw9hr957cxqgm2i94bgqc6sskm6bwhm0akzckilhs460b43h409"))
+ "08nx0g6ji2d90f5w62g327szhkb7id7jzwgf3x069rc5id1x3bx7"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system waf-build-system)
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
("python-docutils" ,python-docutils)))
- ;; Missing features: libguess, LIRC, Wayland, VDPAU, V4L2
+ ;; Missing features: libguess, Wayland, VDPAU, V4L2
(inputs
`(("alsa-lib" ,alsa-lib)
("enca" ,enca)
diff --git a/guix/build/download.scm b/guix/build/download.scm
index a3105ad41d..2e0b019d38 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -196,46 +196,31 @@ host name without trailing dot."
record)))
(define (open-connection-for-uri uri)
- "Return an open input/output port for a connection to URI.
-
-This is the same as Guile's `open-socket-for-uri', except that we always
-use a numeric port argument, to avoid the need to go through libc's NSS,
-which is not available during bootstrap."
- (define addresses
- (let ((port (or (uri-port uri)
- (case (uri-scheme uri)
- ((http) 80) ; /etc/services, not for me!
- ((https) 443)
- (else
- (error "unsupported URI scheme" uri))))))
- (delete-duplicates (getaddrinfo (uri-host uri)
- (number->string port)
- AI_NUMERICSERV)
- (lambda (ai1 ai2)
- (equal? (addrinfo:addr ai1)
- (addrinfo:addr ai2))))))
-
- (let loop ((addresses addresses))
- (let* ((ai (car addresses))
- (s (with-fluids ((%default-port-encoding #f))
- ;; Restrict ourselves to TCP.
- (socket (addrinfo:fam ai) SOCK_STREAM IPPROTO_IP))))
- (catch 'system-error
- (lambda ()
- (connect s (addrinfo:addr ai))
-
- ;; Buffer input and output on this port.
- (setvbuf s _IOFBF %http-receive-buffer-size)
-
- (if (eq? 'https (uri-scheme uri))
- (tls-wrap s (uri-host uri))
- s))
- (lambda args
- ;; Connection failed, so try one of the other addresses.
- (close s)
- (if (null? (cdr addresses))
- (apply throw args)
- (loop (cdr addresses))))))))
+ "Like 'open-socket-for-uri', but also handle HTTPS connections."
+ (define https?
+ (eq? 'https (uri-scheme uri)))
+
+ (let-syntax ((with-https-proxy
+ (syntax-rules ()
+ ((_ exp)
+ ;; For HTTPS URIs, honor 'https_proxy', not 'http_proxy'.
+ ;; FIXME: Proxying is not supported for https.
+ (let ((thunk (lambda () exp)))
+ (if (and https?
+ (module-variable
+ (resolve-interface '(web client))
+ 'current-http-proxy))
+ (parameterize ((current-http-proxy #f))
+ (when (getenv "https_proxy")
+ (format (current-error-port)
+ "warning: 'https_proxy' is ignored~%"))
+ (thunk))
+ (thunk)))))))
+ (with-https-proxy
+ (let ((s (open-socket-for-uri uri)))
+ (if https?
+ (tls-wrap s (uri-host uri))
+ s)))))
;; XXX: This is an awful hack to make sure the (set-port-encoding! p
;; "ISO-8859-1") call in `read-response' passes, even during bootstrap
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 7737e39b2d..1056caa70a 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -692,7 +692,7 @@ HASH-ALGO, of the derivation NAME. RECURSIVE? has the same meaning as for
(inputs '()) (outputs '("out"))
hash hash-algo recursive?
references-graphs allowed-references
- local-build?)
+ leaked-env-vars local-build?)
"Build a derivation with the given arguments, and return the resulting
<derivation> object. When HASH and HASH-ALGO are given, a
fixed-output derivation is created---i.e., one whose result is known in
@@ -707,6 +707,12 @@ the build environment in the corresponding file, in a simple text format.
When ALLOWED-REFERENCES is true, it must be a list of store items or outputs
that the derivation's output may refer to.
+When LEAKED-ENV-VARS is true, it must be a list of strings denoting
+environment variables that are allowed to \"leak\" from the daemon's
+environment to the build environment. This is only applicable to fixed-output
+derivations--i.e., when HASH is true. The main use is to allow variables such
+as \"http_proxy\" to be passed to derivations that download files.
+
When LOCAL-BUILD? is true, declare that the derivation is not a good candidate
for offloading and should rather be built locally. This is the case for small
derivations where the costs of data transfers would outweigh the benefits."
@@ -751,6 +757,10 @@ derivations where the costs of data transfers would outweigh the benefits."
`(("allowedReferences"
. ,(string-join allowed-references)))
'())
+ ,@(if leaked-env-vars
+ `(("impureEnvVars"
+ . ,(string-join leaked-env-vars)))
+ '())
,@env-vars)))
(match references-graphs
(((file . path) ...)
diff --git a/guix/download.scm b/guix/download.scm
index 3e4024fe1f..6b0349402a 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -271,6 +271,9 @@ in the store."
(guix build utils)
(guix ftp-client))
+ ;; Honor the user's proxy settings.
+ #:leaked-env-vars '("http_proxy" "https_proxy")
+
;; In general, offloading downloads is not a good idea.
;;#:local-build? #t
;; FIXME: The above would also disable use of
diff --git a/guix/gexp.scm b/guix/gexp.scm
index a2da72e76c..b08a361232 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -282,6 +282,7 @@ names and file names suitable for the #:allowed-references argument to
(graft? (%graft?))
references-graphs
allowed-references
+ leaked-env-vars
local-build?)
"Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a
derivation) on SYSTEM. When TARGET is true, it is used as the
@@ -400,6 +401,7 @@ The other arguments are as for 'derivation'."
#:hash hash #:hash-algo hash-algo #:recursive? recursive?
#:references-graphs (and=> graphs graphs-file-names)
#:allowed-references allowed
+ #:leaked-env-vars leaked-env-vars
#:local-build? local-build?))))
(define* (gexp-inputs exp #:key native?)
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index adf94a7ac3..b9983c5b9c 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -467,6 +467,7 @@ to read the response body. Return the list of results."
;; case we have to try again. Check whether that is the case.
(match (assq 'connection (response-headers resp))
(('connection 'close)
+ (close-port p)
(connect requests result)) ;try again
(_
(loop tail ;keep going
diff --git a/guix/serialization.scm b/guix/serialization.scm
index a99f53ee0b..51d7ef76c6 100644
--- a/guix/serialization.scm
+++ b/guix/serialization.scm
@@ -140,10 +140,9 @@ substitute invalid byte sequences with question marks. This is a
;; not very efficient. Eventually Guile may provide a lightweight
;; permissive UTF-8 decoder.
(let* ((bv (read-byte-string p))
- (port (with-fluids ((%default-port-encoding "UTF-8")
- (%default-port-conversion-strategy
- 'substitute))
- (open-bytevector-input-port bv))))
+ (port (open-bytevector-input-port bv)))
+ (set-port-encoding! port "UTF-8")
+ (set-port-conversion-strategy! port 'substitute)
(get-string-all port)))
(define (write-string-list l p)