Merge branch 'master' into core-updates

This commit is contained in:
Leo Famulari 2016-05-13 02:03:22 -04:00
commit eb74eb4199
No known key found for this signature in database
GPG key ID: 2646FA30BACA7F08
168 changed files with 5084 additions and 5879 deletions

View file

@ -12,6 +12,7 @@ Ben Woodcroft <donttrustben@gmail.com> <b.woodcroft@uq.edu.au>
Ben Woodcroft <donttrustben@gmail.com> <donttrustben near gmail.com>
Claes Wallin (韋嘉誠) <claes.wallin@greatsinodevelopment.com>
Cyprien Nicolas <cyprien@nicolas.tf> <c.nicolas+gitorious@gmail.com>
Danny Milosavljevic <dannym@scratchpost.org> <dannym+a@scratchpost.org>
David Thompson <davet@gnu.org> <dthompson2@worcester.edu>
David Thompson <davet@gnu.org> <dthompson@member.fsf.org>
David Thompson <davet@gnu.org> <dthompson@vistahigherlearning.com>
@ -28,10 +29,12 @@ Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>
Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com>
Nils Gillmann <niasterisk@grrlz.net> <ng@niasterisk.space>
Nils Gillmann <ng0@libertad.pw> <niasterisk@grrlz.net>
Nils Gillmann <ng0@libertad.pw> <ng@niasterisk.space>
Pjotr Prins <pjotr.public01@thebird.nl>
Pjotr Prins <pjotr.public01@thebird.nl> <pjotr.public12@thebird.nl>
Raimon Grau <raimonster@gmail.com> <raimon@3scale.net>
Raymond Nicholson <rain1@openmailbox.org>
Ricardo Wurmus <rekado@elephly.net>
Ricardo Wurmus <rekado@elephly.net> <ricardo.wurmus@mdc-berlin.de>
Sou Bunnbu (宋文武) <iyzsong@gmail.com>

View file

@ -38,6 +38,7 @@ MODULES = \
guix/hash.scm \
guix/pk-crypto.scm \
guix/pki.scm \
guix/combinators.scm \
guix/utils.scm \
guix/sets.scm \
guix/download.scm \
@ -231,6 +232,7 @@ SCM_TESTS = \
tests/ui.scm \
tests/records.scm \
tests/upstream.scm \
tests/combinators.scm \
tests/utils.scm \
tests/build-utils.scm \
tests/packages.scm \
@ -295,8 +297,11 @@ TESTS = $(SCM_TESTS) $(SH_TESTS)
AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)" GUILE_AUTO_COMPILE=0
SCM_LOG_DRIVER = $(top_builddir)/test-env $(GUILE) --no-auto-compile \
-e main $(top_srcdir)/build-aux/test-driver.scm
SCM_LOG_DRIVER = \
$(top_builddir)/test-env --quiet-stderr \
$(GUILE) --no-auto-compile -e main \
$(top_srcdir)/build-aux/test-driver.scm
AM_SCM_LOG_DRIVER_FLAGS = --brief=yes
SH_LOG_COMPILER = $(top_builddir)/test-env $(SHELL)
@ -325,6 +330,13 @@ check-local:
endif !CAN_RUN_TESTS
check-system: $(GOBJECTS)
$(AM_V_at)echo "Running system tests..."
$(AM_V_at)$(top_builddir)/pre-inst-env \
$(GUILE) --no-auto-compile \
-e '(@@ (run-system-tests) run-system-tests)' \
$(top_srcdir)/build-aux/run-system-tests.scm
# Public key used to sign substitutes from hydra.gnu.org.
dist_pkgdata_DATA = hydra.gnu.org.pub
@ -349,6 +361,7 @@ EXTRA_DIST = \
build-aux/make-binary-tarball.scm \
build-aux/generate-authors.scm \
build-aux/test-driver.scm \
build-aux/run-system-tests.scm \
srfi/srfi-37.scm.in \
srfi/srfi-64.scm \
srfi/srfi-64.upstream.scm \

View file

