Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2018-08-25 16:38:51 +02:00
commit 173d291466
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
41 changed files with 3239 additions and 1322 deletions

View File

@ -171,6 +171,7 @@ MODULES = \
guix/build/svn.scm \
guix/build/syscalls.scm \
guix/build/gremlin.scm \
guix/build/debug-link.scm \
guix/build/emacs-utils.scm \
guix/build/java-utils.scm \
guix/build/lisp-utils.scm \
@ -363,6 +364,7 @@ SCM_TESTS = \
tests/syscalls.scm \
tests/inferior.scm \
tests/gremlin.scm \
tests/debug-link.scm \
tests/bournish.scm \
tests/lint.scm \
tests/publish.scm \

View File

@ -997,7 +997,6 @@ dist_patch_DATA = \
%D%/packages/patches/openldap-CVE-2017-9287.patch \
%D%/packages/patches/openocd-nrf52.patch \
%D%/packages/patches/opensmtpd-fix-crash.patch \
%D%/packages/patches/openssh-CVE-2018-15473.patch \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.0.2-CVE-2018-0495.patch \
%D%/packages/patches/openssl-1.0.2-CVE-2018-0732.patch \
@ -1018,7 +1017,6 @@ dist_patch_DATA = \
%D%/packages/patches/perl-archive-tar-CVE-2018-12015.patch \
%D%/packages/patches/perl-file-path-CVE-2017-6512.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \
%D%/packages/patches/perl-deterministic-ordering.patch \
%D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
%D%/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch \
@ -1139,6 +1137,8 @@ dist_patch_DATA = \
%D%/packages/patches/slim-reset.patch \
%D%/packages/patches/slim-login.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
%D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch \
%D%/packages/patches/soundtouch-CVE-2018-1000223.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/swish-e-search.patch \

View File

@ -2004,17 +2004,17 @@ and ALSA.")
(define-public qjackctl
(package
(name "qjackctl")
(version "0.5.1")
(version "0.5.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz"))
(sha256
(base32
"0jw1s4qh4qjxnysddjv3j2lchwlslj9p4iisv9i89d3m7pf1svs4"))))
"0x08af8m5l8qy9av3dlldsg58ny9nc69h1s4i6hqkvj24jwy6fw1"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f)) ; no check target
'(#:tests? #f)) ; no check target
(inputs
`(("jack" ,jack-1)
("alsa-lib" ,alsa-lib)
@ -2582,15 +2582,18 @@ Tracker 3 S3M and Impulse Tracker IT files.")
(define-public soundtouch
(package
(name "soundtouch")
(version "1.8.0")
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri
(string-append
"http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
(patches (search-patches "soundtouch-CVE-2018-14044-14045.patch"
"soundtouch-CVE-2018-1000223.patch"))
(sha256
(base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
(base32
"09cxr02mfyj2bg731bj0i9hh565x8l9p91aclxs8wpqv8b8zf96j"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)

View File

@ -67,7 +67,7 @@
(define-public duplicity
(package
(name "duplicity")
(version "0.7.17")
(version "0.7.18")
(source
(origin
(method url-fetch)
@ -77,10 +77,10 @@
version ".tar.gz"))
(sha256
(base32
"0jmh3h09680xyf33hzxxxl74bwz66zqhzvjlj7j89r9rz3qwa91p"))))
"1qlika4l1k1nx8zr657ihcy0yzr1c1cdnjlbs325l5krvc3zbc5b"))))
(build-system python-build-system)
(native-inputs
`(("util-linux" ,util-linux) ;setsid command, for the tests
`(("util-linux" ,util-linux) ; setsid command, for the tests
("par2cmdline" ,par2cmdline)
("python-pexpect" ,python2-pexpect)
("python-fasteners" ,python2-fasteners)
@ -91,23 +91,23 @@
(inputs
`(("librsync" ,librsync)
("lftp" ,lftp)
("gnupg" ,gnupg) ;gpg executable needed
("util-linux" ,util-linux) ;for setsid
("gnupg" ,gnupg) ; gpg executable needed
("util-linux" ,util-linux) ; for setsid
("tzdata" ,tzdata)))
(arguments
`(#:python ,python-2 ;setup assumes Python 2
`(#:python ,python-2 ; setup assumes Python 2
#:test-target "test"
#:phases
(modify-phases %standard-phases
(add-before 'build 'patch-source
(lambda* (#:key inputs #:allow-other-keys)
;; embed gpg store name
;; Embed gpg store name.
(substitute* "duplicity/gpginterface.py"
(("self.call = 'gpg'")
(string-append "self.call = '" (assoc-ref inputs "gnupg") "/bin/gpg'")))
;; This matches up with an unreleased upstream fix, it should be
;; removed when the package is updated
;; removed when the package is updated.
;; https://bazaar.launchpad.net/~duplicity-team/duplicity/0.8-series/revision/1308
(substitute* "duplicity/gpg.py"
(("--no-secmem-warning'\\)")
@ -120,8 +120,8 @@
#t))
(add-before 'check 'check-setup
(lambda* (#:key inputs #:allow-other-keys)
(setenv "HOME" (getcwd)) ;gpg needs to write to $HOME
(setenv "TZDIR" ;some timestamp checks need TZDIR
(setenv "HOME" (getcwd)) ; gpg needs to write to $HOME
(setenv "TZDIR" ; some timestamp checks need TZDIR
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
#t)))))

View File

@ -13406,3 +13406,55 @@ conversions, region filtering, FASTA sequence extraction and more.")
;; gffread is under Expat, but gclib is under Artistic 2.0
(license (list license:expat
license:artistic2.0)))))
(define-public find-circ
;; The last release was in 2015. The license was clarified in 2017, so we
;; take the latest commit.
(let ((commit "8655dca54970fcf7e92e22fbf57e1188724dda7d")
(revision "1"))
(package
(name "find-circ")
(version (git-version "1.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/marvin-jens/find_circ.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0p77pbqbclqr4srms34y1b9b4njybfpjiknc11ki84f3p8skb3cg"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are none
#:phases
;; There is no actual build system.
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(path (getenv "PYTHONPATH")))
(for-each (lambda (script)
(install-file script bin)
(wrap-program (string-append bin "/" script)
`("PYTHONPATH" ":" prefix (,path))))
'("cmp_bed.py"
"find_circ.py"
"maxlength.py"
"merge_bed.py"
"unmapped2anchors.py")))
#t)))))
(inputs
`(("python2" ,python-2)
("python2-pysam" ,python2-pysam)
("python2-numpy" ,python2-numpy)))
(home-page "https://github.com/marvin-jens/find_circ")
(synopsis "circRNA detection from RNA-seq reads")
(description "This package provides tools to detect head-to-tail
spliced (back-spliced) sequencing reads, indicative of circular RNA (circRNA)
in RNA-seq data.")
(license license:gpl3))))

View File

@ -110,6 +110,22 @@ across a broad spectrum of applications.")
(license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
"Some components have other similar licences."))))
(define-public boost-for-mysql
;; Older version for MySQL 5.7.23.
(package
(inherit boost)
(version "1.59.0")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/boost/boost/" version "/boost_"
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
".tar.bz2"))
(sha256
(base32
"1jj1aai5rdmd72g90a3pd8sw9vi32zad46xv5av8fhnr48ir6ykj"))))
(properties '((hidden? . #t)))))
(define-public boost-sync
(let ((commit "c72891d9b90e2ceb466ec859f640cd012b2d8709")
(version "1.55")

View File

@ -8,6 +8,7 @@
;;; Copyright © 2018 Sandeep Subramanian <sandeepsubramanian94@gmail.com>
;;; Copyright © 2018 Charlie Ritter <chewzeirta@posteo.net>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -482,13 +483,13 @@ processes. Most of its code is based on the @code{psutil} Python package.")
(define-public r-rcpp
(package
(name "r-rcpp")
(version "0.12.17")
(version "0.12.18")
(source
(origin
(method url-fetch)
(uri (cran-uri "Rcpp" version))
(sha256
(base32 "08xg8h3w25sdb3xr18g9pa0x8cirkdgljqapxmw56ss1j9fc89s2"))))
(base32 "006kpg2ph109rh1l13lqk26pp4as4fvl5661vrcczjygacgd1v7w"))))
(build-system r-build-system)
(home-page "http://www.rcpp.org")
(synopsis "Seamless R and C++ integration")
@ -4847,3 +4848,99 @@ differential equations} (ODE). It includes routines that:
approach).
@end enumerate\n")
(license license:gpl2+)))
(define-public r-abcanalysis
(package
(name "r-abcanalysis")
(version "1.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ABCanalysis" version))
(sha256
(base32 "0wac1ksmnxa36v99ca4hv8k0rsh3igwpcllmlv9wf7i9kgqviqwi"))))
(properties `((upstream-name . "ABCanalysis")))
(build-system r-build-system)
(propagated-inputs `(("r-plotrix" ,r-plotrix)))
(home-page "https://www.uni-marburg.de/fb12/arbeitsgruppen/datenbionik/software-en/")
(synopsis "Computed ABC Analysis")
(description
"Multivariate data sets often differ in several factors or derived statistical
parameters, which have to be selected for a valid interpretation. Basing this
selection on traditional statistical limits leads occasionally to the perception
of losing information from a data set. This package provides tools to calculate
these limits on the basis of the mathematical properties of the distribution of
the analyzed items.")
(license license:gpl3)))
(define-public r-slam
(package
(name "r-slam")
(version "0.1-43")
(source
(origin
(method url-fetch)
(uri (cran-uri "slam" version))
(sha256
(base32 "0hy4qzngcgafxxr6ld7n9a9wy979ji998gpcc32vidwyab66dj5h"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/slam/")
(synopsis "Sparse lightweight arrays and matrices")
(description
"This package contains data structures and algorithms for sparse arrays and matrices,
based on index arrays and simple triplet representations, respectively.")
(license license:gpl2)))
(define-public r-manipulatewidget
(package
(name "r-manipulatewidget")
(version "0.10.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "manipulateWidget" version))
(sha256
(base32 "1zagrbwkn2d50zzw8i2vyb1hsq4cydmfsqiy1a2qlp6zrv8a6q9x"))))
(properties
`((upstream-name . "manipulateWidget")))
(build-system r-build-system)
(propagated-inputs
`(("r-base64enc" ,r-base64enc)
("r-codetools" ,r-codetools)
("r-htmltools" ,r-htmltools)
("r-htmlwidgets" ,r-htmlwidgets)
("r-knitr" ,r-knitr)
("r-miniui" ,r-miniui)
("r-shiny" ,r-shiny)
("r-webshot" ,r-webshot)))
(home-page "https://github.com/rte-antares-rpackage/manipulateWidget/")
(synopsis "Add even more interactivity to interactive charts")
(description
"This package lets you create in just a few lines of R code a nice user interface to
modify the data or the graphical parameters of one or multiple interactive
charts. It is useful to quickly explore visually some data or for package
developers to generate user interfaces easy to maintain.")
(license license:gpl2+)))
(define-public r-a3
(package
(name "r-a3")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "A3" version))
(sha256
(base32 "017hq9pjsv1h9i7cqk5cfx27as54shlhdsdvr6jkhb8jfkpdb6cw"))))
(properties `((upstream-name . "A3")))
(build-system r-build-system)
(propagated-inputs
`(("r-pbapply" ,r-pbapply)
("r-xtable" ,r-xtable)))
(home-page "https://cran.r-project.org/web/packages/A3/")
(synopsis "Error metrics for predictive models")
(description
"This package supplies tools for tabulating and analyzing the results of predictive
models. The methods employed are applicable to virtually any predictive model
and make comparisons between different methodologies straightforward.")
(license license:gpl2+)))

View File

@ -549,20 +549,6 @@ RDBMS systems (which are deep in functionality).")
;; Some parts are licensed under the Apache License
license:asl2.0))))
(define boost-for-mysql
(package
(inherit boost)
(version "1.59.0")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/boost/boost/" version "/boost_"
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
".tar.bz2"))
(sha256
(base32
"1jj1aai5rdmd72g90a3pd8sw9vi32zad46xv5av8fhnr48ir6ykj"))))))
;; XXX When updating, check whether boost-for-mysql is still needed.
;; It might suffice to patch cmake/boost.cmake as done in the past.
(define-public mysql
@ -1474,16 +1460,15 @@ columns, primary keys, unique constraints and relationships.")
(define-public perl-dbd-mysql
(package
(name "perl-dbd-mysql")
(version "4.043")
(version "4.046")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
(uri (string-append "mirror://cpan/authors/id/C/CA/CAPTTOFU/"
"DBD-mysql-" version ".tar.gz"))
(sha256
(base32
"16bg7l28n65ngi1abjxvwk906a80i2vd5vzjn812dx8phdg8d7v2"))
(patches (search-patches "perl-dbd-mysql-CVE-2017-10788.patch"))))
"1xziv9w87cl3fbl1mqkdrx28mdqly3gs6gs1ynbmpl2rr4p6arb1"))))
(build-system perl-build-system)
;; Tests require running MySQL server
(arguments `(#:tests? #f))

View File

@ -1008,7 +1008,7 @@ language, ADMS transforms Verilog-AMS code into other target languages.")
(define-public capstone
(package
(name "capstone")
(version "3.0.5-rc2")
(version "3.0.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/aquynh/capstone/archive/"
@ -1016,22 +1016,20 @@ language, ADMS transforms Verilog-AMS code into other target languages.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1cqms9r2p43aiwp5spd84zaccp16ih03r7sjhrv16nddahj0jz2q"))))
"1wbd1g3r32ni6zd9vwrq3kn7fdp9y8qwn9zllrrbk8n5wyaxcgci"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:make-flags (list (string-append "PREFIX=" %output)
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"CC=gcc")
#:phases
(modify-phases %standard-phases
(delete 'configure)
;; cstool's Makefile overrides LDFLAGS, so we cannot pass it as a make flag.
(delete 'configure) ; no configure script
;; cstool's Makefile +=s LDFLAGS, so we cannot pass it as a make flag.
(add-before 'build 'fix-cstool-ldflags
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "cstool/Makefile"
(("LDFLAGS =")
(string-append "LDFLAGS = -Wl,-rpath=" (assoc-ref outputs "out")
"/lib")))
(setenv "LDFLAGS" (string-append "-Wl,-rpath="
(assoc-ref outputs "out") "/lib"))
#t)))))
(home-page "http://www.capstone-engine.org")
(synopsis "Lightweight multi-platform, multi-architecture disassembly framework")

View File

@ -621,7 +621,7 @@ languages, plus Greek and Cyrillic.")
(define-public font-gnu-unifont
(package
(name "font-gnu-unifont")
(version "11.0.01")
(version "11.0.02")
(source (origin
(method url-fetch)
(uri (string-append
@ -629,7 +629,7 @@ languages, plus Greek and Cyrillic.")
version ".tar.gz"))
(sha256
(base32
"1nkapra0ic4fp3lmnvfc6jly62yskhcdkwrnq29hvh3xs51ncc52"))))
"1di8i44c163b9l5f08jcrjfijnqz0j7p7hpfvf8dcms6cm6s4wvy"))))
(build-system gnu-build-system)
(outputs '("out" ; TrueType version
"pcf" ; PCF (bitmap) version
@ -662,8 +662,9 @@ languages, plus Greek and Cyrillic.")
"install")
;; Move Texinfo file to the right place.
(mkdir (string-append bin "/share/info"))
(rename-file (string-append bin "/share/unifont/unifont.info.gz")
(string-append bin "/share/info/unifont.info.gz"))
(invoke "gzip" "-9n" "doc/unifont.info")
(install-file "doc/unifont.info.gz"
(string-append bin "/share/info"))
#t))))))
(inputs
`(("perl" ,perl))) ; for utilities

