Merge remote-tracking branch 'origin/master' into staging

This commit is contained in:
Ludovic Courtès 2016-12-09 18:11:14 +01:00
commit f80b4d2ce0
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
72 changed files with 5789 additions and 2859 deletions

View file

@ -112,6 +112,7 @@ MODULES = \
guix/build/graft.scm \
guix/build/bournish.scm \
guix/build/qt-utils.scm \
guix/build/make-bootstrap.scm \
guix/search-paths.scm \
guix/packages.scm \
guix/import/utils.scm \

View file

@ -54,7 +54,6 @@
(gnu packages compression)
(gnu packages multiprecision)
(gnu packages make-bootstrap)
(gnu packages commencement)
(gnu packages package-management)
(gnu system)
(gnu system vm)
@ -112,7 +111,7 @@ (define %core-packages
gawk gnu-gettext hello guile-2.0 zlib gzip xz
%bootstrap-binaries-tarball
%binutils-bootstrap-tarball
%glibc-bootstrap-tarball
(%glibc-bootstrap-tarball)
%gcc-bootstrap-tarball
%guile-bootstrap-tarball
%bootstrap-tarballs))
@ -123,7 +122,8 @@ (define %packages-to-cross-build
(define %cross-targets
'("mips64el-linux-gnu"
"mips64el-linux-gnuabi64"
"arm-linux-gnueabihf"))
"arm-linux-gnueabihf"
"i686-w64-mingw32"))
(define (demo-os)
"Return the \"demo\" 'operating-system' structure."
@ -240,7 +240,7 @@ (define package->job
(match (package-transitive-inputs package)
(((_ inputs _ ...) ...)
inputs))))
%final-inputs))))
(%final-inputs)))))
(lambda (store package system)
"Return a job for PACKAGE on SYSTEM, or #f if this combination is not
valid."
@ -278,16 +278,22 @@ (define (same? target)
;; 'mips64el-linux'.
(string-contains target system))
(define (either proc1 proc2)
(define (pointless? target)
;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM.
(and (string-contains target "mingw")
(not (string=? "x86_64-linux" system))))
(define (either proc1 proc2 proc3)
(lambda (x)
(or (proc1 x) (proc2 x))))
(or (proc1 x) (proc2 x) (proc3 x))))
(append-map (lambda (target)
(map (lambda (package)
(package-cross-job store (job-name package)
package target system))
%packages-to-cross-build))
(remove (either from-32-to-64? same?) %cross-targets)))
(remove (either from-32-to-64? same? pointless?)
%cross-targets)))
;; Turn off grafts. Grafting is meant to happen on the user's machines.
(parameterize ((%graft? #f))

View file

@ -28,7 +28,8 @@ Copyright @copyright{} 2016 Efraim Flashner@*
Copyright @copyright{} 2016 John Darrington@*
Copyright @copyright{} 2016 ng0@*
Copyright @copyright{} 2016 Jan Nieuwenhuizen@*
Copyright @copyright{} 2016 Julien Lepiller
Copyright @copyright{} 2016 Julien Lepiller@*
Copyright @copyright{} 2016 Alex ter Weele
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -921,6 +922,13 @@ Port number of SSH server on the machine.
The SSH private key file to use when connecting to the machine, in
OpenSSH format.
@item @code{compression} (default: @code{"zlib@@openssh.com,zlib"})
@itemx @code{compression-level} (default: @code{3})
The SSH-level compression methods and compression level requested.
Note that offloading relies on SSH compression to reduce bandwidth usage
when transferring files to and from build machines.
@item @code{daemon-socket} (default: @code{"/var/guix/daemon-socket/socket"})
File name of the Unix-domain socket @command{guix-daemon} is listening
to on that machine.
@ -941,9 +949,8 @@ name, and they will be scheduled on matching build machines.
@end table
@end deftp
The @code{guix} command must be in the search path on the build
machines, since offloading works by invoking the @code{guix archive} and
@code{guix build} commands. In addition, the Guix modules must be in
The @code{guile} command must be in the search path on the build
machines. In addition, the Guix modules must be in
@code{$GUILE_LOAD_PATH} on the build machine---you can check whether
this is the case by running:
@ -978,6 +985,26 @@ the master receives files from a build machine (and @i{vice versa}), its
build daemon can make sure they are genuine, have not been tampered
with, and that they are signed by an authorized key.
@cindex offload test
To test whether your setup is operational, run this command on the
master node:
@example
# guix offload test
@end example
This will attempt to connect to each of the build machines specified in
@file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are
available on each machine, attempt to export to the machine and import
from it, and report any error in the process.
If you want to test a different machine file, just specify it on the
command line:
@example
# guix offload test machines-qualif.scm
@end example
@node Invoking guix-daemon
@section Invoking @command{guix-daemon}
@ -7155,7 +7182,15 @@ modifying or deleting previous generations. Old system generations get
an entry in the GRUB boot menu, allowing you to boot them in case
something went wrong with the latest generation. Reassuring, no? The
@command{guix system list-generations} command lists the system
generations available on disk.
generations available on disk. It is also possible to roll back the
system via the commands @command{guix system roll-back} and
@command{guix system switch-generation}.
Although the command @command{guix system reconfigure} will not modify
previous generations, must take care when the current generation is not
the latest (e.g., after invoking @command{guix system roll-back}), since
the operation might overwrite a later generation (@pxref{Invoking guix
system}).
@unnumberedsubsubsec The Programming Interface
@ -8555,7 +8590,7 @@ Thus, it can be instantiated like this:
(use-modules (gnu services networking)
(gnu packages admin))
(service wpa-supplicant-type wpa-supplicant)
(service wpa-supplicant-service-type wpa-supplicant)
@end lisp
@end defvr
@ -12580,6 +12615,12 @@ currently running; if a service is currently running, it does not
attempt to upgrade it since this would not be possible without stopping it
first.
This command creates a new generation whose number is one greater than
the current generation (as reported by @command{guix system
list-generations}). If that generation already exists, it will be
overwritten. This behavior mirrors that of @command{guix package}
(@pxref{Invoking guix package}).
It also adds a GRUB menu entry for the new OS configuration, and moves
entries for older configurations to a submenu---unless
@option{--no-grub} is passed.

View file

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

View file

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

View file

@ -141,14 +141,14 @@ (define-public progress
(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 @@ (define-public shepherd
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

View file

@ -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 @@ (define-public aspell-dict-he
#:sha256
(base32
"13bhbghx5b8g0119g3wxd4n8mlf707y41vlf59irxjj0kynankfn")))
(define-public aspell-dict-sv
(aspell-dictionary "sv" "Swedish"
#:version "0.51-0"
#:prefix "aspell-"
#:sha256
(base32
"02jwkjhr32kvyibnyzgx3smbnm576jwdzg3avdf6zxwckhy5fw4v")))

View file

@ -46,7 +46,8 @@ (define-module (gnu packages base)
#: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 @@ (define-public libiconv
(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)))

View file

@ -5629,7 +5629,7 @@ (define-public r-txdb-hsapiens-ucsc-hg19-knowngene
(define-public vsearch
(package
(name "vsearch")
(version "2.3.0")
(version "2.3.3")
(source
(origin
(method url-fetch)
@ -5639,7 +5639,7 @@ (define-public vsearch
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1r8fk3whkil348y5hfsd4r56qjmchhq4nxm6s7ra5rlisw0mf9fy"))
"1d3670apjy15c9l40fpq71lifxga6j9z2gisdirycwk18s4mvcp2"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -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 @@ (define-public aria2
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 @@ (define-public uget
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

View file

@ -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 @@ (define-module (gnu packages cross-base)
#: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 @@ (define (cross-gcc-arguments target libc)
`(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 @@ (define (cross-gcc-arguments target libc)
"--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 @@ (define (cross-gcc-arguments target libc)
,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 @@ (define* (cross-gcc target
(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 @@ (define* (cross-gcc target
(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 @@ (define* (cross-gcc target
;; 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 @@ (define xmig
(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 @@ (define xhurd-headers
(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 @@ (define xglibc/hurd-headers
(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 @@ (define xhurd-minimal
(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 @@ (define (cross-libc-for-target target)
(_ 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
(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
;; We need SRFI 26.
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
;; 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
,@(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))))
;; We need SRFI 26.
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
;; 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)))
,@(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))))
;; FIXME: 'static-bash' should really be an input, not a native input, but
;; to do that will require building an intermediate cross libc.
(inputs '())
;; 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)))
(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))))))
;; 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:

View file

@ -35,13 +35,7 @@ (define-public radicale
"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)))

View file

@ -273,7 +273,7 @@ (define-public geiser
"/geiser-" version ".tar.gz"))
(sha256
(base32
"1n772ysl1dmn0vy3gk230ymyjm14h93zw99y6h2rqp1ixy7v43dm"))))
"0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-after
@ -298,36 +298,8 @@ (define-public geiser
(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 @@ (define-public emacs-es-mode
(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 @@ (define-public emacs-expand-region
(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")

View file

@ -57,7 +57,7 @@ (define-module (gnu packages enlightenment)
(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 @@ (define-public efl
version ".tar.xz"))
(sha256
(base32
"1h347sfxajyb5s931m9qga14wwiqci7aicww2imxjhzm8w4fqj07"))))
"09c0ajszjarcs6d62zlgnf1aha2f921mfr0gxg6nwza36xzc1srr"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -197,7 +197,7 @@ (define-public rage
(define-public enlightenment
(package
(name "enlightenment")
(version "0.21.3")
(version "0.21.4")
(source (origin
(method url-fetch)
(uri
@ -205,7 +205,7 @@ (define-public enlightenment
name "/" name "-" version ".tar.xz"))
(sha256
(base32
"1ljzcq775njhbcaj8vdnypf2rgc6yqqdwfkf7c22603qvv9if1dr"))))
"085zn6vdy904fxa9krx7ljv61yg96b2xk56g0bx2lyq1d33sgl8f"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-mount-eeze")))

View file

@ -5688,3 +5688,39 @@ (define-public bluefish
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+)))

View file

@ -146,8 +146,8 @@ (define-public guile-2.0
(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 @@ (define-public guile-2.0
;; 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

View file

@ -43,14 +43,14 @@ (define-module (gnu packages imagemagick)
(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")

View file

@ -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 @@ (define-module (gnu packages irc)
#: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 @@ (define-module (gnu packages irc)
#: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 @@ (define-public limnoria
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"))))

View file

@ -820,14 +820,16 @@ (define-public libreoffice
(("./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

View file

@ -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 @@ (define-module (gnu packages libunistring)
#: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 @@ (define-public libunistring
(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

View file

@ -33,13 +33,13 @@ (define-module (gnu packages links)
(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

View file

@ -2563,55 +2563,21 @@ (define-public bluez
(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

View file

@ -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 @@ (define-module (gnu packages lua)
#: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 @@ (define-public lua-lgi
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)))

View file

@ -453,7 +453,7 @@ (define-public mu
(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 @@ (define-public alot
(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 @@ (define-public exim
(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 @@ (define-public dovecot
(("/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.

View file

@ -32,6 +32,7 @@ (define-module (gnu packages make-bootstrap)
#: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 @@ (define %binutils-static-stripped
#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 @@ (define %binutils-bootstrap-tarball
;; 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 @@ (define %bootstrap-tarballs
(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)

84
gnu/packages/mingw.scm Normal file
View file

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

View file

@ -49,7 +49,7 @@ (define-public mtools
(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 @@ (define-public exfat-utils
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")

View file

@ -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 @@ (define-public gmp
'(;; 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

View file

@ -1498,7 +1498,7 @@ (define-public drumstick
(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 @@ (define-public zynaddsubfx
version "/zynaddsubfx-" version ".tar.bz2"))
(sha256
(base32
"0p640hlw28264nzrnd2lm4bi5snas4fvh80p8lpxvph2hjw3sncl"))))
"1qijvlbv41lnqaqbp6gh1i42xzf1syviyxz8wr39xbz55cw7y0d8"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@ -1711,7 +1711,17 @@ (define-public ams-lv2
(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 @@ (define-public ingen
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")

View file

@ -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 @@ (define-module (gnu packages ncurses)
#: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"))
;; 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
(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"))
;; 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
,@(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")))
'())
(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

View file

@ -43,6 +43,14 @@ (define-public libtirpc
(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"))))))

View file

@ -226,9 +226,9 @@ (define guix-devel
;;
;; 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 @@ (define guix-devel
(commit commit)))
(sha256
(base32
"0k74j6m5hy055knirnry75qrgph4zywypxjyaqv6saixb6yx7av3"))
"0h73m1zad67qqn7ygypcqscicvqj31wwkxsr85d5lr77v6bx7b6z"))
(file-name (string-append "guix-" version "-checkout"))))
(arguments
(substitute-keyword-arguments (package-arguments guix-0.11.0)

View file

@ -45,7 +45,7 @@ (define-module (gnu packages parallel)
(define-public parallel
(package
(name "parallel")
(version "20161022")
(version "20161122")
(source
(origin
(method url-fetch)
@ -53,7 +53,7 @@ (define-public parallel
version ".tar.bz2"))
(sha256
(base32
"1mz82chm5qav6h64rcckxzabr7w4ma0sjx61xav85x0swgcbjdsr"))))
"0z5c4r35d926ac04ilaivx67cmflr1rsvmjb2ci7hmab948m0ng2"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -64,7 +64,7 @@ (define gd-for-php
(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 @@ (define-public php
name "-" version ".tar.xz"))
(sha256
(base32
"1gzihbpcp51jc587gs1ryn59hsnr7vf5427dmcvdimvm77wsfyrm"))
"12ccgbrfchgvmcfb88rcknq7xmrf19c5ysdr4v8jxk51j9izy78g"))
(modules '((guix build utils)))
(snippet
'(with-directory-excursion "ext"

View file

@ -3924,14 +3924,14 @@ (define-public python2-flask-babel
(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 @@ (define-public python2-simplegeneric
(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 @@ (define-public python-ipython-genutils
(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 @@ (define-public python2-testpath
(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 @@ (define-public python2-isodate
(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 @@ (define-public python-notebook
(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 @@ (define-public python-flask
(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 @@ (define-public python-flask-restplus
@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))

View file

@ -1015,13 +1015,19 @@ (define-public python-pyqt
"."))
(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 @@ (define-public python-pyqt-5.5
(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 @@ (define-public python-pyqt-4
(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)))

View file

@ -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 @@ (define-module (gnu packages readline)
#: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 @@ (define-public readline
;; 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

View file

@ -102,6 +102,7 @@ (define-public ruby
(define-public ruby-2.2
(package (inherit ruby)
(replacement #f)
(version "2.2.6")
(source
(origin
@ -115,6 +116,7 @@ (define-public ruby-2.2
(define-public ruby-2.1
(package (inherit ruby)
(replacement #f)
(version "2.1.10")
(source
(origin
@ -148,6 +150,7 @@ (define-public ruby-2.1
(define-public ruby-1.8
(package (inherit ruby)
(replacement #f)
(version "1.8.7-p374")
(source
(origin

View file

@ -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 @@ (define-public samba
;; 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.

View file

@ -174,6 +174,7 @@ (define-public rc
(define-public tcsh
(package
(name "tcsh")
(replacement tcsh/fixed)
(version "6.18.01")
(source (origin
(method url-fetch)
@ -231,6 +232,15 @@ (define-public tcsh
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")

View file

@ -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 @@ (define-module (gnu packages terminals)
#: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 @@ (define-public kmscon
(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")

View file

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

View file

@ -39,14 +39,14 @@ (define-module (gnu packages tor)
(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

View file

@ -684,14 +684,14 @@ (define-public neon
(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 @@ (define-public subversion
;; 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'.

View file

@ -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 @@ (define-public libmpeg2
(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 @@ (define-public libx264
(%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 @@ (define-public libva
(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 @@ (define-public handbrake
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)))

View file

@ -49,7 +49,7 @@ (define-module (gnu packages vim)
(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 @@ (define-public vim
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0kzk1p5vnqr8j5jwb3p745zx3dki5jwlsp7rh6nli0ci2w6vg3r8"))))
"0mb8r677yxk0s8wc5dq6lf7y2bva64vgch65g53ai57az6lx85cd"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"

View file

@ -92,7 +92,9 @@ (define-public httpd
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)

View file

@ -162,27 +162,49 @@ (define-public i3status
(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 @@ (define-public i3-wm
(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

View file

@ -5408,8 +5408,9 @@ (define-public xcb-util-cursor
`(("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")

View file

@ -269,10 +269,24 @@ (define (file-system-shepherd-service 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.

View file

@ -467,6 +467,9 @@ (define (initialize service)
(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)))))

View file

@ -0,0 +1,84 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015 Ludovic Courtès <ludo@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 (guix build make-bootstrap)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:use-module (guix build utils)
#:export (make-stripped-libc))
;; Commentary:
;;
;; This module provides facilities to build the bootstrap binaries.
;;
;; Code:
(define (make-stripped-libc output libc kernel-headers)
"Copy to OUTPUT the subset of LIBC and KERNEL-HEADERS that is needed
when producing a bootstrap libc."
(define (copy-mach-headers output kernel-headers)
(let* ((incdir (string-append output "/include")))
(copy-recursively (string-append libc "/include") incdir)
(copy-recursively (string-append kernel-headers "/include/mach")
(string-append incdir "/mach"))
#t))
(define (copy-linux-headers output kernel-headers)
(let* ((incdir (string-append output "/include")))
(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)
(install-file (string-append kernel-headers "/include/linux/" file)
(string-append incdir "/linux")))
'("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 kernel-headers "/include/asm")
(string-append incdir "/asm"))
(copy-recursively (string-append kernel-headers "/include/asm-generic")
(string-append incdir "/asm-generic"))
#t))
(define %libc-object-files-rx "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|\
util).*\\.so(\\..*)?|lib(machuser|hurduser).so.*|libc(rt|)_nonshared\\.a)$")
(setvbuf (current-output-port) _IOLBF)
(let* ((libdir (string-append output "/lib")))
(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") %libc-object-files-rx))
#t)
(if (directory-exists? (string-append kernel-headers "/include/mach"))
(copy-mach-headers output kernel-headers)
(copy-linux-headers output kernel-headers)))

View file

@ -75,6 +75,10 @@ (define-record-type* <build-machine>
(private-key build-machine-private-key ; file name
(default (user-openssh-private-key)))
(host-key build-machine-host-key) ; string
(compression build-machine-compression ; string
(default "zlib@openssh.com,zlib"))
(compression-level build-machine-compression-level ;integer
(default 3))
(daemon-socket build-machine-daemon-socket ; string
(default "/var/guix/daemon-socket/socket"))
(parallel-builds build-machine-parallel-builds ; number
@ -169,14 +173,16 @@ (define (open-ssh-session machine)
(session (make-session #:user (build-machine-user machine)
#:host (build-machine-name machine)
#:port (build-machine-port machine)
#:timeout 5 ;seconds
#:timeout 10 ;seconds
;; #:log-verbosity 'protocol
#:identity (build-machine-private-key machine)
;; We need lightweight compression when
;; exchanging full archives.
#:compression "zlib"
#:compression-level 3)))
#:compression
(build-machine-compression machine)
#:compression-level
(build-machine-compression-level machine))))
(match (connect! session)
('ok
;; Authenticate the server. XXX: Guile-SSH 0.10.1 doesn't know about
@ -384,7 +390,8 @@ (define store
;; Use exit code 100 for a permanent build failure. The daemon
;; interprets other non-zero codes as transient build failures.
(primitive-exit 100)))
(build-derivations store (list drv)))
(parameterize ((current-build-output-port (build-log-port)))
(build-derivations store (list drv))))
(retrieve-files outputs store)
(format (current-error-port) "done with offloaded '~a'~%"
@ -445,9 +452,11 @@ (define (send-files files remote)
(with-store store
(remove (cut valid-path? store <>)
',files)))))
(count (length missing))
(port (store-import-channel session)))
(format #t (_ "sending ~a store files to '~a'...~%")
(length missing) (session-get session 'host))
(format #t (N_ "sending ~a store item to '~a'...~%"
"sending ~a store items to '~a'...~%" count)
count (session-get session 'host))
;; Send MISSING in topological order.
(export-paths store missing port)
@ -466,9 +475,11 @@ (define (retrieve-files files remote)
"Retrieve FILES from SESSION's store, and import them."
(let* ((session (channel-get-session (nix-server-socket remote)))
(host (session-get session 'host))
(port (store-export-channel session files)))
(format #t (_ "retrieving ~a files from '~a'...~%")
(length files) host)
(port (store-export-channel session files))
(count (length files)))
(format #t (N_ "retrieving ~a store item from '~a'...~%"
"retrieving ~a store items from '~a'...~%" count)
count host)
;; We cannot use the 'import-paths' RPC here because we already
;; hold the locks for FILES.
@ -623,6 +634,86 @@ (define* (process-request wants-local? system drv features
;; Not now, all the machines are busy.
(display "# postpone\n")))))))
;;;
;;; Installation tests.
;;;
(define (assert-node-repl node name)
"Bail out if NODE is not running Guile."
(match (node-guile-version node)
(#f
(leave (_ "Guile could not be started on '~a'~%")
name))
((? string? version)
;; Note: The version string already contains the word "Guile".
(info (_ "'~a' is running ~a~%")
name (node-guile-version node)))))
(define (assert-node-has-guix node name)
"Bail out if NODE lacks the (guix) module, or if its daemon is not running."
(match (node-eval node
'(begin
(use-modules (guix))
(with-store store
(add-text-to-store store "test"
"Hello, build machine!"))))
((? string? str)
(info (_ "Guix is usable on '~a' (test returned ~s)~%")
name str))
(x
(leave (_ "failed to use Guix module on '~a' (test returned ~s)~%")
name x))))
(define %random-state
(delay
(seed->random-state (logxor (getpid) (car (gettimeofday))))))
(define (nonce)
(string-append (gethostname) "-"
(number->string (random 1000000 (force %random-state)))))
(define (assert-node-can-import node name daemon-socket)
"Bail out if NODE refuses to import our archives."
(let ((session (node-session node)))
(with-store store
(let* ((item (add-text-to-store store "export-test" (nonce)))
(remote (connect-to-remote-daemon session daemon-socket)))
(send-files (list item) remote)
(if (valid-path? remote item)
(info (_ "'~a' successfully imported '~a'~%")
name item)
(leave (_ "'~a' was not properly imported on '~a'~%")
item name))))))
(define (assert-node-can-export node name daemon-socket)
"Bail out if we cannot import signed archives from NODE."
(let* ((session (node-session node))
(remote (connect-to-remote-daemon session daemon-socket))
(item (add-text-to-store remote "import-test" (nonce)))
(port (store-export-channel session (list item))))
(with-store store
(if (and (import-paths store port)
(valid-path? store item))
(info (_ "successfully imported '~a' from '~a'~%")
item name)
(leave (_ "failed to import '~a' from '~a'~%")
item name)))))
(define (check-machine-availability machine-file)
"Check that each machine in MACHINE-FILE is usable as a build machine."
(let ((machines (build-machines machine-file)))
(info (_ "testing ~a build machines defined in '~a'...~%")
(length machines) machine-file)
(let* ((names (map build-machine-name machines))
(sockets (map build-machine-daemon-socket machines))
(sessions (map open-ssh-session machines))
(nodes (map make-node sessions)))
(for-each assert-node-repl nodes names)
(for-each assert-node-has-guix nodes names)
(for-each assert-node-can-import nodes names sockets)
(for-each assert-node-can-export nodes names sockets))))
;;;
;;; Entry point.
@ -673,6 +764,13 @@ (define not-coma
(else
(leave (_ "invalid request line: ~s~%") line)))
(loop (read-line)))))))
(("test" rest ...)
(with-error-handling
(let ((file (match rest
((file) file)
(() %machine-file)
(_ (leave (_ "wrong number of arguments~%"))))))
(check-machine-availability (or file %machine-file)))))
(("--version")
(show-version-and-exit "guix offload"))
(("--help")

View file

@ -365,6 +365,14 @@ (define (sans-content-length response)
(response-headers response)
eq?)))
(define (with-content-length response length)
"Return RESPONSE with a 'content-length' header set to LENGTH."
(set-field response (response-headers)
(alist-cons 'content-length length
(alist-delete 'content-length
(response-headers response)
eq?))))
(define-syntax-rule (swallow-EPIPE exp ...)
"Swallow EPIPE errors raised by EXP..."
(catch 'system-error
@ -432,13 +440,8 @@ (define (http-write server client response body)
(call-with-input-file (utf8->string body)
(lambda (input)
(let* ((size (stat:size (stat input)))
(headers (alist-cons 'content-length size
(alist-delete 'content-length
(response-headers response)
eq?)))
(response (write-response (set-field response
(response-headers)
headers)
(response (write-response (with-content-length response
size)
client))
(output (response-port response)))
(dump-port input output)

View file

@ -119,7 +119,7 @@ (define %options
(show-version-and-exit "guix refresh")))))
(define (show-help)
(display (_ "Usage: guix refresh [OPTION]... PACKAGE...
(display (_ "Usage: guix refresh [OPTION]... [PACKAGE]...
Update package definitions to match the latest upstream version.
When PACKAGE... is given, update only the specified packages. Otherwise

View file

@ -326,7 +326,7 @@ (define* (switch-to-system os
(let* ((system (derivation->output-path drv))
(number (+ 1 (generation-number profile)))
(generation (generation-file-name profile number)))
(symlink system generation)
(switch-symlinks generation system)
(switch-symlinks profile generation)
(format #t (_ "activating system...~%"))

View file

@ -374,29 +374,36 @@ (define* (open-connection #:optional (file (%daemon-socket-file))
should the disk become full. When CPU-AFFINITY is true, it must be an integer
corresponding to an OS-level CPU number to which the daemon's worker process
for this connection will be pinned. Return a server object."
(let ((port (or port (open-unix-domain-socket file))))
(write-int %worker-magic-1 port)
(let ((r (read-int port)))
(and (eqv? r %worker-magic-2)
(let ((v (read-int port)))
(and (eqv? (protocol-major %protocol-version)
(protocol-major v))
(begin
(write-int %protocol-version port)
(when (>= (protocol-minor v) 14)
(write-int (if cpu-affinity 1 0) port)
(when cpu-affinity
(write-int cpu-affinity port)))
(when (>= (protocol-minor v) 11)
(write-int (if reserve-space? 1 0) port))
(let ((conn (%make-nix-server port
(protocol-major v)
(protocol-minor v)
(make-hash-table 100)
(make-hash-table 100))))
(let loop ((done? (process-stderr conn)))
(or done? (process-stderr conn)))
conn))))))))
(guard (c ((nar-error? c)
;; One of the 'write-' or 'read-' calls below failed, but this is
;; really a connection error.
(raise (condition
(&nix-connection-error (file (or port file))
(errno EPROTO))
(&message (message "build daemon handshake failed"))))))
(let ((port (or port (open-unix-domain-socket file))))
(write-int %worker-magic-1 port)
(let ((r (read-int port)))
(and (eqv? r %worker-magic-2)
(let ((v (read-int port)))
(and (eqv? (protocol-major %protocol-version)
(protocol-major v))
(begin
(write-int %protocol-version port)
(when (>= (protocol-minor v) 14)
(write-int (if cpu-affinity 1 0) port)
(when cpu-affinity
(write-int cpu-affinity port)))
(when (>= (protocol-minor v) 11)
(write-int (if reserve-space? 1 0) port))
(let ((conn (%make-nix-server port
(protocol-major v)
(protocol-minor v)
(make-hash-table 100)
(make-hash-table 100))))
(let loop ((done? (process-stderr conn)))
(or done? (process-stderr conn)))
conn)))))))))
(define (close-connection server)
"Close the connection to SERVER."

View file

@ -70,6 +70,7 @@ (define-module (guix utils)
%current-system
%current-target-system
package-name->name+version
target-mingw?
version-compare
version>?
version>=?
@ -508,6 +509,10 @@ (define (package-name->name+version spec)
(idx (values (substring spec 0 idx)
(substring spec (1+ idx))))))
(define* (target-mingw? #:optional (target (%current-target-system)))
(and target
(string-suffix? "-mingw32" target)))
(define version-compare
(let ((strverscmp
(let ((sym (or (dynamic-func "strverscmp" (dynamic-link))

View file

@ -2631,6 +2631,21 @@ void DerivationGoal::closeLogFile()
}
static void _chown(const Path & path, uid_t uid, gid_t gid)
{
checkInterrupt();
if (lchown(path.c_str(), uid, gid) == -1) {
throw SysError(format("change owner and group of `%1%'") % path);
}
struct stat st = lstat(path);
if (S_ISDIR(st.st_mode)) {
for (auto & i : readDirectory(path))
_chown(path + "/" + i.name, uid, gid);
}
}
void DerivationGoal::deleteTmpDir(bool force)
{
if (tmpDir != "") {
@ -2639,6 +2654,12 @@ void DerivationGoal::deleteTmpDir(bool force)
format("note: keeping build directory `%2%'")
% drvPath % tmpDir);
chmod(tmpDir.c_str(), 0755);
// Change the ownership if clientUid is set. Never change the
// ownership or the group to "root" for security reasons.
if (settings.clientUid != (uid_t) -1 && settings.clientUid != 0) {
_chown(tmpDir, settings.clientUid,
settings.clientGid != 0 ? settings.clientGid : -1);
}
}
else
deletePath(tmpDir);

View file

@ -70,6 +70,12 @@ struct Settings {
subgoal of the same goal) fails. */
bool keepGoing;
/* User and groud id of the client issuing the build request. Used to set
the owner and group of the kept temporary directories of failed
builds. */
uid_t clientUid;
gid_t clientGid;
/* Whether, if we cannot realise the known closure corresponding
to a derivation, we should try to normalise the derivation
instead. */

View file

@ -5,6 +5,7 @@
#include "globals.hh"
#include <cstdlib>
#include <cstring>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
@ -159,7 +160,8 @@ void LocalStore::optimisePath_(OptimiseStats & stats, const Path & path, InodeHa
/* On ext4, that probably means the directory index is full. When
that happens, it's fine to ignore it: we just effectively
disable deduplication of this file. */
printMsg(lvlInfo, format("cannot link `%1%' to `%2%': %m") % linkPath % path);
printMsg(lvlInfo, format("cannot link `%1%' to `%2%': %3%")
% linkPath % path % strerror(ENOSPC));
return;
default:

View file

@ -960,6 +960,18 @@ static void daemonLoop()
strncpy(argvSaved[1], processName.c_str(), strlen(argvSaved[1]));
}
#if defined(SO_PEERCRED)
/* Store the client's user and group for this connection. This
has to be done in the forked process since it is per
connection. */
settings.clientUid = cred.uid;
settings.clientGid = cred.gid;
#else
/* Setting these to -1 means: do not change */
settings.clientUid = (uid_t) -1;
settings.clientGid = (gid_t) -1;
#endif
/* Handle the connection. */
from.fd = remote;
to.fd = remote;

File diff suppressed because it is too large Load diff

View file

@ -12,10 +12,8 @@ gnu/packages/compression.scm
gnu/packages/databases.scm
gnu/packages/debug.scm
gnu/packages/dejagnu.scm
gnu/packages/feh.scm
gnu/packages/games.scm
gnu/packages/gcc.scm
gnu/packages/geeqie.scm
gnu/packages/gettext.scm
gnu/packages/gimp.scm
gnu/packages/gnome.scm
@ -24,6 +22,7 @@ gnu/packages/gtk.scm
gnu/packages/guile.scm
gnu/packages/imagemagick.scm
gnu/packages/image.scm
gnu/packages/image-viewers.scm
gnu/packages/inkscape.scm
gnu/packages/jemalloc.scm
gnu/packages/key-mon.scm

File diff suppressed because it is too large Load diff

View file

@ -48,6 +48,15 @@ (define %store
(test-begin "store")
(test-equal "connection handshake error"
EPROTO
(let ((port (%make-void-port "rw")))
(guard (c ((nix-connection-error? c)
(and (eq? port (nix-connection-error-file c))
(nix-connection-error-code c))))
(open-connection #f #:port port)
'broken)))
(test-equal "store-path-hash-part"
"283gqy39v3g9dxjy26rynl0zls82fmcg"
(store-path-hash-part