aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-12-09 18:11:14 +0100
committerLudovic Courtès <ludo@gnu.org>2016-12-09 18:11:14 +0100
commitf80b4d2ce09b0b7770cbdf2f90704d41b0a168c5 (patch)
treeec47c7ee5d5579cfa00f13b5038ff3d8c87e4a48 /gnu
parent13b5f44b475aa385d580f7e19b907210bc1d6d99 (diff)
parent2608e40988ba8cf51723fe0d21bdedf6b3997c9c (diff)
downloadguix-f80b4d2ce09b0b7770cbdf2f90704d41b0a168c5.tar
guix-f80b4d2ce09b0b7770cbdf2f90704d41b0a168c5.tar.gz
Merge remote-tracking branch 'origin/master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/cross-toolchain.scm178
-rw-r--r--gnu/local.mk9
-rw-r--r--gnu/packages/admin.scm7
-rw-r--r--gnu/packages/aspell.scm9
-rw-r--r--gnu/packages/base.scm13
-rw-r--r--gnu/packages/bioinformatics.scm4
-rw-r--r--gnu/packages/bittorrent.scm35
-rw-r--r--gnu/packages/cross-base.scm292
-rw-r--r--gnu/packages/dav.scm8
-rw-r--r--gnu/packages/emacs.scm38
-rw-r--r--gnu/packages/enlightenment.scm8
-rw-r--r--gnu/packages/gnome.scm36
-rw-r--r--gnu/packages/guile.scm13
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/irc.scm93
-rw-r--r--gnu/packages/libreoffice.scm12
-rw-r--r--gnu/packages/libunistring.scm6
-rw-r--r--gnu/packages/links.scm4
-rw-r--r--gnu/packages/linux.scm48
-rw-r--r--gnu/packages/lua.scm36
-rw-r--r--gnu/packages/mail.scm16
-rw-r--r--gnu/packages/make-bootstrap.scm67
-rw-r--r--gnu/packages/mingw.scm84
-rw-r--r--gnu/packages/mtools.scm4
-rw-r--r--gnu/packages/multiprecision.scm9
-rw-r--r--gnu/packages/music.scm78
-rw-r--r--gnu/packages/ncurses.scm231
-rw-r--r--gnu/packages/onc-rpc.scm8
-rw-r--r--gnu/packages/package-management.scm6
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch11
-rw-r--r--gnu/packages/patches/httpd-CVE-2016-8740.patch36
-rw-r--r--gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch218
-rw-r--r--gnu/packages/patches/readline-7.0-mingw.patch28
-rw-r--r--gnu/packages/patches/seq24-rename-mutex.patch124
-rw-r--r--gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch31
-rw-r--r--gnu/packages/php.scm4
-rw-r--r--gnu/packages/python.scm93
-rw-r--r--gnu/packages/qt.scm40
-rw-r--r--gnu/packages/readline.scm14
-rw-r--r--gnu/packages/ruby.scm3
-rw-r--r--gnu/packages/samba.scm10
-rw-r--r--gnu/packages/shells.scm10
-rw-r--r--gnu/packages/terminals.scm31
-rw-r--r--gnu/packages/text-editors.scm77
-rw-r--r--gnu/packages/tor.scm4
-rw-r--r--gnu/packages/version-control.scm7
-rw-r--r--gnu/packages/video.scm41
-rw-r--r--gnu/packages/vim.scm4
-rw-r--r--gnu/packages/web.scm4
-rw-r--r--gnu/packages/wm.scm40
-rw-r--r--gnu/packages/xorg.scm5
-rw-r--r--gnu/services/base.scm22
-rw-r--r--gnu/services/networking.scm3
54 files changed, 1739 insertions, 481 deletions
diff --git a/gnu/build/cross-toolchain.scm b/gnu/build/cross-toolchain.scm
new file mode 100644
index 0000000000..450443ca63
--- /dev/null
+++ b/gnu/build/cross-toolchain.scm
@@ -0,0 +1,178 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
+;;;
+;;; 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 build cross-toolchain)
+ #:use-module (guix build utils)
+ #:use-module (guix build gnu-build-system)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 ftw)
+ #:export (cross-gcc-build-phases))
+
+;;; Commentary:
+;;;
+;;; This module provides tools to build a cross-compiler.
+;;;
+;;; Code:
+
+(define %gcc-include-paths
+ ;; Environment variables for header search paths.
+ ;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
+ '("C_INCLUDE_PATH"
+ "CPLUS_INCLUDE_PATH"
+ "OBJC_INCLUDE_PATH"
+ "OBJCPLUS_INCLUDE_PATH"))
+
+(define %gcc-cross-include-paths
+ ;; Search path for target headers when cross-compiling.
+ (map (cut string-append "CROSS_" <>) %gcc-include-paths))
+
+(define* (make-cross-binutils-visible #:key outputs inputs target
+ #:allow-other-keys)
+ "Create symlinks for 'as', 'nm', and 'ld' in the \"out\" output, under
+libexec/gcc, so that the cross-GCC can find them."
+ (let* ((out (assoc-ref outputs "out"))
+ (libexec (string-append out "/libexec/gcc/" target))
+ (binutils (string-append (assoc-ref inputs "binutils-cross")
+ "/bin/" target "-"))
+ (wrapper (string-append (assoc-ref inputs "ld-wrapper-cross")
+ "/bin/" target "-ld")))
+ (for-each (lambda (file)
+ (symlink (string-append binutils file)
+ (string-append libexec "/" file)))
+ '("as" "nm"))
+ (symlink wrapper (string-append libexec "/ld"))
+ #t))
+
+(define* (set-cross-path #:key inputs #:allow-other-keys)
+ "Add the cross kernel headers to CROSS_CPATH, and remove them from
+C_INCLUDE_PATH et al."
+ (match (assoc-ref inputs "libc")
+ ((? string? libc)
+ (let ((kernel (assoc-ref inputs "xkernel-headers")))
+ (define (cross? x)
+ ;; Return #t if X is a cross-libc or cross Linux.
+ (or (string-prefix? libc x)
+ (string-prefix? kernel x)))
+
+ (let ((cpath (string-append libc "/include"
+ ":" kernel "/include")))
+ (for-each (cut setenv <> cpath)
+ %gcc-cross-include-paths))
+
+ (setenv "CROSS_LIBRARY_PATH"
+ (string-append libc "/lib:" kernel "/lib")) ;for Hurd's libihash
+
+ (for-each (lambda (var)
+ (and=> (getenv var)
+ (lambda (value)
+ (let* ((path (search-path-as-string->list value))
+ (native-path (list->search-path-as-string
+ (remove cross? path) ":")))
+ (setenv var native-path)))))
+ (cons "LIBRARY_PATH" %gcc-include-paths))
+ #t))
+ (#f
+ ;; We're building the sans-libc cross-compiler, so nothing to do.
+ #t)))
+
+(define* (set-cross-path/mingw #:key inputs #:allow-other-keys)
+ "Add the cross MinGW headers to CROSS_C_*_INCLUDE_PATH, and remove them from
+C_*INCLUDE_PATH."
+ (let ((libc (assoc-ref inputs "libc"))
+ (gcc (assoc-ref inputs "gcc")))
+ (define (cross? x)
+ (and libc (string-prefix? libc x)))
+
+ (define (unpacked-mingw-dir)
+ (match (scandir "." (lambda (name)
+ (string-contains name "mingw-w64")))
+ ((mingw-dir)
+ (string-append
+ (getcwd) "/" mingw-dir "/mingw-w64-headers"))))
+
+ (if libc
+ (let ((cpath (string-append libc "/include"
+ ":" libc "/i686-w64-mingw32/include")))
+ (for-each (cut setenv <> cpath)
+ %gcc-cross-include-paths))
+
+ ;; libc is false, so we are building xgcc-sans-libc.
+ ;; Add essential headers from mingw-w64.
+ (let ((mingw-source (assoc-ref inputs "mingw-source")))
+ (system* "tar" "xvf" mingw-source)
+ (let ((mingw-headers (unpacked-mingw-dir)))
+ ;; We need _mingw.h which will gets built from _mingw.h.in by
+ ;; mingw-w64's configure. We cannot configure mingw-w64 until we
+ ;; have xgcc-sans-libc; substitute to the rescue.
+ (copy-file (string-append mingw-headers "/crt/_mingw.h.in")
+ (string-append mingw-headers "/crt/_mingw.h"))
+
+ (substitute* (string-append mingw-headers "/crt/_mingw.h")
+ (("@MINGW_HAS_SECURE_API@")
+ "#define MINGW_HAS_SECURE_API 1"))
+
+ (let ((cpath (string-append mingw-headers "/include"
+ ":" mingw-headers "/crt"
+ ":" mingw-headers
+ "/defaults/include")))
+ (for-each (cut setenv <> cpath)
+ (cons "CROSS_LIBRARY_PATH"
+ %gcc-cross-include-paths))))))
+
+ (when libc
+ (setenv "CROSS_LIBRARY_PATH"
+ (string-append libc "/lib"
+ ":" libc "/i686-w64-mingw32/lib")))
+
+ (setenv "CPP" (string-append gcc "/bin/cpp"))
+ (for-each (lambda (var)
+ (and=> (getenv var)
+ (lambda (value)
+ (let* ((path (search-path-as-string->list
+ value))
+ (native-path (list->search-path-as-string
+ (remove cross? path) ":")))
+ (setenv var native-path)))))
+ (cons "LIBRARY_PATH" %gcc-include-paths))
+ #t))
+
+(define (install-strip . _)
+ "Install a stripped GCC."
+ ;; Unlike our 'strip' phase, this will do the right thing for
+ ;; cross-compilers.
+ (zero? (system* "make" "install-strip")))
+
+(define* (cross-gcc-build-phases target
+ #:optional (phases %standard-phases))
+ "Modify PHASES to include everything needed to build a cross-GCC for TARGET,
+a target triplet."
+ (modify-phases phases
+ (add-before 'configure 'set-cross-path
+ (if (string-contains target "mingw")
+ set-cross-path/mingw
+ set-cross-path))
+ (add-after 'install 'make-cross-binutils-visible
+ (cut make-cross-binutils-visible #:target target <...>))
+ (replace 'install install-strip)))
+
+;;; cross-toolchain.scm ends here
diff --git a/gnu/local.mk b/gnu/local.mk
index 9b78e0a742..f8202e2e72 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -248,6 +248,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/mc.scm \
%D%/packages/mcrypt.scm \
%D%/packages/messaging.scm \
+ %D%/packages/mingw.scm \
%D%/packages/mg.scm \
%D%/packages/microcom.scm \
%D%/packages/mit-krb5.scm \
@@ -358,6 +359,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/texinfo.scm \
%D%/packages/tex.scm \
%D%/packages/textutils.scm \
+ %D%/packages/text-editors.scm \
%D%/packages/time.scm \
%D%/packages/tls.scm \
%D%/packages/tmux.scm \
@@ -435,6 +437,7 @@ GNU_SYSTEM_MODULES = \
%D%/system/vm.scm \
\
%D%/build/activation.scm \
+ %D%/build/cross-toolchain.scm \
%D%/build/file-systems.scm \
%D%/build/install.scm \
%D%/build/linux-boot.scm \
@@ -554,6 +557,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-cross-environment-variables.patch \
%D%/packages/patches/gcc-libvtv-runpath.patch \
%D%/packages/patches/gcc-strmov-store-file-names.patch \
+ %D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch \
%D%/packages/patches/gcc-5.0-libvtv-runpath.patch \
%D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \
%D%/packages/patches/gcc-6-cross-environment-variables.patch \
@@ -620,6 +624,7 @@ dist_patch_DATA = \
%D%/packages/patches/hdf-eos5-fortrantests.patch \
%D%/packages/patches/higan-remove-march-native-flag.patch \
%D%/packages/patches/hop-linker-flags.patch \
+ %D%/packages/patches/httpd-CVE-2016-8740.patch \
%D%/packages/patches/hydra-disable-darcs-test.patch \
%D%/packages/patches/hypre-doc-tables.patch \
%D%/packages/patches/hypre-ldflags.patch \
@@ -715,6 +720,7 @@ dist_patch_DATA = \
%D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \
%D%/packages/patches/metabat-remove-compilation-date.patch \
%D%/packages/patches/mhash-keygen-test-segfault.patch \
+ %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/mplayer2-theora-fix.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
@@ -822,6 +828,7 @@ dist_patch_DATA = \
%D%/packages/patches/ratpoison-shell.patch \
%D%/packages/patches/readline-link-ncurses.patch \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
+ %D%/packages/patches/readline-7.0-mingw.patch \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpm-CVE-2014-8118.patch \
%D%/packages/patches/rsem-makefile.patch \
@@ -834,6 +841,7 @@ dist_patch_DATA = \
%D%/packages/patches/scheme48-tests.patch \
%D%/packages/patches/scotch-test-threading.patch \
%D%/packages/patches/sdl-libx11-1.6.patch \
+ %D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/serf-comment-style-fix.patch \
%D%/packages/patches/serf-deflate-buckets-test-fix.patch \
%D%/packages/patches/slim-session.patch \
@@ -857,6 +865,7 @@ dist_patch_DATA = \
%D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-do-not-define-BSDWAIT.patch \
%D%/packages/patches/tcsh-fix-autotest.patch \
+ %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \
%D%/packages/patches/teensy-loader-cli-help.patch \
%D%/packages/patches/texi2html-document-encoding.patch \
%D%/packages/patches/texi2html-i18n.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index f1c283c7c2..2079bf9e0f 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -141,14 +141,14 @@ and provides a \"top-like\" mode (monitoring).")
(define-public shepherd
(package
(name "shepherd")
- (version "0.3.1")
+ (version "0.3.2")
(source (origin
(method url-fetch)
(uri (string-append "ftp://alpha.gnu.org/gnu/dmd/shepherd-"
version ".tar.gz"))
(sha256
(base32
- "0f3yi3n4sl9myiay95yhv2a9an338qddfjrbv7da753ip66dkfz6"))))
+ "174q1qg7yg6w1hfvlfv720hr6hid4h5xzw15y3ycfpspllzldhcb"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--localstatedir=/var")))
@@ -161,7 +161,8 @@ the execution of system services, replacing similar functionality found in
typical init systems. It provides dependency-handling through a convenient
interface and is based on GNU Guile.")
(license license:gpl3+)
- (home-page "http://www.gnu.org/software/shepherd/")))
+ (home-page "https://www.gnu.org/software/shepherd/")
+ (properties '((ftp-server . "alpha.gnu.org")))))
(define-public dfc
(package
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index 04a9197839..f39205714c 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -163,3 +164,11 @@ dictionaries, including personal ones.")
#:sha256
(base32
"13bhbghx5b8g0119g3wxd4n8mlf707y41vlf59irxjj0kynankfn")))
+
+(define-public aspell-dict-sv
+ (aspell-dictionary "sv" "Swedish"
+ #:version "0.51-0"
+ #:prefix "aspell-"
+ #:sha256
+ (base32
+ "02jwkjhr32kvyibnyzgx3smbnm576jwdzg3avdf6zxwckhy5fw4v")))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 2dd17a9ebb..c2430f656f 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -46,7 +46,8 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (ice-9 match)
- #:export (glibc))
+ #:export (glibc
+ libiconv-if-needed))
;;; Commentary:
;;;
@@ -1032,6 +1033,16 @@ program. It supports a wide variety of different encodings.")
(home-page "http://www.gnu.org/software/libiconv/")
(license lgpl3+)))
+(define* (libiconv-if-needed #:optional (target (%current-target-system)))
+ "Return either a libiconv package specification to include in a dependency
+list for platforms that have an incomplete libc, or the empty list. If a
+package needs iconv ,@(libiconv-if-needed) should be added."
+ ;; POSIX C libraries provide iconv. Platforms with an incomplete libc
+ ;; without iconv, such as MinGW, must return the then clause.
+ (if (target-mingw? target)
+ `(("libiconv" ,libiconv))
+ '()))
+
(define-public (canonical-package package)
;; Avoid circular dependency by lazily resolving 'commencement'.
(let* ((iface (resolve-interface '(gnu packages commencement)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 4fac8e16c0..625935dfd7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5629,7 +5629,7 @@ track. The database is exposed as a @code{TxDb} object.")
(define-public vsearch
(package
(name "vsearch")
- (version "2.3.0")
+ (version "2.3.3")
(source
(origin
(method url-fetch)
@@ -5639,7 +5639,7 @@ track. The database is exposed as a @code{TxDb} object.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1r8fk3whkil348y5hfsd4r56qjmchhq4nxm6s7ra5rlisw0mf9fy"))
+ "1d3670apjy15c9l40fpq71lifxga6j9z2gisdirycwk18s4mvcp2"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 4d2fd99744..76c48353bd 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
+;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -257,7 +258,6 @@ download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
(license l:gpl2+)))
-
(define-public uget
(package
(name "uget")
@@ -292,3 +292,36 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection
downloads, download scheduling, download rate limiting.")
(license l:lgpl2.1+)))
+
+(define-public mktorrent
+ (package
+ (name "mktorrent")
+ (version "1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/mktorrent/mktorrent/"
+ version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17qi3nfky240pq6qcmf5qg324mxm83vk9r3nvsdhsvinyqm5d3kg"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (delete 'configure)) ; no configure script
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ "NO_HASH_CHECK=1"
+ "USE_LARGE_FILES=1"
+ "USE_LONG_OPTIONS=1"
+ "USE_PTHREADS=1")
+ #:tests? #f)) ; no tests
+ (home-page "http://mktorrent.sourceforge.net/")
+ (synopsis "Utility to create BitTorrent metainfo files")
+ (description "mktorrent is a simple command-line utility to create
+BitTorrent @dfn{metainfo} files, often known simply as @dfn{torrents}, from
+both single files and whole directories. It can add multiple trackers and web
+seed URLs, and set the @code{private} flag to disallow advertisement through
+the distributed hash table (DHT) and Peer Exchange. Hashing is multi-threaded
+and will take advantage of multiple processor cores where possible.")
+ (license (list l:public-domain ; sha1.*, used to build without OpenSSL
+ l:gpl2+)))) ; with permission to link with OpenSSL
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index e6553dcd34..763bbf50e2 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -20,12 +20,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cross-base)
- #:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (gnu packages gcc)
#:use-module (gnu packages base)
#:use-module (gnu packages linux)
#:use-module (gnu packages hurd)
+ #:use-module (gnu packages mingw)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
@@ -37,13 +37,26 @@
#:use-module (ice-9 regex)
#:export (cross-binutils
cross-libc
- cross-gcc))
+ cross-gcc
+ cross-newlib?))
(define %xgcc
;; GCC package used as the basis for cross-compilation. It doesn't have to
;; be 'gcc' and can be a specific variant such as 'gcc-4.8'.
gcc)
+(define %gcc-include-paths
+ ;; Environment variables for header search paths.
+ ;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
+ '("C_INCLUDE_PATH"
+ "CPLUS_INCLUDE_PATH"
+ "OBJC_INCLUDE_PATH"
+ "OBJCPLUS_INCLUDE_PATH"))
+
+(define %gcc-cross-include-paths
+ ;; Search path for target headers when cross-compiling.
+ (map (cut string-append "CROSS_" <>) %gcc-include-paths))
+
(define (cross p target)
(package (inherit p)
(name (string-append (package-name p) "-cross-" target))
@@ -104,7 +117,7 @@ may be either a libc package or #f.)"
`(append (list ,(string-append "--target=" target)
,@(if libc
`( ;; Disable libcilkrts because it is not
- ;; ported to GNU/Hurd.
+ ;; ported to GNU/Hurd.
"--disable-libcilkrts")
`( ;; Disable features not needed at this stage.
"--disable-shared" "--enable-static"
@@ -131,7 +144,12 @@ may be either a libc package or #f.)"
"--disable-libitm"
"--disable-libvtv"
"--disable-libsanitizer"
- )))
+ ))
+
+ ;; For a newlib (non-glibc) target
+ ,@(if (cross-newlib? target)
+ '("--with-newlib")
+ '()))
,(if libc
flags
@@ -146,80 +164,24 @@ may be either a libc package or #f.)"
,flags))
flags))
((#:phases phases)
- (let ((phases
- `(alist-cons-after
- 'install 'make-cross-binutils-visible
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (libexec (string-append out "/libexec/gcc/"
- ,target))
- (binutils (string-append
- (assoc-ref inputs "binutils-cross")
- "/bin/" ,target "-"))
- (wrapper (string-append
- (assoc-ref inputs "ld-wrapper-cross")
- "/bin/" ,target "-ld")))
- (for-each (lambda (file)
- (symlink (string-append binutils file)
- (string-append libexec "/"
- file)))
- '("as" "nm"))
- (symlink wrapper (string-append libexec "/ld"))
- #t))
- (alist-replace
- 'install
- (lambda _
- ;; Unlike our 'strip' phase, this will do the right thing
- ;; for cross-compilers.
- (zero? (system* "make" "install-strip")))
- ,phases))))
- (if libc
- `(alist-cons-before
- 'configure 'set-cross-path
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Add the cross kernel headers to CROSS_CPATH, and remove them
- ;; from CPATH.
- (let ((libc (assoc-ref inputs "libc"))
- (kernel (assoc-ref inputs "xkernel-headers")))
- (define (cross? x)
- ;; Return #t if X is a cross-libc or cross Linux.
- (or (string-prefix? libc x)
- (string-prefix? kernel x)))
- (let ((cpath (string-append
- libc "/include"
- ":" kernel "/include")))
- (for-each (cut setenv <> cpath)
- '("CROSS_C_INCLUDE_PATH"
- "CROSS_CPLUS_INCLUDE_PATH"
- "CROSS_OBJC_INCLUDE_PATH"
- "CROSS_OBJCPLUS_INCLUDE_PATH")))
- (setenv "CROSS_LIBRARY_PATH"
- (string-append libc "/lib:"
- kernel "/lib")) ;for Hurd's libihash
- (for-each
- (lambda (var)
- (and=> (getenv var)
- (lambda (value)
- (let* ((path (search-path-as-string->list value))
- (native-path (list->search-path-as-string
- (remove cross? path) ":")))
- (setenv var native-path)))))
- '("C_INCLUDE_PATH"
- "CPLUS_INCLUDE_PATH"
- "OBJC_INCLUDE_PATH"
- "OBJCPLUS_INCLUDE_PATH"
- "LIBRARY_PATH"))
- #t))
- ,phases)
- phases)))))))
+ `(cross-gcc-build-phases ,target ,phases))))))
(define (cross-gcc-patches target)
"Return GCC patches needed for TARGET."
(cond ((string-prefix? "xtensa-" target)
;; Patch by Qualcomm needed to build the ath9k-htc firmware.
(search-patches "ath9k-htc-firmware-gcc.patch"))
+ ((target-mingw? target)
+ (search-patches "gcc-4.9.3-mingw-gthr-default.patch"))
(else '())))
+(define (cross-gcc-snippet target)
+ "Return GCC snippet needed for TARGET."
+ (cond ((target-mingw? target)
+ '(copy-recursively "libstdc++-v3/config/os/mingw32-w64"
+ "libstdc++-v3/config/os/newlib"))
+ (else #f)))
+
(define* (cross-gcc target
#:optional (xbinutils (cross-binutils target)) libc)
"Return a cross-compiler for TARGET, where TARGET is a GNU triplet. Use
@@ -234,7 +196,10 @@ GCC that does not target a libc; otherwise, target that libc."
(append
(origin-patches (package-source %xgcc))
(cons (search-patch "gcc-cross-environment-variables.patch")
- (cross-gcc-patches target))))))
+ (cross-gcc-patches target))))
+ (modules '((guix build utils)))
+ (snippet
+ (cross-gcc-snippet target))))
;; For simplicity, use a single output. Otherwise libgcc_s & co. are not
;; found by default, etc.
@@ -242,11 +207,14 @@ GCC that does not target a libc; otherwise, target that libc."
(arguments
`(#:implicit-inputs? #f
+ #:imported-modules ((gnu build cross-toolchain)
+ ,@%gnu-build-system-modules)
#:modules ((guix build gnu-build-system)
(guix build utils)
- (ice-9 regex)
+ (gnu build cross-toolchain)
(srfi srfi-1)
- (srfi srfi-26))
+ (srfi srfi-26)
+ (ice-9 regex))
,@(cross-gcc-arguments target libc)))
@@ -264,34 +232,32 @@ GCC that does not target a libc; otherwise, target that libc."
;; Remaining inputs.
,@(let ((inputs (append (package-inputs %xgcc)
(alist-delete "libc" (%final-inputs)))))
- (if libc
- `(("libc" ,libc)
- ("xkernel-headers" ;the target headers
- ,@(assoc-ref (package-propagated-inputs libc)
- "kernel-headers"))
- ,@inputs)
- inputs))))
+ (cond
+ ((target-mingw? target)
+ (if libc
+ `(("libc" ,mingw-w64)
+ ,@inputs)
+ `(("mingw-source" ,(package-source mingw-w64))
+ ,@inputs)))
+ (libc
+ `(("libc" ,libc)
+ ("xkernel-headers" ;the target headers
+ ,@(assoc-ref (package-propagated-inputs libc)
+ "kernel-headers"))
+ ,@inputs))
+ (else inputs)))))
(inputs '())
;; Only search target inputs, not host inputs.
- ;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
- (search-paths
- (list (search-path-specification
- (variable "CROSS_C_INCLUDE_PATH")
- (files '("include")))
- (search-path-specification
- (variable "CROSS_CPLUS_INCLUDE_PATH")
- (files '("include")))
- (search-path-specification
- (variable "CROSS_OBJC_INCLUDE_PATH")
- (files '("include")))
- (search-path-specification
- (variable "CROSS_OBJCPLUS_INCLUDE_PATH")
- (files '("include")))
- (search-path-specification
- (variable "CROSS_LIBRARY_PATH")
- (files '("lib" "lib64")))))
+ (search-paths (cons (search-path-specification
+ (variable "CROSS_LIBRARY_PATH")
+ (files '("lib" "lib64")))
+ (map (lambda (variable)
+ (search-path-specification
+ (variable variable)
+ (files '("include"))))
+ %gcc-cross-include-paths)))
(native-search-paths '())))
(define* (cross-kernel-headers target
@@ -344,10 +310,7 @@ GCC that does not target a libc; otherwise, target that libc."
(let* ((mach (assoc-ref inputs "cross-gnumach-headers"))
(cpath (string-append mach "/include")))
(for-each (cut setenv <> cpath)
- '("CROSS_C_INCLUDE_PATH"
- "CROSS_CPLUS_INCLUDE_PATH"
- "CROSS_OBJC_INCLUDE_PATH"
- "CROSS_OBJCPLUS_INCLUDE_PATH"))))
+ ',%gcc-cross-include-paths)))
%standard-phases)
#:configure-flags (list ,(string-append "--target=" target))
,@(package-arguments mig)))
@@ -362,7 +325,6 @@ GCC that does not target a libc; otherwise, target that libc."
(name (string-append (package-name hurd-headers)
"-cross-" target))
- (propagated-inputs `(("cross-mig" ,xmig)))
(native-inputs `(("cross-gcc" ,xgcc)
("cross-binutils" ,xbinutils)
("cross-mig" ,xmig)
@@ -388,10 +350,7 @@ GCC that does not target a libc; otherwise, target that libc."
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
- '("CROSS_C_INCLUDE_PATH"
- "CROSS_CPLUS_INCLUDE_PATH"
- "CROSS_OBJC_INCLUDE_PATH"
- "CROSS_OBJCPLUS_INCLUDE_PATH"))))
+ ',%gcc-cross-include-paths)))
,phases))))
(propagated-inputs `(("gnumach-headers" ,xgnumach-headers)
@@ -419,10 +378,7 @@ GCC that does not target a libc; otherwise, target that libc."
(let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers"))
(cpath (string-append glibc-headers "/include")))
(for-each (cut setenv <> cpath)
- '("CROSS_C_INCLUDE_PATH"
- "CROSS_CPLUS_INCLUDE_PATH"
- "CROSS_OBJC_INCLUDE_PATH"
- "CROSS_OBJCPLUS_INCLUDE_PATH"))))
+ ',%gcc-cross-include-paths)))
,phases))))
(inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers)))
@@ -464,61 +420,69 @@ XBINUTILS and the cross tool chain."
(_ glibc/linux)))
;; Use (cross-libc-for-target ...) to determine the correct libc to use.
- (let ((libc (cross-libc-for-target target)))
- (package (inherit libc)
- (name (string-append "glibc-cross-" target))
- (arguments
- (substitute-keyword-arguments
- `(;; Disable stripping (see above.)
- #:strip-binaries? #f
-
- ;; This package is used as a target input, but it should not have
- ;; the usual cross-compilation inputs since that would include
- ;; itself.
- #:implicit-cross-inputs? #f
-
- ;; We need SRFI 26.
- #:modules ((guix build gnu-build-system)
- (guix build utils)
- (srfi srfi-26))
- ,@(package-arguments libc))
- ((#:configure-flags flags)
- `(cons ,(string-append "--host=" target)
- ,flags))
- ((#:phases phases)
- `(alist-cons-before
- 'configure 'set-cross-kernel-headers-path
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((kernel (assoc-ref inputs "kernel-headers"))
- (cpath (string-append kernel "/include")))
- (for-each (cut setenv <> cpath)
- '("CROSS_C_INCLUDE_PATH"
- "CROSS_CPLUS_INCLUDE_PATH"
- "CROSS_OBJC_INCLUDE_PATH"
- "CROSS_OBJCPLUS_INCLUDE_PATH"))
- (setenv "CROSS_LIBRARY_PATH"
- (string-append kernel "/lib")) ;for Hurd's libihash
- #t))
- ,phases))))
-
- ;; Shadow the native "kernel-headers" because glibc's recipe expects the
- ;; "kernel-headers" input to point to the right thing.
- (propagated-inputs `(("kernel-headers" ,xheaders)))
-
- ;; FIXME: 'static-bash' should really be an input, not a native input, but
- ;; to do that will require building an intermediate cross libc.
- (inputs '())
-
- (native-inputs `(("cross-gcc" ,xgcc)
- ("cross-binutils" ,xbinutils)
- ,@(if (string-match (or "i586-pc-gnu" "i586-gnu") target)
- `(("cross-mig"
- ,@(assoc-ref (package-native-inputs xheaders)
- "cross-mig")))
- '())
- ,@(package-inputs libc) ;FIXME: static-bash
- ,@(package-native-inputs libc))))))
+ (if (cross-newlib? target)
+ (native-libc target)
+ (let ((libc (cross-libc-for-target target)))
+ (package (inherit libc)
+ (name (string-append "glibc-cross-" target))
+ (arguments
+ (substitute-keyword-arguments
+ `(;; Disable stripping (see above.)
+ #:strip-binaries? #f
+
+ ;; This package is used as a target input, but it should not have
+ ;; the usual cross-compilation inputs since that would include
+ ;; itself.
+ #:implicit-cross-inputs? #f
+
+ ;; We need SRFI 26.
+ #:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-26))
+
+ ,@(package-arguments libc))
+ ((#:configure-flags flags)
+ `(cons ,(string-append "--host=" target)
+ ,flags))
+ ((#:phases phases)
+ `(alist-cons-before
+ 'configure 'set-cross-kernel-headers-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((kernel (assoc-ref inputs "kernel-headers"))
+ (cpath (string-append kernel "/include")))
+ (for-each (cut setenv <> cpath)
+ ',%gcc-cross-include-paths)
+ (setenv "CROSS_LIBRARY_PATH"
+ (string-append kernel "/lib")) ;for Hurd's libihash
+ #t))
+ ,phases))))
+
+ ;; Shadow the native "kernel-headers" because glibc's recipe expects the
+ ;; "kernel-headers" input to point to the right thing.
+ (propagated-inputs `(("kernel-headers" ,xheaders)))
+
+ ;; FIXME: 'static-bash' should really be an input, not a native input, but
+ ;; to do that will require building an intermediate cross libc.
+ (inputs '())
+
+ (native-inputs `(("cross-gcc" ,xgcc)
+ ("cross-binutils" ,xbinutils)
+ ,@(if (string-match (or "i586-pc-gnu" "i586-gnu") target)
+ `(("cross-mig"
+ ,@(assoc-ref (package-native-inputs xheaders)
+ "cross-mig")))
+ '())
+ ,@(package-inputs libc) ;FIXME: static-bash
+ ,@(package-native-inputs libc)))))))
+
+(define (native-libc target)
+ (if (target-mingw? target)
+ mingw-w64
+ glibc))
+
+(define (cross-newlib? target)
+ (not (eq? (native-libc target) glibc)))
;;; Concrete cross tool chains are instantiated like this:
diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm
index a06878dc92..985a2e071e 100644
--- a/gnu/packages/dav.scm
+++ b/gnu/packages/dav.scm
@@ -35,13 +35,7 @@
"1c5lv8qca21mndkx350wxv34qypqh6gb4rhzms4anr642clq3jg2"))))
(build-system python-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (zero? (system* "py.test")))))))
- (native-inputs
- `(("python-pytest" ,python-pytest)))
+ '(#:tests? #f)) ; The tests are not distributed in the PyPi release.
(propagated-inputs
;; TODO: Add python-pam
`(("python-requests" ,python-requests)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 4afe67a7f5..5e6b99ff2f 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -273,7 +273,7 @@ editor (without an X toolkit)" )
"/geiser-" version ".tar.gz"))
(sha256
(base32
- "1n772ysl1dmn0vy3gk230ymyjm14h93zw99y6h2rqp1ixy7v43dm"))))
+ "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-after
@@ -298,36 +298,8 @@ metadata.")
(license license:bsd-3)))
(define-public geiser-next
- ;; Geiser's upcoming version supports Chibi and Chez, while it was forgot to
- ;; include some required files in 0.9. When the next Geiser release comes
- ;; out, we can remove this.
- (let ((commit "16035b9fa475496f7f89a57fa81455057af749a0")
- (revision "1"))
- (package
- (inherit geiser)
- (name "geiser-next")
- (version (string-append "0.9-" revision "." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (file-name (string-append name "-" version ".tar.gz"))
- (uri (git-reference
- (url "git://git.sv.gnu.org/geiser.git")
- (commit commit)))
- (sha256
- (base32
- "1rrafizrhjkai0msryjiz4c5dcdyihf0i2wmgiy8br74rwbxpyl5"))))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("texinfo" ,texinfo)
- ,@(package-native-inputs geiser)))
- (arguments
- (substitute-keyword-arguments (package-arguments geiser)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'autogen
- (lambda _
- (zero? (system* "sh" "autogen.sh")))))))))))
+ ;; This has become "geiser".
+ (deprecated-package "geiser-next" geiser))
(define-public paredit
(package
@@ -1442,7 +1414,7 @@ mode, which displays information about Elasticsearch clusters.")
(define-public emacs-expand-region
(package
(name "emacs-expand-region")
- (version "0.10.0")
+ (version "0.11.0")
(source
(origin
(method url-fetch)
@@ -1451,7 +1423,7 @@ mode, which displays information about Elasticsearch clusters.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1zfiaqyb3zqiyqjkpqsjw660j09805nqsg25q6ars2h8gs0rnvxb"))))
+ "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
(build-system emacs-build-system)
(home-page "https://github.com/magnars/expand-region.el")
(synopsis "Increase selected region by semantic units")
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 6f081cf19b..77814960ee 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -57,7 +57,7 @@
(define-public efl
(package
(name "efl")
- (version "1.18.3")
+ (version "1.18.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -65,7 +65,7 @@
version ".tar.xz"))
(sha256
(base32
- "1h347sfxajyb5s931m9qga14wwiqci7aicww2imxjhzm8w4fqj07"))))
+ "09c0ajszjarcs6d62zlgnf1aha2f921mfr0gxg6nwza36xzc1srr"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -197,7 +197,7 @@ Libraries with some extra bells and whistles.")
(define-public enlightenment
(package
(name "enlightenment")
- (version "0.21.3")
+ (version "0.21.4")
(source (origin
(method url-fetch)
(uri
@@ -205,7 +205,7 @@ Libraries with some extra bells and whistles.")
name "/" name "-" version ".tar.xz"))
(sha256
(base32
- "1ljzcq775njhbcaj8vdnypf2rgc6yqqdwfkf7c22603qvv9if1dr"))))
+ "085zn6vdy904fxa9krx7ljv61yg96b2xk56g0bx2lyq1d33sgl8f"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-mount-eeze")))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6f2a98b5b3..fe38b841ee 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5688,3 +5688,39 @@ only know by its Unicode name or code point.")
with many options to write web sites, scripts and other code.
Bluefish supports many programming and markup languages.")
(license license:gpl3+)))
+
+(define-public gnome-system-monitor
+ (package
+ (name "gnome-system-monitor")
+ (version "3.20.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1ya41b58syf8g5pc12gw1xm6jhdx3crap803bjwm086r7x2an8wv"))))
+ (build-system glib-or-gtk-build-system)
+ (native-inputs
+ `(("glib:bin" ,glib "bin") ; for glib-mkenums.
+ ("intltool" ,intltool)
+ ("itstool" ,itstool)
+ ("libgtop" ,libgtop)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
+ ("gtk+" ,gtk+)
+ ("gtkmm" ,gtkmm)
+ ("librsvg" ,librsvg)
+ ("libxml2" ,libxml2)))
+ (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
+ (synopsis "Process viewer and system resource monitor for GNOME")
+ (description
+ "GNOME System Monitor is a GNOME process viewer and system monitor with
+an attractive, easy-to-use interface. It has features, such as a tree view
+for process dependencies, icons for processes, the ability to hide processes,
+graphical time histories of CPU/memory/swap usage and the ability to
+kill/reinice processes.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 4572544ec3..1c1b35c34b 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -146,8 +146,8 @@ without requiring the source code to be rewritten.")
(native-inputs `(("pkgconfig" ,pkg-config)))
(inputs `(("libffi" ,libffi)
("readline" ,readline)
- ("bash" ,bash)))
-
+ ,@(libiconv-if-needed)
+ ,@(if (target-mingw?) '() `(("bash" ,bash)))))
(propagated-inputs
`( ;; These ones aren't normally needed here, but since `libguile-2.0.la'
;; reads `-lltdl -lunistring', adding them here will add the needed
@@ -176,8 +176,15 @@ without requiring the source code to be rewritten.")
;; Tell (ice-9 popen) the file name of Bash.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "module/ice-9/popen.scm"
+ ;; If bash is #f allow fallback for user to provide
+ ;; "bash" in PATH. This happens when cross-building to
+ ;; MinGW for which we do not have Bash yet.
(("/bin/sh")
- (string-append bash "/bin/bash")))))
+ ,@(if (target-mingw?)
+ '((if bash
+ (string-append bash "/bin/bash")
+ "bash"))
+ '((string-append bash "/bin/bash")))))))
%standard-phases)))
(native-search-paths
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 4e70212133..6f450a373b 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -43,14 +43,14 @@
(define-public imagemagick
(package
(name "imagemagick")
- (version "6.9.6-6")
+ (version "6.9.6-7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
- "02hd0xvpm99wrix2didg8xnra4fla04y9vaks2vnijry3l0gxlcw"))))
+ "1ls3g4gpdh094n03szr9arpr0rfwd1krv2s9gnck8j0ab10ccgs5"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 3b63c899eb..1a02fbeebc 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 ng0 <ng0@libertad.pw>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,9 +32,11 @@
#:use-module (gnu packages autogen)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages file)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@@ -47,6 +49,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages qt)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
@@ -329,3 +332,91 @@ and extensible with plugins and scripts.")
embedded web server, translations (fr, fi, it, hu, de), and many
other enhancements and bug fixes.")
(license license:bsd-3)))
+
+(define-public epic5
+ (package
+ (name "epic5")
+ (version "2.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://ftp.epicsol.org/pub/"
+ "epic/EPIC5-PRODUCTION/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-perl
+ (lambda _
+ (substitute* "regress/crash-irc"
+ (("perl5") (which "perl")))
+ #t))
+ (add-after 'unpack 'patch-bsdinstall
+ ;; If we just remove /bin/ some part of the bsdinstall breaks.
+ ;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
+ ;; means if we leave /etc/ in, install fails.
+ (lambda _
+ (substitute* "bsdinstall"
+ (("/bin/strip") "strip")
+ (("/bin/cp") "cp")
+ (("/bin/chmod") "chmod")
+ (("/bin/chgrp") "chgrp")
+ (("/bin/mkdir") "mkdir")
+ (("/bin/rm") "rm")
+ (("/bin/mv") "mv")
+ (("/etc/") ""))
+ #t))
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; The tarball uses a very old version of autconf. It does not
+ ;; understand extra flags like `--enable-fast-install', so
+ ;; we need to invoke it with just what it understands.
+ (let ((out (assoc-ref outputs "out")))
+ ;; 'configure' doesn't understand '--host'.
+ ,@(if (%current-target-system)
+ `((setenv "CHOST" ,(%current-target-system)))
+ '())
+ (setenv "CONFIG_SHELL" (which "bash"))
+ (setenv "SHELL" (which "bash"))
+ (zero?
+ (system* "./configure"
+ (string-append "--prefix=" out)
+ "--with-ipv6" "--with-libarchive"
+ ;; We use libressl because openssl does not come
+ ;; with the lib/libssl.a which is needed for epic5.
+ ;; XXX: No matter which implementation is chosen,
+ ;; epic5 fails to connect to tls ports of roundrobin
+ ;; irc networks. This however is believed to be an
+ ;; protocol issue at epic5 related to ircd.
+ (string-append "--with-ssl="
+ (assoc-ref %build-inputs "libressl"))
+ (string-append "--with-tcl="
+ (assoc-ref %build-inputs "tcl")
+ "/lib/tclConfig.sh")))))))))
+ (inputs
+ `(("libressl" ,libressl)
+ ("ncurses" ,ncurses)
+ ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
+ ("perl" ,perl)
+ ("tcl" ,tcl)
+ ("ruby" ,ruby)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://epicsol.org")
+ (synopsis "Epic5 IRC Client")
+ (description
+ "EPIC is a IRC client that has been under active development for
+over 20 years. It is stable and mature, and offers an excellent ircII
+interface for those who are accustomed to the ircII way of doing things.")
+ (license (list license:bsd-3
+ license:isc
+ license:bsd-4
+ ;; The epic license is equal to the standard three-clause
+ ;; BSD license except that you are not permitted to remove the
+ ;; "Redistribution is permitted" clause of the license if you
+ ;; distribute binaries.
+ license:non-copyleft "http://epicsol.org/copyright"))))
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index e02e4f4cdc..279e8e2d22 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -820,14 +820,16 @@ and to return information on pronunciations, meanings and synonyms.")
(("./configure") "$(CONFIG_SHELL) ./configure" ))
#t)))
(add-after 'install 'bin-install
- ;; Create a symlink bin/soffice to the executable script.
+ ;; Create 'soffice' and 'libreoffice' symlinks to the executable
+ ;; script.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
+ (bin (string-append out "/bin"))
+ (soffice (string-append
+ out "/lib/libreoffice/program/soffice")))
(mkdir bin)
- (symlink
- (string-append out "/lib/libreoffice/program/soffice")
- (string-append bin "/soffice")))
+ (symlink soffice (string-append bin "/soffice"))
+ (symlink soffice (string-append bin "/libreoffice")))
#t)))
#:configure-flags
(list
diff --git a/gnu/packages/libunistring.scm b/gnu/packages/libunistring.scm
index f29b7424de..a9779d4ffd 100644
--- a/gnu/packages/libunistring.scm
+++ b/gnu/packages/libunistring.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,7 +22,8 @@
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages base))
(define-public libunistring
(package
@@ -35,7 +37,7 @@
(sha256
(base32
"0ixxmgpgh2v8ifm6hbwsjxl023myk3dfnj7wnvmqjivza31fw9cn"))))
- (propagated-inputs '()) ; FIXME: add libiconv when !glibc
+ (propagated-inputs (libiconv-if-needed))
(build-system gnu-build-system)
(arguments
;; Work around parallel build issue whereby C files may be compiled before
diff --git a/gnu/packages/links.scm b/gnu/packages/links.scm
index 2f0c12a786..145ed761ee 100644
--- a/gnu/packages/links.scm
+++ b/gnu/packages/links.scm
@@ -33,13 +33,13 @@
(define-public links
(package
(name "links")
- (version "2.13")
+ (version "2.14")
(source (origin
(method url-fetch)
(uri (string-append "http://links.twibright.com/download/"
name "-" version ".tar.bz2"))
(sha256
- (base32 "01a4mbpvf7450ymqarjkpmzrm0z2zyd9lvqwg7x9kcd36i9hjln2"))))
+ (base32 "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index fca86cf3f6..3c24987aae 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2563,55 +2563,21 @@ is flexible, efficient and uses a modular implementation.")
(define-public fuse-exfat
(package
(name "fuse-exfat")
- (version "1.1.0")
+ (version "1.2.5")
(source (origin
(method url-fetch)
- (uri "https://docs.google.com/uc?export=download&\
-id=0B7CLI-REKbE3VTdaa0EzTkhYdU0")
+ (uri (string-append
+ "https://github.com/relan/exfat/releases/download/v"
+ version "/" name "-" version ".tar.gz"))
(sha256
(base32
- "0glmgwrf0nv09am54i6s35ksbvrywrwc51w6q32mv5by8475530r"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "1i0sh0s6wnm4dqxli3drva871wgbbm57qjf592vnswna9hc6bvim"))))
(build-system gnu-build-system)
(native-inputs
- `(("scons" ,scons)
- ("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)))
(inputs
`(("fuse" ,fuse)))
- (arguments
- '(#:tests? #f ;no test suite
-
- ;; XXX: Factorize with 'exfat-utils'.
- #:phases (modify-phases %standard-phases
- (delete 'configure)
- (add-after 'unpack 'scons-propagate-environment
- (lambda _
- ;; Modify the SConstruct file to arrange for
- ;; environment variables to be propagated.
- (substitute* "SConstruct"
- (("^env = Environment\\(")
- "env = Environment(ENV=os.environ, "))))
- (replace 'build
- (lambda _
- (zero? (system* "scons"))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (man8 (string-append out
- "/share/man/man8")))
- (mkdir-p bin)
- (mkdir-p man8)
- (for-each (lambda (file)
- (copy-file
- file
- (string-append man8 "/"
- (basename file))))
- (find-files "." "\\.8$"))
- (zero? (system* "scons" "install"
- (string-append "DESTDIR="
- bin)))))))))
- (home-page "http://code.google.com/p/exfat/")
+ (home-page "https://github.com/relan/exfat")
(synopsis "Mount exFAT file systems")
(description
"This package provides a FUSE-based file system that provides read and
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index f95da3587d..65c335d373 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +28,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 readline)
@@ -365,3 +367,37 @@ secure session between the peers.")
based libraries. It allows using GObject-based libraries directly from Lua.
Notable examples are GTK+, GStreamer and Webkit.")
(license license:expat)))
+
+(define-public lua-lpeg
+ (package
+ (name "lua-lpeg")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "13mz18s359wlkwm9d9iqlyyrrwjc6iqfpa99ai0icam2b3khl68h"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ ;; `make install` isn't available, so we have to do it manually
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (lua-version ,(version-major+minor (package-version lua))))
+ (install-file "lpeg.so"
+ (string-append out "/lib/lua/" lua-version))
+ (install-file "re.lua"
+ (string-append out "/share/lua/" lua-version))
+ #t))))
+ #:test-target "test"))
+ (inputs `(("lua", lua)))
+ (synopsis "Pattern-matching library for Lua")
+ (description
+ "LPeg is a pattern-matching library for Lua, based on Parsing Expression
+Grammars (PEGs).")
+ (home-page "http://www.inf.puc-rio.br/~roberto/lpeg")
+ (license license:expat)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index a8359d572c..4b8e07cd11 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -453,7 +453,7 @@ attachments, create new maildirs, and so on.")
(define-public alot
(package
(name "alot")
- (version "0.3.7")
+ (version "0.4")
(source (origin
(method url-fetch)
;; package author intends on distributing via github rather
@@ -464,12 +464,12 @@ attachments, create new maildirs, and so on.")
(file-name (string-append "alot-" version ".tar.gz"))
(sha256
(base32
- "09md9llg38r6xby8l0y0zf8nhlh91cr4xs0r15b294hhp8hl2bgx"))))
+ "0sl1kl2fhkv208llnbny4blcvrfdk4vx6bcw5pnyh9ylwb0pipi2"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no tests
- ;; python 3 is unsupported, more info:
- ;; https://github.com/pazz/alot/blob/0.3.7/docs/source/faq.rst
+ ;; python 3 is currently unsupported, more info:
+ ;; https://github.com/pazz/alot/blob/master/docs/source/faq.rst
#:python ,python-2))
(inputs
`(("python2-magic" ,python2-magic)
@@ -933,15 +933,15 @@ facilities for checking incoming mail.")
(define-public dovecot
(package
(name "dovecot")
- (version "2.2.26.0")
+ (version "2.2.27")
(source
(origin
(method url-fetch)
- (uri (string-append "http://www.dovecot.org/releases/"
+ (uri (string-append "https://www.dovecot.org/releases/"
(version-major+minor version) "/"
name "-" version ".tar.gz"))
(sha256 (base32
- "01bgj8b2whi35ghbxb19nmr3xvx2zgjzxxw1crgx2v73kprs34pn"))))
+ "1s8qvr6fa9d0n179kdwgpsi72zkvpbh9q57q8fr2fjysgjl94zw9"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -973,7 +973,7 @@ facilities for checking incoming mail.")
(("/bin/cat") (which "cat"))
(("/bin/false") (which "false")))
#t)))))
- (home-page "http://www.dovecot.org")
+ (home-page "https://www.dovecot.org")
(synopsis "Secure POP3/IMAP server")
(description
"Dovecot is a mail server whose major goals are security and reliability.
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index f31db6aaef..44a7fd3a16 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -32,6 +32,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages hurd)
#:use-module (gnu packages multiprecision)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
@@ -332,61 +333,39 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
#t))))
(inputs `(("binutils" ,%binutils-static)))))
-(define %glibc-stripped
+(define (%glibc-stripped)
;; GNU libc's essential shared libraries, dynamic linker, and headers,
;; with all references to store directories stripped. As a result,
;; libc.so is unusable and need to be patched for proper relocation.
+ (define (hurd-triplet? triplet)
+ (and (string-suffix? "-gnu" triplet)
+ (not (string-contains triplet "linux"))))
+
(let ((glibc (glibc-for-bootstrap)))
(package (inherit glibc)
(name "glibc-stripped")
(build-system trivial-build-system)
(arguments
- `(#:modules ((guix build utils))
+ `(#:modules ((guix build utils)
+ (guix build make-bootstrap))
#:builder
(begin
- (use-modules (guix build utils))
-
- (setvbuf (current-output-port) _IOLBF)
- (let* ((out (assoc-ref %outputs "out"))
- (libdir (string-append out "/lib"))
- (incdir (string-append out "/include"))
- (libc (assoc-ref %build-inputs "libc"))
- (linux (assoc-ref %build-inputs "kernel-headers")))
- (mkdir-p libdir)
- (for-each (lambda (file)
- (let ((target (string-append libdir "/"
- (basename file))))
- (copy-file file target)
- (remove-store-references target)))
- (find-files (string-append libc "/lib")
- "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|util).*\\.so(\\..*)?|libc_nonshared\\.a)$"))
-
- (copy-recursively (string-append libc "/include") incdir)
-
- ;; Copy some of the Linux-Libre headers that glibc headers
- ;; refer to.
- (mkdir (string-append incdir "/linux"))
- (for-each (lambda (file)
- (copy-file (string-append linux "/include/linux/" file)
- (string-append incdir "/linux/"
- (basename file))))
- '("limits.h" "errno.h" "socket.h" "kernel.h"
- "sysctl.h" "param.h" "ioctl.h" "types.h"
- "posix_types.h" "stddef.h"))
-
- (copy-recursively (string-append linux "/include/asm")
- (string-append incdir "/asm"))
- (copy-recursively (string-append linux "/include/asm-generic")
- (string-append incdir "/asm-generic"))
-
- #t))))
- (inputs `(("libc" ,(let ((target (%current-target-system)))
+ (use-modules (guix build make-bootstrap))
+ (make-stripped-libc (assoc-ref %outputs "out")
+ (assoc-ref %build-inputs "libc")
+ (assoc-ref %build-inputs "kernel-headers")))))
+ (inputs `(("kernel-headers"
+ ,(if (or (and (%current-target-system)
+ (hurd-triplet? (%current-target-system)))
+ (string-suffix? "-hurd" (%current-system)))
+ gnumach-headers
+ linux-libre-headers))
+ ("libc" ,(let ((target (%current-target-system)))
(if target
(glibc-for-bootstrap
(parameterize ((%current-target-system #f))
(cross-libc target)))
- glibc)))
- ("kernel-headers" ,linux-libre-headers)))
+ glibc)))))
;; Only one output.
(outputs '("out")))))
@@ -647,9 +626,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
;; A tarball with the statically-linked Binutils programs.
(tarball-package %binutils-static-stripped))
-(define %glibc-bootstrap-tarball
+(define (%glibc-bootstrap-tarball)
;; A tarball with GNU libc's shared libraries, dynamic linker, and headers.
- (tarball-package %glibc-stripped))
+ (tarball-package (%glibc-stripped)))
(define %gcc-bootstrap-tarball
;; A tarball with a dynamic-linked GCC and its headers.
@@ -689,7 +668,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(inputs `(("guile-tarball" ,%guile-bootstrap-tarball)
("gcc-tarball" ,%gcc-bootstrap-tarball)
("binutils-tarball" ,%binutils-bootstrap-tarball)
- ("glibc-tarball" ,%glibc-bootstrap-tarball)
+ ("glibc-tarball" ,(%glibc-bootstrap-tarball))
("coreutils&co-tarball" ,%bootstrap-binaries-tarball)))
(synopsis "Tarballs containing all the bootstrap binaries")
(description synopsis)
diff --git a/gnu/packages/mingw.scm b/gnu/packages/mingw.scm
new file mode 100644
index 0000000000..6a348da611
--- /dev/null
+++ b/gnu/packages/mingw.scm
@@ -0,0 +1,84 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@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 mingw)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages cross-base)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages multiprecision)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix utils)
+ #:use-module (ice-9 match))
+
+(define %mingw-triplet
+ "i686-w64-mingw32")
+
+(define-public mingw-w64
+ (package
+ (name "mingw-w64")
+ (version "5.0-rc2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://sourceforge.net/projects/mingw-w64/files/mingw-w64/"
+ "mingw-w64-release/mingw-w64-v" version ".tar.bz2"))
+ (sha256
+ (base32 "0imdary8j07if8ih73pfgxiclpf2ax8h3mz8mxln07i8sbbd30c9"))
+ (patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch"))))
+ (native-inputs `(("xgcc-core" ,(cross-gcc %mingw-triplet))
+ ("xbinutils" ,(cross-binutils %mingw-triplet))))
+ (build-system gnu-build-system)
+ (search-paths
+ (list (search-path-specification
+ (variable "CROSS_C_INCLUDE_PATH")
+ (files '("include" "i686-w64-mingw32/include")))
+ (search-path-specification
+ (variable "CROSS_LIBRARY_PATH")
+ (files
+ '("lib" "lib64" "i686-w64-mingw32/lib" "i686-w64-mingw32/lib64")))))
+ (arguments
+ `(#:configure-flags '("--host=i686-w64-mingw32")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'setenv
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((xgcc-core (assoc-ref inputs "xgcc-core"))
+ (mingw-headers (string-append (getcwd) "/mingw-w64-headers")))
+ (setenv "CPP"
+ (string-append xgcc-core "/bin/i686-w64-mingw32-cpp"))
+ (setenv "CROSS_C_INCLUDE_PATH"
+ (string-append
+ mingw-headers
+ ":" mingw-headers "/include"
+ ":" mingw-headers "/crt"
+ ":" mingw-headers "/defaults/include"
+ ":" mingw-headers "/direct-x/include"))))))
+ #:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1")
+ #:tests? #f ; compiles and includes glibc headers
+ #:strip-binaries? #f))
+ (home-page "http://mingw.org")
+ (synopsis "Minimalist GNU for Windows")
+ (description "MinGW provides a complete Open Source programming tool set
+which is suitable for the development of native MS-Windows applications, and
+which does not depend on any 3rd-party C-Runtime dlls.")
+ (license license:fdl1.3+)))
diff --git a/gnu/packages/mtools.scm b/gnu/packages/mtools.scm
index a95b8ef5e9..947c606853 100644
--- a/gnu/packages/mtools.scm
+++ b/gnu/packages/mtools.scm
@@ -49,7 +49,7 @@ FAT-specific file attributes.")
(define-public exfat-utils
(package
(name "exfat-utils")
- (version "1.2.4")
+ (version "1.2.5")
(source (origin
(method url-fetch)
(uri (string-append
@@ -57,7 +57,7 @@ FAT-specific file attributes.")
version "/" name "-" version ".tar.gz"))
(sha256
(base32
- "04dvrdmwmj9ggad8aq6inbjcq2yi9i62z42nnivhk7bb84k1k9ba"))))
+ "1qhvjd6dmzhxjdnm4cklajbr03wsjjvkxrsjij517a33napcl93s"))))
(build-system gnu-build-system)
(home-page "https://github.com/relan/exfat")
(synopsis "Utilities to manipulate exFAT file systems")
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 23ae68a28f..36e35ca00c 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -49,7 +50,13 @@
'(;; Build a "fat binary", with routines for several
;; sub-architectures.
"--enable-fat"
- "--enable-cxx")))
+ "--enable-cxx"
+ ,@(cond ((target-mingw?)
+ ;; Static and shared cannot be built in one go:
+ ;; they produce different headers. We need shared.
+ `("--disable-static"
+ "--enable-shared"))
+ (else '())))))
(synopsis "Multiple-precision arithmetic library")
(description
"GMP is a library for arbitrary precision arithmetic, operating on
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 7a9cb5f6de..34beb09f44 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1498,7 +1498,7 @@ backends, including ALSA, OSS, Network and FluidSynth.")
(define-public zynaddsubfx
(package
(name "zynaddsubfx")
- (version "3.0.0")
+ (version "3.0.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1506,7 +1506,7 @@ backends, including ALSA, OSS, Network and FluidSynth.")
version "/zynaddsubfx-" version ".tar.bz2"))
(sha256
(base32
- "0p640hlw28264nzrnd2lm4bi5snas4fvh80p8lpxvph2hjw3sncl"))))
+ "1qijvlbv41lnqaqbp6gh1i42xzf1syviyxz8wr39xbz55cw7y0d8"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -1711,7 +1711,17 @@ follows a traditional multi-track tape recorder control paradigm.")
(base32
"1392spswkhfd38fggf584wb3m8aqpg7csfrs9zxnzyvhgmp0fgqk"))))
(build-system waf-build-system)
- (arguments `(#:tests? #f)) ; no tests
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-sse-flags
+ (lambda* (#:key system #:allow-other-keys)
+ (when (not (or (string-prefix? "x86_64" system)
+ (string-prefix? "i686" system)))
+ (substitute* "wscript"
+ (("'-msse', '-mfpmath=sse', ") ""))
+ #t))))
+ #:tests? #f)) ; no tests
(inputs
`(("lv2" ,lv2)
("lvtk" ,lvtk)
@@ -2566,6 +2576,68 @@ plugin on any system where Ingen is installed. This allows users to visually
develop custom plugins for use in other applications without programming.")
(license license:agpl3+))))
+(define-public qmidiarp
+ (package
+ (name "qmidiarp")
+ (version "0.6.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/qmidiarp/qmidiarp/"
+ version "/qmidiarp-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1gkfv8ajgf86kbn6j5ilfc1zlz17gdi9yxzywqd6jwff4xlm75hx"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "--enable-qt5"
+ "CXXFLAGS=-std=gnu++11")))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("alsa-lib" ,alsa-lib)
+ ("jack" ,jack-1)
+ ("liblo" ,liblo)
+ ("lv2" ,lv2)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("qttools" ,qttools)))
+ (home-page "http://qmidiarp.sourceforge.net/")
+ (synopsis "MIDI arpeggiator")
+ (description "QMidiArp is an advanced MIDI arpeggiator, programmable step
+sequencer and LFO. It can hold any number of arpeggiator, sequencer, or LFO
+modules running in parallel.")
+ (license license:gpl2+)))
+
+(define-public seq24
+ (package
+ (name "seq24")
+ (version "0.9.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://launchpad.net/seq24/trunk/"
+ version "/+download/seq24-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "12dphdhnvfk1k0vmagi1v2lhyxjyj1j3cz6ksjw0ydcvid1x8ap2"))
+ (patches (search-patches "seq24-rename-mutex.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "CXXFLAGS=-std=gnu++11")))
+ (inputs
+ `(("gtkmm" ,gtkmm-2)
+ ("alsa-lib" ,alsa-lib)
+ ("jack" ,jack-1)
+ ("lash" ,lash)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://edge.launchpad.net/seq24/")
+ (synopsis "Real-time MIDI sequencer")
+ (description "Seq24 is a real-time MIDI sequencer. It was created to
+provide a very simple interface for editing and playing MIDI loops.")
+ (license license:gpl2+)))
+
(define-public python-discogs-client
(package
(name "python-discogs-client")
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index e21e477f4f..6949e1e03f 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -1,9 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +22,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages ncurses)
+ #:use-module (gnu packages)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
@@ -28,121 +30,146 @@
#:use-module (guix build-system perl)
#:use-module (gnu packages)
#:use-module (gnu packages perl)
- #:use-module (gnu packages swig))
+ #:use-module (gnu packages swig)
+ #:use-module (guix utils))
(define-public ncurses
- (let ((patch-makefile-phase
- '(lambda _
- (for-each patch-makefile-SHELL
- (find-files "." "Makefile.in"))))
- (configure-phase
- ;; The 'configure' script does not understand '--docdir', so we must
- ;; override that and use '--mandir' instead.
- '(lambda* (#:key build target outputs configure-flags
- #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc")))
- (zero? (apply system* "./configure"
- (string-append "SHELL=" (which "sh"))
- (string-append "--build=" build)
- (string-append "--prefix=" out)
- (string-append "--mandir=" doc "/share/man")
- (if target
- (cons (string-append "--host=" target)
- configure-flags)
- configure-flags))))))
- (remove-shebang-phase
- '(lambda _
- ;; To avoid retaining a reference to the bootstrap Bash via the
- ;; shebang of the 'ncursesw6-config' script, simply remove that
- ;; shebang: it'll work just as well without it. Likewise, do not
- ;; retain a reference to the "doc" output.
- (substitute* "misc/ncurses-config.in"
- (("#!@SHELL@")
- "# No shebang here, use /bin/sh!\n")
- (("@SHELL@ \\$0")
- "$0")
- (("mandir=.*$")
- "mandir=share/man"))
- #t))
- (post-install-phase
- '(lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; When building a wide-character (Unicode) build, create backward
- ;; compatibility links from the the "normal" libraries to the
- ;; wide-character libraries (e.g. libncurses.so to libncursesw.so).
- (with-directory-excursion (string-append out "/lib")
- (for-each (lambda (lib)
- (define libw.a
- (string-append "lib" lib "w.a"))
- (define lib.a
- (string-append "lib" lib ".a"))
- (define libw.so.x
- (string-append "lib" lib "w.so.6"))
- (define lib.so.x
- (string-append "lib" lib ".so.6"))
- (define lib.so
- (string-append "lib" lib ".so"))
-
- (when (file-exists? libw.a)
- (format #t "creating symlinks for `lib~a'~%" lib)
- (symlink libw.a lib.a)
- (symlink libw.so.x lib.so.x)
- (false-if-exception (delete-file lib.so))
- (call-with-output-file lib.so
- (lambda (p)
- (format p "INPUT (-l~aw)~%" lib)))))
- '("curses" "ncurses" "form" "panel" "menu")))))))
- (package
- (name "ncurses")
- (version "6.0")
- (source (origin
+ (package
+ (name "ncurses")
+ (version "6.0")
+ (source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ncurses/ncurses-"
version ".tar.gz"))
(sha256
(base32
"0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm"))))
- (build-system gnu-build-system)
- (outputs '("out"
- "doc")) ;1 MiB of man pages
- (arguments
- `(#:configure-flags
- `("--with-shared" "--without-debug" "--enable-widec"
+ (build-system gnu-build-system)
+ (outputs '("out"
+ "doc")) ;1 MiB of man pages
+ (arguments
+ (let ((patch-makefile-phase
+ '(lambda _
+ (for-each patch-makefile-SHELL
+ (find-files "." "Makefile.in"))))
+ (configure-phase
+ ;; The 'configure' script does not understand '--docdir', so we must
+ ;; override that and use '--mandir' instead.
+ '(lambda* (#:key build target outputs configure-flags
+ #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (zero? (apply system* "./configure"
+ (string-append "SHELL=" (which "sh"))
+ (string-append "--build=" build)
+ (string-append "--prefix=" out)
+ (string-append "--mandir=" doc "/share/man")
+ (if target
+ (cons (string-append "--host=" target)
+ configure-flags)
+ configure-flags))))))
+ (remove-shebang-phase
+ '(lambda _
+ ;; To avoid retaining a reference to the bootstrap Bash via the
+ ;; shebang of the 'ncursesw6-config' script, simply remove that
+ ;; shebang: it'll work just as well without it. Likewise, do not
+ ;; retain a reference to the "doc" output.
+ (substitute* "misc/ncurses-config.in"
+ (("#!@SHELL@")
+ "# No shebang here, use /bin/sh!\n")
+ (("@SHELL@ \\$0")
+ "$0")
+ (("mandir=.*$")
+ "mandir=share/man"))
+ #t))
+ (post-install-phase
+ `(lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; When building a wide-character (Unicode) build, create backward
+ ;; compatibility links from the the "normal" libraries to the
+ ;; wide-character libraries (e.g. libncurses.so to libncursesw.so).
+ ,@(if (target-mingw?)
+ '( ;; TODO: create .la files to link to the .dll?
+ (with-directory-excursion (string-append out "/bin")
+ (for-each
+ (lambda (lib)
+ (define lib.dll
+ (string-append "lib" lib ".dll"))
+ (define libw6.dll
+ (string-append "lib" lib "w6.dll"))
+
+ (when (file-exists? libw6.dll)
+ (format #t "creating symlinks for `lib~a'~%" lib)
+ (symlink libw6.dll lib.dll)))
+ '("curses" "ncurses" "form" "panel" "menu"))))
+ '())
+ (with-directory-excursion (string-append out "/lib")
+ (for-each (lambda (lib)
+ (define libw.a
+ (string-append "lib" lib "w.a"))
+ (define lib.a
+ (string-append "lib" lib ".a"))
- ;; By default headers land in an `ncursesw' subdir, which is not
- ;; what users expect.
- ,(string-append "--includedir=" (assoc-ref %outputs "out")
- "/include")
- "--enable-overwrite" ;really honor --includedir
+ ,@(if (not (target-mingw?))
+ '((define libw.so.x
+ (string-append "lib" lib "w.so.6"))
+ (define lib.so.x
+ (string-append "lib" lib ".so.6"))
+ (define lib.so
+ (string-append "lib" lib ".so")))
+ '())
- ;; Make sure programs like 'tic', 'reset', and 'clear' have a
- ;; correct RUNPATH.
- ,(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out")
- "/lib"))
- #:tests? #f ; no "check" target
- #:phases (modify-phases %standard-phases
- (replace 'configure ,configure-phase)
- (add-after 'install 'post-install
- ,post-install-phase)
- (add-before 'configure 'patch-makefile-SHELL
- ,patch-makefile-phase)
- (add-after 'unpack 'remove-unneeded-shebang
- ,remove-shebang-phase))))
- (self-native-input? #t) ; for `tic'
- (native-search-paths
- (list (search-path-specification
- (variable "TERMINFO_DIRS")
- (files '("share/terminfo")))))
- (synopsis "Terminal emulation (termcap, terminfo) library")
- (description
- "GNU Ncurses is a library which provides capabilities to write text to
+ (when (file-exists? libw.a)
+ (format #t "creating symlinks for `lib~a'~%" lib)
+ (symlink libw.a lib.a)
+ ,@(if (not (target-mingw?))
+ '((symlink libw.so.x lib.so.x)
+ (false-if-exception (delete-file lib.so))
+ (call-with-output-file lib.so
+ (lambda (p)
+ (format p "INPUT (-l~aw)~%" lib))))
+ '())))
+ '("curses" "ncurses" "form" "panel" "menu")))))))
+ `(#:configure-flags
+ ,(cons*
+ 'quasiquote
+ `(("--with-shared" "--without-debug" "--enable-widec"
+
+ ;; By default headers land in an `ncursesw' subdir, which is not
+ ;; what users expect.
+ ,(list 'unquote '(string-append "--includedir=" (assoc-ref %outputs "out")
+ "/include"))
+ "--enable-overwrite" ;really honor --includedir
+
+ ;; Make sure programs like 'tic', 'reset', and 'clear' have a
+ ;; correct RUNPATH.
+ ,(list 'unquote '(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out")
+ "/lib"))
+ ;; MinGW: Use term-driver created for the MinGW port.
+ ,@(if (target-mingw?) '("--enable-term-driver") '()))))
+ #:tests? #f ; no "check" target
+ #:phases (modify-phases %standard-phases
+ (replace 'configure ,configure-phase)
+ (add-after 'install 'post-install
+ ,post-install-phase)
+ (add-before 'configure 'patch-makefile-SHELL
+ ,patch-makefile-phase)
+ (add-after 'unpack 'remove-unneeded-shebang
+ ,remove-shebang-phase)))))
+ (self-native-input? #t) ; for `tic'
+ (native-search-paths
+ (list (search-path-specification
+ (variable "TERMINFO_DIRS")
+ (files '("share/terminfo")))))
+ (synopsis "Terminal emulation (termcap, terminfo) library")
+ (description
+ "GNU Ncurses is a library which provides capabilities to write text to
a terminal in a terminal-independent manner. It supports pads and color as
well as multiple highlights and forms characters. It is typically used to
implement user interfaces for command-line applications. The accompanying
ncursesw library provides wide character support.")
- (license x11)
- (home-page "http://www.gnu.org/software/ncurses/"))))
+ (license x11)
+ (home-page "http://www.gnu.org/software/ncurses/")))
(define-public dialog
(package
diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm
index 0bcc885c39..8ef3e9f112 100644
--- a/gnu/packages/onc-rpc.scm
+++ b/gnu/packages/onc-rpc.scm
@@ -43,6 +43,14 @@
(modify-phases %standard-phases
(add-after 'unpack 'remote-dangling-symlink
(lambda _
+ (substitute* '("man/netconfig.5"
+ "man/getnetconfig.3t"
+ "man/getnetpath.3t"
+ "man/rpc.3t"
+ "src/getnetconfig.c"
+ "tirpc/netconfig.h")
+ (("/etc/netconfig") (string-append %output "/etc/netconfig")))
+
;; Remove the dangling symlinks since it breaks the
;; 'patch-source-shebangs' file tree traversal.
(delete-file "INSTALL"))))))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index ac7c26d40c..099cbb64d8 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -226,9 +226,9 @@ the Nix package manager.")
;;
;; Note: use a very short commit id; with a longer one, the limit on
;; hash-bang lines would be exceeded while running the tests.
- (let ((commit "463fb7d0c86fb9957c527272e6cec5ee23585366"))
+ (let ((commit "8d125cfc2e5cb0825bb40893ec3e940f85f1b235"))
(package (inherit guix-0.11.0)
- (version (string-append "0.11.0-5." (string-take commit 4)))
+ (version (string-append "0.11.0-8." (string-take commit 4)))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -238,7 +238,7 @@ the Nix package manager.")
(commit commit)))
(sha256
(base32
- "0k74j6m5hy055knirnry75qrgph4zywypxjyaqv6saixb6yx7av3"))
+ "0h73m1zad67qqn7ygypcqscicvqj31wwkxsr85d5lr77v6bx7b6z"))
(file-name (string-append "guix-" version "-checkout"))))
(arguments
(substitute-keyword-arguments (package-arguments guix-0.11.0)
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 89195f31c2..1a4ea8a036 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -45,7 +45,7 @@
(define-public parallel
(package
(name "parallel")
- (version "20161022")
+ (version "20161122")
(source
(origin
(method url-fetch)
@@ -53,7 +53,7 @@
version ".tar.bz2"))
(sha256
(base32
- "1mz82chm5qav6h64rcckxzabr7w4ma0sjx61xav85x0swgcbjdsr"))))
+ "0z5c4r35d926ac04ilaivx67cmflr1rsvmjb2ci7hmab948m0ng2"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch b/gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch
new file mode 100644
index 0000000000..0ea008a7cb
--- /dev/null
+++ b/gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch
@@ -0,0 +1,11 @@
+--- a/libgcc/config/i386/gthr-win32.h 2016-03-30 07:45:33.388684463 +0200
++++ b/libgcc/config/i386/gthr-win32.h 2016-03-30 15:51:24.123896436 +0200
+@@ -30,7 +30,7 @@
+
+ /* Make sure CONST_CAST2 (origin in system.h) is declared. */
+ #ifndef CONST_CAST2
+-#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq)
++#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((TOTYPE)X)
+ #endif
+
+ /* Windows32 threads specific definitions. The windows32 threading model
diff --git a/gnu/packages/patches/httpd-CVE-2016-8740.patch b/gnu/packages/patches/httpd-CVE-2016-8740.patch
new file mode 100644
index 0000000000..17ba323ccf
--- /dev/null
+++ b/gnu/packages/patches/httpd-CVE-2016-8740.patch
@@ -0,0 +1,36 @@
+This patch applies against httpd-2.4.23 and shouldn't be needed in later releases
+http://openwall.com/lists/oss-security/2016/12/05/17
+Index: modules/http2/h2_stream.c
+===================================================================
+--- modules/http2/h2_stream.c (revision 1771866)
++++ modules/http2/h2_stream.c (working copy)
+@@ -322,18 +322,18 @@
+ HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE);
+ }
+ }
+- }
+-
+- if (h2_stream_is_scheduled(stream)) {
+- return h2_request_add_trailer(stream->request, stream->pool,
+- name, nlen, value, vlen);
+- }
+- else {
+- if (!input_open(stream)) {
+- return APR_ECONNRESET;
++
++ if (h2_stream_is_scheduled(stream)) {
++ return h2_request_add_trailer(stream->request, stream->pool,
++ name, nlen, value, vlen);
+ }
+- return h2_request_add_header(stream->request, stream->pool,
+- name, nlen, value, vlen);
++ else {
++ if (!input_open(stream)) {
++ return APR_ECONNRESET;
++ }
++ return h2_request_add_header(stream->request, stream->pool,
++ name, nlen, value, vlen);
++ }
+ }
+ }
+
diff --git a/gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch b/gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch
new file mode 100644
index 0000000000..e8f841c4fd
--- /dev/null
+++ b/gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch
@@ -0,0 +1,218 @@
+This patch includes
+
+ * mingw-w64-headers/include/winnt.h: compile fixes for1 gcc-4.9.3
+ * mingw-w64-headers/crt/math.h: Likewise
+ * mingw-w64-headers/crt/float.h (FLT_EPSILON,DBL_EPSILON,LDBL_EPSILON): Add
+ symbols.
+ * mingw-w64-headers/crt/stat.h (S_ISLNK,S_ISSOCK,S_ISUID,S_ISGID,S_ISLINK):
+ Add symbols.
+ (lstat): Add function.
+ * mingw-w64-headers/crt/_mingw_stat64.h: Likewise
+ * mingw-w64-headers/crt/stdlib.h (realpath): Add function.
+
+Needed for building with gcc-4.9.3 and using with cross-libtool-2.4.6.
+
+Upstream status: not yet presented upstream.
+
+index 9c5cf87..74a8541 100644
+--- a/mingw-w64-crt/misc/dirname.c
++++ b/mingw-w64-crt/misc/dirname.c
+@@ -29,6 +29,12 @@
+ #define __cdecl /* this may not be defined. */
+ #endif
+
++char *__cdecl
++realpath(const char *name, char *resolved)
++{
++ return resolved ? strcpy (resolved, name) : strdup (name);
++}
++
+ char * __cdecl
+ dirname(char *path)
+ {
+diff --git a/mingw-w64-headers/crt/_mingw_stat64.h b/mingw-w64-headers/crt/_mingw_stat64.h
+index 17e754c..7d2339b 100644
+--- a/mingw-w64-headers/crt/_mingw_stat64.h
++++ b/mingw-w64-headers/crt/_mingw_stat64.h
+@@ -2,13 +2,17 @@
+
+ #ifdef _USE_32BIT_TIME_T
+ #define _fstat32 _fstat
++#define _lstat32 _lstat
+ #define _stat32 _stat
+ #define _wstat32 _wstat
+ #define _fstat32i64 _fstati64
++#define _lstat32i64 _lstati64
+ #define _stat32i64 _stati64
+ #define _wstat32i64 _wstati64
+ #else
+ #define _fstat _fstat64i32
++#define _lstat _lstat64i32
++#define _lstati64 _lstat64
+ #define _fstati64 _fstat64
+ #define _stat _stat64i32
+ #define _stati64 _stat64
+diff --git a/mingw-w64-headers/crt/float.h b/mingw-w64-headers/crt/float.h
+index 5874f4e..bdf4ead 100644
+--- a/mingw-w64-headers/crt/float.h
++++ b/mingw-w64-headers/crt/float.h
+@@ -22,6 +22,15 @@
+ #if (__GNUC__ < 4)
+ #error Corrupt install of gcc-s internal headers, or search order was changed.
+ #else
++
++ /* From gcc-4.9.3 float.h. */
++ #undef FLT_EPSILON
++ #undef DBL_EPSILON
++ #undef LDBL_EPSILON
++ #define FLT_EPSILON __FLT_EPSILON__
++ #define DBL_EPSILON __DBL_EPSILON__
++ #define LDBL_EPSILON __LDBL_EPSILON__
++
+ /* #include_next <float_ginclude.h> */
+
+ /* Number of decimal digits, q, such that any floating-point number with q
+diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
+index 1e970f4..99a332f 100644
+--- a/mingw-w64-headers/crt/math.h
++++ b/mingw-w64-headers/crt/math.h
+@@ -216,6 +216,7 @@ extern "C" {
+ #endif
+ }
+
++#if 0
+ __CRT_INLINE long double __cdecl fabsl (long double x)
+ {
+ #ifdef __arm__
+@@ -226,6 +227,7 @@ extern "C" {
+ return res;
+ #endif
+ }
++#endif
+
+ __CRT_INLINE double __cdecl fabs (double x)
+ {
+@@ -905,7 +907,7 @@ __mingw_choose_expr ( \
+ /* 7.12.7.3 */
+ extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
+ extern float __cdecl hypotf (float x, float y);
+-#ifndef __CRT__NO_INLINE
++#if 0 //ndef __CRT__NO_INLINE
+ __CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot ((double)x, (double)y);}
+ #endif
+ extern long double __cdecl hypotl (long double, long double);
+diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h
+index dfc5ae4..6f0fee3 100644
+--- a/mingw-w64-headers/crt/stdlib.h
++++ b/mingw-w64-headers/crt/stdlib.h
+@@ -8,6 +8,7 @@
+
+ #include <crtdefs.h>
+ #include <limits.h>
++#include <string.h>
+
+ #if defined (__USE_MINGW_ANSI_STDIO) && ((__USE_MINGW_ANSI_STDIO + 0) != 0) && !defined (__USE_MINGW_STRTOX)
+ #define __USE_MINGW_STRTOX 1
+@@ -676,6 +677,8 @@ unsigned long __cdecl _lrotr(unsigned long,int);
+
+ #endif /* !__NO_ISOCEXT */
+
++char *__cdecl realpath (const char *name, char *resolved);
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/mingw-w64-headers/crt/sys/stat.h b/mingw-w64-headers/crt/sys/stat.h
+index ed60219..d88b4f1 100644
+--- a/mingw-w64-headers/crt/sys/stat.h
++++ b/mingw-w64-headers/crt/sys/stat.h
+@@ -58,16 +58,21 @@ extern "C" {
+ #include <_mingw_stat64.h>
+
+ #define _S_IFMT 0xF000
++#define _S_IFLNK 0xA000
++#define _S_IFSOCK 0xC000
+ #define _S_IFDIR 0x4000
+ #define _S_IFCHR 0x2000
+ #define _S_IFIFO 0x1000
+ #define _S_IFREG 0x8000
++#define _S_ISUID 0x0400
++#define _S_ISGID 0x0200
+ #define _S_IREAD 0x0100
+ #define _S_IWRITE 0x0080
+ #define _S_IEXEC 0x0040
+
+ _CRTIMP int __cdecl _fstat32(int _FileDes,struct _stat32 *_Stat);
+ _CRTIMP int __cdecl _stat32(const char *_Name,struct _stat32 *_Stat);
++ static inline int __cdecl _lstat32(const char *_Name,struct _stat32 *_Stat) {return _stat32(_Name, _Stat);}
+ _CRTIMP int __cdecl _fstat64(int _FileDes,struct _stat64 *_Stat);
+ _CRTIMP int __cdecl _fstat32i64(int _FileDes,struct _stat32i64 *_Stat);
+ int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat);
+@@ -97,6 +102,9 @@ extern "C" {
+ _CRTIMP int __cdecl _stat64(const char *_Name,struct _stat64 *_Stat);
+ _CRTIMP int __cdecl _stat32i64(const char *_Name,struct _stat32i64 *_Stat);
+ int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat);
++ static inline int __cdecl _lstat64(const char *_Name,struct _stat64 *_Stat) {return _stat64(_Name, _Stat);}
++ static inline int __cdecl _lstat32i64(const char *_Name,struct _stat32i64 *_Stat) {return _stat32i64(_Name, _Stat);}
++ static inline int __cdecl _lstat64i32(const char *_Name,struct _stat64i32 *_Stat) {return _stat64i32(_Name, _Stat);}
+ #ifndef __CRT__NO_INLINE
+ __CRT_INLINE int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat)
+ {
+@@ -132,6 +140,8 @@ extern "C" {
+ #ifndef NO_OLDNAMES
+ #define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */
+
++#define S_IFLNK _S_IFLNK
++#define S_IFSOCK _S_IFSOCK
+ #define S_IFMT _S_IFMT
+ #define S_IFDIR _S_IFDIR
+ #define S_IFCHR _S_IFCHR
+@@ -162,6 +172,11 @@ extern "C" {
+ #define S_IXOTH (S_IXGRP >> 3)
+ #define S_IRWXO (S_IRWXG >> 3)
+
++#define S_ISUID _S_ISUID
++#define S_ISGID _S_ISGID
++
++#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
++#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
+ #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+ #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
+ #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
+@@ -174,6 +189,7 @@ extern "C" {
+ int __cdecl stat(const char *_Filename,struct stat *_Stat);
+ int __cdecl fstat(int _Desc,struct stat *_Stat);
+ int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat);
++static inline int __cdecl lstat(const char *_Filename,struct stat *_Stat){return stat(_Filename, _Stat);}
+
+ #ifndef __CRT__NO_INLINE
+ #ifdef _USE_32BIT_TIME_T
+@@ -262,9 +278,11 @@ __CRT_INLINE int __cdecl
+
+ #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
+ #ifdef _USE_32BIT_TIME_T
++#define lstat _lstat32i64
+ #define stat _stat32i64
+ #define fstat _fstat32i64
+ #else
++#define lstat _lstat64
+ #define stat _stat64
+ #define fstat _fstat64
+ #endif
+diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
+index 52af29b..8626396 100644
+--- a/mingw-w64-headers/include/winnt.h
++++ b/mingw-w64-headers/include/winnt.h
+@@ -6895,7 +6895,12 @@ __buildmemorybarrier()
+ DWORD Reg : 3;
+ DWORD R : 1;
+ DWORD L : 1;
++/* C is used as a const specifier */
++#define save_C C
++#undef C
+ DWORD C : 1;
++#define C save_C
++#undef save_C
+ DWORD StackAdjust : 10;
+ } DUMMYSTRUCTNAME;
+ } DUMMYUNIONNAME;
diff --git a/gnu/packages/patches/readline-7.0-mingw.patch b/gnu/packages/patches/readline-7.0-mingw.patch
new file mode 100644
index 0000000000..1dc491d556
--- /dev/null
+++ b/gnu/packages/patches/readline-7.0-mingw.patch
@@ -0,0 +1,28 @@
+Configure checks for chown; add missing shields in code.
+
+Upstream status: not yet presented upstream.
+
+--- readline-7.0/histfile.c.orig 2016-12-06 20:04:10.058901731 +0100
++++ readline-7.0/histfile.c 2016-12-06 20:05:09.220083801 +0100
+@@ -610,8 +610,10 @@
+ user is running this, it's a no-op. If the shell is running after sudo
+ with a shared history file, we don't want to leave the history file
+ owned by root. */
++#if HAVE_CHOWN
+ if (rv == 0 && exists)
+ r = chown (filename, finfo.st_uid, finfo.st_gid);
++#endif
+
+ xfree (filename);
+ FREE (tempname);
+@@ -757,8 +759,10 @@
+ user is running this, it's a no-op. If the shell is running after sudo
+ with a shared history file, we don't want to leave the history file
+ owned by root. */
++#if HAVE_CHOWN
+ if (rv == 0 && exists)
+ mode = chown (histname, finfo.st_uid, finfo.st_gid);
++#endif
+
+ FREE (histname);
+ FREE (tempname);
diff --git a/gnu/packages/patches/seq24-rename-mutex.patch b/gnu/packages/patches/seq24-rename-mutex.patch
new file mode 100644
index 0000000000..ddc5910119
--- /dev/null
+++ b/gnu/packages/patches/seq24-rename-mutex.patch
@@ -0,0 +1,124 @@
+The custom mutex definition in Seq24 clashes with the mutex defined in gtkmm.
+This patch renames the custom definition.
+
+See https://bugs.launchpad.net/seq24/+bug/1647614 for upstream bug report.
+
+diff --git a/src/midibus.h b/src/midibus.h
+index 2cdf8e8..1bb02bd 100644
+--- a/src/midibus.h
++++ b/src/midibus.h
+@@ -90,7 +90,7 @@ class midibus
+
+
+ /* locking */
+- mutex m_mutex;
++ seq24mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -208,7 +208,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ seq24mutex m_mutex;
+
+ /* mutex */
+ void lock();
+diff --git a/src/midibus_portmidi.h b/src/midibus_portmidi.h
+index 0119e9c..8c6a27a 100644
+--- a/src/midibus_portmidi.h
++++ b/src/midibus_portmidi.h
+@@ -65,7 +65,7 @@ class midibus
+ long m_lasttick;
+
+ /* locking */
+- mutex m_mutex;
++ seq24mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -164,7 +164,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ seq24mutex m_mutex;
+
+ /* mutex */
+ void lock();
+diff --git a/src/mutex.cpp b/src/mutex.cpp
+index b3f23fd..914114f 100644
+--- a/src/mutex.cpp
++++ b/src/mutex.cpp
+@@ -20,23 +20,23 @@
+
+ #include "mutex.h"
+
+-const pthread_mutex_t mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
++const pthread_mutex_t seq24mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+ const pthread_cond_t condition_var::cond = PTHREAD_COND_INITIALIZER;
+
+-mutex::mutex( )
++seq24mutex::seq24mutex( )
+ {
+ m_mutex_lock = recmutex;
+ }
+
+ void
+-mutex::lock( )
++seq24mutex::lock( )
+ {
+ pthread_mutex_lock( &m_mutex_lock );
+ }
+
+
+ void
+-mutex::unlock( )
++seq24mutex::unlock( )
+ {
+ pthread_mutex_unlock( &m_mutex_lock );
+ }
+diff --git a/src/mutex.h b/src/mutex.h
+index 399f8a3..4f1b867 100644
+--- a/src/mutex.h
++++ b/src/mutex.h
+@@ -24,7 +24,7 @@
+
+ #include <pthread.h>
+
+-class mutex {
++class seq24mutex {
+
+ private:
+
+@@ -37,14 +37,14 @@ protected:
+
+ public:
+
+- mutex();
++ seq24mutex();
+
+ void lock();
+ void unlock();
+
+ };
+
+-class condition_var : public mutex {
++class condition_var : public seq24mutex {
+
+ private:
+
+diff --git a/src/sequence.h b/src/sequence.h
+index 2943946..9da8700 100644
+--- a/src/sequence.h
++++ b/src/sequence.h
+@@ -153,7 +153,7 @@ class sequence
+ long m_rec_vol;
+
+ /* locking */
+- mutex m_mutex;
++ seq24mutex m_mutex;
+
+ /* used to idenfity which events are ours in the out queue */
+ //unsigned char m_tag;
diff --git a/gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch b/gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch
new file mode 100644
index 0000000000..48c294f78e
--- /dev/null
+++ b/gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch
@@ -0,0 +1,31 @@
+Fix out-of-bounds read in c_substitute():
+
+http://seclists.org/oss-sec/2016/q4/612
+
+Patch copied from upstream source repository:
+
+https://github.com/tcsh-org/tcsh/commit/6a542dc4fb2ba26518a47e9b3a9bcd6a91b94596
+
+From 6a542dc4fb2ba26518a47e9b3a9bcd6a91b94596 Mon Sep 17 00:00:00 2001
+From: christos <christos>
+Date: Fri, 2 Dec 2016 16:59:28 +0000
+Subject: [PATCH] Fix out of bounds read (Brooks Davis) (reproduce by starting
+ tcsh and hitting tab at the prompt)
+
+---
+ ed.chared.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ed.chared.c b/ed.chared.c
+index 1277e53..310393e 100644
+--- ed.chared.c
++++ ed.chared.c
+@@ -750,7 +750,7 @@ c_substitute(void)
+ /*
+ * If we found a history character, go expand it.
+ */
+- if (HIST != '\0' && *p == HIST)
++ if (p >= InputBuf && HIST != '\0' && *p == HIST)
+ nr_exp = c_excl(p);
+ else
+ nr_exp = 0;
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 9ccbede873..a84ff43d77 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -64,7 +64,7 @@
(define-public php
(package
(name "php")
- (version "7.0.13")
+ (version "7.0.14")
(home-page "https://secure.php.net/")
(source (origin
(method url-fetch)
@@ -72,7 +72,7 @@
name "-" version ".tar.xz"))
(sha256
(base32
- "1gzihbpcp51jc587gs1ryn59hsnr7vf5427dmcvdimvm77wsfyrm"))
+ "12ccgbrfchgvmcfb88rcknq7xmrf19c5ysdr4v8jxk51j9izy78g"))
(modules '((guix build utils)))
(snippet
'(with-directory-excursion "ext"
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8f8b0de721..b0e23b5c1d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3924,14 +3924,14 @@ both of which are installed automatically if you install this library.")
(define-public python-sqlalchemy-utils
(package
(name "python-sqlalchemy-utils")
- (version "0.32.9")
+ (version "0.32.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy-Utils" version))
(sha256
(base32
- "1zbmmh7n8m01ikizn2mj1mfwch26nsr1awv9mvskqry7av0mpy98"))))
+ "1wghyvk73cmq3iqyg3fczw128fv2pan2v76m0xg1bw05h8fhvnk3"))))
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six)
@@ -4520,6 +4520,7 @@ standard library.")
(package-with-python2 python-simplegeneric))
(define-public python-ipython-genutils
+ ;; TODO: This package is retired, check if can be removed, see description.
(package
(name "python-ipython-genutils")
(version "0.1.0")
@@ -4536,7 +4537,13 @@ standard library.")
(home-page "http://ipython.org")
(synopsis "Vestigial utilities from IPython")
(description
- "This package provides retired utilities from IPython.")
+ "This package provides retired utilities from IPython. No packages
+outside IPython/Jupyter should depend on it.
+
+This package shouldn't exist. It contains some common utilities shared by
+Jupyter and IPython projects during The Big Split. As soon as possible, those
+packages will remove their dependency on this, and this package will go
+away.")
(license license:bsd-3)))
(define-public python2-ipython-genutils
@@ -4705,13 +4712,13 @@ tools for mocking system commands and recording calls to those.")
(define-public python-ipython
(package
(name "python-ipython")
- (version "4.0.0")
+ (version "4.0.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ipython" version ".tar.gz"))
(sha256
- (base32 "1npl8g6bfsff9j938ypx0q5fyzy2l8lp0jl8skjjj2zv0z27dlig"))))
+ (base32 "1h2gp1p06sww9rzfkfzqy489bh47gj3910y2b1wdk3dcx1cqz4is"))))
(build-system python-build-system)
(outputs '("out" "doc"))
(propagated-inputs
@@ -4844,14 +4851,14 @@ ISO 8601 dates, time and duration.")
(define-public python-html5lib
(package
(name "python-html5lib")
- (version "1.0b8")
+ (version "1.0b10")
(source
(origin
(method url-fetch)
(uri (pypi-uri "html5lib" version))
(sha256
(base32
- "1lknq5j3nh11xrl268ks76zaj0gyzh34v94n5vbf6dk8llzxdx0q"))))
+ "1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd"))))
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six))) ; required to "import html5lib"
@@ -6859,10 +6866,28 @@ convert an @code{.ipynb} notebook file into various static formats including:
(description
"The Jupyter HTML notebook is a web-based notebook environment for
interactive computing.")
+ (properties `((python2-variant . ,(delay python2-notebook))))
(license license:bsd-3)))
(define-public python2-notebook
- (package-with-python2 python-notebook))
+ (let ((base (package-with-python2
+ (strip-python2-variant python-notebook))))
+ (package (inherit base)
+ (native-inputs
+ `(("python2-mock" ,python2-mock)
+ ,@(package-native-inputs base)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'check 'disable-test-case
+ ;; The test requires network access to localhost. Curiously it
+ ;; fails with Python 2 only. Simply make the test-case return
+ ;; immediately.
+ (lambda _
+ (substitute*
+ "notebook/services/nbconvert/tests/test_nbconvert_api.py"
+ (("formats = self.nbconvert_api") "return #")))))))))))
(define-public python-widgetsnbextension
(package
@@ -9153,9 +9178,8 @@ useful for solving the Assignment Problem.")
(propagated-inputs
`(("python-itsdangerous" ,python-itsdangerous)
("python-jinja2" ,python-jinja2)
+ ("python-click" ,python-click)
("python-werkzeug" ,python-werkzeug)))
- (native-inputs
- `(("python-click" ,python-click)))
(home-page "https://github.com/mitsuhiko/flask/")
(synopsis "Microframework based on Werkzeug, Jinja2 and good intentions")
(description "Flask is a micro web framework based on the Werkzeug toolkit
@@ -11801,3 +11825,52 @@ the Flask web framework in Python. It is similar to package
@code{python-flask-restful} but supports the @code{python-swagger}
documentation builder.")
(license license:expat)))
+
+(define-public python-sadisplay
+ (package
+ (name "python-sadisplay")
+ (version "0.4.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sadisplay" version))
+ (sha256
+ (base32
+ "0zqad2fl7q26p090qmqgmxbm6iwgf9zij1w8da1g3wdgjj72ql05"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-sqlalchemy" ,python-sqlalchemy)))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "https://bitbucket.org/estin/sadisplay")
+ (synopsis "SQLAlchemy schema displayer")
+ (description "This package provides a program to build Entity
+Relationship diagrams from a SQLAlchemy model (or directly from the
+database).")
+ (license license:bsd-3)))
+
+(define-public python2-sadisplay
+ (package-with-python2 python-sadisplay))
+
+(define-public python-flask-restful-swagger
+ (package
+ (name "python-flask-restful-swagger")
+ (version "0.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "flask-restful-swagger" version))
+ (sha256
+ (base32
+ "16msl8hd5xjmj833bpy264v98cpl5hkw5bgl5gf5vgndxbv3rm6v"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-flask-restful" ,python-flask-restful)))
+ (home-page "https://github.com/rantav/flask-restful-swagger")
+ (synopsis "Extract Swagger specs from Flask-Restful projects")
+ (description "This package lets you extract Swagger API documentation
+specs from your Flask-Restful projects.")
+ (license license:expat)))
+
+(define-public python2-flask-restful-swagger
+ (package-with-python2 python-flask-restful-swagger))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index ae951aad5f..4a8fb6c66d 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1015,13 +1015,19 @@ module provides support functions to the automatically generated code.")
"."))
(lib (string-append out "/lib/python"
python-major+minor
- "/site-packages")))
+ "/site-packages"))
+ (stubs (string-append lib "/PyQt5")))
(zero? (system* "python" "configure.py"
"--confirm-license"
"--bindir" bin
"--destdir" lib
"--designer-plugindir" designer
"--qml-plugindir" qml
+ ; Where to install the PEP 484 Type Hints stub
+ ; files. Without this the stubs are tried to be
+ ; installed into the python package's
+ ; site-package directory, which is read-only.
+ "--stubsdir" stubs
"--sipdir" sip))))))))
(home-page "https://www.riverbankcomputing.com/software/pyqt/intro")
(synopsis "Python bindings for Qt")
@@ -1054,6 +1060,36 @@ contain over 620 classes.")
(base32
"056qmkv02wdcfblqdaxiswrgn4wa88sz22i1x58dpb1iniavplfd"))
(patches (search-patches "pyqt-configure.patch"))))
+ (arguments
+ `(#:modules ((srfi srfi-1)
+ ,@%gnu-build-system-modules)
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (sip (string-append out "/share/sip"))
+ (plugins (string-append out "/plugins"))
+ (designer (string-append plugins "/designer"))
+ (qml (string-append plugins "/PyQt5"))
+ (python (assoc-ref inputs "python"))
+ (python-version
+ (last (string-split python #\-)))
+ (python-major+minor
+ (string-join
+ (take (string-split python-version #\.) 2)
+ "."))
+ (lib (string-append out "/lib/python"
+ python-major+minor
+ "/site-packages")))
+ (zero? (system* "python" "configure.py"
+ "--confirm-license"
+ "--bindir" bin
+ "--destdir" lib
+ "--designer-plugindir" designer
+ "--qml-plugindir" qml
+ "--sipdir" sip))))))))
(native-inputs
`(("python-sip" ,python-sip)
("qt" ,qt)))))
@@ -1115,7 +1151,7 @@ contain over 620 classes.")
(define-public python2-pyqt-4
(package (inherit python-pyqt-4)
- (name "python2-pyqt-4")
+ (name "python2-pyqt")
(native-inputs
`(("python-sip" ,python2-sip)
("qt" ,qt-4)))
diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm
index 43817791b5..16a31afd73 100644
--- a/gnu/packages/readline.scm
+++ b/gnu/packages/readline.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,7 +25,8 @@
#:use-module (gnu packages perl)
#:use-module (guix packages)
#:use-module (guix download)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix utils))
(define-public readline
(let ((post-install-phase
@@ -61,8 +63,18 @@
;; cross-compiling, so provide the correct answer.
,@(if (%current-target-system)
'("bash_cv_wcwidth_broken=no")
+ '())
+ ;; MinGW: ncurses provides the termcap api.
+ ,@(if (target-mingw?)
+ '("bash_cv_termcap_lib=ncurses")
'()))
+ ,@(if (target-mingw?)
+ ;; MinGW: termcap in ncurses
+ ;; some SIG_* #defined in _POSIX
+ '(#:make-flags '("TERMCAP_LIB=-lncurses"
+ "CPPFLAGS=-D_POSIX -D'chown(f,o,g)=0'"))
+ '())
#:phases (alist-cons-after
'install 'post-install
,post-install-phase
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c57b09ec2d..276aa5bba8 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -102,6 +102,7 @@ a focus on simplicity and productivity.")
(define-public ruby-2.2
(package (inherit ruby)
+ (replacement #f)
(version "2.2.6")
(source
(origin
@@ -115,6 +116,7 @@ a focus on simplicity and productivity.")
(define-public ruby-2.1
(package (inherit ruby)
+ (replacement #f)
(version "2.1.10")
(source
(origin
@@ -148,6 +150,7 @@ a focus on simplicity and productivity.")
(define-public ruby-1.8
(package (inherit ruby)
+ (replacement #f)
(version "1.8.7-p374")
(source
(origin
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 1706ec3030..913d5f7d98 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -121,11 +122,16 @@ anywhere.")
;; XXX: heimdal not packaged.
"--bundled-libraries=com_err"
(string-append "--prefix=" out)
+ "--sysconfdir=/etc"
;; Install public and private libraries into
;; a single directory to avoid RPATH issues.
(string-append "--libdir=" libdir)
- (string-append "--with-privatelibdir=" libdir)))))))
-
+ (string-append "--with-privatelibdir=" libdir))))))
+ (add-before 'install 'disable-etc-samba-directory-creation
+ (lambda _
+ (substitute* "dynconfig/wscript"
+ (("bld\\.INSTALL_DIRS\\(\"\",[[:blank:]]{1,}\"\\$\\{CONFIGDIR\\}[[:blank:]]{1,}")
+ "bld.INSTALL_DIRS(\"\", \"")))))
;; XXX: The test infrastructure attempts to set password with
;; smbpasswd, which fails with "smbpasswd -L can only be used by root."
;; So disable tests until there's a workaround.
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index f3350ef501..1931609753 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -174,6 +174,7 @@ has a small feature set similar to a traditional Bourne shell.")
(define-public tcsh
(package
(name "tcsh")
+ (replacement tcsh/fixed)
(version "6.18.01")
(source (origin
(method url-fetch)
@@ -231,6 +232,15 @@ command-line editor, programmable word completion, spelling correction, a
history mechanism, job control and a C-like syntax.")
(license bsd-4)))
+(define tcsh/fixed
+ (package
+ (inherit tcsh)
+ (name "tcsh")
+ (source (origin
+ (inherit (package-source tcsh))
+ (patches (cons (search-patch "tcsh-fix-out-of-bounds-read.patch")
+ (origin-patches (package-source tcsh))))))))
+
(define-public zsh
(package
(name "zsh")
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index e1076c7c60..efedba480f 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -36,6 +37,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages wm)
@@ -261,6 +263,35 @@ multi-seat support, a replacement for @command{mingetty}, and more.")
(supported-systems (filter (cut string-suffix? "-linux" <>)
%supported-systems))))
+(define-public libtermkey
+ (package
+ (name "libtermkey")
+ (version "0.18")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.leonerd.org.uk/code/"
+ name "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "09ir16kaarv55mnc4jn2sqnjjhzpb1aha51wpd9ayif887g4d5r3"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags (list
+ "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))
+ #:test-target "test"))
+ (inputs `(("ncurses", ncurses)))
+ (native-inputs `(("libtool", libtool)
+ ("perl-test-harness" ,perl-test-harness)
+ ("pkg-config", pkg-config)))
+ (synopsis "Keyboard entry processing library for terminal-based programs")
+ (description
+ "Libtermkey handles all the necessary logic to recognise special keys, UTF-8
+combining, and so on, with a simple interface.")
+ (home-page "http://www.leonerd.org.uk/code/libtermkey")
+ (license license:expat)))
+
(define-public picocom
(package
(name "picocom")
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
new file mode 100644
index 0000000000..4e2324dbea
--- /dev/null
+++ b/gnu/packages/text-editors.scm
@@ -0,0 +1,77 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.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 text-editors)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages lua)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages terminals))
+
+(define-public vis
+ (package
+ (name "vis")
+ (version "0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/martanne/"
+ name "/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0bbmkblpndc53pvr8xcfywdn8g351yxfj8c46zp5d744c3bq2nry"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags '("CFLAGS=-pie")
+ #:tests? #f ; No tests.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-binary
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lpeg (assoc-ref inputs "lua-lpeg"))
+ (lua-version ,(version-major+minor (package-version lua)))
+ (LUA_PATH (string-append lpeg "/share/lua/"
+ lua-version "/?.lua"))
+ (LUA_CPATH (string-append lpeg "/lib/lua/"
+ lua-version "/?.so")))
+ (wrap-program (string-append out "/bin/vis")
+ `("LUA_PATH" ":" prefix (,LUA_PATH))
+ `("LUA_CPATH" ":" prefix (,LUA_CPATH)))
+ #t))))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "VIS_PATH")
+ (files '("share/vis")))))
+ (inputs `(("lua", lua)
+ ("ncurses", ncurses)
+ ("libtermkey", libtermkey)
+ ("lua-lpeg", lua-lpeg)))
+ (synopsis "Vim-like text editor")
+ (description
+ "Vis aims to be a modern, legacy free, simple yet efficient vim-like text
+editor. It extends vim's modal editing with built-in support for multiple
+cursors/selections and combines it with sam's structural regular expression
+based command language.")
+ (home-page "https://github.com/martanne/vis")
+ (license (list license:isc ; Main distribution.
+ license:public-domain ; map.[ch]
+ license:expat)))) ; lexers and libutf.[ch]
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 9b461aa170..6d5994bf36 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -39,14 +39,14 @@
(define-public tor
(package
(name "tor")
- (version "0.2.8.10")
+ (version "0.2.8.11")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz"))
(sha256
(base32
- "0kcw9hq4xz8p91xwyhjfry5p1dmn7vvnhpfz66vl9gsfndbqr2y8"))))
+ "1cvaviamvmajzpdgjn2k1rk3g9ywl1c4ygs5157gvnkyl6zs1pks"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2))) ; for tests
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index edd2d3a4dd..f6845fab04 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -684,14 +684,14 @@ property manipulation.")
(define-public subversion
(package
(name "subversion")
- (version "1.8.16")
+ (version "1.8.17")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.apache.org/dist/subversion/"
"subversion-" version ".tar.bz2"))
(sha256
(base32
- "0imkxn25n6sbcgfldrx4z29npjprb1lxjm5fb89q4297161nx3zi"))))
+ "1450fkj1jmxyphqn6cd95z1ykwsabajm9jw4i412qpwss8w9a4fy"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -705,7 +705,8 @@ property manipulation.")
;; nice if this fix ultimately made its way into libtool.
(let ((coreutils (assoc-ref inputs "coreutils")))
(substitute* "libtool"
- (("\\\\`ls") (string-append "\\`" coreutils "/bin/ls"))))))
+ (("\\\\`ls") (string-append "\\`" coreutils "/bin/ls")))
+ #t)))
(add-after 'install 'install-perl-bindings
(lambda* (#:key outputs #:allow-other-keys)
;; Follow the instructions from 'subversion/bindings/swig/INSTALL'.
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 3b93f27426..acacaea15d 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -212,14 +213,14 @@ television and DVD. It is also known as AC-3.")
(define-public libx264
(package
(name "libx264")
- (version "20160220-2245")
+ (version "20161205-2245")
(source (origin
(method url-fetch)
- (uri (string-append "http://download.videolan.org/pub/x264/snapshots/"
+ (uri (string-append "https://download.videolan.org/pub/x264/snapshots/"
"x264-snapshot-" version ".tar.bz2"))
(sha256
(base32
- "12zyzbiihfhamf7yi4qqaj6k0nisnrydvfr36kxadvmsm7dg4sj3"))))
+ "0jjzdwag59kqlk09bb2pykm1ss8bw3p9q7bsks2kjgdwbj121a44"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -245,7 +246,7 @@ television and DVD. It is also known as AC-3.")
(%current-system)))
'("--disable-asm")
'()))))
- (home-page "http://www.videolan.org/developers/x264.html")
+ (home-page "https://www.videolan.org/developers/x264.html")
(synopsis "H.264 video coding library")
(description "libx264 is an advanced encoding library for creating
H.264 (MPEG-4 AVC) video streams.")
@@ -441,14 +442,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 "3.2.1")
+ (version "3.2.2")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "1pxsy9s9n2nvz970rid3j3b45w6s7ziwnrbc16rny7k0bpd97kqy"))))
+ "1z7d5y5crhsl5fm74236rdwbkd4jj5frx1l4iizjfym1w4gvs09z"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)
@@ -1830,3 +1831,31 @@ supported players in addition to this package.")
of modern, widely supported codecs.")
;; Most under GPL version 2 or later, and portions under BSD 3 Clause
(license (list license:gpl2+ license:bsd-3))))
+
+(define-public openh264
+ (package
+ (name "openh264")
+ (version "1.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/cisco/"
+ name "/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ix2fhk62i4q4kbnkl0gfk4x53vxqavsn0pck1pashr566zhglv5"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("nasm" ,nasm)
+ ("python" ,python)))
+ (arguments
+ '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:test-target "test"
+ #:phases (modify-phases %standard-phases
+ ;; no configure script
+ (delete 'configure))))
+ (home-page "http://www.openh264.org/")
+ (synopsis "H264 decoder library")
+ (description
+ "Openh264 is a library which can decode H264 video streams.")
+ (license license:bsd-2)))
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 83c21249b4..09c958eb17 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -49,7 +49,7 @@
(define-public vim
(package
(name "vim")
- (version "8.0.0101")
+ (version "8.0.0124")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/vim/vim/archive/v"
@@ -57,7 +57,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0kzk1p5vnqr8j5jwb3p745zx3dki5jwlsp7rh6nli0ci2w6vg3r8"))))
+ "0mb8r677yxk0s8wc5dq6lf7y2bva64vgch65g53ai57az6lx85cd"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 697bab8e56..81676386a0 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -92,7 +92,9 @@
version ".tar.bz2"))
(sha256
(base32
- "0n2yx3gjlpr4kgqx845fj6amnmg25r2l6a7rzab5hxnpmar985hc"))))
+ "0n2yx3gjlpr4kgqx845fj6amnmg25r2l6a7rzab5hxnpmar985hc"))
+ (patches (search-patches "httpd-CVE-2016-8740.patch"))
+ (patch-flags '("-p0"))))
(build-system gnu-build-system)
(native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
(inputs `(("apr" ,apr)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 999f78927f..46a8c3f873 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -162,27 +162,49 @@ commands would.")
(define-public i3-wm
(package
(name "i3-wm")
- (version "4.12")
+ (version "4.13")
(source (origin
(method url-fetch)
(uri (string-append "https://i3wm.org/downloads/i3-"
version ".tar.bz2"))
(sha256
(base32
- "1d3q3lgpjbkmcwzjhp0dfr0jq847silcfg087slcnj95ikh1r7p1"))))
+ "12ngz32swh9n85xy0cz1lq16aqi9ys5hq19v589q9a97wn1k3hcl"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure))
- #:tests? #f)) ; no test suite
+ `(#:make-flags
+ (let* ((docbook-xsl-name-version ,(string-append
+ (package-name docbook-xsl) "-"
+ (package-version docbook-xsl)))
+ (docbook-xsl-catalog-file (string-append
+ (assoc-ref %build-inputs "docbook-xsl")
+ "/xml/xsl/"
+ docbook-xsl-name-version
+ "/catalog.xml"))
+ (docbook-xml-catalog-file (string-append
+ (assoc-ref %build-inputs "docbook-xml")
+ "/xml/dtd/docbook/catalog.xml")))
+ ;; Reference the catalog files required to build the manpages.
+ (list (string-append "XML_CATALOG_FILES=" docbook-xsl-catalog-file " "
+ docbook-xml-catalog-file)
+ "CC=gcc"
+ (string-append "PREFIX=" %output)
+ ;; This works around the following error:
+ ;; 'error: ‘for’ loop initial declarations are only allowed in C99
+ ;; or C11 mode'
+ "CFLAGS=-std=c11"))
+ ;; The build system tries to build in a separate directory, but that
+ ;; seems to be unnecessary.
+ #:configure-flags '("--disable-builddir")
+ ;; The test suite appears to require the unpackaged Perl module AnyEvent.
+ #:tests? #f))
(inputs
`(("libxcb" ,libxcb)
("xcb-util" ,xcb-util)
("xcb-util-cursor" ,xcb-util-cursor)
("xcb-util-keysyms" ,xcb-util-keysyms)
("xcb-util-wm" ,xcb-util-wm)
+ ("xcb-util-xrm" ,xcb-util-xrm)
("libxkbcommon" ,libxkbcommon)
("libev" ,libev)
("libyajl" ,libyajl)
@@ -198,7 +220,9 @@ commands would.")
(native-inputs
`(("which" ,which)
("perl" ,perl)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ;; For building the documentation.
+ ("docbook-xsl" ,docbook-xsl)))
(home-page "https://i3wm.org/")
(synopsis "Improved tiling window manager")
(description "A tiling window manager, completely written
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 4d387f1c04..3a72843b13 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5408,8 +5408,9 @@ The XCB util module provides the following libraries:
`(("m4" ,m4)
("pkg-config" ,pkg-config)))
(inputs
- `(("libxcb" ,libxcb)
- ("xcb-util-renderutil" ,xcb-util-renderutil)
+ `(("libxcb" ,libxcb)))
+ (propagated-inputs
+ `(("xcb-util-renderutil" ,xcb-util-renderutil)
("xcb-util-image" ,xcb-util-image)))
(home-page "https://cgit.freedesktop.org/xcb/util-cursor/")
(synopsis "Port of libxcursor")
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 2b3d3f8548..ea1ab63d1b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -269,10 +269,24 @@ FILE-SYSTEM."
#$(if create?
#~(mkdir-p #$target)
#t)
- (mount-file-system
- `(#$device #$title #$target #$type #$flags #$options
- #$check?) #:root "/")
- #t))
+
+ (let (($PATH (getenv "PATH")))
+ ;; Make sure fsck.ext2 & co. can be found.
+ (dynamic-wind
+ (lambda ()
+ (setenv "PATH"
+ (string-append
+ #$e2fsprogs "/sbin:"
+ "/run/current-system/profile/sbin:"
+ $PATH)))
+ (lambda ()
+ (mount-file-system
+ `(#$device #$title #$target #$type #$flags
+ #$options #$check?)
+ #:root "/"))
+ (lambda ()
+ (setenv "PATH" $PATH)))
+ #t)))
(stop #~(lambda args
;; Normally there are no processes left at this point, so
;; TARGET can be safely unmounted.
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index bbb9053008..d672ecf687 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -467,6 +467,9 @@ HiddenServicePort ~a ~a~%"
(chown "/var/lib/tor" (passwd:uid %user) (passwd:gid %user))
(chmod "/var/lib/tor" #o700)
+ ;; Make sure /var/lib is accessible to the 'tor' user.
+ (chmod "/var/lib" #o755)
+
(for-each initialize
'#$(map hidden-service-name
(tor-configuration-hidden-services config)))))