View File

@ -37,14 +37,14 @@
(define-public gdb
(package
(name "gdb")
(version "8.1")
(version "8.1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.xz"))
(sha256
(base32
"0d2bpqk58fqlx21rbnk8mbcjlggzc9kb5sjirrfrrrjq70ka0qdg"))))
"0g6hv9xk12aa58w77fydaldqr9a6b0a6bnwsq87jfc6lkcbc7p4p"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; FIXME "make check" fails on single-processor systems.

View File

@ -40,6 +40,7 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages crypto)
#:use-module (gnu packages emacs)
#:use-module (gnu packages guile)
#:use-module (gnu packages openldap)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
@ -56,6 +57,7 @@
#:use-module (gnu packages ncurses)
#:use-module (gnu packages security-token)
#:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages tor)
#:use-module (gnu packages web)
@ -451,6 +453,38 @@ QGpgME was originally developed as part of libkleo and incorporated into
gpgpme starting with version 1.7.")
(license license:gpl2+))) ;; Note: this differs from gpgme
(define-public guile-gcrypt
(package
(name "guile-gcrypt")
(version "0.1.0")
(home-page "https://notabug.org/cwebber/guile-gcrypt")
(source (origin
(method git-fetch)
(uri (git-reference
(url (string-append home-page ".git"))
(commit (string-append "v" version))))
(sha256
(base32
"1lhgh3105yi0ggrjsjibv4wp1ipz8s17pa820hk2wln3rc04wpvf"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("autoconf" ,autoconf)
("automake" ,automake)
("texinfo" ,texinfo)))
(inputs
`(("guile" ,guile-2.2)
("libgcrypt" ,libgcrypt)))
(synopsis "Cryptography library for Guile using Libgcrypt")
(description
"Guile-Gcrypt provides a Guile 2.x interface to a subset of the
GNU Libgcrypt crytographic library. It provides modules for cryptographic
hash functions, message authentication codes (MAC), public-key cryptography,
strong randomness, and more. It is implemented using the foreign function
interface (FFI) of Guile.")
(license license:gpl3+)))
(define-public python-gpg
(package
(name "python-gpg")

View File

@ -850,27 +850,18 @@ The library is shipped with documentation in Info format and usage examples.")
(define-public guile-lib
(package
(name "guile-lib")
(version "0.2.6")
(version "0.2.6.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/guile-lib/guile-lib-"
version ".tar.gz"))
(sha256
(base32
"0n1lf5bsr5s9gqi07sdfkl1hpin6dzvkcj1xa63jd1w8aglwv8r1"))
(modules '((guix build utils)))
(snippet
'(begin
;; 'pre-inst-env' sets an incorrect load path, missing the
;; "/src" bit. Add it.
(substitute* "pre-inst-env.in"
(("abs_top_(builddir|srcdir)=([[:graph:]]+)" _ dir value)
(string-append "abs_top_" dir "=" value "/src")))
#t))))
"0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
'("GUILE_AUTO_COMPILE=0") ;to prevent guild errors
'("GUILE_AUTO_COMPILE=0") ; to prevent guild errors
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-module-dir
@ -1243,7 +1234,6 @@ above command-line parameters.")
("automake" ,automake)
("pkg-config" ,pkg-config)
("guile" ,guile-2.2)))
(home-page "https://savannah.nongnu.org/projects/guile-redis/")
(synopsis "Redis client library for Guile")
(description "Guile-redis provides a Scheme interface to the Redis
key-value cache and store.")

View File

@ -9,6 +9,7 @@
;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Tonton <tonton@riseup.net>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -342,7 +343,7 @@ development.")
(define-public ghc-quickcheck-instances
(package
(name "ghc-quickcheck-instances")
(version "0.3.16.1")
(version "0.3.18")
(source
(origin
(method url-fetch)
@ -352,8 +353,10 @@ development.")
version ".tar.gz"))
(sha256
(base32
"01v5bs7r9yvhkvb4yc9bqnacy8r6cy2gr9lnmwx40n5apgi0gcbz"))))
"1bh1pzz5fdcqvzdcirqxna6fnjms02min5md716299g5niz46w55"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags (list "--allow-newer=base-compat")))
(inputs
`(("ghc-quickcheck" ,ghc-quickcheck)
("ghc-base-compat" ,ghc-base-compat)

View File

@ -15,6 +15,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Tonton <tonton@riseup.net>
;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -40,6 +41,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-crypto)
#:use-module (gnu packages haskell-web)
@ -1938,7 +1940,7 @@ literals.")
(define-public ghc-zlib
(package
(name "ghc-zlib")
(version "0.6.1.1")
(version "0.6.2")
(outputs '("out" "doc"))
(source
(origin
@ -1949,7 +1951,7 @@ literals.")
".tar.gz"))
(sha256
(base32
"0dd79dxf56d8f6ad9if3j87s9gg7yd17ckypjxwplrbkahlb9xf5"))))
"1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
(build-system haskell-build-system)
;; Tests require older versions of testy.
(arguments `(#:tests? #f))
@ -3380,7 +3382,7 @@ variety of traversals.")
(define-public ghc-fgl
(package
(name "ghc-fgl")
(version "5.5.3.0")
(version "5.6.0.0")
(outputs '("out" "doc"))
(source
(origin
@ -3391,10 +3393,11 @@ variety of traversals.")
".tar.gz"))
(sha256
(base32
"0fbyb6jxy9whgrv6dgnkzz70cmy98arx3q2gnkhgl4a3d7idh36p"))))
"1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags (list "--allow-newer=QuickCheck")))
`(#:configure-flags (list "--allow-newer=QuickCheck"
"--allow-newer=hspec")))
(inputs
`(("ghc-mtl" ,ghc-mtl)
("ghc-hspec" ,ghc-hspec)
@ -4092,7 +4095,7 @@ system.")
(define-public ghc-base-compat
(package
(name "ghc-base-compat")
(version "0.9.3")
(version "0.10.4")
(source
(origin
(method url-fetch)
@ -4102,7 +4105,7 @@ system.")
".tar.gz"))
(sha256
(base32
"0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x"))))
"0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
(build-system haskell-build-system)
(native-inputs
`(("ghc-quickcheck" ,ghc-quickcheck)
@ -6846,7 +6849,7 @@ this problem.")
(define-public ghc-sandi
(package
(name "ghc-sandi")
(version "0.4.0") ; darcs-2.12.4 needs == 0.4.*
(version "0.4.2")
(source
(origin
(method url-fetch)
@ -6855,7 +6858,7 @@ this problem.")
version ".tar.gz"))
(sha256
(base32
"1smf3bq44qni4zbgxpw7cy7b9g95fbrr73j8njjf6139naj9bj20"))))
"0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
(build-system haskell-build-system)
(inputs
`(("ghc-stringsearch" ,ghc-stringsearch)
@ -7045,7 +7048,7 @@ supported. A module of colour names (\"Data.Colour.Names\") is provided.")
(define-public ghc-wl-pprint-text
(package
(name "ghc-wl-pprint-text")
(version "1.1.0.4")
(version "1.2.0.0")
(source
(origin
(method url-fetch)
@ -7054,10 +7057,11 @@ supported. A module of colour names (\"Data.Colour.Names\") is provided.")
version ".tar.gz"))
(sha256
(base32
"1xgizzimfw17mpmw2afvmnvyag976j8ggn7k5r564rkw9f0m6bgz"))))
"0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
(build-system haskell-build-system)
(inputs
`(("ghc-text" ,ghc-text)))
`(("ghc-base-compat" ,ghc-base-compat)
("ghc-text" ,ghc-text)))
(home-page "https://hackage.haskell.org/package/wl-pprint-text")
(synopsis "Wadler/Leijen Pretty Printer for Text values")
(description
@ -7079,7 +7083,8 @@ supported. A module of colour names (\"Data.Colour.Names\") is provided.")
"0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags (list "--allow-newer=QuickCheck")))
`(#:configure-flags (list "--allow-newer=QuickCheck"
"--allow-newer=hspec")))
(inputs
`(("ghc-fgl" ,ghc-fgl)
("ghc-quickcheck" ,ghc-quickcheck)
@ -7096,14 +7101,14 @@ for generating graph-like data structures.")
(define-public ghc-graphviz
(package
(name "ghc-graphviz")
(version "2999.18.1.2")
(version "2999.20.0.2")
(source (origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"graphviz/graphviz-" version ".tar.gz"))
(sha256
(base32
"1z453is01v0rnxlv6xx4iyaqv5vrp3bpz829mpv1a341sck2135h"))))
"0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags (list "--allow-newer=QuickCheck")))
@ -7117,6 +7122,10 @@ for generating graph-like data structures.")
("ghc-temporary" ,ghc-temporary)
("ghc-text" ,ghc-text)
("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
(native-inputs
`(("ghc-hspec" ,ghc-hspec)
("graphviz" ,graphviz)
("hspec-discover" ,hspec-discover)))
(home-page "https://hackage.haskell.org/package/graphviz")
(synopsis "Bindings to Graphviz for graph visualisation")
(description
@ -7261,7 +7270,7 @@ which can't be decoded in the current locale encoding.")
(define-public ghc-shelly
(package
(name "ghc-shelly")
(version "1.7.0.1")
(version "1.8.1")
(source
(origin
(method url-fetch)
@ -7270,7 +7279,7 @@ which can't be decoded in the current locale encoding.")
version ".tar.gz"))
(sha256
(base32
"0a4ngy8jqcscqhimgiyz7f9kqm23is7x7gyjxr0j6iq1dy57ahq3"))))
"023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
(build-system haskell-build-system)
(inputs
`(("ghc-mtl" ,ghc-mtl)
@ -7286,7 +7295,8 @@ which can't be decoded in the current locale encoding.")
("ghc-async" ,ghc-async)
("ghc-transformers-base" ,ghc-transformers-base)
("ghc-hunit" ,ghc-hunit)
("ghc-hspec" ,ghc-hspec)))
("ghc-hspec" ,ghc-hspec)
("ghc-hspec-contrib" ,ghc-hspec-contrib)))
(home-page "https://github.com/yesodweb/Shelly.hs")
(synopsis "Shell-like (systems) programming in Haskell")
(description

View File

@ -404,8 +404,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.18.3")
(define %linux-libre-hash "0z7nnkmk5d2npilviqxa0m6nn30f5arhviysby78kkb3j2isx9jx")
(define %linux-libre-version "4.18.4")
(define %linux-libre-hash "1q3bndhwxwcrlyi0qcgxjsp5fl92wkfgk4y41qwrrywfv9xj3sl7")
(define %linux-libre-4.18-patches
(list %boot-logo-patch
@ -435,8 +435,8 @@ It has been modified to remove all non-free binary blobs.")
#:patches %linux-libre-4.18-patches
#:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.65")
(define %linux-libre-4.14-hash "0sdv2c0ix2mdc5h10d56bwi77hpb4gibmrsl1ydyb95hgg37k6h0")
(define %linux-libre-4.14-version "4.14.66")
(define %linux-libre-4.14-hash "1sf18m6xjyg535yviz3yjbislf57s180y67z7mzbcl5pq9352bg9")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@ -445,14 +445,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config))
(define-public linux-libre-4.9
(make-linux-libre "4.9.122"
"1yjld5q0xpsv4pd285hjp50kr2i41p3yiy1afp8nf88322i2947w"
(make-linux-libre "4.9.123"
"1rljdp3vzhmdc6qha6b9dq0d1a3xz06rn51pb4ad3a2y61mph9sv"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
(make-linux-libre "4.4.150"
"0dbz6bzxnr8dgp91lnf3jp42cw6dld4yq7ngigpq7s6ymr59j3ah"
(make-linux-libre "4.4.151"
"0irzdq4p8a6dxyx5basgrc7af7w48hmyjwbk5hff8wn8jy71p9zm"
%intel-compatible-systems
#:configuration-file kernel-config))

View File

@ -185,7 +185,7 @@ player daemon.")
(define-public ncmpc
(package
(name "ncmpc")
(version "0.27")
(version "0.29")
(source (origin
(method url-fetch)
(uri
@ -194,12 +194,16 @@ player daemon.")
"/ncmpc-" version ".tar.xz"))
(sha256
(base32
"1n8m7syhpgx24hfipixv66h2izn229jkxsmh2q5dzkv9r0znm8pr"))))
(build-system gnu-build-system)
"04jzv1hfdvgbn391523jb2h3yhq9a40pjrg41sl3wf3jf6vajs7g"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
(list "-Dcurses=ncurses")))
(inputs `(("glib" ,glib)
("libmpdclient" ,libmpdclient)
("ncurses" ,ncurses)))
(native-inputs `(("pkg-config" ,pkg-config)))
(native-inputs `(("gettext" ,gettext-minimal) ; for xgettext
("pkg-config" ,pkg-config)))
(synopsis "Curses Music Player Daemon client")
(description "ncmpc is a fully featured MPD client, which runs in a
terminal using ncurses.")

View File

@ -384,7 +384,7 @@ many input formats and provides a customisable Vi-style user interface.")
;; Denemo's documentation says to use this command to run its
;; testsuite.
(lambda _
(zero? (system* "make" "-C" "tests" "check"))))
(invoke "make" "-C" "tests" "check")))
(add-before 'build 'set-lilypond
;; This phase sets the default path for lilypond to its current
;; location in the store.
@ -411,7 +411,7 @@ many input formats and provides a customisable Vi-style user interface.")
"Clarinet in Bb.denemo"))
#t)))))
(native-inputs
`(("glib:bin" ,glib "bin") ; for gtester
`(("glib:bin" ,glib "bin") ; for gtester
("pkg-config" ,pkg-config)))
(inputs
`(("alsa-lib" ,alsa-lib)
@ -1289,7 +1289,7 @@ users to select LV2 plugins and run them with jalv.")
(define-public synthv1
(package
(name "synthv1")
(version "0.9.0")
(version "0.9.2")
(source (origin
(method url-fetch)
(uri
@ -1297,10 +1297,10 @@ users to select LV2 plugins and run them with jalv.")
"/synthv1-" version ".tar.gz"))
(sha256
(base32
"1skynjg6ip0qfbqqkybfjh6xcwxagq89ghl08f7sp7j0sz5qdcwp"))))
"1r60l286n8y4a4rrlnbc3h7xk4s2pvqykvskls89prxg0lkpz7kl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
`(#:tests? #f ; there are no tests
#:configure-flags
'("CXXFLAGS=-std=gnu++11")))
(inputs
@ -1313,7 +1313,7 @@ users to select LV2 plugins and run them with jalv.")
("qttools" ,qttools)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://synthv1.sourceforge.net")
(home-page "https://synthv1.sourceforge.io")
(synopsis "Polyphonic subtractive synthesizer")
(description
"Synthv1 is an old-school subtractive polyphonic synthesizer with four
@ -1323,7 +1323,7 @@ oscillators and stereo effects.")
(define-public drumkv1
(package
(name "drumkv1")
(version "0.9.0")
(version "0.9.2")
(source (origin
(method url-fetch)
(uri
@ -1331,10 +1331,10 @@ oscillators and stereo effects.")
"/drumkv1-" version ".tar.gz"))
(sha256
(base32
"1vm8lrk3lykdic6fyfpl12jx1xg6rcaid242s8sij30p1ix4zdab"))))
"1z9l43z91d01b9rzam2cj9qmmg6s5y65fjvb83ms4iaa1p0mnwrn"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
`(#:tests? #f ; there are no tests
#:configure-flags
'("CXXFLAGS=-std=gnu++11")))
(inputs
@ -1348,7 +1348,7 @@ oscillators and stereo effects.")
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)))
(home-page "http://drumkv1.sourceforge.net")
(home-page "https://drumkv1.sourceforge.io")
(synopsis "Drum-kit sampler synthesizer with stereo effects")
(description
"Drumkv1 is an old-school drum-kit sampler synthesizer with stereo
@ -1358,7 +1358,7 @@ effects.")
(define-public samplv1
(package
(name "samplv1")
(version "0.9.0")
(version "0.9.2")
(source (origin
(method url-fetch)
(uri
@ -1366,10 +1366,10 @@ effects.")
"/samplv1-" version ".tar.gz"))
(sha256
(base32
"0g67vm9ilmq5nlvk0f3abia9pbinr4ck5v4mll6igni1rxz2n7wk"))))
"0rfcp4v971qfhw1hb43hw12wlxmg2q13l0m1h93pyfi5l4mfjkds"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
`(#:tests? #f ; there are no tests
#:configure-flags
'("CXXFLAGS=-std=gnu++11")))
(inputs
@ -1383,7 +1383,7 @@ effects.")
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)))
(home-page "http://samplv1.sourceforge.net")
(home-page "https://samplv1.sourceforge.io")
(synopsis "Polyphonic sampler synthesizer with stereo effects")
(description
"Samplv1 is an old-school polyphonic sampler synthesizer with stereo
@ -1393,7 +1393,7 @@ effects.")
(define-public padthv1
(package
(name "padthv1")
(version "0.9.0")
(version "0.9.2")
(source (origin
(method url-fetch)
(uri
@ -1401,10 +1401,10 @@ effects.")
"/padthv1-" version ".tar.gz"))
(sha256
(base32
"0c519qk2g0dk8gqf9ywqfp7dnr4b25lsnxxbf2l1spnnvf8nysvh"))))
"1alfl0l5qdll0w5lwhrwzj5dina1big1zmjg5imi9h06dzhz51xl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
`(#:tests? #f ; there are no tests
#:configure-flags
'("CXXFLAGS=-std=gnu++11")))
(inputs
@ -1418,7 +1418,7 @@ effects.")
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)))
(home-page "http://padthv1.sourceforge.net")
(home-page "https://padthv1.sourceforge.io")
(synopsis "Polyphonic additive synthesizer")
(description
"Padthv1 is an old-school polyphonic additive synthesizer with stereo
@ -1624,7 +1624,7 @@ is subjective.")
(define-public tuxguitar
(package
(name "tuxguitar")
(version "1.5")
(version "1.5.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -1632,19 +1632,12 @@ is subjective.")
version "/tuxguitar-" version "-src.tar.gz"))
(sha256
(base32
"1yd5wv17sh6i8pkndxayfd6r2k1ccgnc4w3nda3lpniv8cpjzz3k"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete pre-built classes
(delete-file-recursively "TuxGuitar-android-gdrive/bin")
(delete-file-recursively "TuxGuitar-android-gdrive-gdaa/bin")
#t))))
"10arfpgm2pw7mn922klklzn05lw5ifqx070shdrar81afmkfbbd9"))))
(build-system ant-build-system)
(arguments
`(#:build-target "build"
#:jdk ,icedtea-8
#:tests? #f ; no tests
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-dir
@ -1663,7 +1656,7 @@ is subjective.")
((assoc-ref %standard-phases 'build)
#:build-target "build")
(begin
;; Generate default build.xml
;; Generate default build.xml.
((@@ (guix build ant-build-system) default-build.xml)
(string-append (string-downcase dir) ".jar")
(string-append (assoc-ref outputs "out")
@ -1686,15 +1679,15 @@ is subjective.")
(lib (string-append share "/java"))
(swt (assoc-ref inputs "java-swt")))
(mkdir-p bin)
;; install all jars
;; Install all jars.
(for-each (lambda (file)
(install-file file lib))
(find-files ".." "\\.jar$"))
;; install all resources
;; Install all resources.
(copy-recursively "share" share)
;; create wrapper
;; Create wrapper.
(call-with-output-file (string-append bin "/tuxguitar")
(lambda (port)
(let ((classpath (string-join (append (find-files lib "\\.jar$")
@ -2055,14 +2048,14 @@ improves on support for JACK features, such as JACK MIDI.")
(define-public libgig
(package
(name "libgig")
(version "4.0.0")
(version "4.1.0")
(source (origin
(method url-fetch)
(uri (string-append "http://download.linuxsampler.org/packages/"
"libgig-" version ".tar.bz2"))
(sha256
(base32
"1wr8mwjmqpnyz6bx9757lspiii1zzn8zfbqsvn2ipzpgqkxv6kaz"))))
"02xx6bqxzgkvrawwnzrnxx1ypk244q4kpwfd58266f9ji8kq18h6"))))
(build-system gnu-build-system)
(inputs
`(("libuuid" ,util-linux)

View File

@ -2191,6 +2191,11 @@ and check if the WLAN key or the master key was transmitted unencrypted.")
(base32
"19rqzj167q73ag20zxpvswhkk0bj56r5maf83v5016sw7vrcz5sc"))))
(build-system gnu-build-system)
(arguments
;; XXX: The dynamic socks library doesn't work with 'libc.so' (GNU ld
;; script). When preloading is enabled, 'sockd' failed with:
;; … Failed to open library "libc.so": …: invalid ELF header
'(#:configure-flags '("--disable-preload")))
(home-page "https://www.inet.no/dante/")
(synopsis "SOCKS server and client")
(description "Dante is a SOCKS client and server implementation. It can

View File

@ -48,7 +48,7 @@
(define-public parallel
(package
(name "parallel")
(version "20180722")
(version "20180822")
(source
(origin
(method url-fetch)
@ -56,7 +56,7 @@
version ".tar.bz2"))
(sha256
(base32
"06635p9w4kl0mvqlbgglsndl1zm06f65ckzrjl9p8n4cswf443fg"))))
"0jjs7fpvdjjb5v0j39a6k7hq9h5ap3db1j7vg1r2dq4swk23h9bm"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View File

@ -100,7 +100,7 @@ human.")
(define-public keepassxc
(package
(name "keepassxc")
(version "2.3.3")
(version "2.3.4")
(source
(origin
(method url-fetch)
@ -109,27 +109,17 @@ human.")
version "-src.tar.xz"))
(sha256
(base32
"1m8alsp39vk21zgcvy5zswk0dc1xmajbwnccg7n0lndsi7pqbzyg"))))
"02kq0a7a7hpw824n03apma00yq1c6dds224g15mrnnqqjn4af90c"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("-DWITH_XC_NETWORKING=YES"
"-DWITH_XC_BROWSER=YES"
"-DWITH_XC_SSHAGENT=YES")
#:phases
(modify-phases %standard-phases
;; should be fixed in 2.3.3+, see:
;; https://github.com/keepassxreboot/keepassxc/pull/1964
(add-after 'unpack 'patch-sources
(lambda _
(substitute* "src/gui/entry/EditEntryWidget.cpp"
(("#include <QColorDialog>") "#include <QColorDialog>
#include <QButtonGroup>"))
#t)))))
"-DWITH_XC_SSHAGENT=YES")))
(inputs
`(("argon2" ,argon2)
("curl" ,curl) ; XC_NETWORKING
("curl" ,curl) ; XC_NETWORKING
("libgcrypt" ,libgcrypt)
("libsodium" ,libsodium) ; XC_BROWSER
("libsodium" ,libsodium) ; XC_BROWSER
("libxi" ,libxi)
("libxtst" ,libxtst)
("qtbase" ,qtbase)
@ -144,7 +134,7 @@ manage your passwords in a secure way. You can put all your passwords in one
database, which is locked with one master key or a key-file which can be stored
on an external storage device. The databases are encrypted using the
algorithms AES or Twofish.")
;; Non functional parts use various licences.
;; Non-functional parts use various licences.
(license license:gpl3)))
(define-public keepassx

View File

@ -1,13 +1,13 @@
Skeleton status files are installed read-only. When copying to the config dir
upon initialization, make sure they end up writable.
--- byobu-5.98/usr/bin/byobu-janitor.in
+++ byobu-5.98/usr/bin/byobu-janitor.in
--- byobu-5.127/usr/bin/byobu-janitor.in
+++ byobu-5.127/usr/bin/byobu-janitor.in
@@ -82,6 +82,7 @@
if [ ! -r "$BYOBU_CONFIG_DIR/$f" ]; then
# Copy from skeleton, if possible
cp -f "$BYOBU_PREFIX/share/$PKG/status/$f" "$BYOBU_CONFIG_DIR/$f"
+ chmod +w "$BYOBU_CONFIG_DIR/$f"
# Enable ec2_cost, if we're in ec2 and seeding a new setup
if metadata_available; then
$BYOBU_SED_INLINE -e "s/#ec2_cost/ec2_cost/g" "$($BYOBU_READLINK -f $BYOBU_CONFIG_DIR/$f)"
fi
done

View File

@ -1,165 +0,0 @@
Fix CVE-2018-15473, a method by which remote clients can enumerate
usernames on the server:
http://seclists.org/oss-sec/2018/q3/124
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-15473
Patch adapted from upstream source repository:
https://anongit.mindrot.org/openssh.git/commit/?id=74287f5df9966a0648b4a68417451dd18f079ab8
From 74287f5df9966a0648b4a68417451dd18f079ab8 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Tue, 31 Jul 2018 03:10:27 +0000
Subject: [PATCH] upstream: delay bailout for invalid authentic
=?UTF-8?q?ating=20user=20until=20after=20the=20packet=20containing=20the?=
=?UTF-8?q?=20request=20has=20been=20fully=20parsed.=20Reported=20by=20Dar?=
=?UTF-8?q?iusz=20Tytko=20and=20Micha=C5=82=20Sajdak;=20ok=20deraadt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
OpenBSD-Commit-ID: b4891882fbe413f230fe8ac8a37349b03bd0b70d
---
auth2-gss.c | 11 +++++++----
auth2-hostbased.c | 11 ++++++-----
auth2-pubkey.c | 25 +++++++++++++++----------
3 files changed, 28 insertions(+), 19 deletions(-)
# Adapted from upstream to apply to OpenSSH 7.7p1.
diff --git a/auth2-gss.c b/auth2-gss.c
index 589283b7..1d7cfb39 100644
--- a/auth2-gss.c
+++ b/auth2-gss.c
@@ -69,9 +69,6 @@ userauth_gssapi(struct ssh *ssh)
u_int len;
u_char *doid = NULL;
- if (!authctxt->valid || authctxt->user == NULL)
- return (0);
-
mechs = packet_get_int();
if (mechs == 0) {
debug("Mechanism negotiation is not supported");
diff --git a/auth2-gss.c b/auth2-gss.c
index 47308c5c..9351e042 100644
--- a/auth2-gss.c
+++ b/auth2-gss.c
@@ -106,6 +103,12 @@ userauth_gssapi(struct ssh *ssh)
return (0);
}
+ if (!authctxt->valid || authctxt->user == NULL) {
+ debug2("%s: disabled because of invalid user", __func__);
+ free(doid);
+ return (0);
+ }
+
if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, &goid)))) {
if (ctxt != NULL)
ssh_gssapi_delete_ctx(&ctxt);
diff --git a/auth2-hostbased.c b/auth2-hostbased.c
index 60159a56..35939329 100644
--- a/auth2-hostbased.c
+++ b/auth2-hostbased.c
@@ -67,10 +67,6 @@ userauth_hostbased(struct ssh *ssh)
size_t alen, blen, slen;
int r, pktype, authenticated = 0;
- if (!authctxt->valid) {
- debug2("%s: disabled because of invalid user", __func__);
- return 0;
- }
/* XXX use sshkey_froms() */
if ((r = sshpkt_get_cstring(ssh, &pkalg, &alen)) != 0 ||
(r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0 ||
@@ -117,6 +113,11 @@ userauth_hostbased(struct ssh *ssh)
goto done;
}
+ if (!authctxt->valid || authctxt->user == NULL) {
+ debug2("%s: disabled because of invalid user", __func__);
+ goto done;
+ }
+
if ((b = sshbuf_new()) == NULL)
fatal("%s: sshbuf_new failed", __func__);
/* reconstruct packet */
diff --git a/auth2-pubkey.c b/auth2-pubkey.c
index c4d0f790..e1c15040 100644
--- a/auth2-pubkey.c
+++ b/auth2-pubkey.c
@@ -89,19 +89,15 @@ userauth_pubkey(struct ssh *ssh)
{
Authctxt *authctxt = ssh->authctxt;
struct passwd *pw = authctxt->pw;
- struct sshbuf *b;
+ struct sshbuf *b = NULL;
struct sshkey *key = NULL;
- char *pkalg, *userstyle = NULL, *key_s = NULL, *ca_s = NULL;
- u_char *pkblob, *sig, have_sig;
+ char *pkalg = NULL, *userstyle = NULL, *key_s = NULL, *ca_s = NULL;
+ u_char *pkblob = NULL, *sig = NULL, have_sig;
size_t blen, slen;
int r, pktype;
int authenticated = 0;
struct sshauthopt *authopts = NULL;
- if (!authctxt->valid) {
- debug2("%s: disabled because of invalid user", __func__);
- return 0;
- }
if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 ||
(r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 ||
(r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0)
@@ -167,6 +163,11 @@ userauth_pubkey(struct ssh *ssh)
fatal("%s: sshbuf_put_string session id: %s",
__func__, ssh_err(r));
}
+ if (!authctxt->valid || authctxt->user == NULL) {
+ debug2("%s: disabled because of invalid user",
+ __func__);
+ goto done;
+ }
/* reconstruct packet */
xasprintf(&userstyle, "%s%s%s", authctxt->user,
authctxt->style ? ":" : "",
@@ -183,7 +184,6 @@ userauth_pubkey(struct ssh *ssh)
#ifdef DEBUG_PK
sshbuf_dump(b, stderr);
#endif
-
/* test for correct signature */
authenticated = 0;
if (PRIVSEP(user_key_allowed(ssh, pw, key, 1, &authopts)) &&
@@ -194,7 +194,6 @@ userauth_pubkey(struct ssh *ssh)
authenticated = 1;
}
sshbuf_free(b);
- free(sig);
auth2_record_key(authctxt, authenticated, key);
} else {
debug("%s: test pkalg %s pkblob %s%s%s",
@@ -205,6 +204,11 @@ userauth_pubkey(struct ssh *ssh)
if ((r = sshpkt_get_end(ssh)) != 0)
fatal("%s: %s", __func__, ssh_err(r));
+ if (!authctxt->valid || authctxt->user == NULL) {
+ debug2("%s: disabled because of invalid user",
+ __func__);
+ goto done;
+ }
/* XXX fake reply and always send PK_OK ? */
/*
* XXX this allows testing whether a user is allowed
@@ -238,6 +242,7 @@ done:
free(pkblob);
free(key_s);
free(ca_s);
+ free(sig);
return authenticated;
}
--
2.18.0

View File

@ -1,62 +0,0 @@
Fix CVE-2017-10788:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10788
Patch written to match corrected documentation specifications:
Old: http://web.archive.org/web/20161220021610/https://dev.mysql.com/doc/refman/5.7/en/mysql-stmt-close.html
New: https://dev.mysql.com/doc/refman/5.7/en/mysql-stmt-close.html
The patch itself is from https://github.com/perl5-dbi/DBD-mysql/issues/120#issuecomment-312420660.
From 9ce10cfae7138c37c3a0cb2ba2a1d682482943d0 Mon Sep 17 00:00:00 2001
From: Pali <pali@cpan.org>
Date: Sun, 25 Jun 2017 10:07:39 +0200
Subject: [PATCH] Fix use-after-free after calling mysql_stmt_close()
Ignore return value from mysql_stmt_close() and also its error message
because it points to freed memory after mysql_stmt_close() was called.
---
dbdimp.c | 8 ++------
mysql.xs | 7 ++-----
2 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/dbdimp.c b/dbdimp.c
index c60a5f6..a6410e5 100644
--- a/dbdimp.c
+++ b/dbdimp.c
@@ -4894,12 +4894,8 @@ void dbd_st_destroy(SV *sth, imp_sth_t *imp_sth) {
if (imp_sth->stmt)
{
- if (mysql_stmt_close(imp_sth->stmt))
- {
- do_error(DBIc_PARENT_H(imp_sth), mysql_stmt_errno(imp_sth->stmt),
- mysql_stmt_error(imp_sth->stmt),
- mysql_stmt_sqlstate(imp_sth->stmt));
- }
+ mysql_stmt_close(imp_sth->stmt);
+ imp_sth->stmt= NULL;
}
#endif
diff --git a/mysql.xs b/mysql.xs
index 55376e1..affde59 100644
--- a/mysql.xs
+++ b/mysql.xs
@@ -434,11 +434,8 @@ do(dbh, statement, attr=Nullsv, ...)
if (bind)
Safefree(bind);
- if(mysql_stmt_close(stmt))
- {
- fprintf(stderr, "\n failed while closing the statement");
- fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
- }
+ mysql_stmt_close(stmt);
+ stmt= NULL;
if (retval == -2) /* -2 means error */
{
--
1.7.9.5

View File

@ -0,0 +1,143 @@
Fix CVE-2018-1000223:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000223
https://gitlab.com/soundtouch/soundtouch/issues/6
Patches copied from upstream source repository:
https://gitlab.com/soundtouch/soundtouch/commit/9e02d9b04fda6c1f44336ff00bb5af1e2ffc039e
https://gitlab.com/soundtouch/soundtouch/commit/e0240689056e4182fffdc2a16aa6e3425a15e275
https://gitlab.com/soundtouch/soundtouch/commit/46531e5b92dd80dd9a7947463d6224fc7cb21967
From 9e02d9b04fda6c1f44336ff00bb5af1e2ffc039e Mon Sep 17 00:00:00 2001
From: oparviainen <oparviai@iki.fi>
Date: Sun, 12 Aug 2018 20:24:37 +0300
Subject: [PATCH] Added minimum size check for WAV header block lengh values
---
source/SoundStretch/WavFile.cpp | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp
index 7e7ade2..68818c9 100644
--- a/source/SoundStretch/WavFile.cpp
+++ b/source/SoundStretch/WavFile.cpp
@@ -530,7 +530,11 @@ int WavInFile::readHeaderBlock()
// read length of the format field
if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1;
// swap byte order if necessary
- _swap32(nLen); // int format_len;
+ _swap32(nLen);
+
+ // verify that header length isn't smaller than expected
+ if (nLen < sizeof(header.format) - 8) return -1;
+
header.format.format_len = nLen;
// calculate how much length differs from expected
@@ -572,6 +576,10 @@ int WavInFile::readHeaderBlock()
if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1;
// swap byte order if necessary
_swap32(nLen); // int fact_len;
+
+ // verify that fact length isn't smaller than expected
+ if (nLen < sizeof(header.fact) - 8) return -1;
+
header.fact.fact_len = nLen;
// calculate how much length differs from expected
--
2.18.0
From e0240689056e4182fffdc2a16aa6e3425a15e275 Mon Sep 17 00:00:00 2001
From: oparviainen <oparviai@iki.fi>
Date: Mon, 13 Aug 2018 19:16:16 +0300
Subject: [PATCH] Fixed WavFile header/fact not-too-small check
---
source/SoundStretch/WavFile.cpp | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp
index 4af7a4c..3421bca 100644
--- a/source/SoundStretch/WavFile.cpp
+++ b/source/SoundStretch/WavFile.cpp
@@ -518,13 +518,13 @@ int WavInFile::readHeaderBlock()
// swap byte order if necessary
_swap32(nLen);
- // verify that header length isn't smaller than expected
- if (nLen < sizeof(header.format) - 8) return -1;
+ // calculate how much length differs from expected
+ nDump = nLen - ((int)sizeof(header.format) - 8);
- header.format.format_len = nLen;
+ // verify that header length isn't smaller than expected structure
+ if (nDump < 0) return -1;
- // calculate how much length differs from expected
- nDump = nLen - ((int)sizeof(header.format) - 8);
+ header.format.format_len = nLen;
// if format_len is larger than expected, read only as much data as we've space for
if (nDump > 0)
@@ -561,16 +561,16 @@ int WavInFile::readHeaderBlock()
// read length of the fact field
if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1;
// swap byte order if necessary
- _swap32(nLen); // int fact_len;
-
- // verify that fact length isn't smaller than expected
- if (nLen < sizeof(header.fact) - 8) return -1;
-
- header.fact.fact_len = nLen;
+ _swap32(nLen);
// calculate how much length differs from expected
nDump = nLen - ((int)sizeof(header.fact) - 8);
+ // verify that fact length isn't smaller than expected structure
+ if (nDump < 0) return -1;
+
+ header.fact.fact_len = nLen;
+
// if format_len is larger than expected, read only as much data as we've space for
if (nDump > 0)
{
--
2.18.0
From 46531e5b92dd80dd9a7947463d6224fc7cb21967 Mon Sep 17 00:00:00 2001
From: olli <oparviai@iki.fi>
Date: Mon, 13 Aug 2018 19:42:58 +0300
Subject: [PATCH] Improved WavFile header/fact not-too-small check
---
source/SoundStretch/WavFile.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp
index 3421bca..9d90b8a 100644
--- a/source/SoundStretch/WavFile.cpp
+++ b/source/SoundStretch/WavFile.cpp
@@ -522,7 +522,7 @@ int WavInFile::readHeaderBlock()
nDump = nLen - ((int)sizeof(header.format) - 8);
// verify that header length isn't smaller than expected structure
- if (nDump < 0) return -1;
+ if ((nLen < 0) || (nDump < 0)) return -1;
header.format.format_len = nLen;
@@ -567,7 +567,7 @@ int WavInFile::readHeaderBlock()
nDump = nLen - ((int)sizeof(header.fact) - 8);
// verify that fact length isn't smaller than expected structure
- if (nDump < 0) return -1;
+ if ((nLen < 0) || (nDump < 0)) return -1;
header.fact.fact_len = nLen;
--
2.18.0

View File

@ -0,0 +1,138 @@
Fix CVE-2018-14044 and CVE-2018-14045:
https://gitlab.com/soundtouch/soundtouch/issues/7
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14044
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14045
Patch copied from upstream source repository:
https://gitlab.com/soundtouch/soundtouch/commit/107f2c5d201a4dfea1b7f15c5957ff2ac9e5f260
From 107f2c5d201a4dfea1b7f15c5957ff2ac9e5f260 Mon Sep 17 00:00:00 2001
From: oparviainen <oparviai@iki.fi>
Date: Sun, 12 Aug 2018 20:00:56 +0300
Subject: [PATCH] Replaced illegal-number-of-channel assertions with run-time
exception
---
include/FIFOSamplePipe.h | 12 ++++++++++++
include/STTypes.h | 3 +++
source/SoundTouch/FIFOSampleBuffer.cpp | 3 ++-
source/SoundTouch/RateTransposer.cpp | 5 ++---
source/SoundTouch/SoundTouch.cpp | 8 ++------
source/SoundTouch/TDStretch.cpp | 5 ++---
6 files changed, 23 insertions(+), 13 deletions(-)
diff --git a/include/FIFOSamplePipe.h b/include/FIFOSamplePipe.h
index 4ec9275..b08f836 100644
--- a/include/FIFOSamplePipe.h
+++ b/include/FIFOSamplePipe.h
@@ -51,6 +51,18 @@ namespace soundtouch
/// Abstract base class for FIFO (first-in-first-out) sample processing classes.
class FIFOSamplePipe
{
+protected:
+
+ bool verifyNumberOfChannels(int nChannels) const
+ {
+ if ((nChannels > 0) && (nChannels <= SOUNDTOUCH_MAX_CHANNELS))
+ {
+ return true;
+ }
+ ST_THROW_RT_ERROR("Error: Illegal number of channels");
+ return false;
+ }
+
public:
// virtual default destructor
virtual ~FIFOSamplePipe() {}
diff --git a/include/STTypes.h b/include/STTypes.h
index 03e7e07..862505e 100644
--- a/include/STTypes.h
+++ b/include/STTypes.h
@@ -56,6 +56,9 @@ typedef unsigned long ulong;
namespace soundtouch
{
+ /// Max allowed number of channels
+ #define SOUNDTOUCH_MAX_CHANNELS 16
+
/// Activate these undef's to overrule the possible sampletype
/// setting inherited from some other header file:
//#undef SOUNDTOUCH_INTEGER_SAMPLES
diff --git a/source/SoundTouch/FIFOSampleBuffer.cpp b/source/SoundTouch/FIFOSampleBuffer.cpp
index f0d5e42..706e869 100644
--- a/source/SoundTouch/FIFOSampleBuffer.cpp
+++ b/source/SoundTouch/FIFOSampleBuffer.cpp
@@ -73,7 +73,8 @@ void FIFOSampleBuffer::setChannels(int numChannels)
{
uint usedBytes;
- assert(numChannels > 0);
+ if (!verifyNumberOfChannels(numChannels)) return;
+
usedBytes = channels * samplesInBuffer;
channels = (uint)numChannels;
samplesInBuffer = usedBytes / channels;
diff --git a/source/SoundTouch/RateTransposer.cpp b/source/SoundTouch/RateTransposer.cpp
index 8b66be3..d115a4c 100644
--- a/source/SoundTouch/RateTransposer.cpp
+++ b/source/SoundTouch/RateTransposer.cpp
@@ -179,11 +179,10 @@ void RateTransposer::processSamples(const SAMPLETYPE *src, uint nSamples)
// Sets the number of channels, 1 = mono, 2 = stereo
void RateTransposer::setChannels(int nChannels)
{
- assert(nChannels > 0);
+ if (!verifyNumberOfChannels(nChannels) ||
+ (pTransposer->numChannels == nChannels)) return;
- if (pTransposer->numChannels == nChannels) return;
pTransposer->setChannels(nChannels);
-
inputBuffer.setChannels(nChannels);
midBuffer.setChannels(nChannels);
outputBuffer.setChannels(nChannels);
diff --git a/source/SoundTouch/SoundTouch.cpp b/source/SoundTouch/SoundTouch.cpp
index 7b6756b..06bdd56 100644
--- a/source/SoundTouch/SoundTouch.cpp
+++ b/source/SoundTouch/SoundTouch.cpp
@@ -139,18 +139,14 @@ uint SoundTouch::getVersionId()
// Sets the number of channels, 1 = mono, 2 = stereo
void SoundTouch::setChannels(uint numChannels)
{
- /*if (numChannels != 1 && numChannels != 2)
- {
- //ST_THROW_RT_ERROR("Illegal number of channels");
- return;
- }*/
+ if (!verifyNumberOfChannels(numChannels)) return;
+
channels = numChannels;
pRateTransposer->setChannels((int)numChannels);
pTDStretch->setChannels((int)numChannels);
}
-
// Sets new rate control value. Normal rate = 1.0, smaller values
// represent slower rate, larger faster rates.
void SoundTouch::setRate(double newRate)
diff --git a/source/SoundTouch/TDStretch.cpp b/source/SoundTouch/TDStretch.cpp
index 149cdb9..be2dc88 100644
--- a/source/SoundTouch/TDStretch.cpp
+++ b/source/SoundTouch/TDStretch.cpp
@@ -588,9 +588,8 @@ void TDStretch::setTempo(double newTempo)
// Sets the number of channels, 1 = mono, 2 = stereo
void TDStretch::setChannels(int numChannels)
{
- assert(numChannels > 0);
- if (channels == numChannels) return;
-// assert(numChannels == 1 || numChannels == 2);
+ if (!verifyNumberOfChannels(numChannels) ||
+ (channels == numChannels)) return;
channels = numChannels;
inputBuffer.setChannels(channels);
--
2.18.0

View File

@ -8667,33 +8667,32 @@ CloudFront content delivery network.")
(define-public python-pkgconfig
(package
(name "python-pkgconfig")
(version "1.1.0")
(version "1.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pkgconfig" version))
(sha256
(base32
"1pw0kmvc57sjmaxi6c54fqsnihqj6hvhc9y1vaz36axafzqam7bh"))))
"107x2wmchlch8saixb488cgjz9n6inl38wi7nxkb942rbaapxiqb"))))
(build-system python-build-system)
(native-inputs
`(("python-nose" ,python-nose)))
(inputs
`(("pkg-config" ,pkg-config)))
(arguments
`(;; Tests fail with "ValueError: _type_ 'v' not supported" on Python 3,
;; and on Python 2 they need the dl module deprecated since Python 2.6.
#:tests? #f
;; Hard-code the path to pkg-config.
#:phases
`(#:phases
(modify-phases %standard-phases
(add-before
'build 'patch
(lambda _
(substitute* "pkgconfig/pkgconfig.py"
(("cmd = 'pkg-config")
(string-append "cmd = '" (which "pkg-config"))))
#t)))))
(add-before 'build 'patch
;; Hard-code the path to pkg-config.
(lambda _
(substitute* "pkgconfig/pkgconfig.py"
(("cmd = 'pkg-config")
(string-append "cmd = '" (which "pkg-config"))))
#t))
(replace 'check
(lambda _
(invoke "nosetests" "test.py"))))))
(home-page "https://github.com/matze/pkgconfig")
(synopsis "Python interface for pkg-config")
(description "This module provides a Python interface to pkg-config. It

View File

@ -5,7 +5,7 @@
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -102,7 +102,7 @@ controlling terminal and attach to it later.")
(define-public byobu
(package
(name "byobu")
(version "5.98")
(version "5.127")
(source
(origin
(method url-fetch)
@ -111,11 +111,11 @@ controlling terminal and attach to it later.")
version ".orig.tar.gz"))
(sha256
(base32
"1s8nh4wbds1nh52i0d1hy1b308jjf4siwpq92lna1zh9ll4x71j5"))
"0fznlj454vgxgzfw3avmvvjpawggs66da5l8k6v0lnzzd75wgbsb"))
(patches (search-patches "byobu-writable-status.patch"))))
(build-system gnu-build-system)
(inputs
`(("python" ,python-wrapper) ;for config and session GUIs
`(("python" ,python-wrapper) ; for config and session GUIs
("python-newt" ,newt "python")))
(arguments
`(#:phases
@ -123,7 +123,7 @@ controlling terminal and attach to it later.")
(add-before
'configure 'provide-locale
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))) ;implicit input
(let ((libc (assoc-ref inputs "libc"))) ; implicit input
(substitute* "usr/bin/byobu.in"
(("locale") (string-append libc "/bin/locale")))
#t)))
@ -141,7 +141,7 @@ controlling terminal and attach to it later.")
(wrap-program select
`("BYOBU_PYTHON" = (,python)))
#t))))))
(home-page "http://byobu.co/index.html")
(home-page "https://byobu.org/")
(synopsis "Text-based window manager and terminal multiplexer")
(description
"Byobu is a Japanese term for decorative, multi-panel screens that serve

View File

@ -274,7 +274,7 @@ authentication, encryption and digital signatures. OpenSC implements the PKCS
(define-public yubico-piv-tool
(package
(name "yubico-piv-tool")
(version "1.6.0")
(version "1.6.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -282,7 +282,7 @@ authentication, encryption and digital signatures. OpenSC implements the PKCS
name "-" version ".tar.gz"))
(sha256
(base32
"1p0df35qfm2xch64hc1x6k4gpgfl4hiqph5ai30bq8w7yxa3lvfc"))))
"10xgdc51xvszkxmsvqnbjs8ixxz7rfnfahh3wn8glllynmszbhwi"))))
(build-system gnu-build-system)
(inputs
`(("gengetopt" ,gengetopt)

View File

@ -148,15 +148,14 @@ a server that supports the SSH-2 protocol.")
(define-public openssh
(package
(name "openssh")
(version "7.7p1")
(version "7.8p1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://openbsd/OpenSSH/portable/"
name "-" version ".tar.gz"))
(patches (search-patches "openssh-CVE-2018-15473.patch"))
(sha256
(base32
"13vbbrvj3mmfhj83qyrg5c0ipr6bzw5s65dy4k8gr7p9hkkfffyp"))))
"1jj4f586r9lhakp2w0zv7j616d6x62m15q8l4nxq7haja6qlnj0s"))))
(build-system gnu-build-system)
(native-inputs `(("groff" ,groff)))
(inputs `(("openssl" ,openssl)

View File

@ -725,13 +725,13 @@ effects of different types of color-blindness.")
(define-public r-digest
(package
(name "r-digest")
(version "0.6.15")
(version "0.6.16")
(source
(origin
(method url-fetch)
(uri (cran-uri "digest" version))
(sha256
(base32 "1ia4ak956gnn0f5aqhwgam6g9z6f1y57zz8jv45jc8h79yxp8bl8"))))
(base32 "1lhs59pdjhpb63jyy98pi1shk9shw044k6vl0mvw0f40v08326ar"))))
(build-system r-build-system)
;; Vignettes require r-knitr, which requires r-digest, so we have to
;; disable them and the tests.
@ -1619,13 +1619,13 @@ and printing capabilities than traditional data frames.")
(define-public r-dplyr
(package
(name "r-dplyr")
(version "0.7.5")
(version "0.7.6")
(source (origin
(method url-fetch)
(uri (cran-uri "dplyr" version))
(sha256
(base32
"0l6smzdgb8w505gyl8gnwlg988a6cmafh3rssiv00rsrd8qqzg9g"))))
"0c43h13s5mr0fklikbbm89gs6z5n66rkjzdv6w3w6kl5af5wr2fl"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
@ -2364,13 +2364,13 @@ informative error messages when it's not available.")
(define-public r-devtools
(package
(name "r-devtools")
(version "1.13.5")
(version "1.13.6")
(source (origin
(method url-fetch)
(uri (cran-uri "devtools" version))
(sha256
(base32
"1x3wsk7dh3yakii61kbfvafx9yz66h40ixiwfkf03dnp2n24hngs"))))
"1d9n49djydywfyp9w3njgxs5lag4ac7719wmxy1lkgcmn3l9sx5r"))))
(build-system r-build-system)
(propagated-inputs
`(("r-digest" ,r-digest)
@ -2562,13 +2562,13 @@ vectors.")
(define-public r-catools
(package
(name "r-catools")
(version "1.17.1")
(version "1.17.1.1")
(source (origin
(method url-fetch)
(uri (cran-uri "caTools" version))
(sha256
(base32
"1x4szsn2qmbzpyjfdaiz2q7jwhap2gky9wq0riah74q0pzz76ank"))))
"01hccp05gz25vhz9nnxv1c91lrxlr7drcw9xf124gggifxf2qgnm"))))
(properties `((upstream-name . "caTools")))
(build-system r-build-system)
(propagated-inputs
@ -3323,14 +3323,14 @@ bigmemory and synchronicity packages.")
(define-public r-synchronicity
(package
(name "r-synchronicity")
(version "1.3.4")
(version "1.3.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "synchronicity" version))
(sha256
(base32
"1km5hx82gy71m5nc6pkcksv0dn32fylhg2axpdsnarrxva14mgdg"))))
"1kgsk64aifjm3mfj102y3va7x1abypq2zi0cqbnjhl8fqyzp69hx"))))
(build-system r-build-system)
(propagated-inputs
`(("r-bh" ,r-bh)
@ -4851,14 +4851,14 @@ multivariate analysis.")
(define-public r-trimcluster
(package
(name "r-trimcluster")
(version "0.1-2")
(version "0.1-2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "trimcluster" version))
(sha256
(base32
"0lsgbg93hm0w1rdb813ry0ks2l0jfpyqzqkf3h3bj6fch0avcbv2"))))
"0013bpyq6mkvjn38qsmwnsxfiwxgwngnqxycxvgpgmiadhm8fjmn"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/trimcluster")
(synopsis "Cluster analysis with trimming")
@ -5172,14 +5172,14 @@ Companion to Applied Regression, Third Edition, Sage.")
(define-public r-car
(package
(name "r-car")
(version "3.0-0")
(version "3.0-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "car" version))
(sha256
(base32
"1ks2jaav8lbxhzw56vpbnysjk3pvpmqh6avd574k0bha1226k81h"))))
"0rdk7hgahs38j6yv861i31wpmsmyvksxcv8jarvvcjl60whizhb2"))))
(build-system r-build-system)
(propagated-inputs
`(("r-abind" ,r-abind)

View File

@ -21,6 +21,7 @@
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1779,7 +1780,7 @@ be served with a HTTP file server of your choice.")
(define-public darcs
(package
(name "darcs")
(version "2.12.5")
(version "2.14.1")
(source
(origin
(method url-fetch)
@ -1787,7 +1788,7 @@ be served with a HTTP file server of your choice.")
"darcs-" version ".tar.gz"))
(sha256
(base32
"0lrm0sal5pl453mkqn8b9fc9l7lwinc140iqihya9g17bk408nrm"))
"0dfd6bp2wy0aabxx7l93gi3dmq21j970cds424xdy1mgmjcvrpb1"))
(modules '((guix build utils)))
;; Remove time-dependent code for reproducibility.
(snippet
@ -1795,18 +1796,19 @@ be served with a HTTP file server of your choice.")
(substitute* "darcs/darcs.hs"
(("__DATE__") "\"1970-01-01\"")
(("__TIME__") "\"00:00:00\""))
(substitute* "src/impossible.h"
(("__DATE__") "\"\"")
(("__TIME__") "\"\""))
#t))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
"-fnetwork-uri" "-fhttp" "--flag=executable"
"--flag=library"
"--allow-newer=shelly")
;; FIXME: darcs is not compatible with the latest QuickCheck
#:tests? #f))
"--flag=library")
#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'patch-sh
(lambda _
(substitute* "tests/issue538.sh"
(("/bin/sh") (which "sh")))
#t)))))
(inputs
`(("ghc-cmdargs" ,ghc-cmdargs)
("ghc-split" ,ghc-split)

View File

@ -27,6 +27,7 @@
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -6780,3 +6781,26 @@ compressed JSON header blocks.
provided by Guix. The list of packages is searchable and provides
instructions on how to use Guix in a shared HPC environment.")
(license l:agpl3+))))
(define-public r-miniui
(package
(name "r-miniui")
(version "0.1.1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "miniUI" version))
(sha256
(base32
"1h5h2sc57h95d6bsgs95l26911g38hvjc1v50bc31xl9689l2as5"))))
(properties `((upstream-name . "miniUI")))
(build-system r-build-system)
(propagated-inputs
`(("r-htmltools" ,r-htmltools)
("r-shiny" ,r-shiny)))
(home-page "https://cran.r-project.org/web/packages/miniUI/")
(synopsis "Shiny UI widgets for small screens")
(description
"This package provides UI widget and layout functions for writing Shiny apps that
work well on small screens.")
(license l:gpl3)))

View File

@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,6 +25,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
@ -226,38 +228,38 @@ integrate Windows applications into your desktop.")
(version "3.14")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/wine-staging/wine-staging/archive/v"
version ".zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"1w3n90ab3xyhdzxw1mnkp2cw76lpm5l75hy9xkw3kz2fwzq6lwz7"))))
(method git-fetch)
(uri (git-reference
(url "https://github.com/wine-staging/wine-staging")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0h6gck0p92hin0m13q1hnlfnqs4vy474w66ppinvqms2zn3vibgi"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
("coreutils" ,coreutils)
("unzip" ,unzip)))
("coreutils" ,coreutils)))
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(wine-staging (string-append out "/share/wine-staging"))
(let* ((build-directory ,(string-append name "-" version))
(source (assoc-ref %build-inputs "source"))
(sh (string-append (assoc-ref %build-inputs "bash") "/bin/bash"))
(env (string-append (assoc-ref %build-inputs "coreutils") "/bin/env"))
(unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
(copy-file source (string-append ,name "-" ,version ".zip"))
(invoke unzip (string-append ,name "-" ,version ".zip"))
(substitute* (string-append "wine-staging-" ,version
"/patches/patchinstall.sh") (("/bin/sh") sh))
(substitute* (string-append "wine-staging-" ,version
"/patches/gitapply.sh") (("/usr/bin/env") env))
(mkdir-p wine-staging)
(copy-recursively (string-append "wine-staging-" ,version)
wine-staging)
(bash (assoc-ref %build-inputs "bash"))
(coreutils (assoc-ref %build-inputs "coreutils"))
(out (assoc-ref %outputs "out"))
(wine-staging (string-append out "/share/wine-staging")))
(copy-recursively source build-directory)
(with-directory-excursion build-directory
(substitute* "patches/patchinstall.sh"
(("/bin/sh")
(string-append bash "/bin/sh")))
(substitute* "patches/gitapply.sh"
(("/usr/bin/env")
(string-append coreutils "/bin/env"))))
(copy-recursively build-directory wine-staging)
#t))))
(home-page "https://github.com/wine-staging")
(synopsis "Patchset for Wine")

View File

@ -5239,6 +5239,7 @@ draggable titlebars and borders.")
(package
(name "libx11")
(version "1.6.5")
(replacement libx11-1.6.6)
(source
(origin
(method url-fetch)
@ -5268,6 +5269,20 @@ draggable titlebars and borders.")
(description "Xorg Core X11 protocol client library.")
(license license:x11)))
;; Replacement package to fix multiple security bugs:
;; <http://seclists.org/oss-sec/2018/q3/146>.
(define-public libx11-1.6.6
(package
(inherit libx11)
(version "1.6.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://xorg/individual/lib/libX11-"
version ".tar.bz2"))
(sha256
(base32
"0ks1mxlda7nxfmffihi15ljsn50q8dknl33i2xag8xzc80fiizk5"))))))
;; packages of height 5 in the propagated-inputs tree
(define-public libxcursor

210
guix/build/debug-link.scm Normal file
View File

@ -0,0 +1,210 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix build debug-link)
#:use-module (guix elf)
#:use-module ((guix build utils)
#:select (find-files elf-file? make-file-writable))
#:use-module (rnrs bytevectors)
#:use-module (rnrs io ports)
#:use-module (srfi srfi-1)
#:use-module (system foreign)
#:use-module (ice-9 match)
#:export (debuglink-crc32
elf-debuglink
set-debuglink-crc
graft-debug-links))
;;; Commentary:
;;;
;;; This module provides tools to deal with '.gnu_debuglink' sections in ELF
;;; files. These sections are created by 'objcopy --add-gnu-debuglink' to
;;; create separate debug files (info "(gdb) Separate Debug Files").
;;;
;;; The main facility of this module is 'graft-debug-links', which allows us
;;; to update the CRC that appears in '.gnu_debuglink' sections when grafting,
;;; such that separate debug files remain usable after grafting. Failing to
;;; do that, GDB would complain about CRC mismatch---see
;;; <https://bugs.gnu.org/19973>.
;;;
;;; Code:
(define %crc32-table
;; CRC table taken from "(gdb) Separate Debug Files".
;; TODO: Wouldn't it be nice to generate it "from source" with a macro?
#(#x00000000 #x77073096 #xee0e612c #x990951ba #x076dc419
#x706af48f #xe963a535 #x9e6495a3 #x0edb8832 #x79dcb8a4
#xe0d5e91e #x97d2d988 #x09b64c2b #x7eb17cbd #xe7b82d07
#x90bf1d91 #x1db71064 #x6ab020f2 #xf3b97148 #x84be41de
#x1adad47d #x6ddde4eb #xf4d4b551 #x83d385c7 #x136c9856
#x646ba8c0 #xfd62f97a #x8a65c9ec #x14015c4f #x63066cd9
#xfa0f3d63 #x8d080df5 #x3b6e20c8 #x4c69105e #xd56041e4
#xa2677172 #x3c03e4d1 #x4b04d447 #xd20d85fd #xa50ab56b
#x35b5a8fa #x42b2986c #xdbbbc9d6 #xacbcf940 #x32d86ce3
#x45df5c75 #xdcd60dcf #xabd13d59 #x26d930ac #x51de003a
#xc8d75180 #xbfd06116 #x21b4f4b5 #x56b3c423 #xcfba9599
#xb8bda50f #x2802b89e #x5f058808 #xc60cd9b2 #xb10be924
#x2f6f7c87 #x58684c11 #xc1611dab #xb6662d3d #x76dc4190
#x01db7106 #x98d220bc #xefd5102a #x71b18589 #x06b6b51f
#x9fbfe4a5 #xe8b8d433 #x7807c9a2 #x0f00f934 #x9609a88e
#xe10e9818 #x7f6a0dbb #x086d3d2d #x91646c97 #xe6635c01
#x6b6b51f4 #x1c6c6162 #x856530d8 #xf262004e #x6c0695ed
#x1b01a57b #x8208f4c1 #xf50fc457 #x65b0d9c6 #x12b7e950
#x8bbeb8ea #xfcb9887c #x62dd1ddf #x15da2d49 #x8cd37cf3
#xfbd44c65 #x4db26158 #x3ab551ce #xa3bc0074 #xd4bb30e2
#x4adfa541 #x3dd895d7 #xa4d1c46d #xd3d6f4fb #x4369e96a
#x346ed9fc #xad678846 #xda60b8d0 #x44042d73 #x33031de5
#xaa0a4c5f #xdd0d7cc9 #x5005713c #x270241aa #xbe0b1010
#xc90c2086 #x5768b525 #x206f85b3 #xb966d409 #xce61e49f
#x5edef90e #x29d9c998 #xb0d09822 #xc7d7a8b4 #x59b33d17
#x2eb40d81 #xb7bd5c3b #xc0ba6cad #xedb88320 #x9abfb3b6
#x03b6e20c #x74b1d29a #xead54739 #x9dd277af #x04db2615
#x73dc1683 #xe3630b12 #x94643b84 #x0d6d6a3e #x7a6a5aa8
#xe40ecf0b #x9309ff9d #x0a00ae27 #x7d079eb1 #xf00f9344
#x8708a3d2 #x1e01f268 #x6906c2fe #xf762575d #x806567cb
#x196c3671 #x6e6b06e7 #xfed41b76 #x89d32be0 #x10da7a5a
#x67dd4acc #xf9b9df6f #x8ebeeff9 #x17b7be43 #x60b08ed5
#xd6d6a3e8 #xa1d1937e #x38d8c2c4 #x4fdff252 #xd1bb67f1
#xa6bc5767 #x3fb506dd #x48b2364b #xd80d2bda #xaf0a1b4c
#x36034af6 #x41047a60 #xdf60efc3 #xa867df55 #x316e8eef
#x4669be79 #xcb61b38c #xbc66831a #x256fd2a0 #x5268e236
#xcc0c7795 #xbb0b4703 #x220216b9 #x5505262f #xc5ba3bbe
#xb2bd0b28 #x2bb45a92 #x5cb36a04 #xc2d7ffa7 #xb5d0cf31
#x2cd99e8b #x5bdeae1d #x9b64c2b0 #xec63f226 #x756aa39c
#x026d930a #x9c0906a9 #xeb0e363f #x72076785 #x05005713
#x95bf4a82 #xe2b87a14 #x7bb12bae #x0cb61b38 #x92d28e9b
#xe5d5be0d #x7cdcefb7 #x0bdbdf21 #x86d3d2d4 #xf1d4e242
#x68ddb3f8 #x1fda836e #x81be16cd #xf6b9265b #x6fb077e1
#x18b74777 #x88085ae6 #xff0f6a70 #x66063bca #x11010b5c
#x8f659eff #xf862ae69 #x616bffd3 #x166ccf45 #xa00ae278
#xd70dd2ee #x4e048354 #x3903b3c2 #xa7672661 #xd06016f7
#x4969474d #x3e6e77db #xaed16a4a #xd9d65adc #x40df0b66
#x37d83bf0 #xa9bcae53 #xdebb9ec5 #x47b2cf7f #x30b5ffe9
#xbdbdf21c #xcabac28a #x53b39330 #x24b4a3a6 #xbad03605
#xcdd70693 #x54de5729 #x23d967bf #xb3667a2e #xc4614ab8
#x5d681b02 #x2a6f2b94 #xb40bbe37 #xc30c8ea1 #x5a05df1b
#x2d02ef8d))
(define (debuglink-crc32 port)
"Compute the 32-bit CRC used in in '.gnu_debuglink' over the data read from
PORT and return it." ;(info "(gdb) Separate Debug Files")
(let loop ((crc #xffffffff))
(let ((byte (get-u8 port)))
(if (eof-object? byte)
(logand (lognot crc) #xffffffff)
(let* ((index (logand (logxor crc byte) #xff))
(lhs (vector-ref %crc32-table index)))
(loop (logxor lhs (ash crc -8))))))))
(define (section-contents elf section) ;XXX: copied from linux-modules.scm
"Return the contents of SECTION in ELF as a bytevector."
(let* ((contents (make-bytevector (elf-section-size section))))
(bytevector-copy! (elf-bytes elf) (elf-section-offset section)
contents 0
(elf-section-size section))
contents))
(define null-terminated-bytevector->string
(compose pointer->string bytevector->pointer))
(define (elf-debuglink elf)
"Return two values: the '.gnu_debuglink' file name of ELF and its CRC.
Return #f for both if ELF lacks a '.gnu_debuglink' section."
(let ((section (elf-section-by-name elf ".gnu_debuglink")))
(if section
(let ((size (elf-section-size section))
(bv (section-contents elf section))
(endianness (elf-byte-order elf)))
(values (null-terminated-bytevector->string bv)
(bytevector-u32-ref bv (- size 4) endianness)))
(values #f #f))))
(define (elf-debuglink-crc-offset elf)
"Return the offset of the '.gnu_debuglink' 32-bit CRC, or #f if ELF lacks a
'.gnu_debuglink' section."
(let ((section (elf-section-by-name elf ".gnu_debuglink")))
(and section
(+ (elf-section-offset section)
(elf-section-size section)
-4))))
(define (set-debuglink-crc file debug-file)
"Compute the CRC of DEBUG-FILE and set it as the '.gnu_debuglink' CRC in
FILE."
(let* ((elf (parse-elf (call-with-input-file file get-bytevector-all)))
(offset (elf-debuglink-crc-offset elf)))
(and offset
(let* ((crc (call-with-input-file debug-file debuglink-crc32))
(bv (make-bytevector 4)))
(bytevector-u32-set! bv 0 crc (elf-byte-order elf))
(let ((port (open file O_RDWR)))
(set-port-position! port offset)
(put-bytevector port bv)
(close-port port))))))
;;;
;;; Updating debuglink CRC.
;;;
(define (find-elf-files outputs)
"Return the list of ELF files found in OUTPUTS, a list of top-level store
directories."
(define directories
(append-map (lambda (output)
(list (string-append output "/bin")
(string-append output "/sbin")
(string-append output "/lib")
(string-append output "/libexec")))
outputs))
(append-map (lambda (directory)
(filter elf-file?
(with-error-to-port (%make-void-port "w")
(lambda ()
(find-files directory)))))
directories))
(define* (graft-debug-links old-outputs new-outputs mapping
#:key (log-port (current-error-port)))
"Update the '.gnu_debuglink' CRCs found in ELF files of NEW-OUTPUTS,
provided NEW-OUTPUTS contains a \"debug\" output, such that those CRCs match
those of the corresponding '.debug' files found in the \"debug\" output.
This procedure is meant to be used as a \"grafting hook\" by (guix build
graft)."
(match (assoc-ref new-outputs "debug")
(#f #t) ;nothing to do
(debug-directory
(let ((files (find-elf-files (filter-map (match-lambda
(("debug" . _)
#f)
((name . directory)
directory))
new-outputs))))
(for-each (lambda (file)
(let ((debug (string-append debug-directory
"/lib/debug" file ".debug")))
(when (file-exists? debug)
(format log-port
"updating '.gnu_debuglink' CRC in '~a'~%"
file)
(make-file-writable file)
(set-debuglink-crc file debug))))
files)))))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@ -19,6 +19,7 @@
(define-module (guix build graft)
#:use-module (guix build utils)
#:use-module (guix build debug-link)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 vlist)
#:use-module (ice-9 match)
@ -27,7 +28,8 @@
#:use-module (srfi srfi-1) ; list library
#:use-module (srfi srfi-26) ; cut and cute
#:export (replace-store-references
rewrite-directory))
rewrite-directory
graft))
;;; Commentary:
;;;
@ -321,4 +323,29 @@ file name pairs."
#:directories? #t))
(rename-matching-files output mapping))
(define %graft-hooks
;; Default list of hooks run after grafting.
(list graft-debug-links))
(define* (graft old-outputs new-outputs mapping
#:key (log-port (current-output-port))
(hooks %graft-hooks))
"Apply the grafts described by MAPPING on OLD-OUTPUTS, leading to
NEW-OUTPUTS. MAPPING must be a list of file name pairs; OLD-OUTPUTS and
NEW-OUTPUTS are lists of output name/file name pairs."
(for-each (lambda (input output)
(format log-port "grafting '~a' -> '~a'...~%" input output)
(force-output)
(rewrite-directory input output mapping))
(match old-outputs
(((names . files) ...)
files))
(match new-outputs
(((names . files) ...)
files)))
(for-each (lambda (hook)
(hook old-outputs new-outputs mapping
#:log-port log-port))
hooks))
;;; graft.scm ends here

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -117,16 +117,7 @@ are not recursively applied to dependencies of DRV."
(cons (assoc-ref old-outputs name)
file)))
%outputs))))
(for-each (lambda (input output)
(format #t "grafting '~a' -> '~a'...~%" input output)
(force-output)
(rewrite-directory input output mapping))
(match old-outputs
(((names . files) ...)
files))
(match %outputs
(((names . files) ...)
files))))))
(graft old-outputs %outputs mapping))))
(define add-label
(cut cons "x" <>))
@ -139,7 +130,9 @@ are not recursively applied to dependencies of DRV."
#:system system
#:guile-for-build guile
#:modules '((guix build graft)
(guix build utils))
(guix build utils)
(guix build debug-link)
(guix elf))
#:inputs `(,@(map (lambda (out)
`("x" ,drv ,out))
outputs)

File diff suppressed because it is too large Load Diff

View File

@ -97,7 +97,7 @@
('propagated-inputs
('quasiquote
(("perl-test-script" ('unquote 'perl-test-script)))))
('home-page "http://search.cpan.org/dist/Foo-Bar/")
('home-page "https://metacpan.org/release/Foo-Bar")
('synopsis "Fizzle Fuzz")
('description 'fill-in-yourself!)
('license 'perl-license))

158
tests/debug-link.scm Normal file
View File

@ -0,0 +1,158 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (test-debug-link)
#:use-module (guix elf)
#:use-module (guix build utils)
#:use-module (guix build debug-link)
#:use-module (guix gexp)
#:use-module (guix store)
#:use-module (guix tests)
#:use-module (guix monads)
#:use-module (guix derivations)
#:use-module (gnu packages bootstrap)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-64)
#:use-module (rnrs io ports)
#:use-module (ice-9 match))
(define %guile-executable
(match (false-if-exception (readlink "/proc/self/exe"))
((? string? program)
(and (file-exists? program) (elf-file? program)
program))
(_
#f)))
(define read-elf
(compose parse-elf get-bytevector-all))
(define %store
(open-connection-for-tests))
(define-syntax-rule (test-assertm name exp)
(test-assert name
(run-with-store %store exp
#:guile-for-build (%guile-for-build))))
(test-begin "debug-link")
(unless %guile-executable (test-skip 1))
(test-assert "elf-debuglink"
(let ((elf (call-with-input-file %guile-executable read-elf)))
(match (call-with-values (lambda () (elf-debuglink elf)) list)
((#f #f) ;no '.gnu_debuglink' section
(pk 'no-debuglink #t))
(((? string? file) (? integer? crc))
(string-suffix? ".debug" file)))))
;; Since we need %BOOTSTRAP-GCC and co., we have to skip the following tests
;; when networking is unreachable because we'd fail to download it.
(unless (network-reachable?) (test-skip 1))
(test-assertm "elf-debuglink"
;; Check whether we can compute the CRC just like objcopy, and whether we
;; can retrieve it.
(let* ((code (plain-file "test.c" "int main () { return 42; }"))
(exp (with-imported-modules '((guix build utils)
(guix build debug-link)
(guix elf))
#~(begin
(use-modules (guix build utils)
(guix build debug-link)
(guix elf)
(rnrs io ports))
(define read-elf
(compose parse-elf get-bytevector-all))
(setenv "PATH" (string-join '(#$%bootstrap-gcc
#$%bootstrap-binutils)
"/bin:" 'suffix))
(invoke "gcc" "-O0" "-g" #$code "-o" "exe")
(copy-file "exe" "exe.debug")
(invoke "strip" "--only-keep-debug" "exe.debug")
(invoke "strip" "--strip-debug" "exe")
(invoke "objcopy" "--add-gnu-debuglink=exe.debug"
"exe")
(call-with-values (lambda ()
(elf-debuglink
(call-with-input-file "exe"
read-elf)))
(lambda (file crc)
(call-with-output-file #$output
(lambda (port)
(let ((expected (call-with-input-file "exe.debug"
debuglink-crc32)))
(write (list file (= crc expected))
port))))))))))
(mlet* %store-monad ((drv (gexp->derivation "debuglink" exp))
(x (built-derivations (list drv))))
(call-with-input-file (derivation->output-path drv)
(lambda (port)
(return (match (read port)
(("exe.debug" #t) #t)
(x (pk 'fail x #f)))))))))
(unless (network-reachable?) (test-skip 1))
(test-assertm "set-debuglink-crc"
;; Check whether 'set-debuglink-crc' successfully updates the CRC.
(let* ((code (plain-file "test.c" "int main () { return 42; }"))
(debug (plain-file "exe.debug" "a"))
(exp (with-imported-modules '((guix build utils)
(guix build debug-link)
(guix elf))
#~(begin
(use-modules (guix build utils)
(guix build debug-link)
(guix elf)
(rnrs io ports))
(define read-elf
(compose parse-elf get-bytevector-all))
(setenv "PATH" (string-join '(#$%bootstrap-gcc
#$%bootstrap-binutils)
"/bin:" 'suffix))
(invoke "gcc" "-O0" "-g" #$code "-o" "exe")
(copy-file "exe" "exe.debug")
(invoke "strip" "--only-keep-debug" "exe.debug")
(invoke "strip" "--strip-debug" "exe")
(invoke "objcopy" "--add-gnu-debuglink=exe.debug"
"exe")
(set-debuglink-crc "exe" #$debug)
(call-with-values (lambda ()
(elf-debuglink
(call-with-input-file "exe"
read-elf)))
(lambda (file crc)
(call-with-output-file #$output
(lambda (port)
(write (list file crc) port)))))))))
(mlet* %store-monad ((drv (gexp->derivation "debuglink" exp))
(x (built-derivations (list drv))))
(call-with-input-file (derivation->output-path drv)
(lambda (port)
(return (match (read port)
(("exe.debug" crc)
(= crc (debuglink-crc32 (open-input-string "a"))))
(x
(pk 'fail x #f)))))))))
(test-end "debug-link")