Merge branch 'master' into staging
This commit is contained in:
commit
173d291466
|
@ -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 \
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)))))
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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+)))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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.")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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.")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))))
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
2961
po/guix/de.po
2961
po/guix/de.po
File diff suppressed because it is too large
Load Diff
|
@ -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))
|
||||
|
|
|
@ -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")
|
Loading…
Reference in New Issue