Merge branch 'master' into core-updates

master
Ludovic Courtès 2015-05-01 15:03:30 +02:00
commit bf4af30bb2
25 changed files with 773 additions and 285 deletions

View File

@ -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>

1
THANKS
View File

@ -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>

View File

@ -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}

View File

@ -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 \

View File

@ -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)))

View File

@ -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")

View File

@ -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)))

View File

@ -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)))

View File

@ -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+)))

View File

@ -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)))))

View File

@ -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

View File

@ -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

View File

@ -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")))))))

View File

@ -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)))

View File

@ -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

View File

@ -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) \

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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.
"Like 'open-socket-for-uri', but also handle HTTPS connections."
(define https?
(eq? 'https (uri-scheme 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))))))))
(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

View File

@ -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) ...)

View File

@ -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

View File

@ -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?)

View File

@ -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

View File

@ -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)