diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-12-09 18:11:14 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-12-09 18:11:14 +0100 |
commit | f80b4d2ce09b0b7770cbdf2f90704d41b0a168c5 (patch) | |
tree | ec47c7ee5d5579cfa00f13b5038ff3d8c87e4a48 /gnu | |
parent | 13b5f44b475aa385d580f7e19b907210bc1d6d99 (diff) | |
parent | 2608e40988ba8cf51723fe0d21bdedf6b3997c9c (diff) | |
download | guix-f80b4d2ce09b0b7770cbdf2f90704d41b0a168c5.tar guix-f80b4d2ce09b0b7770cbdf2f90704d41b0a168c5.tar.gz |
Merge remote-tracking branch 'origin/master' into staging
Diffstat (limited to 'gnu')
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))))) |