Merge branch 'master' into gnome-updates
This commit is contained in:
		
						commit
						4e9d04a80b
					
				
					 28 changed files with 1416 additions and 73 deletions
				
			
		| 
						 | 
				
			
			@ -403,6 +403,7 @@ GNU_SYSTEM_MODULES =				\
 | 
			
		|||
 | 
			
		||||
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			\
 | 
			
		||||
| 
						 | 
				
			
			@ -640,6 +641,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		\
 | 
			
		||||
| 
						 | 
				
			
			@ -678,7 +680,9 @@ 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/pt-scotch-build-parallelism.patch	\
 | 
			
		||||
  gnu/packages/patches/pulseaudio-fix-mult-test.patch		\
 | 
			
		||||
| 
						 | 
				
			
			@ -788,6 +792,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	\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -874,7 +874,12 @@ commands and their arguments.")
 | 
			
		|||
               (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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1535,14 +1535,14 @@ data and settings.")
 | 
			
		|||
(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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -879,4 +879,7 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
 | 
			
		|||
(define-public gcc-toolchain-5
 | 
			
		||||
  (gcc-toolchain gcc-5))
 | 
			
		||||
 | 
			
		||||
(define-public gcc-toolchain-6
 | 
			
		||||
  (gcc-toolchain gcc-6))
 | 
			
		||||
 | 
			
		||||
;;; commencement.scm ends here
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -166,34 +167,38 @@ may be either a libc package or #f.)"
 | 
			
		|||
              `(alist-cons-before
 | 
			
		||||
                'configure 'set-cross-path
 | 
			
		||||
                (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
                  ;; Add the cross Linux headers to CROSS_CPATH, and remove them
 | 
			
		||||
                  ;; from CPATH.
 | 
			
		||||
                  ;; Add the cross Linux headers to CROSS_C_*_INCLUDE_PATH,
 | 
			
		||||
                  ;; and remove them from C_*INCLUDE_PATH.
 | 
			
		||||
                  (let ((libc  (assoc-ref inputs "libc"))
 | 
			
		||||
                        (linux (assoc-ref inputs "xlinux-headers")))
 | 
			
		||||
                    (define (cross? x)
 | 
			
		||||
                      ;; Return #t if X is a cross-libc or cross Linux.
 | 
			
		||||
                      (or (string-prefix? libc x)
 | 
			
		||||
                          (string-prefix? linux x)))
 | 
			
		||||
 | 
			
		||||
                    (setenv "CROSS_CPATH"
 | 
			
		||||
                            (string-append libc "/include:"
 | 
			
		||||
                                           linux "/include"))
 | 
			
		||||
                    (let ((cpath (string-append
 | 
			
		||||
                                  libc "/include"
 | 
			
		||||
                                  ":" linux "/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 @@ GCC that does not target a libc; otherwise, target that libc."
 | 
			
		|||
    (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 @@ XBINUTILS and the cross tool chain."
 | 
			
		|||
        `(alist-cons-before
 | 
			
		||||
          'configure 'set-cross-linux-headers-path
 | 
			
		||||
          (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
            (let ((linux (assoc-ref inputs "linux-headers")))
 | 
			
		||||
              (setenv "CROSS_CPATH"
 | 
			
		||||
                      (string-append linux "/include"))
 | 
			
		||||
            (let* ((linux (assoc-ref inputs "linux-headers"))
 | 
			
		||||
                   (cpath (string-append linux "/include")))
 | 
			
		||||
              (for-each (cut setenv <> cpath)
 | 
			
		||||
                        '("CROSS_C_INCLUDE_PATH"
 | 
			
		||||
                          "CROSS_CPLUS_INCLUDE_PATH"
 | 
			
		||||
                          "CROSS_OBJC_INCLUDE_PATH"
 | 
			
		||||
                          "CROSS_OBJCPLUS_INCLUDE_PATH"))
 | 
			
		||||
              #t))
 | 
			
		||||
          ,phases))))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,7 @@
 | 
			
		|||
;;; 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 @@
 | 
			
		|||
  #: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 @@
 | 
			
		|||
  #: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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2097,7 +2097,7 @@ the chat server psyced with the specific config located at
 | 
			
		|||
http://lavachat.symlynx.com/unix/")
 | 
			
		||||
    (license license:gpl2+)))
 | 
			
		||||
 | 
			
		||||