@ -0,0 +1,71 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 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 (run-system-tests)
#:use-module (gnu tests base)
#:use-module (guix store)
#:use-module (guix monads)
#:use-module (guix derivations)
#:use-module (guix ui)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-34)
#:export (run-system-tests))
(define (built-derivations* drv)
(lambda (store)
(guard (c ((nix-protocol-error? c)
(values #f store)))
(values (build-derivations store drv) store))))
(define (filterm mproc lst) ;XXX: move to (guix monads)
(with-monad %store-monad
(>>= (foldm %store-monad
(lambda (item result)
(mlet %store-monad ((keep? (mproc item)))
(return (if keep?
(cons item result)
result))))
'()
lst)
(lift1 reverse %store-monad))))
(define %system-tests
(list %test-basic-os))
(define (run-system-tests . args)
(with-store store
(run-with-store store
(mlet* %store-monad ((drv (sequence %store-monad %system-tests))
(out -> (map derivation->output-path drv)))
(mbegin %store-monad
(show-what-to-build* drv)
(set-build-options* #:keep-going? #t #:keep-failed? #t)
(built-derivations* drv)
(mlet %store-monad ((valid (filterm (store-lift valid-path?)
out))
(failed (filterm (store-lift
(negate valid-path?))
out)))
(format #t "TOTAL: ~a\n" (length drv))
(for-each (lambda (item)
(format #t "PASS: ~a~%" item))
valid)
(for-each (lambda (item)
(format #t "FAIL: ~a~%" item))
failed)
(exit (null? failed))))))))

View file

@ -29,12 +29,18 @@
# stdout.
unset CDPATH
case "$1" in
--quiet-stderr)
# Silence the daemon's output, which is often useless, as well as that
# of Bash (such as "Terminated" messages when 'guix-daemon' is
# killed.)
exec 2> /dev/null
shift
;;
esac
if [ -x "@abs_top_builddir@/guix-daemon" ]
then
# Silence the daemon's output, which is often useless, as well as that of
# Bash (such as "Terminated" messages when 'guix-daemon' is killed.)
exec 2> /dev/null
NIX_STORE_DIR="@GUIX_TEST_ROOT@/store"
# Do that because store.scm calls `canonicalize-path' on it.

View file

@ -166,6 +166,11 @@ Display package(s) located in the specified file. These files usually
have the following form: @file{gnu/packages/emacs.scm}, but don't type
them manually! Press @key{TAB} to complete the file name.
@item M-x guix-package-from-file
Display package that the code within the specified file evaluates to.
@xref{Invoking guix package, @code{--install-from-file}}, for an example
of what such a file may look like.
@item M-x guix-search-by-regexp
Search for packages by a specified regexp. By default ``name'',
``synopsis'' and ``description'' of the packages will be searched. This

View file

@ -18,7 +18,8 @@ Copyright @copyright{} 2014 Pierre-Antoine Rault@*
Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
Copyright @copyright{} 2015, 2016 Leo Famulari@*
Copyright @copyright{} 2016 Ben Woodcroft@*
Copyright @copyright{} 2016 Chris Marusich
Copyright @copyright{} 2016 Chris Marusich@*
Copyright @copyright{} 2016 Efraim Flashner
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -374,7 +375,7 @@ If that command fails because you do not have the required public key,
then run this command to import it:
@example
$ gpg --keyserver keys.gnupg.net --recv-keys 3D9AEBB5
$ gpg --keyserver keys.gnupg.net --recv-keys 090B11993D9AEBB5
@end example
@noindent
@ -7330,7 +7331,7 @@ See @code{man loadkeys} for details.
@end deffn
@deffn {Scheme Procedure} gpm-service-type [#:gpm @var{gpm}] @
@deffn {Scheme Procedure} gpm-service [#:gpm @var{gpm}] @
[#:options]
Run @var{gpm}, the general-purpose mouse daemon, with the given
command-line @var{options}. GPM allows users to use the mouse in the console,
@ -7390,6 +7391,17 @@ Return a service that runs NetworkManager, a network connection manager
attempting to keep network connectivity active when available.
@end deffn
@cindex Connman
@deffn {Scheme Procedure} connman-service @
[#:connman @var{connman}]
Return a service that runs @url{https://01.org/connman,Connman}, a network
connection manager.
This service adds the @var{connman} package to the global profile, providing
several the @command{connmanctl} command to interact with the daemon and
configure networking."
@end deffn
@deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
[#:name-service @var{%ntp-servers}]
Return a service that runs the daemon from @var{ntp}, the

37
emacs/guix-about.el Normal file
View file

@ -0,0 +1,37 @@
;;; guix-about.el --- Various info about Guix
;; Copyright © 2016 Alex Kost <alezost@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 Location as published by
;; the Free Software Foundation, either version 3 of the Location, 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 Location for more details.
;; You should have received a copy of the GNU General Public Location
;; along with this program. If not, see <http://www.gnu.org/locations/>.
;;; Commentary:
;; This file provides the code to display various info about Guix (e.g., its
;; version).
;;; Code:
(require 'guix-config)
;;;###autoload
(defun guix-version ()
"Display Guix version in the echo area."
(interactive)
(message "%s %s" guix-config-name guix-config-version))
(provide 'guix-about)
;;; guix-about.el ends here

View file

@ -1,7 +1,7 @@
;;; guix-config.el --- Compile-time configuration of Guix.
;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@ -20,6 +20,12 @@
;;; Code:
(defconst guix-config-name "@PACKAGE_NAME@"
"Guix full name.")
(defconst guix-config-version "@PACKAGE_VERSION@"
"Guix version.")
(defconst guix-config-emacs-interface-directory
(replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))

View file

@ -57,7 +57,7 @@ Return nil, if current buffer does not define a module."
(defun guix-guile-boolean (arg)
"Return a string with guile boolean value.
Transform elisp ARG (nil or non-nil) to the guile boolean (#f or #t)."
(concat "#" (prin1-to-string (if arg 't 'f))))
(if arg "#t" "#f"))
(defun guix-guile-keyword-regexp (keyword)
"Return regexp to find guile KEYWORD."

View file

@ -32,14 +32,6 @@
;; still "name-version" string. So id package parameter in the code
;; below is either an object-address number or a full-name string.
;; To speed-up the process of getting information, the following
;; auxiliary variables are used:
;;
;; - `%packages' - VHash of "package address"/"package" pairs.
;;
;; - `%package-table' - Hash table of
;; "name+version key"/"list of packages" pairs.
;;; Code:
(use-modules
@ -52,6 +44,7 @@
(srfi srfi-19)
(srfi srfi-26)
(guix)
(guix combinators)
(guix git-download)
(guix packages)
(guix profiles)
@ -100,38 +93,6 @@ (define* (make-package-specification name #:optional version output)
(string-append full-name ":" output)
full-name)))
(define name+version->key cons)
(define key->name+version car+cdr)
(define %package-vhash
(delay
(fold-packages (lambda (pkg res)
(vhash-consq (object-address pkg) pkg res))
vlist-null)))
(define (package-vhash)
"Return vhash of 'package ID (address)'/'package' pairs."
(force %package-vhash))
(define %package-table
(delay
(let ((table (make-hash-table (vlist-length (package-vhash)))))
(vlist-for-each
(lambda (elem)
(match elem
((address . pkg)
(let* ((key (name+version->key (package-name pkg)
(package-version pkg)))
(ref (hash-ref table key)))
(hash-set! table key
(if ref (cons pkg ref) (list pkg)))))))
(package-vhash))
table)))
(define (package-table)
"Return hash table of 'name+version key'/'list of packages' pairs."
(force %package-table))
(define (manifest-entry->name+version+output entry)
(values
(manifest-entry-name entry)
@ -339,15 +300,39 @@ (define (package-param package param)
;;; Finding packages.
(define (package-by-address address)
(match (vhash-assq address (package-vhash))
((_ . package) package)
(_ #f)))
(define-values (package-by-address
register-package)
(let ((table (delay (fold-packages
(lambda (package table)
(vhash-consq (object-address package)
package table))
vlist-null))))
(values
(lambda (address)
"Return package by its object ADDRESS."
(match (vhash-assq address (force table))
((_ . package) package)
(_ #f)))
(lambda (package)
"Register PACKAGE by its 'object-address', so that later
'package-by-address' can be used to access it."
(let ((table* (force table)))
(set! table
(delay (vhash-consq (object-address package)
package table*))))))))
(define (packages-by-name+version name version)
(or (hash-ref (package-table)
(name+version->key name version))
'()))
(define packages-by-name+version
(let ((table (delay (fold-packages
(lambda (package table)
(let ((file (location-file
(package-location package))))
(vhash-cons (cons (package-name package)
(package-version package))
package table)))
vlist-null))))
(lambda (name version)
"Return packages matching NAME and VERSION."
(vhash-fold* cons '() (cons name version) (force table)))))
(define (packages-by-full-name full-name)
(call-with-values
@ -434,6 +419,15 @@ (define (newest-available-packages)
'()
(find-newest-available-packages)))
(define (packages-from-file file)
"Return a list of packages from FILE."
(let ((package (load (canonicalize-path file))))
(if (package? package)
(begin
(register-package package)
(list package))
'())))
;;; Making package/output patterns.
@ -686,6 +680,8 @@ (define %patterns-makers
(lookup-license license-name))))
(location-proc (lambda (_ location)
(packages-by-location-file location)))
(file-proc (lambda (_ file)
(packages-from-file file)))
(all-proc (lambda _ (all-available-packages)))
(newest-proc (lambda _ (newest-available-packages))))
`((package
@ -696,6 +692,7 @@ (define %patterns-makers
(regexp . ,regexp-proc)
(license . ,license-proc)
(location . ,location-proc)
(from-file . ,file-proc)
(all-available . ,all-proc)
(newest-available . ,newest-proc))
(output
@ -706,6 +703,7 @@ (define %patterns-makers
(regexp . ,regexp-proc)
(license . ,license-proc)
(location . ,location-proc)
(from-file . ,file-proc)
(all-available . ,all-proc)
(newest-available . ,newest-proc)))))

View file

@ -44,6 +44,9 @@
,(lambda (_ entries locations)
(apply #'guix-message-packages-by-location
entries 'package locations)))
(from-file
(0 "No package in file '%s'." val)
(1 "Package from file '%s'." val))
(regexp
(0 "No packages matching '%s'." val)
(1 "A single package matching '%s'." val)
@ -80,6 +83,10 @@
,(lambda (_ entries locations)
(apply #'guix-message-packages-by-location
entries 'output locations)))
(from-file
(0 "No package in file '%s'." val)
(1 "Package from file '%s'." val)
(many "Package outputs from file '%s'." val))
(regexp
(0 "No package outputs matching '%s'." val)
(1 "A single package output matching '%s'." val)

View file

@ -393,15 +393,17 @@ formatted with this string, an action button is inserted.")
(guix-format-insert nil)
(let ((location-file (car (split-string location ":"))))
(guix-info-insert-value-indent location 'guix-package-location)
(guix-info-insert-indent)
(guix-info-insert-action-button
"Packages"
(lambda (btn)
(guix-package-get-display (guix-ui-current-profile)
'location
(button-get btn 'location)))
(format "Display packages from location '%s'" location-file)
'location location-file))))
;; Do not show "Packages" button if a package 'from file' is displayed.
(unless (eq (guix-ui-current-search-type) 'from-file)
(guix-info-insert-indent)
(guix-info-insert-action-button
"Packages"
(lambda (btn)
(guix-package-get-display (guix-ui-current-profile)
'location
(button-get btn 'location)))
(format "Display packages from location '%s'" location-file)
'location location-file)))))
(defun guix-package-info-insert-systems (systems entry)
"Insert supported package SYSTEMS at point."
@ -1000,6 +1002,19 @@ Interactively with prefix, prompt for PROFILE."
(guix-ui-read-profile)))
(guix-package-get-display profile 'location location))
;;;###autoload
(defun guix-package-from-file (file &optional profile)
"Display Guix package that the code from FILE evaluates to.
If PROFILE is nil, use `guix-current-profile'.
Interactively with prefix, prompt for PROFILE."
(interactive
(list (read-file-name "File with package: ")
(guix-ui-read-profile)))
(guix-buffer-get-display-entries
'info 'package
(list (or profile guix-current-profile) 'from-file file)
'add))
;;;###autoload
(defun guix-search-by-regexp (regexp &optional params profile)
"Search for Guix packages by REGEXP.

View file

@ -20,6 +20,7 @@
AUTOLOADS = emacs/guix-autoloads.el
ELFILES = \
emacs/guix-about.el \
emacs/guix-backend.el \
emacs/guix-base.el \
emacs/guix-build-log.el \

206
gnu/build/marionette.scm Normal file
View file

@ -0,0 +1,206 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 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 (gnu build marionette)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-26)
#:use-module (rnrs io ports)
#:use-module (ice-9 match)
#:export (marionette?
make-marionette
marionette-eval
marionette-control
%qwerty-us-keystrokes
marionette-type))
;;; Commentary:
;;;
;;; Instrumentation tools for QEMU virtual machines (VMs). A "marionette" is
;;; essentially a VM (a QEMU instance) with its monitor connected to a
;;; Unix-domain socket, and with a REPL inside the guest listening on a
;;; virtual console, which is itself connected to the host via a Unix-domain
;;; socket--these are the marionette's strings, connecting it to the almighty
;;; puppeteer.
;;;
;;; Code:
(define-record-type <marionette>
(marionette command pid monitor repl)
marionette?
(command marionette-command) ;list of strings
(pid marionette-pid) ;integer
(monitor marionette-monitor) ;port
(repl marionette-repl)) ;port
(define* (wait-for-monitor-prompt port #:key (quiet? #t))
"Read from PORT until we have seen all of QEMU's monitor prompt. When
QUIET? is false, the monitor's output is written to the current output port."
(define full-prompt
(string->list "(qemu) "))
(let loop ((prompt full-prompt)
(matches '())
(prefix '()))
(match prompt
(()
;; It's useful to set QUIET? so we don't display the echo of our own
;; commands.
(unless quiet?
(for-each (lambda (line)
(format #t "qemu monitor: ~a~%" line))
(string-tokenize (list->string (reverse prefix))
(char-set-complement (char-set #\newline))))))
((chr rest ...)
(let ((read (read-char port)))
(cond ((eqv? read chr)
(loop rest (cons read matches) prefix))
((eof-object? read)
(error "EOF while waiting for QEMU monitor prompt"
(list->string (reverse prefix))))
(else
(loop full-prompt
'()
(cons read (append matches prefix))))))))))
(define* (make-marionette command
#:key (socket-directory "/tmp") (timeout 20))
"Return a QEMU marionette--i.e., a virtual machine with open connections to the
QEMU monitor and to the guest's backdoor REPL."
(define (file->sockaddr file)
(make-socket-address AF_UNIX
(string-append socket-directory "/" file)))
(define extra-options
(list "-nographic"
"-monitor" (string-append "unix:" socket-directory "/monitor")
"-chardev" (string-append "socket,id=repl,path=" socket-directory
"/repl")
"-device" "virtio-serial"
"-device" "virtconsole,chardev=repl"))
(let ((monitor (socket AF_UNIX SOCK_STREAM 0))
(repl (socket AF_UNIX SOCK_STREAM 0)))
(bind monitor (file->sockaddr "monitor"))
(listen monitor 1)
(bind repl (file->sockaddr "repl"))
(listen repl 1)
(match (primitive-fork)
(0
(catch #t
(lambda ()
(close monitor)
(close repl)
(match command
((program . args)
(apply execl program program
(append args extra-options)))))
(lambda (key . args)
(print-exception (current-error-port)
(stack-ref (make-stack #t) 1)
key args)
(primitive-exit 1))))
(pid
(format #t "QEMU runs as PID ~a~%" pid)
(sigaction SIGALRM
(lambda (signum)
(display "time is up!\n") ;FIXME: break
#t))
(alarm timeout)
(match (accept monitor)
((monitor-conn . _)
(display "connected to QEMU's monitor\n")
(close-port monitor)
(wait-for-monitor-prompt monitor-conn)
(display "read QEMU monitor prompt\n")
(match (accept repl)
((repl-conn . addr)
(display "connected to guest REPL\n")
(close-port repl)
(match (read repl-conn)
('ready
(alarm 0)
(sigaction SIGALRM SIG_DFL)
(display "marionette is ready\n")
(marionette (append command extra-options) pid
monitor-conn repl-conn)))))))))))
(define (marionette-eval exp marionette)
"Evaluate EXP in MARIONETTE's backdoor REPL. Return the result."
(match marionette
(($ <marionette> command pid monitor repl)
(write exp repl)
(newline repl)
(read repl))))
(define (marionette-control command marionette)
"Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as
\"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc)
pcsys_monitor\")."
(match marionette
(($ <marionette> _ _ monitor)
(display command monitor)
(newline monitor)
(wait-for-monitor-prompt monitor))))
(define %qwerty-us-keystrokes
;; Maps "special" characters to their keystrokes.
'((#\newline . "ret")
(#\space . "spc")
(#\- . "minus")
(#\+ . "shift-equal")
(#\* . "shift-8")
(#\= . "equal")
(#\? . "shift-slash")
(#\[ . "bracket_left")
(#\] . "bracket_right")
(#\( . "shift-9")
(#\) . "shift-0")
(#\/ . "slash")
(#\< . "less")
(#\> . "shift-less")
(#\. . "dot")
(#\, . "comma")
(#\; . "semicolon")
(#\bs . "backspace")
(#\tab . "tab")))
(define* (string->keystroke-commands str
#:optional
(keystrokes
%qwerty-us-keystrokes))
"Return a list of QEMU monitor commands to send the keystrokes corresponding
to STR. KEYSTROKES is an alist specifying a mapping from characters to
keystrokes."
(string-fold-right (lambda (chr result)
(cons (string-append "sendkey "
(or (assoc-ref keystrokes chr)
(string chr)))
result))
'()
str))
(define* (marionette-type str marionette
#:key (keystrokes %qwerty-us-keystrokes))
"Type STR on MARIONETTE's keyboard, using the KEYSTROKES alist to map characters
to actual keystrokes."
(for-each (cut marionette-control <> marionette)
(string->keystroke-commands str keystrokes)))
;;; marionette.scm ends here

View file

@ -40,7 +40,6 @@ GNU_SYSTEM_MODULES = \
gnu/packages/anthy.scm \
gnu/packages/apl.scm \
gnu/packages/apr.scm \
gnu/packages/asciidoc.scm \
gnu/packages/aspell.scm \
gnu/packages/attr.scm \
gnu/packages/audacity.scm \
@ -73,6 +72,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/compression.scm \
gnu/packages/conkeror.scm \
gnu/packages/conky.scm \
gnu/packages/connman.scm \
gnu/packages/cook.scm \
gnu/packages/cpio.scm \
gnu/packages/cppi.scm \
@ -97,7 +97,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/dns.scm \
gnu/packages/docbook.scm \
gnu/packages/docker.scm \
gnu/packages/doxygen.scm \
gnu/packages/documentation.scm \
gnu/packages/dunst.scm \
gnu/packages/dvtm.scm \
gnu/packages/ebook.scm \
@ -107,6 +107,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/enchant.scm \
gnu/packages/engineering.scm \
gnu/packages/enlightenment.scm \
gnu/packages/entr.scm \
gnu/packages/fcitx.scm \
gnu/packages/feh.scm \
gnu/packages/figlet.scm \
@ -398,11 +399,16 @@ GNU_SYSTEM_MODULES = \
gnu/build/linux-container.scm \
gnu/build/linux-initrd.scm \
gnu/build/linux-modules.scm \
gnu/build/vm.scm
gnu/build/marionette.scm \
gnu/build/vm.scm \
\
gnu/tests.scm \
gnu/tests/base.scm
patchdir = $(guilemoduledir)/gnu/packages/patches
dist_patch_DATA = \
gnu/packages/patches/4store-fix-buildsystem.patch \
gnu/packages/patches/abiword-explictly-cast-bools.patch \
gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \
gnu/packages/patches/acl-hurd-path-max.patch \
@ -452,6 +458,8 @@ dist_patch_DATA = \
gnu/packages/patches/dico-libtool-deterministic.patch \
gnu/packages/patches/diffutils-gets-undeclared.patch \
gnu/packages/patches/dfu-programmer-fix-libusb.patch \
gnu/packages/patches/doc++-include-directives.patch \
gnu/packages/patches/doc++-segfault-fix.patch \
gnu/packages/patches/doxygen-test.patch \
gnu/packages/patches/duplicity-piped-password.patch \
gnu/packages/patches/duplicity-test_selection-tmp.patch \
@ -490,11 +498,7 @@ dist_patch_DATA = \
gnu/packages/patches/ghostscript-CVE-2015-3228.patch \
gnu/packages/patches/ghostscript-runpath.patch \
gnu/packages/patches/glib-networking-ssl-cert-file.patch \
gnu/packages/patches/glib-tests-desktop.patch \
gnu/packages/patches/glib-tests-homedir.patch \
gnu/packages/patches/glib-tests-prlimit.patch \
gnu/packages/patches/glib-tests-timer.patch \
gnu/packages/patches/glib-tests-gapplication.patch \
gnu/packages/patches/glibc-bootstrap-system.patch \
gnu/packages/patches/glibc-hurd-extern-inline.patch \
gnu/packages/patches/glibc-ldd-x86_64.patch \
@ -504,7 +508,6 @@ dist_patch_DATA = \
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
gnu/packages/patches/gmp-faulty-test.patch \
gnu/packages/patches/gnucash-price-quotes-perl.patch \
gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch \
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
gnu/packages/patches/gobject-introspection-cc.patch \
gnu/packages/patches/gobject-introspection-girepository.patch \
@ -520,29 +523,22 @@ dist_patch_DATA = \
gnu/packages/patches/guile-relocatable.patch \
gnu/packages/patches/guile-rsvg-pkgconfig.patch \
gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \
gnu/packages/patches/gtk2-theme-paths.patch \
gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
gnu/packages/patches/hdf5-config-date.patch \
gnu/packages/patches/hop-bigloo-4.0b.patch \
gnu/packages/patches/hop-linker-flags.patch \
gnu/packages/patches/hydra-automake-1.15.patch \
gnu/packages/patches/hydra-disable-darcs-test.patch \
gnu/packages/patches/hypre-doc-tables.patch \
gnu/packages/patches/hypre-ldflags.patch \
gnu/packages/patches/icecat-avoid-bundled-includes.patch \
gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \
gnu/packages/patches/icecat-update-bundled-graphite2.patch \
gnu/packages/patches/icecat-CVE-2016-2805.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch \
gnu/packages/patches/icecat-CVE-2016-2808.patch \
gnu/packages/patches/icecat-CVE-2016-2814.patch \
gnu/packages/patches/icu4c-CVE-2014-6585.patch \
gnu/packages/patches/icu4c-CVE-2015-1270.patch \
gnu/packages/patches/icu4c-CVE-2015-4760.patch \
gnu/packages/patches/ilmbase-fix-tests.patch \
gnu/packages/patches/imagemagick-test-segv.patch \
gnu/packages/patches/imlib2-CVE-2016-4024.patch \
gnu/packages/patches/inkscape-drop-wait-for-targets.patch \
gnu/packages/patches/irrlicht-mesa-10.patch \
gnu/packages/patches/jasper-CVE-2007-2721.patch \
gnu/packages/patches/jasper-CVE-2008-3520.patch \
@ -567,6 +563,7 @@ dist_patch_DATA = \
gnu/packages/patches/liba52-use-mtune-not-mcpu.patch \
gnu/packages/patches/libarchive-bsdtar-test.patch \
gnu/packages/patches/libarchive-CVE-2013-0211.patch \
gnu/packages/patches/libarchive-CVE-2016-1541.patch \
gnu/packages/patches/libarchive-fix-lzo-test-case.patch \
gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \
gnu/packages/patches/libbonobo-activation-test-race.patch \
@ -634,6 +631,7 @@ dist_patch_DATA = \
gnu/packages/patches/mupen64plus-ui-console-notice.patch \
gnu/packages/patches/mutt-store-references.patch \
gnu/packages/patches/net-tools-bitrot.patch \
gnu/packages/patches/netcdf-config-date.patch \
gnu/packages/patches/ngircd-handle-zombies.patch \
gnu/packages/patches/ngircd-no-dns-in-tests.patch \
gnu/packages/patches/ninja-tests.patch \
@ -642,6 +640,7 @@ dist_patch_DATA = \
gnu/packages/patches/nvi-assume-preserve-path.patch \
gnu/packages/patches/nvi-dbpagesize-binpower.patch \
gnu/packages/patches/nvi-db4.patch \
gnu/packages/patches/ocaml-CVE-2015-8869.patch \
gnu/packages/patches/ocaml-findlib-make-install.patch \
gnu/packages/patches/openexr-missing-samples.patch \
gnu/packages/patches/openimageio-boost-1.60.patch \
@ -680,8 +679,8 @@ dist_patch_DATA = \
gnu/packages/patches/plink-1.07-unclobber-i.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/polkit-drop-test.patch \
gnu/packages/patches/poppler-CVE-2015-8868.patch \
gnu/packages/patches/portaudio-audacity-compat.patch \
gnu/packages/patches/portmidi-modular-build.patch \
gnu/packages/patches/procmail-ambiguous-getline-debian.patch \
gnu/packages/patches/procps-non-linux.patch \
gnu/packages/patches/pt-scotch-build-parallelism.patch \
@ -707,18 +706,6 @@ dist_patch_DATA = \
gnu/packages/patches/python-paste-remove-timing-test.patch \
gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch \
gnu/packages/patches/qemu-CVE-2015-8558.patch \
gnu/packages/patches/qemu-CVE-2015-8567.patch \
gnu/packages/patches/qemu-CVE-2015-8613.patch \
gnu/packages/patches/qemu-CVE-2015-8619.patch \
gnu/packages/patches/qemu-CVE-2015-8701.patch \
gnu/packages/patches/qemu-CVE-2015-8743.patch \
gnu/packages/patches/qemu-CVE-2016-1568.patch \
gnu/packages/patches/qemu-CVE-2016-1922.patch \
gnu/packages/patches/qemu-CVE-2016-1981.patch \
gnu/packages/patches/qemu-CVE-2016-2197.patch \
gnu/packages/patches/qemu-usb-ehci-oob-read.patch \
gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch \
gnu/packages/patches/qt4-ldflags.patch \
gnu/packages/patches/ratpoison-shell.patch \
gnu/packages/patches/readline-link-ncurses.patch \
@ -753,10 +740,7 @@ dist_patch_DATA = \
gnu/packages/patches/ttfautohint-source-date-epoch.patch \
gnu/packages/patches/tophat-build-with-later-seqan.patch \
gnu/packages/patches/torsocks-dns-test.patch \
gnu/packages/patches/tvtime-gcc41.patch \
gnu/packages/patches/tvtime-pngoutput.patch \
gnu/packages/patches/tvtime-videodev2.patch \
gnu/packages/patches/tvtime-xmltv.patch \
gnu/packages/patches/totem-debug-format-fix.patch \
gnu/packages/patches/unzip-CVE-2014-8139.patch \
gnu/packages/patches/unzip-CVE-2014-8140.patch \
gnu/packages/patches/unzip-CVE-2014-8141.patch \
@ -792,6 +776,11 @@ dist_patch_DATA = \
gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \
gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch \
gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch \
gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch \
gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch \
gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch \
gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch \
gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch \
gnu/packages/patches/xdotool-fix-makefile.patch \
gnu/packages/patches/xf86-video-ark-remove-mibstore.patch \
gnu/packages/patches/xf86-video-ast-remove-mibstore.patch \

View file

@ -24,6 +24,7 @@ (define-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix ui)
#:use-module (guix utils)
#:use-module (guix combinators)
#:use-module ((guix build utils)
#:select ((package-name->name+version
. hyphen-separated-name->name+version)))

View file

@ -486,9 +486,9 @@ (define-public alive
(define-public isc-dhcp
(let* ((bind-major-version "9")
(bind-minor-version "9")
(bind-patch-version "8")
(bind-release-type "-P")
(bind-release-version "4")
(bind-patch-version "9")
(bind-release-type "") ; for patch release, use "-P"
(bind-release-version "") ; for patch release, e.g. "4"
(bind-version (string-append bind-major-version
"."
bind-minor-version
@ -498,14 +498,14 @@ (define-public isc-dhcp
bind-release-version)))
(package
(name "isc-dhcp")
(version "4.3.3-P1")
(version "4.3.4")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.isc.org/isc/dhcp/"
version "/dhcp-" version ".tar.gz"))
(sha256
(base32
"08crcsmg4dm2v533aq3883ik8mf4vvvd6r998r4vrgx1zxnqj7n1"))))
"0zk0imll6bfyp9p4ndn8h6s4ifijnw5bhixswifr5rnk7pp5l4gm"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f
@ -604,7 +604,7 @@ (define-public isc-dhcp
"/bind-" bind-version ".tar.gz"))
(sha256
(base32
"1wl9kl0630dc1qjrf7fnp8cscagfm5qgmisi0zhr1p6iwi9bil2y"))))
"0w8qqm6p2y6x57j2l0a3278g173wd84dsr4py9z00191f3wra74q"))))
;; When cross-compiling, we need the cross Coreutils and sed.
;; Otherwise just use those from %FINAL-INPUTS.
@ -874,7 +874,12 @@ (define-public wpa-supplicant-minimal
(search-patches "wpa-supplicant-CVE-2015-5310.patch"
"wpa-supplicant-CVE-2015-5314.patch"
"wpa-supplicant-CVE-2015-5315.patch"
"wpa-supplicant-CVE-2015-5316.patch"))))
"wpa-supplicant-CVE-2015-5316.patch"
"wpa-supplicant-CVE-2016-4476.patch"
"wpa-supplicant-CVE-2016-4477-pt1.patch"
"wpa-supplicant-CVE-2016-4477-pt2.patch"
"wpa-supplicant-CVE-2016-4477-pt3.patch"
"wpa-supplicant-CVE-2016-4477-pt4.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-replace
@ -1564,14 +1569,14 @@ (define-public audit
(define-public nmap
(package
(name "nmap")
(version "7.11")
(version "7.12")
(source (origin
(method url-fetch)
(uri (string-append "https://nmap.org/dist/nmap-" version
".tar.bz2"))
(sha256
(base32
"0jlmq1w0gjqpa7qa523kdj73ndm1xzww2wjvb94hxh6yalargyhk"))
"014vagh9ak10hidwzp9s6g30y5h5fhsh8wykcnc1hnn9hwm0ipv3"))
(modules '((guix build utils)))
(snippet
'(map delete-file-recursively

View file

@ -24,7 +24,7 @@ (define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fltk)
#:use-module (gnu packages gl)
#:use-module (gnu packages graphviz)

View file

@ -1,52 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 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 (gnu packages asciidoc)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages python)
#:use-module (guix build-system gnu)
#:autoload (gnu packages zip) (unzip))
(define-public asciidoc
(package
(name "asciidoc")
(version "8.6.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asciidoc/asciidoc-"
version ".tar.gz"))
(sha256
(base32
"1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq"))))
(build-system gnu-build-system)
(arguments '(#:tests? #f)) ; no 'check' target
(inputs `(("python" ,python-2)))
(home-page "http://www.methods.co.nz/asciidoc/")
(synopsis "Text-based document generation system")
(description
"AsciiDoc is a text document format for writing notes, documentation,
articles, books, ebooks, slideshows, web pages, man pages and blogs.
AsciiDoc files can be translated to many formats including HTML, PDF,
EPUB, man page.
AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
the backend output markups (which can be almost any type of SGML/XML
markup) can be customized and extended by the user.")
(license gpl2+)))

View file

@ -136,6 +136,7 @@ (define-public hdup
(define-public libarchive
(package
(name "libarchive")
(replacement libarchive/fixed)
(version "3.1.2")
(source
(origin
@ -193,6 +194,14 @@ (define-public libarchive
random access nor for in-place modification.")
(license license:bsd-2)))
(define libarchive/fixed
(package
(inherit libarchive)
(source (origin
(inherit (package-source libarchive))
(patches (cons (search-patch "libarchive-CVE-2016-1541.patch")
(origin-patches (package-source libarchive))))))))
(define-public rdup
(package
(name "rdup")

View file

@ -6,6 +6,7 @@
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; 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,7 @@
(define-module (gnu packages base)
#:use-module ((guix licenses)
#:select (gpl3+ lgpl2.0+ public-domain))
#:select (gpl3+ lgpl2.0+ lgpl3+ public-domain))
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages bash)
@ -920,6 +921,33 @@ (define-public tzdata
and daylight-saving rules.")
(license public-domain)))
(define-public libiconv
(package
(name "libiconv")
(version "1.14")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libiconv/libiconv-"
version ".tar.gz"))
(sha256
(base32
"04q6lgl3kglmmhw59igq1n7v3rp1rpkypl366cy1k1yn2znlvckj"))
(modules '((guix build utils)))
(snippet
;; Work around "declared gets" error on glibc systems (fixed by
;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.)
'(substitute* "srclib/stdio.in.h"
(("^#undef gets") "")
(("^_GL_WARN_ON_USE \\(gets.*") "")))))
(build-system gnu-build-system)
(synopsis "Character set conversion library")
(description
"libiconv provides an implementation of the iconv function for systems
that lack it. iconv is used to convert between character encodings in a
program. It supports a wide variety of different encodings.")
(home-page "http://www.gnu.org/software/libiconv/")
(license lgpl3+)))
(define-public (canonical-package package)
;; Avoid circular dependency by lazily resolving 'commencement'.
(let* ((iface (resolve-interface '(gnu packages commencement)))

View file

@ -318,3 +318,46 @@ (define-public bash-completion
completion for many common commands.")
(home-page "http://bash-completion.alioth.debian.org/")
(license gpl2+)))
(define-public bash-tap
(package
(name "bash-tap")
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/illusori/bash-tap/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0qs1qi38bl3ns4mpagcawv618dsk2q1lgrbddgvs0wl3ia12cyz5"))))
;; There is no compilation process to use this package, however, the bash
;; scripts installed by this package start with "#!/bin/bash". To fix
;; these lines, we use the patch-shebangs of the GNU build system. The
;; project does not use a Makefile.
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There is no test suite.
#:phases
(modify-phases %standard-phases
;; Because there are no configure scripts or Makefile, we can
;; remove these phases.
(delete 'configure)
(delete 'build)
;; The installation involves manually copying the files to a location.
;; To make them easily accessible by setting PATH, we add the scripts
;; to the "bin" folder.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(install-file "bash-tap" bin)
(install-file "bash-tap-bootstrap" bin)
(install-file "bash-tap-mock" bin)))))))
(home-page "http://www.illusori.co.uk/projects/bash-tap/")
(synopsis "Bash port of a Test::More/Test::Builder-style TAP-compliant
test library")
(description "Bash TAP is a TAP-compliant Test::More-style testing library
for Bash shell scripts and functions. Along with the Test::More-style testing
helpers it provides helper functions for mocking commands and in-process output
capturing.")
(license expat)))

View file

@ -44,7 +44,7 @@ (define-module (gnu packages bioinformatics)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpio)
#:use-module (gnu packages curl)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages file)
#:use-module (gnu packages gawk)
@ -1535,14 +1535,14 @@ (define-public diamond
(define-public edirect
(package
(name "edirect")
(version "3.50")
(version "4.10")
(source (origin
(method url-fetch)
;; Note: older versions are not retained.
(uri "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/edirect.tar.gz")
(uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/"
"versions/2016-05-03/edirect.tar.gz"))
(sha256
(base32
"1cr3gzcs3flmgnnbj5iz93vh9w0fca1ilzi2q82cl63ln3mwvpz0"))))
"15zsprak5yh8c1yrz4r1knmb5s8qcmdid4xdhkh3lqcv64l60hli"))))
(build-system perl-build-system)
(arguments
`(#:tests? #f ;no "check" target

View file

@ -27,7 +27,8 @@ (define-module (gnu packages bootstrap)
#:use-module (guix build-system trivial)
#:use-module ((guix store) #:select (add-to-store add-text-to-store))
#:use-module ((guix derivations) #:select (derivation))
#:use-module (guix utils)
#:use-module ((guix utils) #:select (gnu-triplet->nix-system))
#:use-module (guix combinators)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -47,11 +48,23 @@ (define-public libical
"14lmjj63zyx88rf1z71l0v9ms4c2vpdhmixksjjxgywp5p2f7708"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; test suite appears broken
'(#:tests? #f ; test suite appears broken
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-paths
(lambda _
(let ((tzdata (assoc-ref %build-inputs "tzdata")))
(substitute* "src/libical/icaltz-util.c"
(("char \\*search_paths \\[\\] =.*$")
(string-append
"char *search_paths [] = "
"{\"" tzdata "/share/zoneinfo\"};\n"))))
#t)))))
(native-inputs
`(("perl" ,perl)))
(inputs
`(("icu4c" ,icu4c)))
`(("icu4c" ,icu4c)
("tzdata" ,tzdata)))
(home-page "https://libical.github.io/libical/")
(synopsis "iCalendar protocols and data formats implementation")
(description

View file

@ -4,6 +4,7 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,10 +25,13 @@ (define-module (gnu packages cdrom)
#:use-module (guix download)
#:use-module (guix packages)
#:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+))
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gtk)
#:use-module (gnu packages man)
@ -230,16 +234,20 @@ (define-public dvdisaster
(define-public libcue
(package
(name "libcue")
(version "1.4.0")
(version "2.1.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/lipnitsk/libcue/releases/"
"download/v" version "/libcue-"
version ".tar.bz2"))
(uri (string-append
"https://github.com/lipnitsk/libcue/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb"))))
(build-system gnu-build-system)
"1fradl3dx0pyy9rn1a0gak9gzgg40wax61f2s00zks7rwl0xv398"))))
(build-system cmake-build-system)
(native-inputs
`(("bison" ,bison)
("flex" ,flex)))
(home-page "https://github.com/lipnitsk/libcue")
(synopsis "C library to parse cue sheets")
(description "Libcue is a C library to parse so-called @dfn{cue sheets}

View file

@ -906,4 +906,7 @@ (define-public gcc-toolchain-4.9
(define-public gcc-toolchain-5
(gcc-toolchain gcc-final))
(define-public gcc-toolchain-6
(gcc-toolchain gcc-6))
;;; commencement.scm ends here

89
gnu/packages/connman.scm Normal file
View file

@ -0,0 +1,89 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; 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 connman)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages glib)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages samba)
#:use-module (gnu packages tls)
#:use-module (gnu packages vpn))
(define-public connman
(package
(name "connman")
(version "1.32")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/network/connman/"
name "-" version ".tar.xz"))
(sha256
(base32
"0k4kw2j78gwxf0rq79a099qkzl6wi4v5i7rfs4rn0si0fd68d19i"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--enable-nmcompat"
;; "--enable-polkit"
"--enable-openconnect"
"--enable-openvpn"
"--enable-vpnc"
"--enable-pptp"
"--enable-l2tp"
(string-append
"--with-dbusconfdir=" (assoc-ref %outputs "out") "/etc")
(string-append
"--with-dbusdatadir=" (assoc-ref %outputs "out") "/share"))))
(native-inputs
`(("pkg-config", pkg-config)
("python" ,python-2)))
(inputs
`(("dbus" ,dbus)
("glib" ,glib)
("gnutls" ,gnutls)
("iptables" ,iptables)
;; ("polkit" ,polkit) ; pkg-config cannot find polkit.pc
("readline" ,readline)
;; These inputs are needed for connman to include the interface to
;; these technologies so IF they are installed they can be used.
;; TODO: add neard, ofono
("openconnect" ,openconnect)
("openvpn" ,openvpn)
("ppp", ppp)
("vpnc" ,vpnc)
("wpa-supplicant" ,wpa-supplicant)))
(home-page "https://01.org/connman")
(synopsis "Connection management daemon")
(description "Connman provides a daemon for managing Internet connections.
The Connection Manager is designed to be slim and to use as few resources as
possible. It is fully modular system that can be extended through plug-ins.
The plug-in approach allows for easy adaption and modification for various use
cases. Connman implements DNS resolving and caching, DHCP clients for both
IPv4 and IPv6, link-local IPv4 address handling and tethering (IP connection
sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
(license gpl2)))

View file

@ -1,6 +1,7 @@
;;; 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>
;;;
;;; This file is part of GNU Guix.
;;;
@ -174,26 +175,30 @@ (define (cross? x)
;; Return #t if X is a cross-libc or cross Linux.
(or (string-prefix? libc x)
(string-prefix? kernel x)))
(setenv "CROSS_CPATH"
(string-append libc "/include:"
kernel "/include"))
(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"))
(let ((cpath (search-path-as-string->list
(getenv "C_INCLUDE_PATH")))
(libpath (search-path-as-string->list
(getenv "LIBRARY_PATH"))))
(setenv "CPATH"
(list->search-path-as-string
(remove cross? cpath) ":"))
(for-each unsetenv
'("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))
(setenv "LIBRARY_PATH"
(list->search-path-as-string
(remove cross? libpath) ":"))
#t)))
(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)))))))
@ -259,9 +264,19 @@ (define* (cross-gcc target
(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_CPATH")
(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")
@ -316,9 +331,13 @@ (define xlinux-headers
`(alist-cons-before
'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((kernel (assoc-ref inputs "kernel-headers")))
(setenv "CROSS_CPATH"
(string-append kernel "/include"))
(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"))
#t))
,phases))))

View file

@ -2,13 +2,14 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,8 +28,12 @@
(define-module (gnu packages databases)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages perl)
#:use-module (gnu packages language)
#:use-module (gnu packages linux)
@ -40,9 +45,12 @@ (define-module (gnu packages databases)
#:use-module (gnu packages check)
#:use-module (gnu packages algebra)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages python)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages rdf)
#:use-module (gnu packages xml)
#:use-module (gnu packages bison)
#:use-module (gnu packages jemalloc)
@ -58,6 +66,51 @@ (define-module (gnu packages databases)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match))
(define-public 4store
(package
(name "4store")
(version "1.1.6")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/garlik/4store/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "004fmcf1w75zhc1x3zc6kc97j4jqn2v5nhk6yb3z3cpfrhzi9j50"))
(patches (list (search-patch "4store-fix-buildsystem.patch")))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)
("python" ,python-2)
("autoconf" ,autoconf)
("automake" ,automake)
("gettext" ,gnu-gettext)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("rasqal" ,rasqal)
("libxml2" ,libxml2)
("raptor2" ,raptor2)
("readline" ,readline)
("avahi" ,avahi)
("pcre" ,pcre)
("cyrus-sasl" ,cyrus-sasl)
("openssl" ,openssl)
("util-linux" ,util-linux)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'generate-configure
(lambda _
(zero? (system* "./autogen.sh")))))))
;; http://www.4store.org has been down for a while now.
(home-page "https://github.com/garlik/4store")
(synopsis "Clustered RDF storage and query engine")
(description "4store is a RDF/SPARQL store written in C, supporting
either single machines or networked clusters.")
(license gpl3+)))
(define-public gdbm
(package
(name "gdbm")
@ -814,14 +867,14 @@ (define-public unqlite
(define-public redis
(package
(name "redis")
(version "3.0.7")
(version "3.2.0")
(source (origin
(method url-fetch)
(uri (string-append "http://download.redis.io/releases/redis-"
version".tar.gz"))
(sha256
(base32
"08vzfdr67gp3lvk770qpax2c5g2sx8hn6p64jn3jddrvxb2939xj"))))
"0ql7zp061xr66a1dzpa6a0ijm8zm133dd364va7q5h8avkrim7wq"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; tests related to master/slave and replication fail

View file

@ -66,14 +66,14 @@ (define-public dnsmasq
(define-public bind-utils
(package
(name "bind-utils")
(version "9.10.3-P4")
(version "9.10.4")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.isc.org/isc/bind9/" version
"/bind-" version ".tar.gz"))
(sha256
(base32
"0giys46ifypysf799w9v58kbaz1v3fbdzw3s212znifzzfsl9h1a"))))
"0mmhzi4483mkak47wj255a36g3v0yilxwfwlbckr1hssinri5m7q"))))
(build-system gnu-build-system)
(inputs
;; it would be nice to add GeoIP and gssapi once there is package

View file

@ -0,0 +1,117 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.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 documentation)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages python)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gettext)
#:use-module (gnu packages perl)
#:use-module (gnu packages xml)
#:autoload (gnu packages zip) (unzip))
(define-public asciidoc
(package
(name "asciidoc")
(version "8.6.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asciidoc/asciidoc-"
version ".tar.gz"))
(sha256
(base32
"1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq"))))
(build-system gnu-build-system)
(arguments '(#:tests? #f)) ; no 'check' target
(inputs `(("python" ,python-2)))
(home-page "http://www.methods.co.nz/asciidoc/")
(synopsis "Text-based document generation system")
(description
"AsciiDoc is a text document format for writing notes, documentation,
articles, books, ebooks, slideshows, web pages, man pages and blogs.
AsciiDoc files can be translated to many formats including HTML, PDF,
EPUB, man page.
AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
the backend output markups (which can be almost any type of SGML/XML
markup) can be customized and extended by the user.")
(license gpl2+)))
(define-public doxygen
(package
(name "doxygen")
(version "1.8.11")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
name "-" version ".src.tar.gz"))
(sha256
(base32
"0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35"))
(patches (search-patches "doxygen-test.patch"))))
(build-system cmake-build-system)
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
("libxml2" ,libxml2) ; provides xmllint for the tests
("python" ,python-2))) ; for creating the documentation
(arguments
`(#:test-target "tests"))
(home-page "http://www.stack.nl/~dimitri/doxygen/")
(synopsis "Generate documentation from annotated sources")
(description "Doxygen is the de facto standard tool for generating
documentation from annotated C++ sources, but it also supports other popular
programming languages such as C, Objective-C, C#, PHP, Java, Python,
IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
and to some extent D.")
(license gpl3+)))
(define-public doc++
(package
(name "doc++")
(version "3.4.10")
(source (origin
(method url-fetch)
(uri (string-append "https://sourceforge.net/projects/docpp/"
"files/doc++-" version ".tar.gz"))
(sha256
(base32
"0i37zlxl8g352s4hzpdx0657k5x3czh3xcsfr27irc708gb277pn"))
(patches (search-patches "doc++-include-directives.patch"
"doc++-segfault-fix.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
("gettext" ,gnu-gettext)))
(home-page "http://docpp.sourceforge.net/")
(synopsis "Documentation system for C, C++, IDL, and Java")
(description
"DOC++ is a documentation system for C, C++, IDL, and Java. It can
generate both TeX output for high-quality hardcopies or HTML output for online
brwosing. The documentation is extracted directly from the C/C++/IDL source
or Java class files.")
(license gpl2+)))

View file

@ -1,59 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr>
;;;
;;; 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 doxygen)
#:use-module ((guix licenses) #:select (gpl3+))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages perl)
#:use-module (gnu packages xml)
#:use-module (gnu packages python))
(define-public doxygen
(package
(name "doxygen")
(version "1.8.11")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
name "-" version ".src.tar.gz"))
(sha256
(base32
"0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35"))
(patches (search-patches "doxygen-test.patch"))))
(build-system cmake-build-system)
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
("libxml2" ,libxml2) ; provides xmllint for the tests
("python" ,python-2))) ; for creating the documentation
(arguments
`(#:test-target "tests"))
(home-page "http://www.stack.nl/~dimitri/doxygen/")
(synopsis "Generate documentation from annotated sources")
(description "Doxygen is the de facto standard tool for generating
documentation from annotated C++ sources, but it also supports other popular
programming languages such as C, Objective-C, C#, PHP, Java, Python,
IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
and to some extent D.")
(license gpl3+)))

66
gnu/packages/entr.scm Normal file
View file

@ -0,0 +1,66 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016 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 (gnu packages entr)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public entr
(package
(name "entr")
(version "3.5")
(source (origin
(method url-fetch)
(uri (string-append "http://entrproject.org/code/entr-"
version ".tar.gz"))
(sha256
(base32
"05k4jyjna0pr2dalwc1l1dhrcyk6pw7hbss7jl4ykwfadcs5br73"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:phases (modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" (which "bash"))
(setenv "CC" (which "gcc"))
(setenv "DESTDIR" (string-append out "/"))
(setenv "PREFIX" "")
(setenv "MANPREFIX" "man")
(zero? (system* "./configure")))))
(add-before 'build 'remove-fhs-file-names
(lambda _
;; Use the tools available in $PATH.
(substitute* "entr.c"
(("/bin/cat") "cat")
(("/usr/bin/clear") "clear")))))))
(home-page "http://entrproject.org/")
(synopsis "Run arbitrary commands when files change")
(description
"entr is a zero-configuration tool with no external build- or run-time
dependencies. The interface to entr is not only minimal, it aims to be simple
enough to create a new category of ad hoc automation. These micro-tests
reduce keystrokes, but more importantly they emphasize the utility of
automated checks.")
;; Per 'LICENSE', portability code under missing/ is under BSD-2.
(license isc)))

View file

@ -21,7 +21,7 @@ (define-module (gnu packages fcitx)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)

View file

@ -18,7 +18,7 @@
(define-module (gnu packages fish)
#:use-module (guix licenses)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
#:use-module (guix packages)

View file

@ -46,23 +46,21 @@ (define-module (gnu packages fontutils)
(define-public freetype
(package
(name "freetype")
(version "2.6")
(version "2.6.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/freetype/freetype-"
version ".tar.bz2"))
(sha256 (base32
"0zilx15fwcpa8hmcxpc423jwb8ijw4qpq968kh18akvn4j0znsc4"))))
"18k3b026762lmyrxfil5xv8qwnvj7hc12gz9bjqzbb12lmx707ip"))))
(build-system gnu-build-system)
(arguments
`(#:phases
;; This should not be necessary; reported upstream as
;; https://savannah.nongnu.org/bugs/index.php?44261
(alist-cons-before
'configure 'set-paths
(lambda _
(setenv "CONFIG_SHELL" (which "bash")))
%standard-phases)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(propagated-inputs
;; These are all in the Requires.private field of freetype2.pc.
;; XXX: add harfbuzz.
`(("libpng" ,libpng)
("zlib" ,zlib)))
(synopsis "Font rendering library")
(description
"Freetype is a library that can be used by applications to access the
@ -361,16 +359,15 @@ (define-public teckit
(define-public graphite2
(package
(name "graphite2")
(version "1.3.6")
(version "1.3.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/silnrsi/graphite/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(uri (string-append "https://github.com/silnrsi/graphite/releases/"
"download/" version "/" name "-" version ".tgz"))
(sha256
(base32
"1frd9mjaqzvh9gs74ngc43igi53vzjzlwr5chbrs6ii1hc4aa23s"))))
"1hlc9j7w7gihy6gvzfa7902pr6yxq1sr1xkp5rwf0p29m2rjagwz"))))
(build-system cmake-build-system)
(native-inputs
`(("python" ,python-2) ; because of "import imap" in tests

View file

@ -46,7 +46,7 @@ (define-module (gnu packages freedesktop)
#:use-module (gnu packages boost)
#:use-module (gnu packages m4)
#:use-module (gnu packages compression)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages libffi)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
@ -338,14 +338,14 @@ (define-public libatasmart
(define-public udisks
(package
(name "udisks")
(version "2.1.6")
(version "2.1.7")
(source (origin
(method url-fetch)
(uri (string-append "https://udisks.freedesktop.org/releases/"
name "-" version ".tar.bz2"))
(sha256
(base32
"0spl155k0g2l2hvqf8xyjv08i68gfyhzpjva6cwlzxx0bz4gbify"))))
"119pr2zbff8vkwlhghim7d7ir24c1dil9hp4q49wm4f6pnrjpbmb"))))
(build-system gnu-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums

View file

@ -33,7 +33,7 @@ (define-module (gnu packages game-development)
#:use-module (gnu packages)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnunet)
#:use-module (gnu packages guile)
@ -129,7 +129,7 @@ (define-public gzochi
(define-public tiled
(package
(name "tiled")
(version "0.15.1")
(version "0.16.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/bjorn/tiled/archive/v"
@ -137,7 +137,7 @@ (define-public tiled
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"10bbjdv5r36229r1dqg32bxcj9yvpkx9jgs9v4s1qb71v856b15h"))))
"0s1i6yhm1z9ayzjh8cprcc9jvj5m87l9snyqg6w7zlj3q9zn4rn6"))))
(build-system gnu-build-system)
(inputs `(("qt" ,qt)
("zlib" ,zlib)))
@ -374,15 +374,7 @@ (define-public aseprite
"-DENABLE_UPDATER=0" ; no auto-updates
(string-append "-DFREETYPE_INCLUDE_DIR="
(assoc-ref %build-inputs "freetype")
"/include/freetype2"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-freetype-utils
(lambda _
;; Fix C preprocessor include directive.
(substitute* '("src/app/util/freetype_utils.cpp")
(("freetype/") ""))
#t)))))
"/include/freetype2"))))
(native-inputs
`(("pkg-config" ,pkg-config)))
;; TODO: Use a patched Allegro 4 that supports window resizing. This

View file

@ -19,6 +19,7 @@
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -92,6 +93,7 @@ (define-module (gnu packages games)
#:use-module (gnu packages xml)
#:use-module (gnu packages tcl)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages xdisorg)
#:use-module (guix build-system trivial)
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell)
@ -1021,14 +1023,14 @@ (define-public gnujump
(define-public wesnoth
(package
(name "wesnoth")
(version "1.12.4")
(version "1.12.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/"
name "-" version ".tar.bz2"))
(sha256
(base32
"19qyylylaljhk45lk2ja0xp7cx9iy4hx07l65zkg20a2v9h50lmz"))))
"07d8ms9ayswg2g530p0zwmz3d77zv68l6nmc718iq9sbv90av6jr"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no check target
@ -2097,7 +2099,7 @@ (define-public powwow
http://lavachat.symlynx.com/unix/")
(license license:gpl2+)))
(define-public redeclipse
(define-public red-eclipse
(let ((data-sources
'(("acerspyro" "0gxxr6nbac918b49x1cp72nw951hqm5m4iyi2shb1612ly384w8q")
("actors" "1jq9q82m6nx07nwpb5cnpdcwa33jrcgg0j2yir8zk6zpnxdmp0il")
@ -2133,7 +2135,7 @@ (define-public redeclipse
("weapons" "1ghn6nfcnd5lyl8dnj22csldvf9hrb32wjzpab4sjjz3iyv0zmr3")
("wicked" "0q9badvg6ix5rhl05s83kw2v6a49jpnbkqk4ls89qahaddfagi8g"))))
(package
(name "redeclipse")
(name "red-eclipse")
(version "1.5.3")
(source (origin
(method url-fetch)

View file

@ -29,7 +29,7 @@ (define-module (gnu packages gcc)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages xml)
#:use-module (gnu packages docbook)
#:use-module (gnu packages graphviz)
@ -357,6 +357,19 @@ (define-public gcc-5
;; GCC 5 ships with .info files, so no need for Texinfo.
(native-inputs '())))
(define-public gcc-6
(package
(inherit gcc-5)
(version "6.1.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcc/gcc-"
version "/gcc-" version ".tar.bz2"))
(sha256
(base32
"0ld3y4rgimyqgx1nwvzqyl5gr4wzc0ch4akkvsqp3fgbmdfcii09"))
(patches (search-patches "gcc-5.0-libvtv-runpath.patch"))))))
;; Note: When changing the default gcc version, update
;; the gcc-toolchain-* definitions accordingly.
(define-public gcc gcc-5)

View file

@ -35,6 +35,7 @@ (define-module (gnu packages glib)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@ -59,7 +60,7 @@ (define-module (gnu packages glib)
(define dbus
(package
(name "dbus")
(version "1.10.0")
(version "1.10.8")
(source (origin
(method url-fetch)
(uri (string-append
@ -67,7 +68,7 @@ (define dbus
version ".tar.gz"))
(sha256
(base32
"0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx"))
"0560y3hxpgh346w6avcrcz79c8ansmn771y5xpcvvlr6m8mx5wxs"))
(patches (search-patches "dbus-helper-search-path.patch"))))
(build-system gnu-build-system)
(arguments
@ -129,7 +130,7 @@ (define dbus
(define glib
(package
(name "glib")
(version "2.46.1")
(version "2.48.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
@ -137,16 +138,14 @@ (define glib
name "-" version ".tar.xz"))
(sha256
(base32
"1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss"))
(patches (search-patches "glib-tests-homedir.patch"
"glib-tests-desktop.patch"
"glib-tests-prlimit.patch"
"glib-tests-timer.patch"
"glib-tests-gapplication.patch"))))
"0d3w2hblrw7vvpx60l1kbvb830ygn3v8zhwdz65cc5593j9ycjvl"))
(patches (search-patches "glib-tests-timer.patch"))))
(build-system gnu-build-system)
(outputs '("out" ; everything
"bin" ; glib-mkenums, gtester, etc.; depends on Python
"doc")) ; 20 MiB of GTK-Doc reference
(propagated-inputs
`(("pcre" ,pcre))) ; in the Requires.private field of glib-2.0.pc
(inputs
`(("coreutils" ,coreutils)
("libffi" ,libffi)
@ -160,29 +159,87 @@ (define glib
("perl" ,perl) ; needed by GIO tests
("bash" ,bash)))
(arguments
'(#:phases (alist-cons-before
'build 'pre-build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; For tests/gdatetime.c.
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
'(#:phases
(modify-phases %standard-phases
(add-before 'build 'pre-build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; For tests/gdatetime.c.
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
;; Some tests want write access there.
(setenv "XDG_CACHE_HOME" (getcwd))
;; Some tests want write access there.
(setenv "HOME" (getcwd))
(setenv "XDG_CACHE_HOME" (getcwd))
(substitute* '("glib/gspawn.c"
"glib/tests/utils.c"
"tests/spawn-test.c")
(("/bin/sh")
(string-append (assoc-ref inputs "bash") "/bin/sh")))
(substitute* '("glib/gspawn.c"
"glib/tests/utils.c"
"tests/spawn-test.c")
(("/bin/sh")
(string-append (assoc-ref inputs "bash") "/bin/sh")))))
(add-before 'check 'disable-failing-tests
(lambda _
(let ((disable
(lambda (test-file test-paths)
(define pattern+procs
(map (lambda (test-path)
(cons
;; XXX: only works for single line statements.
(format #f "g_test_add_func.*\"~a\".*" test-path)
(const "")))
test-paths))
(substitute test-file pattern+procs)))
(failing-tests
'(("glib/tests/thread.c"
(;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64
;; as found on hydra.gnu.org, and strace(1) doesn't
;; recognize it.
"/thread/thread4"))
;; Disable a test that requires dbus.
(substitute* "gio/tests/gdbus-serialization.c"
(("g_test_add_func \
\\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all)
(string-append "/* " all " */"))))
%standard-phases)
("glib/tests/timer.c"
(;; fails if compiler optimizations are enabled, which they
;; are by default.
"/timer/stop"))
("gio/tests/gapplication.c"
(;; XXX: proven to be unreliable. See:
;; <https://bugs.debian.org/756273>
;; <http://bugs.gnu.org/18445>
"/gapplication/quit"
;; XXX: fails randomly for unknown reason. See:
;; <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00215.html>
"/gapplication/local-actions"))
("gio/tests/contenttype.c"
(;; XXX: requires shared-mime-info.
"/contenttype/guess"
"/contenttype/subtype"
"/contenttype/list"
"/contenttype/icon"
"/contenttype/symbolic-icon"
"/contenttype/tree"))
("gio/tests/appinfo.c"
(;; XXX: requires update-desktop-database.
"/appinfo/associations"))
("gio/tests/desktop-app-info.c"
(;; XXX: requires update-desktop-database.
"/desktop-app-info/delete"
"/desktop-app-info/default"
"/desktop-app-info/fallback"
"/desktop-app-info/lastused"
"/desktop-app-info/search"))
("gio/tests/gdbus-peer.c"
(;; Requires /etc/machine-id.
"/gdbus/codegen-peer-to-peer"))
("gio/tests/gdbus-unix-addresses.c"
(;; Requires /etc/machine-id.
"/gdbus/x11-autolaunch")))))
(and-map (lambda (x) (apply disable x)) failing-tests)))))
;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
#:configure-flags (list (string-append "--with-html-dir="
@ -218,14 +275,14 @@ (define glib
(define gobject-introspection
(package
(name "gobject-introspection")
(version "1.46.0")
(version "1.48.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
"gobject-introspection/" (version-major+minor version)
"/gobject-introspection-" version ".tar.xz"))
(sha256
(base32 "0cs27r18fga44ypp8icy62fwx6nh70r1bvhi4lzfn4w85cybsn36"))
(base32 "0xsqwxhfqzr79av89mg766kxpb2i41bd0vwspk01xjdzrnn5l9zs"))
(modules '((guix build utils)))
(snippet
'(substitute* "tools/g-ir-tool-template.in"
@ -237,7 +294,6 @@ (define gobject-introspection
(build-system gnu-build-system)
(inputs
`(("bison" ,bison)
("cairo" ,cairo)
("flex" ,flex)
("glib" ,glib)
("python-2" ,python-2)))
@ -395,7 +451,7 @@ (define dbus-glib
(define libsigc++
(package
(name "libsigc++")
(version "2.6.1")
(version "2.8.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsigc++/"
@ -403,7 +459,7 @@ (define libsigc++
name "-" version ".tar.xz"))
(sha256
(base32
"06xyvxaaxh3nbpjg86gcq5zcc2qnpx354wcfrqlhbndkq5kj2vqq"))))
"0lcnzzdq6718znfshs1hflpwqq6awbzwdyp4kv5lfaf54z880jbp"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("m4" ,m4)))
@ -422,7 +478,7 @@ (define libsigc++
(define glibmm
(package
(name "glibmm")
(version "2.46.3")
(version "2.48.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/glibmm/"
@ -430,7 +486,7 @@ (define glibmm
"/glibmm-" version ".tar.xz"))
(sha256
(base32
"1kw65mlabwdjw86jybxslncbnnx40hcx4z6xpq9i4ymjvsnm91n7"))))
"1pvw2mrm03p51p03179rb6fk9p42iykkwj1jcdv7jr265xymy8nw"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-cons-before
@ -503,7 +559,7 @@ (define-public python2-pygobject-2
(define-public python-pygobject
(package
(name "python-pygobject")
(version "3.18.0")
(version "3.20.0")
(source
(origin
(method url-fetch)
@ -512,7 +568,7 @@ (define-public python-pygobject
"/pygobject-" version ".tar.xz"))
(sha256
(base32
"1jbd2m39vcjh5h3m33l0317ziq8dxfzi40r6hrfcs4rp5l8s2fqw"))))
"0ikzh3l7g1gjh8jj8vg6mdvrb25svp63gxcam4m0i404yh0lgari"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)

File diff suppressed because it is too large Load diff

View file

@ -32,6 +32,7 @@ (define-module (gnu packages gnupg)
#:use-module (gnu packages perl)
#:use-module (gnu packages pth)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
@ -148,7 +149,7 @@ (define-public libassuan
(define-public libksba
(package
(name "libksba")
(version "1.3.3")
(version "1.3.4")
(source
(origin
(method url-fetch)
@ -157,7 +158,7 @@ (define-public libksba
version ".tar.bz2"))
(sha256
(base32
"11kp3h9l3b8ikydkcdkwgx45r662zi30m26ra5llyhfh6kz5yzqc"))))
"0kxdb02z41cwm1xbwfwj9nbc0dzjhwyq8c475mlhhmpcxcy8ihpn"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error" ,libgpg-error)))
@ -208,16 +209,14 @@ (define-public npth
(define-public gnupg
(package
(name "gnupg")
(version "2.1.11")
(version "2.1.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
"06mn2viiwsyq991arh5i5fhr9jyxq2bi0jkdj7ndfisxihngpc5p"))
(patches (search-patches
"gnupg-simple-query-ignore-status-messages.patch"))))
"01n5py45x0r97l4dzmd803jpbpbcxr1591k3k4s8m9804jfr4d5c"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -569,9 +568,9 @@ (define-public signing-party
(license license:gpl2)
(home-page "http://pgp-tools.alioth.debian.org/")))
(define-public pinentry
(define-public pinentry-tty
(package
(name "pinentry")
(name "pinentry-tty")
(version "0.9.7")
(source (origin
(method url-fetch)
@ -581,21 +580,48 @@ (define-public pinentry
(base32
"1cp7wjqr6nx31mdclr61s2h84ijqjl0ph99kgj4vyawpjj1j1633"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-pinentry-tty")))
(inputs
`(("ncurses" ,ncurses)
("libassuan" ,libassuan)
("libsecret" ,libsecret "out")
("gtk+" ,gtk+-2)
("glib" ,glib)))
("libsecret" ,libsecret "out")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://gnupg.org/aegypten2/")
(synopsis "GnuPG's interface to passphrase input")
(description
"Pinentry provides a console and a GTK+ GUI that allows users to
enter a passphrase when `gpg' or `gpg2' is run and needs it.")
"Pinentry provides a console that allows users to enter a passphrase when
@code{gpg} or @code{gpg2} is run and needs it.")
(license license:gpl2+)))
(define-public pinentry-gtk2
(package
(inherit pinentry-tty)
(name "pinentry-gtk2")
(inputs
`(("gtk+" ,gtk+-2)
("glib" ,glib)
,@(package-inputs pinentry-tty)))
(description
"Pinentry provides a console and a GTK+ GUI that allows users to enter a
passphrase when @code{gpg} or @code{gpg2} is run and needs it.")))
(define-public pinentry-qt
(package
(inherit pinentry-tty)
(name "pinentry-qt")
(inputs
`(("qt" ,qt)
,@(package-inputs pinentry-tty)))
(description
"Pinentry provides a console and a Qt GUI that allows users to enter a
passphrase when @code{gpg} or @code{gpg2} is run and needs it.")))
(define-public pinentry
(package (inherit pinentry-gtk2)
(name "pinentry")))
(define-public paperkey
(package
(name "paperkey")

View file

@ -24,6 +24,7 @@ (define-module (gnu packages gnustep)
#:use-module (guix licenses)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages autotools)
#:use-module (gnu packages glib)
@ -216,3 +217,31 @@ (define-public wmclock
a dockable tile. It features multiple language support, 24h or 12h time
display, and can run a user-specified program on mouse click.")
(license gpl2+)))
(define-public wmfire
(package
(name "wmfire")
(version "1.2.4")
(source (origin
(method url-fetch)
(uri (string-append "http://www.improbability.net/"
name "/" name "-" version ".tar.gz"))
(sha256
(base32
"101grahd80n97y2dczb629clmcgiavdpbbwy78kk5wgs362m12z3"))))
(build-system gnu-build-system)
(inputs
`(("gtk+" ,gtk+-2)
("libgtop" ,libgtop)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://www.improbability.net/")
(synopsis "Display flames to represent CPU usage, memory usage, etc.")
(description
"wmfire is an applet for Window Maker that can monitor the average cpu
load, or individual cpu load on SMP computers. Additionally it can monitor the
memory, network load, a file or just be set to show a pretty flame. On
entering the dock a burning spot replaces the cursor, and after two seconds
symbols to represent the current monitor are \"burnt\" onscreen. The flame
colour can also be changed.")
(license gpl2+)))

View file

@ -287,7 +287,7 @@ (define-public nss
(define-public icecat
(package
(name "icecat")
(version "38.7.1-gnu1")
(version "38.8.0-gnu1")
(source
(origin
(method url-fetch)
@ -296,19 +296,9 @@ (define-public icecat
name "-" version ".tar.bz2"))
(sha256
(base32
"1wdmd6hasra36g86ha1dw8sl7a5mvr7c4jbjx4zyg9629y5gqr8g"))
"0v4k47ziqsyfksv9sn4v1xvk4q414rc883hb1qzld63grj2nxxwp"))
(patches (search-patches
"icecat-avoid-bundled-includes.patch"
"icecat-re-enable-DHE-cipher-suites.patch"
"icecat-update-bundled-graphite2.patch"
"icecat-CVE-2016-2805.patch"
"icecat-CVE-2016-2807-pt1.patch"
"icecat-CVE-2016-2807-pt2.patch"
"icecat-CVE-2016-2807-pt3.patch"
"icecat-CVE-2016-2807-pt4.patch"
"icecat-CVE-2016-2807-pt5.patch"
"icecat-CVE-2016-2808.patch"
"icecat-CVE-2016-2814.patch"))
"icecat-avoid-bundled-includes.patch"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -33,7 +33,7 @@ (define-module (gnu packages graphics)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages haskell)
#:use-module (gnu packages image)
#:use-module (gnu packages python)

View file

@ -25,6 +25,7 @@ (define-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages xml)
#:use-module (gnu packages glib)
#:use-module (gnu packages guile)
#:use-module (gnu packages bison)
#:use-module (gnu packages image)
#:use-module (gnu packages autotools)
@ -32,6 +33,7 @@ (define-module (gnu packages graphviz)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages compression)
#:use-module (gnu packages gd)
#:use-module (gnu packages swig)
#:use-module ((guix licenses) #:select (lgpl2.0+ epl1.0)))
(define-public graphviz
@ -69,12 +71,26 @@ (define-public graphviz
(rename-file (string-append out "/share/graphviz/doc")
(string-append doc "/share/graphviz/doc"))
#t))
%standard-phases))))
(alist-cons-after
'move-docs 'move-guile-bindings
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(extdir (string-append lib
"/guile/2.0/extensions")))
(mkdir-p extdir)
(rename-file (string-append
lib "/graphviz/guile/libgv_guile.so")
(string-append extdir
"/libgv_guile.so"))))
%standard-phases)))))
(inputs
`(("libXrender" ,libxrender)
("libX11" ,libx11)
("gts" ,gts)
("gd" ,gd) ; FIXME: Our GD is too old
("guile" ,guile-2.0) ;Guile bindings
("swig" ,swig)
("pango" ,pango)
("fontconfig" ,fontconfig)
("freetype" ,freetype)

View file

@ -244,6 +244,9 @@ (define-public gst-plugins-good
;; XXX FIXME: Try removing this for version > 1.8.0.
(substitute* "tests/check/elements/rtprtx.c"
(("tcase_add_test \\(tc_chain, test_push_forward_seq\\);" all)
(string-append "/* " all " */"))
(("tcase_add_test \
\\(tc_chain, test_rtxreceive_data_reconstruction\\);" all)
(string-append "/* " all " */")))
(substitute* "tests/check/elements/splitmux.c"
(("tcase_add_test \\(tc_chain, test_splitmuxsink\\);" all)

View file

@ -63,7 +63,7 @@ (define-module (gnu packages gtk)
(define-public atk
(package
(name "atk")
(version "2.18.0")
(version "2.20.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -71,7 +71,7 @@ (define-public atk
name "-" version ".tar.xz"))
(sha256
(base32
"0ay9s137x49f0akx658p7kznz0rdapfrd8ym54q0hlgrggblhv6f"))))
"1w1q29yfxcq67j7fyqrfm0l0n1vy4zn539c0sf4ga9d0qkv50fj9"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
@ -95,14 +95,14 @@ (define-public atk
(define-public cairo
(package
(name "cairo")
(version "1.14.2")
(version "1.14.6")
(source (origin
(method url-fetch)
(uri (string-append "http://cairographics.org/releases/cairo-"
version ".tar.xz"))
(sha256
(base32
"1sycbq0agbwmg1bj9lhkgsf0glmblaf2jrdy9g6vxfxivncxj6f9"))))
"0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31"))))
(build-system gnu-build-system)
(propagated-inputs
`(("fontconfig" ,fontconfig)
@ -147,7 +147,7 @@ (define-public cairo
(define-public harfbuzz
(package
(name "harfbuzz")
(version "1.0.6")
(version "1.2.4")
(source (origin
(method url-fetch)
(uri (string-append "https://www.freedesktop.org/software/"
@ -155,7 +155,7 @@ (define-public harfbuzz
version ".tar.bz2"))
(sha256
(base32
"09ivk5m4y09ar4zi9r6db7gp234cy05h0ach7w22g9kqvkxsf5pn"))))
"14g4kpph8hgplkm954daxiymxx0vicfq7b7svvdsx54g5bqvv7a4"))))
(build-system gnu-build-system)
(outputs '("out"
"bin")) ; 160K, only hb-view depend on cairo
@ -185,7 +185,7 @@ (define-public harfbuzz
(define-public pango
(package
(name "pango")
(version "1.38.1")
(version "1.40.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/pango/"
@ -193,7 +193,7 @@ (define-public pango
name "-" version ".tar.xz"))
(sha256
(base32
"1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k"))))
"0h0sbh0b5kh3lvrxrb82bs86rqakf33a9jakpv33lay7f90zayp2"))))
(build-system gnu-build-system)
(propagated-inputs
`(("cairo" ,cairo)
@ -339,7 +339,7 @@ (define-public gtksourceview-2
(define-public gtksourceview
(package
(name "gtksourceview")
(version "3.18.2")
(version "3.20.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -347,7 +347,7 @@ (define-public gtksourceview
name "-" version ".tar.xz"))
(sha256
(base32
"1cmplnqbyd1js5bkpi9cfc3gljilyxg5nngwh4i3mq9r02gmmxv0"))))
"03vxirdbjpgjrkl5ph0p9b1saq17xxr4kvhz1ijpg40a9jf3ci4y"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -387,7 +387,7 @@ (define-public gtksourceview
(define-public gdk-pixbuf
(package
(name "gdk-pixbuf")
(version "2.32.3")
(version "2.34.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -395,7 +395,7 @@ (define-public gdk-pixbuf
name "-" version ".tar.xz"))
(sha256
(base32
"0cfh87aqyqbfcwpbv1ihgmgfcn66il5q2n8yjyl8gxkjmkqp2rrb"))))
"0yc8indbl3hf18z6x6kjg59xp9sngm1d8vmz4c7bs6g27qw5npnm"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--with-x11")
@ -415,9 +415,12 @@ (define-public gdk-pixbuf
;; (gdk-pixbuf-error-quark, 0)
(("pixbuf-jpeg\\$\\(EXEEXT\\) ") ""))
#t)))))
(propagated-inputs ; required by gdk-pixbuf-2.0.pc
`(("glib" ,glib)
("libpng" ,libpng)))
(propagated-inputs
`(;; Required by gdk-pixbuf-2.0.pc
("glib" ,glib)
("libpng" ,libpng)
;; Used for testing and required at runtime.
("shared-mime-info" ,shared-mime-info)))
(inputs
`(("libjpeg" ,libjpeg)
("libtiff" ,libtiff)
@ -465,7 +468,7 @@ (define-public gdk-pixbuf+svg
(define-public at-spi2-core
(package
(name "at-spi2-core")
(version "2.18.1")
(version "2.20.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -473,7 +476,7 @@ (define-public at-spi2-core
name "-" version ".tar.xz"))
(sha256
(base32
"1kq17w4fm51d49vzmglkxqdm6s0yvjvrpgw78r2hajf69jz5bmap"))))
"0039y6bj1zfzhmfjbj5g830dlczphbpvbgmkcab9mapmh7kmin3f"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
@ -510,7 +513,7 @@ (define-public at-spi2-core
(define-public at-spi2-atk
(package
(name "at-spi2-atk")
(version "2.18.1")
(version "2.20.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -518,7 +521,7 @@ (define-public at-spi2-atk
name "-" version ".tar.xz"))
(sha256
(base32
"0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4"))))
"13mzfwra0izmkzn7dsdgy5zj19n8izp0wdy7w1yg9s0qx6aafn13"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -545,7 +548,7 @@ (define-public at-spi2-atk
(define-public gtk+-2
(package
(name "gtk+")
(version "2.24.28")
(version "2.24.30")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -553,13 +556,14 @@ (define-public gtk+-2
name "-" version ".tar.xz"))
(sha256
(base32
"0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj"))
(patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"))))
"0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d"))
(patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
"gtk2-theme-paths.patch"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(propagated-inputs
`(("atk" ,atk)
("gdk-pixbuf" ,gdk-pixbuf)
("gdk-pixbuf" ,gdk-pixbuf+svg)
("pango" ,pango)))
(inputs
`(("cups" ,cups)
@ -606,7 +610,7 @@ (define-public gtk+-2
(define-public gtk+
(package (inherit gtk+-2)
(name "gtk+")
(version "3.18.2")
(version "3.20.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -614,12 +618,12 @@ (define-public gtk+
name "-" version ".tar.xz"))
(sha256
(base32
"0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx"))
"157nh9gg0p2avw765hrnkvr8lsh2w811397yxgjv6q5j4fzz6d1q"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"))))
(propagated-inputs
`(("at-spi2-atk" ,at-spi2-atk)
("atk" ,atk)
("gdk-pixbuf" ,gdk-pixbuf)
("gdk-pixbuf" ,gdk-pixbuf+svg)
("libepoxy" ,libepoxy)
("libxcursor" ,libxcursor)
("libxi" ,libxi)
@ -627,8 +631,7 @@ (define-public gtk+
("libxdamage" ,libxdamage)
("pango" ,pango)))
(inputs
`(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg
("libxml2" ,libxml2)
`(("libxml2" ,libxml2)
;; XXX: colord depends on mozjs (through polkit), which fails on
;; on non-intel systems now.
;;("colord" ,colord)
@ -663,18 +666,7 @@ (define-public gtk+
(("SUBDIRS = gdk gtk a11y css reftests")
"SUBDIRS = gdk"))
#t)
(alist-cons-after
'install 'wrap-gtk-encode-symbolic-svg
;; By using GdkPixbuf, gtk-encode-symbolic-svg needs to know
;; librsvg's loaders.cache to handle SVG files.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(prog (string-append out "/bin/gtk-encode-symbolic-svg"))
(librsvg (assoc-ref inputs "librsvg"))
(loaders.cache (find-files librsvg "^loaders\\.cache$")))
(wrap-program prog
`("GDK_PIXBUF_MODULE_FILE" = ,loaders.cache))))
%standard-phases))))
%standard-phases)))
(native-search-paths
(list (search-path-specification
(variable "GUIX_GTK3_PATH")
@ -864,7 +856,7 @@ (define-public cairomm
(define-public pangomm
(package
(name "pangomm")
(version "2.38.1")
(version "2.40.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -872,7 +864,7 @@ (define-public pangomm
name "-" version ".tar.xz"))
(sha256
(base32
"12xwjvqfxhqblcv7641k0l6r8n3qifnrx8w9571izn1nbd81iyzg"))))
"03fpqdjp7plybf4zsgszbm8yhgl28vmajzfpmaqcsmyfvjlszl3x"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(propagated-inputs
@ -913,7 +905,7 @@ (define-public atkmm
(define-public gtkmm
(package
(name "gtkmm")
(version "3.18.0")
(version "3.20.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -921,16 +913,29 @@ (define-public gtkmm
name "-" version ".tar.xz"))
(sha256
(base32
"0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2"))))
"04n631a127pyidaz82ypdy9syq1hzj636r32y9hyr9kcfnwf2785"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("glib" ,glib "bin"))) ;for 'glib-compile-resources'
("glib" ,glib "bin") ;for 'glib-compile-resources'
("xorg-server" ,xorg-server)))
(propagated-inputs
`(("pangomm" ,pangomm)
("cairomm" ,cairomm)
("atkmm" ,atkmm)
("gtk+" ,gtk+)
("glibmm" ,glibmm)))
(arguments
'(#:phases (modify-phases %standard-phases
(add-before 'check 'run-xvfb
(lambda* (#:key inputs #:allow-other-keys)
(let ((xorg-server (assoc-ref inputs "xorg-server")))
;; Tests such as 'object_move/test' require a running
;; X server.
(system (string-append xorg-server "/bin/Xvfb :1 &"))
(setenv "DISPLAY" ":1")
;; Don't fail because of the missing /etc/machine-id.
(setenv "DBUS_FATAL_WARNINGS" "0")
#t))))))
(home-page "http://gtkmm.org/")
(synopsis
"C++ interface to the GTK+ graphical user interface library")

View file

@ -5,6 +5,7 @@
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -363,14 +364,14 @@ (define-public guile-reader
(define-public guile-ncurses
(package
(name "guile-ncurses")
(version "1.6")
(version "1.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/guile-ncurses/guile-ncurses-"
version ".tar.gz"))
(sha256
(base32
"0wmk681zzi1wxw543r2s2r84ndnzxp69kr7pc01aw4l55hg7jn73"))))
"153vv75gb7l62sp3666rc97i63rnaqbx2rjar7d9b5w81fhwv4r5"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)
("guile" ,guile-2.0)))
@ -379,21 +380,17 @@ (define-public guile-ncurses
(string-append "--with-guilesitedir="
(assoc-ref %outputs "out")
"/share/guile/site/2.0"))
;; Work around <http://bugs.gnu.org/21677>.
#:make-flags '("XFAIL_TESTS=curses_034_util.test")
#:phases (alist-cons-after
'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share/guile/site/"))
(files (find-files dir ".scm")))
(substitute* files
(("\"libguile-ncurses\"")
(format #f "\"~a/lib/libguile-ncurses\""
out)))))
%standard-phases)))
#:phases
(modify-phases %standard-phases
(add-after 'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share/guile/site/"))
(files (find-files dir ".scm")))
(substitute* files
(("\"libguile-ncurses\"")
(format #f "\"~a/lib/libguile-ncurses\""
out)))))))))
(home-page "http://www.gnu.org/software/guile-ncurses/")
(synopsis "Guile bindings to ncurses")
(description

View file

@ -30,7 +30,7 @@ (define-module (gnu packages image)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
@ -459,7 +459,7 @@ (define-public libungif
(define-public imlib2
(package
(name "imlib2")
(version "1.4.8")
(version "1.4.9")
(source (origin
(method url-fetch)
(uri (string-append
@ -467,8 +467,7 @@ (define-public imlib2
version ".tar.bz2"))
(sha256
(base32
"0xxhgkd1axlcmf3kp1d7naiygparpg8l3sg3d263rhl2z0gm7aw9"))
(patches (search-patches "imlib2-CVE-2016-4024.patch"))))
"08809xxk2555yj6glixzw9a0x3x8cx55imd89kj3r0h152bn8a3x"))))
(build-system gnu-build-system)
(native-inputs
`(("pkgconfig" ,pkg-config)))

View file

@ -40,15 +40,14 @@ (define-module (gnu packages imagemagick)
(define-public imagemagick
(package
(name "imagemagick")
(version "6.9.2-1")
(version "6.9.3-10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
"159afhqrj22jlz745ccbgnkdiwvn8pjcc96jic0iv9ms7gqxwln5"))
(patches (search-patches "imagemagick-test-segv.patch"))))
"0sik2jl1cywnpr5xm28mjhs1l8kxry65f3v2kqzp0cczhwf04gz3"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths")

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -52,7 +52,10 @@ (define-public inkscape
version ".tar.gz"))
(sha256
(base32
"086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc"))))
"086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc"))
(patch-flags '("-p0"))
(patches
(search-patches "inkscape-drop-wait-for-targets.patch"))))
(build-system gnu-build-system)
(inputs
`(("aspell" ,aspell)

View file

@ -859,3 +859,193 @@ (define-public java-xz
compression in pure Java. Single-threaded streamed compression and
decompression and random access decompression have been fully implemented.")
(license license:public-domain)))
;; java-hamcrest-core uses qdox version 1.12. We package this version instead
;; of the latest release.
(define-public java-qdox-1.12
(package
(name "java-qdox")
(version "1.12.1")
(source (origin
(method url-fetch)
(uri (string-append "http://central.maven.org/maven2/"
"com/thoughtworks/qdox/qdox/" version
"/qdox-" version "-sources.jar"))
(sha256
(base32
"0hlfbqq2avf5s26wxkksqmkdyk6zp9ggqn37c468m96mjv0n9xfl"))))
(build-system ant-build-system)
(arguments
`(;; Tests require junit
#:tests? #f
#:jar-name "qdox.jar"
#:phases
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source #:allow-other-keys)
(mkdir "src")
(with-directory-excursion "src"
(zero? (system* "jar" "-xf" source)))))
;; At this point we don't have junit, so we must remove the API
;; tests.
(add-after 'unpack 'delete-tests
(lambda _
(delete-file-recursively "src/com/thoughtworks/qdox/junit")
#t)))))
(home-page "http://qdox.codehaus.org/")
(synopsis "Parse definitions from Java source files")
(description
"QDox is a high speed, small footprint parser for extracting
class/interface/method definitions from source files complete with JavaDoc
@code{@@tags}. It is designed to be used by active code generators or
documentation tools.")
(license license:asl2.0)))
(define-public java-jarjar
(package
(name "java-jarjar")
(version "1.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://storage.googleapis.com/google-code-archive-downloads/v2/"
"code.google.com/jarjar/jarjar-src-" version ".zip"))
(sha256
(base32
"1v8irhni9cndcw1l1wxqgry013s2kpj0qqn57lj2ji28xjq8ndjl"))))
(build-system ant-build-system)
(arguments
`(;; Tests require junit, which ultimately depends on this package.
#:tests? #f
#:build-target "jar"
#:phases
(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((target (string-append (assoc-ref outputs "out")
"/share/java")))
(install-file (string-append "dist/jarjar-" ,version ".jar")
target))
#t)))))
(native-inputs
`(("unzip" ,unzip)))
(home-page "https://code.google.com/archive/p/jarjar/")
(synopsis "Repackage Java libraries")
(description
"Jar Jar Links is a utility that makes it easy to repackage Java
libraries and embed them into your own distribution. Jar Jar Links includes
an Ant task that extends the built-in @code{jar} task.")
(license license:asl2.0)))
(define-public java-hamcrest-core
(package
(name "java-hamcrest-core")
(version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://hamcrest.googlecode.com/files/"
"hamcrest-" version ".tgz"))
(sha256
(base32
"1hi0jv0zrgsf4l25aizxrgvxpsrmdklsmvw0jzwz7zv9s108whn6"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled jar archives.
(for-each delete-file (find-files "." "\\.jar$"))
#t))))
(build-system ant-build-system)
(arguments
`(#:tests? #f ; Tests require junit
#:make-flags (list (string-append "-Dversion=" ,version))
#:build-target "core"
#:phases
(modify-phases %standard-phases
;; Disable unit tests, because they require junit, which requires
;; hamcrest-core. We also give a fixed value to the "Built-Date"
;; attribute from the manifest for reproducibility.
(add-before 'configure 'patch-build.xml
(lambda _
(substitute* "build.xml"
(("unit-test, ") "")
(("\\$\\{build.timestamp\\}") "guix"))
#t))
;; Java's "getMethods()" returns methods in an unpredictable order.
;; To make the output of the generated code deterministic we must
;; sort the array of methods.
(add-after 'unpack 'make-method-order-deterministic
(lambda _
(substitute* "hamcrest-generator/src/main/java/org/hamcrest/generator/ReflectiveFactoryReader.java"
(("import java\\.util\\.Iterator;" line)
(string-append line "\n"
"import java.util.Arrays; import java.util.Comparator;"))
(("allMethods = cls\\.getMethods\\(\\);" line)
(string-append "_" line
"
private Method[] getSortedMethods() {
Arrays.sort(_allMethods, new Comparator<Method>() {
@Override
public int compare(Method a, Method b) {
return a.toString().compareTo(b.toString());
}
});
return _allMethods;
}
private Method[] allMethods = getSortedMethods();")))))
(add-before 'build 'do-not-use-bundled-qdox
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "build.xml"
(("lib/generator/qdox-1.12.jar")
(string-append (assoc-ref inputs "java-qdox-1.12")
"/share/java/qdox.jar")))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(install-file (string-append "build/hamcrest-core-"
,version ".jar")
(string-append (assoc-ref outputs "out")
"/share/java")))))))
(native-inputs
`(("java-qdox-1.12" ,java-qdox-1.12)
("java-jarjar" ,java-jarjar)))
(home-page "http://hamcrest.org/")
(synopsis "Library of matchers for building test expressions")
(description
"This package provides a library of matcher objects (also known as
constraints or predicates) allowing @code{match} rules to be defined
declaratively, to be used in other frameworks. Typical scenarios include
testing frameworks, mocking libraries and UI validation rules.")
(license license:bsd-2)))
(define-public java-junit
(package
(name "java-junit")
(version "4.12")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/junit-team/junit/"
"archive/r" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"090dn5v1vs0b3acyaqc0gjf6p8lmd2h24wfzsbq7sly6b214anws"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled jar archives.
(delete-file-recursively "lib")
#t))))
(build-system ant-build-system)
(arguments
`(#:tests? #f ; no tests
#:jar-name "junit.jar"))
(inputs
`(("java-hamcrest-core" ,java-hamcrest-core)))
(home-page "http://junit.org/")
(synopsis "Test framework for Java")
(description
"JUnit is a simple framework to write repeatable tests for Java projects.
JUnit provides assertions for testing expected results, test fixtures for
sharing common test data, and test runners for running tests.")
(license license:epl1.0)))

View file

@ -27,7 +27,7 @@ (define-module (gnu packages jemalloc)
(define-public jemalloc
(package
(name "jemalloc")
(version "3.6.0")
(version "4.1.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -35,14 +35,8 @@ (define-public jemalloc
name "-" version ".tar.bz2"))
(sha256
(base32
"1zl4vxxjvhg72bdl53sl0idz9wp18c6yzjdmqcnwm09wvmcj2v71"))))
"13pc6gcs5d6ws63jv83vslrb1vlqdnf1dg43awkb9bbj9xqnvl7s"))))
(build-system gnu-build-system)
;; XXX FIXME: Use gcc-4.8 on i686 to work around
;; <http://bugs.gnu.org/20856>.
(native-inputs (if (and (not (%current-target-system))
(string-prefix? "i686-" (%current-system)))
`(("gcc" ,(canonical-package gcc-4.8)))
'()))
(home-page "http://www.canonware.com/jemalloc/")
(synopsis "General-purpose scalable concurrent malloc implementation")
(description

View file

@ -41,25 +41,12 @@ (define-public key-mon
(build-system python-build-system)
(arguments
`(#:python ,python-2 ;uses the Python 2 'print' syntax
#:phases (modify-phases %standard-phases
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(rsvg (assoc-ref inputs "librsvg"))
(pixbuf (find-files
rsvg "^loaders\\.cache$")))
;; Allow key-mon to load SVGs.
(wrap-program (string-append bin "/key-mon")
`("GDK_PIXBUF_MODULE_FILE" ":"
prefix ,pixbuf))))))
#:tests? #f)) ;no tests
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))
(inputs
`(("python2-xlib" ,python2-xlib)
("python2-pygtk" ,python2-pygtk)
("librsvg" ,librsvg)
("python2-rsvg" ,python2-rsvg)))
(home-page "http://code.google.com/p/key-mon")
(synopsis "Show keyboard and mouse status")

View file

@ -34,7 +34,7 @@ (define-module (gnu packages kodi)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages gettext)

View file

@ -37,7 +37,7 @@ (define-module (gnu packages libreoffice)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages ghostscript)

View file

@ -11,6 +11,7 @@
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -59,10 +60,11 @@ (define-module (gnu packages linux)
#:use-module (gnu packages elf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages docbook)
#:use-module (gnu packages asciidoc)
#:use-module (gnu packages documentation)
#:use-module (gnu packages readline)
#:use-module (gnu packages calendar)
#:use-module (gnu packages tls)
#:use-module (gnu packages freedesktop)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
@ -222,7 +224,7 @@ (define* (kernel-config system #:key variant)
(search-path %load-path file)))
(define-public linux-libre
(let* ((version "4.5.2")
(let* ((version "4.5.4")
(build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Avoid introducing timestamps
@ -300,7 +302,7 @@ (define-public linux-libre
(uri (linux-libre-urls version))
(sha256
(base32
"0mw8n5pms33k3m3aamlryahrcbhfnqbzvkglgw3j4dhaja3hwr7n"))))
"0c587v03kz5whh82apva6gwqvczdi6djy29gk0gfd9dbkb2518b1"))))
(build-system gnu-build-system)
(supported-systems '("x86_64-linux" "i686-linux"))
(native-inputs `(("perl" ,perl)
@ -337,13 +339,13 @@ (define-public linux-libre
(define-public linux-libre-4.4
(package
(inherit linux-libre)
(version "4.4.8")
(version "4.4.10")
(source (origin
(method url-fetch)
(uri (linux-libre-urls version))
(sha256
(base32
"0zyhdy01gjglgmlrmpqa1sdnm0z91mzwspbksj6zvcamczb8ml53"))))
"1k7h632vgh3wlz44qqawy238f4mzn19bm9sz9zqq0ql6wwhkjdkj"))))
(native-inputs
(let ((conf (kernel-config (or (%current-target-system)
(%current-system))
@ -354,13 +356,13 @@ (define-public linux-libre-4.4
(define-public linux-libre-4.1
(package
(inherit linux-libre)
(version "4.1.22")
(version "4.1.24")
(source (origin
(method url-fetch)
(uri (linux-libre-urls version))
(sha256
(base32
"0bn6qba7q4i3yn3zx2p56gawnb2gczrf4vyrjggirj4d60gvng7y"))))
"14jlnq0k86bl4wj8shmvgf34w90bbm9in44j1pdjwwvn169zh9ra"))))
(native-inputs
(let ((conf (kernel-config (or (%current-target-system)
(%current-system))
@ -1217,11 +1219,31 @@ (define-public powertop
(base32
"0nlwazxbnn0k6q5f5b09wdhw0f194lpzkp3l7vxansqhfczmcyx8"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
;; TODO: Patch some hardcoded "wlan0" in calibrate/calibrate.cpp to
;; allow calibrating the network interface in GuixSD.
(add-after 'unpack 'patch-absolute-file-names
(lambda* (#:key inputs #:allow-other-keys)
(let ((kmod (assoc-ref inputs "kmod")))
(substitute* (find-files "src" "\\.cpp$")
;; Give the right 'modprobe' file name so that essential
;; modules such as msr.ko can be loaded.
(("/sbin/modprobe") (string-append kmod "/bin/modprobe"))
;; These programs are only needed to calibrate, so using
;; relative file names avoids adding extra inputs. When they
;; are missing powertop gracefully handles it.
(("/usr/bin/hcitool") "hcitool")
(("/usr/bin/xset") "xset")
(("/usr/sbin/hciconfig") "hciconfig"))
#t))))))
(inputs
`(("zlib" ,zlib)
("pciutils" ,pciutils)
`(("kmod" ,kmod)
("libnl" ,libnl)
("ncurses" ,ncurses)
("libnl" ,libnl)))
("pciutils" ,pciutils)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://01.org/powertop/")
@ -2599,3 +2621,58 @@ (define-public freefall
drive that supports the ATA/ATAPI-7 IDLE IMMEDIATE command with unload
feature, and a laptop with an accelerometer. It has no effect on SSDs.")
(license license:gpl2)))
(define-public thinkfan
(package
(name "thinkfan")
(version "0.9.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/thinkfan/"
version "/thinkfan-" version ".tar.gz"))
(sha256
(base32
"0nz4c48f0i0dljpk5y33c188dnnwg8gz82s4grfl8l64jr4n675n"))
(modules '((guix build utils)))
;; Fix erroneous man page location in Makefile leading to
;; a compilation failure.
(snippet
'(substitute* "CMakeLists.txt"
(("thinkfan\\.1") "src/thinkfan.1")))))
(build-system cmake-build-system)
(arguments
`(#:modules ((guix build cmake-build-system)
(guix build utils)
(srfi srfi-26))
#:tests? #f ;no test target
#:configure-flags
;; Enable reading temperatures from hard disks via S.M.A.R.T.
`("-DUSE_ATASMART:BOOL=ON")
#:phases
(modify-phases %standard-phases
;; Install scripts for various foreign init systems. Also fix
;; hard-coded path for daemon.
(add-after 'install 'install-rc-scripts
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(files (find-files
(string-append "../thinkfan-" ,version "/rcscripts")
".*")))
(substitute* files
(("/usr/sbin/(\\$NAME|thinkfan)" _ name)
(string-append out "/sbin/" name)))
(for-each (cute install-file <>
(string-append out "/share/thinkfan"))
files))
#t)))))
(inputs
`(("libatasmart" ,libatasmart)))
(home-page "http://thinkfan.sourceforge.net/")
(synopsis "Simple fan control program")
(description
"Thinkfan is a simple fan control program. It reads temperatures,
checks them against configured limits and switches to appropriate (also
pre-configured) fan level. It requires a working @code{thinkpad_acpi} or any
other @code{hwmon} driver that enables temperature reading and fan control
from userspace.")
(license license:gpl3+)))

View file

@ -6,7 +6,7 @@
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
@ -177,14 +177,14 @@ (define-public fetchmail
(define-public mutt
(package
(name "mutt")
(version "1.6.0")
(version "1.6.1")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
version ".tar.gz"))
(sha256
(base32
"06bc2drbgalkk68rzg7hq2v5m5qgjxff5357wg0419dpi8ivdbr9"))
"087dz1y9qhl4ikhsnnb4xmyvs82w6kx480w8zj130wdiqvn6rclq"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
@ -605,10 +605,18 @@ (define-public claws-mail
("libsm" ,libsm)
("libxml2" ,libxml2)
("perl" ,perl)
("python-2" ,python-2)))
("python-2" ,python-2)
("mime-info" ,shared-mime-info)))
(arguments
'(#:configure-flags
'("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")))
'("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")
#:phases (modify-phases %standard-phases
(add-before 'build 'patch-mime
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/procmime.c"
(("/usr/share/mime/globs")
(string-append (assoc-ref inputs "mime-info")
"/share/mime/globs"))))))))
(synopsis "GTK-based Email client")
(description
"Claws-Mail is an email client (and news reader) based on GTK+. The
@ -622,14 +630,14 @@ (define-public claws-mail
(define-public msmtp
(package
(name "msmtp")
(version "1.6.3")
(version "1.6.4")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/msmtp/msmtp-" version ".tar.xz"))
(sha256 (base32
"0mbkflxv2swjz4185inis83v6pxcblpmapwjhgpc6wh7kh3bx0pr"))))
"1kfihblm769s4hv8iah5mqynqd6hfwlyz5rcg2v423a4llic0jcv"))))
(build-system gnu-build-system)
(inputs
`(("libidn" ,libidn)
@ -667,7 +675,7 @@ (define-public msmtp
(define-public exim
(package
(name "exim")
(version "4.86.2")
(version "4.87")
(source
(origin
(method url-fetch)
@ -677,7 +685,7 @@ (define-public exim
version ".tar.bz2")))
(sha256
(base32
"1cvfcc1hi60lydv8h3a2rxlfc0v2nflwpvzjj7h7cdsqs2pxwmkp"))))
"1jbxn13shq90kpn0s73qpjnx5xm8jrpwhcwwgqw5s6sdzw6iwsbl"))))
(build-system gnu-build-system)
(inputs
`(("bdb" ,bdb)

View file

@ -46,6 +46,7 @@ (define-module (gnu packages maths)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
@ -54,16 +55,19 @@ (define-module (gnu packages maths)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages less)
#:use-module (gnu packages lisp)
#:use-module (gnu packages gnome)
#:use-module (gnu packages guile)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gl)
#:use-module (gnu packages m4)
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages netpbm)
#:use-module (gnu packages pcre)
#:use-module (gnu packages popt)
#:use-module (gnu packages perl)
@ -403,7 +407,7 @@ (define-public gnuplot
(define-public hdf5
(package
(name "hdf5")
(version "1.8.12")
(version "1.8.17")
(source
(origin
(method url-fetch)
@ -411,18 +415,27 @@ (define-public hdf5
version "/src/hdf5-"
version ".tar.bz2"))
(sha256
(base32 "0f9n0v3p3lwc7564791a39c6cn1d3dbrn7d1j3ikqsi27a8hy23d"))))
(base32 "0sj8x0gfs5fb28gipnynb9wpkz113h8wq9sva9mxx66kv27xsdgw"))
(patches (list (search-patch "hdf5-config-date.patch")))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)))
(arguments
`(#:phases
(alist-cons-before
'configure 'patch-configure
(lambda _
(substitute* "configure"
(("/bin/mv") "mv")))
%standard-phases)))
(modify-phases %standard-phases
(add-before 'configure 'patch-configure
(lambda _
(substitute* "configure"
(("/bin/mv") "mv"))
#t))
(add-after 'install 'patch-references
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))
(zlib (assoc-ref inputs "zlib")))
(substitute* (find-files bin "h5p?cc")
(("-lz" lib)
(string-append "-L" zlib "/lib " lib)))
#t))))))
(home-page "http://www.hdfgroup.org")
(synopsis "Management suite for extremely large and complex data")
(description "HDF5 is a suite that makes possible the management of
@ -430,6 +443,140 @@ (define-public hdf5
(license (license:x11-style
"http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
(define-public hdf5-parallel-openmpi
(package (inherit hdf5)
(name "hdf5-parallel-openmpi")
(inputs
`(("mpi" ,openmpi)
,@(package-inputs hdf5)))
(arguments
(substitute-keyword-arguments `(#:configure-flags '("--enable-parallel")
,@(package-arguments hdf5))
((#:phases phases)
`(modify-phases ,phases
(add-before 'check 'patch-tests
(lambda _
;; OpenMPI's mpirun will exit with non-zero status if it
;; detects an "abnormal termination", i.e. any process not
;; calling MPI_Finalize(). Since the test is explicitely
;; avoiding MPI_Finalize so as not to have at_exit and thus
;; H5C_flush_cache from being called, mpirun will always
;; complain, so turn this test off.
(substitute* "testpar/Makefile"
(("(^TEST_PROG_PARA.*)t_pflush1(.*)" front back)
(string-append front back "\n")))
(substitute* "tools/h5diff/testph5diff.sh"
(("/bin/sh") (which "sh")))
#t))))))
(synopsis "Management suite for data with parallel IO support")))
(define-public h5check
(package
(name "h5check")
(version "2.0.1")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.hdfgroup.org/ftp/HDF5/tools/"
"h5check/src/h5check-" version ".tar.gz"))
(sha256
(base32
"1gm76jbwhz9adbxgn14zx8cj33dmjdr2g5xcy0m9c2gakp8w59kj"))))
(build-system gnu-build-system)
(inputs `(("hdf5" ,hdf5))) ;h5cc for tests
(home-page "https://www.hdfgroup.org/products/hdf5_tools/h5check.html")
(synopsis "HDF5 format checker")
(description "@code{h5check} is a validation tool for verifying that an
HDF5 file is encoded according to the HDF File Format Specification.")
(license (license:x11-style "file://COPYING"))))
(define-public netcdf
(package
(name "netcdf")
(version "4.4.0")
(source
(origin
(method url-fetch)
(uri (string-append "ftp://ftp.unidata.ucar.edu/pub/netcdf/"
"netcdf-" version ".tar.gz"))
(sha256
(base32
"0y6gdcplarwqqnrav2xg1xd6ih732rzzbmdw78v3rl5b8mwcnh0d"))
(patches (list (search-patch "netcdf-config-date.patch")))))
(build-system gnu-build-system)
(native-inputs
`(("m4" ,m4)
("doxygen" ,doxygen)
("graphviz" ,graphviz)))
(inputs
`(("hdf5" ,hdf5)
("zlib" ,zlib)))
(arguments
`(#:configure-flags '("--enable-doxygen" "--enable-dot")
#:parallel-tests? #f)) ;various race conditions
(home-page "http://www.unidata.ucar.edu/software/netcdf/")
(synopsis "Library for scientific data")
(description "NetCDF is an interface for scientific data access and a
software library that provides an implementation of the interface. The netCDF
library defines a machine-independent format for representing scientific data.
Together, the interface, library, and format support the creation, access, and
sharing of scientific data.")
(license (license:x11-style "file://COPYRIGHT"))))
(define-public netcdf-parallel-openmpi
(package (inherit netcdf)
(name "netcdf-parallel-openmpi")
(inputs
`(("mpi" ,openmpi)
,@(alist-replace "hdf5" (list hdf5-parallel-openmpi)
(package-inputs netcdf))))
;; TODO: Replace pkg-config references in nc-config with absolute references
(arguments
(substitute-keyword-arguments (package-arguments netcdf)
((#:configure-flags flags)
`(cons* "CC=mpicc" "CXX=mpicxx"
"--enable-parallel-tests"
;; Shared libraries not supported with parallel IO.
"--disable-shared" "--with-pic"
,flags))))))
(define-public nlopt
(package
(name "nlopt")
(version "2.4.2")
(source (origin
(method url-fetch)
(uri (string-append "http://ab-initio.mit.edu/nlopt/nlopt-"
version ".tar.gz"))
(sha256
(base32 "12cfkkhcdf4zmb6h7y6qvvdvqjs2xf9sjpa3rl3bq76px4yn76c0"))))
(build-system gnu-build-system)
(arguments
`(;; Shared libraries are not built by default. They are required to
;; build the Guile, Octave, and Python bindings.
#:configure-flags '("--enable-shared")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-libnlopt-file-name
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure the Scheme module refers to the library by its
;; absolute file name (we cannot do that from a snippet
;; because the expansion of @libdir@ contains
;; ${exec_prefix}.)
(let ((out (assoc-ref outputs "out")))
(substitute* "swig/nlopt.scm.in"
(("libnlopt")
(string-append out "/lib/libnlopt")))
#t))))))
(inputs `(("guile" ,guile-2.0)))
(native-inputs `(("pkg-config" ,pkg-config)))
(home-page "http://ab-initio.mit.edu/wiki/")
(synopsis "Library for nonlinear optimization")
(description "NLopt is a library for nonlinear optimization, providing a
common interface for a number of different free optimization routines available
online as well as original implementations of various other algorithms.")
(license license:lgpl2.1+)))
;; For a fully featured Octave, users are strongly recommended also to install
;; the following packages: texinfo, less, ghostscript, gnuplot.
@ -2119,3 +2266,138 @@ (define-public xaos
set.")
(home-page "http://www.gnu.org/software/xaos/")
(license license:gpl2+)))
(define-public hypre
(package
(name "hypre")
(version "2.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/LLNL/hypre/archive/"
"v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0q69ia0jivzcr8p049dn3mg8yjpn6nwq4sw9iqac8vr63vi54l6m"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove use of __DATE__ and __TIME__ for reproducibility;
;; substitute the tarball creation time.
(substitute* "src/utilities/HYPRE_utilities.h"
(("Date Compiled: .*$")
"Date Compiled: Mar 28 2016 20:19:59 +0000\"\n"))
#t))))
(build-system gnu-build-system)
(outputs '("out" ;6.1 MiB of headers and libraries
"doc")) ;4.8 MiB of documentation
(native-inputs
`(("doc++" ,doc++)
("netpbm" ,netpbm)
("texlive" ,texlive) ;full package required for fonts
("ghostscript" ,ghostscript)))
(inputs
`(("blas" ,openblas)
("lapack" ,lapack)))
(arguments
`(#:modules ((srfi srfi-1)
,@%gnu-build-system-modules)
#:configure-flags '("--enable-shared"
"--disable-fortran"
"--without-MPI"
"--with-openmp"
"--with-fei"
"--with-lapack"
"--with-blas")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir-src
(lambda _ (chdir "src")))
(replace 'configure
(lambda* (#:key build target configure-flags
#:allow-other-keys #:rest args)
(let* ((configure (assoc-ref %standard-phases 'configure)))
(apply configure
(append args
(list #:configure-flags
(cons (string-append
"--host=" (or target build))
configure-flags)))))))
(add-after 'build 'build-docs
(lambda _
(zero? (system* "make" "-Cdocs" "pdf" "html"))))
(replace 'check
(lambda _
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/hypre/lib"))
(setenv "PATH" (string-append "." ":" (getenv "PATH")))
(and (system* "make" "check" "CHECKRUN=")
(fold (lambda (filename result)
(and result
(let ((size (stat:size (stat filename))))
(when (not (zero? size))
(format #t "~a size ~d; error indication~%"
filename size))
(zero? size))))
#t
(find-files "test" ".*\\.err$")))))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
;; Custom install because docs/Makefile doesn't honor ${docdir}.
(let* ((doc (assoc-ref outputs "doc"))
(docdir (string-append doc "/share/doc/hypre-" ,version)))
(mkdir-p docdir)
(with-directory-excursion "docs"
(for-each (lambda (base)
(install-file (string-append base ".pdf") docdir)
(copy-recursively base docdir)) ;html docs
'("HYPRE_usr_manual"
"HYPRE_ref_manual")))
#t))))))
(home-page "http://www.llnl.gov/casc/hypre/")
(synopsis "Library of solvers and preconditioners for linear equations")
(description
"HYPRE is a software library of high performance preconditioners and
solvers for the solution of large, sparse linear systems of equations. It
features multigrid solvers for both structured and unstructured grid
problems.")
(license license:lgpl2.1)))
(define-public hypre-openmpi
(package (inherit hypre)
(name "hypre-openmpi")
(inputs
`(("mpi" ,openmpi)
,@(package-inputs hypre)))
(arguments
(substitute-keyword-arguments (package-arguments hypre)
((#:configure-flags flags)
``("--with-MPI"
,@(delete "--without-MPI" ,flags)))))
(synopsis "Parallel solvers and preconditioners for linear equations")
(description
"HYPRE is a software library of high performance preconditioners and
solvers for the solution of large, sparse linear systems of equations on
parallel computers. It features parallel multigrid solvers for both
structured and unstructured grid problems.")))
(define-public matio
(package
(name "matio")
(version "1.5.6")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/matio/" version "/"
"matio-" version ".tar.gz"))
(sha256
(base32
"0y2qymgxank8wdiwc68ap8bxdzrhvyw86i29yh3xgn4z1njfd9ir"))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)
("hdf5" ,hdf5)))
(home-page "http://matio.sourceforge.net/")
(synopsis "Library for reading and writing MAT files")
(description "Matio is a library for reading and writing MAT files. It
supports compressed MAT files, as well as newer (version 7.3) MAT files.")
(license license:bsd-2)))

View file

@ -37,7 +37,7 @@ (define-module (gnu packages messaging)
#:use-module (gnu packages check)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
@ -91,16 +91,37 @@ (define-public libotr
(home-page "https://otr.cypherpunks.ca/")
(license (list lgpl2.1 gpl2))))
;; These patches together fix https://github.com/bitlbee/bitlbee/pull/55, are
;; already upstream, and should be unnecessary when the next bitlbee comes
;; out.
(define %bitlbee-buddy-nick-change-patch
(origin
(method url-fetch)
(uri "https://github.com/bitlbee/bitlbee/commit/a42fda42.patch")
(sha256
(base32
"1mzjhcdn0rxir5mzgqz9kv142ai38p1iq2lajqx89wb7x0bp51zx"))))
(define %bitlbee-always-use-nicks-patch
(origin
(method url-fetch)
(uri "https://github.com/bitlbee/bitlbee/commit/3320d6d9.patch")
(sha256
(base32
"14d9kb5zdzh5hzakdvrbviz83rix0j2lq9rzb58b2fn92fp8yixd"))))
(define-public bitlbee
(package
(name "bitlbee")
(version "3.4.1")
(version "3.4.2")
(source (origin
(method url-fetch)
(uri (string-append "https://get.bitlbee.org/src/bitlbee-"
version ".tar.gz"))
(sha256
(base32 "1qf0ypa9ba5jvsnpg9slmaran16hcc5fnfzbb1sdch1hjhchn2jh"))))
(base32 "0mza8lnfwibmklz8hdzg4f7p83hblf4h6fbf7d732kzpvra5bj39"))
(patches
(list %bitlbee-buddy-nick-change-patch
%bitlbee-always-use-nicks-patch))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("check" ,check)))

View file

@ -35,7 +35,7 @@ (define-module (gnu packages mpd)
#:use-module (gnu packages readline)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages glib)
#:use-module (gnu packages linux)
#:use-module (gnu packages mp3)

View file

@ -45,8 +45,10 @@ (define-module (gnu packages music)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages docbook)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages documentation)
#:use-module (gnu packages file)
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fonts)
@ -84,6 +86,7 @@ (define-module (gnu packages music)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages texlive)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
@ -548,15 +551,11 @@ (define-public solfege
(alist-cons-after
'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make sure 'solfege' runs with the correct PYTHONPATH. We
;; also need to modify GDK_PIXBUF_MODULE_FILE for SVG support.
;; Make sure 'solfege' runs with the correct PYTHONPATH.
(let* ((out (assoc-ref outputs "out"))
(path (getenv "PYTHONPATH"))
(rsvg (assoc-ref inputs "librsvg"))
(pixbuf (find-files rsvg "^loaders\\.cache$")))
(path (getenv "PYTHONPATH")))
(wrap-program (string-append out "/bin/solfege")
`("PYTHONPATH" ":" prefix (,path))
`("GDK_PIXBUF_MODULE_FILE" ":" prefix ,pixbuf))))
`("PYTHONPATH" ":" prefix (,path)))))
%standard-phases)))))))
(inputs
`(("python" ,python-2)
@ -564,8 +563,6 @@ (define-public solfege
("gettext" ,gnu-gettext)
("gtk" ,gtk+)
("lilypond" ,lilypond)
("librsvg" ,librsvg) ; needed at runtime for icons
("libpng" ,libpng) ; needed at runtime for icons
;; players needed at runtime
("aplay" ,alsa-utils)
("csound" ,csound) ; optional, needed for some exercises
@ -831,6 +828,13 @@ (define-public bristol
(string-prefix? "i686" system)))
(substitute* "bristol/Makefile.in"
(("-msse -mfpmath=sse") "")))
#t))
;; We know that Bristol has been linked with JACK and we don't have
;; ldd, so we can just skip this check.
(add-after 'unpack 'do-not-grep-for-jack
(lambda _
(substitute* "bin/startBristol.in"
(("ldd `which bristol` | grep jack") "echo guix"))
#t)))))
(inputs
`(("alsa-lib" ,alsa-lib)
@ -958,6 +962,70 @@ (define-public pd
projects.")
(license license:bsd-3)))
(define-public portmidi
(package
(name "portmidi")
(version "217")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/portmedia/portmidi/"
version "/portmidi-src-" version ".zip"))
(sha256
(base32
"03rfsk7z6rdahq2ihy5k13qjzgx757f75yqka88v3gc0pn9ais88"))
(patches (list (search-patch "portmidi-modular-build.patch")))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; tests cannot be linked
#:configure-flags
(list "-DPORTMIDI_ENABLE_JAVA=Off"
"-DCMAKE_BUILD_TYPE=Release" ; needed to have PMALSA set
"-DPORTMIDI_ENABLE_TEST=Off"))) ; tests fail linking
(inputs
`(("alsa-lib" ,alsa-lib)))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://portmedia.sourceforge.net/portmidi/")
(synopsis "Library for MIDI I/O")
(description
"PortMidi is a library supporting real-time input and output of MIDI data
using a system-independent interface.")
(license license:expat)))
(define-public python-pyportmidi
(package
(name "python-pyportmidi")
(version (package-version portmidi))
(source (package-source portmidi))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no tests included
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-dir
(lambda _ (chdir "pm_python") #t))
(add-after 'enter-dir 'fix-setup.py
(lambda _
(substitute* "setup.py"
;; Use Python 3 syntax
(("print (\".*\")" _ text)
(string-append "print(" text ")\n"))
;; TODO.txt and CHANGES.txt don't exist
(("CHANGES =.*") "CHANGES = \"\"\n")
(("TODO =.*") "TODO = \"\"\n"))
#t)))))
(inputs
`(("portmidi" ,portmidi)
("alsa-lib" ,alsa-lib)
("python-cython" ,python-cython)))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://portmedia.sourceforge.net/portmidi/")
(synopsis "Python bindings to PortMidi")
(description
"This package provides Python bindings to the PortMidi library.")
(license license:expat)))
(define-public frescobaldi
(package
(name "frescobaldi")
@ -973,8 +1041,10 @@ (define-public frescobaldi
(build-system python-build-system)
(inputs
`(("lilypond" ,lilypond)
("portmidi" ,portmidi)
("python-pyqt-4" ,python-pyqt-4)
("python-ly" ,python-ly)
("python-pyportmidi" ,python-pyportmidi)
("poppler" ,poppler)
("python-poppler-qt4" ,python-poppler-qt4)
("python-sip" ,python-sip)))
@ -1474,3 +1544,44 @@ (define-public milkytracker
(home-page "http://milkytracker.org/")
;; 'src/milkyplay' is under Modified BSD, the rest is under GPL3 or later.
(license (list license:bsd-3 license:gpl3+))))
(define-public moc
(package
(name "moc")
(version "2.5.1")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.daper.net/pub/soft/"
name "/stable/"
name "-" version ".tar.bz2"))
(sha256
(base32
"1wn4za08z64bhsgfhr9c0crfyvy8c3b6a337wx7gz19am5srqh8v"))))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
("curl" ,curl)
("faad2" ,faad2)
("ffmpeg" ,ffmpeg)
("file" ,file)
("jack" ,jack-1)
("libid3tag" ,libid3tag)
("libltdl" ,libltdl)
("libmodplug" ,libmodplug)
("libmpcdec" ,libmpcdec)
("libmad" ,libmad)
("ncurses" ,ncurses)
("openssl" ,openssl)
("sasl" ,cyrus-sasl)
("speex" ,speex)
("taglib" ,taglib)
("wavpack" ,wavpack)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(synopsis "Console audio player designed to be powerful and easy to use")
(description
"Music on Console is a console audio player that supports many file
formats, including most audio formats recognized by FFMpeg.")
(home-page "http://moc.daper.net")
(license license:gpl2+)))

View file

@ -3,6 +3,7 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -38,7 +39,7 @@ (define-module (gnu packages ntp)
(define-public ntp
(package
(name "ntp")
(version "4.2.8p6")
(version "4.2.8p7")
(source (origin
(method url-fetch)
(uri (string-append
@ -47,7 +48,7 @@ (define-public ntp
"/ntp-" version ".tar.gz"))
(sha256
(base32
"0j509gd0snj8dq15rhfv2v4wisfaabya1gmgqslk1kisawf0wgaq"))
"1p100856h17nb0kpnppy70nja57hbcc95h7shhxvw6mhl030rll1"))
(modules '((guix build utils)))
(snippet
'(begin
@ -92,7 +93,7 @@ (define-public ntp
(define-public openntpd
(package
(name "openntpd")
(version "5.7p3")
(version "5.9p1")
(source (origin
(method url-fetch)
;; XXX Use mirror://openbsd
@ -101,7 +102,7 @@ (define-public openntpd
version ".tar.gz"))
(sha256
(base32
"0filjmb3b8rc39bvhm8q2azzj10ljfgq41qih71pxv919j57qhag"))))
"1cwp6vxv7nj039kgbf0mgfm06f8zc4axawdc7ijl2r2ddl2h8310"))))
(build-system gnu-build-system)
(home-page "http://www.openntpd.org/")
(synopsis "NTP client and server by the OpenBSD Project")

View file

@ -60,7 +60,8 @@ (define-public ocaml
"/ocaml-" version ".tar.xz"))
(sha256
(base32
"1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3"))))
"1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3"))
(patches (search-patches "ocaml-CVE-2015-8869.patch"))))
(build-system gnu-build-system)
(native-search-paths
(list (search-path-specification

View file

@ -0,0 +1,56 @@
This patch sets a fixed version to avoid needing Git and the .git/ folder.
It also removes the creation of "/var/lib/4store", which is not available
during the install phase in GNU Guix.
Patch by Roel Janssen <roel@gnu.org>
*** a/configure.ac Wed Feb 4 19:05:24 2015
--- b/configure.ac Wed Mar 23 11:20:38 2016
***************
*** 2,13 ****
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.50])
! AC_INIT([4store], m4_esyscmd([./version.sh .version]), [http://4store.org/support/], [4store])
AC_CONFIG_SRCDIR([src/backend/backend-intl.h])
! AM_INIT_AUTOMAKE([1.7 std-options -Wall])
AC_CONFIG_HEADERS(4store-config.h)
# Checks for programs.
AC_PROG_LIBTOOL
AC_PROG_AWK
AC_PROG_CC
--- 2,14 ----
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.50])
! AC_INIT([4store], [1.1.6], [http://4store.org/support/], [4store])
AC_CONFIG_SRCDIR([src/backend/backend-intl.h])
! AM_INIT_AUTOMAKE([1.7 std-options foreign -Wall])
AC_CONFIG_HEADERS(4store-config.h)
# Checks for programs.
+ AM_PROG_AR
AC_PROG_LIBTOOL
AC_PROG_AWK
AC_PROG_CC
*** a/src/utilities/Makefile.am Wed Feb 4 19:05:24 2015
--- b/src/utilities/Makefile.am Wed Mar 23 14:05:56 2016
***************
*** 13,20 ****
noinst_PROGRAMS = lex-file-verify 4s-rid
install-data-local:
! mkdir -p $(DESTDIR)@FS_STORE_ROOT@
! chmod 1777 $(DESTDIR)@FS_STORE_ROOT@
4s_backend_destroy_SOURCES = backend-destroy.c
4s_backend_destroy_LDADD = ../common/lib4sintl.a
--- 13,19 ----
noinst_PROGRAMS = lex-file-verify 4s-rid
install-data-local:
! echo "Please create the following directory: " $(DESTDIR)@FS_STORE_ROOT@
4s_backend_destroy_SOURCES = backend-destroy.c
4s_backend_destroy_LDADD = ../common/lib4sintl.a

View file

@ -0,0 +1,224 @@
Adapted from https://sourceforge.net/p/docpp/patches/1/
--- doc++-3.4.10/src/comment.ll 2000-06-24 18:50:23.000000000 +0200
+++ doc++-3.4.10/src/comment.ll 2012-09-17 11:14:50.744922841 +0200
@@ -24,7 +24,7 @@
#include <assert.h>
#include <ctype.h>
-#include <iostream.h>
+#include <iostream>
#include <stdarg.h>
#include <stdio.h>
--- doc++-3.4.10/src/cpp.ll 2002-05-09 08:11:14.000000000 +0200
+++ doc++-3.4.10/src/cpp.ll 2012-09-17 11:15:21.184333236 +0200
@@ -26,7 +26,7 @@
#include <assert.h>
#include <ctype.h>
-#include <iostream.h>
+#include <iostream>
#include <stdarg.h>
#include <stdio.h>
--- doc++-3.4.10/src/datahashtable.h 2000-08-27 21:44:34.000000000 +0200
+++ doc++-3.4.10/src/datahashtable.h 2012-09-17 11:22:59.442589960 +0200
@@ -26,11 +26,13 @@
#define _DATAHASHTABLE_H
#include <assert.h>
-#include <iostream.h>
+#include <iostream>
#include <stdlib.h>
#include "McDArray.h"
+using namespace std;
+
/* This should be a private subclass of #DataHashTable#. However, since cfront
is not able to compile this constrution, we had move the class to global
scope.
--- doc++-3.4.10/src/doc2dbsgml.ll 2002-05-09 08:11:14.000000000 +0200
+++ doc++-3.4.10/src/doc2dbsgml.ll 2012-09-17 11:20:49.077259414 +0200
@@ -22,8 +22,8 @@
%{
#include <assert.h>
-#include <fstream.h>
-#include <iostream.h>
+#include <fstream>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -36,6 +36,8 @@
#undef YY_INPUT
#define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size);
+using namespace std;
+
static Entry* current;
static int inPos;
static int lastContext;
--- doc++-3.4.10/src/doc2dbxml.ll 2002-05-09 08:11:14.000000000 +0200
+++ doc++-3.4.10/src/doc2dbxml.ll 2012-09-17 11:20:22.264831159 +0200
@@ -25,8 +25,8 @@
%{
#include <assert.h>
-#include <fstream.h>
-#include <iostream.h>
+#include <fstream>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -39,6 +39,8 @@
#undef YY_INPUT
#define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size);
+using namespace std;
+
static Entry* current;
static int inPos;
static int lastContext;
--- doc++-3.4.10/src/doc2html.ll 2000-07-17 23:17:24.000000000 +0200
+++ doc++-3.4.10/src/doc2html.ll 2012-09-17 11:22:40.354469631 +0200
@@ -29,6 +29,8 @@
#include "doc.h"
#include "nametable.h"
+using namespace std;
+
extern NameTable gifs;
#define YY_DECL int yylex()
--- doc++-3.4.10/src/doc2tex.ll 2000-11-05 17:21:16.000000000 +0100
+++ doc++-3.4.10/src/doc2tex.ll 2012-09-17 11:23:22.210701715 +0200
@@ -23,8 +23,8 @@
%{
#include <assert.h>
-#include <fstream.h>
-#include <iostream.h>
+#include <fstream>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -38,6 +38,8 @@
#undef YY_INPUT
#define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size);
+using namespace std;
+
static Entry* current;
static int inPos;
static int lastContext;
--- doc++-3.4.10/src/doc.ll 2000-09-17 21:41:17.000000000 +0200
+++ doc++-3.4.10/src/doc.ll 2012-09-17 11:15:37.068009454 +0200
@@ -23,8 +23,8 @@
%{
#include <assert.h>
-#include <fstream.h>
-#include <iostream.h>
+#include <fstream>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
--- doc++-3.4.10/src/equate.cc 2002-05-02 21:13:10.000000000 +0200
+++ doc++-3.4.10/src/equate.cc 2012-09-17 11:25:42.850669366 +0200
@@ -23,9 +23,9 @@
#include "config.h"
-#include <fstream.h>
+#include <fstream>
#include <getopt.h>
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <string.h>
--- doc++-3.4.10/src/html.cc 2001-02-17 07:34:49.000000000 +0100
+++ doc++-3.4.10/src/html.cc 2012-09-17 11:24:07.978824681 +0200
@@ -31,7 +31,7 @@
#include <direct.h>
#endif
#include <errno.h>
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
--- doc++-3.4.10/src/java.ll 2001-11-25 18:04:12.000000000 +0100
+++ doc++-3.4.10/src/java.ll 2012-09-17 11:24:19.138834603 +0200
@@ -26,7 +26,7 @@
#include <assert.h>
#include <ctype.h>
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include "doc.h"
--- doc++-3.4.10/src/main.cc 2002-05-09 08:11:14.000000000 +0200
+++ doc++-3.4.10/src/main.cc 2012-09-17 11:25:30.650719070 +0200
@@ -25,7 +25,7 @@
#include "config.h"
#include <assert.h>
-#include <fstream.h>
+#include <fstream>
#include <getopt.h>
#include <locale.h>
#include <stdio.h>
--- doc++-3.4.10/src/nametable.cc 2000-04-08 23:11:54.000000000 +0200
+++ doc++-3.4.10/src/nametable.cc 2012-09-17 11:25:58.894591128 +0200
@@ -22,7 +22,7 @@
*/
#include <assert.h>
-#include <iostream.h>
+#include <iostream>
#include <stdlib.h>
#include <string.h>
--- doc++-3.4.10/src/nametable.h 2000-04-08 23:11:56.000000000 +0200
+++ doc++-3.4.10/src/nametable.h 2012-09-17 11:22:07.826207198 +0200
@@ -25,7 +25,7 @@
#define _NAME_TABLE_H
#include <assert.h>
-#include <iostream.h>
+#include <iostream>
#include "datahashtable.h"
--- doc++-3.4.10/src/php.ll 2001-02-16 23:34:47.000000000 +0100
+++ doc++-3.4.10/src/php.ll 2012-09-17 11:25:18.582759801 +0200
@@ -23,7 +23,7 @@
%{
#include <assert.h>
#include <ctype.h>
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include "doc.h"
--- doc++-3.4.10/src/tex2gif.cc 2001-08-07 20:55:40.000000000 +0200
+++ doc++-3.4.10/src/tex2gif.cc 2012-09-17 11:26:06.698547836 +0200
@@ -21,8 +21,8 @@
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <iostream.h>
-#include <fstream.h>
+#include <iostream>
+#include <fstream>
#include <stdio.h>
#include <string.h>

View file

@ -0,0 +1,169 @@
Adapted from https://sources.debian.net/data/main/d/doc%2B%2B/3.4.10-3.4/debian/patches/segfault_fix.patch
--- doc++-3.4.10/src/McDArray.h 2000-07-30 12:40:48.000000000 +0200
+++ doc++-3.4.10/src/McDArray.h 2005-05-10 15:02:06.000000000 +0200
@@ -80,9 +80,14 @@
McDArray(const McDArray& old) : memFactor(old.memFactor),
thesize(old.thesize), themax(old.themax)
{
- data = (T*)malloc(themax * sizeof(T));
- if(thesize)
- memcpy(data, old.data, thesize * sizeof(T));
+ if (themax)
+ {
+ data = (T*)malloc(themax * sizeof(T));
+ if(thesize)
+ memcpy(data, old.data, thesize * sizeof(T));
+ }
+ else
+ data = 0;
assert(isConsistent());
}
--- doc++-3.4.10/src/McDirectory.cc 2000-03-14 22:17:36.000000000 +0100
+++ doc++-3.4.10/src/McDirectory.cc 2005-05-10 15:02:18.000000000 +0200
@@ -23,12 +23,13 @@
*/
#include "McDirectory.h"
-#include "McSorter.h"
#include "McString.h"
#include "doc.h"
#include <stdio.h>
+#include <algorithm>
+
#ifdef WIN32
#include <windows.h>
#ifdef __BORLANDC__
@@ -62,7 +63,7 @@
FindClose(searchHandle);
StringCompare comp;
if(list.size())
- sort((char **)list, list.size(), comp, 0);
+ std::sort((char **)list, (char **)list + list.size(), comp);
return 0;
}
@@ -107,7 +108,7 @@
closedir(dir);
StringCompare comp;
if(list.size())
- sort((char **)list, list.size(), comp, 0);
+ std::sort((char **)list, (char **)list + list.size(), comp);
return list.size();
}
--- doc++-3.4.10/src/McDirectory.h 2000-06-28 21:54:58.000000000 +0200
+++ doc++-3.4.10/src/McDirectory.h 2005-05-10 15:02:18.000000000 +0200
@@ -59,9 +59,9 @@
class StringCompare
{
public:
- int operator()(const char *t1, const char *t2)
+ bool operator()(const char *t1, const char *t2)
{
- return strcmp(t1, t2);
+ return strcmp(t1, t2) < 0;
}
};
};
--- doc++-3.4.10/src/html.cc 2001-02-17 07:34:49.000000000 +0100
+++ doc++-3.4.10/src/html.cc 2005-05-10 15:02:18.000000000 +0200
@@ -38,9 +38,10 @@
#include <sys/stat.h>
#include <sys/types.h>
+#include <algorithm>
+
#include "McDirectory.h"
#include "McHashTable.h"
-#include "McSorter.h"
#include "classgraph.h"
#include "doc.h"
#include "gifs.h"
@@ -314,9 +315,11 @@
virtual void writeMember(Entry *e, bool links, bool withSub = true);
class EntryCompare {
public:
- int operator()(const MemberWriterListEntry& l1, const MemberWriterListEntry& l2)
+ bool operator()(const MemberWriterListEntry& l1, const MemberWriterListEntry& l2)
{
- return strcmp(l1.entry->fullName.c_str(), l2.entry->fullName.c_str());
+ const char *s1 = l1.entry->fullName.c_str();
+ const char *s2 = l2.entry->fullName.c_str();
+ return strcmp(s1, s2) < 0;
}
};
public:
@@ -324,7 +327,7 @@
{
EntryCompare comp;
if(list.size())
- ::sort((MemberWriterListEntry *)list, list.size(), comp, 0);
+ std::sort((MemberWriterListEntry *)list, (MemberWriterListEntry *)list + list.size(), comp);
}
virtual void startList(FILE *f, char *heading, bool withLinks);
virtual void addMember(Entry *e, bool links, bool withSub = true)
@@ -376,7 +379,7 @@
int lp;
if(list.size() > 1)
- ::sort((TOCListEntry *)list, list.size(), comp, 0);
+ std::sort((TOCListEntry *)list, (TOCListEntry *)list + list.size(), comp);
// Sort subsections
for(lp = 0; lp < list.size(); lp++)
@@ -385,9 +388,9 @@
}
class EntryCompare {
public:
- int operator()(TOCListEntry& l1, TOCListEntry& l2)
+ bool operator()(const TOCListEntry& l1, const TOCListEntry& l2)
{
- return strcmp(l1.name, l2.name);
+ return strcmp(l1.name, l2.name) < 0;
}
};
void addEntry(Entry *entry, TOClist *tl);
@@ -487,7 +490,7 @@
for(i = 0; i < list.size(); i++)
if(list[i].tl)
- free(list[i].tl);
+ delete list[i].tl;
}
class HIERlist;
@@ -509,7 +512,7 @@
int i;
if(list.size() > 1)
- ::sort((HIERListEntry *)list, list.size(), comp, 0);
+ std::sort((HIERListEntry *)list, (HIERListEntry *)list + list.size(), comp);
// Sort subentries
for(i = 0; i < list.size(); i++)
@@ -519,9 +522,9 @@
class EntryCompare
{
public:
- int operator()(HIERListEntry& l1, HIERListEntry& l2)
+ bool operator()(const HIERListEntry& l1, const HIERListEntry& l2)
{
- return strcmp(l1.name, l2.name);
+ return strcmp(l1.name, l2.name) < 0;
}
};
void addEntry(Entry *entry, HIERlist *hl);
--- doc++-3.4.10/src/readfiles.ll 2001-11-25 18:04:48.000000000 +0100
+++ doc++-3.4.10/src/readfiles.ll 2005-05-10 15:02:18.000000000 +0200
@@ -28,7 +28,6 @@
#include <sys/types.h>
#include "McDirectory.h"
-#include "McSorter.h"
#include "McString.h"
#include "doc.h"
#include "nametable.h"

View file

@ -1,9 +1,23 @@
Search path environment variables for cross-compilers. See the discussion
at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
--- gcc-4.7.2/gcc/incpath.c 2012-01-27 00:34:58.000000000 +0100
+++ gcc-4.7.2/gcc/incpath.c 2013-02-12 10:11:27.000000000 +0100
@@ -452,7 +452,7 @@ register_include_chains (cpp_reader *pfi
Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed
at <http://bugs.gnu.org/22186>.
--- a/gcc/incpath.c
+++ b/gcc/incpath.c
@@ -461,8 +461,8 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
int stdinc, int cxx_stdinc, int verbose)
{
static const char *const lang_env_vars[] =
- { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH",
- "OBJC_INCLUDE_PATH", "OBJCPLUS_INCLUDE_PATH" };
+ { "CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH",
+ "CROSS_OBJC_INCLUDE_PATH", "CROSS_OBJCPLUS_INCLUDE_PATH" };
cpp_options *cpp_opts = cpp_get_options (pfile);
size_t idx = (cpp_opts->objc ? 2: 0);
@@ -473,7 +473,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
/* CPATH and language-dependent environment variables may add to the
include chain. */
@ -12,20 +26,22 @@ at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
add_env_var_paths (lang_env_vars[idx], SYSTEM);
target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc);
--- gcc-4.7.2/gcc/system.h 2012-02-17 00:16:28.000000000 +0100
+++ gcc-4.7.2/gcc/system.h 2013-02-12 10:22:17.000000000 +0100
@@ -1023,4 +1023,6 @@ helper_const_non_const_cast (const char
#define DEBUG_VARIABLE
#endif
diff --git a/gcc/system.h b/gcc/system.h
index 42bc509..af3b9ad 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -1063,4 +1063,6 @@ helper_const_non_const_cast (const char *p)
/* Get definitions of HOST_WIDE_INT and HOST_WIDEST_INT. */
#include "hwint.h"
+#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
+
#endif /* ! GCC_SYSTEM_H */
--- gcc-4.7.2/gcc/tlink.c 2012-02-11 09:50:23.000000000 +0100
+++ gcc-4.7.2/gcc/tlink.c 2013-05-23 22:06:19.000000000 +0200
@@ -461,7 +461,7 @@ recompile_files (void)
diff --git a/gcc/tlink.c b/gcc/tlink.c
index bc358b8..ad6242f 100644
--- a/gcc/tlink.c
+++ b/gcc/tlink.c
@@ -458,7 +458,7 @@ recompile_files (void)
file *f;
putenv (xstrdup ("COMPILER_PATH="));
@ -34,10 +50,11 @@ at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
while ((f = file_pop ()) != NULL)
{
--- gcc-4.7.3/gcc/gcc.c 2013-03-08 08:25:09.000000000 +0100
+++ gcc-4.7.3/gcc/gcc.c 2013-05-24 08:58:16.000000000 +0200
@@ -3726,7 +3726,7 @@ process_command (unsigned int decoded_op
diff --git a/gcc/gcc.c b/gcc/gcc.c
index adbf0c4..70448c6 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -3853,7 +3853,7 @@ process_command (unsigned int decoded_options_count,
}
temp = getenv (LIBRARY_PATH_ENV);

View file

@ -1,138 +0,0 @@
Some GLib tests expect desktop things, such as an xterm, a MIME
database, the `update-desktop-database' program, which we don't provide.
--- glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:44.000000000 +0200
+++ glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:56.000000000 +0200
@@ -497,16 +497,10 @@ main (int argc, char *argv[])
g_test_add_func ("/appinfo/basic", test_basic);
g_test_add_func ("/appinfo/text", test_text);
- g_test_add_func ("/appinfo/launch", test_launch);
g_test_add_func ("/appinfo/show-in", test_show_in);
g_test_add_func ("/appinfo/commandline", test_commandline);
- g_test_add_func ("/appinfo/launch-context", test_launch_context);
- g_test_add_func ("/appinfo/launch-context-signals", test_launch_context_signals);
g_test_add_func ("/appinfo/tryexec", test_tryexec);
- g_test_add_func ("/appinfo/associations", test_associations);
g_test_add_func ("/appinfo/environment", test_environment);
- g_test_add_func ("/appinfo/startup-wm-class", test_startup_wm_class);
- g_test_add_func ("/appinfo/supported-types", test_supported_types);
g_test_add_func ("/appinfo/from-keyfile", test_from_keyfile);
return g_test_run ();
--- glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:29.000000000 +0100
+++ glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:33.000000000 +0100
@@ -207,15 +207,6 @@ main (int argc, char *argv[])
{
g_test_init (&argc, &argv, NULL);
- g_test_add_func ("/contenttype/guess", test_guess);
- g_test_add_func ("/contenttype/unknown", test_unknown);
- g_test_add_func ("/contenttype/subtype", test_subtype);
- g_test_add_func ("/contenttype/list", test_list);
- g_test_add_func ("/contenttype/executable", test_executable);
- g_test_add_func ("/contenttype/description", test_description);
- g_test_add_func ("/contenttype/icon", test_icon);
- g_test_add_func ("/contenttype/symbolic-icon", test_symbolic_icon);
- g_test_add_func ("/contenttype/tree", test_tree);
return g_test_run ();
}
--- glib-2.40.0/gio/tests/desktop-app-info.c 2014-03-19 22:50:45.000000000 -0500
+++ glib-2.40.0/gio/tests/desktop-app-info.c 2014-06-30 14:27:52.543358331 -0500
@@ -708,6 +708,8 @@
g_setenv ("XDG_DATA_HOME", basedir, TRUE);
cleanup_subdirs (basedir);
+ result = g_test_run ();
+ return result;
g_test_add_func ("/desktop-app-info/delete", test_delete);
g_test_add_func ("/desktop-app-info/default", test_default);
g_test_add_func ("/desktop-app-info/fallback", test_fallback);
-----------------------------
The hunk below removes tests that depend on `gdbus-testserver.py',
because that script depends on python-gobject. The second hunk
disables a test that expects /etc/machine-id in the build environment.
--- glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:11:00.928809504 +0200
+++ glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:12:13.157291092 +0200
@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16)
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-auth \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-bz627724 \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-close-pending \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-loss \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-slow \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-error \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-exit-on-close \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-export \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-introspection \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-names \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-threads \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-well-known-name \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen-old \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-threading \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gmenumodel \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gnotification \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ $(NULL)
@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $
am__EXEEXT_1 =
@OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \
@OS_UNIX_TRUE@ gdbus-peer-object-manager$(EXEEXT) \
-@OS_UNIX_TRUE@ gdbus-unix-addresses$(EXEEXT) \
@OS_UNIX_TRUE@ live-g-file$(EXEEXT) socket-address$(EXEEXT) \
@OS_UNIX_TRUE@ stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \
@OS_UNIX_TRUE@ unix-streams$(EXEEXT) $(am__EXEEXT_1) \
The test below depends on the availability /etc/passwd to dbus-daemon.
--- glib-2.40.0/gio/tests/gdbus-auth.c 2014-02-03 11:40:41.000000000 -0600
+++ glib-2.40.0/gio/tests/gdbus-auth.c 2014-06-30 15:08:43.719421893 -0500
@@ -286,6 +286,8 @@
{
gint ret;
+ g_test_init (&argc, &argv, NULL);
+ return g_test_run();
setlocale (LC_ALL, "C");
temp_dbus_keyrings_setup ();
The test dbus-appinfo is dropped as it hangs indefinitely since 2.37.5, see
https://launchpad.net/ubuntu/+source/glib2.0/2.37.5-1ubuntu1
--- glib-2.40.0/gio/tests/dbus-appinfo.c 2014-02-03 11:40:41.000000000 -0600
+++ glib-2.40.0/gio/tests/dbus-appinfo.c 2014-06-30 14:44:08.215383632 -0500
@@ -278,7 +278,7 @@
{
g_test_init (&argc, &argv, NULL);
- g_test_add_func ("/appinfo/dbusappinfo", test_dbus_appinfo);
+ return g_test_run();
return session_bus_run ();
}
The test below fails for unknown reasons (!).
--- glib-2.39.1/gio/tests/gsettings.c.orig 2014-01-20 00:45:04.000000000 +0100
+++ glib-2.39.1/gio/tests/gsettings.c 2014-01-20 00:45:10.000000000 +0100
@@ -2489,7 +2489,6 @@ main (int argc, char *argv[])
g_test_add_func ("/gsettings/range/subprocess/high", test_range_high);
g_test_add_func ("/gsettings/range/subprocess/low", test_range_low);
g_test_add_func ("/gsettings/list-items", test_list_items);
- g_test_add_func ("/gsettings/list-schemas", test_list_schemas);
g_test_add_func ("/gsettings/mapped", test_get_mapped);
g_test_add_func ("/gsettings/get-range", test_get_range);
g_test_add_func ("/gsettings/schema-source", test_schema_source);

View file

@ -1,28 +0,0 @@
This test has proven to be unreliable, often leading to things like this
in gapplication.log:
PASS: gapplication 3 /gapplication/properties
Failed to register: The connection is closed
**
GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated)
ok 4 /gapplication/app-id
PASS: gapplication 4 /gapplication/app-id
../../tap-test: line 5: 24133 Aborted $1 -k --tap
# GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated)
cleaning up pid 24154
ERROR: gapplication - missing test plan
ERROR: gapplication - exited with status 134 (terminated by signal 6?)
See <https://bugs.debian.org/756273> and <http://bugs.gnu.org/18445>.
--- glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:44.566667649 +0100
+++ glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:45.346674179 +0100
@@ -685,7 +685,6 @@ main (int argc, char **argv)
/* g_test_add_func ("/gapplication/non-unique", test_nonunique); */
g_test_add_func ("/gapplication/properties", properties);
g_test_add_func ("/gapplication/app-id", appid);
- g_test_add_func ("/gapplication/quit", test_quit);
g_test_add_func ("/gapplication/local-actions", test_local_actions);
/* g_test_add_func ("/gapplication/remote-actions", test_remote_actions); */
g_test_add_func ("/gapplication/local-command-line", test_local_command_line);

View file

@ -1,59 +0,0 @@
`g_get_home_dir' looks at /etc/passwd first, which fails in chroot builds.
The gdbus tests use it to lookup .dbus-keyrings, so they cannot run in our
chroot build environment. Thus, disable them.
--- glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:46.000000000 +0100
+++ glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:47.000000000 +0100
@@ -373,10 +373,6 @@ main (int argc,
g_type_init ();
g_test_init (&argc, &argv, NULL);
- g_test_add ("/gdbus/connection/flush/busy", Fixture, NULL,
- setup, test_flush_busy, teardown);
- g_test_add ("/gdbus/connection/flush/idle", Fixture, NULL,
- setup, test_flush_idle, teardown);
ret = g_test_run();
--- glib-2.38.0.orig/gio/tests/gdbus-peer.c 2013-08-08 12:00:40.000000000 +0200
+++ glib-2.38.0/gio/tests/gdbus-peer.c 2013-09-30 19:36:40.000000000 +0200
@@ -1746,11 +1746,6 @@
g_test_add_func ("/gdbus/peer-to-peer", test_peer);
g_test_add_func ("/gdbus/delayed-message-processing", delayed_message_processing);
- g_test_add_func ("/gdbus/nonce-tcp", test_nonce_tcp);
-
- g_test_add_func ("/gdbus/tcp-anonymous", test_tcp_anonymous);
- g_test_add_func ("/gdbus/credentials", test_credentials);
- g_test_add_func ("/gdbus/codegen-peer-to-peer", codegen_test_peer);
ret = g_test_run();
--- glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:34.000000000 +0200
+++ glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:40.000000000 +0200
@@ -211,6 +211,7 @@ main (int argc,
g_test_init (&argc, &argv, NULL);
+ return g_test_run();
for (i = 0; cases[i].name != NULL; i++)
{
gchar *name;
@@ -224,5 +225,4 @@ main (int argc,
g_free (name);
}
- return g_test_run();
}
--- glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:25.000000000 +0100
+++ glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:27.000000000 +0100
@@ -294,7 +294,6 @@ main (int argc,
g_type_init ();
g_test_init (&argc, &argv, NULL);
- g_test_add_func ("/gdbus/non-socket", test_non_socket);
ret = g_test_run();

View file

@ -1,14 +0,0 @@
prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 as found on
hydra.gnu.org, and strace(1) doesn't recognize it.
--- glib-2.34.3/glib/tests/thread.c 2012-11-20 15:27:12.000000000 +0100
+++ glib-2.34.3/glib/tests/thread.c 2013-03-27 14:48:31.000000000 +0100
@@ -130,7 +130,7 @@ test_thread3 (void)
static void
test_thread4 (void)
{
-#ifdef HAVE_PRLIMIT
+#if 0
struct rlimit ol, nl;
GThread *thread;
GError *error;

View file

@ -2,9 +2,6 @@
fail depending on the elapsed microseconds. Improve rounding by adding a
fractional bit.
* The /timer/stop test fails if compiler optimizations are enabled, which they
are by default. Disable that test.
--- glib-2.40.0/glib/tests/timer.c 2014-03-05 08:05:42.000000000 -0600
+++ glib-2.40.0/glib/tests/timer.c 2014-07-10 16:33:12.746862822 -0500
@@ -35,7 +35,7 @@
@ -16,11 +13,3 @@
g_timer_destroy (timer);
}
@@ -204,7 +204,6 @@
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/timer/basic", test_timer_basic);
- g_test_add_func ("/timer/stop", test_timer_stop);
g_test_add_func ("/timer/continue", test_timer_continue);
g_test_add_func ("/timer/reset", test_timer_reset);
g_test_add_func ("/timeval/add", test_timeval_add);

View file

@ -1,142 +0,0 @@
Copied from upstream:
http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=acac103ba5772ae738ce5409d17feab80596cde6
Fixes: https://debbugs.gnu.org/22558
Upstream bug: https://bugs.gnupg.org/gnupg/issue2229
From acac103ba5772ae738ce5409d17feab80596cde6 Mon Sep 17 00:00:00 2001
From: "Neal H. Walfield" <neal@g10code.com>
Date: Fri, 12 Feb 2016 22:12:21 +0100
Subject: [PATCH] common: Change simple_query to ignore status messages.
* common/simple-pwquery.c (simple_query): Ignore status messages.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>
GnuPG-bug-id: 2229
---
common/simple-pwquery.c | 95 ++++++++++++++++++++++++++++++++++---------------
1 file changed, 67 insertions(+), 28 deletions(-)
diff --git a/common/simple-pwquery.c b/common/simple-pwquery.c
index 90d04c0..b2d666c 100644
--- a/common/simple-pwquery.c
+++ b/common/simple-pwquery.c
@@ -618,6 +618,7 @@ simple_query (const char *query)
int fd = -1;
int nread;
char response[500];
+ int have = 0;
int rc;
rc = agent_open (&fd);
@@ -628,40 +629,78 @@ simple_query (const char *query)
if (rc)
goto leave;
- /* get response */
- nread = readline (fd, response, 499);
- if (nread < 0)
- {
- rc = -nread;
- goto leave;
- }
- if (nread < 3)
+ while (1)
{
- rc = SPWQ_PROTOCOL_ERROR;
- goto leave;
- }
+ if (! have || ! strchr (response, '\n'))
+ /* get response */
+ {
+ nread = readline (fd, &response[have],
+ sizeof (response) - 1 /* NUL */ - have);
+ if (nread < 0)
+ {
+ rc = -nread;
+ goto leave;
+ }
+ have += nread;
+ if (have < 3)
+ {
+ rc = SPWQ_PROTOCOL_ERROR;
+ goto leave;
+ }
+ response[have] = 0;
+ }
- if (response[0] == 'O' && response[1] == 'K')
- /* OK, do nothing. */;
- else if ((nread > 7 && !memcmp (response, "ERR 111", 7)
- && (response[7] == ' ' || response[7] == '\n') )
- || ((nread > 4 && !memcmp (response, "ERR ", 4)
- && (strtoul (response+4, NULL, 0) & 0xffff) == 99)) )
- {
- /* 111 is the old Assuan code for canceled which might still
- be in use by old installations. 99 is GPG_ERR_CANCELED as
- used by modern gpg-agents; 0xffff is used to mask out the
- error source. */
+ if (response[0] == 'O' && response[1] == 'K')
+ /* OK, do nothing. */;
+ else if ((nread > 7 && !memcmp (response, "ERR 111", 7)
+ && (response[7] == ' ' || response[7] == '\n') )
+ || ((nread > 4 && !memcmp (response, "ERR ", 4)
+ && (strtoul (response+4, NULL, 0) & 0xffff) == 99)) )
+ {
+ /* 111 is the old Assuan code for canceled which might still
+ be in use by old installations. 99 is GPG_ERR_CANCELED as
+ used by modern gpg-agents; 0xffff is used to mask out the
+ error source. */
#ifdef SPWQ_USE_LOGGING
- log_info (_("canceled by user\n") );
+ log_info (_("canceled by user\n") );
#endif
- }
- else
- {
+ }
+ else if (response[0] == 'S' && response[1] == ' ')
+ {
+ char *nextline;
+ int consumed;
+
+ nextline = strchr (response, '\n');
+ if (! nextline)
+ /* Point to the NUL. */
+ nextline = &response[have];
+ else
+ /* Move past the \n. */
+ nextline ++;
+
+ consumed = (size_t) nextline - (size_t) response;
+
+ /* Skip any additional newlines. */
+ while (consumed < have && response[consumed] == '\n')
+ consumed ++;
+
+ have -= consumed;
+
+ if (have)
+ memmove (response, &response[consumed], have + 1);
+
+ continue;
+ }
+ else
+ {
#ifdef SPWQ_USE_LOGGING
- log_error (_("problem with the agent\n"));
+ log_error (_("problem with the agent (unexpected response \"%s\"\n"),
+ response);
#endif
- rc = SPWQ_ERR_RESPONSE;
+ rc = SPWQ_ERR_RESPONSE;
+ }
+
+ break;
}
leave:
--
2.6.3

View file

@ -0,0 +1,41 @@
From: Jookia <166291@gmail.com>
Subject: [PATCHv2] gtk: Patch GTK+ to look for themes in profiles.
To: guix-devel@gnu.org
Date: Sun, 13 Mar 2016 15:17:37 +1100
Url: https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00492.html
diff -Naur gtk+-2.24.28.new/gtk/gtkrc.c gtk+-2.24.28/gtk/gtkrc.c
--- gtk+-2.24.28.new/gtk/gtkrc.c 2016-03-13 10:31:14.413644362 +1100
+++ gtk+-2.24.28/gtk/gtkrc.c 2016-03-13 12:51:34.723398423 +1100
@@ -808,6 +808,8 @@
gchar *path = NULL;
const gchar *home_dir;
gchar *subpath;
+ const gchar * const *xdg_data_dirs;
+ gint i;
if (type)
subpath = g_strconcat ("gtk-2.0-", type,
@@ -830,6 +832,22 @@
}
if (!path)
+ {
+ xdg_data_dirs = g_get_system_data_dirs ();
+ for (i = 0; xdg_data_dirs[i]; i++)
+ {
+ path = g_build_filename (xdg_data_dirs[i], "themes", name, subpath, NULL);
+ if (g_file_test (path, G_FILE_TEST_EXISTS))
+ break;
+ else
+ {
+ g_free (path);
+ path = NULL;
+ }
+ }
+ }
+
+ if (!path)
{
gchar *theme_dir = gtk_rc_get_theme_dir ();
path = g_build_filename (theme_dir, name, subpath, NULL);

View file

@ -0,0 +1,21 @@
Honor SOURCE_DATE_EPOCH when exporting configuration date.
Autoconf-level patch submitted upstream on Wed Apr 13 17:03:23 UTC 2016
--- a/configure
+++ b/configure
@@ -27737,7 +28573,14 @@
## Configuration date
- CONFIG_DATE="`date`"
+ CONFIG_DATE="`date -u`"
+if test -n "$SOURCE_DATE_EPOCH"; then
+ CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \
+ || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null`
+ if test -z "$CONFIG_DATE"; then
+ as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
+ fi
+fi
## User doing the configuration
CONFIG_USER="`whoami`@`hostname`"

View file

@ -0,0 +1,25 @@
Fixes doc++'s treatment of tabular within a parameter block.
From commit 883925f8a at http://github.com/LLNL/hypre
--- hypre-2.10.1/src/parcsr_ls/HYPRE_parcsr_ls.h 2015-12-04 22:12:19.000000000 -0600
+++ hypre-2.10.1/src/parcsr_ls/HYPRE_parcsr_ls.h 2016-03-16 09:02:58.547501336 -0500
@@ -1154,8 +1154,6 @@
* Set the symmetry parameter for the
* ParaSails preconditioner.
*
- * @param solver [IN] Preconditioner object for which to set symmetry parameter.
- * @param sym [IN] Value of the symmetry parameter:
* \begin{tabular}{|c|l|} \hline
* value & meaning \\ \hline
* 0 & nonsymmetric and/or indefinite problem, and nonsymmetric preconditioner\\
@@ -1163,6 +1161,9 @@
* 2 & nonsymmetric, definite problem, and SPD (factored) preconditioner \\
* \hline
* \end{tabular}
+ *
+ * @param solver [IN] Preconditioner object for which to set symmetry parameter.
+ * @param sym [IN] Value of the symmetry parameter:
**/
HYPRE_Int HYPRE_ParaSailsSetSym(HYPRE_Solver solver,
HYPRE_Int sym);

View file

@ -0,0 +1,9 @@
--- hypre-2.10.1/src/lib/Makefile.orig 2016-03-11 16:04:03.740259228 -0600
+++ hypre-2.10.1/src/lib/Makefile 2016-03-11 16:04:57.296260190 -0600
@@ -107,5 +107,5 @@
libHYPRE.so: ${FILES_HYPRE}
@echo "Building $@ ... "
- ${BUILD_CC_SHARED} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
+ ${BUILD_CC_SHARED} ${LDFLAGS} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
ln -s ${SONAME} $@

View file

@ -1,75 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/bf34b97757b3
# HG changeset patch
# User Jon Coppeard <jcoppeard@mozilla.com>
# Date 1453890675 0
# Node ID bf34b97757b334af1f9f53b9b59e0b6902e7ed6f
# Parent 228ca3f46cabaf3f388f6c6640690772aa13c1a5
Bug 1241731 - Handle incomplete buffer in DiscardTransferables r=sfink a=abillings a=sylvestre
diff --git a/js/src/jit-test/tests/gc/bug-1241731.js b/js/src/jit-test/tests/gc/bug-1241731.js
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/gc/bug-1241731.js
@@ -0,0 +1,4 @@
+if (!('oomTest' in this))
+ quit();
+
+oomTest(() => serialize(0, [{}]));
diff --git a/js/src/vm/StructuredClone.cpp b/js/src/vm/StructuredClone.cpp
--- a/js/src/vm/StructuredClone.cpp
+++ b/js/src/vm/StructuredClone.cpp
@@ -379,39 +379,50 @@ ReadStructuredClone(JSContext* cx, uint6
// If the given buffer contains Transferables, free them. Note that custom
// Transferables will use the JSStructuredCloneCallbacks::freeTransfer() to
// delete their transferables.
static void
Discard(uint64_t* buffer, size_t nbytes, const JSStructuredCloneCallbacks* cb, void* cbClosure)
{
MOZ_ASSERT(nbytes % sizeof(uint64_t) == 0);
- if (nbytes < sizeof(uint64_t))
+ uint64_t* end = buffer + nbytes / sizeof(uint64_t);
+ uint64_t* point = buffer;
+ if (point == end)
return; // Empty buffer
- uint64_t* point = buffer;
uint32_t tag, data;
SCInput::getPair(point++, &tag, &data);
if (tag != SCTAG_TRANSFER_MAP_HEADER)
return;
if (TransferableMapHeader(data) == SCTAG_TM_TRANSFERRED)
return;
// freeTransfer should not GC
JS::AutoSuppressGCAnalysis nogc;
+ if (point == end)
+ return;
+
uint64_t numTransferables = LittleEndian::readUint64(point++);
while (numTransferables--) {
+ if (point == end)
+ return;
+
uint32_t ownership;
SCInput::getPair(point++, &tag, &ownership);
MOZ_ASSERT(tag >= SCTAG_TRANSFER_MAP_PENDING_ENTRY);
+ if (point == end)
+ return;
void* content;
SCInput::getPtr(point++, &content);
+ if (point == end)
+ return;
uint64_t extraData = LittleEndian::readUint64(point++);
if (ownership < JS::SCTAG_TMO_FIRST_OWNED)
continue;
if (ownership == JS::SCTAG_TMO_ALLOC_DATA) {
js_free(content);

View file

@ -1,35 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/e7c23c08bf84
# HG changeset patch
# User Randell Jesup <rjesup@jesup.org>
# Date 1458543433 14400
# Node ID e7c23c08bf84a02d9154f31e0c5d121a45884a69
# Parent a6de1f453712edabff597879398606708c191098
Bug 1254876: assert windows recording is shut down r=pkerr a=ritu
MozReview-Commit-ID: JRqxBb5TgrE
diff --git a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc
--- a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc
+++ b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc
@@ -567,16 +567,19 @@ AudioDeviceWindowsCore::AudioDeviceWindo
// ----------------------------------------------------------------------------
AudioDeviceWindowsCore::~AudioDeviceWindowsCore()
{
WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s destroyed", __FUNCTION__);
Terminate();
+ // Recording thread should be shut down before this!
+ assert(_hRecThread == NULL);
+
// The IMMDeviceEnumerator is created during construction. Must release
// it here and not in Terminate() since we don't recreate it in Init().
SAFE_RELEASE(_ptrEnumerator);
_ptrAudioBuffer = NULL;
if (NULL != _hRenderSamplesReadyEvent)
{

View file

@ -1,69 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/3d2b62083a6a
# HG changeset patch
# User Shu-yu Guo <shu@rfrn.org>
# Date 1459741387 -7200
# Node ID 3d2b62083a6a4fb43cb330d77142f9dce0959a23
# Parent 9d4364f6b55c6ee65c13c491292c3abe1ee2c993
Bug 1254164 - Make aliasedBodyLevelLexicalBegin a uint32. r=Waldo, a=ritu
diff --git a/js/src/jit-test/tests/parser/bug-1254164.js b/js/src/jit-test/tests/parser/bug-1254164.js
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/parser/bug-1254164.js
@@ -0,0 +1,6 @@
+// |jit-test| slow;
+
+var s = '';
+for (var i = 0; i < 70000; i++)
+ s += 'function x' + i + '() { x' + i + '(); }\n';
+eval("(function() { " + s + " })();");
diff --git a/js/src/jsscript.cpp b/js/src/jsscript.cpp
--- a/js/src/jsscript.cpp
+++ b/js/src/jsscript.cpp
@@ -111,17 +111,20 @@ Bindings::initWithTemporaryStorage(Exclu
// JITs when interpreting/compiling aliasedvar ops.)
// Since unaliased variables are, by definition, only accessed by local
// operations and never through the scope chain, only give shapes to
// aliased variables. While the debugger may observe any scope object at
// any time, such accesses are mediated by DebugScopeProxy (see
// DebugScopeProxy::handleUnaliasedAccess).
uint32_t nslots = CallObject::RESERVED_SLOTS;
- uint32_t aliasedBodyLevelLexicalBegin = UINT16_MAX;
+
+ // Unless there are aliased body-level lexical bindings at all, set the
+ // begin index to an impossible slot number.
+ uint32_t aliasedBodyLevelLexicalBegin = LOCALNO_LIMIT;
for (BindingIter bi(self); bi; bi++) {
if (bi->aliased()) {
// Per ES6, lexical bindings cannot be accessed until
// initialized. Remember the first aliased slot that is a
// body-level lexical, so that they may be initialized to sentinel
// magic values.
if (numBodyLevelLexicals > 0 &&
nslots < aliasedBodyLevelLexicalBegin &&
diff --git a/js/src/jsscript.h b/js/src/jsscript.h
--- a/js/src/jsscript.h
+++ b/js/src/jsscript.h
@@ -201,18 +201,18 @@ class Bindings
friend class BindingIter;
friend class AliasedFormalIter;
RelocatablePtrShape callObjShape_;
uintptr_t bindingArrayAndFlag_;
uint16_t numArgs_;
uint16_t numBlockScoped_;
uint16_t numBodyLevelLexicals_;
- uint16_t aliasedBodyLevelLexicalBegin_;
uint16_t numUnaliasedBodyLevelLexicals_;
+ uint32_t aliasedBodyLevelLexicalBegin_;
uint32_t numVars_;
uint32_t numUnaliasedVars_;
#if JS_BITS_PER_WORD == 32
// Bindings is allocated inline inside JSScript, which needs to be
// gc::Cell aligned.
uint32_t padding_;
#endif

View file

@ -1,33 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/88f1eb2c3f4b
# HG changeset patch
# User Timothy Nikkel <tnikkel@gmail.com>
# Date 1457637807 21600
# Node ID 88f1eb2c3f4b4b57365ed88223cf8adc2bec4610
# Parent bf34b97757b334af1f9f53b9b59e0b6902e7ed6f
Bug 1187420. r=drc r=jmuizelaar a=sylvestre
MozReview-Commit-ID: Hh0Khqfj8Bf
diff --git a/media/libjpeg/jstdhuff.c b/media/libjpeg/jstdhuff.c
--- a/media/libjpeg/jstdhuff.c
+++ b/media/libjpeg/jstdhuff.c
@@ -36,16 +36,17 @@ add_huff_table (j_common_ptr cinfo,
*/
nsymbols = 0;
for (len = 1; len <= 16; len++)
nsymbols += bits[len];
if (nsymbols < 1 || nsymbols > 256)
ERREXIT(cinfo, JERR_BAD_HUFF_TABLE);
MEMCOPY((*htblptr)->huffval, val, nsymbols * sizeof(UINT8));
+ MEMZERO(&((*htblptr)->huffval[nsymbols]), (256 - nsymbols) * sizeof(UINT8));
/* Initialize sent_table FALSE so table will be written to JPEG file. */
(*htblptr)->sent_table = FALSE;
}
LOCAL(void)
std_huff_tables (j_common_ptr cinfo)

View file

@ -1,37 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/5c312182da90
# HG changeset patch
# User Jan de Mooij <jdemooij@mozilla.com>
# Date 1458828581 -3600
# Node ID 5c312182da9020504103aa329360abaffa7e232d
# Parent fa4efccde9b7efde8763a178a6cf422b6d37a0e9
Bug 1254622 - Relookup group->newScript in CreateThisForFunctionWithGroup. r=bhackett a=sylvestre
MozReview-Commit-ID: KXd7kB70f1Z
diff --git a/js/src/jsobj.cpp b/js/src/jsobj.cpp
--- a/js/src/jsobj.cpp
+++ b/js/src/jsobj.cpp
@@ -1574,18 +1574,19 @@ CreateThisForFunctionWithGroup(JSContext
// Not enough objects with this group have been created yet, so make a
// plain object and register it with the group. Use the maximum number
// of fixed slots, as is also required by the TypeNewScript.
gc::AllocKind allocKind = GuessObjectGCKind(NativeObject::MAX_FIXED_SLOTS);
PlainObject* res = NewObjectWithGroup<PlainObject>(cx, group, parent, allocKind, newKind);
if (!res)
return nullptr;
- if (newKind != SingletonObject)
- newScript->registerNewObject(res);
+ // Make sure group->newScript is still there.
+ if (newKind != SingletonObject && group->newScript())
+ group->newScript()->registerNewObject(res);
return res;
}
gc::AllocKind allocKind = NewObjectGCKind(&PlainObject::class_);
if (newKind == SingletonObject) {
Rooted<TaggedProto> protoRoot(cx, group->proto());

View file

@ -1,35 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/3fdd280fa099
# HG changeset patch
# User Carsten "Tomcat" Book <cbook@mozilla.com>
# Date 1461123938 -7200
# Node ID 3fdd280fa099b6453ce9fd9905af883bc2ebce24
# Parent 52dfdd37150d62f708dc5bf61dd28f3967596788
Bug 1252707 - a=sylvestre
diff --git a/js/src/vm/Shape.cpp b/js/src/vm/Shape.cpp
--- a/js/src/vm/Shape.cpp
+++ b/js/src/vm/Shape.cpp
@@ -382,18 +382,20 @@ NativeObject::getChildPropertyOnDictiona
if (obj->inDictionaryMode()) {
MOZ_ASSERT(parent == obj->lastProperty());
RootedGeneric<StackShape*> childRoot(cx, &child);
shape = childRoot->isAccessorShape() ? NewGCAccessorShape(cx) : NewGCShape(cx);
if (!shape)
return nullptr;
if (childRoot->hasSlot() && childRoot->slot() >= obj->lastProperty()->base()->slotSpan()) {
- if (!obj->setSlotSpan(cx, childRoot->slot() + 1))
+ if (!obj->setSlotSpan(cx, childRoot->slot() + 1)) {
+ new (shape) Shape(obj->lastProperty()->base()->unowned(), 0);
return nullptr;
+ }
}
shape->initDictionaryShape(*childRoot, obj->numFixedSlots(), &obj->shape_);
}
return shape;
}
/* static */ Shape*

View file

@ -1,389 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/71f611fd27c7
# HG changeset patch
# User Jeff Walden <jwalden@mit.edu>
# Date 1458941573 25200
# Node ID 71f611fd27c7d6cb7d6dab9895c2922948042543
# Parent 861f6b83ce1deade2a976cabe059776ad51ce370
Bug 1246061. r=luke, r=froydnj, a=sylvestre
diff --git a/js/public/HashTable.h b/js/public/HashTable.h
--- a/js/public/HashTable.h
+++ b/js/public/HashTable.h
@@ -8,16 +8,17 @@
#define js_HashTable_h
#include "mozilla/Alignment.h"
#include "mozilla/Assertions.h"
#include "mozilla/Attributes.h"
#include "mozilla/Casting.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/Move.h"
+#include "mozilla/Opaque.h"
#include "mozilla/PodOperations.h"
#include "mozilla/ReentrancyGuard.h"
#include "mozilla/TemplateLib.h"
#include "mozilla/TypeTraits.h"
#include "js/Utility.h"
namespace js {
@@ -27,16 +28,18 @@ template <class> struct DefaultHasher;
template <class, class> class HashMapEntry;
namespace detail {
template <class T> class HashTableEntry;
template <class T, class HashPolicy, class AllocPolicy> class HashTable;
}
/*****************************************************************************/
+using Generation = mozilla::Opaque<uint64_t>;
+
// A JS-friendly, STL-like container providing a hash-based map from keys to
// values. In particular, HashMap calls constructors and destructors of all
// objects added so non-PODs may be used safely.
//
// Key/Value requirements:
// - movable, destructible, assignable
// HashPolicy requirements:
// - see Hash Policy section below
@@ -200,17 +203,19 @@ class HashMap
return impl.sizeOfExcludingThis(mallocSizeOf);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf);
}
// If |generation()| is the same before and after a HashMap operation,
// pointers into the table remain valid.
- uint32_t generation() const { return impl.generation(); }
+ Generation generation() const {
+ return impl.generation();
+ }
/************************************************** Shorthand operations */
bool has(const Lookup& l) const {
return impl.lookup(l).found();
}
// Overwrite existing value with v. Return false on oom.
@@ -431,17 +436,19 @@ class HashSet
return impl.sizeOfExcludingThis(mallocSizeOf);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf);
}
// If |generation()| is the same before and after a HashSet operation,
// pointers into the table remain valid.
- uint32_t generation() const { return impl.generation(); }
+ Generation generation() const {
+ return impl.generation();
+ }
/************************************************** Shorthand operations */
bool has(const Lookup& l) const {
return impl.lookup(l).found();
}
// Add |u| if it is not present already. Return false on oom.
@@ -766,17 +773,17 @@ class HashTable : private AllocPolicy
// table operations unless |generation()| is tested.
class Ptr
{
friend class HashTable;
Entry* entry_;
#ifdef JS_DEBUG
const HashTable* table_;
- uint32_t generation;
+ Generation generation;
#endif
protected:
Ptr(Entry& entry, const HashTable& tableArg)
: entry_(&entry)
#ifdef JS_DEBUG
, table_(&tableArg)
, generation(tableArg.generation())
@@ -873,17 +880,17 @@ class HashTable : private AllocPolicy
while (cur < end && !cur->isLive())
++cur;
}
Entry* cur, *end;
#ifdef JS_DEBUG
const HashTable* table_;
uint64_t mutationCount;
- uint32_t generation;
+ Generation generation;
bool validEntry;
#endif
public:
Range()
: cur(nullptr)
, end(nullptr)
#ifdef JS_DEBUG
@@ -1012,18 +1019,18 @@ class HashTable : private AllocPolicy
// HashTable is not copyable or assignable
HashTable(const HashTable&) = delete;
void operator=(const HashTable&) = delete;
private:
static const size_t CAP_BITS = 24;
public:
- Entry* table; // entry storage
- uint32_t gen; // entry storage generation number
+ uint64_t gen; // entry storage generation number
+ Entry* table; // entry storage
uint32_t entryCount; // number of entries in table
uint32_t removedCount:CAP_BITS; // removed entry sentinels in table
uint32_t hashShift:8; // multiplicative hash shift
#ifdef JS_DEBUG
uint64_t mutationCount;
mutable bool mEntered;
mutable struct Stats
@@ -1097,18 +1104,18 @@ class HashTable : private AllocPolicy
for (Entry* e = oldTable, *end = e + capacity; e < end; ++e)
e->destroyIfLive();
alloc.free_(oldTable);
}
public:
explicit HashTable(AllocPolicy ap)
: AllocPolicy(ap)
+ , gen(0)
, table(nullptr)
- , gen(0)
, entryCount(0)
, removedCount(0)
, hashShift(sHashBits)
#ifdef JS_DEBUG
, mutationCount(0)
, mEntered(false)
#endif
{}
@@ -1524,20 +1531,20 @@ class HashTable : private AllocPolicy
}
uint32_t capacity() const
{
MOZ_ASSERT(table);
return JS_BIT(sHashBits - hashShift);
}
- uint32_t generation() const
+ Generation generation() const
{
MOZ_ASSERT(table);
- return gen;
+ return Generation(gen);
}
size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const
{
return mallocSizeOf(table);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const
diff --git a/js/src/jsapi.h b/js/src/jsapi.h
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -270,20 +270,16 @@ class AutoHashMapRooter : protected Auto
size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return map.sizeOfExcludingThis(mallocSizeOf);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return map.sizeOfIncludingThis(mallocSizeOf);
}
- uint32_t generation() const {
- return map.generation();
- }
-
/************************************************** Shorthand operations */
bool has(const Lookup& l) const {
return map.has(l);
}
template<typename KeyInput, typename ValueInput>
bool put(const KeyInput& k, const ValueInput& v) {
@@ -385,20 +381,16 @@ class AutoHashSetRooter : protected Auto
size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return set.sizeOfExcludingThis(mallocSizeOf);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return set.sizeOfIncludingThis(mallocSizeOf);
}
- uint32_t generation() const {
- return set.generation();
- }
-
/************************************************** Shorthand operations */
bool has(const Lookup& l) const {
return set.has(l);
}
bool put(const T& t) {
return set.put(t);
diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h
--- a/js/src/jscntxt.h
+++ b/js/src/jscntxt.h
@@ -30,21 +30,21 @@ class DebugModeOSRVolatileJitFrameIterat
}
typedef HashSet<JSObject*> ObjectSet;
typedef HashSet<Shape*> ShapeSet;
/* Detects cycles when traversing an object graph. */
class AutoCycleDetector
{
+ Generation hashsetGenerationAtInit;
JSContext* cx;
RootedObject obj;
+ ObjectSet::AddPtr hashsetAddPointer;
bool cyclic;
- uint32_t hashsetGenerationAtInit;
- ObjectSet::AddPtr hashsetAddPointer;
MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER
public:
AutoCycleDetector(JSContext* cx, HandleObject objArg
MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
: cx(cx), obj(cx, objArg), cyclic(true)
{
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
diff --git a/js/src/jswatchpoint.cpp b/js/src/jswatchpoint.cpp
--- a/js/src/jswatchpoint.cpp
+++ b/js/src/jswatchpoint.cpp
@@ -22,25 +22,25 @@ DefaultHasher<WatchKey>::hash(const Look
{
return DefaultHasher<JSObject*>::hash(key.object.get()) ^ HashId(key.id.get());
}
namespace {
class AutoEntryHolder {
typedef WatchpointMap::Map Map;
+ Generation gen;
Map& map;
Map::Ptr p;
- uint32_t gen;
RootedObject obj;
RootedId id;
public:
AutoEntryHolder(JSContext* cx, Map& map, Map::Ptr p)
- : map(map), p(p), gen(map.generation()), obj(cx, p->key().object), id(cx, p->key().id)
+ : gen(map.generation()), map(map), p(p), obj(cx, p->key().object), id(cx, p->key().id)
{
MOZ_ASSERT(!p->value().held);
p->value().held = true;
}
~AutoEntryHolder() {
if (gen != map.generation())
p = map.lookup(WatchKey(obj, id));
diff --git a/js/src/shell/jsheaptools.cpp b/js/src/shell/jsheaptools.cpp
--- a/js/src/shell/jsheaptools.cpp
+++ b/js/src/shell/jsheaptools.cpp
@@ -267,17 +267,17 @@ HeapReverser::traverseEdge(void* cell, J
Map::AddPtr a = map.lookupForAdd(cell);
if (!a) {
/*
* We've never visited this cell before. Add it to the map (thus
* marking it as visited), and put it on the work stack, to be
* visited from the main loop.
*/
Node n(kind);
- uint32_t generation = map.generation();
+ Generation generation = map.generation();
if (!map.add(a, cell, Move(n)) ||
!work.append(Child(cell, kind)))
return false;
/* If the map has been resized, re-check the pointer. */
if (map.generation() != generation)
a = map.lookupForAdd(cell);
}
diff --git a/mfbt/Opaque.h b/mfbt/Opaque.h
new file mode 100644
--- /dev/null
+++ b/mfbt/Opaque.h
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* An opaque integral type supporting only comparison operators. */
+
+#ifndef mozilla_Opaque_h
+#define mozilla_Opaque_h
+
+#include "mozilla/TypeTraits.h"
+
+namespace mozilla {
+
+/**
+ * Opaque<T> is a replacement for integral T in cases where only comparisons
+ * must be supported, and it's desirable to prevent accidental dependency on
+ * exact values.
+ */
+template<typename T>
+class Opaque final
+{
+ static_assert(mozilla::IsIntegral<T>::value,
+ "mozilla::Opaque only supports integral types");
+
+ T mValue;
+
+public:
+ Opaque() {}
+ explicit Opaque(T aValue) : mValue(aValue) {}
+
+ bool operator==(const Opaque& aOther) const {
+ return mValue == aOther.mValue;
+ }
+
+ bool operator!=(const Opaque& aOther) const {
+ return !(*this == aOther);
+ }
+};
+
+} // namespace mozilla
+
+#endif /* mozilla_Opaque_h */
diff --git a/mfbt/moz.build b/mfbt/moz.build
--- a/mfbt/moz.build
+++ b/mfbt/moz.build
@@ -48,16 +48,17 @@ EXPORTS.mozilla = [
'MathAlgorithms.h',
'Maybe.h',
'MaybeOneOf.h',
'MemoryChecking.h',
'MemoryReporting.h',
'Move.h',
'NullPtr.h',
'NumericLimits.h',
+ 'Opaque.h',
'Pair.h',
'PodOperations.h',
'Poison.h',
'Range.h',
'RangedPtr.h',
'RefCountType.h',
'ReentrancyGuard.h',
'RefPtr.h',

View file

@ -1,35 +0,0 @@
# HG changeset patch
# User Jean-Yves Avenard <jyavenard@mozilla.com>
# Date 1460655260 25200
# Node ID a13c0bc84d6eb132f4199f563fbe228d2d3b3a51
# Parent 88f1eb2c3f4b4b57365ed88223cf8adc2bec4610
Bug 1254721: Ensure consistency between Cenc offsets and sizes table. r=gerald a=sylvestre
MozReview-Commit-ID: E1KbKIIBR87
diff --git a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp
--- a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp
+++ b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp
@@ -612,18 +612,18 @@ status_t
SampleTable::parseSampleCencInfo() {
if ((!mCencDefaultSize && !mCencInfoCount) || mCencOffsets.isEmpty()) {
// We don't have all the cenc information we need yet. Quietly fail and
// hope we get the data we need later in the track header.
ALOGV("Got half of cenc saio/saiz pair. Deferring parse until we get the other half.");
return OK;
}
- if (!mCencSizes.isEmpty() && mCencOffsets.size() > 1 &&
- mCencSizes.size() != mCencOffsets.size()) {
+ if ((mCencOffsets.size() > 1 && mCencOffsets.size() < mCencInfoCount) ||
+ (!mCencDefaultSize && mCencSizes.size() < mCencInfoCount)) {
return ERROR_MALFORMED;
}
if (mCencInfoCount > kMAX_ALLOCATION / sizeof(SampleCencInfo)) {
// Avoid future OOM.
return ERROR_MALFORMED;
}

View file

@ -1,24 +0,0 @@
Re-enable the DHE (Ephemeral Diffie-Hellman) cipher suites, which IceCat
38.6.0 disabled by default to avoid the Logjam attack. This issue was
fixed in NSS version 3.19.1 by limiting the lower strength of supported
DHE keys to use 1023 bit primes, so we can enable these cipher suites
safely. The DHE cipher suites are needed to allow IceCat to connect to
many sites, including https://gnupg.org/.
Patch by Mark H Weaver <mhw@netris.org>
--- icecat-38.6.0/browser/app/profile/icecat.js.orig 1969-12-31 19:00:00.000000000 -0500
+++ icecat-38.6.0/browser/app/profile/icecat.js 2016-02-06 00:48:23.826170154 -0500
@@ -2061,12 +2061,6 @@
pref("security.ssl3.rsa_des_ede3_sha", false);
pref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", false);
pref("security.ssl3.ecdhe_rsa_rc4_128_sha", false);
-// https://directory.fsf.org/wiki/Disable_DHE
-// Avoid logjam attack
-pref("security.ssl3.dhe_rsa_aes_128_sha", false);
-pref("security.ssl3.dhe_rsa_aes_256_sha", false);
-pref("security.ssl3.dhe_dss_aes_128_sha", false);
-pref("security.ssl3.dhe_rsa_des_ede3_sha", false);
//Optional
//Perfect forward secrecy
// pref("security.ssl3.rsa_aes_256_sha", false);

File diff suppressed because it is too large Load diff

View file

@ -1,20 +0,0 @@
This patch works around a segmentation fault in 'Magick++/tests/color' when
running 'Magick++/tests/tests.tap'. Here we get an exception early on, which
is supposedly harmless:
Caught exception: color: UnableToOpenConfigureFile `colors.xml' @ warning/configure.c/GetConfigureOptions/706
However, when the stack unwinders run, 'UnregisterDOTImage' gets called even
though 'RegisterDOTImage' hadn't been called yet; thus, 'graphic_context' in
coders/dot.c is NULL, leading to the segfault.
--- ImageMagick-6.9.2-1/coders/dot.c 2015-09-16 17:32:42.900323334 +0200
+++ ImageMagick-6.9.2-1/coders/dot.c 2015-09-16 17:32:48.312367636 +0200
@@ -240,6 +240,7 @@ ModuleExport void UnregisterDOTImage(voi
(void) UnregisterMagickInfo("GV");
(void) UnregisterMagickInfo("DOT");
#if defined(MAGICKCORE_GVC_DELEGATE)
+ if (graphic_context != NULL)
gvFreeContext(graphic_context);
#endif
}

View file

@ -1,52 +0,0 @@
Fix CVE-2016-4024 (integer overflow in lib/image.h).
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4024
Upstream source:
https://git.enlightenment.org/legacy/imlib2.git/commit/?id=7eba2e4c8ac0e20838947f10f29d0efe1add8227
From 7eba2e4c8ac0e20838947f10f29d0efe1add8227 Mon Sep 17 00:00:00 2001
From: "Yuriy M. Kaminskiy" <yumkam@gmail.com>
Date: Wed, 6 Apr 2016 03:34:01 +0300
Subject: Fix integer overflow resulting in insufficient heap allocation
IMAGE_DIMENSIONS_OK ensures that image width and height are less then
46340, so that maximum number of pixels is ~2**31.
Unfortunately, there are a lot of code that allocates image data with
something like
malloc(w * h * sizeof(DATA32));
Obviously, on 32-bit machines this results in integer overflow,
insufficient heap allocation, with [massive] out-of-bounds heap
overwrite.
Either X_MAX should be reduced to 32767, or (w)*(h) should be checked to
not exceed ULONG_MAX/sizeof(DATA32).
Security implications:
*) for 32-bit machines: insufficient heap allocation and heap overwrite
in many image loaders, with escalation potential to remote code
execution;
*) for 64-bit machines: it seems, no impact.
---
src/lib/image.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/lib/image.h b/src/lib/image.h
index e9eb678..5fae6ed 100644
--- a/src/lib/image.h
+++ b/src/lib/image.h
@@ -188,7 +188,8 @@ void __imlib_SaveImage(ImlibImage * im, const char *file,
/* The maximum pixmap dimension is 65535. */
/* However, for now, use 46340 (46340^2 < 2^31) to avoid buffer overflow issues. */
-#define X_MAX_DIM 46340
+/* Reduced further to 32767, so that (w * h * sizeof(DATA32)) won't exceed ULONG_MAX */
+#define X_MAX_DIM 32767
#define IMAGE_DIMENSIONS_OK(w, h) \
( ((w) > 0) && ((h) > 0) && ((w) < X_MAX_DIM) && ((h) < X_MAX_DIM) )
--
cgit v0.12

View file

@ -0,0 +1,68 @@
Copied from Fedora.
http://pkgs.fedoraproject.org/cgit/rpms/inkscape.git/plain/inkscape-0.91-drop-wait-for-targets.patch?id=eb5340800b563d6b05aa5f11a2f24f2cc0d8c80e
=== modified file 'src/ui/clipboard.cpp'
--- src/ui/clipboard.cpp 2016-04-02 15:15:43 +0000
+++ src/ui/clipboard.cpp 2016-04-07 16:30:32 +0000
@@ -146,8 +146,6 @@
void _setClipboardColor(guint32);
void _userWarn(SPDesktop *, char const *);
- void _inkscape_wait_for_targets(std::list<Glib::ustring> &);
-
// private properites
SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it
Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node
@@ -1302,9 +1300,7 @@
*/
Glib::ustring ClipboardManagerImpl::_getBestTarget()
{
- // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets()
- std::list<Glib::ustring> targets; // = _clipboard->wait_for_targets();
- _inkscape_wait_for_targets(targets);
+ std::list<Glib::ustring> targets = _clipboard->wait_for_targets();
// clipboard target debugging snippet
/*
@@ -1456,39 +1452,6 @@
desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg);
}
-
-// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see
-//
-// https://bugs.launchpad.net/inkscape/+bug/296778
-// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html
-//
-// for details. Until this has been fixed upstream we will use our own implementation
-// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc.
-void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list<Glib::ustring> &listTargets)
-{
- //Get a newly-allocated array of atoms:
- GdkAtom* targets = NULL;
- gint n_targets = 0;
- gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets );
- if (!test || (targets == NULL)) {
- return;
- }
-
- //Add the targets to the C++ container:
- for (int i = 0; i < n_targets; i++)
- {
- //Convert the atom to a string:
- gchar* const atom_name = gdk_atom_name(targets[i]);
-
- Glib::ustring target;
- if (atom_name) {
- target = Glib::ScopedPtr<char>(atom_name).get(); //This frees the gchar*.
- }
-
- listTargets.push_back(target);
- }
-}
-
/* #######################################
ClipboardManager class
####################################### */

View file

@ -0,0 +1,67 @@
Fix CVE-2016-1541 (buffer overflow zip_read_mac_metadata)
Taken from upstream source repository:
https://github.com/libarchive/libarchive/commit/d0331e8e5b05b475f20b1f3101fe1ad772d7e7e7
When reading OS X metadata entries in Zip archives that were stored
without compression, libarchive would use the uncompressed entry size
to allocate a buffer but would use the compressed entry size to limit
the amount of data copied into that buffer. Since the compressed
and uncompressed sizes are provided by data in the archive itself,
an attacker could manipulate these values to write data beyond
the end of the allocated buffer.
This fix provides three new checks to guard against such
manipulation and to make libarchive generally more robust when
handling this type of entry:
1. If an OS X metadata entry is stored without compression,
abort the entire archive if the compressed and uncompressed
data sizes do not match.
2. When sanity-checking the size of an OS X metadata entry,
abort this entry if either the compressed or uncompressed
size is larger than 4MB.
3. When copying data into the allocated buffer, check the copy
size against both the compressed entry size and uncompressed
entry size.
---
libarchive/archive_read_support_format_zip.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c
index 0f8262c..0a0be96 100644
--- a/libarchive/archive_read_support_format_zip.c
+++ b/libarchive/archive_read_support_format_zip.c
@@ -2778,6 +2778,11 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry,
switch(rsrc->compression) {
case 0: /* No compression. */
+ if (rsrc->uncompressed_size != rsrc->compressed_size) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Malformed OS X metadata entry: inconsistent size");
+ return (ARCHIVE_FATAL);
+ }
#ifdef HAVE_ZLIB_H
case 8: /* Deflate compression. */
#endif
@@ -2798,6 +2803,12 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry,
(intmax_t)rsrc->uncompressed_size);
return (ARCHIVE_WARN);
}
+ if (rsrc->compressed_size > (4 * 1024 * 1024)) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Mac metadata is too large: %jd > 4M bytes",
+ (intmax_t)rsrc->compressed_size);
+ return (ARCHIVE_WARN);
+ }
metadata = malloc((size_t)rsrc->uncompressed_size);
if (metadata == NULL) {
@@ -2836,6 +2847,8 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry,
bytes_avail = remaining_bytes;
switch(rsrc->compression) {
case 0: /* No compression. */
+ if ((size_t)bytes_avail > metadata_bytes)
+ bytes_avail = metadata_bytes;
memcpy(mp, p, bytes_avail);
bytes_used = (size_t)bytes_avail;
metadata_bytes -= bytes_used;

View file

@ -0,0 +1,47 @@
Honor SOURCE_DATE_EPOCH when exporting configuration date.
Autoconf-level patch submitted upstream on Fri Apr 15 23:07:42 UTC 2016
--- a/configure
+++ b/configure
@@ -2866,7 +2866,17 @@
# Configuration Date
- CONFIG_DATE="`date`"
+ CONFIG_DATE="`date -u`"
+if test -n "$SOURCE_DATE_EPOCH"; then
+ CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \
+ || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null`
+ if test -z "$CONFIG_DATE"; then
+ as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
+ fi
+fi
+cat >>confdefs.h <<_ACEOF
+#define CONFIG_DATE "$CONFIG_DATE"
+_ACEOF
# Find out about the host we're building on.
ac_aux_dir=
--- a/libdispatch/derror.c
+++ b/libdispatch/derror.c
@@ -13,7 +13,7 @@
#endif
/* Tell the user the version of netCDF. */
-static const char nc_libvers[] = PACKAGE_VERSION " of "__DATE__" "__TIME__" $";
+static const char nc_libvers[] = PACKAGE_VERSION " of "CONFIG_DATE" $";
/**
\defgroup lib_version Library Version
--- a/config.h.in
+++ b/config.h.in
@@ -393,6 +393,9 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
+/* Define to the configuration date */
+#undef CONFIG_DATE
+
/* The size of `double', as computed by sizeof. */
#undef SIZEOF_DOUBLE

View file

@ -0,0 +1,72 @@
Adapted from upstream commit 659615c7b100a89eafe6253e7a5b9d84d0e8df74,
this patch omits the upstream changes to 'Changes' and 'VERSION'.
http://seclists.org/oss-sec/2016/q2/170
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8869
https://github.com/ocaml/ocaml/commit/659615c7b100a89eafe6253e7a5b9d84d0e8df74
---
byterun/alloc.c | 4 ++--
byterun/intern.c | 2 +-
byterun/str.c | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/byterun/alloc.c b/byterun/alloc.c
index 96a21bf..0db9947 100644
--- a/byterun/alloc.c
+++ b/byterun/alloc.c
@@ -153,7 +153,7 @@ CAMLexport int caml_convert_flag_list(value list, int *flags)
/* [size] is a [value] representing number of words (fields) */
CAMLprim value caml_alloc_dummy(value size)
{
- mlsize_t wosize = Int_val(size);
+ mlsize_t wosize = Long_val(size);
if (wosize == 0) return Atom(0);
return caml_alloc (wosize, 0);
@@ -169,7 +169,7 @@ CAMLprim value caml_alloc_dummy_function(value size,value arity)
/* [size] is a [value] representing number of floats. */
CAMLprim value caml_alloc_dummy_float (value size)
{
- mlsize_t wosize = Int_val(size) * Double_wosize;
+ mlsize_t wosize = Long_val(size) * Double_wosize;
if (wosize == 0) return Atom(0);
return caml_alloc (wosize, 0);
diff --git a/byterun/intern.c b/byterun/intern.c
index 89d13d1..7b8d049 100644
--- a/byterun/intern.c
+++ b/byterun/intern.c
@@ -291,7 +291,7 @@ static void intern_rec(value *dest)
case OFreshOID:
/* Refresh the object ID */
/* but do not do it for predefined exception slots */
- if (Int_val(Field((value)dest, 1)) >= 0)
+ if (Long_val(Field((value)dest, 1)) >= 0)
caml_set_oo_id((value)dest);
/* Pop item and iterate */
sp--;
diff --git a/byterun/str.c b/byterun/str.c
index 5ad4e29..885772f 100644
--- a/byterun/str.c
+++ b/byterun/str.c
@@ -266,7 +266,7 @@ CAMLprim value caml_string_greaterequal(value s1, value s2)
CAMLprim value caml_blit_string(value s1, value ofs1, value s2, value ofs2,
value n)
{
- memmove(&Byte(s2, Long_val(ofs2)), &Byte(s1, Long_val(ofs1)), Int_val(n));
+ memmove(&Byte(s2, Long_val(ofs2)), &Byte(s1, Long_val(ofs1)), Long_val(n));
return Val_unit;
}
@@ -278,7 +278,7 @@ CAMLprim value caml_fill_string(value s, value offset, value len, value init)
CAMLprim value caml_bitvect_test(value bv, value n)
{
- int pos = Int_val(n);
+ intnat pos = Long_val(n);
return Val_int(Byte_u(bv, pos >> 3) & (1 << (pos & 7)));
}
--
2.7.4

View file

@ -1,30 +0,0 @@
Fixes CVE-2015-8868 (heap overflow).
Upstream source:
https://cgit.freedesktop.org/poppler/poppler/commit/?id=b3425dd3261679958cd56c0f71995c15d2124433
From b3425dd3261679958cd56c0f71995c15d2124433 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Tue, 22 Dec 2015 22:50:33 +0100
Subject: Do not crash on invalid files
Bug #93476
diff --git a/poppler/Function.cc b/poppler/Function.cc
index 67283df..ee5afc1 100644
--- a/poppler/Function.cc
+++ b/poppler/Function.cc
@@ -577,6 +577,10 @@ ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) {
goto err2;
}
n = obj1.arrayGetLength();
+ if (unlikely(n > funcMaxOutputs)) {
+ error(errSyntaxError, -1, "Function's C0 array is wrong length");
+ n = funcMaxOutputs;
+ }
for (i = 0; i < n; ++i) {
obj1.arrayGet(i, &obj2);
if (!obj2.isNum()) {
--
cgit v0.10.2

View file

@ -0,0 +1,325 @@
We took this patch from Gentoo to break apart the portmidi build, so that we
can disable the Java parts and cleanly disable the tests which fail to link
(possibly because they are linked before “-lportmidi” is available). The
patch was downloaded from here:
https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/portmidi/files/portmidi-217-cmake.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d
--- portmidi/CMakeLists.txt
+++ portmidi/CMakeLists.txt
@@ -9,12 +9,11 @@
set(CMAKE_BUILD_TYPE Release CACHE STRING
"Semicolon-separate list of supported configuration types")
# set default directories but don't override cached values...
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE}
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
CACHE STRING "libraries go here")
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE}
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
CACHE STRING "libraries go here")
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
- ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE}
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
CACHE STRING "executables go here")
else(UNIX)
@@ -68,10 +67,20 @@
include_directories(pm_common porttime)
add_subdirectory(pm_common)
-add_subdirectory(pm_test)
+option(PORTMIDI_ENABLE_JAVA "Enable Java bindings support" ON)
+option(PORTMIDI_ENABLE_STATIC "Build and install static libraries" OFF)
+option(PORTMIDI_ENABLE_TEST "Build test programs" ON)
+
+if(PORTMIDI_ENABLE_TEST)
+ add_subdirectory(pm_test)
+endif(PORTMIDI_ENABLE_TEST)
add_subdirectory(pm_dylib)
# Cannot figure out how to make an xcode Java application with CMake
-add_subdirectory(pm_java)
+if(PORTMIDI_ENABLE_JAVA)
+ set(JAR_INSTALL_DIR share/java
+ CACHE STRING "Define directory name for jar installation")
+ add_subdirectory(pm_java)
+endif(PORTMIDI_ENABLE_JAVA)
--- portmidi/pm_common/CMakeLists.txt
+++ portmidi/pm_common/CMakeLists.txt
@@ -44,9 +44,6 @@
# first include the appropriate system-dependent file:
if(UNIX)
- # add the -g switch for Linux and Mac OS X (not used in Win32)
- set (CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}"
- CACHE STRING "enable extra checks for debugging" FORCE)
if(APPLE)
set(MACSRC pmmacosxcm pmmac readbinaryplist finddefault)
prepend_path(LIBSRC ../pm_mac/ ${MACSRC})
@@ -62,19 +59,23 @@
${COREMIDI_LIB} ${CORESERVICES_LIB}
CACHE INTERNAL "")
- set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework")
- set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
+ if(PORTMIDI_ENABLE_JAVA)
+ set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework")
+ set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
+ endif(PORTMIDI_ENABLE_JAVA)
message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
else(APPLE)
# LINUX settings...
- include(FindJNI)
- message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
- message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
- message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
- message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
- set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
+ if(PORTMIDI_ENABLE_JAVA)
+ include(FindJNI)
+ message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
+ message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
+ message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
+ message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
+ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
+ # libjvm.so is found relative to JAVA_INCLUDE_PATH:
+ set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
+ endif(PORTMIDI_ENABLE_JAVA)
set(LINUXSRC pmlinuxalsa pmlinux finddefault)
prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
@@ -88,10 +89,12 @@
# /MD is multithread DLL, /MT is multithread. Change to static:
include(../pm_win/static.cmake)
- include(FindJNI)
+ if(PORTMIDI_ENABLE_JAVA)
+ include(FindJNI)
- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
- # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
+ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
+ # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
+ endif(PORTMIDI_ENABLE_JAVA)
set(WINSRC pmwin pmwinmm)
prepend_path(LIBSRC ../pm_win/ ${WINSRC})
@@ -99,29 +102,43 @@
set(PM_NEEDED_LIBS winmm.lib)
endif(WIN32)
endif(UNIX)
-set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
+
+if(PORTMIDI_ENABLE_JAVA)
+ set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
+endif(PORTMIDI_ENABLE_JAVA)
# this completes the list of library sources by adding shared code
list(APPEND LIBSRC pmutil portmidi)
# now add the shared files to make the complete list of library sources
-add_library(portmidi-static ${LIBSRC})
-set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
-target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
-
-# define the jni library
-include_directories(${JAVA_INCLUDE_PATHS})
-
-set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
-add_library(pmjni SHARED ${JNISRC})
-target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
-set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
+if(PORTMIDI_ENABLE_STATIC)
+ add_library(portmidi-static ${LIBSRC})
+ set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi")
+ target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
+endif(PORTMIDI_ENABLE_STATIC)
+
+if(PORTMIDI_ENABLE_JAVA)
+ # define the jni library
+ include_directories(${JAVA_INCLUDE_PATHS})
+
+ set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
+ add_library(pmjni SHARED ${JNISRC})
+ target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
+ set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
+endif(PORTMIDI_ENABLE_JAVA)
# install the libraries (Linux and Mac OS X command line)
if(UNIX)
- INSTALL(TARGETS portmidi-static pmjni
- LIBRARY DESTINATION /usr/local/lib
- ARCHIVE DESTINATION /usr/local/lib)
+ if(PORTMIDI_ENABLE_STATIC)
+ INSTALL(TARGETS portmidi-static
+ LIBRARY DESTINATION lib${LIB_SUFFIX}
+ ARCHIVE DESTINATION lib${LIB_SUFFIX})
+ endif(PORTMIDI_ENABLE_STATIC)
+ if(PORTMIDI_ENABLE_JAVA)
+ INSTALL(TARGETS pmjni
+ LIBRARY DESTINATION lib${LIB_SUFFIX}
+ ARCHIVE DESTINATION lib${LIB_SUFFIX})
+ endif(PORTMIDI_ENABLE_JAVA)
# .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
# INSTALL(FILES portmidi.h ../porttime/porttime.h
# DESTINATION /usr/local/include)
--- portmidi/pm_dylib/CMakeLists.txt
+++ portmidi/pm_dylib/CMakeLists.txt
@@ -39,9 +39,6 @@
# first include the appropriate system-dependent file:
if(UNIX)
- # add the -g switch for Linux and Mac OS X (not used in Win32)
- set (CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}"
- CACHE STRING "enable extra checks for debugging" FORCE)
if(APPLE)
set(MACSRC pmmacosxcm pmmac readbinaryplist finddefault)
prepend_path(LIBSRC ../pm_mac/ ${MACSRC})
@@ -63,7 +60,8 @@
message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
else(APPLE)
# LINUX settings...
- include(FindJNI)
+ if(PORTMIDI_ENABLE_JAVA)
+ include(FindJNI)
# message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
# message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
# note: should use JAVA_JVM_LIB_PATH, but it is not set properly
@@ -75,11 +73,8 @@
# JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
# and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
# because JAVA_INCLUDE_PATH2 is pretty obscure)
- set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN}
- CACHE STRING "where to find Java SDK include directory")
- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
+ set(JAVAVM_LIB ${JAVA_JVM_LIBRARY})
+ endif(PORTMIDI_ENABLE_JAVA)
set(LINUXSRC pmlinuxalsa pmlinux finddefault)
prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
@@ -91,13 +86,15 @@
if(WIN32)
# /MDd is multithread debug DLL, /MTd is multithread debug
# /MD is multithread DLL, /MT is multithread
-
- include(FindJNI)
- # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../lib/jvm.lib)
- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
- # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
+ if(PORTMIDI_ENABLE_JAVA)
+ include(FindJNI)
+ # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
+ set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../lib/jvm.lib)
+
+ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
+ # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
+ endif(PORTMIDI_ENABLE_JAVA)
set(WINSRC pmwin pmwinmm)
prepend_path(LIBSRC ../pm_win/ ${WINSRC})
@@ -106,7 +103,10 @@
# message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB})
endif(WIN32)
endif(UNIX)
+
+if(PORTMIDI_ENABLE_JAVA)
set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVAVM_LIB})
+endif(PORTMIDI_ENABLE_JAVA)
# this completes the list of library sources by adding shared code
set(SHARED_FILES pmutil portmidi)
@@ -120,8 +120,8 @@
# install the libraries (Linux and Mac OS X command line)
if(UNIX)
INSTALL(TARGETS portmidi-dynamic
- LIBRARY DESTINATION /usr/local/lib
- ARCHIVE DESTINATION /usr/local/lib)
+ LIBRARY DESTINATION lib${LIB_SUFFIX}
+ ARCHIVE DESTINATION lib${LIB_SUFFIX})
INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h
- DESTINATION /usr/local/include)
+ DESTINATION include)
endif(UNIX)
--- portmidi/pm_java/CMakeLists.txt
+++ portmidi/pm_java/CMakeLists.txt
@@ -5,43 +5,24 @@
# java not dealt with in CMake -- see pm_mac/pm_mac.xcodeproj
else(APPLE)
# linux
- set(JPORTMIDICLASS JPortMidi.class JPortMidiException.class
- JPortMidiApi.class)
- set(PMDEFAULTSCLASS PmDefaultsFrame.class PmDefaults.class)
- prepend_path(JPORTMIDICLASS2 jportmidi/ ${JPORTMIDICLASS})
- prepend_path(PMDEFAULTSCLASS2 pmdefaults/ ${PMDEFAULTSCLASS})
- set(PMDEFAULTS_ALL_CLASSES ${JPORTMIDICLASS2} ${PMDEFAULTSCLASS2})
- # message(STATUS "PMDEFAULTS_ALL_CLASSES is " ${PMDEFAULTS_ALL_CLASSES})
- add_custom_command(OUTPUT pmdefaults/PmDefaultsFrame.class
- COMMAND javac -classpath . pmdefaults/PmDefaultsFrame.java
- MAIN_DEPENDENCY pmdefaults/PmDefaultsFrame.java
- DEPENDS pmdefaults/PmDefaults.java
- WORKING_DIRECTORY pm_java)
- add_custom_command(OUTPUT pmdefaults/PmDefaults.class
- COMMAND javac -classpath . pmdefaults/PmDefaults.java
- MAIN_DEPENDENCY pmdefaults/PmDefaults.java
- DEPENDS pmdefaults/PmDefaultsFrame.java
- WORKING_DIRECTORY pm_java)
- add_custom_command(OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
- COMMAND cp pmdefaults/portmusic_logo.png .
- COMMAND jar cmf pmdefaults/manifest.txt pmdefaults.jar
- pmdefaults/*.class portmusic_logo.png jportmidi/*.class
- COMMAND chmod +x pmdefaults/pmdefaults
- COMMAND cp pmdefaults/pmdefaults ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
- COMMAND mv pmdefaults.jar ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
- COMMAND rm portmusic_logo.png
- MAIN_DEPENDENCY pmdefaults/PmDefaults.class
- DEPENDS ${PMDEFAULTS_ALL_CLASSES}
- WORKING_DIRECTORY pm_java)
- add_custom_target(pmdefaults_target ALL
- DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar)
- # message(STATUS "add_custom_target: pmdefaults.jar")
+ set(JAVA_CLASSES jportmidi pmdefaults)
+ add_custom_command(OUTPUT ${JAVA_CLASSES}
+ COMMAND javac -d ${CMAKE_CURRENT_BINARY_DIR} jportmidi/*.java pmdefaults/*.java
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar
+ DEPENDS ${JAVA_CLASSES}
+ COMMAND jar cmf pmdefaults/manifest.txt ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar
+ -C pmdefaults portmusic_logo.png -C ${CMAKE_CURRENT_BINARY_DIR} jportmidi
+ -C ${CMAKE_CURRENT_BINARY_DIR} pmdefaults
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ add_custom_target(pmdefaults.jar ALL
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar)
# install the libraries (Linux only)
- INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
- DESTINATION /usr/share/java)
- INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults
- DESTINATION /usr/local/bin)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar
+ DESTINATION ${JAR_INSTALL_DIR})
+ INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/pmdefaults/pmdefaults
+ DESTINATION bin)
endif(APPLE)
endif(UNIX)
# In windows, use pm_java/make.bat
--- portmidi/pm_test/CMakeLists.txt
+++ portmidi/pm_test/CMakeLists.txt
@@ -12,8 +12,8 @@
macro(make_a_test name)
add_executable(${name} ${name}.c)
- target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS})
- add_dependencies(${name} portmidi-static)
+ target_link_libraries(${name} portmidi ${PM_NEEDED_LIBS})
+ add_dependencies(${name} portmidi)
endmacro(make_a_test)
make_a_test(test)

View file

@ -1,48 +0,0 @@
From 156a2e4dbffa85997636a7a39ef12da6f1b40254 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Mon, 14 Dec 2015 09:21:23 +0100
Subject: [PATCH] ehci: make idt processing more robust
Make ehci_process_itd return an error in case we didn't do any actual
iso transfer because we've found no active transaction. That'll avoid
ehci happily run in circles forever if the guest builds a loop out of
idts.
This is CVE-2015-8558.
Cc: qemu-stable@nongnu.org
Reported-by: Qinghao Tang <luodalongde@gmail.com>
Tested-by: P J P <ppandit@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
hw/usb/hcd-ehci.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
index 4e2161b..d07f228 100644
--- a/hw/usb/hcd-ehci.c
+++ b/hw/usb/hcd-ehci.c
@@ -1389,7 +1389,7 @@ static int ehci_process_itd(EHCIState *ehci,
{
USBDevice *dev;
USBEndpoint *ep;
- uint32_t i, len, pid, dir, devaddr, endp;
+ uint32_t i, len, pid, dir, devaddr, endp, xfers = 0;
uint32_t pg, off, ptr1, ptr2, max, mult;
ehci->periodic_sched_active = PERIODIC_ACTIVE;
@@ -1479,9 +1479,10 @@ static int ehci_process_itd(EHCIState *ehci,
ehci_raise_irq(ehci, USBSTS_INT);
}
itd->transact[i] &= ~ITD_XACT_ACTIVE;
+ xfers++;
}
}
- return 0;
+ return xfers ? 0 : -1;
}
--
2.6.3

Some files were not shown because too many files have changed in this diff Show more