(define-public redeclipse
 | 
			
		||||
(define-public red-eclipse
 | 
			
		||||
  (let ((data-sources
 | 
			
		||||
         '(("acerspyro"   "0gxxr6nbac918b49x1cp72nw951hqm5m4iyi2shb1612ly384w8q")
 | 
			
		||||
           ("actors"      "1jq9q82m6nx07nwpb5cnpdcwa33jrcgg0j2yir8zk6zpnxdmp0il")
 | 
			
		||||
| 
						 | 
				
			
			@ -2133,7 +2133,7 @@ http://lavachat.symlynx.com/unix/")
 | 
			
		|||
           ("weapons"     "1ghn6nfcnd5lyl8dnj22csldvf9hrb32wjzpab4sjjz3iyv0zmr3")
 | 
			
		||||
           ("wicked"      "0q9badvg6ix5rhl05s83kw2v6a49jpnbkqk4ls89qahaddfagi8g"))))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "redeclipse")
 | 
			
		||||
      (name "red-eclipse")
 | 
			
		||||
      (version "1.5.3")
 | 
			
		||||
      (source (origin
 | 
			
		||||
                (method url-fetch)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
;;; GNU Guix --- Functional package management for GNU
 | 
			
		||||
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
 | 
			
		||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 | 
			
		||||
| 
						 | 
				
			
			@ -354,6 +354,19 @@ Go.  It also includes runtime support libraries for these languages.")
 | 
			
		|||
                "1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq"))
 | 
			
		||||
              (patches (search-patches "gcc-5.0-libvtv-runpath.patch"))))))
 | 
			
		||||
 | 
			
		||||
(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-4.9)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,7 @@
 | 
			
		|||
  #: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)
 | 
			
		||||
| 
						 | 
				
			
			@ -568,9 +569,9 @@ including tools for signing keys, keyring analysis, and party preparation.
 | 
			
		|||
   (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)
 | 
			
		||||
| 
						 | 
				
			
			@ -580,21 +581,48 @@ including tools for signing keys, keyring analysis, and party preparation.
 | 
			
		|||
               (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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -859,3 +859,193 @@ build process and its dependencies, whereas Make uses Makefile format.")
 | 
			
		|||
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)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1203,11 +1203,31 @@ devices.  It replaces 'iwconfig', which is deprecated.")
 | 
			
		|||
        (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/")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,6 +59,7 @@
 | 
			
		|||
  #: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)
 | 
			
		||||
| 
						 | 
				
			
			@ -430,6 +431,44 @@ extremely large and complex data collections.")
 | 
			
		|||
    (license (license:x11-style
 | 
			
		||||
              "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
 | 
			
		||||
 | 
			
		||||
(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.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,16 +91,37 @@ keys, no previous conversation is compromised.")
 | 
			
		|||
    (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)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -825,6 +825,13 @@ mixing, FFT scopes, MIDI automation and full scriptability in Scheme.")
 | 
			
		|||
                            (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)
 | 
			
		||||
| 
						 | 
				
			
			@ -952,6 +959,70 @@ programming methods as well as for realizing complex systems for large-scale
 | 
			
		|||
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")
 | 
			
		||||
| 
						 | 
				
			
			@ -967,8 +1038,10 @@ projects.")
 | 
			
		|||
    (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)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,7 +60,8 @@
 | 
			
		|||
                    "/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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										56
									
								
								gnu/packages/patches/4store-fix-buildsystem.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								gnu/packages/patches/4store-fix-buildsystem.patch
									
										
									
									
									
										Normal 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
 | 
			
		||||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										72
									
								
								gnu/packages/patches/ocaml-CVE-2015-8869.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								gnu/packages/patches/ocaml-CVE-2015-8869.patch
									
										
									
									
									
										Normal 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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										325
									
								
								gnu/packages/patches/portmidi-modular-build.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										325
									
								
								gnu/packages/patches/portmidi-modular-build.patch
									
										
									
									
									
										Normal 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)
 | 
			
		||||
							
								
								
									
										82
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
From ecbb0b3dc122b0d290987cf9c84010bbe53e1022 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Jouni Malinen <jouni@qca.qualcomm.com>
 | 
			
		||||
Date: Fri, 4 Mar 2016 17:20:18 +0200
 | 
			
		||||
Subject: [PATCH 1/5] WPS: Reject a Credential with invalid passphrase
 | 
			
		||||
 | 
			
		||||
WPA/WPA2-Personal passphrase is not allowed to include control
 | 
			
		||||
characters. Reject a Credential received from a WPS Registrar both as
 | 
			
		||||
STA (Credential) and AP (AP Settings) if the credential is for WPAPSK or
 | 
			
		||||
WPA2PSK authentication type and includes an invalid passphrase.
 | 
			
		||||
 | 
			
		||||
This fixes an issue where hostapd or wpa_supplicant could have updated
 | 
			
		||||
the configuration file PSK/passphrase parameter with arbitrary data from
 | 
			
		||||
an external device (Registrar) that may not be fully trusted. Should
 | 
			
		||||
such data include a newline character, the resulting configuration file
 | 
			
		||||
could become invalid and fail to be parsed.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
 | 
			
		||||
---
 | 
			
		||||
 src/utils/common.c         | 12 ++++++++++++
 | 
			
		||||
 src/utils/common.h         |  1 +
 | 
			
		||||
 src/wps/wps_attr_process.c | 10 ++++++++++
 | 
			
		||||
 3 files changed, 23 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/utils/common.c b/src/utils/common.c
 | 
			
		||||
index 450e2c6..27b7c02 100644
 | 
			
		||||
--- a/src/utils/common.c
 | 
			
		||||
+++ b/src/utils/common.c
 | 
			
		||||
@@ -697,6 +697,18 @@ int is_hex(const u8 *data, size_t len)
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+int has_ctrl_char(const u8 *data, size_t len)
 | 
			
		||||
+{
 | 
			
		||||
+	size_t i;
 | 
			
		||||
+
 | 
			
		||||
+	for (i = 0; i < len; i++) {
 | 
			
		||||
+		if (data[i] < 32 || data[i] == 127)
 | 
			
		||||
+			return 1;
 | 
			
		||||
+	}
 | 
			
		||||
+	return 0;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
 size_t merge_byte_arrays(u8 *res, size_t res_len,
 | 
			
		||||
 			 const u8 *src1, size_t src1_len,
 | 
			
		||||
 			 const u8 *src2, size_t src2_len)
 | 
			
		||||
diff --git a/src/utils/common.h b/src/utils/common.h
 | 
			
		||||
index 701dbb2..a972240 100644
 | 
			
		||||
--- a/src/utils/common.h
 | 
			
		||||
+++ b/src/utils/common.h
 | 
			
		||||
@@ -488,6 +488,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len);
 | 
			
		||||
 
 | 
			
		||||
 char * wpa_config_parse_string(const char *value, size_t *len);
 | 
			
		||||
 int is_hex(const u8 *data, size_t len);
 | 
			
		||||
+int has_ctrl_char(const u8 *data, size_t len);
 | 
			
		||||
 size_t merge_byte_arrays(u8 *res, size_t res_len,
 | 
			
		||||
 			 const u8 *src1, size_t src1_len,
 | 
			
		||||
 			 const u8 *src2, size_t src2_len);
 | 
			
		||||
diff --git a/src/wps/wps_attr_process.c b/src/wps/wps_attr_process.c
 | 
			
		||||
index eadb22f..e8c4579 100644
 | 
			
		||||
--- a/src/wps/wps_attr_process.c
 | 
			
		||||
+++ b/src/wps/wps_attr_process.c
 | 
			
		||||
@@ -229,6 +229,16 @@ static int wps_workaround_cred_key(struct wps_credential *cred)
 | 
			
		||||
 		cred->key_len--;
 | 
			
		||||
 #endif /* CONFIG_WPS_STRICT */
 | 
			
		||||
 	}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
+	if (cred->auth_type & (WPS_AUTH_WPAPSK | WPS_AUTH_WPA2PSK) &&
 | 
			
		||||
+	    (cred->key_len < 8 || has_ctrl_char(cred->key, cred->key_len))) {
 | 
			
		||||
+		wpa_printf(MSG_INFO, "WPS: Reject credential with invalid WPA/WPA2-Personal passphrase");
 | 
			
		||||
+		wpa_hexdump_ascii_key(MSG_INFO, "WPS: Network Key",
 | 
			
		||||
+				      cred->key, cred->key_len);
 | 
			
		||||
+		return -1;
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
 	return 0;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
1.9.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										51
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
From 73e4abb24a936014727924d8b0b2965edfc117dd Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Jouni Malinen <jouni@qca.qualcomm.com>
 | 
			
		||||
Date: Fri, 4 Mar 2016 18:46:41 +0200
 | 
			
		||||
Subject: [PATCH 2/5] Reject psk parameter set with invalid passphrase
 | 
			
		||||
 character
 | 
			
		||||
 | 
			
		||||
WPA/WPA2-Personal passphrase is not allowed to include control
 | 
			
		||||
characters. Reject a passphrase configuration attempt if that passphrase
 | 
			
		||||
includes an invalid passphrase.
 | 
			
		||||
 | 
			
		||||
This fixes an issue where wpa_supplicant could have updated the
 | 
			
		||||
configuration file psk parameter with arbitrary data from the control
 | 
			
		||||
interface or D-Bus interface. While those interfaces are supposed to be
 | 
			
		||||
accessible only for trusted users/applications, it may be possible that
 | 
			
		||||
an untrusted user has access to a management software component that
 | 
			
		||||
does not validate the passphrase value before passing it to
 | 
			
		||||
wpa_supplicant.
 | 
			
		||||
 | 
			
		||||
This could allow such an untrusted user to inject up to 63 characters of
 | 
			
		||||
almost arbitrary data into the configuration file. Such configuration
 | 
			
		||||
file could result in wpa_supplicant trying to load a library (e.g.,
 | 
			
		||||
opensc_engine_path, pkcs11_engine_path, pkcs11_module_path,
 | 
			
		||||
load_dynamic_eap) from user controlled location when starting again.
 | 
			
		||||
This would allow code from that library to be executed under the
 | 
			
		||||
wpa_supplicant process privileges.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
 | 
			
		||||
---
 | 
			
		||||
 wpa_supplicant/config.c | 6 ++++++
 | 
			
		||||
 1 file changed, 6 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
 | 
			
		||||
index b1c7870..fdd9643 100644
 | 
			
		||||
--- a/wpa_supplicant/config.c
 | 
			
		||||
+++ b/wpa_supplicant/config.c
 | 
			
		||||
@@ -478,6 +478,12 @@ static int wpa_config_parse_psk(const struct parse_data *data,
 | 
			
		||||
 		}
 | 
			
		||||
 		wpa_hexdump_ascii_key(MSG_MSGDUMP, "PSK (ASCII passphrase)",
 | 
			
		||||
 				      (u8 *) value, len);
 | 
			
		||||
+		if (has_ctrl_char((u8 *) value, len)) {
 | 
			
		||||
+			wpa_printf(MSG_ERROR,
 | 
			
		||||
+				   "Line %d: Invalid passphrase character",
 | 
			
		||||
+				   line);
 | 
			
		||||
+			return -1;
 | 
			
		||||
+		}
 | 
			
		||||
 		if (ssid->passphrase && os_strlen(ssid->passphrase) == len &&
 | 
			
		||||
 		    os_memcmp(ssid->passphrase, value, len) == 0) {
 | 
			
		||||
 			/* No change to the previously configured value */
 | 
			
		||||
-- 
 | 
			
		||||
1.9.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										82
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
From 0fe5a234240a108b294a87174ad197f6b5cb38e9 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Paul Stewart <pstew@google.com>
 | 
			
		||||
Date: Thu, 3 Mar 2016 15:40:19 -0800
 | 
			
		||||
Subject: [PATCH 3/5] Remove newlines from wpa_supplicant config network
 | 
			
		||||
 output
 | 
			
		||||
 | 
			
		||||
Spurious newlines output while writing the config file can corrupt the
 | 
			
		||||
wpa_supplicant configuration. Avoid writing these for the network block
 | 
			
		||||
parameters. This is a generic filter that cover cases that may not have
 | 
			
		||||
been explicitly addressed with a more specific commit to avoid control
 | 
			
		||||
characters in the psk parameter.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Paul Stewart <pstew@google.com>
 | 
			
		||||
---
 | 
			
		||||
 src/utils/common.c      | 11 +++++++++++
 | 
			
		||||
 src/utils/common.h      |  1 +
 | 
			
		||||
 wpa_supplicant/config.c | 15 +++++++++++++--
 | 
			
		||||
 3 files changed, 25 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/utils/common.c b/src/utils/common.c
 | 
			
		||||
index 27b7c02..9856463 100644
 | 
			
		||||
--- a/src/utils/common.c
 | 
			
		||||
+++ b/src/utils/common.c
 | 
			
		||||
@@ -709,6 +709,17 @@ int has_ctrl_char(const u8 *data, size_t len)
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+int has_newline(const char *str)
 | 
			
		||||
+{
 | 
			
		||||
+	while (*str) {
 | 
			
		||||
+		if (*str == '\n' || *str == '\r')
 | 
			
		||||
+			return 1;
 | 
			
		||||
+		str++;
 | 
			
		||||
+	}
 | 
			
		||||
+	return 0;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
 size_t merge_byte_arrays(u8 *res, size_t res_len,
 | 
			
		||||
 			 const u8 *src1, size_t src1_len,
 | 
			
		||||
 			 const u8 *src2, size_t src2_len)
 | 
			
		||||
diff --git a/src/utils/common.h b/src/utils/common.h
 | 
			
		||||
index a972240..d19927b 100644
 | 
			
		||||
--- a/src/utils/common.h
 | 
			
		||||
+++ b/src/utils/common.h
 | 
			
		||||
@@ -489,6 +489,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len);
 | 
			
		||||
 char * wpa_config_parse_string(const char *value, size_t *len);
 | 
			
		||||
 int is_hex(const u8 *data, size_t len);
 | 
			
		||||
 int has_ctrl_char(const u8 *data, size_t len);
 | 
			
		||||
+int has_newline(const char *str);
 | 
			
		||||
 size_t merge_byte_arrays(u8 *res, size_t res_len,
 | 
			
		||||
 			 const u8 *src1, size_t src1_len,
 | 
			
		||||
 			 const u8 *src2, size_t src2_len);
 | 
			
		||||
diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
 | 
			
		||||
index fdd9643..eb97cd5 100644
 | 
			
		||||
--- a/wpa_supplicant/config.c
 | 
			
		||||
+++ b/wpa_supplicant/config.c
 | 
			
		||||
@@ -2699,8 +2699,19 @@ char * wpa_config_get(struct wpa_ssid *ssid, const char *var)
 | 
			
		||||
 
 | 
			
		||||
 	for (i = 0; i < NUM_SSID_FIELDS; i++) {
 | 
			
		||||
 		const struct parse_data *field = &ssid_fields[i];
 | 
			
		||||
-		if (os_strcmp(var, field->name) == 0)
 | 
			
		||||
-			return field->writer(field, ssid);
 | 
			
		||||
+		if (os_strcmp(var, field->name) == 0) {
 | 
			
		||||
+			char *ret = field->writer(field, ssid);
 | 
			
		||||
+
 | 
			
		||||
+			if (ret && has_newline(ret)) {
 | 
			
		||||
+				wpa_printf(MSG_ERROR,
 | 
			
		||||
+					   "Found newline in value for %s; not returning it",
 | 
			
		||||
+					   var);
 | 
			
		||||
+				os_free(ret);
 | 
			
		||||
+				ret = NULL;
 | 
			
		||||
+			}
 | 
			
		||||
+
 | 
			
		||||
+			return ret;
 | 
			
		||||
+		}
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	return NULL;
 | 
			
		||||
-- 
 | 
			
		||||
1.9.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										62
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,62 @@
 | 
			
		|||
From b166cd84a77a6717be9600bf95378a0055d6f5a5 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Jouni Malinen <jouni@qca.qualcomm.com>
 | 
			
		||||
Date: Tue, 5 Apr 2016 23:33:10 +0300
 | 
			
		||||
Subject: [PATCH 4/5] Reject SET_CRED commands with newline characters in the
 | 
			
		||||
 string values
 | 
			
		||||
 | 
			
		||||
Most of the cred block parameters are written as strings without
 | 
			
		||||
filtering and if there is an embedded newline character in the value,
 | 
			
		||||
unexpected configuration file data might be written.
 | 
			
		||||
 | 
			
		||||
This fixes an issue where wpa_supplicant could have updated the
 | 
			
		||||
configuration file cred parameter with arbitrary data from the control
 | 
			
		||||
interface or D-Bus interface. While those interfaces are supposed to be
 | 
			
		||||
accessible only for trusted users/applications, it may be possible that
 | 
			
		||||
an untrusted user has access to a management software component that
 | 
			
		||||
does not validate the credential value before passing it to
 | 
			
		||||
wpa_supplicant.
 | 
			
		||||
 | 
			
		||||
This could allow such an untrusted user to inject almost arbitrary data
 | 
			
		||||
into the configuration file. Such configuration file could result in
 | 
			
		||||
wpa_supplicant trying to load a library (e.g., opensc_engine_path,
 | 
			
		||||
pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user
 | 
			
		||||
controlled location when starting again. This would allow code from that
 | 
			
		||||
library to be executed under the wpa_supplicant process privileges.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
 | 
			
		||||
---
 | 
			
		||||
 wpa_supplicant/config.c | 9 ++++++++-
 | 
			
		||||
 1 file changed, 8 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
 | 
			
		||||
index eb97cd5..69152ef 100644
 | 
			
		||||
--- a/wpa_supplicant/config.c
 | 
			
		||||
+++ b/wpa_supplicant/config.c
 | 
			
		||||
@@ -2896,6 +2896,8 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var,
 | 
			
		||||
 
 | 
			
		||||
 	if (os_strcmp(var, "password") == 0 &&
 | 
			
		||||
 	    os_strncmp(value, "ext:", 4) == 0) {
 | 
			
		||||
+		if (has_newline(value))
 | 
			
		||||
+			return -1;
 | 
			
		||||
 		str_clear_free(cred->password);
 | 
			
		||||
 		cred->password = os_strdup(value);
 | 
			
		||||
 		cred->ext_password = 1;
 | 
			
		||||
@@ -2946,9 +2948,14 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var,
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	val = wpa_config_parse_string(value, &len);
 | 
			
		||||
-	if (val == NULL) {
 | 
			
		||||
+	if (val == NULL ||
 | 
			
		||||
+	    (os_strcmp(var, "excluded_ssid") != 0 &&
 | 
			
		||||
+	     os_strcmp(var, "roaming_consortium") != 0 &&
 | 
			
		||||
+	     os_strcmp(var, "required_roaming_consortium") != 0 &&
 | 
			
		||||
+	     has_newline(val))) {
 | 
			
		||||
 		wpa_printf(MSG_ERROR, "Line %d: invalid field '%s' string "
 | 
			
		||||
 			   "value '%s'.", line, var, value);
 | 
			
		||||
+		os_free(val);
 | 
			
		||||
 		return -1;
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
1.9.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										50
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
From 2a3f56502b52375c3bf113cf92adfa99bad6b488 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Jouni Malinen <jouni@qca.qualcomm.com>
 | 
			
		||||
Date: Tue, 5 Apr 2016 23:55:48 +0300
 | 
			
		||||
Subject: [PATCH 5/5] Reject SET commands with newline characters in the
 | 
			
		||||
 string values
 | 
			
		||||
 | 
			
		||||
Many of the global configuration parameters are written as strings
 | 
			
		||||
without filtering and if there is an embedded newline character in the
 | 
			
		||||
value, unexpected configuration file data might be written.
 | 
			
		||||
 | 
			
		||||
This fixes an issue where wpa_supplicant could have updated the
 | 
			
		||||
configuration file global parameter with arbitrary data from the control
 | 
			
		||||
interface or D-Bus interface. While those interfaces are supposed to be
 | 
			
		||||
accessible only for trusted users/applications, it may be possible that
 | 
			
		||||
an untrusted user has access to a management software component that
 | 
			
		||||
does not validate the value of a parameter before passing it to
 | 
			
		||||
wpa_supplicant.
 | 
			
		||||
 | 
			
		||||
This could allow such an untrusted user to inject almost arbitrary data
 | 
			
		||||
into the configuration file. Such configuration file could result in
 | 
			
		||||
wpa_supplicant trying to load a library (e.g., opensc_engine_path,
 | 
			
		||||
pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user
 | 
			
		||||
controlled location when starting again. This would allow code from that
 | 
			
		||||
library to be executed under the wpa_supplicant process privileges.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
 | 
			
		||||
---
 | 
			
		||||
 wpa_supplicant/config.c | 6 ++++++
 | 
			
		||||
 1 file changed, 6 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
 | 
			
		||||
index 69152ef..d9a1603 100644
 | 
			
		||||
--- a/wpa_supplicant/config.c
 | 
			
		||||
+++ b/wpa_supplicant/config.c
 | 
			
		||||
@@ -3764,6 +3764,12 @@ static int wpa_global_config_parse_str(const struct global_parse_data *data,
 | 
			
		||||
 		return -1;
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
+	if (has_newline(pos)) {
 | 
			
		||||
+		wpa_printf(MSG_ERROR, "Line %d: invalid %s value with newline",
 | 
			
		||||
+			   line, data->name);
 | 
			
		||||
+		return -1;
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
 	tmp = os_strdup(pos);
 | 
			
		||||
 	if (tmp == NULL)
 | 
			
		||||
 		return -1;
 | 
			
		||||
-- 
 | 
			
		||||
1.9.1
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -198,6 +198,7 @@ required structures.")
 | 
			
		|||
  (package
 | 
			
		||||
   (name "openssl")
 | 
			
		||||
   (version "1.0.2g")
 | 
			
		||||
   (replacement openssl/fixed)
 | 
			
		||||
   (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (list (string-append "ftp://ftp.openssl.org/source/"
 | 
			
		||||
| 
						 | 
				
			
			@ -298,6 +299,25 @@ required structures.")
 | 
			
		|||
   (license license:openssl)
 | 
			
		||||
   (home-page "http://www.openssl.org/")))
 | 
			
		||||
 | 
			
		||||
(define openssl/fixed
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit openssl)
 | 
			
		||||
    (source
 | 
			
		||||
     (let ((name "openssl")
 | 
			
		||||
           (version "1.0.2h"))
 | 
			
		||||
       (origin
 | 
			
		||||
         (method url-fetch)
 | 
			
		||||
         (uri (list (string-append "ftp://ftp.openssl.org/source/"
 | 
			
		||||
                                   name "-" version ".tar.gz")
 | 
			
		||||
                    (string-append "ftp://ftp.openssl.org/source/old/"
 | 
			
		||||
                                   (string-trim-right version char-set:letter)
 | 
			
		||||
                                   "/" name "-" version ".tar.gz")))
 | 
			
		||||
         (sha256
 | 
			
		||||
          (base32
 | 
			
		||||
           "06996ds1rk8xhnyb5y273a7xkcxhggp4bq1g02rab55d7bjhfh0x"))
 | 
			
		||||
         (patches (search-patches "openssl-runpath.patch"
 | 
			
		||||
                                  "openssl-c-rehash-in.patch")))))))
 | 
			
		||||
 | 
			
		||||
(define-public libressl
 | 
			
		||||
  (package
 | 
			
		||||
    (name "libressl")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 | 
			
		||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 | 
			
		||||
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 | 
			
		||||
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
 | 
			
		||||
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 | 
			
		||||
;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
 | 
			
		||||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +27,7 @@
 | 
			
		|||
 | 
			
		||||
(define-module (gnu packages version-control)
 | 
			
		||||
  #:use-module ((guix licenses)
 | 
			
		||||
                #:select (asl2.0 bsd-2
 | 
			
		||||
                #:select (asl2.0 bsd-2 bsd-3
 | 
			
		||||
                          gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1
 | 
			
		||||
                          public-domain x11-style))
 | 
			
		||||
  #:use-module (guix utils)
 | 
			
		||||
| 
						 | 
				
			
			@ -1012,6 +1012,58 @@ as possible.  Resolution of contention for source files, a major headache for
 | 
			
		|||
any project with more than one developer, is one of Aegis's major functions.")
 | 
			
		||||
    (license gpl3+)))
 | 
			
		||||
 | 
			
		||||
(define-public reposurgeon
 | 
			
		||||
  (package
 | 
			
		||||
    (name "reposurgeon")
 | 
			
		||||
    (version "3.37")
 | 
			
		||||
    (source (origin
 | 
			
		||||
              (method url-fetch)
 | 
			
		||||
              (uri (string-append "http://www.catb.org/~esr/" name "/"
 | 
			
		||||
                                  name "-" version ".tar.xz"))
 | 
			
		||||
              (sha256
 | 
			
		||||
               (base32
 | 
			
		||||
                "14asjg4xy3mhh5z0r3k7c1wv9y803j2zfq32g5q5m95sf7yzygan"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:tests? #f                      ;no test suite distributed
 | 
			
		||||
       #:make-flags
 | 
			
		||||
       (list (string-append "target=" (assoc-ref %outputs "out")))
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (delete 'configure)
 | 
			
		||||
         (add-before 'build 'fix-docbook
 | 
			
		||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
			
		||||
             (substitute* (find-files "." "\\.xml$")
 | 
			
		||||
               (("docbook/docbookx.dtd")
 | 
			
		||||
                (string-append (assoc-ref inputs "docbook-xml")
 | 
			
		||||
                               "/xml/dtd/docbook/docbookx.dtd")))
 | 
			
		||||
             #t))
 | 
			
		||||
         (add-after 'install 'install-emacs-data
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (install-file "reposurgeon-mode.el"
 | 
			
		||||
                           (string-append (assoc-ref outputs "out")
 | 
			
		||||
                                          "/share/emacs/site-lisp")))))))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("python" ,python-wrapper)))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("asciidoc" ,asciidoc)
 | 
			
		||||
       ("docbook-xml" ,docbook-xml-4.1.2)
 | 
			
		||||
       ("docbook-xsl" ,docbook-xsl)
 | 
			
		||||
       ("libxml2" ,libxml2)
 | 
			
		||||
       ("xmlto" ,xmlto)))
 | 
			
		||||
    (home-page "http://www.catb.org/~esr/reposurgeon/")
 | 
			
		||||
    (synopsis "Edit version-control repository history")
 | 
			
		||||
    (description "Reposurgeon enables risky operations that version-control
 | 
			
		||||
systems don't want to let you do, such as editing past comments and metadata
 | 
			
		||||
and removing commits.  It works with any version control system that can
 | 
			
		||||
export and import Git fast-import streams, including Git, Mercurial, Fossil,
 | 
			
		||||
Bazaar, CVS, RCS, and Src.  It can also read Subversion dump files directly
 | 
			
		||||
and can thus be used to script production of very high-quality conversions
 | 
			
		||||
from Subversion to any supported Distributed Version Control System (DVCS).")
 | 
			
		||||
    ;; Most files are distributed under bsd-2, except 'repocutter' which is
 | 
			
		||||
    ;; under bsd-3.
 | 
			
		||||
    (license (list bsd-2 bsd-3))))
 | 
			
		||||
 | 
			
		||||
(define-public tig
 | 
			
		||||
  (package
 | 
			
		||||
    (name "tig")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,9 +110,7 @@
 | 
			
		|||
            termios-input-speed
 | 
			
		||||
            termios-output-speed
 | 
			
		||||
            local-flags
 | 
			
		||||
            TCSANOW
 | 
			
		||||
            TCSADRAIN
 | 
			
		||||
            TCSAFLUSH
 | 
			
		||||
            tcsetattr-action
 | 
			
		||||
            tcgetattr
 | 
			
		||||
            tcsetattr
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1059,9 +1057,11 @@ given an integer, returns the list of names of the constants that are or'd."
 | 
			
		|||
 (define EXTPROC #o0200000))
 | 
			
		||||
 | 
			
		||||
;; "Actions" values for 'tcsetattr'.
 | 
			
		||||
(define TCSANOW  0)
 | 
			
		||||
(define TCSADRAIN 1)
 | 
			
		||||
(define TCSAFLUSH 2)
 | 
			
		||||
(define-bits tcsetattr-action
 | 
			
		||||
  %unused-tcsetattr-action->symbols
 | 
			
		||||
  (define TCSANOW  0)
 | 
			
		||||
  (define TCSADRAIN 1)
 | 
			
		||||
  (define TCSAFLUSH 2))
 | 
			
		||||
 | 
			
		||||
(define-record-type <termios>
 | 
			
		||||
  (termios input-flags output-flags control-flags local-flags
 | 
			
		||||
| 
						 | 
				
			
			@ -1107,8 +1107,8 @@ given an integer, returns the list of names of the constants that are or'd."
 | 
			
		|||
(define tcsetattr
 | 
			
		||||
  (let ((proc (syscall->procedure int "tcsetattr" (list int int '*))))
 | 
			
		||||
    (lambda (fd actions termios)
 | 
			
		||||
      "Use TERMIOS for the tty at FD.  ACTIONS is one of 'TCSANOW',
 | 
			
		||||
'TCSADRAIN', or 'TCSAFLUSH'; see tcsetattr(3) for details."
 | 
			
		||||
      "Use TERMIOS for the tty at FD.  ACTIONS is one of of the values
 | 
			
		||||
produced by 'tcsetattr-action'; see tcsetattr(3) for details."
 | 
			
		||||
      (define bv
 | 
			
		||||
        (make-bytevector sizeof-termios))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -281,7 +281,7 @@
 | 
			
		|||
 | 
			
		||||
(test-assert "tcsetattr"
 | 
			
		||||
  (let ((first (tcgetattr 0)))
 | 
			
		||||
    (tcsetattr 0 TCSANOW first)
 | 
			
		||||
    (tcsetattr 0 (tcsetattr-action TCSANOW) first)
 | 
			
		||||
    (equal? first (tcgetattr 0))))
 | 
			
		||||
 | 
			
		||||
(test-assert "terminal-window-size ENOTTY"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue