Merge branch 'staging'

Conflicts:
	gnu/packages/admin.scm
	gnu/packages/commencement.scm
	gnu/packages/gdb.scm
	gnu/packages/llvm.scm
	gnu/packages/package-management.scm
	gnu/packages/tls.scm
This commit is contained in:
Maxim Cournoyer 2020-10-19 12:51:57 -04:00
commit 5e2140511c
No known key found for this signature in database
GPG key ID: 1260E46482E63562
414 changed files with 131682 additions and 64151 deletions

1
.gitignore vendored
View file

@ -74,6 +74,7 @@
/etc/guix-publish.conf /etc/guix-publish.conf
/etc/guix-publish.service /etc/guix-publish.service
/etc/init.d/guix-daemon /etc/init.d/guix-daemon
/etc/openrc/guix-daemon
/guix-daemon /guix-daemon
/guix/config.scm /guix/config.scm
/libformat.a /libformat.a

View file

@ -1,5 +1,5 @@
;; This is the list of OpenPGP keys currently authorized to sign commits in ;; This file, which is best viewed as -*- Scheme -*-, lists the OpenPGP keys
;; this repository. ;; currently authorized to sign commits in this repository.
(authorizations (authorizations
(version 0) (version 0)
@ -84,6 +84,8 @@
(name "lfam")) (name "lfam"))
("2AE3 1395 932B E642 FC0E D99C 9BED 6EDA 32E5 B0BC" ("2AE3 1395 932B E642 FC0E D99C 9BED 6EDA 32E5 B0BC"
(name "lsl88")) (name "lsl88"))
("8887 84C4 1459 ACCB 83E7 E84C 634C 6E89 79FA BEC2"
(name "m1gu3l"))
("CBF5 9755 CBE7 E7EF EF18 3FB1 DD40 9A15 D822 469D" ("CBF5 9755 CBE7 E7EF EF18 3FB1 DD40 9A15 D822 469D"
(name "marusich")) (name "marusich"))
("BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA" ("BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"

View file

@ -47,6 +47,18 @@ scripts/guix: scripts/guix.in Makefile
$(AM_V_GEN)$(do_subst) < "$(srcdir)/$@.in" > "$@-t" $(AM_V_GEN)$(do_subst) < "$(srcdir)/$@.in" > "$@-t"
$(AM_V_at)chmod a+x,a-w "$@-t" && mv -f "$@-t" "$@" $(AM_V_at)chmod a+x,a-w "$@-t" && mv -f "$@-t" "$@"
# This is our variant of the 'guile' executable, one that doesn't complain
# about locales.
pkglibexec_PROGRAMS = guile
guile_SOURCES = gnu/packages/aux-files/guile-launcher.c
guile_LDADD = $(GUILE_LIBS)
guile_CFLAGS = $(GUILE_CFLAGS)
# Have the 'guix' command refer to our 'guile'.
install-exec-hook:
$(SED) -i "$(DESTDIR)$(bindir)/guix" \
-e 's,^#![[:graph:]]\+,#!$(pkglibexecdir)/guile,g'
nodist_noinst_SCRIPTS = \ nodist_noinst_SCRIPTS = \
pre-inst-env \ pre-inst-env \
test-env test-env
@ -394,6 +406,7 @@ SCM_TESTS = \
tests/base16.scm \ tests/base16.scm \
tests/base32.scm \ tests/base32.scm \
tests/base64.scm \ tests/base64.scm \
tests/boot-parameters.scm \
tests/bournish.scm \ tests/bournish.scm \
tests/builders.scm \ tests/builders.scm \
tests/build-utils.scm \ tests/build-utils.scm \
@ -570,6 +583,7 @@ EXTRA_DIST += \
build-aux/hydra/guix-modular.scm \ build-aux/hydra/guix-modular.scm \
build-aux/cuirass/gnu-system.scm \ build-aux/cuirass/gnu-system.scm \
build-aux/cuirass/guix-modular.scm \ build-aux/cuirass/guix-modular.scm \
build-aux/cuirass/hurd-manifest.scm \
build-aux/cuirass/hydra-to-cuirass.scm \ build-aux/cuirass/hydra-to-cuirass.scm \
build-aux/check-final-inputs-self-contained.scm \ build-aux/check-final-inputs-self-contained.scm \
build-aux/check-channel-news.scm \ build-aux/check-channel-news.scm \
@ -832,9 +846,8 @@ release: dist-with-updated-version
-v1 --no-grafts --fallback -v1 --no-grafts --fallback
for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do \ for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do \
image=`$(top_builddir)/pre-inst-env \ image=`$(top_builddir)/pre-inst-env \
guix system disk-image \ guix system disk-image -t iso9660 \
--file-system-type=iso9660 \ --label="GUIX_$${system}_$(VERSION)" \
--label="GUIX_$${system}_$(VERSION)" \
--system=$$system --fallback \ --system=$$system --fallback \
gnu/system/install.scm` ; \ gnu/system/install.scm` ; \
if [ ! -f "$$image" ] ; then \ if [ ! -f "$$image" ] ; then \

View file

@ -0,0 +1,74 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;;
;;; This file defines a manifest with a selection of packages for Cuirass to
;;; build for GNU/Hurd.
;;;
;;; Code:
(use-modules (gnu)
(gnu system hurd)
(guix packages)
(guix utils)
(ice-9 match)
(srfi srfi-1))
(use-package-modules
base commencement compression file gawk gdb gettext guile
hurd less m4 package-management python ssh version-control)
(define (input->package input)
"Return the INPUT as package, or #f."
(match input
((label (and (? package?) package))
package)
((label (and (? package?) package . output))
(cons package output))
(_ #f)))
(define guix-dependencies
(filter-map input->package
(fold alist-delete (package-direct-inputs guix)
'("glibc-utf8-locales" "graphviz" "po4a"))))
(define (package-without-tests p)
(package/inherit p
(arguments
(substitute-keyword-arguments (package-arguments p)
((#:tests? _ #f) #f)))))
(packages->manifest
(cons*
;; where it all starts
hello
;; development utililities
diffutils file findutils gawk grep gzip less m4 openssh-sans-x tar xz
;; development packages
gcc-toolchain gdb-minimal git-minimal gnu-make
;; guix environment guix --without-tests=python-minimal --without-tests=gettext-minimal
(package-without-tests gettext-minimal)
(package-without-tests python-minimal)
(append
guix-dependencies
(delete guile-3.0 %base-packages/hurd))))

View file

@ -43,17 +43,25 @@ for SYSTEM. Use VERSION as the version identifier."
(define build (define build
(primitive-load (string-append source "/build-aux/build-self.scm"))) (primitive-load (string-append source "/build-aux/build-self.scm")))
`((derivation . ,(derivation-file-name (let ((drv (run-with-store store
(run-with-store store (build source #:version version #:system system
(build source #:version version #:system system #:pull-version 1
#:pull-version 1 #:guile-version "2.2"))))
#:guile-version "2.2")))) ;the latest 2.2.x `((derivation . ,(derivation-file-name drv)) ;the latest 2.2.x
(description . "Modular Guix") (log . ,(log-file store (derivation-file-name drv)))
(long-description (outputs . ,(filter-map (lambda (res)
. "This is the modular Guix package as produced by 'guix pull'.") (match res
(license . ,license:gpl3+) ((name . path)
(home-page . ,%guix-home-page-url) `(,name . ,path))))
(maintainers . (,%guix-bug-report-address))))) (derivation->output-paths drv)))
(nix-name . ,(derivation-name drv))
(system . ,(derivation-system drv))
(description . "Modular Guix")
(long-description
. "This is the modular Guix package as produced by 'guix pull'.")
(license . ,license:gpl3+)
(home-page . ,%guix-home-page-url)
(maintainers . (,%guix-bug-report-address))))))
(define (hydra-jobs store arguments) (define (hydra-jobs store arguments)
"Return Hydra jobs." "Return Hydra jobs."

View file

@ -105,6 +105,9 @@ if test "x$GUILE_EFFECTIVE_VERSION" = "x2.2"; then
PKG_CHECK_MODULES([GUILE], [guile-2.2 >= 2.2.3]) PKG_CHECK_MODULES([GUILE], [guile-2.2 >= 2.2.3])
fi fi
dnl Get CFLAGS and LDFLAGS for libguile.
GUILE_FLAGS
dnl Installation directories for .scm and .go files. dnl Installation directories for .scm and .go files.
guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION" guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
guileobjectdir="${libdir}/guile/$GUILE_EFFECTIVE_VERSION/site-ccache" guileobjectdir="${libdir}/guile/$GUILE_EFFECTIVE_VERSION/site-ccache"

View file

@ -33,6 +33,7 @@
(guix utils) (guix utils)
(git) (git)
(gnu packages base) (gnu packages base)
(gnu packages compression)
(gnu packages gawk) (gnu packages gawk)
(gnu packages gettext) (gnu packages gettext)
(gnu packages guile) (gnu packages guile)
@ -40,7 +41,10 @@
(gnu packages iso-codes) (gnu packages iso-codes)
(gnu packages texinfo) (gnu packages texinfo)
(gnu packages tex) (gnu packages tex)
(ice-9 match)
(srfi srfi-1)
(srfi srfi-19) (srfi srfi-19)
(srfi srfi-26)
(srfi srfi-71)) (srfi srfi-71))
(define file-append* (define file-append*
@ -204,9 +208,168 @@ content=\"width=device-width, initial-scale=1\" />"))
(setenv "XFAIL_TESTS" "htmlprag.scm") (setenv "XFAIL_TESTS" "htmlprag.scm")
#t)))))))) #t))))))))
(define (normalize-language-code language) ;XXX: deduplicate
;; Normalize LANGUAGE. For instance, "zh_CN" becomes "zh-cn".
(string-map (match-lambda
(#\_ #\-)
(chr chr))
(string-downcase language)))
(define* (html-manual-identifier-index manual base-url
#:key
(name "html-manual-identifier-index"))
"Return an index of all the identifiers that appear in MANUAL, a
makeinfo-generated manual. The index is a file that contains an alist; each
key is an identifier and the associated value is the URL reference pointing to
that identifier. The URL is constructed by concatenating BASE-URL to the
actual file name."
(define build
(with-extensions (list guile-lib/htmlprag-fixed)
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(htmlprag)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 ftw)
(ice-9 match)
(ice-9 threads)
(ice-9 pretty-print))
(define file-url
(let ((prefix (string-append #$manual "/")))
(lambda (file)
;; Return the URL for FILE.
(let ((file (string-drop file (string-length prefix)))
(base #$base-url))
(if (string-null? base)
file
(string-append base "/" file))))))
(define (underscore-decode str)
;; Decode STR, an "underscore-encoded" string as produced by
;; makeinfo for indexes, such as "_0025base_002dservices" for
;; "%base-services".
(let loop ((str str)
(result '()))
(match (string-index str #\_)
(#f
(string-concatenate-reverse (cons str result)))
(index
(let ((char (string->number
(substring str (+ index 1) (+ index 5))
16)))
(loop (string-drop str (+ index 5))
(append (list (string (integer->char char))
(string-take str index))
result)))))))
(define (anchor-id->key id)
;; Convert ID, an anchor ID such as
;; "index-pam_002dlimits_002dservice" to the corresponding key,
;; "pam-limits-service" in this example. Drop the suffix of
;; duplicate anchor IDs like "operating_002dsystem-1".
(let ((id (if (any (cut string-suffix? <> id)
'("-1" "-2" "-3" "-4" "-5"))
(string-drop-right id 2)
id)))
(underscore-decode
(string-drop id (string-length "index-")))))
(define* (collect-anchors file #:optional (anchors '()))
;; Collect the anchors that appear in FILE, a makeinfo-generated
;; file. Grab those from <dt> tags, which corresponds to
;; Texinfo @deftp, @defvr, etc. Return ANCHORS augmented with
;; more name/reference pairs.
(define string-or-entity?
(match-lambda
((? string?) #t)
(('*ENTITY* _ ...) #t)
(_ #f)))
(define (worthy-entry? lst)
;; Attempt to match:
;; Scheme Variable: <strong>x</strong>
;; but not:
;; <code>cups-configuration</code> parameter: …
(let loop ((lst lst))
(match lst
(((? string-or-entity?) rest ...)
(loop rest))
((('strong _ ...) _ ...)
#t)
(_ #f))))
(let ((shtml (call-with-input-file file html->shtml)))
(let loop ((shtml shtml)
(anchors anchors))
(match shtml
(('dt ('@ ('id id)) rest ...)
(if (and (string-prefix? "index-" id)
(worthy-entry? rest))
(alist-cons (anchor-id->key id)
(string-append (file-url file)
"#" id)
anchors)
anchors))
((tag ('@ _ ...) body ...)
(fold loop anchors body))
((tag body ...)
(fold loop anchors body))
(_ anchors)))))
(define (html-files directory)
;; Return the list of HTML files under DIRECTORY.
(map (cut string-append directory "/" <>)
(scandir #$manual (lambda (file)
(string-suffix? ".html" file)))))
(define anchors
(sort (concatenate
(n-par-map (parallel-job-count)
(cut collect-anchors <>)
(html-files #$manual)))
(match-lambda*
(((key1 . url1) (key2 . url2))
(if (string=? key1 key2)
(string<? url1 url2)
(string<? key1 key2))))))
(call-with-output-file #$output
(lambda (port)
(display ";; Identifier index for the manual.\n\n"
port)
(pretty-print anchors port)))))))
(computed-file name build))
(define* (html-identifier-indexes manual directory-suffix
#:key (languages %languages)
(manual-name %manual)
(base-url (const "")))
(map (lambda (language)
(let ((language (normalize-language-code language)))
(list language
(html-manual-identifier-index
(file-append manual "/" language directory-suffix)
(base-url language)
#:name (string-append manual-name "-html-index-"
language)))))
languages))
(define* (syntax-highlighted-html input (define* (syntax-highlighted-html input
#:key #:key
(name "highlighted-syntax") (name "highlighted-syntax")
(languages %languages)
(mono-node-indexes
(html-identifier-indexes input ""
#:languages
languages))
(split-node-indexes
(html-identifier-indexes input
"/html_node"
#:languages
languages))
(syntax-css-url (syntax-css-url
"/static/base/css/code.css")) "/static/base/css/code.css"))
"Return a derivation called NAME that processes all the HTML files in INPUT "Return a derivation called NAME that processes all the HTML files in INPUT
@ -341,78 +504,6 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
((? string? str) ((? string? str)
str)))) str))))
(define (underscore-decode str)
;; Decode STR, an "underscore-encoded" string as produced by
;; makeinfo for indexes, such as "_0025base_002dservices" for
;; "%base-services".
(let loop ((str str)
(result '()))
(match (string-index str #\_)
(#f
(string-concatenate-reverse (cons str result)))
(index
(let ((char (string->number
(substring str (+ index 1) (+ index 5))
16)))
(loop (string-drop str (+ index 5))
(append (list (string (integer->char char))
(string-take str index))
result)))))))
(define (anchor-id->key id)
;; Convert ID, an anchor ID such as
;; "index-pam_002dlimits_002dservice" to the corresponding key,
;; "pam-limits-service" in this example. Drop the suffix of
;; duplicate anchor IDs like "operating_002dsystem-1".
(let ((id (if (any (cut string-suffix? <> id)
'("-1" "-2" "-3" "-4" "-5"))
(string-drop-right id 2)
id)))
(underscore-decode
(string-drop id (string-length "index-")))))
(define* (collect-anchors file #:optional (vhash vlist-null))
;; Collect the anchors that appear in FILE, a makeinfo-generated
;; file. Grab those from <dt> tags, which corresponds to
;; Texinfo @deftp, @defvr, etc. Return VHASH augmented with
;; more name/reference pairs.
(define string-or-entity?
(match-lambda
((? string?) #t)
(('*ENTITY* _ ...) #t)
(_ #f)))
(define (worthy-entry? lst)
;; Attempt to match:
;; Scheme Variable: <strong>x</strong>
;; but not:
;; <code>cups-configuration</code> parameter: …
(let loop ((lst lst))
(match lst
(((? string-or-entity?) rest ...)
(loop rest))
((('strong _ ...) _ ...)
#t)
(_ #f))))
(let ((shtml (call-with-input-file file html->shtml)))
(let loop ((shtml shtml)
(vhash vhash))
(match shtml
(('dt ('@ ('id id)) rest ...)
(if (and (string-prefix? "index-" id)
(worthy-entry? rest))
(vhash-cons (anchor-id->key id)
(string-append (basename file)
"#" id)
vhash)
vhash))
((tag ('@ _ ...) body ...)
(fold loop vhash body))
((tag body ...)
(fold loop vhash body))
(_ vhash)))))
(define (process-html file anchors) (define (process-html file anchors)
;; Parse FILE and perform syntax highlighting for its Scheme ;; Parse FILE and perform syntax highlighting for its Scheme
;; snippets. Install the result to #$output. ;; snippets. Install the result to #$output.
@ -444,38 +535,59 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(define (html? file stat) (define (html? file stat)
(string-suffix? ".html" file)) (string-suffix? ".html" file))
(define language+node-anchors
(match-lambda
((language files ...)
(cons language
(fold (lambda (file vhash)
(let ((alist (call-with-input-file file read)))
;; Use 'fold-right' so that the first entry
;; wins (e.g., "car" from "Pairs" rather than
;; from "rnrs base" in the Guile manual).
(fold-right (match-lambda*
(((key . value) vhash)
(vhash-cons key value vhash)))
vhash
alist)))
vlist-null
files)))))
(define mono-node-anchors
;; List of language/vhash pairs, where each vhash maps an
;; identifier to the corresponding URL in a single-page manual.
(map language+node-anchors '#$mono-node-indexes))
(define multi-node-anchors
;; Likewise for split-node manuals.
(map language+node-anchors '#$split-node-indexes))
;; Install a UTF-8 locale so we can process UTF-8 files. ;; Install a UTF-8 locale so we can process UTF-8 files.
(setenv "GUIX_LOCPATH" (setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale")) #+(file-append glibc-utf8-locales "/lib/locale"))
(setlocale LC_ALL "en_US.utf8") (setlocale LC_ALL "en_US.utf8")
;; First process the mono-node 'guix.html' files. ;; First process the mono-node 'guix.html' files.
(n-par-for-each (parallel-job-count) (for-each (match-lambda
(lambda (mono) ((language . anchors)
(let ((anchors (collect-anchors mono))) (let ((files (find-files
(process-html mono anchors))) (string-append #$input "/" language)
(find-files "^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$")))
#$input (n-par-for-each (parallel-job-count)
"^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$")) (cut process-html <> anchors)
files))))
mono-node-anchors)
;; Next process the multi-node HTML files in two phases: (1) ;; Process the multi-node HTML files.
;; collect the list of anchors, and (2) perform (for-each (match-lambda
;; syntax-highlighting. ((language . anchors)
(let* ((multi (find-files #$input "^html_node$" (let ((files (find-files
#:directories? #t)) (string-append #$input "/" language
(anchors (n-par-map (parallel-job-count) "/html_node")
(lambda (multi) "\\.html$")))
(cons multi (n-par-for-each (parallel-job-count)
(fold collect-anchors vlist-null (cut process-html <> anchors)
(find-files multi html?)))) files))))
multi))) multi-node-anchors)
(n-par-for-each (parallel-job-count)
(lambda (file)
(let ((anchors (assoc-ref anchors (dirname file))))
(process-html file anchors)))
(append-map (lambda (multi)
(find-files multi html?))
multi)))
;; Last, copy non-HTML files as is. ;; Last, copy non-HTML files as is.
(for-each copy-as-is (for-each copy-as-is
@ -486,6 +598,8 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(define* (html-manual source #:key (languages %languages) (define* (html-manual source #:key (languages %languages)
(version "0.0") (version "0.0")
(manual %manual) (manual %manual)
(mono-node-indexes (map list languages))
(split-node-indexes (map list languages))
(date 1) (date 1)
(options %makeinfo-html-options)) (options %makeinfo-html-options))
"Return the HTML manuals built from SOURCE for all LANGUAGES, with the given "Return the HTML manuals built from SOURCE for all LANGUAGES, with the given
@ -574,6 +688,8 @@ makeinfo OPTIONS."
(let* ((name (string-append manual "-html-manual")) (let* ((name (string-append manual "-html-manual"))
(manual (computed-file name build))) (manual (computed-file name build)))
(syntax-highlighted-html manual (syntax-highlighted-html manual
#:mono-node-indexes mono-node-indexes
#:split-node-indexes split-node-indexes
#:name (string-append name "-highlighted")))) #:name (string-append name "-highlighted"))))
(define* (pdf-manual source #:key (languages %languages) (define* (pdf-manual source #:key (languages %languages)
@ -920,6 +1036,8 @@ languages:\n"
#:key (languages %languages) #:key (languages %languages)
(version "0.0") (version "0.0")
(date (time-second (current-time time-utc))) (date (time-second (current-time time-utc)))
(mono-node-indexes (map list %languages))
(split-node-indexes (map list %languages))
(manual %manual)) (manual %manual))
"Return the union of the HTML and PDF manuals, as well as the indexes." "Return the union of the HTML and PDF manuals, as well as the indexes."
(directory-union (string-append manual "-manual") (directory-union (string-append manual "-manual")
@ -930,7 +1048,12 @@ languages:\n"
#:version version #:version version
#:manual manual)) #:manual manual))
(list html-manual-indexes (list html-manual-indexes
html-manual pdf-manual)) (lambda (source . args)
(apply html-manual source
#:mono-node-indexes mono-node-indexes
#:split-node-indexes split-node-indexes
args))
pdf-manual))
#:copy? #t)) #:copy? #t))
(define (latest-commit+date directory) (define (latest-commit+date directory)
@ -943,18 +1066,144 @@ commit date (an integer)."
;; TODO: Use (git describe) when it's widely available. ;; TODO: Use (git describe) when it's widely available.
(values (oid->string oid) (commit-time commit)))) (values (oid->string oid) (commit-time commit))))
;;;
;;; Guile manual.
;;;
(define guile-manual
;; The Guile manual as HTML, including both the mono-node "guile.html" and
;; the split-node "html_node" directory.
(let ((guile guile-3.0-latest))
(computed-file (string-append "guile-manual-" (package-version guile))
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(ice-9 match))
(setenv "PATH"
(string-append #+tar "/bin:"
#+xz "/bin:"
#+texinfo "/bin"))
(invoke "tar" "xf" #$(package-source guile))
(mkdir-p (string-append #$output "/en/html_node"))
(let* ((texi (find-files "." "^guile\\.texi$"))
(documentation (match texi
((file) (dirname file)))))
(with-directory-excursion documentation
(invoke "makeinfo" "--html" "--no-split"
"-o" (string-append #$output
"/en/guile.html")
"guile.texi")
(invoke "makeinfo" "--html" "-o" "split"
"guile.texi")
(copy-recursively
"split"
(string-append #$output "/en/html_node")))))))))
(define %guile-manual-base-url
"https://www.gnu.org/software/guile/manual")
(define (for-all-languages index)
(map (lambda (language)
(list language index))
%languages))
(define guile-mono-node-indexes
;; The Guile manual is only available in English so use the same index in
;; all languages.
(for-all-languages
(html-manual-identifier-index (file-append guile-manual "/en")
%guile-manual-base-url
#:name "guile-html-index-en")))
(define guile-split-node-indexes
(for-all-languages
(html-manual-identifier-index (file-append guile-manual "/en/html_node")
(string-append %guile-manual-base-url
"/html_node")
#:name "guile-html-index-en")))
(define (merge-index-alists alist1 alist2)
"Merge ALIST1 and ALIST2, both of which are list of tuples like:
(LANGUAGE INDEX1 INDEX2 ...)
where LANGUAGE is a string like \"en\" and INDEX1 etc. are indexes as returned
by 'html-identifier-indexes'."
(let ((languages (delete-duplicates
(append (match alist1
(((languages . _) ...)
languages))
(match alist2
(((languages . _) ...)
languages))))))
(map (lambda (language)
(cons language
(append (or (assoc-ref alist1 language) '())
(or (assoc-ref alist2 language) '()))))
languages)))
(let* ((root (canonicalize-path (let* ((root (canonicalize-path
(string-append (current-source-directory) "/.."))) (string-append (current-source-directory) "/..")))
(commit date (latest-commit+date root))) (commit date (latest-commit+date root))
(version (or (getenv "GUIX_MANUAL_VERSION")
(string-take commit 7)))
(select? (let ((vcs? (git-predicate root)))
(lambda (file stat)
(and (vcs? file stat)
;; Filter out this file.
(not (string=? (basename file) "build.scm"))))))
(source (local-file root "guix" #:recursive? #t
#:select? select?)))
(define guix-manual
(html-manual source
#:manual "guix"
#:version version
#:date date))
(define guix-mono-node-indexes
;; Alist of indexes for GUIX-MANUAL, where each key is a language code and
;; each value is a file-like object containing the identifier index.
(html-identifier-indexes guix-manual ""
#:manual-name "guix"
#:base-url (if (string=? %manual "guix")
(const "")
(cut string-append "/manual/" <>))
#:languages %languages))
(define guix-split-node-indexes
;; Likewise for the split-node variant of GUIX-MANUAL.
(html-identifier-indexes guix-manual "/html_node"
#:manual-name "guix"
#:base-url (if (string=? %manual "guix")
(const "")
(cut string-append "/manual/" <>
"/html_node"))
#:languages %languages))
(define mono-node-indexes
(merge-index-alists guix-mono-node-indexes guile-mono-node-indexes))
(define split-node-indexes
(merge-index-alists guix-split-node-indexes guile-split-node-indexes))
(format (current-error-port) (format (current-error-port)
"building manual from work tree around commit ~a, ~a~%" "building manual from work tree around commit ~a, ~a~%"
commit commit
(let* ((time (make-time time-utc 0 date)) (let* ((time (make-time time-utc 0 date))
(date (time-utc->date time))) (date (time-utc->date time)))
(date->string date "~e ~B ~Y"))) (date->string date "~e ~B ~Y")))
(pdf+html-manual (local-file root "guix" #:recursive? #t
#:select? (git-predicate root)) (pdf+html-manual source
#:version (or (getenv "GUIX_MANUAL_VERSION") ;; Always use the identifier indexes of GUIX-MANUAL and
(string-take commit 7)) ;; GUILE-MANUAL. Both "guix" and "guix-cookbook" can
;; contain links to definitions that appear in either of
;; these two manuals.
#:mono-node-indexes mono-node-indexes
#:split-node-indexes split-node-indexes
#:version version
#:date date)) #:date date))

View file

@ -121,8 +121,9 @@ more information.
Then, run @command{./configure} as usual. Make sure to pass Then, run @command{./configure} as usual. Make sure to pass
@code{--localstatedir=@var{directory}} where @var{directory} is the @code{--localstatedir=@var{directory}} where @var{directory} is the
@code{localstatedir} value used by your current installation (@pxref{The @code{localstatedir} value used by your current installation (@pxref{The
Store}, for information about this). We recommend to use the value Store}, for information about this), usually @file{/var}. Note that you
@code{/var}. will probably not run @command{make install} at the end (you don't have
to) but it's still important to pass the right @code{localstatedir}.
Finally, you have to invoke @code{make check} to run tests Finally, you have to invoke @code{make check} to run tests
(@pxref{Running the Test Suite}). If anything (@pxref{Running the Test Suite}). If anything
@ -159,13 +160,11 @@ with all the dependencies available (@pxref{Building from Git}), and then
simply prefix each command with simply prefix each command with
@command{./pre-inst-env} (the @file{pre-inst-env} script lives in the @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the
top build tree of Guix; it is generated by @command{./configure}). top build tree of Guix; it is generated by @command{./configure}).
An example@footnote{The @option{-E} flag to As an example, here is how you would build the @code{hello} package as
@command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set defined in your working tree (this assumes @command{guix-daemon} is
such that @command{guix-daemon} and the tools it uses can find the Guile already running on your system; it's OK if it's a different version):
modules they need.}:
@example @example
$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
$ ./pre-inst-env guix build hello $ ./pre-inst-env guix build hello
@end example @end example
@ -200,6 +199,17 @@ scheme@@(guile-user)> (length snakes)
$1 = 361 $1 = 361
@end example @end example
If you are hacking on the daemon and its supporting code or if
@command{guix-daemon} is not already running on your system, you can
launch it straight from the build tree@footnote{The @option{-E} flag to
@command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set
such that @command{guix-daemon} and the tools it uses can find the Guile
modules they need.}:
@example
$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
@end example
The @command{pre-inst-env} script sets up all the environment variables The @command{pre-inst-env} script sets up all the environment variables
necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}. necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}.
@ -353,7 +363,7 @@ Once your package builds correctly, please send us a patch
(@pxref{Submitting Patches}). Well, if you need help, we will be happy to (@pxref{Submitting Patches}). Well, if you need help, we will be happy to
help you too. Once the patch is committed in the Guix repository, the help you too. Once the patch is committed in the Guix repository, the
new package automatically gets built on the supported platforms by new package automatically gets built on the supported platforms by
@url{@value{SUBSTITUTE-SERVER}, our continuous integration system}. @url{@value{SUBSTITUTE-URL}, our continuous integration system}.
@cindex substituter @cindex substituter
Users can obtain the new package definition simply by running Users can obtain the new package definition simply by running
@ -1016,7 +1026,7 @@ changes). This branch is intended to be merged in @code{master} every
6 months or so. 6 months or so.
@end table @end table
All these branches are @uref{@value{SUBSTITUTE-SERVER}, All these branches are @uref{@value{SUBSTITUTE-URL},
tracked by our build farm} and merged into @code{master} once tracked by our build farm} and merged into @code{master} once
everything has been successfully built. This allows us to fix issues everything has been successfully built. This allows us to fix issues
before they hit users, and to reduce the window during which pre-built before they hit users, and to reduce the window during which pre-built

View file

@ -128,8 +128,9 @@ REPL.
@item @item
Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in
Lisp lingo). An expression can be a literal such as numbers and strings, or a Lisp lingo). An expression can be a literal such as numbers and strings, or a
compound which is a parenthesized list of compounds and literals. @code{#t} compound which is a parenthesized list of compounds and literals. @code{#true}
and @code{#f} stand for the Booleans ``true'' and ``false'', respectively. and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the
Booleans ``true'' and ``false'', respectively.
Examples of valid expressions: Examples of valid expressions:
@ -249,8 +250,10 @@ definitions.
@end lisp @end lisp
@item @item
The keyword syntax is @code{#:}; it is used to create unique identifiers. @dfn{Keywords} are typically used to identify the named parameters of a
@pxref{Keywords,,, guile, GNU Guile Reference Manual}. procedure. They are prefixed by @code{#:} (hash, colon) followed by
alphanumeric characters: @code{#:like-this}.
@xref{Keywords,,, guile, GNU Guile Reference Manual}.
@item @item
The percentage @code{%} is typically used for read-only global variables in The percentage @code{%} is typically used for read-only global variables in
@ -791,11 +794,11 @@ another, more sophisticated package (slightly modified from the source):
(snippet '(begin (snippet '(begin
;; Remove bundled software. ;; Remove bundled software.
(delete-file-recursively "deps") (delete-file-recursively "deps")
#t)))) #true))))
(build-system cmake-build-system) (build-system cmake-build-system)
(outputs '("out" "debug")) (outputs '("out" "debug"))
(arguments (arguments
`(#:tests? #t ; Run the test suite (this is the default) `(#:tests? #true ; Run the test suite (this is the default)
#:configure-flags '("-DUSE_SHA1DC=ON") ; SHA-1 collision detection #:configure-flags '("-DUSE_SHA1DC=ON") ; SHA-1 collision detection
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
@ -806,12 +809,12 @@ another, more sophisticated package (slightly modified from the source):
(substitute* "tests/clar/fs.h" (substitute* "tests/clar/fs.h"
(("/bin/cp") (which "cp")) (("/bin/cp") (which "cp"))
(("/bin/rm") (which "rm"))) (("/bin/rm") (which "rm")))
#t)) #true))
;; Run checks more verbosely. ;; Run checks more verbosely.
(replace 'check (replace 'check
(lambda _ (invoke "./libgit2_clar" "-v" "-Q"))) (lambda _ (invoke "./libgit2_clar" "-v" "-Q")))
(add-after 'unpack 'make-files-writable-for-tests (add-after 'unpack 'make-files-writable-for-tests
(lambda _ (for-each make-file-writable (find-files "." ".*"))))))) (lambda _ (for-each make-file-writable (find-files "." ".*")))))))
(inputs (inputs
`(("libssh2" ,libssh2) `(("libssh2" ,libssh2)
("http-parser" ,http-parser) ("http-parser" ,http-parser)
@ -1029,7 +1032,7 @@ If you want to know more about what happens during those phases, consult the
associated procedures. associated procedures.
For instance, as of this writing the definition of @code{unpack} for the GNU build For instance, as of this writing the definition of @code{unpack} for the GNU build
system is system is:
@lisp @lisp
(define* (unpack #:key source #:allow-other-keys) (define* (unpack #:key source #:allow-other-keys)
@ -1044,13 +1047,13 @@ working directory."
;; Preserve timestamps (set to the Epoch) on the copied tree so that ;; Preserve timestamps (set to the Epoch) on the copied tree so that
;; things work deterministically. ;; things work deterministically.
(copy-recursively source "." (copy-recursively source "."
#:keep-mtime? #t)) #:keep-mtime? #true))
(begin (begin
(if (string-suffix? ".zip" source) (if (string-suffix? ".zip" source)
(invoke "unzip" source) (invoke "unzip" source)
(invoke "tar" "xvf" source)) (invoke "tar" "xvf" source))
(chdir (first-subdirectory ".")))) (chdir (first-subdirectory "."))))
#t) #true)
@end lisp @end lisp
Note the @code{chdir} call: it changes the working directory to where the source was Note the @code{chdir} call: it changes the working directory to where the source was
@ -1066,16 +1069,16 @@ the following forms:
@itemize @itemize
@item @item
@code{(add-before PHASE NEW-PHASE PROCEDURE)}: Run @code{PROCEDURE} named @code{NEW-PHASE} before @code{PHASE}. @code{(add-before @var{phase} @var{new-phase} @var{procedure})}: Run @var{procedure} named @var{new-phase} before @var{phase}.
@item @item
@code{(add-after PHASE NEW-PHASE PROCEDURE)}: Same, but afterwards. @code{(add-after @var{phase} @var{new-phase} @var{procedure})}: Same, but afterwards.
@item @item
@code{(replace PHASE PROCEDURE)}. @code{(replace @var{phase} @var{procedure})}.
@item @item
@code{(delete PHASE)}. @code{(delete @var{phase})}.
@end itemize @end itemize
The @code{PROCEDURE} supports the keyword arguments @code{inputs} and @code{outputs}. Each The @var{procedure} supports the keyword arguments @code{inputs} and @code{outputs}. Each
input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced
by their name in those variables. Thus @code{(assoc-ref outputs "out")} is the store by their name in those variables. Thus @code{(assoc-ref outputs "out")} is the store
directory of the main output of the package. A phase procedure may look like directory of the main output of the package. A phase procedure may look like
@ -1083,16 +1086,16 @@ this:
@lisp @lisp
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let (((bash-directory (assoc-ref inputs "bash")) (let ((bash-directory (assoc-ref inputs "bash"))
(output-directory (assoc-ref outputs "out")) (output-directory (assoc-ref outputs "out"))
(doc-directory (assoc-ref outputs "doc")) (doc-directory (assoc-ref outputs "doc")))
; ... ;; ...
#t) #true))
@end lisp @end lisp
The procedure must return @code{#t} on success. It's brittle to rely on the return The procedure must return @code{#true} on success. It's brittle to rely on the return
value of the last expression used to tweak the phase because there is no value of the last expression used to tweak the phase because there is no
guarantee it would be a @code{#t}. Hence the trailing @code{#t} to ensure the right value guarantee it would be a @code{#true}. Hence the trailing @code{#true} to ensure the right value
is returned on success. is returned on success.
@subsubsection Code staging @subsubsection Code staging
@ -1118,7 +1121,7 @@ Some of those functions can be found in
@samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Most of them mirror the behaviour @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Most of them mirror the behaviour
of the traditional Unix system commands: of the traditional Unix system commands:
@table @asis @table @code
@item which @item which
Like the @samp{which} system command. Like the @samp{which} system command.
@item find-files @item find-files
@ -1142,6 +1145,9 @@ then restore the previous working directory.
A ``@command{sed}-like'' function. A ``@command{sed}-like'' function.
@end table @end table
@xref{Build Utilities,,, guix, GNU Guix Reference Manual}, for more
information on these utilities.
@subsubsection Module prefix @subsubsection Module prefix
The license in our last example needs a prefix: this is because of how the The license in our last example needs a prefix: this is because of how the
@ -1352,6 +1358,7 @@ reference.
* Running Guix on a Linode Server:: Running Guix on a Linode Server * Running Guix on a Linode Server:: Running Guix on a Linode Server
* Setting up a bind mount:: Setting up a bind mount in the file-systems definition. * Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
* Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor. * Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
@end menu @end menu
@node Customizing the Kernel @node Customizing the Kernel
@ -1384,8 +1391,8 @@ creates a package.
#:key #:key
;; A function that takes an arch and a variant. ;; A function that takes an arch and a variant.
;; See kernel-config for an example. ;; See kernel-config for an example.
(extra-version #f) (extra-version #false)
(configuration-file #f) (configuration-file #false)
(defconfig "defconfig") (defconfig "defconfig")
(extra-options %default-extra-linux-options) (extra-options %default-extra-linux-options)
(patches (list %boot-logo-patch))) (patches (list %boot-logo-patch)))
@ -1428,7 +1435,7 @@ the @code{make-linux-libre} package definition:
(begin (begin
(copy-file config ".config") (copy-file config ".config")
(chmod ".config" #o666)) (chmod ".config" #o666))
(invoke "make" ,defconfig)) (invoke "make" ,defconfig)))
@end lisp @end lisp
Below is a sample kernel package. The @code{linux-libre} package is nothing Below is a sample kernel package. The @code{linux-libre} package is nothing
@ -1459,7 +1466,7 @@ it:
@lisp @lisp
(define %default-extra-linux-options (define %default-extra-linux-options
`(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t) ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #true)
;; Modules required for initrd: ;; Modules required for initrd:
("CONFIG_NET_9P" . m) ("CONFIG_NET_9P" . m)
("CONFIG_NET_9P_VIRTIO" . m) ("CONFIG_NET_9P_VIRTIO" . m)
@ -1476,9 +1483,9 @@ it:
(string-join (map (match-lambda (string-join (map (match-lambda
((option . 'm) ((option . 'm)
(string-append option "=m")) (string-append option "=m"))
((option . #t) ((option . #true)
(string-append option "=y")) (string-append option "=y"))
((option . #f) ((option . #false)
(string-append option "=n"))) (string-append option "=n")))
options) options)
"\n")) "\n"))
@ -1494,7 +1501,7 @@ And in the custom configure script from the `make-linux-libre` package:
(display extra-configuration port) (display extra-configuration port)
(close-port port)) (close-port port))
(invoke "make" "oldconfig")))) (invoke "make" "oldconfig")
@end lisp @end lisp
So by not providing a configuration-file the @file{.config} starts blank, and So by not providing a configuration-file the @file{.config} starts blank, and
@ -1865,7 +1872,7 @@ is below. Save the resulting file as @file{guix-config.scm}.
(bootloader (bootloader
(bootloader (bootloader
(inherit grub-bootloader) (inherit grub-bootloader)
(installer #~(const #t)))))) (installer #~(const #true))))))
(file-systems (cons (file-system (file-systems (cons (file-system
(device "/dev/sda") (device "/dev/sda")
(mount-point "/") (mount-point "/")
@ -1897,7 +1904,7 @@ is below. Save the resulting file as @file{guix-config.scm}.
(service openssh-service-type (service openssh-service-type
(openssh-configuration (openssh-configuration
(openssh openssh-sans-x) (openssh openssh-sans-x)
(password-authentication? #f) (password-authentication? #false)
(authorized-keys (authorized-keys
`(("janedoe" ,(local-file "janedoe_rsa.pub")) `(("janedoe" ,(local-file "janedoe_rsa.pub"))
("root" ,(local-file "janedoe_rsa.pub")))))) ("root" ,(local-file "janedoe_rsa.pub"))))))
@ -2113,6 +2120,63 @@ sudo herd set-http-proxy guix-daemon http://localhost:9250
guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion … guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion …
@end example @end example
@node Setting up NGINX with Lua
@section Setting up NGINX with Lua
@cindex nginx, lua, openresty, resty
NGINX could be extended with Lua scripts.
Guix provides NGINX service with ability to load Lua module and specific
Lua packages, and reply to requests by evaluating Lua scripts.
The following example demonstrates system definition with configuration
to evaluate @file{index.lua} Lua script on HTTP request to
@uref{http://localhost/hello} endpoint:
@example
local shell = require "resty.shell"
local stdin = ""
local timeout = 1000 -- ms
local max_size = 4096 -- byte
local ok, stdout, stderr, reason, status =
shell.run([[/run/current-system/profile/bin/ls /tmp]], stdin, timeout, max_size)
ngx.say(stdout)
@end example
@lisp
(use-modules (gnu))
(use-service-modules #;… web)
(use-package-modules #;… lua)
(operating-system
;; …
(services
;; …
(service nginx-service-type
(nginx-configuration
(modules
(list
(file-append nginx-lua-module "/etc/nginx/modules/ngx_http_lua_module.so")))
(lua-package-path (list lua-resty-core
lua-resty-lrucache
lua-resty-signal
lua-tablepool
lua-resty-shell))
(lua-package-cpath (list lua-resty-signal))
(server-blocks
(list (nginx-server-configuration
(server-name '("localhost"))
(listen '("80"))
(root "/etc")
(locations (list
(nginx-location-configuration
(uri "/hello")
(body (list #~(format #f "content_by_lua_file ~s;"
#$(local-file "index.lua"))))))))))))))
@end lisp
@c ********************************************************************* @c *********************************************************************
@node Advanced package management @node Advanced package management
@chapter Advanced package management @chapter Advanced package management

File diff suppressed because it is too large Load diff

View file

@ -175,8 +175,8 @@ corresponding to the top-level definition containing the staged changes."
(let ((old-values (get-values old field)) (let ((old-values (get-values old field))
(new-values (get-values new field))) (new-values (get-values new field)))
(or (equal? old-values new-values) (or (equal? old-values new-values)
(let ((removed (lset-difference eq? old-values new-values)) (let ((removed (lset-difference equal? old-values new-values))
(added (lset-difference eq? new-values old-values))) (added (lset-difference equal? new-values old-values)))
(format port (format port
"[~a]: ~a~%" field "[~a]: ~a~%" field
(match (list (map symbol->string removed) (match (list (map symbol->string removed)

View file

@ -27,8 +27,9 @@ _guix_complete_command ()
if [ -z "$_guix_commands" ] if [ -z "$_guix_commands" ]
then then
# Cache the list of commands to speed things up. # Cache the list of commands to speed things up.
_guix_commands="$(guix --help 2> /dev/null \ _guix_commands="$(guix --help 2> /dev/null \
| grep '^ ' | cut -c 2-)" | grep '^ ' \
| sed '-es/^ *\([a-z-]\+\).*$/\1/g')"
fi fi
COMPREPLY=($(compgen -W "$_guix_commands" -- "$word_at_point")) COMPREPLY=($(compgen -W "$_guix_commands" -- "$word_at_point"))
} }
@ -181,7 +182,7 @@ _guix_complete ()
*) *)
if _guix_is_command "package" if _guix_is_command "package"
then then
if _guix_is_dash_L || _guix_is_dash_m if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p
then then
_guix_complete_file _guix_complete_file
elif _guix_is_removing elif _guix_is_removing

View file

@ -4,6 +4,8 @@
# Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> # Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> # Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
# Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> # Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
# Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
# Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -53,6 +55,7 @@ REQUIRE=(
PAS=$'[ \033[32;1mPASS\033[0m ] ' PAS=$'[ \033[32;1mPASS\033[0m ] '
ERR=$'[ \033[31;1mFAIL\033[0m ] ' ERR=$'[ \033[31;1mFAIL\033[0m ] '
WAR=$'[ \033[33;1mWARN\033[0m ] '
INF="[ INFO ] " INF="[ INFO ] "
DEBUG=0 DEBUG=0
@ -150,6 +153,10 @@ chk_init_sys()
_msg "${INF}init system is: sysv-init" _msg "${INF}init system is: sysv-init"
INIT_SYS="sysv-init" INIT_SYS="sysv-init"
return 0 return 0
elif [[ $(openrc --version 2>/dev/null) =~ \(OpenRC\) ]]; then
_msg "${INF}init system is: OpenRC"
INIT_SYS="openrc"
return 0
else else
INIT_SYS="NA" INIT_SYS="NA"
_err "${ERR}Init system could not be detected." _err "${ERR}Init system could not be detected."
@ -194,6 +201,19 @@ chk_sys_arch()
ARCH_OS="${arch}-${os}" ARCH_OS="${arch}-${os}"
} }
chk_sys_nscd()
{ # Check if nscd is up and suggest to start it or install it
if [ "$(type -P pidof)" ]; then
if [ ! "$(pidof nscd)" ]; then
_msg "${WAR}We recommend installing and/or starting your distribution 'nscd' service"
_msg "${WAR}Please read 'info guix \"Application Setup\"' about \"Name Service Switch\""
fi
else
_msg "${INF}We cannot determine if your distribution 'nscd' service is running"
_msg "${INF}Please read 'info guix \"Application Setup\"' about \"Name Service Switch\""
fi
}
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
#+MAIN #+MAIN
@ -212,7 +232,7 @@ guix_get_bin_list()
| sort -Vu)") | sort -Vu)")
latest_ver="$(echo "$bin_ver_ls" \ latest_ver="$(echo "$bin_ver_ls" \
| grep -oP "([0-9]{1,2}\.){2}[0-9]{1,2}" \ | grep -oE "([0-9]{1,2}\.){2}[0-9]{1,2}" \
| tail -n1)" | tail -n1)"
default_ver="guix-binary-${latest_ver}.${ARCH_OS}" default_ver="guix-binary-${latest_ver}.${ARCH_OS}"
@ -268,8 +288,7 @@ sys_create_store()
_debug "--- [ $FUNCNAME ] ---" _debug "--- [ $FUNCNAME ] ---"
cd "$tmp_path" cd "$tmp_path"
tar --warning=no-timestamp \ tar --extract \
--extract \
--file "$pkg" && --file "$pkg" &&
_msg "${PAS}unpacked archive" _msg "${PAS}unpacked archive"
@ -384,6 +403,16 @@ sys_enable_guix_daemon()
service guix-daemon start; } && service guix-daemon start; } &&
_msg "${PAS}enabled Guix daemon via sysv" _msg "${PAS}enabled Guix daemon via sysv"
;; ;;
openrc)
{ mkdir -p /etc/init.d;
cp "${ROOT_HOME}/.config/guix/current/etc/openrc/guix-daemon" \
/etc/init.d/guix-daemon;
chmod 775 /etc/init.d/guix-daemon;
rc-update add guix-daemon default &&
rc-service guix-daemon start; } &&
_msg "${PAS}enabled Guix daemon via OpenRC"
;;
NA|*) NA|*)
_msg "${ERR}unsupported init system; run the daemon manually:" _msg "${ERR}unsupported init system; run the daemon manually:"
echo " ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild" echo " ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild"
@ -445,6 +474,26 @@ export XDG_DATA_DIRS="$GUIX_PROFILE/share:${XDG_DATA_DIRS:-/usr/local/share/:/us
EOF EOF
} }
sys_create_shell_completion()
{ # Symlink supported shell completions system-wide
var_guix=/var/guix/profiles/per-user/root/current-guix
bash_completion=/etc/bash_completion.d
zsh_completion=/usr/share/zsh/site-functions
fish_completion=/usr/share/fish/vendor_completions.d
{ # Just in case
for dir_shell in $bash_completion $zsh_completion $fish_completion; do
[ -d "$dir_shell" ] || mkdir -p $dir_shell
done;
ln -sf ${var_guix}/etc/bash_completion.d/* "$bash_completion";
ln -sf ${var_guix}/share/zsh/site-functions/* "$zsh_completion";
ln -sf ${var_guix}/share/fish/vendor_completions.d/* "$fish_completion"; } &&
_msg "${PAS}installed shell completion"
}
welcome() welcome()
{ {
cat<<"EOF" cat<<"EOF"
@ -488,6 +537,7 @@ main()
chk_gpg_keyring chk_gpg_keyring
chk_init_sys chk_init_sys
chk_sys_arch chk_sys_arch
chk_sys_nscd
_msg "${INF}system is ${ARCH_OS}" _msg "${INF}system is ${ARCH_OS}"
@ -502,6 +552,7 @@ main()
sys_enable_guix_daemon sys_enable_guix_daemon
sys_authorize_build_farms sys_authorize_build_farms
sys_create_init_profile sys_create_init_profile
sys_create_shell_completion
_msg "${INF}cleaning up ${tmp_path}" _msg "${INF}cleaning up ${tmp_path}"
rm -r "${tmp_path}" rm -r "${tmp_path}"

View file

@ -2,6 +2,11 @@
;; ;;
;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;; Copyright © 2019, 2020 Julien Lepiller <julien@lepiller.eu>
;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de>
;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@ -13,8 +18,297 @@
(channel-news (channel-news
(version 0) (version 0)
(entry (commit "abd7a474615353149a44f4504f0b4b248dcc0716")
(title (en "New @option{--with-c-toolchain} package transformation option")
(de "Neue Paketumwandlungsoption @option{--with-c-toolchain}")
(fr "Nouvelle option de transformation @option{--with-c-toolchain}"))
(body
(en "The new @option{--with-c-toolchain} package transformation
options provides an easy way for developers to rebuild their favorite packages
with the C/C++ tool chain of their choice instead of the default one.
For example, the following command rebuilds the @code{fftw} and @code{fftwf}
packages as well as every package that depends on them, up to and including
@code{octave-cli}, using GCC version 10 (currently GCC 7.5 is used by
default):
@example
guix build octave-cli \\
--with-c-toolchain=fftw=gcc-toolchain@@10 \\
--with-c-toolchain=fftwf=gcc-toolchain@@10
@end example
Run @command{info \"(guix) Package Transformation Options\"} for more info.")
(de "Die neue Paketumwandlungsoption @option{--with-c-toolchain}
bietet Entwicklern die Möglichkeit, leicht ihre Lieblingspakete mit der
selbstgewählten Toolchain für C/C++ anstelle der vorgegebenen neu zu
erstellen.
Zum Beispiel werden mit folgendem Befehl die Pakete @code{fftw} und
@code{fftwf} sowie alle davon abhängigen Pakete bis einschließlich
@code{octave-cli} mit Version 10 der GCC erstellt (vorgegeben wäre zurzeit,
GCC 7.5 zu benutzen):
@example
guix build octave-cli \\
--with-c-toolchain=fftw=gcc-toolchain@@10 \\
--with-c-toolchain=fftwf=gcc-toolchain@@10
@end example
Führen Sie für mehr Informationen @command{info \"(guix.de)
Paketumwandlungsoptionen\"} aus.")
(fr "La nouvelle option de transformation de paquets
@option{--with-c-toolchain} permet aux développeur·euses de recompiler leurs
paquets préférés avec la chaîne d'outils C/C++ de leur choix à la place de
celle par défaut.
Par exemple, la commande ci-dessous recompile @code{fftw}, @code{fftwf} et
tous les paquets qui en dépendent, jusqu @code{octave-cli} inclus, avec GCC
10 (actuellement c'est GCC 7.5 qui est utilisé par défaut):
@example
guix build octave-cli \\
--with-c-toolchain=fftw=gcc-toolchain@@10 \\
--with-c-toolchain=fftwf=gcc-toolchain@@10
@end example
Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
plus de détails.")))
(entry (commit "8e1907a72430aa989125b053573ef0897c480697")
(title (en "Package transformation options now recorded in profiles")
(es "Las opciones de transformación de paquetes ahora se
quedan registradas en el perfil")
(de "Paketumwandlungsoptionen werden nun in Profilen gesichert")
(fr "Options de transformation sauvegardées dans les profils"))
(body
(en "When installing packages in a profile, package transformation
options such as @option{--with-input} are now recorded in the profile. When
you eventually run @command{guix upgrade}, those transformations will be
automatically applied to the upgraded packages.
Run @command{info \"(guix) Package Transformation Options\"} for more info.")
(es "Si durante la instalación de paquetes en un perfil se utilizaron
opciones de transformación de paquetes, como por ejemplo
@option{--with-input}, éstas se registran en el perfil. Cuando vuelva a
ejecutar @command{guix upgrade}, dichas transformaciones se aplicarán
automáticamente a los paquetes actualizados.
Ejecute @command{info \"(guix.es) Opciones de transformación de paquetes\"}
para obtener más información.")
(de "Wenn Sie ein Paket in ein Profil installieren, werden nun
Paketumwandlungsoptionen wie @option{--with-input} im Profil gespeichert.
Sobald Sie später @command{guix upgrade} ausführen, werden dieselben
Umwandlungen automatisch auf die aktualisierten Pakete angewandt.
Führen Sie für mehr Informationen @command{info \"(guix.de)
Paketumwandlungsoptionen\"} aus.")
(fr "Lorsqu'on installe des paquets dans un profil, les options de
transformation telles que @option{--with-input} sont désormais enregistrées
dans le profil. Quand on le met plus tard à jour avec @command{guix upgrade},
ces transformations sont automatiquement appliquées aux nouveaux paquets.
Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
plus de détails.")))
(entry (commit "313f492657f1d0863c641fa5ee7f5b7028e27c94")
(title (en "New @option{--image-type} option for @command{guix system disk-image}.")
(es "Nueva opción @option{--image-type} para @command{guix system disk-image}.")
(de "Neue Option @option{--image-type} für @command{guix system disk-image}.")
(fr "Nouvelle option @option{--image-type} pour @command{guix system disk-image}."))
(body
(en "The @option{--file-system-type} option for @command{guix system
disk-image} command has been replaced by the new @option{--image-type} option.
By default, @code{raw} disk images are produced, but @code{hurd-qcow2},
@code{hurd-raw}, @code{uncompressed-iso9660} and @code{iso9660} image types
are also available.
The @option{--list-image-types} option lists all the available image types.")
(es "La opción @option{--file-system-type} de @command{guix system
disk-image} se ha sustituido por la nueva opción @option{--image-type}. De
manera predeterminada se producen imágenes en formato crudo (@code{raw}) pero
también están disponibles los tipos de imagen @code{hurd-qcow2},
@code{hurd-raw}, @code{uncompressed-iso9660} y @code{iso9660}.
La opción @option{--list-image-types} muestra una lista con todos los tipos
de imagen disponibles.")
(de "Anstelle der Befehlszeilenoption @option{--file-system-type} für
@command{guix system disk-image} gibt es nun die neue Option
@option{--image-type}. In der Vorgabeeinstellung @code{raw} werden rohe
Disk-Images erzeugt, aber es können auch die Abbildtypen @code{hurd-qcow2},
@code{hurd-raw}, @code{uncompressed-iso9660} und @code{iso9660} ausgewählt
werden.
Mit der Option @option{--list-image-types} werden alle verfügbaren Abbildtypen
aufgelistet.")
(fr "L'option @option{--file-system-type} pour la commande
@command{guix system disk-image} a été remplacée par la nouvelle option
@option{--image-type}. Par défaut, l'option @code{raw}, produisant des images
disque brutes est sélectionnée. Les options @code{hurd-qcow2},
@code{hurd-raw}, @code{uncompressed-iso9660} et @code{iso9660} sont également
disponibles.
La nouvelle option @option{--list-image-types} énumère les types d'image
disponibles.")))
(entry (commit "8819551c8d2a12cd4e84e09b51e434d05a012c9d")
(title (en "Package transformations now apply to implicit inputs")
(es "Las transformaciones de paquetes ahora afectan también
a las dependencias implícitas")
(de "Paketumwandlungen betreffen jetzt auch implizite Eingaben")
(fr "Les transformations de paquets s'appliquent aux
dépendances implicites"))
(body
(en "Package transformation options such as @option{--with-branch},
@option{--with-input}, and so on now apply to implicit inputs---previously
only a package's explicit inputs would be affected. This allows for things
such as replacing the Python dependency of a package that uses
@code{python-build-system}:
@example
guix install --with-input=python=python2 python-itsdangerous
@end example
Another example is grafting a different version of the GNU C
Library (@code{glibc} is an implicit input of almost all the packages and is
``deep down'' in the dependency graph):
@example
guix build --with-graft=glibc=glibc@@2.31 hello
@end example
Run @command{info \"(guix) Package Transformation Options\"} for more
info.")
(es "Las opciones de transformación de paquetes como
@option{--with-branch}, @option{--with-input}, etcétera, ahora también
influyen en las entradas implícitas---antes únicamente las entradas explícitas
del paquete se veían afectadas. Esto permite, por ejemplo, sustituir la
dependencia en python de un paquete que use @code{python-build-system}:
@example
guix install --with-input=python=python2 python-itsdangerous
@end example
Otro ejemplo podría ser el injerto de una versión diferente de la biblioteca
de C de GNU (@code{glibc} es una entrada implícita de casi todos los paquetes
y ``muy abajo'' en el grafo de dependencias):
@example
guix build --with-graft=glibc=glibc@@2.31 hello
@end example
Ejecute @command{info \"(guix.es) Opciones de transformación de paquetes\"}
para obtener más información.")
(de "Paketumwandlungsoptionen wie @option{--with-branch},
@option{--with-input} und so weiter betreffen nun auch implizite Eingaben 
zuvor haben sie sich nur auf die expliziten Eingaben eines Pakets
ausgewirkt. Dadurch kann jetzt zum Beispiel die Python-Abhängigkeit eines
Pakets, welches @code{python-build-system} benutzt, ersetzt werden:
@example
guix install --with-input=python=python2 python-itsdangerous
@end example
Ein weiteres Beispiel ist, mit einer anderen Version der GNU-C-Bibliothek zu
veredeln (@code{glibc} ist eine implizite Eingabe fast aller Pakete und steckt
ganz tief im Abhängigkeitsgraphen):
@example
guix build --with-graft=glibc=glibc@@2.31 hello
@end example
Führen Sie für mehr Informationen @command{info \"(guix.de)
Paketumwandlungsoptionen\"} aus.")
(fr "Les options de transformation de paquets telles que
@option{--with-branch} et @option{--with-input} s'appliquent désormais aux
dépendances implicites  jusque seules les dépendances explicites des
paquets étaient prises en compte. Cela permet certaines choses telles que
remplacer la dépendance sur Python d'un paquet utilisant
@code{python-build-system} :
@example
guix install --with-input=python=python2 python-itsdangerous
@end example
Un autre exemple est la possibilité de greffer une version différente de la
bibliothèque C GNU (la @code{glibc} est une dépendance implicite de tous les
paquets et se trouve « tout en bas » du graphe de dépendance) :
@example
guix build --with-graft=glibc=glibc@@2.31 hello
@end example
Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
plus de détails.")))
(entry (commit "f458cfbcc54ed87b1a87dd9e150ea276f17eab74")
(title (en "New @option{--without-tests} transformation option")
(es "Nueva opción de transformación @option{--without-tests}")
(de "Neue Paketumwandlungsoption @option{--without-tests}")
(fr "Nouvelle option de transformation @option{--without-tests}"))
(body
(en "The new @option{--without-tests} package transformation option
instructs Guix to skip the test suite of a given package. In the example
below, @code{guile-gcrypt} is built using a variant of @code{automake} itself
built without running its (lengthy) test suite:
@example
guix build guile-gcrypt --without-tests=automake
@end example
This is primarily useful as a way to speed up development cycles, or to work
around flaky test suites---skipping tests can hide real issues, so use with
care. Run @command{info \"(guix) Package Transformation Options\"} for more
info.")
(es "La nueva opción de transformación de paquetes
@option{--without-tests} indica a Guix que omita la batería de pruebas del
paquete proporcionado. En el siguiente ejemplo @code{guile-gcrypt} se
construye usando una variación de @code{automake}, la cual se ha construido
sin ejecutar su (larga) batería de pruebas:
@example
guix build guile-gcrypt --without-tests=automake
@end example
Esto es principalmente útil como una forma de acelerar ciclos de desarrollo o
de omitir temporalmente baterías de pruebas problemáticas---omitir las pruebas
puede ocultar problemas reales, por lo que debe usarse con precaución.
Ejecute @command{info \"(guix.es) Opciones de transformación de paquetes\"}
para obtener más información.")
(de "Mit der neuen Paketumwandlungsoption @option{--without-tests}
wird Guix angewiesen, den Testkatalog des angegebenen Pakets zu
überspringen. Im folgenden Beispiel wird @code{guile-gcrypt} mit einer
Variante von @code{automake} erstellt, die wiederum ohne Durchlauf ihres (viel
Zeit in Anspruch nehmenden) Testkatalogs erstellt wird:
@example
guix build guile-gcrypt --without-tests=automake
@end example
Der hauptsächliche Nutzen liegt in der Beschleunigung von Entwicklungszyklen
oder im Umgehen unzuverlässiger Testkataloge. Allerdings kann das Überspringen
dazu führen, dass echte Probleme verborgen bleiben. Setzen Sie es mit Bedacht
ein. Führen Sie @command{info \"(guix.de) Paketumwandlungsoptionen\"} aus, um
mehr Informationen zu erhalten.")
(fr "La nouvelle option de transformation de paquets
@option{--without-tests} demande à Guix de sauter la suite de tests d'un
paquet. Dans l'exemple ci-dessous, @code{guile-gcrypt} est construit en
utilisant une variante de @code{automake} construite sans lancer sa suite de
tests :
@example
guix build guile-gcrypt --without-tests=automake
@end example
Cette option est surtout intéressante pour raccourcir le cycle de
développement ou pour contourner une suite de tests qui n'est pas
fiable  sauter les tests peut cacher des vrais problèmes, à utiliser avec
précaution donc. Voir @command{info \"(guix.fr) Options de transformation de
paquets\"} pour plus de détails.")))
(entry (commit "a98712785e0b042a290420fd74e5a4a5da4fc68f") (entry (commit "a98712785e0b042a290420fd74e5a4a5da4fc68f")
(title (en "New @command{guix git authenticate} command") (title (en "New @command{guix git authenticate} command")
(es "Nueva orden @command{guix git authenticate}")
(de "Neuer Befehl @command{guix git authenticate}") (de "Neuer Befehl @command{guix git authenticate}")
(fr "Nouvelle commande @command{guix git authenticate}")) (fr "Nouvelle commande @command{guix git authenticate}"))
(body (body
@ -30,6 +324,20 @@ to allow people to authenticate code fetched from your repository.
Run @command{info \"(guix) Invoking guix git authenticate\"} for more info, Run @command{info \"(guix) Invoking guix git authenticate\"} for more info,
and see @uref{https://guix.gnu.org/blog/2020/securing-updates/} for details on and see @uref{https://guix.gnu.org/blog/2020/securing-updates/} for details on
these mechanisms.") these mechanisms.")
(es "La nueva orden @command{guix git authenticate} comprueba la
validez de un repositorio git verificando las firmas de las revisiones y
comprobando que todas las firmas están autorizadas, exactamente igual que
@command{guix pull}.
Esta orden es principalmente útil para desarrolladoras de canales. Permite
asegurar, antes de subir nada al repositorio remoto, que el canal contiene
únicamente revisiones firmadas por claves autorizadas. No obstante esta orden
es útil siempre que use git y quiera que otras personas puedan verificar el
código obtenido de su repositorio.
Ejecute @command{info \"(guix.es) Invocación de guix git authenticate\"}
para obtener más información y vea detalles sobre estos mecanismos en
@uref{https://guix.gnu.org/blog/2020/securing-updates/}.")
(de "Mit dem neuen Befehl @command{guix git authenticate} können Sie (de "Mit dem neuen Befehl @command{guix git authenticate} können Sie
ein Git-Repository authentifizieren. Dazu werden alle Commit-Signaturen ein Git-Repository authentifizieren. Dazu werden alle Commit-Signaturen
verifiziert und geprüft, dass jede von einer autorisierten Quelle kommt, genau verifiziert und geprüft, dass jede von einer autorisierten Quelle kommt, genau
@ -62,6 +370,7 @@ pour en savoir plus sur ces mécanismes.")))
(entry (commit "43badf261f4688c8a7a7a9004a4bff8acb205835") (entry (commit "43badf261f4688c8a7a7a9004a4bff8acb205835")
(title (en "@command{guix pull} authenticates channels") (title (en "@command{guix pull} authenticates channels")
(es "@command{guix pull} verifica los canales")
(de "@command{guix pull} authentifiziert Kanäle") (de "@command{guix pull} authentifiziert Kanäle")
(fr "@command{guix pull} authentifie les canaux")) (fr "@command{guix pull} authentifie les canaux"))
(body (body
@ -74,6 +383,16 @@ repository and from attempts to ship malicious code to users.
This feature is currently limited to the @code{guix} channel but will soon be This feature is currently limited to the @code{guix} channel but will soon be
available to third-party channel authors.") available to third-party channel authors.")
(es "Las ordenes @command{guix pull} y @command{guix time-machine}
ahora verifican el código fuente que obtienen, a menos que se proporcione la
opción @option{--disable-authentication}. Lo que esto significa es que Guix se
asegura de que cada revisión que recibe está firmada criptográficamente por
una desarrolladora autorizada. Esto le protege de intentos de modificación del
repositorio de Guix y de entregas de código con malas intenciones sobre las
usuarias.
Esta característica está limitada actualmente al canal @code{guix} pero pronto
estará disponible para autoras de canales independientes.")
(de "Die Befehle @command{guix pull} und @command{guix time-machine} (de "Die Befehle @command{guix pull} und @command{guix time-machine}
prüfen nun die Authentizität des heruntergeladenen Quellcodes, außer wenn die prüfen nun die Authentizität des heruntergeladenen Quellcodes, außer wenn die
neue Befehlszeilenoption @option{--disable-authentication} angegeben neue Befehlszeilenoption @option{--disable-authentication} angegeben
@ -97,6 +416,7 @@ Cette fonctionnalité n'est actuellement disponible que pour le canal
(entry (commit "c924e541390f9595d819edc33c19d979917c15ec") (entry (commit "c924e541390f9595d819edc33c19d979917c15ec")
(title (en "@command{guix repl} adds support for running Guile scripts") (title (en "@command{guix repl} adds support for running Guile scripts")
(es "@command{guix repl} puede ejecutar guiones de Guile")
(de "@command{guix repl} kann Guile-Skripte ausführen") (de "@command{guix repl} kann Guile-Skripte ausführen")
(fr "@command{guix repl} permet d'exécuter des scripts en langage Guile")) (fr "@command{guix repl} permet d'exécuter des scripts en langage Guile"))
(body (body
@ -110,6 +430,18 @@ guix repl -- my-script,scm --option1 --option2=option-arg arg1 arg2
@end example @end example
Run @command{info \"(guix) Invoking guix repl\"} for more information.") Run @command{info \"(guix) Invoking guix repl\"} for more information.")
(es "La orden @command{guix repl} ahora se puede usar para
ejecutar guiones de Guile. En comparación con únicamente la ejecución
de la orden @command{guile}, @command{guix repl} garantiza que todos
los módulos de Guix y sus dependencias están disponibles en la ruta
de búsqueda. Los guiones se ejecutan de este modo:
@example
guix repl -- mi-guion.scm --opcion1 --opcion2=param-op2 param1 param2
@end example
Ejecute @command{info \"(guix.es) Invocación de guix repl\"} para obtener
más información.")
(de "Der Befehl @command{guix repl} kann jetzt zur Ausführung von (de "Der Befehl @command{guix repl} kann jetzt zur Ausführung von
Guile-Skripten verwendet werden. Im Vergleich zum Befehl Guile-Skripten verwendet werden. Im Vergleich zum Befehl
@command{guile} garantiert @command{guix repl}, dass alle Guix-Module und @command{guile} garantiert @command{guix repl}, dass alle Guix-Module und
@ -136,6 +468,7 @@ Exécutez @command{info \"(guix.fr) Invoquer guix repl\"} pour plus d'informatio
(entry (commit "b460ba7992a0b4af2ddb5927dcf062784539ef7b") (entry (commit "b460ba7992a0b4af2ddb5927dcf062784539ef7b")
(title (en "Add support to boot from a Btrfs subvolume") (title (en "Add support to boot from a Btrfs subvolume")
(es "Implementado el arranque desde un subvolumen de Btrfs")
(de "Unterstützung für Systemstart von einem (de "Unterstützung für Systemstart von einem
Btrfs-Unterlaufwerk hinzugefügt") Btrfs-Unterlaufwerk hinzugefügt")
(fr "Ajout du support pour démarrer depuis un sous-volume Btrfs") (fr "Ajout du support pour démarrer depuis un sous-volume Btrfs")
@ -146,6 +479,11 @@ operating system declaration now takes into account the use of a Btrfs
subvolume for the partition holding @file{/gnu/store}. Run the command subvolume for the partition holding @file{/gnu/store}. Run the command
@command{info \"(guix) Btrfs file system\"} for more information and @command{info \"(guix) Btrfs file system\"} for more information and
examples.") examples.")
(es "El fichero de configuración de GRUB producido por la
declaración de sistema operativo ahora tiene en cuenta el uso de
subvolúmenes de Btrfs en la partición que contiene @file{/gnu/store}.
Ejecute la orden @command{info \"(guix.es) Sistema de ficheros Btrfs\"}
para obtener más información y ejemplos.")
(de "Für die Erzeugung einer GRUB-Konfigurationsdatei aus einer (de "Für die Erzeugung einer GRUB-Konfigurationsdatei aus einer
Betriebssystemdeklaration kann jetzt ein Btrfs-Unterlaufwerk (Subvolume) für Betriebssystemdeklaration kann jetzt ein Btrfs-Unterlaufwerk (Subvolume) für
die Partition mit @file{/gnu/store} angegeben werden. Führen Sie die Partition mit @file{/gnu/store} angegeben werden. Führen Sie
@ -165,6 +503,8 @@ voorbeelden.")))
(entry (commit "6456232164890dbf5aa20394ee24637feb4b7b9e") (entry (commit "6456232164890dbf5aa20394ee24637feb4b7b9e")
(title (en "@command{guix pack -RR} introduces a new execution (title (en "@command{guix pack -RR} introduces a new execution
engine") engine")
(es "@command{guix pack -RR} introduce un nuevo motor
de ejecución")
(de "@command{guix pack -RR} führt neuen Ausführungstreiber (de "@command{guix pack -RR} führt neuen Ausführungstreiber
ein")) ein"))
(body (body
@ -185,6 +525,26 @@ export GUIX_EXECUTION_ENGINE
@end example @end example
Run @command{info \"(guix) Invoking guix pack\"} for more information.") Run @command{info \"(guix) Invoking guix pack\"} for more information.")
(es "La orden @command{guix pack -RR} le permite crear un
archivador tar que contiene @dfn{binarios reposicionables}. Hasta ahora
dichos binarios dependían o bien de los ``espacios de nombres de usuarias
sin privilegios'' de Linux o en PRoot, cuando estos no estaban
implementados. No obstante, PRoot introduce una sobrecarga significativa
en algunos escenarios de trabajo.
Para estos casos @command{guix pack -RR} introduce una tercera opción
basada en una extensión al enlazador de tiempo de ejecución de GNU (ld.so)
y en Fakechroot, lo que conlleva muy poca sobrecarga. Puede seleccionar
la opción más rápida cuando ejecute un binario reposicionable de esta
manera:
@example
GUIX_EXECUTION_ENGINE=performance
export GUIX_EXECUTION_ENGINE
@end example
Ejecute @command{info \"(guix.es) Invocación de guix pack\"} para
obtener más información.")
(de "Mit dem Befehl @command{guix pack -RR} können Sie einen Tarball (de "Mit dem Befehl @command{guix pack -RR} können Sie einen Tarball
mit @dfn{verschieblichen Binärdateien} erzeugen (englisch Relocatable mit @dfn{verschieblichen Binärdateien} erzeugen (englisch Relocatable
Binaries). Bisher wurden diese entweder in unprivilegierten Binaries). Bisher wurden diese entweder in unprivilegierten
@ -209,6 +569,7 @@ mehr wissen wollen.")))
(entry (commit "88a96c568c47c97d05d883ada5afbc4e1200b10f") (entry (commit "88a96c568c47c97d05d883ada5afbc4e1200b10f")
(title (en "New @option{--path} option for @command{guix graph}") (title (en "New @option{--path} option for @command{guix graph}")
(es "Nueva opción @option{--path} para @command{guix graph}")
(de "Neue Option @option{--path} für @command{guix graph}")) (de "Neue Option @option{--path} für @command{guix graph}"))
(body (body
(en "The @command{guix graph} command has a new @option{--path} (en "The @command{guix graph} command has a new @option{--path}
@ -221,6 +582,18 @@ guix graph --path libreoffice libunistring
@end example @end example
Run @code{info \"(guix) Invoking guix graph\"} for more information.") Run @code{info \"(guix) Invoking guix graph\"} for more information.")
(es "La orden @command{guix graph} tiene una nueva opción
@option{--path} que le indica que debe mostrar la ruta más corta entre dos
paquetes, derivaciones o elementos del almacén. Por ejemplo, la siguiente
orden muestra la ruta más corta desde el paquete @code{libreoffice} hasta
@code{libunistring}:
@example
guix graph --path libreoffice libunistring
@end example
Ejecute @code{info \"(guix.es) Invocación de guix graph\"} para obtener más
información.")
(de "Der Befehl @command{guix graph} verfügt über eine neue (de "Der Befehl @command{guix graph} verfügt über eine neue
Befehlszeilenoption @option{--path}, die ihn den kürzesten Pfad zwischen zwei Befehlszeilenoption @option{--path}, die ihn den kürzesten Pfad zwischen zwei
Paketen, Ableitungen oder Store-Objekten ausgeben lässt. Zum Beispiel zeigt Paketen, Ableitungen oder Store-Objekten ausgeben lässt. Zum Beispiel zeigt

28
etc/openrc/guix-daemon.in Normal file
View file

@ -0,0 +1,28 @@
#!/sbin/openrc-run
# GNU Guix --- Functional package management for GNU
# Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
export GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale
export LC_ALL=en_US.utf8
command="@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon"
command_args="--build-users-group=guixbuild"
command_background="yes"
pidfile="/var/run/guix-daemon.pid"
output_log="/var/log/guix-daemon-stdout.log"
error_log="/var/log/guix-daemon-stderr.log"

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -53,6 +54,7 @@ TARGET."
(append (map specification->package (append (map specification->package
'("xorg-server" "xfce" "gnome" "mate" "enlightenment" '("xorg-server" "xfce" "gnome" "mate" "enlightenment"
"openbox" "awesome" "i3-wm" "ratpoison" "openbox" "awesome" "i3-wm" "ratpoison"
"emacs" "emacs-exwm" "emacs-desktop-environment"
"xlockmore" "slock" "libreoffice" "xlockmore" "slock" "libreoffice"
"connman" "network-manager" "network-manager-applet" "connman" "network-manager" "network-manager-applet"
"openssh" "ntp" "tor" "openssh" "ntp" "tor"

View file

@ -4,6 +4,7 @@
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de> ;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de>
;;; ;;;
@ -23,14 +24,17 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu bootloader grub) (define-module (gnu bootloader grub)
#:use-module (guix build union)
#:use-module (guix records) #:use-module (guix records)
#:use-module ((guix utils) #:select (%current-system)) #:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (gnu artwork) #:use-module (gnu artwork)
#:use-module (gnu bootloader) #:use-module (gnu bootloader)
#:use-module (gnu system uuid) #:use-module (gnu system uuid)
#:use-module (gnu system file-systems) #:use-module (gnu system file-systems)
#:use-module (gnu system keyboard) #:use-module (gnu system keyboard)
#:use-module (gnu system locale)
#:use-module (gnu packages bootloaders) #:use-module (gnu packages bootloaders)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg) #:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
#:autoload (gnu packages xorg) (xkeyboard-config) #:autoload (gnu packages xorg) (xkeyboard-config)
@ -46,8 +50,11 @@
grub-theme-color-highlight grub-theme-color-highlight
grub-theme-gfxmode grub-theme-gfxmode
install-grub-efi-netboot
grub-bootloader grub-bootloader
grub-efi-bootloader grub-efi-bootloader
grub-efi-netboot-bootloader
grub-mkrescue-bootloader grub-mkrescue-bootloader
grub-minimal-bootloader grub-minimal-bootloader
@ -297,9 +304,11 @@ code."
(file-system-label->string label))) (file-system-label->string label)))
((? (lambda (device) ((? (lambda (device)
(and (string? device) (string-contains device ":/"))) nfs-uri) (and (string? device) (string-contains device ":/"))) nfs-uri)
;; This assumes that if your root file system is on NFS, then ;; If the device is an NFS share, then we assume that the expected
;; you also want to load your grub extra files, kernel and initrd ;; file on that device (e.g. the GRUB background image or the kernel)
;; from there. ;; has to be loaded over the network. Otherwise we would need an
;; additional device information for some local disk to look for that
;; file, which we do not have.
;; ;;
;; We explicitly set "root=(tftp)" here even though if grub.cfg ;; We explicitly set "root=(tftp)" here even though if grub.cfg
;; had been loaded via TFTP, Grub would have set "root=(tftp)" ;; had been loaded via TFTP, Grub would have set "root=(tftp)"
@ -327,6 +336,7 @@ code."
(define* (grub-configuration-file config entries (define* (grub-configuration-file config entries
#:key #:key
(locale #f)
(system (%current-system)) (system (%current-system))
(old-entries '()) (old-entries '())
store-directory-prefix) store-directory-prefix)
@ -391,6 +401,20 @@ menuentry ~s {
#:store-directory-prefix store-directory-prefix #:store-directory-prefix store-directory-prefix
#:port #~port))) #:port #~port)))
(define locale-config
#~(let ((locale #$(and locale
(locale-definition-source
(locale-name->definition locale)))))
(when locale
(format port "\
# Localization configuration.
if search --file --set boot_partition /grub/grub.cfg; then
set locale_dir=(${boot_partition})/grub/locale
else
set locale_dir=/boot/grub/locale
fi
set lang=~a~%" locale))))
(define keyboard-layout-config (define keyboard-layout-config
(let* ((layout (bootloader-configuration-keyboard-layout config)) (let* ((layout (bootloader-configuration-keyboard-layout config))
(grub (bootloader-package (grub (bootloader-package
@ -415,6 +439,7 @@ keymap ~a~%" #$keymap))))
# will be lost upon reconfiguration. # will be lost upon reconfiguration.
") ")
#$(sugar) #$(sugar)
#$locale-config
#$keyboard-layout-config #$keyboard-layout-config
(format port " (format port "
set default=~a set default=~a
@ -528,6 +553,99 @@ fi~%"))))
"--bootloader-id=Guix" "--bootloader-id=Guix"
"--efi-directory" target-esp)))) "--efi-directory" target-esp))))
(define (install-grub-efi-netboot subdir)
"Define a grub-efi-netboot bootloader installer for installation in SUBDIR,
which is usually efi/Guix or efi/boot."
(let* ((system (string-split (nix-system->gnu-triplet
(or (%current-target-system)
(%current-system)))
#\-))
(arch (first system))
(boot-efi-link (match system
;; These are the supportend systems and the names
;; defined by the UEFI standard for removable media.
(("i686" _ ...) "/bootia32.efi")
(("x86_64" _ ...) "/bootx64.efi")
(("arm" _ ...) "/bootarm.efi")
(("aarch64" _ ...) "/bootaa64.efi")
(("riscv" _ ...) "/bootriscv32.efi")
(("riscv64" _ ...) "/bootriscv64.efi")
;; Other systems are not supported, although defined.
;; (("riscv128" _ ...) "/bootriscv128.efi")
;; (("ia64" _ ...) "/bootia64.efi")
((_ ...) #f)))
(core-efi (string-append
;; This is the arch dependent file name of GRUB, e.g.
;; i368-efi/core.efi or arm64-efi/core.efi.
(match arch
("i686" "i386")
("aarch64" "arm64")
("riscv" "riscv32")
(_ arch))
"-efi/core.efi")))
(with-imported-modules
'((guix build union))
#~(lambda (bootloader target mount-point)
"Install the BOOTLOADER, which must be the package grub, as e.g.
bootx64.efi or bootaa64.efi into SUBDIR, which is usually efi/Guix or efi/boot,
below the directory TARGET for the system whose root is mounted at MOUNT-POINT.
MOUNT-POINT is the last argument in 'guix system init /etc/config.scm mnt/point'
or '/' for other 'guix system' commands.
TARGET is the target argument given to the bootloader-configuration in
(operating-system
(bootloader (bootloader-configuration
(target \"/boot\")
))
)
TARGET is required to be an absolute directory name, usually mounted via NFS,
and finally needs to be provided by a TFTP server as the TFTP root directory.
GRUB will load tftp://server/SUBDIR/grub.cfg and this file will instruct it to
load more files from the store like tftp://server/gnu/store/-linux/Image.
To make this possible two symlinks will be created. The first symlink points
relatively form MOUNT-POINT/TARGET/SUBDIR/grub.cfg to
MOUNT-POINT/boot/grub/grub.cfg, and the second symlink points relatively from
MOUNT-POINT/TARGET/%store-prefix to MOUNT-POINT/%store-prefix.
It is important to note that these symlinks need to be relativ, as the absolute
paths on the TFTP server side are unknown.
It is also important to note that both symlinks will point outside the TFTP root
directory and that the TARGET/%store-prefix symlink makes the whole store
accessible via TFTP. Possibly the TFTP server must be configured
to allow accesses outside its TFTP root directory. This may need to be
considered for security aspects."
(use-modules ((guix build union) #:select (symlink-relative)))
(let* ((net-dir (string-append mount-point target "/"))
(sub-dir (string-append net-dir #$subdir "/"))
(store (string-append mount-point (%store-prefix)))
(store-link (string-append net-dir (%store-prefix)))
(grub-cfg (string-append mount-point "/boot/grub/grub.cfg"))
(grub-cfg-link (string-append sub-dir (basename grub-cfg)))
(boot-efi-link (string-append sub-dir #$boot-efi-link)))
;; Prepare the symlink to the store.
(mkdir-p (dirname store-link))
(false-if-exception (delete-file store-link))
(symlink-relative store store-link)
;; Prepare the symlink to the grub.cfg, which points into the store.
(mkdir-p (dirname grub-cfg-link))
(false-if-exception (delete-file grub-cfg-link))
(symlink-relative grub-cfg grub-cfg-link)
;; Install GRUB, which refers to the grub.cfg, with support for
;; encrypted partitions,
(setenv "GRUB_ENABLE_CRYPTODISK" "y")
(invoke/quiet (string-append bootloader "/bin/grub-mknetdir")
(string-append "--net-directory=" net-dir)
(string-append "--subdir=" #$subdir))
;; Prepare the bootloader symlink, which points to core.efi of GRUB.
(false-if-exception (delete-file boot-efi-link))
(symlink #$core-efi boot-efi-link))))))
;;; ;;;
@ -560,6 +678,12 @@ fi~%"))))
(name 'grub-efi) (name 'grub-efi)
(package grub-efi))) (package grub-efi)))
(define grub-efi-netboot-bootloader
(bootloader
(inherit grub-efi-bootloader)
(name 'grub-efi-netboot-bootloader)
(installer (install-grub-efi-netboot "efi/Guix"))))
(define grub-mkrescue-bootloader (define grub-mkrescue-bootloader
(bootloader (bootloader
(inherit grub-efi-bootloader) (inherit grub-efi-bootloader)

View file

@ -45,7 +45,7 @@
u-boot-wandboard-bootloader)) u-boot-wandboard-bootloader))
(define install-u-boot (define install-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(if bootloader (if bootloader
(error "Failed to install U-Boot")))) (error "Failed to install U-Boot"))))
@ -56,74 +56,74 @@
;; the MLO and is expected at 0x60000. Write both first stage ("MLO") and ;; the MLO and is expected at 0x60000. Write both first stage ("MLO") and
;; second stage ("u-boot.img") images, read in BOOTLOADER directory, to the ;; second stage ("u-boot.img") images, read in BOOTLOADER directory, to the
;; specified DEVICE. ;; specified DEVICE.
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(let ((mlo (string-append bootloader "/libexec/MLO")) (let ((mlo (string-append bootloader "/libexec/MLO"))
(u-boot (string-append bootloader "/libexec/u-boot.img"))) (u-boot (string-append bootloader "/libexec/u-boot.img")))
(write-file-on-device mlo (* 256 512) (write-file-on-device mlo (* 256 512)
device (* 256 512)) image (* 256 512))
(write-file-on-device u-boot (* 1024 512) (write-file-on-device u-boot (* 1024 512)
device (* 768 512))))) image (* 768 512)))))
(define install-allwinner-u-boot (define install-allwinner-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(let ((u-boot (string-append bootloader (let ((u-boot (string-append bootloader
"/libexec/u-boot-sunxi-with-spl.bin"))) "/libexec/u-boot-sunxi-with-spl.bin")))
(write-file-on-device u-boot (stat:size (stat u-boot)) (write-file-on-device u-boot (stat:size (stat u-boot))
device (* 8 1024))))) image (* 8 1024)))))
(define install-allwinner64-u-boot (define install-allwinner64-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(let ((spl (string-append bootloader "/libexec/spl/sunxi-spl.bin")) (let ((spl (string-append bootloader "/libexec/spl/sunxi-spl.bin"))
(u-boot (string-append bootloader "/libexec/u-boot.itb"))) (u-boot (string-append bootloader "/libexec/u-boot.itb")))
(write-file-on-device spl (stat:size (stat spl)) (write-file-on-device spl (stat:size (stat spl))
device (* 8 1024)) image (* 8 1024))
(write-file-on-device u-boot (stat:size (stat u-boot)) (write-file-on-device u-boot (stat:size (stat u-boot))
device (* 40 1024))))) image (* 40 1024)))))
(define install-imx-u-boot (define install-imx-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(let ((spl (string-append bootloader "/libexec/SPL")) (let ((spl (string-append bootloader "/libexec/SPL"))
(u-boot (string-append bootloader "/libexec/u-boot.img"))) (u-boot (string-append bootloader "/libexec/u-boot.img")))
(write-file-on-device spl (stat:size (stat spl)) (write-file-on-device spl (stat:size (stat spl))
device (* 1 1024)) image (* 1 1024))
(write-file-on-device u-boot (stat:size (stat u-boot)) (write-file-on-device u-boot (stat:size (stat u-boot))
device (* 69 1024))))) image (* 69 1024)))))
(define install-puma-rk3399-u-boot (define install-puma-rk3399-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(let ((spl (string-append bootloader "/libexec/u-boot-spl.rksd")) (let ((spl (string-append bootloader "/libexec/u-boot-spl.rksd"))
(u-boot (string-append bootloader "/libexec/u-boot.itb"))) (u-boot (string-append bootloader "/libexec/u-boot.itb")))
(write-file-on-device spl (stat:size (stat spl)) (write-file-on-device spl (stat:size (stat spl))
device (* 64 512)) image (* 64 512))
(write-file-on-device u-boot (stat:size (stat u-boot)) (write-file-on-device u-boot (stat:size (stat u-boot))
device (* 512 512))))) image (* 512 512)))))
(define install-firefly-rk3399-u-boot (define install-firefly-rk3399-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(let ((idb (string-append bootloader "/libexec/idbloader.img")) (let ((idb (string-append bootloader "/libexec/idbloader.img"))
(u-boot (string-append bootloader "/libexec/u-boot.itb"))) (u-boot (string-append bootloader "/libexec/u-boot.itb")))
(write-file-on-device idb (stat:size (stat idb)) (write-file-on-device idb (stat:size (stat idb))
device (* 64 512)) image (* 64 512))
(write-file-on-device u-boot (stat:size (stat u-boot)) (write-file-on-device u-boot (stat:size (stat u-boot))
device (* 16384 512))))) image (* 16384 512)))))
(define install-rock64-rk3328-u-boot (define install-rock64-rk3328-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(let ((idb (string-append bootloader "/libexec/idbloader.img")) (let ((idb (string-append bootloader "/libexec/idbloader.img"))
(u-boot (string-append bootloader "/libexec/u-boot.itb"))) (u-boot (string-append bootloader "/libexec/u-boot.itb")))
(write-file-on-device idb (stat:size (stat idb)) (write-file-on-device idb (stat:size (stat idb))
device (* 64 512)) image (* 64 512))
(write-file-on-device u-boot (stat:size (stat u-boot)) (write-file-on-device u-boot (stat:size (stat u-boot))
device (* 16384 512))))) image (* 16384 512)))))
(define install-rockpro64-rk3399-u-boot (define install-rockpro64-rk3399-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader root-index image)
(let ((idb (string-append bootloader "/libexec/idbloader.img")) (let ((idb (string-append bootloader "/libexec/idbloader.img"))
(u-boot (string-append bootloader "/libexec/u-boot.itb"))) (u-boot (string-append bootloader "/libexec/u-boot.itb")))
(write-file-on-device idb (stat:size (stat idb)) (write-file-on-device idb (stat:size (stat idb))
device (* 64 512)) image (* 64 512))
(write-file-on-device u-boot (stat:size (stat u-boot)) (write-file-on-device u-boot (stat:size (stat u-boot))
device (* 16384 512))))) image (* 16384 512)))))
(define install-pinebook-pro-rk3399-u-boot install-rockpro64-rk3399-u-boot) (define install-pinebook-pro-rk3399-u-boot install-rockpro64-rk3399-u-boot)
@ -138,28 +138,29 @@
(inherit extlinux-bootloader) (inherit extlinux-bootloader)
(name 'u-boot) (name 'u-boot)
(package #f) (package #f)
(installer install-u-boot))) (installer #f)
(disk-image-installer install-u-boot)))
(define u-boot-beaglebone-black-bootloader (define u-boot-beaglebone-black-bootloader
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(package u-boot-am335x-boneblack) (package u-boot-am335x-boneblack)
(installer install-beaglebone-black-u-boot))) (disk-image-installer install-beaglebone-black-u-boot)))
(define u-boot-allwinner-bootloader (define u-boot-allwinner-bootloader
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(installer install-allwinner-u-boot))) (disk-image-installer install-allwinner-u-boot)))
(define u-boot-allwinner64-bootloader (define u-boot-allwinner64-bootloader
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(installer install-allwinner64-u-boot))) (disk-image-installer install-allwinner64-u-boot)))
(define u-boot-imx-bootloader (define u-boot-imx-bootloader
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(installer install-imx-u-boot))) (disk-image-installer install-imx-u-boot)))
(define u-boot-nintendo-nes-classic-edition-bootloader (define u-boot-nintendo-nes-classic-edition-bootloader
(bootloader (bootloader
@ -196,7 +197,7 @@
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(package u-boot-firefly-rk3399) (package u-boot-firefly-rk3399)
(installer install-firefly-rk3399-u-boot))) (disk-image-installer install-firefly-rk3399-u-boot)))
(define u-boot-mx6cuboxi-bootloader (define u-boot-mx6cuboxi-bootloader
(bootloader (bootloader
@ -232,25 +233,25 @@
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(package u-boot-puma-rk3399) (package u-boot-puma-rk3399)
(installer install-puma-rk3399-u-boot))) (disk-image-installer install-puma-rk3399-u-boot)))
(define u-boot-rock64-rk3328-bootloader (define u-boot-rock64-rk3328-bootloader
;; SD and eMMC use the same format ;; SD and eMMC use the same format
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(package u-boot-rock64-rk3328) (package u-boot-rock64-rk3328)
(installer install-rock64-rk3328-u-boot))) (disk-image-installer install-rock64-rk3328-u-boot)))
(define u-boot-rockpro64-rk3399-bootloader (define u-boot-rockpro64-rk3399-bootloader
;; SD and eMMC use the same format ;; SD and eMMC use the same format
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(package u-boot-rockpro64-rk3399) (package u-boot-rockpro64-rk3399)
(installer install-rockpro64-rk3399-u-boot))) (disk-image-installer install-rockpro64-rk3399-u-boot)))
(define u-boot-pinebook-pro-rk3399-bootloader (define u-boot-pinebook-pro-rk3399-bootloader
;; SD and eMMC use the same format ;; SD and eMMC use the same format
(bootloader (bootloader
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(package u-boot-pinebook-pro-rk3399) (package u-boot-pinebook-pro-rk3399)
(installer install-pinebook-pro-rk3399-u-boot))) (disk-image-installer install-pinebook-pro-rk3399-u-boot)))

View file

@ -22,6 +22,8 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (ice-9 binary-ports) #:use-module (ice-9 binary-ports)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:use-module (rnrs io ports)
#:use-module (rnrs io simple)
#:export (write-file-on-device #:export (write-file-on-device
install-efi-loader)) install-efi-loader))
@ -35,11 +37,14 @@
(call-with-input-file file (call-with-input-file file
(lambda (input) (lambda (input)
(let ((bv (get-bytevector-n input size))) (let ((bv (get-bytevector-n input size)))
(call-with-output-file device (call-with-port
(lambda (output) (open-file-output-port device
(seek output offset SEEK_SET) (file-options no-truncate no-create)
(put-bytevector output bv)) (buffer-mode block)
#:binary #t))))) (native-transcoder))
(lambda (output)
(seek output offset SEEK_SET)
(put-bytevector output bv)))))))
;;; ;;;

View file

@ -211,6 +211,9 @@ set."
("dev/vcs" ("/hurd/console")) ("dev/vcs" ("/hurd/console"))
("dev/tty" ("/hurd/magic" "tty") #o666) ("dev/tty" ("/hurd/magic" "tty") #o666)
;; 'fd_to_filename' in libc expects it.
("dev/fd" ("/hurd/magic" "--directory" "fd") #o555)
("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console") ("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console")
#o666) #o666)
("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console") ("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console")
@ -240,10 +243,10 @@ set."
(for-each scope-set-translator devices) (for-each scope-set-translator devices)
(false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom"))) (false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom")))
(mkdir* "dev/fd")
(false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin"))) (false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin")))
(false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout"))) (false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout")))
(false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr"))) (false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr")))
(false-if-EEXIST (symlink "crash-dump-core" (scope "servers/crash")))
;; Make sure /etc/mtab is a symlink to /proc/mounts. ;; Make sure /etc/mtab is a symlink to /proc/mounts.
(false-if-exception (delete-file (scope "etc/mtab"))) (false-if-exception (delete-file (scope "etc/mtab")))

View file

@ -37,6 +37,7 @@
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:export (make-partition-image #:export (make-partition-image
convert-disk-image
genimage genimage
initialize-efi-partition initialize-efi-partition
initialize-root-partition initialize-root-partition
@ -120,13 +121,22 @@ ROOT directory to populate the image."
(format (current-error-port) (format (current-error-port)
"Unsupported partition type~%."))))) "Unsupported partition type~%.")))))
(define* (genimage config target) (define (convert-disk-image image format output)
"Convert IMAGE to OUTPUT according to the given FORMAT."
(case format
((compressed-qcow2)
(begin
(invoke "qemu-img" "convert" "-c" "-f" "raw"
"-O" "qcow2" image output)))
(else
(copy-file image output))))
(define* (genimage config)
"Use genimage to generate in TARGET directory, the image described in the "Use genimage to generate in TARGET directory, the image described in the
given CONFIG file." given CONFIG file."
;; genimage needs a 'root' directory. ;; genimage needs a 'root' directory.
(mkdir "root") (mkdir "root")
(invoke "genimage" "--config" config (invoke "genimage" "--config" config))
"--outputpath" target))
(define* (register-closure prefix closure (define* (register-closure prefix closure
#:key #:key

View file

@ -170,7 +170,8 @@ for the process."
(pivot-root root put-old) (pivot-root root put-old)
(chdir "/") (chdir "/")
(umount "real-root" MNT_DETACH) (umount "real-root" MNT_DETACH)
(rmdir "real-root"))) (rmdir "real-root")
(chmod "/" #o755)))
(define* (initialize-user-namespace pid host-uids (define* (initialize-user-namespace pid host-uids
#:key (guest-uid 0) (guest-gid 0)) #:key (guest-uid 0) (guest-gid 0))

View file

@ -35,44 +35,86 @@
;;; ;;;
;;; Code: ;;; Code:
(define* (secret-service-send-secrets port secret-root #:key (retry 60)) (define-syntax log
"Copy all files under SECRET-ROOT using TCP to secret-service listening at (lambda (s)
local PORT. If connect fails, sleep 1s and retry RETRY times." "Log the given message."
(syntax-case s ()
((_ fmt args ...)
(with-syntax ((fmt (string-append "secret service: "
(syntax->datum #'fmt))))
;; Log to the current output port. That way, when
;; 'secret-service-send-secrets' is called from shepherd, output goes
;; to syslog.
#'(format (current-output-port) fmt args ...))))))
(define* (secret-service-send-secrets port secret-root
#:key (retry 60)
(handshake-timeout 120))
"Copy all files under SECRET-ROOT using TCP to secret-service listening at
local PORT. If connect fails, sleep 1s and retry RETRY times; once connected,
wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
#f on failure."
(define (file->file+size+mode file-name) (define (file->file+size+mode file-name)
(let ((stat (stat file-name)) (let ((stat (stat file-name))
(target (substring file-name (string-length secret-root)))) (target (substring file-name (string-length secret-root))))
(list target (stat:size stat) (stat:mode stat)))) (list target (stat:size stat) (stat:mode stat))))
(format (current-error-port) "sending secrets to ~a~%" port) (define (send-files sock)
(let ((sock (socket AF_INET SOCK_STREAM 0))
(addr (make-socket-address AF_INET INADDR_LOOPBACK port)))
;; connect to wait for port
(let loop ((retry retry))
(catch 'system-error
(cute connect sock addr)
(lambda (key . args)
(when (zero? retry)
(apply throw key args))
(format (current-error-port) "retrying connection~%")
(sleep 1)
(loop (1- retry)))))
(format (current-error-port) "connected! sending files in ~s %~"
secret-root)
(let* ((files (if secret-root (find-files secret-root) '())) (let* ((files (if secret-root (find-files secret-root) '()))
(files-sizes-modes (map file->file+size+mode files)) (files-sizes-modes (map file->file+size+mode files))
(secrets `(secrets (secrets `(secrets
(version 0) (version 0)
(files ,files-sizes-modes)))) (files ,files-sizes-modes))))
(write secrets sock) (write secrets sock)
(for-each (compose (cute dump-port <> sock) (for-each (lambda (file)
(cute open-input-file <>)) (call-with-input-file file
files)))) (lambda (input)
(dump-port input sock))))
files)))
(log "sending secrets to ~a~%" port)
(let ((sock (socket AF_INET SOCK_STREAM 0))
(addr (make-socket-address AF_INET INADDR_LOOPBACK port)))
;; Connect to QEMU on the forwarded port. The 'connect' call succeeds as
;; soon as QEMU is ready, even if there's no server listening on the
;; forward port inside the guest.
(let loop ((retry retry))
(catch 'system-error
(cute connect sock addr)
(lambda (key . args)
(when (zero? retry)
(apply throw key args))
(log "retrying connection [~a attempts left]~%"
(- retry 1))
(sleep 1)
(loop (1- retry)))))
(log "connected; waiting for handshake...~%")
;; Wait for "hello" message from the server. This is the only way to know
;; that we're really connected to the server inside the guest.
(match (select (list sock) '() '() handshake-timeout)
(((_) () ())
(match (read sock)
(('secret-service-server ('version version ...))
(log "sending files from ~s...~%" secret-root)
(send-files sock)
(log "done sending files to port ~a~%" port)
(close-port sock)
secret-root)
(x
(log "invalid handshake ~s~%" x)
(close-port sock)
#f)))
((() () ()) ;timeout
(log "timeout while sending files to ~a~%" port)
(close-port sock)
#f))))
(define (secret-service-receive-secrets port) (define (secret-service-receive-secrets port)
"Listen to local PORT and wait for a secret service client to send secrets. "Listen to local PORT and wait for a secret service client to send secrets.
Write them to the file system." Write them to the file system. Return the list of files installed on success,
and #f otherwise."
(define (wait-for-client port) (define (wait-for-client port)
;; Wait for a TCP connection on PORT. Note: We cannot use the ;; Wait for a TCP connection on PORT. Note: We cannot use the
@ -81,16 +123,26 @@ Write them to the file system."
(let ((sock (socket AF_INET SOCK_STREAM 0))) (let ((sock (socket AF_INET SOCK_STREAM 0)))
(bind sock AF_INET INADDR_ANY port) (bind sock AF_INET INADDR_ANY port)
(listen sock 1) (listen sock 1)
(format (current-error-port) (log "waiting for secrets on port ~a...~%" port)
"waiting for secrets on port ~a...~%" (match (select (list sock) '() '() 60)
port) (((_) () ())
(match (accept sock) (match (accept sock)
((client . address) ((client . address)
(format (current-error-port) "client connection from ~a~%" (log "client connection from ~a~%"
(inet-ntop (sockaddr:fam address) (inet-ntop (sockaddr:fam address)
(sockaddr:addr address))) (sockaddr:addr address)))
;; Send a "hello" message. This allows the client running on the
;; host to know that it's now actually connected to server running
;; in the guest.
(write '(secret-service-server (version 0)) client)
(force-output client)
(close-port sock)
client)))
((() () ())
(log "did not receive any secrets; time out~%")
(close-port sock) (close-port sock)
client)))) #f))))
;; TODO: Remove when (@ (guix build utils) dump-port) has a 'size' ;; TODO: Remove when (@ (guix build utils) dump-port) has a 'size'
;; parameter. ;; parameter.
@ -115,23 +167,24 @@ Write them to the file system."
(('secrets ('version 0) (('secrets ('version 0)
('files ((files sizes modes) ...))) ('files ((files sizes modes) ...)))
(for-each (lambda (file size mode) (for-each (lambda (file size mode)
(format (current-error-port) (log "installing file '~a' (~a bytes)...~%"
"installing file '~a' (~a bytes)...~%" file size)
file size)
(mkdir-p (dirname file)) (mkdir-p (dirname file))
(call-with-output-file file (call-with-output-file file
(lambda (output) (lambda (output)
(dump port output size) (dump port output size)
(chmod file mode)))) (chmod file mode))))
files sizes modes)) files sizes modes)
(log "received ~a secret files~%" (length files))
files)
(_ (_
(format (current-error-port) (log "invalid secrets received~%")
"invalid secrets received~%")
#f))) #f)))
(let* ((port (wait-for-client port)) (let* ((port (wait-for-client port))
(result (read-secrets port))) (result (and=> port read-secrets)))
(close-port port) (when port
(close-port port))
result)) result))
;;; secret-service.scm ends here ;;; secret-service.scm ends here

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -196,11 +197,16 @@ namespace, in addition to essential bind-mounts such /proc."
#:allow-other-keys #:allow-other-keys
#:rest args) #:rest args)
"This is a variant of 'fork+exec-command' procedure, that joins the "This is a variant of 'fork+exec-command' procedure, that joins the
namespaces of process PID beforehand." namespaces of process PID beforehand. If there is no support for containers,
(container-excursion* pid on Hurd systems for instance, fallback to direct forking."
(lambda () (let ((container-support?
(apply fork+exec-command command (file-exists? "/proc/self/ns"))
(strip-keyword-arguments '(#:pid) args))))) (fork-proc (lambda ()
(apply fork+exec-command command
(strip-keyword-arguments '(#:pid) args)))))
(if container-support?
(container-excursion* pid fork-proc)
(fork-proc))))
;; Local Variables: ;; Local Variables:
;; eval: (put 'container-excursion* 'scheme-indent-function 1) ;; eval: (put 'container-excursion* 'scheme-indent-function 1)

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; ;;;
@ -56,6 +56,7 @@
#:use-module (gnu system vm) #:use-module (gnu system vm)
#:use-module (gnu system install) #:use-module (gnu system install)
#:use-module (gnu system images hurd) #:use-module (gnu system images hurd)
#:use-module (gnu system images pine64)
#:use-module (gnu tests) #:use-module (gnu tests)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
@ -75,28 +76,36 @@
#:optional (package-derivation package-derivation)) #:optional (package-derivation package-derivation))
"Convert PACKAGE to an alist suitable for Hydra." "Convert PACKAGE to an alist suitable for Hydra."
(parameterize ((%graft? #f)) (parameterize ((%graft? #f))
`((derivation . ,(derivation-file-name (let ((drv (package-derivation store package system
(package-derivation store package system #:graft? #f)))
#:graft? #f))) `((derivation . ,(derivation-file-name drv))
(description . ,(package-synopsis package)) (log . ,(log-file store (derivation-file-name drv)))
(long-description . ,(package-description package)) (outputs . ,(filter-map (lambda (res)
(match res
((name . path)
`(,name . ,path))))
(derivation->output-paths drv)))
(nix-name . ,(derivation-name drv))
(system . ,(derivation-system drv))
(description . ,(package-synopsis package))
(long-description . ,(package-description package))
;; XXX: Hydra ignores licenses that are not a <license> structure or a ;; XXX: Hydra ignores licenses that are not a <license> structure or a
;; list thereof. ;; list thereof.
(license . ,(let loop ((license (package-license package))) (license . ,(let loop ((license (package-license package)))
(match license (match license
((? license?) ((? license?)
(license-name license)) (license-name license))
((lst ...) ((lst ...)
(map loop license))))) (map loop license)))))
(home-page . ,(package-home-page package)) (home-page . ,(package-home-page package))
(maintainers . ("bug-guix@gnu.org")) (maintainers . ("bug-guix@gnu.org"))
(max-silent-time . ,(or (assoc-ref (package-properties package) (max-silent-time . ,(or (assoc-ref (package-properties package)
'max-silent-time) 'max-silent-time)
3600)) ;1 hour by default 3600)) ;1 hour by default
(timeout . ,(or (assoc-ref (package-properties package) 'timeout) (timeout . ,(or (assoc-ref (package-properties package) 'timeout)
72000))))) ;20 hours by default 72000)))))) ;20 hours by default
(define (package-job store job-name package system) (define (package-job store job-name package system)
"Return a job called JOB-NAME that builds PACKAGE on SYSTEM." "Return a job called JOB-NAME that builds PACKAGE on SYSTEM."
@ -195,12 +204,21 @@ SYSTEM."
'("x86_64-linux" "i686-linux")) '("x86_64-linux" "i686-linux"))
(define %guix-system-images (define %guix-system-images
(list hurd-barebones-disk-image)) (list hurd-barebones-qcow2-image
pine64-barebones-raw-image))
(define (image-jobs store system) (define (image-jobs store system)
"Return a list of jobs that build images for SYSTEM." "Return a list of jobs that build images for SYSTEM."
(define (->alist drv) (define (->alist drv)
`((derivation . ,(derivation-file-name drv)) `((derivation . ,(derivation-file-name drv))
(log . ,(log-file store (derivation-file-name drv)))
(outputs . ,(filter-map (lambda (res)
(match res
((name . path)
`(,name . ,path))))
(derivation->output-paths drv)))
(nix-name . ,(derivation-name drv))
(system . ,(derivation-system drv))
(description . "Stand-alone image of the GNU system") (description . "Stand-alone image of the GNU system")
(long-description . "This is a demo stand-alone image of the GNU (long-description . "This is a demo stand-alone image of the GNU
system.") system.")
@ -304,6 +322,14 @@ system.")
(system-test-value test)))) (system-test-value test))))
`((derivation . ,(derivation-file-name drv)) `((derivation . ,(derivation-file-name drv))
(log . ,(log-file store (derivation-file-name drv)))
(outputs . ,(filter-map (lambda (res)
(match res
((name . path)
`(,name . ,path))))
(derivation->output-paths drv)))
(nix-name . ,(derivation-name drv))
(system . ,(derivation-system drv))
(description . ,(format #f "Guix '~a' system test" (description . ,(format #f "Guix '~a' system test"
(system-test-name test))) (system-test-name test)))
(long-description . ,(system-test-description test)) (long-description . ,(system-test-description test))
@ -333,6 +359,14 @@ system.")
"Return Hydra jobs to build the self-contained Guix binary tarball." "Return Hydra jobs to build the self-contained Guix binary tarball."
(define (->alist drv) (define (->alist drv)
`((derivation . ,(derivation-file-name drv)) `((derivation . ,(derivation-file-name drv))
(log . ,(log-file store (derivation-file-name drv)))
(outputs . ,(filter-map (lambda (res)
(match res
((name . path)
`(,name . ,path))))
(derivation->output-paths drv)))
(nix-name . ,(derivation-name drv))
(system . ,(derivation-system drv))
(description . "Stand-alone binary Guix tarball") (description . "Stand-alone binary Guix tarball")
(long-description . "This is a tarball containing binaries of Guix and (long-description . "This is a tarball containing binaries of Guix and
all its dependencies, and ready to be installed on \"foreign\" distributions.") all its dependencies, and ready to be installed on \"foreign\" distributions.")
@ -511,20 +545,16 @@ Return #f if no such checkout is found."
(cross-jobs store system))) (cross-jobs store system)))
((hello) ((hello)
;; Build hello package only. ;; Build hello package only.
(if (string=? system (%current-system)) (let ((hello (specification->package "hello")))
(let ((hello (specification->package "hello"))) (list (package-job store (job-name hello) hello system))))
(list (package-job store (job-name hello) hello system)))
'()))
((list) ((list)
;; Build selected list of packages only. ;; Build selected list of packages only.
(if (string=? system (%current-system)) (let* ((names (assoc-ref arguments 'subset))
(let* ((names (assoc-ref arguments 'subset)) (packages (map specification->package names)))
(packages (map specification->package names))) (map (lambda (package)
(map (lambda (package) (package-job store (job-name package)
(package-job store (job-name package) package system))
package system)) packages)))
packages))
'()))
((manifests) ((manifests)
;; Build packages in the list of manifests. ;; Build packages in the list of manifests.
(let* ((manifests (arguments->manifests arguments)) (let* ((manifests (arguments->manifests arguments))

View file

@ -39,7 +39,14 @@
image-partitions image-partitions
image-compression? image-compression?
image-volatile-root? image-volatile-root?
image-substitutable?)) image-substitutable?
image-type
image-type?
image-type-name
image-type-constructor
os->image))
;;; ;;;
@ -84,3 +91,23 @@
(default #t)) (default #t))
(substitutable? image-substitutable? ;boolean (substitutable? image-substitutable? ;boolean
(default #t))) (default #t)))
;;;
;;; Image type.
;;;
(define-record-type* <image-type>
image-type make-image-type
image-type?
(name image-type-name) ;symbol
(constructor image-type-constructor)) ;<operating-system> -> <image>
;;;
;;; Image creation.
;;;
(define* (os->image os #:key type)
(let ((constructor (image-type-constructor type)))
(constructor os)))

View file

@ -71,7 +71,7 @@
(_ #f))) (_ #f)))
(define* (build-compiled-file name locale-builder) (define* (build-compiled-file name locale-builder)
"Return a file-like object that evalutes the gexp LOCALE-BUILDER and store "Return a file-like object that evaluates the gexp LOCALE-BUILDER and store
its result in the scheme file NAME. The derivation will also build a compiled its result in the scheme file NAME. The derivation will also build a compiled
version of this file." version of this file."
(define set-utf8-locale (define set-utf8-locale
@ -308,7 +308,8 @@ selected keymap."
;; translated. ;; translated.
#~(begin #~(begin
(bindtextdomain "guix" (string-append #$guix "/share/locale")) (bindtextdomain "guix" (string-append #$guix "/share/locale"))
(textdomain "guix"))) (textdomain "guix")
(setlocale LC_ALL "")))
(define set-installer-path (define set-installer-path
;; Add the specified binary to PATH for later use by the installer. ;; Add the specified binary to PATH for later use by the installer.

View file

@ -180,7 +180,7 @@ Return the corresponding association list of '((KEY . VALUE) (KEY2 . VALUE2)
(define (connman-state) (define (connman-state)
"Return the state of connman. The nominal states are 'offline, 'idle, "Return the state of connman. The nominal states are 'offline, 'idle,
'ready, 'oneline. If an unexpected state is read, 'unknown is 'ready, 'oneline. If an unexpected state is read, 'unknown is
returned. Finally, an error is raised if the comman output could not be returned. Finally, an error is raised if the connman output could not be
parsed, usually because the connman daemon is not responding." parsed, usually because the connman daemon is not responding."
(let* ((output (connman "state")) (let* ((output (connman "state"))
(state-keys (parse-keys output))) (state-keys (parse-keys output)))

View file

@ -107,7 +107,7 @@ problem. The backtrace is displayed below. Please report it by email to \
(run-user-page)) (run-user-page))
(define (partition-page) (define (partition-page)
(run-partioning-page)) (run-partitioning-page))
(define (services-page) (define (services-page)
(run-services-page)) (run-services-page))

View file

@ -106,7 +106,7 @@ symbol.")
territory, codeset and modifier. Use SUPPORTED-LOCALES as the list of glibc territory, codeset and modifier. Use SUPPORTED-LOCALES as the list of glibc
available locales. ISO639-LANGUAGES is an association list associating a available locales. ISO639-LANGUAGES is an association list associating a
locale code to a locale name. ISO3166-TERRITORIES is an association list locale code to a locale name. ISO3166-TERRITORIES is an association list
associating a territory code with a territory name. The formated locale, under associating a territory code with a territory name. The formatted locale, under
glibc format is returned." glibc format is returned."
(define (break-on-locale-found locales) (define (break-on-locale-found locales)

View file

@ -32,7 +32,7 @@
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module (newt) #:use-module (newt)
#:use-module (parted) #:use-module (parted)
#:export (run-partioning-page)) #:export (run-partitioning-page))
(define (button-exit-action) (define (button-exit-action)
"Raise the &installer-step-abort condition." "Raise the &installer-step-abort condition."
@ -725,7 +725,7 @@ by pressing the Exit button.~%~%")))
(run-disk-page result-disks new-user-partitions (run-disk-page result-disks new-user-partitions
#:guided? guided?))))) #:guided? guided?)))))
(define (run-partioning-page) (define (run-partitioning-page)
"Run a page asking the user for a partitioning method." "Run a page asking the user for a partitioning method."
(define (run-page devices) (define (run-page devices)
(let* ((items (let* ((items

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -40,7 +41,7 @@ choose the one to use on the log-in screen.")
#:items items #:items items
#:selection (map system-service-recommended? items) #:selection (map system-service-recommended? items)
#:item->text system-service-name ;no i18n for DE names #:item->text system-service-name ;no i18n for DE names
#:checkbox-tree-height 8 #:checkbox-tree-height 9
#:exit-button-callback-procedure #:exit-button-callback-procedure
(lambda () (lambda ()
(raise (raise

View file

@ -1201,13 +1201,13 @@ the FS-TYPE field set to 'swap, return the empty list if none found."
user-partitions)) user-partitions))
(define (start-swapping user-partitions) (define (start-swapping user-partitions)
"Start swaping on <user-partition> records with FS-TYPE equal to 'swap." "Start swapping on <user-partition> records with FS-TYPE equal to 'swap."
(let* ((swap-user-partitions (find-swap-user-partitions user-partitions)) (let* ((swap-user-partitions (find-swap-user-partitions user-partitions))
(swap-devices (map user-partition-file-name swap-user-partitions))) (swap-devices (map user-partition-file-name swap-user-partitions)))
(for-each swapon swap-devices))) (for-each swapon swap-devices)))
(define (stop-swapping user-partitions) (define (stop-swapping user-partitions)
"Stop swaping on <user-partition> records with FS-TYPE equal to 'swap." "Stop swapping on <user-partition> records with FS-TYPE equal to 'swap."
(let* ((swap-user-partitions (find-swap-user-partitions user-partitions)) (let* ((swap-user-partitions (find-swap-user-partitions user-partitions))
(swap-devices (map user-partition-file-name swap-user-partitions))) (swap-devices (map user-partition-file-name swap-user-partitions)))
(for-each swapoff swap-devices))) (for-each swapoff swap-devices)))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -82,6 +83,11 @@
(name "ratpoison") (name "ratpoison")
(packages '((specification->package "ratpoison") (packages '((specification->package "ratpoison")
(specification->package "xterm")))) (specification->package "xterm"))))
(desktop-environment
(name "Emacs EXWM")
(packages '((specification->package "emacs")
(specification->package "emacs-exwm")
(specification->package "emacs-desktop-environment"))))
;; Networking. ;; Networking.
(system-service (system-service

View file

@ -88,7 +88,7 @@
(rewind-strategy 'previous) (rewind-strategy 'previous)
(menu-proc (const #f))) (menu-proc (const #f)))
"Run the COMPUTE procedure of all <installer-step> records in STEPS "Run the COMPUTE procedure of all <installer-step> records in STEPS
sequencially. If the &installer-step-abort condition is raised, fallback to a sequentially. If the &installer-step-abort condition is raised, fallback to a
previous install-step, accordingly to the specified REWIND-STRATEGY. previous install-step, accordingly to the specified REWIND-STRATEGY.
REWIND-STRATEGY possible values are 'previous, 'menu and 'start. If 'previous REWIND-STRATEGY possible values are 'previous, 'menu and 'start. If 'previous

View file

@ -144,6 +144,8 @@ GNU_SYSTEM_MODULES = \
%D%/packages/cppi.scm \ %D%/packages/cppi.scm \
%D%/packages/cran.scm \ %D%/packages/cran.scm \
%D%/packages/crates-io.scm \ %D%/packages/crates-io.scm \
%D%/packages/crates-graphics.scm \
%D%/packages/crates-gtk.scm \
%D%/packages/cross-base.scm \ %D%/packages/cross-base.scm \
%D%/packages/crypto.scm \ %D%/packages/crypto.scm \
%D%/packages/cryptsetup.scm \ %D%/packages/cryptsetup.scm \
@ -646,6 +648,7 @@ GNU_SYSTEM_MODULES = \
%D%/system/vm.scm \ %D%/system/vm.scm \
\ \
%D%/system/images/hurd.scm \ %D%/system/images/hurd.scm \
%D%/system/images/pine64.scm \
\ \
%D%/machine.scm \ %D%/machine.scm \
\ \
@ -858,6 +861,7 @@ dist_patch_DATA = \
%D%/packages/patches/clang-7.0-libc-search-path.patch \ %D%/packages/patches/clang-7.0-libc-search-path.patch \
%D%/packages/patches/clang-9.0-libc-search-path.patch \ %D%/packages/patches/clang-9.0-libc-search-path.patch \
%D%/packages/patches/clang-10.0-libc-search-path.patch \ %D%/packages/patches/clang-10.0-libc-search-path.patch \
%D%/packages/patches/clang-11.0-libc-search-path.patch \
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \ %D%/packages/patches/clang-runtime-asan-build-fixes.patch \
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \ %D%/packages/patches/clang-runtime-esan-build-fixes.patch \
%D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \ %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \
@ -894,7 +898,6 @@ dist_patch_DATA = \
%D%/packages/patches/dbus-c++-gcc-compat.patch \ %D%/packages/patches/dbus-c++-gcc-compat.patch \
%D%/packages/patches/dbus-c++-threading-mutex.patch \ %D%/packages/patches/dbus-c++-threading-mutex.patch \
%D%/packages/patches/dbxfs-remove-sentry-sdk.patch \ %D%/packages/patches/dbxfs-remove-sentry-sdk.patch \
%D%/packages/patches/dconf-meson-0.52.patch \
%D%/packages/patches/debops-constants-for-external-program-names.patch \ %D%/packages/patches/debops-constants-for-external-program-names.patch \
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \ %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
%D%/packages/patches/dee-vapi.patch \ %D%/packages/patches/dee-vapi.patch \
@ -969,6 +972,7 @@ dist_patch_DATA = \
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
%D%/packages/patches/fontconfig-hurd-path-max.patch \ %D%/packages/patches/fontconfig-hurd-path-max.patch \
%D%/packages/patches/fpc-reproducibility.patch \ %D%/packages/patches/fpc-reproducibility.patch \
%D%/packages/patches/fplll-std-fenv.patch \
%D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \
%D%/packages/patches/freeimage-unbundle.patch \ %D%/packages/patches/freeimage-unbundle.patch \
%D%/packages/patches/fuse-overlapping-headers.patch \ %D%/packages/patches/fuse-overlapping-headers.patch \
@ -1069,6 +1073,7 @@ dist_patch_DATA = \
%D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gmp-faulty-test.patch \
%D%/packages/patches/gnome-shell-theme.patch \ %D%/packages/patches/gnome-shell-theme.patch \
%D%/packages/patches/gnome-shell-disable-test.patch \ %D%/packages/patches/gnome-shell-disable-test.patch \
%D%/packages/patches/gnome-settings-daemon-gc.patch \
%D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \ %D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
%D%/packages/patches/gnome-tweaks-search-paths.patch \ %D%/packages/patches/gnome-tweaks-search-paths.patch \
%D%/packages/patches/gnupg-default-pinentry.patch \ %D%/packages/patches/gnupg-default-pinentry.patch \
@ -1084,6 +1089,7 @@ dist_patch_DATA = \
%D%/packages/patches/gpsbabel-qstring.patch \ %D%/packages/patches/gpsbabel-qstring.patch \
%D%/packages/patches/grantlee-merge-theme-dirs.patch \ %D%/packages/patches/grantlee-merge-theme-dirs.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/grim-revert-output-rotation.patch \
%D%/packages/patches/grocsvs-dont-use-admiral.patch \ %D%/packages/patches/grocsvs-dont-use-admiral.patch \
%D%/packages/patches/gromacs-tinyxml2.patch \ %D%/packages/patches/gromacs-tinyxml2.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \ %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
@ -1132,6 +1138,7 @@ dist_patch_DATA = \
%D%/packages/patches/hubbub-sort-entities.patch \ %D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-cross.patch \ %D%/packages/patches/hurd-cross.patch \
%D%/packages/patches/hurd-xattr.patch \ %D%/packages/patches/hurd-xattr.patch \
%D%/packages/patches/hplip-fix-bug-1898438.patch \
%D%/packages/patches/hplip-remove-imageprocessor.patch \ %D%/packages/patches/hplip-remove-imageprocessor.patch \
%D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \
%D%/packages/patches/icecat-makeicecat.patch \ %D%/packages/patches/icecat-makeicecat.patch \
@ -1155,8 +1162,14 @@ dist_patch_DATA = \
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \ %D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \ %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
%D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \ %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \
%D%/packages/patches/jamvm-arm.patch \ %D%/packages/patches/jamvm-2.0.0-opcode-guard.patch \
%D%/packages/patches/java-antlr4-Add-standalone-generator.patch \
%D%/packages/patches/java-antlr4-fix-code-too-large.java \
%D%/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch \
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
%D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \
%D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \
@ -1198,7 +1211,6 @@ dist_patch_DATA = \
%D%/packages/patches/kodi-increase-test-timeout.patch \ %D%/packages/patches/kodi-increase-test-timeout.patch \
%D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \ %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \
%D%/packages/patches/kodi-skip-test-449.patch \ %D%/packages/patches/kodi-skip-test-449.patch \
%D%/packages/patches/konversation-Fix-build-with-Qt-5.11.patch \
%D%/packages/patches/laby-make-install.patch \ %D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/lcalc-default-parameters-1.patch \ %D%/packages/patches/lcalc-default-parameters-1.patch \
%D%/packages/patches/lcalc-default-parameters-2.patch \ %D%/packages/patches/lcalc-default-parameters-2.patch \
@ -1219,14 +1231,14 @@ dist_patch_DATA = \
%D%/packages/patches/libbase-use-own-logging.patch \ %D%/packages/patches/libbase-use-own-logging.patch \
%D%/packages/patches/libbonobo-activation-test-race.patch \ %D%/packages/patches/libbonobo-activation-test-race.patch \
%D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
%D%/packages/patches/libdrm-realpath-virtio.patch \ %D%/packages/patches/libcanberra-wayland-crash.patch \
%D%/packages/patches/libcyaml-libyaml-compat.patch \
%D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \ %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \
%D%/packages/patches/libgit2-mtime-0.patch \ %D%/packages/patches/libgit2-mtime-0.patch \
%D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnome-encoding.patch \
%D%/packages/patches/libgnomeui-utf8.patch \ %D%/packages/patches/libgnomeui-utf8.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \ %D%/packages/patches/libjxr-fix-typos.patch \
%D%/packages/patches/liblouisutdml-fix-tests.patch \
%D%/packages/patches/libofa-ftbfs-1.diff \ %D%/packages/patches/libofa-ftbfs-1.diff \
%D%/packages/patches/libofa-curl.diff \ %D%/packages/patches/libofa-curl.diff \
%D%/packages/patches/libofa-ftbfs-2.diff \ %D%/packages/patches/libofa-ftbfs-2.diff \
@ -1244,10 +1256,6 @@ dist_patch_DATA = \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \ %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \ %D%/packages/patches/libquicktime-ffmpeg.patch \
%D%/packages/patches/libsndfile-armhf-type-checks.patch \
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \
%D%/packages/patches/libsndfile-CVE-2017-12562.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \
%D%/packages/patches/libtgvoip-disable-sse2.patch \ %D%/packages/patches/libtgvoip-disable-sse2.patch \
%D%/packages/patches/libtgvoip-disable-webrtc.patch \ %D%/packages/patches/libtgvoip-disable-webrtc.patch \
@ -1283,6 +1291,7 @@ dist_patch_DATA = \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \
%D%/packages/patches/lrcalc-includes.patch \ %D%/packages/patches/lrcalc-includes.patch \
%D%/packages/patches/lrzip-CVE-2017-8842.patch \ %D%/packages/patches/lrzip-CVE-2017-8842.patch \
%D%/packages/patches/lsh-fix-x11-forwarding.patch \
%D%/packages/patches/lua-CVE-2014-5461.patch \ %D%/packages/patches/lua-CVE-2014-5461.patch \
%D%/packages/patches/lua-pkgconfig.patch \ %D%/packages/patches/lua-pkgconfig.patch \
%D%/packages/patches/lua51-liblua-so.patch \ %D%/packages/patches/lua51-liblua-so.patch \
@ -1291,8 +1300,8 @@ dist_patch_DATA = \
%D%/packages/patches/luajit-no_ldconfig.patch \ %D%/packages/patches/luajit-no_ldconfig.patch \
%D%/packages/patches/luit-posix.patch \ %D%/packages/patches/luit-posix.patch \
%D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/lvm2-static-link.patch \
%D%/packages/patches/mailutils-fix-uninitialized-variable.patch \
%D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/mariadb-client-test-32bit.patch \
%D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.patch \ %D%/packages/patches/mars-sfml-2.3.patch \
%D%/packages/patches/maxima-defsystem-mkdir.patch \ %D%/packages/patches/maxima-defsystem-mkdir.patch \
@ -1351,9 +1360,10 @@ dist_patch_DATA = \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \ %D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/network-manager-plugin-path.patch \ %D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/nginx-socket-cloexec.patch \
%D%/packages/patches/nsis-env-passthru.patch \ %D%/packages/patches/nsis-env-passthru.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-pkgconfig.patch \ %D%/packages/patches/nss-3.56-pkgconfig.patch \
%D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \ %D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \
%D%/packages/patches/nvi-assume-preserve-path.patch \ %D%/packages/patches/nvi-assume-preserve-path.patch \
%D%/packages/patches/nvi-dbpagesize-binpower.patch \ %D%/packages/patches/nvi-dbpagesize-binpower.patch \
@ -1400,6 +1410,7 @@ dist_patch_DATA = \
%D%/packages/patches/pango-skip-libthai-test.patch \ %D%/packages/patches/pango-skip-libthai-test.patch \
%D%/packages/patches/pciutils-hurd-configure.patch \ %D%/packages/patches/pciutils-hurd-configure.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \ %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/samba-fix-fcntl-hint-detection.patch \
%D%/packages/patches/sdl-pango-api_additions.patch \ %D%/packages/patches/sdl-pango-api_additions.patch \
%D%/packages/patches/sdl-pango-blit_overflow.patch \ %D%/packages/patches/sdl-pango-blit_overflow.patch \
%D%/packages/patches/sdl-pango-fillrect_crash.patch \ %D%/packages/patches/sdl-pango-fillrect_crash.patch \
@ -1407,6 +1418,7 @@ dist_patch_DATA = \
%D%/packages/patches/sdl-pango-matrix_declarations.patch \ %D%/packages/patches/sdl-pango-matrix_declarations.patch \
%D%/packages/patches/sdl-pango-sans-serif.patch \ %D%/packages/patches/sdl-pango-sans-serif.patch \
%D%/packages/patches/sqlite-hurd.patch \ %D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/sunxi-tools-remove-sys-io.patch \
%D%/packages/patches/patchutils-test-perms.patch \ %D%/packages/patches/patchutils-test-perms.patch \
%D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \
@ -1421,6 +1433,7 @@ dist_patch_DATA = \
%D%/packages/patches/perl-module-pluggable-search.patch \ %D%/packages/patches/perl-module-pluggable-search.patch \
%D%/packages/patches/perl-reproducible-build-date.patch \ %D%/packages/patches/perl-reproducible-build-date.patch \
%D%/packages/patches/perl-www-curl-remove-symbol.patch \ %D%/packages/patches/perl-www-curl-remove-symbol.patch \
%D%/packages/patches/picard-fix-id3-rename-test.patch \
%D%/packages/patches/picprog-non-intel-support.patch \ %D%/packages/patches/picprog-non-intel-support.patch \
%D%/packages/patches/pidgin-add-search-path.patch \ %D%/packages/patches/pidgin-add-search-path.patch \
%D%/packages/patches/pidgin-libnm.patch \ %D%/packages/patches/pidgin-libnm.patch \
@ -1481,7 +1494,6 @@ dist_patch_DATA = \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \ %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-configobj-setuptools.patch \ %D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-flask-restful-werkzeug-compat.patch \ %D%/packages/patches/python-flask-restful-werkzeug-compat.patch \
%D%/packages/patches/python-gst-fix-build-with-python-3.8.patch \
%D%/packages/patches/python-keras-integration-test.patch \ %D%/packages/patches/python-keras-integration-test.patch \
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \ %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
@ -1506,6 +1518,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-unittest2-remove-argparse.patch \ %D%/packages/patches/python-unittest2-remove-argparse.patch \
%D%/packages/patches/python-waitress-fix-tests.patch \ %D%/packages/patches/python-waitress-fix-tests.patch \
%D%/packages/patches/pypy3-7.3.1-fix-tests.patch \ %D%/packages/patches/pypy3-7.3.1-fix-tests.patch \
%D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \ %D%/packages/patches/qemu-glibc-2.27.patch \
%D%/packages/patches/qrcodegen-cpp-make-install.patch \ %D%/packages/patches/qrcodegen-cpp-make-install.patch \
%D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qt4-ldflags.patch \
@ -1555,7 +1568,6 @@ dist_patch_DATA = \
%D%/packages/patches/rust-reproducible-builds.patch \ %D%/packages/patches/rust-reproducible-builds.patch \
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \ %D%/packages/patches/rust-openssl-sys-no-vendor.patch \
%D%/packages/patches/rxvt-unicode-escape-sequences.patch \ %D%/packages/patches/rxvt-unicode-escape-sequences.patch \
%D%/packages/patches/sbcl-graph-asdf-definitions.patch \
%D%/packages/patches/scalapack-blacs-mpi-deprecations.patch \ %D%/packages/patches/scalapack-blacs-mpi-deprecations.patch \
%D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scheme48-tests.patch \
%D%/packages/patches/scotch-build-parallelism.patch \ %D%/packages/patches/scotch-build-parallelism.patch \
@ -1625,6 +1637,7 @@ dist_patch_DATA = \
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \ %D%/packages/patches/ucx-tcp-iface-ioctl.patch \
%D%/packages/patches/udiskie-no-appindicator.patch \ %D%/packages/patches/udiskie-no-appindicator.patch \
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \ %D%/packages/patches/ungoogled-chromium-system-nspr.patch \
%D%/packages/patches/unison-fix-ocaml-4.08.patch \
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \ %D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
%D%/packages/patches/unzip-CVE-2014-8139.patch \ %D%/packages/patches/unzip-CVE-2014-8139.patch \
%D%/packages/patches/unzip-CVE-2014-8140.patch \ %D%/packages/patches/unzip-CVE-2014-8140.patch \
@ -1688,6 +1701,7 @@ dist_patch_DATA = \
%D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \
%D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \ %D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \
%D%/packages/patches/xpra-4.0.1-systemd-run.patch \ %D%/packages/patches/xpra-4.0.1-systemd-run.patch \
%D%/packages/patches/xpra-4.0.4-norequests.patch \
%D%/packages/patches/xsane-fix-memory-leak.patch \ %D%/packages/patches/xsane-fix-memory-leak.patch \
%D%/packages/patches/xsane-fix-pdf-floats.patch \ %D%/packages/patches/xsane-fix-pdf-floats.patch \
%D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \ %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \

View file

@ -480,6 +480,8 @@ an environment type of 'managed-host."
(raise roll-back-failure))) (raise roll-back-failure)))
(entries -> (map boot-parameters->menu-entry (entries -> (map boot-parameters->menu-entry
(list (second boot-parameters)))) (list (second boot-parameters))))
(locale -> (boot-parameters-locale
(second boot-parameters)))
(old-entries -> (map boot-parameters->menu-entry (old-entries -> (map boot-parameters->menu-entry
(drop boot-parameters 2))) (drop boot-parameters 2)))
(bootloader -> (operating-system-bootloader (bootloader -> (operating-system-bootloader
@ -489,6 +491,7 @@ an environment type of 'managed-host."
(bootloader-configuration-bootloader (bootloader-configuration-bootloader
bootloader)) bootloader))
bootloader entries bootloader entries
#:locale locale
#:old-entries old-entries))) #:old-entries old-entries)))
(remote-result (machine-remote-eval machine remote-exp))) (remote-result (machine-remote-eval machine remote-exp)))
(when (eqv? 'error remote-result) (when (eqv? 'error remote-result)

View file

@ -19,6 +19,7 @@
(define-module (gnu packages abduco) (define-module (gnu packages abduco)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix packages)) #:use-module (guix packages))
@ -37,7 +38,7 @@
"1x1m58ckwsprljgmdy93mvgjyg9x3cqrzdf3mysp0mx97zhhj2f9")))) "1x1m58ckwsprljgmdy93mvgjyg9x3cqrzdf3mysp0mx97zhhj2f9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list "CC=gcc" `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" (assoc-ref %outputs "out"))) (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)

View file

@ -3,6 +3,7 @@
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw> ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -272,7 +273,7 @@ available to help to click.")
`(("hidapi" ,hidapi))) `(("hidapi" ,hidapi)))
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:make-flags (list "CC=gcc") #:make-flags (list (string-append "CC=" ,(cc-for-target)))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
;; Install target in the Makefile does not work for Guix ;; Install target in the Makefile does not work for Guix
@ -308,7 +309,7 @@ devices have vendorId:productId = 0c45:7403 or 0c45:7404.")
(arguments (arguments
`(#:tests? #f ; none included `(#:tests? #f ; none included
#:make-flags #:make-flags
(list "CC=gcc" (list (string-append "CC=" ,(cc-for-target))
(string-append "prefix=" (assoc-ref %outputs "out"))) (string-append "prefix=" (assoc-ref %outputs "out")))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases

View file

@ -5,6 +5,7 @@
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -25,6 +26,7 @@
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (gnu packages attr) #:use-module (gnu packages attr)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages hurd)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (guix packages) #:use-module (guix packages)
@ -49,6 +51,7 @@
`(#:modules ((ice-9 ftw) `(#:modules ((ice-9 ftw)
,@%gnu-build-system-modules) ,@%gnu-build-system-modules)
#:configure-flags '("--disable-static") #:configure-flags '("--disable-static")
#:tests? ,(not (hurd-target?))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; XXX After repacking the sources the timestamps are reset to the ;; XXX After repacking the sources the timestamps are reset to the

View file

@ -9,7 +9,7 @@
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at> ;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net> ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@ -443,7 +443,7 @@ graphs and can export its output to different formats.")
(define-public facter (define-public facter
(package (package
(name "facter") (name "facter")
(version "4.0.35") (version "4.0.43")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -452,7 +452,7 @@ graphs and can export its output to different formats.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1f203g2hp96cp8w4x1myhqdj5j09z9s23kylwkrxr69fjhn0vhnb")))) "0ppzr7vsl6iw8x82c4g60mx1vz06nzwcy8byablhg0n0g6qa3pb0"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -514,7 +514,7 @@ or via the @code{facter} Ruby library.")
(define-public htop (define-public htop
(package (package
(name "htop") (name "htop")
(version "3.0.1") (version "3.0.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -522,7 +522,7 @@ or via the @code{facter} Ruby library.")
(url "https://github.com/htop-dev/htop") (url "https://github.com/htop-dev/htop")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "0kjlphdvwwbj91kk91s4ksc954d3c2bznddzx2223jmb1bn9rcsa")) (base32 "1qmqhbnc5yw4brd24yrp85k09770c1c00nl03mkv5pdz2bvqivk7"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
@ -834,7 +834,7 @@ would need and has several interesting built-in capabilities.")
(define-public netcat-openbsd (define-public netcat-openbsd
(package (package
(name "netcat-openbsd") (name "netcat-openbsd")
(version "1.217-1") (version "1.217-2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -843,12 +843,12 @@ would need and has several interesting built-in capabilities.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0kcvi3pav2fdx5c22psjv5dggk4cmrqiaq2cklhqngsk4a7vrjan")))) "19sr52ix14w344pv13ppb0c1wyg5dxhic1fw2q0s3qfmx57b9hhp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no test suite `(#:tests? #f ; no test suite
#:make-flags #:make-flags
(list "CC=gcc") (list (string-append "CC=" ,(cc-for-target)))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
@ -1404,7 +1404,7 @@ system administrator.")
(define-public sudo (define-public sudo
(package (package
(name "sudo") (name "sudo")
(version "1.9.2") (version "1.9.3p1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -1414,25 +1414,19 @@ system administrator.")
version ".tar.gz"))) version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"05432672iilb7s52j9l9xzrlambb1wg3k7qvf5973i41y40x563w")) "17mldsg5d08s23cskmjxfa81ibnqw3slgf3l4023j72ywi9xxffw"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
(delete-file-recursively "lib/zlib") (delete-file-recursively "lib/zlib")
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs (list "out" "python")) (outputs (list "out"))
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list (string-append "--docdir=" (assoc-ref %outputs "out") (list (string-append "--docdir=" (assoc-ref %outputs "out")
"/share/doc/" ,name "-" ,version) "/share/doc/" ,name "-" ,version)
;; XXX: Disable Python support when cross-compiling because
;; 'configure' tries to run 'python', which fails.
,(if (%current-target-system)
"--disable-python"
"--enable-python") ; for plug-ins written in ~
"--with-logpath=/var/log/sudo.log" "--with-logpath=/var/log/sudo.log"
"--with-rundir=/var/run/sudo" ; must be cleaned up at boot time "--with-rundir=/var/run/sudo" ; must be cleaned up at boot time
"--with-vardir=/var/db/sudo" "--with-vardir=/var/db/sudo"
@ -1479,34 +1473,19 @@ system administrator.")
(substitute* "plugins/sudoers/Makefile.in" (substitute* "plugins/sudoers/Makefile.in"
(("^pre-install:" match) (("^pre-install:" match)
(string-append match "\ndisabled-" match))) (string-append match "\ndisabled-" match)))
#t)) #t)))
(add-after 'install 'separate-python-output
(lambda* (#:key target outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(out:python (assoc-ref outputs "python")))
(if target
(mkdir-p (string-append out:python "/empty"))
(for-each
(lambda (file)
(let ((old (string-append out "/" file))
(new (string-append out:python "/" file)))
(mkdir-p (dirname new))
(rename-file old new)))
(list "libexec/sudo/python_plugin.so"
"libexec/sudo/python_plugin.la")))
#t))))
;; XXX: The 'testsudoers' test series expects user 'root' to exist, but ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
;; the chroot's /etc/passwd doesn't have it. Turn off the tests. ;; the chroot's /etc/passwd doesn't have it. Turn off the tests.
#:tests? #f)) #:tests? #f))
(native-inputs (native-inputs
`(("groff" ,groff))) ;; XXX TODO: Remove on next rebuild cycle.
(if (hurd-target?)
'()
`(("groff" ,groff))))
(inputs (inputs
`(("coreutils" ,coreutils) `(("coreutils" ,coreutils)
("linux-pam" ,linux-pam) ("linux-pam" ,linux-pam)
,@(if (%current-target-system)
'()
`(("python" ,python)))
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "https://www.sudo.ws/") (home-page "https://www.sudo.ws/")
(synopsis "Run commands as root") (synopsis "Run commands as root")
@ -1837,21 +1816,24 @@ network, which causes enabled computers to power on.")
(define-public dmidecode (define-public dmidecode
(package (package
(name "dmidecode") (name "dmidecode")
(version "3.2") (version "3.3")
(source (origin (source
(method url-fetch) (origin
(uri (string-append (method url-fetch)
"mirror://savannah/dmidecode/dmidecode-" (uri (string-append "mirror://savannah/dmidecode/dmidecode-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32 "0m8lzg9rf1qssasiix672bxk5qwms90561g8hfkkhk31h2kkgiw2"))))
"1pcfhcgs2ifdjwp7amnsr3lq95pgxpr150bjhdinvl505px0cw07"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases (delete 'configure)) `(#:tests? #f ; no 'check' target
#:tests? #f ; no 'check' target #:make-flags
#:make-flags (list (string-append "prefix=" (list (string-append "CC=" ,(cc-for-target))
(assoc-ref %outputs "out"))))) (string-append "prefix="
(assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure)))) ; no configure script
(home-page "https://www.nongnu.org/dmidecode/") (home-page "https://www.nongnu.org/dmidecode/")
(synopsis "Read hardware information from the BIOS") (synopsis "Read hardware information from the BIOS")
(description (description
@ -2613,14 +2595,14 @@ done with the @code{auditctl} utility.")
(define-public nmap (define-public nmap
(package (package
(name "nmap") (name "nmap")
(version "7.80") (version "7.91")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://nmap.org/dist/nmap-" version (uri (string-append "https://nmap.org/dist/nmap-" version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1aizfys6l9f9grm82bk878w56mg0zpkfns3spzj157h98875mypw")) "001kb5xadqswyw966k2lqi6jr6zz605jpp9w4kmm272if184pk0q"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -2698,7 +2680,7 @@ advanced netcat implementation (ncat), a utility for comparing scan
results (ndiff), and a packet generation and response analysis tool (nping).") results (ndiff), and a packet generation and response analysis tool (nping).")
;; This package uses nmap's bundled versions of libdnet and liblinear, which ;; This package uses nmap's bundled versions of libdnet and liblinear, which
;; both use a 3-clause BSD license. ;; both use a 3-clause BSD license.
(license (list license:nmap license:bsd-3)))) (license (list license:npsl license:bsd-3))))
(define-public dstat (define-public dstat
(package (package
@ -2718,9 +2700,8 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no make check `(#:tests? #f ; no make check
#:make-flags (let ((out (assoc-ref %outputs "out"))) #:make-flags
(list (string-append "DESTDIR=" out) (list (string-append "prefix=" (assoc-ref %outputs "out")))
"prefix=/"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'fix-python3-DeprecationWarning (add-after 'unpack 'fix-python3-DeprecationWarning
@ -2952,6 +2933,8 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 "04f3jqg8ww4jxsf9c6ddcdgy2xbhkyp0b3l5f1hvvbv94p81rjxd")) (base32 "04f3jqg8ww4jxsf9c6ddcdgy2xbhkyp0b3l5f1hvvbv94p81rjxd"))
(patches
(search-patches "sunxi-tools-remove-sys-io.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Remove binaries contained in the tarball which are only for the ;; Remove binaries contained in the tarball which are only for the
@ -3595,7 +3578,7 @@ Python loading in HPC environments.")
(let ((real-name "inxi")) (let ((real-name "inxi"))
(package (package
(name "inxi-minimal") (name "inxi-minimal")
(version "3.1.06-1") (version "3.1.07-1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3604,7 +3587,7 @@ Python loading in HPC environments.")
(commit version))) (commit version)))
(file-name (git-file-name real-name version)) (file-name (git-file-name real-name version))
(sha256 (sha256
(base32 "0h65n03q9kdsv0i1q5f88i11iv79ca7fqq97rdkzkmiqb4whhnm2")))) (base32 "0hs4m2vmfc6srscaz72r6zpkn6n7msgzlps376ks38gj1l103xfn"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(inputs (inputs
`(("bash" ,bash-minimal) `(("bash" ,bash-minimal)
@ -4105,3 +4088,44 @@ the system configuration; hosts only works when using the Guix package manager
on a foreign distro. @command{hosts} works with existing hosts files and on a foreign distro. @command{hosts} works with existing hosts files and
entries, providing commands to add, remove, comment, and search.") entries, providing commands to add, remove, comment, and search.")
(license license:expat))) (license license:expat)))
(define-public nmrpflash
(package
(name "nmrpflash")
(version "0.9.14")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/jclehner/nmrpflash.git")
(commit (string-append "v" version))))
(sha256
(base32 "1fdjrxhjs96rdclbkld57xarf592slhkp79h46z833npxpn12ck1"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("libnl" ,libnl)
("libpcap" ,libpcap)))
(arguments
`(#:tests? #f ; None exist
#:make-flags
(list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'install 'prepare-install
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
#t)))))
(home-page "https://github.com/jclehner/nmrpflash")
(synopsis "Netgear unbrick utility")
(description "This package provides a utility to flash a new firmware
image to a Netgear device. It has been tested on Netgear EX2700, EX6120,
EX6150v2, DNG3700v2, R6100, R6220, R7000, D7000, WNR3500, R6400, R6800,
R8000, R8500, WNDR3800, but is likely to be compatible with many other
Netgear devices.")
(license license:gpl3+)))

View file

@ -48,6 +48,7 @@
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mpi) #:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
@ -123,15 +124,15 @@ greatest common divisor operations.")
(define-public cm (define-public cm
(package (package
(name "cm") (name "cm")
(version "0.3") (version "0.3.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://www.multiprecision.org/cm/download/cm-" "http://www.multiprecision.org/downloads/cm-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1nf5kr0nqmhbzrsrinky18z0ighjpsmb5cr8zyg8jf04bfbyrfmc")))) "0qq6b1kwb1byj8ws33ya5awq0ilkpm32037pi1l4cf2737fg9m42"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("mpfrcx" ,mpfrcx) `(("mpfrcx" ,mpfrcx)
@ -151,12 +152,7 @@ line applications.")
(define-public fplll (define-public fplll
(package (package
(name "fplll") (name "fplll")
;; The most recent version 5.3.3 fails in the configure phase: (version "5.3.3")
;; ./configure: line 12956: syntax error near unexpected token `LIBQD,'
;; ./configure: line 12956: ` PKG_CHECK_MODULES(LIBQD, qd, have_libqd="yes",'
;; The error disappears when adding qd as an input; but this is
;; supposed to be an optional input.
(version "5.3.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -165,13 +161,15 @@ line applications.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"00iyz218ywspizjiimrjdcqvdqmrsb2367zyy3vkmypnf9i9l680")))) "06nyfidagp8pc2kfcw88ldgb2b1xm0a8z31n0sln7j72ihlmd8zj"))
(patches (search-patches "fplll-std-fenv.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
("libtool" ,libtool))) ("libtool" ,libtool)
(inputs ("pkg-config" ,pkg-config)))
(propagated-inputs ; header files pulled in by fplll/defs.h
`(("gmp" ,gmp) `(("gmp" ,gmp)
("mpfr" ,mpfr))) ("mpfr" ,mpfr)))
(home-page "https://github.com/fplll/fplll") (home-page "https://github.com/fplll/fplll")
@ -357,7 +355,7 @@ precision.")
(define-public giac (define-public giac
(package (package
(name "giac") (name "giac")
(version "1.6.0-7") (version "1.6.0-25")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -369,7 +367,7 @@ precision.")
"~parisse/debian/dists/stable/main/source/" "~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz")) "giac_" version ".tar.gz"))
(sha256 (sha256
(base32 "1pvgp137zcl0rbhdn1j41xxfml7fp771a7x4ph8qrhhlx0hxzn3p")))) (base32 "11kik2csdg9wy0npiih21kaag0nc89i9ldgk7ak7gvf9ycddm6mh"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((ice-9 ftw) `(#:modules ((ice-9 ftw)
@ -380,7 +378,8 @@ precision.")
(add-after 'unpack 'patch-bin-cp (add-after 'unpack 'patch-bin-cp
;; Some Makefiles contain hard-coded "/bin/cp". ;; Some Makefiles contain hard-coded "/bin/cp".
(lambda _ (lambda _
(substitute* (find-files "doc" "^Makefile") (substitute* (cons "micropython-1.12/xcas/Makefile"
(find-files "doc" "^Makefile"))
(("/bin/cp") (which "cp"))) (("/bin/cp") (which "cp")))
#t)) #t))
(add-after 'unpack 'disable-failing-test (add-after 'unpack 'disable-failing-test
@ -409,7 +408,7 @@ precision.")
(delete-file (string-append out "/bin/xcasnew")) (delete-file (string-append out "/bin/xcasnew"))
#t)))))) #t))))))
(inputs (inputs
;;; TODO: Add libnauty. ;; TODO: Add libnauty, unbundle "libmicropython.a".
`(("fltk" ,fltk) `(("fltk" ,fltk)
("glpk" ,glpk) ("glpk" ,glpk)
("gmp" ,gmp) ("gmp" ,gmp)
@ -433,6 +432,8 @@ precision.")
(native-inputs (native-inputs
`(("bison" ,bison) `(("bison" ,bison)
("flex" ,flex) ("flex" ,flex)
("hevea" ,hevea)
("python" ,python-wrapper)
("readline" ,readline) ("readline" ,readline)
("texlive" ,texlive-tiny))) ("texlive" ,texlive-tiny)))
(home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html") (home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html")
@ -1554,7 +1555,7 @@ structure constants of Schubert polynomials.")
"0akwhhz9b40bz6lrfxpamp7r7wkk48p455qbn04mfnl9a1l6db8x")))) "0akwhhz9b40bz6lrfxpamp7r7wkk48p455qbn04mfnl9a1l6db8x"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gmp", gmp) `(("gmp" ,gmp)
("cblas" ,openblas))) ; or any other BLAS library; the documentation ("cblas" ,openblas))) ; or any other BLAS library; the documentation
; mentions ATLAS in particular ; mentions ATLAS in particular
(arguments (arguments

View file

@ -44,14 +44,14 @@
(define-public clamav (define-public clamav
(package (package
(name "clamav") (name "clamav")
(version "0.102.4") (version "0.103.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.clamav.net/downloads/production/" (uri (string-append "https://www.clamav.net/downloads/production/"
"clamav-" version ".tar.gz")) "clamav-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"06rrzyrhnr0rswryijpbbzywr6387rv8qjq8sb8cl3h2d1m45ggf")) "0ih5x1rscg2m64y0z20njj7435q8k7ss575cfw7aipdzfx979a9j"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View file

@ -9,6 +9,8 @@
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk> ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl> ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -33,7 +35,9 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
@ -457,3 +461,50 @@ under permissive licensing terms. See the 'Copyright' file."))))
(define-word-list-dictionary hunspell-dict-en-us (define-word-list-dictionary hunspell-dict-en-us
"en_US" "en_US"
(synopsis "Hunspell dictionary for United States English")) (synopsis "Hunspell dictionary for United States English"))
(define-public ispell
(package
(name "ispell")
(version "3.4.00")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.cs.hmc.edu/~geoff/tars/ispell-"
version ".tar.gz"))
(sha256
(base32
"1hmfnz55qzfpz7lz0r3m4kkv31smir92ks9s5l1iiwimhr2jxi2x"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Based on local.h.linux
(let* ((grep (assoc-ref inputs "grep"))
(out (assoc-ref outputs "out")))
(call-with-output-file "local.h"
(lambda (port)
(format port "#define MINIMENU~%")
(format port "#define USG~%")
(format port "#define HAS_RENAME~%")
(format port "#define CC \"gcc\"~%")
(format port "#define POUNDBANG \"#!~a\"~%" (which "sh"))
(format port "#define EGREPCMD \"~a/bin/grep -Ei\"~%" grep)
(format port "#define BINDIR \"~a/bin\"~%" out)
(format port "#define LIBDIR \"~a/lib/ispell\"~%" out)
(format port "#define MAN1DIR \"~a/share/man/man1\"~%" out)
(format port "#define MAN45DIR \"~a/share/man/man5\"~%" out))))
#t)))))
(inputs
`(("grep" ,grep)
("ncurses" ,ncurses)))
(native-inputs
`(("bison" ,bison)))
(synopsis "Interactive spell-checking tool for Unix")
(description "Ispell is an interactive spell-checking tool supporting many
European languages.")
(home-page "https://www.cs.hmc.edu/~geoff/ispell.html")
(license bsd-3)))

View file

@ -159,7 +159,7 @@ programs for the manipulation and analysis of astronomical data.")
(define-public stellarium (define-public stellarium
(package (package
(name "stellarium") (name "stellarium")
(version "0.20.2") (version "0.20.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -167,7 +167,7 @@ programs for the manipulation and analysis of astronomical data.")
"/releases/download/v" version "/releases/download/v" version
"/stellarium-" version ".tar.gz")) "/stellarium-" version ".tar.gz"))
(sha256 (sha256
(base32 "16symz212vjvhfabh39a68qf7d0rm574c6djlibj2qd1q9jgj3j0")))) (base32 "0z5r7b1ac43l330xphxnw54xg7jm87ajix8yl4hkq82cs5ja7097"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("qtbase" ,qtbase) `(("qtbase" ,qtbase)
@ -328,7 +328,7 @@ Mechanics, Astrometry and Astrodynamics library.")
("freetype" ,freetype) ("freetype" ,freetype)
("pango" ,pango) ("pango" ,pango)
("giflib" ,giflib) ("giflib" ,giflib)
("libjpeg", libjpeg-turbo) ("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng) ("libpng" ,libpng)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("netpbm" ,netpbm) ("netpbm" ,netpbm)

View file

@ -33,6 +33,7 @@
;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net> ;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1046,7 +1047,7 @@ tools (analyzer, mono/stereo tools, crossovers).")
`(("lv2" ,lv2))) `(("lv2" ,lv2)))
;; home-page of the original LADSPA version: http://quitte.de/dsp/caps.html ;; home-page of the original LADSPA version: http://quitte.de/dsp/caps.html
(home-page "https://github.com/moddevices/caps-lv2") (home-page "https://github.com/moddevices/caps-lv2")
(synopsis "LV2 port of the CAPS audio plugin colection") (synopsis "LV2 port of the CAPS audio plugin collection")
(description (description
"LV2 port of CAPS, a collection of audio plugins comprising basic virtual "LV2 port of CAPS, a collection of audio plugins comprising basic virtual
guitar amplification and a small range of classic effects, signal processors and guitar amplification and a small range of classic effects, signal processors and
@ -1631,7 +1632,7 @@ follower.")
(define-public fluidsynth (define-public fluidsynth
(package (package
(name "fluidsynth") (name "fluidsynth")
(version "2.1.4") (version "2.1.5")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1640,7 +1641,7 @@ follower.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1r3khwyw57ybg5m4x0rvdzq7hgw2484sd52k6bm19akbw8yicfna")))) "0ccpq4p1h1g53ng3961g3lh590qnwvpzwdzpl6ai4j6iazq0bh73"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f ; no check target '(#:tests? #f ; no check target
@ -2030,7 +2031,7 @@ synchronous execution of all clients, and low latency operation.")
(define-public jack-2 (define-public jack-2
(package (inherit jack-1) (package (inherit jack-1)
(name "jack2") (name "jack2")
(version "1.9.13") (version "1.9.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/jackaudio/jack2/releases/" (uri (string-append "https://github.com/jackaudio/jack2/releases/"
@ -2039,7 +2040,7 @@ synchronous execution of all clients, and low latency operation.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1d1d403jn4366mqig6g8ghr8057b3rn7gs26b5p3rkal34j20qw2")))) "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
(build-system waf-build-system) (build-system waf-build-system)
(arguments (arguments
`(#:tests? #f ; no check target `(#:tests? #f ; no check target
@ -2049,6 +2050,10 @@ synchronous execution of all clients, and low latency operation.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'set-linkflags (add-before 'configure 'set-linkflags
(lambda _ (lambda _
;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
;; will not link with undefined reference to symbol
;; '__gxx_personality_v0@@CXXABI_1.3'
(setenv "LDFLAGS" "-lstdc++")
;; Add $libdir to the RUNPATH of all the binaries. ;; Add $libdir to the RUNPATH of all the binaries.
(substitute* "wscript" (substitute* "wscript"
((".*CFLAGS.*-Wall.*" m) ((".*CFLAGS.*-Wall.*" m)
@ -2676,20 +2681,21 @@ different audio devices such as ALSA or PulseAudio.")
(define-public qjackctl (define-public qjackctl
(package (package
(name "qjackctl") (name "qjackctl")
(version "0.5.9") (version "0.6.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz")) version "/qjackctl-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1saywsda9m124rmjp7i3n0llryaliabjxhqhvqr6dm983qy7pypk")))) "0zbb4jlx56qvcqyhx34mbagkqf3wbxgj84hk0ppf5cmcrxv67d4x"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f)) ; no check target '(#:tests? #f)) ; no check target
(inputs (inputs
`(("jack" ,jack-1) `(("jack" ,jack-1)
("alsa-lib" ,alsa-lib) ("alsa-lib" ,alsa-lib)
("portaudio" ,portaudio)
("qtbase" ,qtbase) ("qtbase" ,qtbase)
("qtx11extras" ,qtx11extras))) ("qtx11extras" ,qtx11extras)))
(native-inputs (native-inputs
@ -3054,6 +3060,32 @@ that toolkit will work in all hosts that use Suil automatically.
Suil currently supports every combination of Gtk, Qt, and X11.") Suil currently supports every combination of Gtk, Qt, and X11.")
(license license:isc))) (license license:isc)))
(define-public libebur128
(package
(name "libebur128")
(version "1.2.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jiixyj/libebur128")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0n81rnm8dm1zmibkr2v3q79rsd609y0dbbsrbay18njcjva88p0g"))))
(build-system cmake-build-system)
(arguments
`(;; Tests require proprietary .wav files. See
;; https://github.com/jiixyj/libebur128/issues/82.
#:tests? #f
#:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
(home-page "https://github.com/jiixyj/libebur128")
(synopsis "Library implementing the EBU R 128 loudness standard")
(description
"@code{libebur128} is a C library that implements the EBU R 128 standard
for loudness normalisation.")
(license license:expat)))
(define-public timidity++ (define-public timidity++
(package (package
(name "timidity++") (name "timidity++")
@ -3298,7 +3330,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
(define-public soundtouch (define-public soundtouch
(package (package
(name "soundtouch") (name "soundtouch")
(version "2.1.2") (version "2.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3307,7 +3339,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "174wgm3s0inmbnkrlnspxjwm2014qhjhkbdqa5r8rbfi0nzqxzsz")))) (base32 "12i6yg8vvqwyk412lxl2krbfby6hnxld8qxy0k4m5xp4g94jiq4p"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
@ -3959,10 +3991,31 @@ mixers.")
(define-public python2-pyalsaaudio (define-public python2-pyalsaaudio
(package-with-python2 python-pyalsaaudio)) (package-with-python2 python-pyalsaaudio))
(define-public ldacbt
(package
(name "ldacbt")
(version "2.0.2.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/EHfive/ldacBT"
"/releases/download/v" version
"/ldacBT-" version ".tar.gz"))
(sha256
(base32
"1d65dms4klzql29abi15i90f41h523kl6mxrz9hi6p5vg37fxn2b"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no check target
(home-page "https://github.com/EHfive/ldacBT/")
(synopsis "LDAC Bluetooth encoder and ABR library")
(description "This package provides an encoder for the LDAC
high-resolution Bluetooth audio streaming codec for streaming at up to 990
kbps at 24 bit/96 kHz.")
(license license:asl2.0)))
(define-public bluez-alsa (define-public bluez-alsa
(package (package
(name "bluez-alsa") (name "bluez-alsa")
(version "2.0.0") (version "3.0.0")
(source (origin (source (origin
;; The tarballs are mere snapshots and don't contain a ;; The tarballs are mere snapshots and don't contain a
;; bootstrapped build system. ;; bootstrapped build system.
@ -3973,11 +4026,12 @@ mixers.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"08mppgnjf1j2733bk9yf0cny6rfxxwiys0s62lz2zd2lpdl6d9lz")))) "1jlsgxyqfhncfhx1sy3ry0dp6p95kd4agh7g2b7g51h0c4cv74h8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list (string-append "--with-alsaplugindir=" (list "--enable-ldac"
(string-append "--with-alsaplugindir="
(assoc-ref %outputs "out") (assoc-ref %outputs "out")
"/lib/alsa-lib") "/lib/alsa-lib")
(string-append "--with-dbusconfdir=" (string-append "--with-dbusconfdir="
@ -3993,6 +4047,7 @@ mixers.")
("bluez" ,bluez) ("bluez" ,bluez)
("dbus" ,dbus) ("dbus" ,dbus)
("glib" ,glib) ("glib" ,glib)
("ldacbt" ,ldacbt)
("libbsd" ,libbsd) ("libbsd" ,libbsd)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
("ortp" ,ortp) ("ortp" ,ortp)
@ -4464,6 +4519,36 @@ supports both of ID3v1/v2 and APEv2 tags.")
(home-page "http://tausoft.org/") (home-page "http://tausoft.org/")
(license license:gpl2+))) (license license:gpl2+)))
(define-public libsoundio
(package
(name "libsoundio")
(version "2.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/andrewrk/libsoundio")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"12l4rvaypv87vigdrmjz48d4d6sq4gfxf5asvnc4adyabxb73i4x"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no tests included
(inputs
`(("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
("pulseaudio" ,pulseaudio)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://libsound.io")
(synopsis "C library for real-time audio input and output")
(description "@code{libsoundio} is a C library providing audio input and
output. The API is suitable for real-time software such as digital audio
workstations as well as consumer software such as music players.")
(license license:expat)))
(define-public redkite (define-public redkite
(package (package
(name "redkite") (name "redkite")
@ -4483,7 +4568,7 @@ supports both of ID3v1/v2 and APEv2 tags.")
(inputs (inputs
`(("cairo" ,cairo))) `(("cairo" ,cairo)))
(native-inputs (native-inputs
`(("pkg-config", pkg-config))) `(("pkg-config" ,pkg-config)))
(synopsis "Small GUI toolkit") (synopsis "Small GUI toolkit")
(description "Redkite is a small GUI toolkit developed in C++17 and (description "Redkite is a small GUI toolkit developed in C++17 and
inspired from other well known GUI toolkits such as Qt and GTK. It is inspired from other well known GUI toolkits such as Qt and GTK. It is
@ -4629,7 +4714,7 @@ in the package.")
`(("libsamplerate" ,libsamplerate) `(("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile))) ("libsndfile" ,libsndfile)))
(native-inputs (native-inputs
`(("pkg-config", pkg-config))) `(("pkg-config" ,pkg-config)))
(synopsis "Library for reading and resampling audio files") (synopsis "Library for reading and resampling audio files")
(description "libaudec is a wrapper library over ffmpeg, sndfile and (description "libaudec is a wrapper library over ffmpeg, sndfile and
libsamplerate for reading and resampling audio files, based on Robin Gareus' libsamplerate for reading and resampling audio files, based on Robin Gareus'
@ -4657,11 +4742,11 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
`("-Delf-tests=true" ; for checking symbol visibility `("-Delf-tests=true" ; for checking symbol visibility
"-Donline-tests=true"))) ; for checking URI existence "-Donline-tests=true"))) ; for checking URI existence
(inputs (inputs
`(("curl", curl) `(("curl" ,curl)
("libelf", libelf) ("libelf" ,libelf)
("lilv", lilv))) ("lilv" ,lilv)))
(native-inputs (native-inputs
`(("pkg-config", pkg-config))) `(("pkg-config" ,pkg-config)))
(synopsis "LV2 plugin lint tool") (synopsis "LV2 plugin lint tool")
(description "lv2lint is an LV2 lint-like tool that checks whether a (description "lv2lint is an LV2 lint-like tool that checks whether a
given plugin and its UI(s) match up with the provided metadata and adhere given plugin and its UI(s) match up with the provided metadata and adhere
@ -4692,11 +4777,11 @@ to well-known best practices.")
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure)))) (delete 'configure))))
(inputs (inputs
`(("jalv", jalv) `(("jalv" ,jalv)
("lilv", lilv))) ("lilv" ,lilv)))
(native-inputs (native-inputs
`(("help2man", help2man) `(("help2man" ,help2man)
("pkg-config", pkg-config))) ("pkg-config" ,pkg-config)))
(synopsis "Documentation generator for LV2 plugins") (synopsis "Documentation generator for LV2 plugins")
(description (description
"lv2toweb allows the user to create an xhtml page with information "lv2toweb allows the user to create an xhtml page with information

View file

@ -0,0 +1,46 @@
/* GNU Guix --- Functional package management for GNU
Copyright 1996-1997,2000-2001,2006,2008,2011,2013,2018
Free Software Foundation, Inc.
Copyright (C) 2020 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/>. */
/* This file implements a variant of the 'guile' executable that does not
complain about locale issues. */
#include <locale.h>
#include <libguile.h>
static void
inner_main (void *unused, int argc, char **argv)
{
scm_shell (argc, argv);
}
int
main (int argc, char **argv)
{
/* Try to install the current locale; remain silent if it fails. */
if (setlocale (LC_ALL, "") == NULL)
/* The 'guix pull'-provided 'guix' includes at least en_US.utf8 so use
that. That gives us UTF-8 support for 'scm_to_locale_string', etc.,
which is always preferable over the C locale. */
setlocale (LC_ALL, "en_US.utf8");
scm_install_gmp_memory_functions = 1;
scm_boot_guile (argc, argv, inner_main, 0);
return 0; /* never reached */
}

View file

@ -1023,7 +1023,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -966,7 +966,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1053,7 +1053,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set # CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1063,7 +1063,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set # CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1034,7 +1034,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1008,7 +1008,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1027,7 +1027,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set # CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1044,7 +1044,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set # CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1056,7 +1056,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1048,7 +1048,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1035,7 +1035,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set # CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -1061,7 +1061,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set # CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set # CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_ADVANCED_ROUTER=y

View file

@ -74,7 +74,7 @@
("expat" ,expat) ("expat" ,expat)
("gdbm" ,gdbm) ("gdbm" ,gdbm)
("glib" ,glib) ("glib" ,glib)
("libcap" ,libcap) ;to enable chroot support in avahi-daemon ("libcap" ,libcap-2.31) ;to enable chroot support in avahi-daemon
("libdaemon" ,libdaemon) ("libdaemon" ,libdaemon)
("libevent" ,libevent))) ("libevent" ,libevent)))
(native-inputs (native-inputs

View file

@ -527,7 +527,7 @@ patcher application.")))
(install-file "dist/Axoloti.jar" share) (install-file "dist/Axoloti.jar" share)
;; Install old firmware ;; Install old firmware
(let ((target (string-append share "/old_firmware/")) (let ((target (string-append share "/old_firmware/firmware-1.0.12"))
(old-firmware (old-firmware
(string-append (assoc-ref inputs "axoloti-runtime") (string-append (assoc-ref inputs "axoloti-runtime")
"/share/axoloti/firmware/"))) "/share/axoloti/firmware/")))
@ -557,7 +557,7 @@ patcher application.")))
toolchain toolchain
"/arm-none-eabi/include:" "/arm-none-eabi/include:"
toolchain toolchain
"/arm-none-eabi/include/arm-none-eabi/armv7e-m"))) "/arm-none-eabi/include/arm-none-eabi/thumb/v7e-m")))
(display (display
(string-append "#!" (which "sh") "\n" (string-append "#!" (which "sh") "\n"
"export CROSS_CPATH=" includes "\n" "export CROSS_CPATH=" includes "\n"

View file

@ -569,13 +569,13 @@ detection, and lossless compression.")
(define-public borg (define-public borg
(package (package
(name "borg") (name "borg")
(version "1.1.13") (version "1.1.14")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "borgbackup" version)) (uri (pypi-uri "borgbackup" version))
(sha256 (sha256
(base32 "089q3flmwbz7dc28zlscwylf64kgck3jf1n6lqpwww8hlrk8cjhn")) (base32 "1fpdj73cgp96xwasdcifxl7q2pr1my2f4vfdjpv771llri3hgfvx"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -606,7 +606,7 @@ detection, and lossless compression.")
#t)))) #t))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:modules ((srfi srfi-26) ; for cut `(#:modules ((srfi srfi-26) ; for cut
(guix build utils) (guix build utils)
(guix build python-build-system)) (guix build python-build-system))
#:phases #:phases
@ -1066,7 +1066,7 @@ other storage medium. Subsequent incremental backups can then be layered on
top of the full backup. The restore command performs the inverse function of top of the full backup. The restore command performs the inverse function of
dump; it can restore a full backup of a file system. Single files and dump; it can restore a full backup of a file system. Single files and
directory subtrees may also be restored from full or partial backups in directory subtrees may also be restored from full or partial backups in
interractive mode.") interactive mode.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public burp (define-public burp
@ -1103,7 +1103,7 @@ interractive mode.")
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
("check" ,check) ("check" ,check-0.14)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(home-page "https://burp.grke.org") (home-page "https://burp.grke.org")
(synopsis "Differential backup and restore") (synopsis "Differential backup and restore")

View file

@ -339,7 +339,7 @@ used to apply commands with arbitrarily long arguments.")
,@(if (and (not (%current-target-system)) ,@(if (and (not (%current-target-system))
(member (%current-system) (member (%current-system)
(package-supported-systems libcap))) (package-supported-systems libcap)))
`(("libcap" ,libcap)) ;capability support in 'ls', etc. `(("libcap" ,libcap-2.31)) ;capability support in 'ls', etc.
'()))) '())))
(native-inputs (native-inputs
;; Perl is needed to run tests in native builds, and to run the bundled ;; Perl is needed to run tests in native builds, and to run the bundled
@ -1238,7 +1238,7 @@ command.")
(define-public tzdata (define-public tzdata
(package (package
(name "tzdata") (name "tzdata")
(version "2020a") (version "2020b")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1246,7 +1246,7 @@ command.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"18lrp0zh8m931jjlrv8lvjas4ka5dfkzdbwnbw5lwd2dlbn62wal")))) "02g88pbw82zr36x9dz5ib4sq6bfq253yx5hbhnfyhp143naky1cv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f '(#:tests? #f
@ -1296,7 +1296,7 @@ command.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0sfnlqw1p93r7klny69rwr94fh22mz632h52phgzfgg01q9gfakx")))))) "1nj3zvqpy5lm6w365p9ynz4i5arq4fiy8ldq55v4z9p49nagivs7"))))))
(home-page "https://www.iana.org/time-zones") (home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones") (synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo) (description "The Time Zone Database (often called tz or zoneinfo)

View file

@ -46,14 +46,14 @@
(define-public fio (define-public fio
(package (package
(name "fio") (name "fio")
(version "3.22") (version "3.23")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://brick.kernel.dk/snaps/" (uri (string-append "https://brick.kernel.dk/snaps/"
"fio-" version ".tar.bz2")) "fio-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0f2x917600y6k0xs34ixgfjm4v1ylbh8svpkqi07xy3474g5s2rv")))) "0cy32431hv0i84yrryna5byj4r610n6i1rm8nfflnrznbf051axs"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:test-target "test" '(#:test-target "test"

View file

@ -4,6 +4,8 @@
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com> ;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com>
;;; Copyright © 2020 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1113,7 +1115,7 @@ how the coverage distributed across the genome.")
(propagated-inputs (propagated-inputs
`(("r-biobase" ,r-biobase) `(("r-biobase" ,r-biobase)
("r-biocgenerics" ,r-biocgenerics) ("r-biocgenerics" ,r-biocgenerics)
("r-fastcluster", r-fastcluster) ("r-fastcluster" ,r-fastcluster)
("r-ggplot2" ,r-ggplot2) ("r-ggplot2" ,r-ggplot2)
("r-gviz" ,r-gviz) ("r-gviz" ,r-gviz)
("r-plyr" ,r-plyr) ("r-plyr" ,r-plyr)
@ -1607,14 +1609,14 @@ problems in genomics, brain imaging, astrophysics, and data mining.")
(define-public r-diffbind (define-public r-diffbind
(package (package
(name "r-diffbind") (name "r-diffbind")
(version "2.16.0") (version "2.16.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "DiffBind" version)) (uri (bioconductor-uri "DiffBind" version))
(sha256 (sha256
(base32 (base32
"1mwqgljya1c7r2dfrdds3nswn9bn1l3ak1wavbpv4lbv3nkmykn5")))) "11y9kigdikqcd0cnksh306nsaadak0kgivk7773mv3yszrxxwzj1"))))
(properties `((upstream-name . "DiffBind"))) (properties `((upstream-name . "DiffBind")))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
@ -1795,14 +1797,14 @@ determining dependencies between variables, code improvement suggestions.")
(define-public r-chippeakanno (define-public r-chippeakanno
(package (package
(name "r-chippeakanno") (name "r-chippeakanno")
(version "3.22.3") (version "3.22.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ChIPpeakAnno" version)) (uri (bioconductor-uri "ChIPpeakAnno" version))
(sha256 (sha256
(base32 (base32
"0q3f55hh0a2hl96272js6gagmgps9cxs8s13pf6fii64rzaz5m7y")))) "0wxgjdikinkqj7jvs2725ak0291q6zhikyf1c93w8cngwvd9i1gq"))))
(properties `((upstream-name . "ChIPpeakAnno"))) (properties `((upstream-name . "ChIPpeakAnno")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -2705,13 +2707,13 @@ gene and isoform level using RNA-seq data")
(define-public r-karyoploter (define-public r-karyoploter
(package (package
(name "r-karyoploter") (name "r-karyoploter")
(version "1.14.0") (version "1.14.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "karyoploteR" version)) (uri (bioconductor-uri "karyoploteR" version))
(sha256 (sha256
(base32 (base32
"0h0gk4xd95k5phy6qcsv7j931d7gk3p24i2fg4mz5dsk110lpifs")))) "1wlnzkq58baqj9854nzf5rbglchb2xy4wsp3s0q8xfq8v0p3baxf"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi) `(("r-annotationdbi" ,r-annotationdbi)
@ -2734,7 +2736,7 @@ gene and isoform level using RNA-seq data")
(home-page "https://bioconductor.org/packages/karyoploteR/") (home-page "https://bioconductor.org/packages/karyoploteR/")
(synopsis "Plot customizable linear genomes displaying arbitrary data") (synopsis "Plot customizable linear genomes displaying arbitrary data")
(description "This package creates karyotype plots of arbitrary genomes and (description "This package creates karyotype plots of arbitrary genomes and
offers a complete set of functions to plot arbitrary data on them. It mimicks offers a complete set of functions to plot arbitrary data on them. It mimics
many R base graphics functions coupling them with a coordinate change function many R base graphics functions coupling them with a coordinate change function
automatically mapping the chromosome and data coordinates into the plot automatically mapping the chromosome and data coordinates into the plot
coordinates.") coordinates.")
@ -3626,14 +3628,14 @@ information about samples and features can be added to the plot.")
(define-public r-gosemsim (define-public r-gosemsim
(package (package
(name "r-gosemsim") (name "r-gosemsim")
(version "2.14.1") (version "2.14.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GOSemSim" version)) (uri (bioconductor-uri "GOSemSim" version))
(sha256 (sha256
(base32 (base32
"0v4q9xr1cm5xr08pgbzrss41kh3yz7xyh31n55l0sjmr1629ykln")))) "02r7m1x6g8bb7q8l0hpvakdzdv5v1nplhx5lbiy798a7c3xg895b"))))
(properties `((upstream-name . "GOSemSim"))) (properties `((upstream-name . "GOSemSim")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3672,7 +3674,7 @@ sets of GO terms, gene products and gene clusters.")
(description (description
"Genome wide studies of translational control is emerging as a tool to "Genome wide studies of translational control is emerging as a tool to
study various biological conditions. The output from such analysis is both study various biological conditions. The output from such analysis is both
the mRNA level (e.g. cytosolic mRNA level) and the levl of mRNA actively the mRNA level (e.g. cytosolic mRNA level) and the level of mRNA actively
involved in translation (the actively translating mRNA level) for each mRNA. involved in translation (the actively translating mRNA level) for each mRNA.
The standard analysis of such data strives towards identifying differential The standard analysis of such data strives towards identifying differential
translational between two or more sample classes - i.e. differences in translational between two or more sample classes - i.e. differences in
@ -4362,14 +4364,14 @@ position-specific scores within R and Bioconductor.")
(define-public r-atacseqqc (define-public r-atacseqqc
(package (package
(name "r-atacseqqc") (name "r-atacseqqc")
(version "1.12.4") (version "1.12.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ATACseqQC" version)) (uri (bioconductor-uri "ATACseqQC" version))
(sha256 (sha256
(base32 (base32
"1gs9862hhh4gr1akij6ykhcj29s9dzg1vnj87hqrm19dfgl43qbh")))) "1103daz82k97vzmxjmf7jwm2nd3w8i0jwplrsi9996bkih11qwbf"))))
(properties `((upstream-name . "ATACseqQC"))) (properties `((upstream-name . "ATACseqQC")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -4841,7 +4843,7 @@ a more complex way than the simple GC content. Instead, the base types (A, T,
G or C) at each position along the probe determine the affinity of each probe. G or C) at each position along the probe determine the affinity of each probe.
The parameters of the position-specific base contributions to the probe The parameters of the position-specific base contributions to the probe
affinity is estimated in an NSB experiment in which only NSB but no affinity is estimated in an NSB experiment in which only NSB but no
gene-specific bidning is expected.") gene-specific binding is expected.")
;; Any version of the LGPL ;; Any version of the LGPL
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
@ -5060,14 +5062,14 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
(define-public r-xcms (define-public r-xcms
(package (package
(name "r-xcms") (name "r-xcms")
(version "3.10.1") (version "3.10.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "xcms" version)) (uri (bioconductor-uri "xcms" version))
(sha256 (sha256
(base32 (base32
"1aa11gy1v7kkamv3hsnvdx715q8f1saw9p664j6wifyjj0hx13kn")))) "0sk53jcl7sjrpw2ncdpl8sw1b1j9mizlrj517rinr1qrbm6lsn8f"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biobase" ,r-biobase) `(("r-biobase" ,r-biobase)
@ -7159,14 +7161,14 @@ data.")
(define-public r-activedriverwgs (define-public r-activedriverwgs
(package (package
(name "r-activedriverwgs") (name "r-activedriverwgs")
(version "1.1.0") (version "1.1.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ActiveDriverWGS" version)) (uri (cran-uri "ActiveDriverWGS" version))
(sha256 (sha256
(base32 (base32
"0l6h0f54zjvcx19ngq3kp01dypsjqf28vssjm8yzccmpyacfypag")))) "06mvakdc8d2pn91p0sr4ixc561s4ia5h1cvd1p7pqd6s50dy4say"))))
(properties (properties
`((upstream-name . "ActiveDriverWGS"))) `((upstream-name . "ActiveDriverWGS")))
(build-system r-build-system) (build-system r-build-system)
@ -7245,14 +7247,14 @@ gene expression.")
(define-public r-bgx (define-public r-bgx
(package (package
(name "r-bgx") (name "r-bgx")
(version "1.54.0") (version "1.54.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "bgx" version)) (uri (bioconductor-uri "bgx" version))
(sha256 (sha256
(base32 (base32
"0r67a6m5hrnsxgk0f57hl5yaagi2wai2kpfyjjlhrck4rlm1sjcx")))) "0a10fg9n5p024jrmbis102gqpbz23sc6vdn1sal2697hlxikzb46"))))
(properties `((upstream-name . "bgx"))) (properties `((upstream-name . "bgx")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -7476,7 +7478,7 @@ networks and estimated fluxes can be visualized with hypergraphs.")
safety and convenience features to the @code{filebacked.big.matrix} class from safety and convenience features to the @code{filebacked.big.matrix} class from
the @code{bigmemory} package. @code{BigMatrix} protects against segfaults by the @code{bigmemory} package. @code{BigMatrix} protects against segfaults by
monitoring and gracefully restoring the connection to on-disk data and it also monitoring and gracefully restoring the connection to on-disk data and it also
protects against accidental data modification with a filesystem-based protects against accidental data modification with a file-system-based
permissions system. Utilities are provided for using @code{BigMatrix}-derived permissions system. Utilities are provided for using @code{BigMatrix}-derived
classes as @code{assayData} matrices within the @code{Biobase} package's classes as @code{assayData} matrices within the @code{Biobase} package's
@code{eSet} family of classes. @code{BigMatrix} provides some optimizations @code{eSet} family of classes. @code{BigMatrix} provides some optimizations
@ -8185,14 +8187,14 @@ truncated data.")
(define-public r-interval (define-public r-interval
(package (package
(name "r-interval") (name "r-interval")
(version "1.1-0.1") (version "1.1-0.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "interval" version)) (uri (cran-uri "interval" version))
(sha256 (sha256
(base32 (base32
"1lln9jkli28i4wivwzqrsxvv2n15560f7msjy5gssrm45vxrxms8")))) "1b31lh0sv7lzy76230djipahxa10lblbr37kdiigr6hp3dd1xmz9"))))
(properties `((upstream-name . "interval"))) (properties `((upstream-name . "interval")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -8212,14 +8214,14 @@ plot them, and perform logrank or Wilcoxon type tests.")
(define-public r-fhtest (define-public r-fhtest
(package (package
(name "r-fhtest") (name "r-fhtest")
(version "1.4") (version "1.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "FHtest" version)) (uri (cran-uri "FHtest" version))
(sha256 (sha256
(base32 (base32
"1wsn0j9ydpp9nfswiqg21p09kgkvaq8fh0y0h8syqgizah7i8vs2")))) "00mql2r4f5hxhdqf27q3x9s5rz2zzakx2myym97b1w1s7c5znl4q"))))
(properties `((upstream-name . "FHtest"))) (properties `((upstream-name . "FHtest")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -8242,3 +8244,483 @@ with:
@end itemize @end itemize
") ")
(license license:gpl2+))) (license license:gpl2+)))
(define-public r-fourcseq
(package
(name "r-fourcseq")
(version "1.22.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "FourCSeq" version))
(sha256
(base32 "14q1ijnqnbd9xs60sfvyqjfiypjrvhacpwp2v85yfhcxw870cx5b"))))
(properties `((upstream-name . "FourCSeq")))
(build-system r-build-system)
(propagated-inputs
`(("r-biobase" ,r-biobase)
("r-biostrings" ,r-biostrings)
("r-deseq2" ,r-deseq2)
("r-fda" ,r-fda)
("r-genomicalignments" ,r-genomicalignments)
("r-genomicranges" ,r-genomicranges)
("r-ggbio" ,r-ggbio)
("r-ggplot2" ,r-ggplot2)
("r-gtools" ,r-gtools)
("r-lsd" ,r-lsd)
("r-matrix" ,r-matrix)
("r-reshape2" ,r-reshape2)
("r-rsamtools" ,r-rsamtools)
("r-rtracklayer" ,r-rtracklayer)
("r-summarizedexperiment" ,r-summarizedexperiment)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page
"https://bioconductor.org/packages/release/bioc/html/FourCSeq.html")
(synopsis "Analysis of multiplexed 4C sequencing data")
(description
"This package is an R package dedicated to the analysis of (multiplexed)
4C sequencing data. @code{r-fourcseq} provides a pipeline to detect specific
interactions between DNA elements and identify differential interactions
between conditions. The statistical analysis in R starts with individual bam
files for each sample as inputs. To obtain these files, the package contains
a Python script to demultiplex libraries and trim off primer sequences. With
a standard alignment software the required bam files can be then be
generated.")
(license license:gpl3+)))
(define-public r-preprocesscore
(package
(name "r-preprocesscore")
(version "1.50.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "preprocessCore" version))
(sha256
(base32
"0q1406kswylc8zn5k3wyd34p34pfzbhi1ggkfsh30zcjp6adbwjl"))))
(properties
`((upstream-name . "preprocessCore")))
(build-system r-build-system)
(home-page "https://github.com/bmbolstad/preprocessCore")
(synopsis "Collection of pre-processing functions")
(description
"This package provides a library of core pre-processing and normalization
routines.")
(license license:lgpl2.0+)))
;; This is a CRAN package, but it depends on preprocessorcore, which is a
;; Bioconductor package.
(define-public r-wgcna
(package
(name "r-wgcna")
(version "1.69")
(source
(origin
(method url-fetch)
(uri (cran-uri "WGCNA" version))
(sha256
(base32
"022hkprnrafvggi8pkjffkvk1qlnibmbbxxrni00wkrdbga5589f"))))
(properties `((upstream-name . "WGCNA")))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
("r-doparallel" ,r-doparallel)
("r-dynamictreecut" ,r-dynamictreecut)
("r-fastcluster" ,r-fastcluster)
("r-foreach" ,r-foreach)
("r-go-db" ,r-go-db)
("r-hmisc" ,r-hmisc)
("r-impute" ,r-impute)
("r-rcpp" ,r-rcpp)
("r-survival" ,r-survival)
("r-matrixstats" ,r-matrixstats)
("r-preprocesscore" ,r-preprocesscore)))
(home-page
"http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/")
(synopsis "Weighted correlation network analysis")
(description
"This package provides functions necessary to perform Weighted
Correlation Network Analysis on high-dimensional data. It includes functions
for rudimentary data cleaning, construction and summarization of correlation
networks, module identification and functions for relating both variables and
modules to sample traits. It also includes a number of utility functions for
data manipulation and visualization.")
(license license:gpl2+)))
(define-public r-rgraphviz
(package
(name "r-rgraphviz")
(version "2.32.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rgraphviz" version))
(sha256
(base32
"1calpvzgcz6v7s4x6bf35kj83sga95zjp7x87p5d3qnbv7q2wz5y"))))
(properties `((upstream-name . "Rgraphviz")))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-reproducible
(lambda _
;; The replacement value is taken from src/graphviz/builddate.h
(substitute* "src/graphviz/configure"
(("VERSION_DATE=.*")
"VERSION_DATE=20200427.2341\n"))
#t)))))
;; FIXME: Rgraphviz bundles the sources of an older variant of
;; graphviz. It does not build with the latest version of graphviz, so
;; we do not add graphviz to the inputs.
(inputs `(("zlib" ,zlib)))
(propagated-inputs
`(("r-graph" ,r-graph)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://bioconductor.org/packages/Rgraphviz")
(synopsis "Plotting capabilities for R graph objects")
(description
"This package interfaces R with the graphviz library for plotting R graph
objects from the @code{graph} package.")
(license license:epl1.0)))
(define-public r-fithic
(package
(name "r-fithic")
(version "1.14.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "FitHiC" version))
(sha256
(base32
"1dffkdxm08wq4kjd9j2v2625x3p6vbrk33a2zx94pwpgkghr72yp"))))
(properties `((upstream-name . "FitHiC")))
(build-system r-build-system)
(propagated-inputs
`(("r-data-table" ,r-data-table)
("r-fdrtool" ,r-fdrtool)
("r-rcpp" ,r-rcpp)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/FitHiC")
(synopsis "Confidence estimation for intra-chromosomal contact maps")
(description
"Fit-Hi-C is a tool for assigning statistical confidence estimates to
intra-chromosomal contact maps produced by genome-wide genome architecture
assays such as Hi-C.")
(license license:gpl2+)))
(define-public r-hitc
(package
(name "r-hitc")
(version "1.32.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "HiTC" version))
(sha256
(base32
"1jx2pfa7sbdz7xi466lz1h5xv126g56z73n0a5l2wrq28k47qaxy"))))
(properties `((upstream-name . "HiTC")))
(build-system r-build-system)
(propagated-inputs
`(("r-biostrings" ,r-biostrings)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicranges" ,r-genomicranges)
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-rcolorbrewer" ,r-rcolorbrewer)
("r-rtracklayer" ,r-rtracklayer)))
(home-page "https://bioconductor.org/packages/HiTC")
(synopsis "High throughput chromosome conformation capture analysis")
(description
"The HiTC package was developed to explore high-throughput \"C\" data
such as 5C or Hi-C. Dedicated R classes as well as standard methods for
quality controls, normalization, visualization, and further analysis are also
provided.")
(license license:artistic2.0)))
(define-public r-hdf5array
(package
(name "r-hdf5array")
(version "1.16.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "HDF5Array" version))
(sha256
(base32
"01767v90nl0499jcicpxngbbs0af5p9c5aasi5va01w3v5bnqddn"))))
(properties `((upstream-name . "HDF5Array")))
(build-system r-build-system)
(inputs
`(("zlib" ,zlib)))
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-delayedarray" ,r-delayedarray)
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-rhdf5" ,r-rhdf5)
("r-rhdf5lib" ,r-rhdf5lib)
("r-s4vectors" ,r-s4vectors)))
(home-page "https://bioconductor.org/packages/HDF5Array")
(synopsis "HDF5 back end for DelayedArray objects")
(description "This package provides an array-like container for convenient
access and manipulation of HDF5 datasets. It supports delayed operations and
block processing.")
(license license:artistic2.0)))
(define-public r-rhdf5lib
(package
(name "r-rhdf5lib")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rhdf5lib" version))
(sha256
(base32
"0f45sqrvzj6x4mckalyp8366hm8v0rrmzklx3xd4gs6l2wallcn9"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled binaries
(delete-file-recursively "src/wininclude/")
(delete-file-recursively "src/winlib-4.9.3/")
(delete-file-recursively "src/winlib-8.3.0/")
(delete-file "src/hdf5small_cxx_hl_1.10.6.tar.gz")
#t))))
(properties `((upstream-name . "Rhdf5lib")))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-use-bundled-hdf5
(lambda* (#:key inputs #:allow-other-keys)
(for-each delete-file '("configure" "configure.ac"))
;; Do not make other packages link with the proprietary libsz.
(substitute* "R/zzz.R"
((" \"%s/libsz.a\"") ""))
(with-directory-excursion "src"
(invoke "tar" "xvf" (assoc-ref inputs "hdf5-source"))
(rename-file (string-append "hdf5-" ,(package-version hdf5-1.10))
"hdf5")
;; Remove timestamp and host system information to make
;; the build reproducible.
(substitute* "hdf5/src/libhdf5.settings.in"
(("Configured on: @CONFIG_DATE@")
"Configured on: Guix")
(("Uname information:.*")
"Uname information: Linux\n")
;; Remove unnecessary store reference.
(("C Compiler:.*")
"C Compiler: GCC\n"))
(rename-file "Makevars.in" "Makevars")
(substitute* "Makevars"
(("@ZLIB_LIB@") "-lz")
(("@ZLIB_INCLUDE@") "")
(("HDF5_CXX_LIB=.*")
(string-append "HDF5_CXX_LIB="
(assoc-ref inputs "hdf5") "/lib/libhdf5_cpp.a\n"))
(("HDF5_LIB=.*")
(string-append "HDF5_LIB="
(assoc-ref inputs "hdf5") "/lib/libhdf5.a\n"))
(("HDF5_CXX_INCLUDE=.*") "HDF5_CXX_INCLUDE=./hdf5/c++/src\n")
(("HDF5_INCLUDE=.*") "HDF5_INCLUDE=./hdf5/src\n")
(("HDF5_HL_INCLUDE=.*") "HDF5_HL_INCLUDE=./hdf5/hl/src\n")
(("HDF5_HL_CXX_INCLUDE=.*") "HDF5_HL_CXX_INCLUDE=./hdf5/hl/c++/src\n")
(("HDF5_HL_LIB=.*")
(string-append "HDF5_HL_LIB="
(assoc-ref inputs "hdf5") "/lib/libhdf5_hl.a\n"))
(("HDF5_HL_CXX_LIB=.*")
(string-append "HDF5_HL_CXX_LIB="
(assoc-ref inputs "hdf5") "/lib/libhdf5_hl_cpp.a\n"))
;; szip is non-free software
(("cp \"\\$\\{SZIP_LIB\\}.*") "")
(("PKG_LIBS =.*") "PKG_LIBS = -lz -lhdf5\n")))
#t)))))
(inputs
`(("zlib" ,zlib)))
(propagated-inputs
`(("hdf5" ,hdf5-1.10)))
(native-inputs
`(("hdf5-source" ,(package-source hdf5-1.10))
("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/Rhdf5lib")
(synopsis "HDF5 library as an R package")
(description "This package provides C and C++ HDF5 libraries for use in R
packages.")
(license license:artistic2.0)))
(define-public r-beachmat
(package
(name "r-beachmat")
(version "2.4.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "beachmat" version))
(sha256
(base32
"1vl6jbf9ia78cm4ikdb8vz04jv4b46zhvg5i006c63a9pzw7zhxi"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-delayedarray" ,r-delayedarray)
("r-matrix" ,r-matrix)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/beachmat")
(synopsis "Compiling Bioconductor to handle each matrix type")
(description "This package provides a consistent C++ class interface for a
variety of commonly used matrix types, including sparse and HDF5-backed
matrices.")
(license license:gpl3)))
(define-public r-singlecellexperiment
(package
(name "r-singlecellexperiment")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "SingleCellExperiment" version))
(sha256
(base32
"092wvk11n7pa234vlwhxm3gdi4k3sbnz1splhxalbdhz3jf02zfp"))))
(properties
`((upstream-name . "SingleCellExperiment")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-s4vectors" ,r-s4vectors)
("r-summarizedexperiment" ,r-summarizedexperiment)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/SingleCellExperiment")
(synopsis "S4 classes for single cell data")
(description "This package defines an S4 class for storing data from
single-cell experiments. This includes specialized methods to store and
retrieve spike-in information, dimensionality reduction coordinates and size
factors for each cell, along with the usual metadata for genes and
libraries.")
(license license:gpl3)))
(define-public r-scater
(package
(name "r-scater")
(version "1.16.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "scater" version))
(sha256
(base32
"1pa5wvgjb30rw1vsjwbnn07ss3sc5n8ck5d7khdby4r2s9177s33"))))
(build-system r-build-system)
(propagated-inputs
`(("r-beachmat" ,r-beachmat)
("r-biocgenerics" ,r-biocgenerics)
("r-biocneighbors" ,r-biocneighbors)
("r-biocparallel" ,r-biocparallel)
("r-biocsingular" ,r-biocsingular)
("r-delayedarray" ,r-delayedarray)
("r-delayedmatrixstats" ,r-delayedmatrixstats)
("r-ggbeeswarm" ,r-ggbeeswarm)
("r-ggplot2" ,r-ggplot2)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)
("r-rlang" ,r-rlang)
("r-s4vectors" ,r-s4vectors)
("r-singlecellexperiment" ,r-singlecellexperiment)
("r-summarizedexperiment" ,r-summarizedexperiment)
("r-viridis" ,r-viridis)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/davismcc/scater")
(synopsis "Single-cell analysis toolkit for gene expression data in R")
(description "This package provides a collection of tools for doing
various analyses of single-cell RNA-seq gene expression data, with a focus on
quality control.")
(license license:gpl2+)))
(define-public r-scran
(package
(name "r-scran")
(version "1.16.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "scran" version))
(sha256
(base32
"1gm4ys4aq8h1pn45k1rxk384wjyf55izivw8kgxbrflj6j4xvvsv"))))
(build-system r-build-system)
(propagated-inputs
`(("r-beachmat" ,r-beachmat)
("r-bh" ,r-bh)
("r-biocgenerics" ,r-biocgenerics)
("r-biocneighbors" ,r-biocneighbors)
("r-biocparallel" ,r-biocparallel)
("r-biocsingular" ,r-biocsingular)
("r-delayedarray" ,r-delayedarray)
("r-delayedmatrixstats" ,r-delayedmatrixstats)
("r-dqrng" ,r-dqrng)
("r-edger" ,r-edger)
("r-igraph" ,r-igraph)
("r-iranges" ,r-iranges)
("r-limma" ,r-limma)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)
("r-s4vectors" ,r-s4vectors)
("r-scater" ,r-scater)
("r-singlecellexperiment" ,r-singlecellexperiment)
("r-statmod" ,r-statmod)
("r-summarizedexperiment" ,r-summarizedexperiment)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/scran")
(synopsis "Methods for single-cell RNA-Seq data analysis")
(description "This package implements a variety of low-level analyses of
single-cell RNA-seq data. Methods are provided for normalization of
cell-specific biases, assignment of cell cycle phase, and detection of highly
variable and significantly correlated genes.")
(license license:gpl3)))
(define-public r-delayedmatrixstats
(package
(name "r-delayedmatrixstats")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "DelayedMatrixStats" version))
(sha256
(base32
"046sam0rz42ph0m7jz7v3bck7d3h2mp45gzywh5dvc1qkjq6fdxx"))))
(properties
`((upstream-name . "DelayedMatrixStats")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocparallel" ,r-biocparallel)
("r-delayedarray" ,r-delayedarray)
("r-hdf5array" ,r-hdf5array)
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-matrixstats" ,r-matrixstats)
("r-s4vectors" ,r-s4vectors)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/PeteHaitch/DelayedMatrixStats")
(synopsis "Functions that apply to rows and columns of DelayedMatrix objects")
(description
"This package provides a port of the @code{matrixStats} API for use with
@code{DelayedMatrix} objects from the @code{DelayedArray} package. It
contains high-performing functions operating on rows and columns of
@code{DelayedMatrix} objects, e.g. @code{colMedians}, @code{rowMedians},
@code{colRanks}, @code{rowRanks}, @code{colSds}, and @code{rowSds}. Functions
are optimized per data type and for subsetted calculations such that both
memory usage and processing time is minimized.")
(license license:expat)))

View file

@ -11,7 +11,7 @@
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018, 2019 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2018, 2019, 2020 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
@ -4225,6 +4225,13 @@ performance.")
(base32 (base32
"16ljv43sc3fxmv63w7b2ff8m1s7h89xhazwmbm1bicz8axq8fjz0")))) "16ljv43sc3fxmv63w7b2ff8m1s7h89xhazwmbm1bicz8axq8fjz0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; Let htslib translate "gs://" and "s3://" to regular https links with
;; "--enable-gcs" and "--enable-s3". For these options to work, we also
;; need to set "--enable-libcurl".
(arguments
`(#:configure-flags '("--enable-gcs"
"--enable-libcurl"
"--enable-s3")))
(inputs (inputs
`(("curl" ,curl) `(("curl" ,curl)
("openssl" ,openssl))) ("openssl" ,openssl)))
@ -4496,7 +4503,7 @@ sequencing tag position and orientation.")
(define-public mafft (define-public mafft
(package (package
(name "mafft") (name "mafft")
(version "7.394") (version "7.471")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -4505,7 +4512,7 @@ sequencing tag position and orientation.")
(file-name (string-append name "-" version ".tgz")) (file-name (string-append name "-" version ".tgz"))
(sha256 (sha256
(base32 (base32
"0bacjkxfg944p5khhyh5rd4y7wkjc9qk4v2jjj442sqlq0f8ar7b")))) "0r1973fx2scq4712zdqfy67wkzqj0c0bhrdy4jxhvq40mdxyry30"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no automated tests, though there are tests in the read me `(#:tests? #f ; no automated tests, though there are tests in the read me
@ -4568,7 +4575,7 @@ sequencing tag position and orientation.")
("gawk" ,gawk) ("gawk" ,gawk)
("grep" ,grep) ("grep" ,grep)
("coreutils" ,coreutils))) ("coreutils" ,coreutils)))
(home-page "http://mafft.cbrc.jp/alignment/software/") (home-page "https://mafft.cbrc.jp/alignment/software/")
(synopsis "Multiple sequence alignment program") (synopsis "Multiple sequence alignment program")
(description (description
"MAFFT offers a range of multiple alignment methods for nucleotide and "MAFFT offers a range of multiple alignment methods for nucleotide and
@ -4576,7 +4583,7 @@ protein sequences. For instance, it offers L-INS-i (accurate; for alignment
of <~200 sequences) and FFT-NS-2 (fast; for alignment of <~30,000 of <~200 sequences) and FFT-NS-2 (fast; for alignment of <~30,000
sequences).") sequences).")
(license (license:non-copyleft (license (license:non-copyleft
"http://mafft.cbrc.jp/alignment/software/license.txt" "https://mafft.cbrc.jp/alignment/software/license.txt"
"BSD-3 with different formatting")))) "BSD-3 with different formatting"))))
(define-public mash (define-public mash
@ -7539,13 +7546,13 @@ also known as views, in a controlled vocabulary.")
(define-public r-biocstyle (define-public r-biocstyle
(package (package
(name "r-biocstyle") (name "r-biocstyle")
(version "2.16.0") (version "2.16.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "BiocStyle" version)) (uri (bioconductor-uri "BiocStyle" version))
(sha256 (sha256
(base32 (base32
"07rjl2n4sazdg581zh7w3yykzphgr2gpz41ba4ryqs7347vh9nbf")))) "09sz2bnbfbj8wz16k0q8xrvag9fldxqyp5vbg9pvd9skh28hv7c7"))))
(properties (properties
`((upstream-name . "BiocStyle"))) `((upstream-name . "BiocStyle")))
(build-system r-build-system) (build-system r-build-system)
@ -8848,13 +8855,13 @@ of gene-level counts.")
(define-public r-rhdf5 (define-public r-rhdf5
(package (package
(name "r-rhdf5") (name "r-rhdf5")
(version "2.32.2") (version "2.32.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "rhdf5" version)) (uri (bioconductor-uri "rhdf5" version))
(sha256 (sha256
(base32 (base32
"1v6ygi0avh3gmaj2ld2nr7vww4ipw39b5kqci9w27i3ja985lb8j")))) "0fnx60dpf6s2qwq48lg98g18g8k7wgm66pw0kamlbb7l2hnwycvf"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-rhdf5lib" ,r-rhdf5lib))) `(("r-rhdf5lib" ,r-rhdf5lib)))
@ -10272,14 +10279,14 @@ interval to data view, mismatch pileup, and several splicing summaries.")
(define-public r-gqtlbase (define-public r-gqtlbase
(package (package
(name "r-gqtlbase") (name "r-gqtlbase")
(version "1.20.0") (version "1.20.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "gQTLBase" version)) (uri (bioconductor-uri "gQTLBase" version))
(sha256 (sha256
(base32 (base32
"06xvzp4fn3qfa46ggg8kxi267gbyd821vvx4040173xkqxpr0g5j")))) "1ly14vhhqxjpbxjypi6ppd37dycabdhf4ny4nsvp9969k418zv41"))))
(properties `((upstream-name . "gQTLBase"))) (properties `((upstream-name . "gQTLBase")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -10599,343 +10606,6 @@ EMBL-EBI GWAS catalog.")
visualizations for publication-quality multi-panel figures.") visualizations for publication-quality multi-panel figures.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public r-fithic
(package
(name "r-fithic")
(version "1.14.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "FitHiC" version))
(sha256
(base32
"1dffkdxm08wq4kjd9j2v2625x3p6vbrk33a2zx94pwpgkghr72yp"))))
(properties `((upstream-name . "FitHiC")))
(build-system r-build-system)
(propagated-inputs
`(("r-data-table" ,r-data-table)
("r-fdrtool" ,r-fdrtool)
("r-rcpp" ,r-rcpp)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/FitHiC")
(synopsis "Confidence estimation for intra-chromosomal contact maps")
(description
"Fit-Hi-C is a tool for assigning statistical confidence estimates to
intra-chromosomal contact maps produced by genome-wide genome architecture
assays such as Hi-C.")
(license license:gpl2+)))
(define-public r-hitc
(package
(name "r-hitc")
(version "1.32.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "HiTC" version))
(sha256
(base32
"1jx2pfa7sbdz7xi466lz1h5xv126g56z73n0a5l2wrq28k47qaxy"))))
(properties `((upstream-name . "HiTC")))
(build-system r-build-system)
(propagated-inputs
`(("r-biostrings" ,r-biostrings)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicranges" ,r-genomicranges)
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-rcolorbrewer" ,r-rcolorbrewer)
("r-rtracklayer" ,r-rtracklayer)))
(home-page "https://bioconductor.org/packages/HiTC")
(synopsis "High throughput chromosome conformation capture analysis")
(description
"The HiTC package was developed to explore high-throughput \"C\" data
such as 5C or Hi-C. Dedicated R classes as well as standard methods for
quality controls, normalization, visualization, and further analysis are also
provided.")
(license license:artistic2.0)))
(define-public r-hdf5array
(package
(name "r-hdf5array")
(version "1.16.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "HDF5Array" version))
(sha256
(base32
"01767v90nl0499jcicpxngbbs0af5p9c5aasi5va01w3v5bnqddn"))))
(properties `((upstream-name . "HDF5Array")))
(build-system r-build-system)
(inputs
`(("zlib" ,zlib)))
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-delayedarray" ,r-delayedarray)
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-rhdf5" ,r-rhdf5)
("r-rhdf5lib" ,r-rhdf5lib)
("r-s4vectors" ,r-s4vectors)))
(home-page "https://bioconductor.org/packages/HDF5Array")
(synopsis "HDF5 back end for DelayedArray objects")
(description "This package provides an array-like container for convenient
access and manipulation of HDF5 datasets. It supports delayed operations and
block processing.")
(license license:artistic2.0)))
(define-public r-rhdf5lib
(package
(name "r-rhdf5lib")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rhdf5lib" version))
(sha256
(base32
"0f45sqrvzj6x4mckalyp8366hm8v0rrmzklx3xd4gs6l2wallcn9"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled binaries
(delete-file-recursively "src/wininclude/")
(delete-file-recursively "src/winlib-4.9.3/")
(delete-file-recursively "src/winlib-8.3.0/")
(delete-file "src/hdf5small_cxx_hl_1.10.6.tar.gz")
#t))))
(properties `((upstream-name . "Rhdf5lib")))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-use-bundled-hdf5
(lambda* (#:key inputs #:allow-other-keys)
(for-each delete-file '("configure" "configure.ac"))
;; Do not make other packages link with the proprietary libsz.
(substitute* "R/zzz.R"
((" \"%s/libsz.a\"") ""))
(with-directory-excursion "src"
(invoke "tar" "xvf" (assoc-ref inputs "hdf5-source"))
(rename-file (string-append "hdf5-" ,(package-version hdf5-1.10))
"hdf5")
;; Remove timestamp and host system information to make
;; the build reproducible.
(substitute* "hdf5/src/libhdf5.settings.in"
(("Configured on: @CONFIG_DATE@")
"Configured on: Guix")
(("Uname information:.*")
"Uname information: Linux\n")
;; Remove unnecessary store reference.
(("C Compiler:.*")
"C Compiler: GCC\n"))
(rename-file "Makevars.in" "Makevars")
(substitute* "Makevars"
(("@ZLIB_LIB@") "-lz")
(("@ZLIB_INCLUDE@") "")
(("HDF5_CXX_LIB=.*")
(string-append "HDF5_CXX_LIB="
(assoc-ref inputs "hdf5") "/lib/libhdf5_cpp.a\n"))
(("HDF5_LIB=.*")
(string-append "HDF5_LIB="
(assoc-ref inputs "hdf5") "/lib/libhdf5.a\n"))
(("HDF5_CXX_INCLUDE=.*") "HDF5_CXX_INCLUDE=./hdf5/c++/src\n")
(("HDF5_INCLUDE=.*") "HDF5_INCLUDE=./hdf5/src\n")
(("HDF5_HL_INCLUDE=.*") "HDF5_HL_INCLUDE=./hdf5/hl/src\n")
(("HDF5_HL_CXX_INCLUDE=.*") "HDF5_HL_CXX_INCLUDE=./hdf5/hl/c++/src\n")
(("HDF5_HL_LIB=.*")
(string-append "HDF5_HL_LIB="
(assoc-ref inputs "hdf5") "/lib/libhdf5_hl.a\n"))
(("HDF5_HL_CXX_LIB=.*")
(string-append "HDF5_HL_CXX_LIB="
(assoc-ref inputs "hdf5") "/lib/libhdf5_hl_cpp.a\n"))
;; szip is non-free software
(("cp \"\\$\\{SZIP_LIB\\}.*") "")
(("PKG_LIBS =.*") "PKG_LIBS = -lz -lhdf5\n")))
#t)))))
(inputs
`(("zlib" ,zlib)))
(propagated-inputs
`(("hdf5" ,hdf5-1.10)))
(native-inputs
`(("hdf5-source" ,(package-source hdf5-1.10))
("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/Rhdf5lib")
(synopsis "HDF5 library as an R package")
(description "This package provides C and C++ HDF5 libraries for use in R
packages.")
(license license:artistic2.0)))
(define-public r-beachmat
(package
(name "r-beachmat")
(version "2.4.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "beachmat" version))
(sha256
(base32
"1vl6jbf9ia78cm4ikdb8vz04jv4b46zhvg5i006c63a9pzw7zhxi"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-delayedarray" ,r-delayedarray)
("r-matrix" ,r-matrix)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/beachmat")
(synopsis "Compiling Bioconductor to handle each matrix type")
(description "This package provides a consistent C++ class interface for a
variety of commonly used matrix types, including sparse and HDF5-backed
matrices.")
(license license:gpl3)))
(define-public r-singlecellexperiment
(package
(name "r-singlecellexperiment")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "SingleCellExperiment" version))
(sha256
(base32
"092wvk11n7pa234vlwhxm3gdi4k3sbnz1splhxalbdhz3jf02zfp"))))
(properties
`((upstream-name . "SingleCellExperiment")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-s4vectors" ,r-s4vectors)
("r-summarizedexperiment" ,r-summarizedexperiment)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/SingleCellExperiment")
(synopsis "S4 classes for single cell data")
(description "This package defines an S4 class for storing data from
single-cell experiments. This includes specialized methods to store and
retrieve spike-in information, dimensionality reduction coordinates and size
factors for each cell, along with the usual metadata for genes and
libraries.")
(license license:gpl3)))
(define-public r-scater
(package
(name "r-scater")
(version "1.16.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "scater" version))
(sha256
(base32
"1pa5wvgjb30rw1vsjwbnn07ss3sc5n8ck5d7khdby4r2s9177s33"))))
(build-system r-build-system)
(propagated-inputs
`(("r-beachmat" ,r-beachmat)
("r-biocgenerics" ,r-biocgenerics)
("r-biocneighbors" ,r-biocneighbors)
("r-biocparallel" ,r-biocparallel)
("r-biocsingular" ,r-biocsingular)
("r-delayedarray" ,r-delayedarray)
("r-delayedmatrixstats" ,r-delayedmatrixstats)
("r-ggbeeswarm" ,r-ggbeeswarm)
("r-ggplot2" ,r-ggplot2)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)
("r-rlang" ,r-rlang)
("r-s4vectors" ,r-s4vectors)
("r-singlecellexperiment" ,r-singlecellexperiment)
("r-summarizedexperiment" ,r-summarizedexperiment)
("r-viridis" ,r-viridis)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/davismcc/scater")
(synopsis "Single-cell analysis toolkit for gene expression data in R")
(description "This package provides a collection of tools for doing
various analyses of single-cell RNA-seq gene expression data, with a focus on
quality control.")
(license license:gpl2+)))
(define-public r-scran
(package
(name "r-scran")
(version "1.16.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "scran" version))
(sha256
(base32
"1gm4ys4aq8h1pn45k1rxk384wjyf55izivw8kgxbrflj6j4xvvsv"))))
(build-system r-build-system)
(propagated-inputs
`(("r-beachmat" ,r-beachmat)
("r-bh" ,r-bh)
("r-biocgenerics" ,r-biocgenerics)
("r-biocneighbors" ,r-biocneighbors)
("r-biocparallel" ,r-biocparallel)
("r-biocsingular" ,r-biocsingular)
("r-delayedarray" ,r-delayedarray)
("r-delayedmatrixstats" ,r-delayedmatrixstats)
("r-dqrng" ,r-dqrng)
("r-edger" ,r-edger)
("r-igraph" ,r-igraph)
("r-iranges" ,r-iranges)
("r-limma" ,r-limma)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)
("r-s4vectors" ,r-s4vectors)
("r-scater" ,r-scater)
("r-singlecellexperiment" ,r-singlecellexperiment)
("r-statmod" ,r-statmod)
("r-summarizedexperiment" ,r-summarizedexperiment)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/scran")
(synopsis "Methods for single-cell RNA-Seq data analysis")
(description "This package implements a variety of low-level analyses of
single-cell RNA-seq data. Methods are provided for normalization of
cell-specific biases, assignment of cell cycle phase, and detection of highly
variable and significantly correlated genes.")
(license license:gpl3)))
(define-public r-delayedmatrixstats
(package
(name "r-delayedmatrixstats")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "DelayedMatrixStats" version))
(sha256
(base32
"046sam0rz42ph0m7jz7v3bck7d3h2mp45gzywh5dvc1qkjq6fdxx"))))
(properties
`((upstream-name . "DelayedMatrixStats")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocparallel" ,r-biocparallel)
("r-delayedarray" ,r-delayedarray)
("r-hdf5array" ,r-hdf5array)
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-matrixstats" ,r-matrixstats)
("r-s4vectors" ,r-s4vectors)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/PeteHaitch/DelayedMatrixStats")
(synopsis "Functions that apply to rows and columns of DelayedMatrix objects")
(description
"This package provides a port of the @code{matrixStats} API for use with
@code{DelayedMatrix} objects from the @code{DelayedArray} package. It
contains high-performing functions operating on rows and columns of
@code{DelayedMatrix} objects, e.g. @code{colMedians}, @code{rowMedians},
@code{colRanks}, @code{rowRanks}, @code{colSds}, and @code{rowSds}. Functions
are optimized per data type and for subsetted calculations such that both
memory usage and processing time is minimized.")
(license license:expat)))
(define-public r-dropbead (define-public r-dropbead
(let ((commit "d746c6f3b32110428ea56d6a0001ce52a251c247") (let ((commit "d746c6f3b32110428ea56d6a0001ce52a251c247")
(revision "2")) (revision "2"))
@ -11484,7 +11154,6 @@ models. TADbit is complemented by TADkit for visualizing 3D models.")
("tcsh" ,tcsh) ("tcsh" ,tcsh)
("perl" ,perl) ("perl" ,perl)
("libpng" ,libpng) ("libpng" ,libpng)
("mariadb" ,mariadb "lib")
("mariadb-dev" ,mariadb "dev") ("mariadb-dev" ,mariadb "dev")
("openssl" ,openssl-1.0))) ("openssl" ,openssl-1.0)))
(home-page "https://genome.cse.ucsc.edu/index.html") (home-page "https://genome.cse.ucsc.edu/index.html")
@ -15881,7 +15550,7 @@ than is possible with plain-text methods alone.")
(propagated-inputs (propagated-inputs
`(("libxml2" ,libxml2))) `(("libxml2" ,libxml2)))
(native-inputs (native-inputs
`(("check" ,check) `(("check" ,check-0.14)
("swig" ,swig))) ("swig" ,swig)))
(home-page "http://sbml.org/Software/libSBML") (home-page "http://sbml.org/Software/libSBML")
(synopsis "Process SBML files and data streams") (synopsis "Process SBML files and data streams")

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@ -41,6 +41,7 @@
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages hurd)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -132,6 +133,15 @@
,(%current-target-system))))) ,(%current-target-system)))))
'()) '())
;; Change an #ifdef __MACH__ that really targets macOS.
;; TODO: Inline this on the next rebuild cycle.
,@(if (hurd-target?)
'((substitute* "boost/test/utils/timer.hpp"
(("defined\\(__MACH__\\)")
"(defined __MACH__ && !defined __GNU__)"))
#t)
'())
(invoke "./bootstrap.sh" (invoke "./bootstrap.sh"
(string-append "--prefix=" out) (string-append "--prefix=" out)
;; Auto-detection looks for ICU only in traditional ;; Auto-detection looks for ICU only in traditional

View file

@ -465,7 +465,6 @@ tree binary files. These are board description files used by Linux and BSD.")
("python" ,python) ("python" ,python)
("python-coverage" ,python-coverage) ("python-coverage" ,python-coverage)
("python-pytest" ,python-pytest) ("python-pytest" ,python-pytest)
("sdl2" ,sdl2)
("swig" ,swig))) ("swig" ,swig)))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://www.denx.de/wiki/U-Boot/") (home-page "https://www.denx.de/wiki/U-Boot/")
@ -478,6 +477,9 @@ also initializes the boards (RAM etc).")
(package (package
(inherit u-boot) (inherit u-boot)
(name "u-boot-tools") (name "u-boot-tools")
(native-inputs
`(("sdl2" ,sdl2)
,@(package-native-inputs u-boot)))
(arguments (arguments
`(#:make-flags '("HOSTCC=gcc") `(#:make-flags '("HOSTCC=gcc")
#:test-target "tests" #:test-target "tests"

View file

@ -111,8 +111,8 @@ generate such a compilation database.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public gn (define-public gn
(let ((commit "eb997b5ab9c3f1ba6a2c52072785884864a84eae") (let ((commit "e327ffdc503815916db2543ec000226a8df45163")
(revision "1794")) ;as returned by `git describe`, used below (revision "1819")) ;as returned by `git describe`, used below
(package (package
(name "gn") (name "gn")
(version (git-version "0.0" revision commit)) (version (git-version "0.0" revision commit))
@ -122,7 +122,7 @@ generate such a compilation database.")
(uri (git-reference (url home-page) (commit commit))) (uri (git-reference (url home-page) (commit commit)))
(sha256 (sha256
(base32 (base32
"1vfkcy34wqhg7wsk7jdzhgnnzwim10wgbxv5bnavxzjcs871i2xa")) "0kvlfj3www84zp1vmxh76x8fdjm9hyk8lkh2vdsidafpmm75fphr"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View file

@ -8,7 +8,7 @@
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright @ 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -40,6 +40,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages lua)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -257,6 +258,64 @@ string formatting and autoresizing, option and config file parsing, type
checking casts and more.") checking casts and more.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public libwuya
;; This commit is the one before "wuy_pool.h" was removed from libwuya,
;; which libleak currently requires.
(let ((revision "1")
(commit "883502041044f4616cfbf75c8f2bb60059f704a9"))
(package
(name "libwuya")
(version (git-version "0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/WuBingzheng/libwuya")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1xrsqbgr13g2v0ag165ryp7xrwzv41xfygzk2a3445ca98c1qpdc"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test suite
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-lua-includes
(lambda _
(substitute* '("wuy_cflua.h" "wuy_cflua.c")
(("<lua5\\.1/") "<"))
#t))
(add-after 'unpack 'add--fPIC-to-CFLAGS
(lambda _
(substitute* "Makefile"
(("CFLAGS[^\n]*" all)
(string-append all " -fPIC")))
#t))
(add-before 'build 'set-CC
(lambda _
(setenv "CC" "gcc")
#t))
(delete 'configure) ;no configure script
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(include-dir (string-append out "/include"))
(headers (find-files "." "\\.h$")))
(for-each (lambda (h)
(install-file h include-dir))
headers)
(install-file "libwuya.a" (string-append out "/lib"))
#t))))))
(inputs `(("lua" ,lua)))
(home-page "https://github.com/WuBingzheng/libwuya/")
(synopsis "C library implementing various data structures")
(description "The @code{libwuya} library implements data structures such
as dictionaries, skip lists, and memory pools.")
;; There is no clear information as to what license this is distributed
;; under, but it is included (bundled) with libleak from the same author
;; under the GNU GPL v2 or later license, so use this here until it is
;; clarified (see: https://github.com/WuBingzheng/libwuya/issues/2).
(license license:gpl2+))))
(define-public packcc (define-public packcc
(package (package
(name "packcc") (name "packcc")

View file

@ -9,6 +9,7 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -37,6 +38,7 @@
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages dav) #:use-module (gnu packages dav)
#:use-module (gnu packages docbook)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
@ -124,12 +126,20 @@ the <tz.h> library for handling time zones and leap seconds.")
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f ; test suite appears broken '(#:tests? #f ; test suite appears broken
#:parallel-build? #f ;may cause GIR generation failure
#:configure-flags '("-DSHARED_ONLY=true" #:configure-flags '("-DSHARED_ONLY=true"
;; required by evolution-data-server ;; required by evolution-data-server
"-DGOBJECT_INTROSPECTION=true" "-DGOBJECT_INTROSPECTION=true"
"-DICAL_GLIB_VAPI=true") "-DICAL_GLIB_VAPI=true")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-docbook-reference
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "doc/reference/libical-glib/libical-glib-docs.sgml.in"
(("http://www.oasis-open.org/docbook/xml/4.3/")
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/")))
#t))
(add-before 'configure 'patch-paths (add-before 'configure 'patch-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; TODO: libical 3.1.0 supports using TZDIR instead of a hard-coded ;; TODO: libical 3.1.0 supports using TZDIR instead of a hard-coded
@ -144,7 +154,8 @@ the <tz.h> library for handling time zones and leap seconds.")
(("\\\"/usr/share/lib/zoneinfo\\\"") ""))) (("\\\"/usr/share/lib/zoneinfo\\\"") "")))
#t))))) #t)))))
(native-inputs (native-inputs
`(("gobject-introspection" ,gobject-introspection) `(("docbook-xml" ,docbook-xml-4.3)
("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc) ("gtk-doc" ,gtk-doc)
("perl" ,perl) ("perl" ,perl)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
@ -339,3 +350,45 @@ DebConf, FrOSCon, Grazer LinuxTage, and the CCC congresses.
ConfClerk is targeted at mobile devices but works on any system running Qt.") ConfClerk is targeted at mobile devices but works on any system running Qt.")
(license (list license:gpl2+ (license (list license:gpl2+
license:lgpl3)))) ; or cc-by3.0 for src/icons/* license:lgpl3)))) ; or cc-by3.0 for src/icons/*
(define-public ccal
(package
(name "ccal")
(version "2.5.3")
(source (origin
(method url-fetch)
(uri (string-append "http://ccal.chinesebay.com/ccal/ccal-"
version ".tar.gz"))
(sha256
(base32
"15nza1d1lvk3dp0wcl53wsd32yhbgyzznha092mh5kh5z74vsk1x"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "Makefile"
(("/usr/local/bin")
(string-append out "/bin"))
(("/usr/local/man")
(string-append out "/share/man"))))
#t))
(add-after 'install 'install-manuals
(lambda _
(invoke "make" "install-man"))))
;; no tests
#:tests? #f))
(home-page "http://ccal.chinesebay.com/ccal/ccal.htm")
(synopsis "Command line program for Chinese calendar")
(description "@command{ccal} is a command line program which writes a
Gregorian calendar together with Chinese calendar to standard output. Its
usage is similar to the @command{cal} program. In addition to console output,
it can also generate Encapsulated Postscript and HTML table outputs for use in
do-it-yourself calendars and web pages. It supports both simplified and
traditional Chinese characters.")
;; Both licenses are in use in various source files. Note that
;; COPYING.LESSER specifies LGPL 3.0, but all source files say
;; 'Lesser GPL version 2 or later'.
(license (list license:gpl2+ license:lgpl2.1+))))

View file

@ -30,14 +30,14 @@
(define-public ccache (define-public ccache
(package (package
(name "ccache") (name "ccache")
(version "3.7.11") (version "3.7.12")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/ccache/ccache/releases/download/v" (uri (string-append "https://github.com/ccache/ccache/releases/download/v"
version "/ccache-" version ".tar.xz")) version "/ccache-" version ".tar.xz"))
(sha256 (sha256
(base32 "0s1g0ylrayzax68xlqnxx46f5bhvr2pcm1yzswmj0kcs14404icd")))) (base32 "005liq8csgxdn7m9hj2ah07hishww855p8sc96y1hrnwc21lwbx0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("perl" ,perl) ; for test/run (native-inputs `(("perl" ,perl) ; for test/run
("which" ,(@ (gnu packages base) which)))) ("which" ,(@ (gnu packages base) which))))

View file

@ -737,16 +737,15 @@ information is written to standard error.")
(define-public asunder (define-public asunder
(package (package
(name "asunder") (name "asunder")
(version "2.9.6") (version "2.9.7")
(source (origin (source
(method url-fetch) (origin
(uri (method url-fetch)
(string-append "http://www.littlesvr.ca/asunder/releases/asunder-" (uri
version (string-append "http://www.littlesvr.ca/asunder/releases/asunder-"
".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32 "1x3l308ss0iqhz90qyjb94gyd8b4piyrm2nzjmg5kf049k9prjf1"))))
"1ycnd82lh7qy1pcbngd4b41s16j9hnm2kyfrncg4cwr3bfk7yg7a"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
'(#:out-of-source? #f '(#:out-of-source? #f

View file

@ -76,7 +76,7 @@
(define-public nss-certs (define-public nss-certs
(package (package
(name "nss-certs") (name "nss-certs")
(version "3.52.1") (version "3.57")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (let ((version-with-underscores (uri (let ((version-with-underscores
@ -87,7 +87,7 @@
"nss-" version ".tar.gz"))) "nss-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"0y4jb9095f7bbgw7d7kvzm4c3g4p5i6y68fwhb8wlkpb7b1imj5w")))) "10n3pncg6k81ikjz12la147rppwqn57bkrdl9gb820w6pq0nra2m"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out")) (outputs '("out"))
(native-inputs (native-inputs

View file

@ -135,7 +135,7 @@ like Jasmine or Mocha.")
(define-public check (define-public check
(package (package
(name "check") (name "check")
(version "0.14.0") (version "0.15.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -143,7 +143,7 @@ like Jasmine or Mocha.")
version "/check-" version ".tar.gz")) version "/check-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx")))) "02m25y9m46pb6n46s51av62kpd936lkfv3b13kfpckgvmh5lxpm8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://libcheck.github.io/check/") (home-page "https://libcheck.github.io/check/")
(synopsis "Unit test framework for C") (synopsis "Unit test framework for C")
@ -156,7 +156,19 @@ faults or other signals. The output from unit tests can be used within
source code editors and IDEs.") source code editors and IDEs.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
;; Some packages require this older version. Removed once no longer needed. ;; Some packages require older versions. Removed once no longer needed.
(define-public check-0.14
(package
(inherit check)
(version "0.14.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/libcheck/check/releases"
"/download/" version "/check-" version ".tar.gz"))
(sha256
(base32
"02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx"))))))
(define-public check-0.12 (define-public check-0.12
(package (package
(inherit check) (inherit check)
@ -337,7 +349,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(define-public catch-framework2 (define-public catch-framework2
(package (package
(name "catch2") (name "catch2")
(version "2.13.0") (version "2.13.2")
(home-page "https://github.com/catchorg/Catch2") (home-page "https://github.com/catchorg/Catch2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
@ -347,7 +359,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0i4w0c9280a5fyi00mvvf13wlnfzyifr487n1iyr30zvvj5s5f1h")))) "100r0kmra8jmra2hv92lzvwcmphpaiccwvq3lpdsa5b7hailhach"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("python" ,python-wrapper))) `(("python" ,python-wrapper)))
@ -924,13 +936,13 @@ and many external plugins.")
(package (package
(inherit (strip-python2-variant python-pytest)) (inherit (strip-python2-variant python-pytest))
(name "python2-pytest") (name "python2-pytest")
(version "4.6.9") (version "4.6.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pytest" version)) (uri (pypi-uri "pytest" version))
(sha256 (sha256
(base32 (base32
"0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r")))) "0ls3pqr86xgif6bphsb6wrww9r2vc7p7a2naq8zcq8115wwq5yjh"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:python ,python-2 `(#:python ,python-2
@ -1562,14 +1574,14 @@ have failed since the last commit or what tests are currently failing.")))
(define-public python-coverage (define-public python-coverage
(package (package
(name "python-coverage") (name "python-coverage")
(version "5.0.3") (version "5.2.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "coverage" version)) (uri (pypi-uri "coverage" version))
(sha256 (sha256
(base32 (base32
"1vrg8panqw79pswg52ygbrff3wdnxarrd9qz6c64ah0c4h2cmbvp")))) "16z8i18msgs8k74n73dj9x49wzkl0vk4vq8k5pl1bsj70y7b4k53"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; FIXME: 95 tests failed, 539 passed, 6 skipped, 2 errors. ;; FIXME: 95 tests failed, 539 passed, 6 skipped, 2 errors.
@ -2681,7 +2693,7 @@ provides a simple way to achieve this.")
(define-public umockdev (define-public umockdev
(package (package
(name "umockdev") (name "umockdev")
(version "0.14.2") (version "0.14.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/martinpitt/umockdev/" (uri (string-append "https://github.com/martinpitt/umockdev/"
@ -2689,7 +2701,7 @@ provides a simple way to achieve this.")
"umockdev-" version ".tar.xz")) "umockdev-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1nh6xsssmssmk0lxp9c9dmq3wzlpbpkg77nmmd09csbpybibgxfp")))) "15smnxwplk48nas2c8ji6a5fqcsh770f1yl5nc2j5iprjspbm4mg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View file

@ -59,7 +59,7 @@
;; Parallel builds are not supported, as noted in README. ;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f)) #:parallel-build? #f))
(propagated-inputs `(("gcc-toolchain", gcc-toolchain))) (propagated-inputs `(("gcc-toolchain" ,gcc-toolchain)))
(home-page "https://www.call-cc.org/") (home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C") (synopsis "R5RS Scheme implementation that compiles native code via C")
(description (description

View file

@ -83,6 +83,9 @@
"base/third_party/symbolize" ;BSD-3 "base/third_party/symbolize" ;BSD-3
"base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0 "base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
"base/third_party/xdg_user_dirs" ;Expat "base/third_party/xdg_user_dirs" ;Expat
;; XXX: Chromium requires a newer C++ standard library. Remove this when
;; the default GCC is 9 or later.
"buildtools/third_party/libc++" ;ASL2.0, with LLVM exceptions
"chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+ "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license "courgette/third_party/bsdiff" ;BSD-2, BSD protection license
"courgette/third_party/divsufsort" ;Expat "courgette/third_party/divsufsort" ;Expat
@ -111,7 +114,6 @@
"third_party/boringssl/src/third_party/fiat" ;Expat "third_party/boringssl/src/third_party/fiat" ;Expat
"third_party/breakpad" ;BSD-3 "third_party/breakpad" ;BSD-3
"third_party/brotli" ;Expat "third_party/brotli" ;Expat
"third_party/cacheinvalidation" ;ASL2.0
"third_party/catapult" ;BSD-3 "third_party/catapult" ;BSD-3
"third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0 "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
"third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0 "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
@ -139,9 +141,15 @@
"third_party/depot_tools/owners.py" ;BSD-3 "third_party/depot_tools/owners.py" ;BSD-3
"third_party/devtools-frontend" ;BSD-3 "third_party/devtools-frontend" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/fabricjs" ;Expat "third_party/devtools-frontend/src/front_end/third_party/fabricjs" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0 "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/lit-html" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/lodash-isequal" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3
"third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0 "third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
"third_party/devtools-frontend/src/third_party/axe-core" ;MPL2.0 "third_party/devtools-frontend/src/third_party/axe-core" ;MPL2.0
"third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0 "third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
@ -159,6 +167,8 @@
"third_party/iccjpeg" ;IJG "third_party/iccjpeg" ;IJG
"third_party/inspector_protocol" ;BSD-3 "third_party/inspector_protocol" ;BSD-3
"third_party/jinja2" ;BSD-3 "third_party/jinja2" ;BSD-3
;; XXX: Unbundle this when switching back to libstdc++.
"third_party/jsoncpp" ;Public Domain or Expat
"third_party/jstemplate" ;ASL2.0 "third_party/jstemplate" ;ASL2.0
"third_party/khronos" ;Expat, SGI "third_party/khronos" ;Expat, SGI
"third_party/leveldatabase" ;BSD-3 "third_party/leveldatabase" ;BSD-3
@ -175,6 +185,11 @@
"third_party/libsrtp" ;BSD-3 "third_party/libsrtp" ;BSD-3
"third_party/libsync" ;ASL2.0 "third_party/libsync" ;ASL2.0
"third_party/libudev" ;LGPL2.1+ "third_party/libudev" ;LGPL2.1+
;; FIXME: build/linux/unbundle/libvpx.gn does not work for all users.
"third_party/libvpx" ;BSD-3
"third_party/libvpx/source/libvpx/third_party/x86inc" ;Expat
"third_party/libwebm" ;BSD-3 "third_party/libwebm" ;BSD-3
"third_party/libxml/chromium" ;BSD-3 "third_party/libxml/chromium" ;BSD-3
"third_party/libyuv" ;BSD-3 "third_party/libyuv" ;BSD-3
@ -186,6 +201,7 @@
"third_party/metrics_proto" ;BSD-3 "third_party/metrics_proto" ;BSD-3
"third_party/modp_b64" ;BSD-3 "third_party/modp_b64" ;BSD-3
"third_party/nasm" ;BSD-2 "third_party/nasm" ;BSD-2
"third_party/nearby" ;ASL2.0
"third_party/node" ;Expat "third_party/node" ;Expat
"third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2" ;BSD-2 "third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2" ;BSD-2
"third_party/one_euro_filter" ;BSD-3 "third_party/one_euro_filter" ;BSD-3
@ -208,9 +224,13 @@
"third_party/protobuf/third_party/six" ;Expat "third_party/protobuf/third_party/six" ;Expat
"third_party/pyjson5" ;ASL2.0 "third_party/pyjson5" ;ASL2.0
"third_party/qcms" ;Expat "third_party/qcms" ;Expat
;; XXX: System re2 cannot be used when Chromium uses libc++ because the re2
;; ABI relies on libstdc++ internals. See build/linux/unbundle/re2.gn.
"third_party/re2" ;BSD-3
"third_party/rnnoise" ;BSD-3 "third_party/rnnoise" ;BSD-3
"third_party/s2cellid" ;ASL2.0 "third_party/s2cellid" ;ASL2.0
"third_party/schema_org" ;CC-BY-SA3.0 "third_party/schema_org" ;CC-BY-SA3.0
"third_party/securemessage" ;ASL2.0
"third_party/skia" ;BSD-3 "third_party/skia" ;BSD-3
"third_party/skia/include/third_party/skcms" ;BSD-3 "third_party/skia/include/third_party/skcms" ;BSD-3
"third_party/skia/third_party/skcms" ;BSD-3 "third_party/skia/third_party/skcms" ;BSD-3
@ -222,12 +242,13 @@
"third_party/sqlite" ;Public domain "third_party/sqlite" ;Public domain
"third_party/swiftshader" ;ASL2.0 "third_party/swiftshader" ;ASL2.0
"third_party/swiftshader/third_party/astc-encoder" ;ASL2.0 "third_party/swiftshader/third_party/astc-encoder" ;ASL2.0
"third_party/swiftshader/third_party/llvm-7.0" ;NCSA "third_party/swiftshader/third_party/llvm-10.0" ;ASL2.0, with LLVM exception
"third_party/swiftshader/third_party/llvm-subzero" ;NCSA "third_party/swiftshader/third_party/llvm-subzero" ;NCSA
"third_party/swiftshader/third_party/marl" ;ASL2.0 "third_party/swiftshader/third_party/marl" ;ASL2.0
"third_party/swiftshader/third_party/subzero" ;NCSA "third_party/swiftshader/third_party/subzero" ;NCSA
"third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style "third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style
"third_party/tcmalloc/chromium" ;BSD-3 "third_party/tcmalloc/chromium" ;BSD-3
"third_party/ukey2" ;ASL2.0
"third_party/usb_ids" ;BSD-3 "third_party/usb_ids" ;BSD-3
"third_party/usrsctp" ;BSD-2 "third_party/usrsctp" ;BSD-2
"third_party/vulkan_memory_allocator" ;Expat "third_party/vulkan_memory_allocator" ;Expat
@ -246,8 +267,10 @@
"third_party/widevine/cdm/widevine_cdm_version.h" ;BSD-3 "third_party/widevine/cdm/widevine_cdm_version.h" ;BSD-3
"third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3 "third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
"third_party/woff2" ;ASL2.0 "third_party/woff2" ;ASL2.0
"third_party/xcbproto" ;X11
"third_party/xdg-utils" ;Expat "third_party/xdg-utils" ;Expat
"third_party/zlib/google" ;BSD-3 "third_party/zlib/google" ;BSD-3
"third_party/zxcvbn-cpp" ;Expat
"url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+ "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
"v8/src/third_party/siphash" ;Public domain "v8/src/third_party/siphash" ;Public domain
"v8/src/third_party/utf8-decoder" ;Expat "v8/src/third_party/utf8-decoder" ;Expat
@ -258,27 +281,9 @@
(define %blacklisted-files (define %blacklisted-files
;; 'third_party/blink/perf_tests/resources/svg/HarveyRayner.svg' carries a ;; 'third_party/blink/perf_tests/resources/svg/HarveyRayner.svg' carries a
;; nonfree license according to LICENSES in the same directory. As we don't ;; nonfree license according to LICENSES in the same directory. As we don't
;; run the Blink performance tests, just remove everything to save ~24MiB. ;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests")) '("third_party/blink/perf_tests"))
(define (gentoo-patch name revision hash)
(origin
(method url-fetch)
(uri (string-append "https://gitweb.gentoo.org/repo/gentoo.git/plain"
"/www-client/chromium/files/" name "?id=" revision))
(file-name (string-append "ungoogled-" name))
(sha256 (base32 hash))))
;; This repository contains libstdc++ compatibility patches for Chromium.
(define (chromium-gcc-patchset commit hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stha09/chromium-patches")
(commit commit)))
(file-name (git-file-name "chromium-gcc-patches" commit))
(sha256 (base32 hash))))
(define (debian-patch name revision hash) (define (debian-patch name revision hash)
(origin (origin
(method url-fetch) (method url-fetch)
@ -289,38 +294,34 @@
(string-append "ungoogled-chromium-" category "-" name)))) (string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash)))) (sha256 (base32 hash))))
(define %ungoogled-revision "57244cdfc21dc05910862152d91cc528103c988a") (define (arch-patch name revision hash)
(define %debian-revision "debian/83.0.4103.116-3") (origin
(define %gentoo-revision "f3f649046d31ebdbc8c4a302b2384504eff78027") (method url-fetch)
(uri (string-append "https://raw.githubusercontent.com/archlinux"
"/svntogit-packages/" revision "/trunk/" name))
(sha256 (base32 hash))))
(define %gentoo-patches (define %chromium-version "86.0.4240.75")
;; This patch is necessary for compatibility with FFmpeg 4.3. (define %ungoogled-revision "c34a56db4c121238fface560e21531b6199ce5dd")
(list (gentoo-patch "chromium-84-mediaalloc.patch" %gentoo-revision (define %debian-revision "debian/84.0.4147.105-1")
"0snxdc4nb8ykzncz62vpsl8hgxpy24m17mycx67i2gckmrpslzzv"))) (define %arch-revision "2cbe439471932d30ff2c8ded6b3dfd51b312bbc9")
(define %chromium-gcc-patches
(chromium-gcc-patchset
"chromium-84-patchset-3"
"0l05gx3pn703n47anjwsl5sjcqw8kaxmivf7llax97kj3k6d127v"))
(define %debian-patches (define %debian-patches
(list (debian-patch "system/zlib.patch" %debian-revision (list (debian-patch "system/zlib.patch" %debian-revision
"0bp2vh1cgmwjrn1zkpphkd3bs662s23xwdhy3abm9cfjvwrj117n") "09vqgs37w9ycc7par14wa7rnvmg9bm0z9pqg6fyl3iqvpghyjyr4")
(debian-patch "system/jsoncpp.patch" %debian-revision
"0d95brl4a5y5w142yd0rvf59z513h7chsz0vnm034d6lqf22ahwf")
(debian-patch "system/openjpeg.patch" %debian-revision (debian-patch "system/openjpeg.patch" %debian-revision
"0zd6v5njx1pc7i0y6mslxvpx5j4cq01mmyx55qcqx8qzkm0gm48j"))) "0zd6v5njx1pc7i0y6mslxvpx5j4cq01mmyx55qcqx8qzkm0gm48j")))
(define %arch-patches (define %arch-patches
(list (origin (list (arch-patch "check-for-enable-accelerated-video-decode-on-Linux.patch"
(method url-fetch) %arch-revision
(uri "https://git.archlinux.org/svntogit/packages.git/plain/trunk/\ "12qj23dcp2g2ivyfyj13m4fzf68nllb9djwcxf1h195gn8wkml03")
chromium-fix-vaapi-on-intel.patch?h=packages/chromium\ (arch-patch "only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch"
&id=93b5b90621b4827084288197c6e0e09b987b372a") %arch-revision
(file-name "ungoogled-chromium-fix-vaapi-on-intel.patch") "0073qjp0dp9kj2ix2j6cxrima01rpdpkcjj9crxlb9b43b4cc53m")
(sha256 (arch-patch "fix-invalid-end-iterator-usage-in-CookieMonster.patch"
(base32 %arch-revision
"16jbjjf4d9jp52rdrrxx5vm69nx3w0qrijgjpwapnmcif13z55g4"))))) "1p1wy3dfncw0hhz77a1km0xjhix69ksgbpa569qz86nv76jbgn39")))
(define %ungoogled-origin (define %ungoogled-origin
(origin (origin
@ -331,7 +332,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(string-take %ungoogled-revision 7))) (string-take %ungoogled-revision 7)))
(sha256 (sha256
(base32 (base32
"15a1xpmabdxr1mn61m0jm9a5l987rxdji8b1b6zy39mr636vcwfi")))) "18p9a7qffmy8m03nqva7maalgil13lj2mn0s56v3crbs4wk4lalj"))))
;; This is a source 'snippet' that does the following: ;; This is a source 'snippet' that does the following:
;; *) Applies various patches for unbundling purposes and libstdc++ compatibility. ;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
@ -354,20 +355,18 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(for-each (lambda (patch) (for-each (lambda (patch)
(invoke "patch" "-p1" "--force" "--input" (invoke "patch" "-p1" "--force" "--input"
patch "--no-backup-if-mismatch")) patch "--no-backup-if-mismatch"))
(append (append '#+%debian-patches '#+%arch-patches
'#+%gentoo-patches '#+%debian-patches '#+%arch-patches '#+(list (local-file
(find-files #$%chromium-gcc-patches "\\.patch$") (search-patch
'#+(list (local-file "ungoogled-chromium-system-nspr.patch")))))
(search-patch
"ungoogled-chromium-system-nspr.patch")))))
(with-directory-excursion #+%ungoogled-origin (with-directory-excursion #+%ungoogled-origin
(format #t "Ungooglifying...~%") (format #t "Ungooglifying...~%")
(force-output) (force-output)
(invoke "python" "utils/prune_binaries.py" chromium-dir (invoke "python" "utils/prune_binaries.py" chromium-dir
"pruning.list") "pruning.list")
(invoke "python" "utils/patches.py" "apply" (invoke "python" "utils/patches.py" "apply" chromium-dir
chromium-dir "patches") "patches")
(invoke "python" "utils/domain_substitution.py" "apply" "-r" (invoke "python" "utils/domain_substitution.py" "apply" "-r"
"domain_regex.list" "-f" "domain_substitution.list" "domain_regex.list" "-f" "domain_substitution.list"
"-c" "/tmp/domainscache.tar.gz" chromium-dir)) "-c" "/tmp/domainscache.tar.gz" chromium-dir))
@ -396,8 +395,8 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(invoke "python" "build/linux/unbundle/replace_gn_files.py" (invoke "python" "build/linux/unbundle/replace_gn_files.py"
"--system-libraries" "ffmpeg" "flac" "fontconfig" "--system-libraries" "ffmpeg" "flac" "fontconfig"
"freetype" "harfbuzz-ng" "icu" "libdrm" "libevent" "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
"libjpeg" "libpng" "libvpx" "libwebp" "libxml" "libjpeg" "libpng" "libwebp" "libxml" "libxslt"
"libxslt" "openh264" "opus" "re2" "snappy" "zlib") "openh264" "opus" "snappy" "zlib")
#t)))) #t))))
(define opus+custom (define opus+custom
@ -412,16 +411,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
`(cons "--enable-custom-modes" `(cons "--enable-custom-modes"
,flags)))))) ,flags))))))
;; Chromium still has Python2-only code, so we need this special Python 2
;; variant of xcb-proto.
(define xcb-proto/python2
(package/inherit
xcb-proto
(name "python2-xcb-proto")
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python-2)))))
;; 'make-ld-wrapper' can only work with an 'ld' executable, so we need ;; 'make-ld-wrapper' can only work with an 'ld' executable, so we need
;; this trick to make it wrap 'lld'. ;; this trick to make it wrap 'lld'.
(define (make-lld-wrapper lld) (define (make-lld-wrapper lld)
@ -450,7 +439,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(define-public ungoogled-chromium (define-public ungoogled-chromium
(package (package
(name "ungoogled-chromium") (name "ungoogled-chromium")
(version (string-append "84.0.4147.125-0." (version (string-append %chromium-version "-0."
(string-take %ungoogled-revision 7))) (string-take %ungoogled-revision 7)))
(synopsis "Graphical web browser") (synopsis "Graphical web browser")
(source (origin (source (origin
@ -460,7 +449,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(car (string-split version #\-)) ".tar.xz")) (car (string-split version #\-)) ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1xdg9pnnvbzasmra09rl7wdrir61rfcqml46jj7kv39drwk9chwq")) "1ddw4p9zfdzhi5hrd8x14k4w326znljzprnpfi2f917rlpnl2ynx"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet)))) (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -470,8 +459,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
#:validate-runpath? #f #:validate-runpath? #f
#:modules ((guix build gnu-build-system) #:modules ((guix build gnu-build-system)
(guix build utils) (guix build utils)
(ice-9 ftw)
(ice-9 regex)
(srfi srfi-26)) (srfi srfi-26))
#:configure-flags #:configure-flags
;; See tools/gn/docs/cookbook.md and ;; See tools/gn/docs/cookbook.md and
@ -486,7 +473,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(string-append "max_jobs_per_link=" (string-append "max_jobs_per_link="
(number->string (parallel-job-count))) (number->string (parallel-job-count)))
"clang_use_chrome_plugins=false" "clang_use_chrome_plugins=false"
"use_custom_libcxx=false"
"use_sysroot=false" "use_sysroot=false"
"goma_dir=\"\"" "goma_dir=\"\""
"enable_nacl=false" "enable_nacl=false"
@ -505,16 +491,13 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
"enable_vr=false" "enable_vr=false"
"enable_widevine=false" "enable_widevine=false"
;; Disable type-checking for the Web UI to avoid a Java dependency. ;; Disable type-checking for the Web UI to avoid a Java dependency.
"closure_compile=false" "enable_js_type_check=false"
;; Define a custom toolchain that simply looks up CC, AR and ;; Define a custom toolchain that simply looks up CC, AR and
;; friends from the environment. ;; friends from the environment.
"custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
"host_toolchain=\"//build/toolchain/linux/unbundle:default\"" "host_toolchain=\"//build/toolchain/linux/unbundle:default\""
(string-append "xcbproto_path=\""
(assoc-ref %build-inputs "xcb-proto") "/share/xcb\"")
;; Prefer system libraries. ;; Prefer system libraries.
"use_system_freetype=true" "use_system_freetype=true"
"use_system_harfbuzz=true" "use_system_harfbuzz=true"
@ -547,16 +530,13 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
;; WebRTC stuff. ;; WebRTC stuff.
"rtc_use_h264=true" "rtc_use_h264=true"
;; Don't use bundled sources. ;; Don't use bundled sources.
"rtc_build_json=false" "rtc_build_json=true" ;FIXME: libc++ std::string ABI difference
"rtc_build_libevent=false" "rtc_build_libevent=false"
"rtc_build_libvpx=false" "rtc_build_libvpx=false"
"rtc_build_opus=false" "rtc_build_opus=false"
"rtc_build_ssl=false" "rtc_build_ssl=false"
"rtc_build_libsrtp=true" ;FIXME: fails to find headers "rtc_build_libsrtp=true" ;FIXME: fails to find headers
"rtc_build_usrsctp=true" ;TODO: package this "rtc_build_usrsctp=true" ;TODO: package this
(string-append "rtc_jsoncpp_root=\""
(assoc-ref %build-inputs "jsoncpp")
"/include/jsoncpp/json\"")
(string-append "rtc_ssl_root=\"" (string-append "rtc_ssl_root=\""
(assoc-ref %build-inputs "openssl") (assoc-ref %build-inputs "openssl")
"/include/openssl\"")) "/include/openssl\""))
@ -564,12 +544,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-stuff (add-after 'unpack 'patch-stuff
(lambda _ (lambda _
;; Fix build with newer re2. Taken from:
;; https://chromium-review.googlesource.com/c/chromium/src/+/2145261
(substitute* "components/autofill/core/browser/address_rewriter.cc"
(("options\\.set_utf8\\(true\\)")
"options.set_encoding(RE2::Options::EncodingUTF8)"))
(substitute* (substitute*
'("base/process/launch_posix.cc" '("base/process/launch_posix.cc"
"base/third_party/dynamic_annotations/dynamic_annotations.c" "base/third_party/dynamic_annotations/dynamic_annotations.c"
@ -615,10 +589,8 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(substitute* (substitute*
"third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h" "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
(("include \"third_party/curl") "include \"curl")) (("include \"third_party/curl")
"include \"curl"))
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
(("#include \"third_party/jsoncpp/") "#include \"json/"))
(substitute* '("components/viz/common/gpu/vulkan_context_provider.h" (substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
"components/viz/common/resources/resource_format_utils.h" "components/viz/common/resources/resource_format_utils.h"
@ -628,17 +600,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h" (substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
(("include/third_party/vulkan/") "")) (("include/third_party/vulkan/") ""))
;; Building chromedriver embeds some files using the ZIP
;; format which doesn't support timestamps before
;; 1980. Therefore, advance the timestamps of the files
;; which are included so that building chromedriver
;; works.
(let ((circa-1980 (* 10 366 24 60 60)))
(for-each (lambda (file)
(utime file circa-1980 circa-1980))
'("chrome/test/chromedriver/extension/background.js"
"chrome/test/chromedriver/extension/manifest.json")))
#t)) #t))
(add-after 'patch-stuff 'add-absolute-references (add-after 'patch-stuff 'add-absolute-references
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -660,10 +621,23 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(add-before 'configure 'prepare-build-environment (add-before 'configure 'prepare-build-environment
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Make sure the right build tools are used. ;; Define the GN toolchain.
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm") (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++") (setenv "CC" "clang") (setenv "CXX" "clang++")
(let ((gcc (assoc-ref inputs "gcc")))
;; Remove the default compiler from CPLUS_INCLUDE_PATH to
;; prevent header conflict with the bundled libcxx.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete (string-append gcc "/include/c++")
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))
(setenv "CXXFLAGS" (setenv "CXXFLAGS"
(string-join (string-join
'(;; Do not optimize away null pointer safety checks. '(;; Do not optimize away null pointer safety checks.
@ -728,7 +702,10 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(lib (string-append out "/lib")) (lib (string-append out "/lib"))
(man (string-append out "/share/man/man1")) (man (string-append out "/share/man/man1"))
(applications (string-append out "/share/applications")) (applications (string-append out "/share/applications"))
(install-regexp (make-regexp "\\.(bin|pak|so)$")) (libs '("chrome_100_percent.pak"
"chrome_200_percent.pak"
"resources.pak"
"v8_context_snapshot.bin"))
(locales (string-append lib "/locales")) (locales (string-append lib "/locales"))
(resources (string-append lib "/resources")) (resources (string-append lib "/resources"))
(preferences (assoc-ref inputs "master-preferences")) (preferences (assoc-ref inputs "master-preferences"))
@ -753,9 +730,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(copy-file preferences (string-append lib "/master_preferences")) (copy-file preferences (string-append lib "/master_preferences"))
(with-directory-excursion "out/Release" (with-directory-excursion "out/Release"
(for-each (lambda (file) (for-each (cut install-file <> lib) libs)
(install-file file lib))
(scandir "." (cut regexp-exec install-regexp <>)))
(copy-file "chrome" (string-append lib "/chromium")) (copy-file "chrome" (string-append lib "/chromium"))
(copy-recursively "locales" locales) (copy-recursively "locales" locales)
@ -785,7 +760,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
#t)))))) #t))))))
(native-inputs (native-inputs
`(("bison" ,bison) `(("bison" ,bison)
("clang" ,clang-10) ("clang" ,clang-11)
("gn" ,gn) ("gn" ,gn)
("gperf" ,gperf) ("gperf" ,gperf)
("ld-wrapper" ,(make-lld-wrapper lld)) ("ld-wrapper" ,(make-lld-wrapper lld))
@ -817,7 +792,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("harfbuzz" ,harfbuzz) ("harfbuzz" ,harfbuzz)
("icu4c" ,icu4c-67) ("icu4c" ,icu4c-67)
("jsoncpp" ,jsoncpp)
("lcms" ,lcms) ("lcms" ,lcms)
("libevent" ,libevent) ("libevent" ,libevent)
("libffi" ,libffi) ("libffi" ,libffi)
@ -851,13 +825,11 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
("pango" ,pango) ("pango" ,pango)
("pciutils" ,pciutils) ("pciutils" ,pciutils)
("pulseaudio" ,pulseaudio) ("pulseaudio" ,pulseaudio)
("re2" ,re2)
("snappy" ,snappy) ("snappy" ,snappy)
("speech-dispatcher" ,speech-dispatcher) ("speech-dispatcher" ,speech-dispatcher)
("udev" ,eudev) ("udev" ,eudev)
("valgrind" ,valgrind) ("valgrind" ,valgrind)
("vulkan-headers" ,vulkan-headers) ("vulkan-headers" ,vulkan-headers)))
("xcb-proto" ,xcb-proto/python2)))
;; Building Chromium takes ... a very long time. On a single core, a busy ;; Building Chromium takes ... a very long time. On a single core, a busy
;; mid-end x86 system may need more than 24 hours to complete the build. ;; mid-end x86 system may need more than 24 hours to complete the build.

View file

@ -39,6 +39,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages perl-compression) #:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
@ -46,9 +47,29 @@
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
;; Guile-Sqlite3 package adding SQL query logging support.
;; Remove it when next Guile-Sqlite3 release is out.
(define-public guile-sqlite3-dev
(let ((commit "22ef45d268de7707cbbb943c404f9b0c1668e2e1")
(revision "1"))
(package
(inherit guile-sqlite3)
(name "guile-sqlite3")
(version (git-version "0.1.2" revision commit))
(home-page "https://notabug.org/mothacehe/guile-sqlite3.git")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"1q90f8zhw9n1c39szd2ba7aj5fi92m09pnlv0z7jbhnnjam5jwcd"))
(file-name (string-append name "-" version "-checkout")))))))
(define-public cuirass (define-public cuirass
(let ((commit "cf11b73db00678b45b70108768138d0fb74d9506") (let ((commit "df2d13621f4b2ace33a460746e704115b7b1541e")
(revision "45")) (revision "53"))
(package (package
(name "cuirass") (name "cuirass")
(version (git-version "0.0.1" revision commit)) (version (git-version "0.0.1" revision commit))
@ -60,7 +81,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1f7jqnscy8vjqrpgl4cyynrvbx6zp3slsd82fykap6qvvwwn7xj8")))) "1vgb1wl1rkijm1vv5chqllf4i5w1j7g02xqlaf2xmqjh2phy5dxa"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:modules ((guix build utils) '(#:modules ((guix build utils)
@ -122,11 +143,11 @@
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs))) `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
#t)))))) #t))))))
(inputs (inputs
`(("guile" ,@(assoc-ref (package-native-inputs guix) "guile")) `(("guile" ,guile-3.0/libgc-7)
("guile-fibers" ,guile-fibers) ("guile-fibers" ,guile-fibers)
("guile-gcrypt" ,guile-gcrypt) ("guile-gcrypt" ,guile-gcrypt)
("guile-json" ,guile-json-4) ("guile-json" ,guile-json-4)
("guile-sqlite3" ,guile-sqlite3) ("guile-sqlite3" ,guile-sqlite3-dev)
("guile-git" ,guile-git) ("guile-git" ,guile-git)
("guile-zlib" ,guile-zlib) ("guile-zlib" ,guile-zlib)
;; FIXME: this is propagated by "guile-git", but it needs to be among ;; FIXME: this is propagated by "guile-git", but it needs to be among

View file

@ -39,7 +39,7 @@
(define-public drbd-utils (define-public drbd-utils
(package (package
(name "drbd-utils") (name "drbd-utils")
(version "9.13.1") (version "9.15.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; Older releases are moved to /archive. List it first because in ;; Older releases are moved to /archive. List it first because in
@ -51,7 +51,7 @@
"/utils/drbd-utils-" version ".tar.gz"))) "/utils/drbd-utils-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"0di55y0vzaw8jhcgz0fakww03h1gpg4a5q1zklxhjw3dwzjvysnk")) "0jh7zdxpbjkq53pmrn0jfn33abi4vs8axp55h5256czwc2gfb6z8"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View file

@ -233,7 +233,7 @@ COCOMO model or user-provided parameters.")
(define-public cloc (define-public cloc
(package (package
(name "cloc") (name "cloc")
(version "1.86") (version "1.88")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -242,7 +242,7 @@ COCOMO model or user-provided parameters.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "082gj2b3x11bilz8c572dd60vn6n0fhld5zhi7wk7g1wy9wlgm9w")))) (base32 "1ixgswzbzv63bl50gb2kgaqr0jcicjz6w610hi9fal1i7744zraw"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("coreutils" ,coreutils) `(("coreutils" ,coreutils)
@ -470,60 +470,53 @@ stack traces.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public lcov (define-public lcov
;; Use a recent commit from upstream since the latest official release (package
;; (1.14) doesn't support GCC 9 (see: (name "lcov")
;; https://github.com/linux-test-project/lcov/issues/58). (version "1.15")
(let* ((commit "40580cd65909bc8324ae09b36bca2e178652ff3f") (source
(revision "0") (origin
(version (git-version "1.14" revision commit))) (method url-fetch)
(package (uri (string-append "https://github.com/linux-test-project/lcov"
(name "lcov") "/releases/download/v" version
(version "1.14") "/lcov-" version ".tar.gz"))
(source (origin (sha256
(method git-fetch) (base32 "0fh5z0q5wg2jxr2nn5w7321y0zg9rwk75j3k5hnamjdy6gxa5kf1"))))
(uri (git-reference (build-system gnu-build-system)
(url "https://github.com/linux-test-project/lcov") (arguments
(commit commit))) '(#:test-target "test"
(file-name (git-file-name name version)) #:make-flags (list (string-append "PREFIX="
(sha256 (assoc-ref %outputs "out")))
(base32 #:phases
"0shgmh6fzhnj1qfdl90jgjmlbb1ih1qh879dca8hc58yggy3hqgb")))) (modify-phases %standard-phases
(build-system gnu-build-system) (add-after 'unpack 'patch-pwd
(arguments ;; Lift the requirement of having a shell in PATH.
'(#:test-target "test" (lambda _
#:make-flags (list (string-append "PREFIX=" (substitute* "bin/geninfo"
(assoc-ref %outputs "out"))) (("qw/abs_path/")
#:phases "qw/abs_path getcwd/"))
(modify-phases %standard-phases (substitute* '("bin/lcov" "bin/geninfo")
(add-after 'unpack 'patch-pwd (("`pwd`")
;; Lift the requirement of having a shell in PATH. "getcwd()"))
(lambda _ #t))
(substitute* "bin/geninfo" (delete 'configure) ;no configure script
(("qw/abs_path/") (add-after 'install 'wrap
"qw/abs_path getcwd/")) (lambda* (#:key outputs #:allow-other-keys)
(substitute* '("bin/lcov" "bin/geninfo") (let ((out (assoc-ref outputs "out")))
(("`pwd`") (wrap-program (string-append out "/bin/geninfo")
"getcwd()")) `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
#t)) #t)))))
(delete 'configure) ;no configure script (inputs `(("perl" ,perl)
(add-after 'install 'wrap ("perl-io-compress" ,perl-io-compress)
(lambda* (#:key outputs #:allow-other-keys) ("perl-json" ,perl-json)))
(let ((out (assoc-ref outputs "out"))) (home-page "http://ltp.sourceforge.net/coverage/lcov.php")
(wrap-program (string-append out "/bin/geninfo") (synopsis "Code coverage tool that enhances GNU gcov")
`("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))) (description "LCOV is an extension of @command{gcov}, a tool part of the
#t)))))
(inputs `(("perl" ,perl)
("perl-json" ,perl-json)
("perl-perlio-gzip" ,perl-perlio-gzip)))
(home-page "http://ltp.sourceforge.net/coverage/lcov.php")
(synopsis "Code coverage tool that enhances GNU gcov")
(description "LCOV is an extension of @command{gcov}, a tool part of the
GNU@tie{}Binutils, which provides information about what parts of a program GNU@tie{}Binutils, which provides information about what parts of a program
are actually executed (i.e., \"covered\") while running a particular test are actually executed (i.e., \"covered\") while running a particular test
case. The extension consists of a set of Perl scripts which build on the case. The extension consists of a set of Perl scripts which build on the
textual @command{gcov} output to implement the following enhanced textual @command{gcov} output to implement the following enhanced
functionality such as HTML output.") functionality such as HTML output.")
(license license:gpl2+)))) (license license:gpl2+)))
(define-public kcov (define-public kcov
(package (package

View file

@ -381,7 +381,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
(inputs '()) (inputs '())
(propagated-inputs '()) (propagated-inputs '())
(native-inputs (native-inputs
`(("nyacc-source" ,(origin (inherit (package-source nyacc)) `(("nyacc-source" ,(origin (inherit (package-source nyacc-0.99))
(snippet #f))) (snippet #f)))
("mes" ,%bootstrap-mes-rewired) ("mes" ,%bootstrap-mes-rewired)
("mescc-tools" ,%bootstrap-mescc-tools) ("mescc-tools" ,%bootstrap-mescc-tools)
@ -477,7 +477,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
(propagated-inputs '()) (propagated-inputs '())
(native-inputs (native-inputs
`(("mes" ,mes-boot) `(("mes" ,mes-boot)
("nyacc-source" ,(origin (inherit (package-source nyacc)) ("nyacc-source" ,(origin (inherit (package-source nyacc-0.99))
(snippet #f))) (snippet #f)))
("mescc-tools" ,%bootstrap-mescc-tools) ("mescc-tools" ,%bootstrap-mescc-tools)
,@(%boot-gash-inputs))) ,@(%boot-gash-inputs)))
@ -3842,8 +3842,12 @@ COREUTILS-FINAL vs. COREUTILS, etc."
"libc-static"))) "libc-static")))
#t)))) #t))))
(native-search-paths (package-native-search-paths gcc)) (native-search-paths
(search-paths (package-search-paths gcc)) (append (package-native-search-paths gcc)
(package-native-search-paths libc))) ;GUIX_LOCPATH
(search-paths
(append (package-search-paths gcc)
(package-search-paths libc)))
(license (package-license gcc)) (license (package-license gcc))
(synopsis "Complete GCC tool chain for C/C++ development") (synopsis "Complete GCC tool chain for C/C++ development")

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
@ -28,6 +28,7 @@
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net> ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -803,7 +804,7 @@ decompression of some loosely related file formats used by Microsoft.")
("valgrind" ,valgrind))) ("valgrind" ,valgrind)))
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
#:make-flags (list "CC=gcc" #:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "prefix=" (assoc-ref %outputs "out"))) (string-append "prefix=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(delete 'configure) ;no configure script (delete 'configure) ;no configure script
@ -1769,7 +1770,8 @@ Clzip is intended to be fully compatible with the regular lzip package.")
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list "CC=gcc" (list (string-append "CC=" ,(cc-for-target))
"--disable-static"
"--enable-shared"))) ; only static (.a) is built by default "--enable-shared"))) ; only static (.a) is built by default
(home-page "https://www.nongnu.org/lzip/lzlib.html") (home-page "https://www.nongnu.org/lzip/lzlib.html")
(synopsis "Lzip data compression C library") (synopsis "Lzip data compression C library")
@ -2256,3 +2258,31 @@ computations.")
with their error correction data losslessly rearranged for better compression, with their error correction data losslessly rearranged for better compression,
to their original, binary CD format.") to their original, binary CD format.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public tarlz
(package
(name "tarlz")
(version "0.17")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/tarlz/"
"tarlz-" version ".tar.lz"))
(sha256
(base32 "0gpdm6z9pdr5bn31kxg73wm686hhpb5pdf5782pbl5a4xqqhqj90"))))
(build-system gnu-build-system)
(native-inputs
`(("lzip" ,lzip)))
(inputs
`(("lzlib" ,lzlib)))
(home-page "https://www.nongnu.org/lzip/tarlz.html")
(synopsis "Combination of the tar archiver and the lzip compressor")
(description
"Tarlz is a massively parallel (multi-threaded) combined implementation of
the tar archiver and the lzip compressor. Tarlz creates, lists, and extracts
archives in a simplified and safer variant of the POSIX pax format compressed
with lzip, keeping the alignment between tar members and lzip members. The
resulting multimember tar.lz archive is fully backward compatible with standard
tar tools like GNU tar, which treat it like any other tar.lz archive. Tarlz
can append files to the end of such compressed archives.")
(license license:gpl2+)))

View file

@ -79,7 +79,7 @@
("libxext" ,libxext) ("libxext" ,libxext)
("libxft" ,libxft) ("libxft" ,libxft)
("libxinerama" ,libxinerama) ("libxinerama" ,libxinerama)
("pulseaudio", pulseaudio) ("pulseaudio" ,pulseaudio)
("lua" ,lua) ("lua" ,lua)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
("curl" ,curl))) ("curl" ,curl)))

View file

@ -14,6 +14,7 @@
;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -40,12 +41,22 @@
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages code) #:use-module (gnu packages code)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages gcc)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages logging)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages web)) #:use-module (gnu packages web))
@ -361,7 +372,7 @@ intuitive syntax and trivial integration.")
(define-public xtl (define-public xtl
(package (package
(name "xtl") (name "xtl")
(version "0.6.18") (version "0.6.19")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (uri
@ -370,7 +381,7 @@ intuitive syntax and trivial integration.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"0s9gnv1wq0cmpw878dmx0lnci86895hhdrwyc9x8lfbc1hr7ypnh")) "1g98lfrp13fqfqrirg0rw90m7bajmjmy12yhrlj5jzwcby4dfs81"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(native-inputs (native-inputs
`(("googletest" ,googletest) `(("googletest" ,googletest)
@ -647,3 +658,73 @@ Google's C++ code base.")
a zero-dependency C++ header-only parser combinator library for creating a zero-dependency C++ header-only parser combinator library for creating
parsers according to a Parsing Expression Grammar (PEG).") parsers according to a Parsing Expression Grammar (PEG).")
(license license:expat))) (license license:expat)))
(define-public cxxopts
(package
(name "cxxopts")
(version "2.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jarro2783/cxxopts")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0d3y747lsh1wkalc39nxd088rbypxigm991lk3j91zpn56whrpha"))))
(build-system cmake-build-system)
(synopsis "Lightweight C++ command line option parser")
(description
"A lightweight header-only C++ option parser library, supporting the
standard GNU style syntax for options.")
(home-page "https://github.com/jarro2783/cxxopts/wiki")
(license license:expat)))
(define-public folly
(package
(name "folly")
(version "2020.10.05.00")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/facebook/folly")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0q4w4cvjxffc462hvs8h4zryq4965j7015zvkwagcm6cj6wmz3cn"))))
(build-system cmake-build-system)
(arguments
'(;; Tests must be explicitly enabled
;;#:configure-flags '("-DBUILD_TESTS=ON")))
;; Leave tests disabled; see https://github.com/facebook/folly/issues/1456
#:tests? #f))
(propagated-inputs
`(("boost" ,boost)
("gflags" ,gflags)
("glog" ,glog)
("liburing" ,liburing)))
(inputs
`(("bzip2" ,bzip2)
("double-conversion" ,double-conversion)
("fmt" ,fmt)
("libaio" ,libaio)
("libevent" ,libevent)
("libiberty" ,libiberty)
("libsodium" ,libsodium)
("libunwind" ,libunwind)
("lz4" ,lz4)
("openssl" ,openssl)
("snappy" ,snappy)
("zlib" ,zlib)
("zstd" ,zstd "lib")))
(native-inputs
`(("googletest" ,googletest)))
(synopsis "Collection of C++ components complementing the standard library")
(description
"Folly (acronymed loosely after Facebook Open Source Library) is a library
of C++14 components that complements @code{std} and Boost.")
(home-page "https://github.com/facebook/folly/wiki")
;; 32-bit is not supported: https://github.com/facebook/folly/issues/103
(supported-systems '("aarch64-linux" "x86_64-linux"))
(license license:asl2.0)))

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

667
gnu/packages/crates-gtk.scm Normal file
View file

@ -0,0 +1,667 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages crates-gtk)
#:use-module (guix build-system cargo)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk))
;;;
;;; Please: Try to add new module packages in alphabetic order.
;;;
(define-public rust-cairo-rs-0.8
(package
(name "rust-cairo-rs")
(version "0.8.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "cairo-rs" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"11303v1fv6hsc9n70ak380gknkf0098phpcxqdhkmahqjsx4jw0m"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
("rust-glib" ,rust-glib-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("cairo" ,cairo)))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Cairo library")
(description
"Rust bindings for the Cairo library.")
(license license:expat)))
(define-public rust-cairo-rs-0.7
(package
(inherit rust-cairo-rs-0.8)
(name "rust-cairo-rs")
(version "0.7.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "cairo-rs" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"171m98g41avp5mmshqir4ka21napp7ma5fx45wi9mw5hwdyv8pg0"))))
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
("rust-glib" ,rust-glib-0.8)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-cairo-sys-rs-0.9
(package
(name "rust-cairo-sys-rs")
(version "0.9.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "cairo-sys-rs" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0qsdy6s57yvscg2rfm7wdqrlhzbn1aq9lhk3dy1vw5f7r81blrgz"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-winapi" ,rust-winapi-0.3)
("rust-x11" ,rust-x11-2)
("rust-pkg-config" ,rust-pkg-config-0.3))))
(inputs
`(("cairo" ,cairo)))
(home-page "https://gtk-rs.org/")
(synopsis "FFI bindings to libcairo")
(description "This package provides FFI bindings to libcairo.")
(license license:expat)))
(define-public rust-gdk-pixbuf-0.8
(package
(name "rust-gdk-pixbuf")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "gdk-pixbuf" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1mxxca0fkcw2rsd3kl3nvlb8ys4cgxqx4n5isjbv0adk8q624j72"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
("rust-gio" ,rust-gio-0.8)
("rust-gio-sys" ,rust-gio-sys-0.9)
("rust-glib" ,rust-glib-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the GdkPixbuf library")
(description
"Rust bindings for the GdkPixbuf library.")
(license license:expat)))
(define-public rust-gdk-pixbuf-0.7
(package
(inherit rust-gdk-pixbuf-0.8)
(name "rust-gdk-pixbuf")
(version "0.7.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "gdk-pixbuf" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1k2g3w2p57m68bi5sldvkmgjgslgqswrjsijjhqaibdvw67409lp"))))
(arguments
`(#:cargo-inputs
(("rust-fragile" ,rust-fragile-0.3)
("rust-futures-preview" ,rust-futures-preview-0.3)
("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
("rust-gio" ,rust-gio-0.7)
("rust-gio-sys" ,rust-gio-sys-0.9)
("rust-glib" ,rust-glib-0.8)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-gdk-pixbuf-sys-0.9
(package
(name "rust-gdk-pixbuf-sys")
(version "0.9.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gdk-pixbuf-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1c2andpjb10y7bahh6nxnksh9m3g5qh4mgq9znx634cy1831p6fq"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; tests not included in release
#:cargo-inputs
(("rust-gio-sys" ,rust-gio-sys-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)))
(home-page "https://gtk-rs.org/")
(synopsis "FFI bindings to libgdk_pixbuf-2.0")
(description "This package provides FFI bindings to @code{libgdk_pixbuf-2.0}.")
(license license:expat)))
(define-public rust-gio-0.8
(package
(name "rust-gio")
(version "0.8.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gio" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"19cnla2ya0mi6wwaabd5mxbq2kzq46dg6jq2z19rpqyc2na0zl8c"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Not all files included in the tarball.
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-futures-channel" ,rust-futures-channel-0.3)
("rust-futures-core" ,rust-futures-core-0.3)
("rust-futures-io" ,rust-futures-io-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-gio-sys" ,rust-gio-sys-0.9)
("rust-glib" ,rust-glib-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1)
("rust-serial-test" ,rust-serial-test-0.1)
("rust-serial-test-derive" ,rust-serial-test-derive-0.1))))
(inputs
`(("glib" ,glib)))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Gio library")
(description "Rust bindings for the Gio library.")
(license license:expat)))
(define-public rust-gio-0.7
(package
(inherit rust-gio-0.8)
(name "rust-gio")
(version "0.7.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "gio" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1qv0wc1hqyb81c03h81s3xrl9jslrw23fr4yhygxbhih9k9vaqb2"))))
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-fragile" ,rust-fragile-0.3)
("rust-futures-preview" ,rust-futures-preview-0.3)
("rust-gio-sys" ,rust-gio-sys-0.9)
("rust-glib" ,rust-glib-0.8)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-gio-sys-0.9
(package
(name "rust-gio-sys")
(version "0.9.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gio-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"049rafihxp3maxg3fwj6062ni9dcfilvhfq6ibnfgsmr89925bag"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Some test libraries not included in release.
#:cargo-inputs
(("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("glib" ,glib)))
(home-page "http://gtk-rs.org/")
(synopsis "FFI bindings to libgio-2.0")
(description "This package provides FFI bindings to libgio-2.0.")
(license license:expat)))
(define-public rust-gir-format-check-0.1
(package
(name "rust-gir-format-check")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gir-format-check" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0znl4qcgmg0656zk9vjkwdn9wj1zpkd0m0l5jnzmahd80ii7vf4b"))))
(build-system cargo-build-system)
(home-page "https://github.com/gtk-rs/gir-format-check")
(synopsis "File format checker")
(description "File format checker in Rust.")
(license license:expat)))
(define-public rust-glib-0.9
(package
(name "rust-glib")
(version "0.9.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "glib" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1h3100mf7kdfxibjz5na0sqzbd2mcsyd8pzivn3666w414x5gys0"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-futures-channel" ,rust-futures-channel-0.3)
("rust-futures-core" ,rust-futures-core-0.3)
("rust-futures-executor" ,rust-futures-executor-0.3)
("rust-futures-preview" ,rust-futures-preview-0.3)
("rust-futures-task" ,rust-futures-task-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("glib" ,glib)))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the GLib library")
(description
"Rust bindings for the GLib library.")
(license license:expat)))
(define-public rust-glib-0.8
(package
(inherit rust-glib-0.9)
(name "rust-glib")
(version "0.8.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "glib" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0ysy87zrwyzhfpf3d8rkyyr3amwj85wky05fsl7kx95s84l269xy"))))
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-futures-preview" ,rust-futures-preview-0.3)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-glib-sys-0.9
(package
(name "rust-glib-sys")
(version "0.9.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "glib-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1qhnwfqqcp63mx4q9744rfkq78g6ky2j8ppsxxgw0ipl08w6z1cm"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Some test libraries not included in release.
#:cargo-inputs
(("rust-libc" ,rust-libc-0.2)
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("glib" ,glib)))
(home-page "http://gtk-rs.org/")
(synopsis "FFI bindings to libglib-2.0")
(description "This package provides FFI bindings to libglib-2.0.")
(license license:expat)))
(define-public rust-gobject-sys-0.9
(package
(name "rust-gobject-sys")
(version "0.9.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gobject-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1nakflbp3gjaas4fw7sn3p1p32khyfpcq1h06z7yqd10yq2ail9i"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Some test libraries not included in release.
#:cargo-inputs
(("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("glib" ,glib)))
(home-page "http://gtk-rs.org/")
(synopsis "FFI bindings to libgobject-2.0")
(description "This package provides FFI bindings to libgobject-2.0.")
(license license:expat)))
(define-public rust-gtk-rs-lgpl-docs-0.1
(package
(name "rust-gtk-rs-lgpl-docs")
(version "0.1.15")
(source
(origin
(method url-fetch)
(uri (crate-uri "gtk-rs-lgpl-docs" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"06b1j64zg0xmhwfkyhzh3y0apclg6qihn3f7s1bd7kgjmkia4jlr"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-rustdoc-stripper" ,rust-rustdoc-stripper-0.1))))
(home-page "https://gtk-rs.org/")
(synopsis "LGPL-licensed docs for Gtk-rs crates")
(description
"LGPL-licensed docs for Gtk-rs crates.")
(license license:lgpl2.0)))
(define-public rust-pango-0.8
(package
(name "rust-pango")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "pango" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0xq50950il3228grzs4xvc5s6phxcl5l50grz6syvs0vixr6p70y"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-glib" ,rust-glib-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-pango-sys" ,rust-pango-sys-0.9)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(inputs
`(("pango" ,pango)))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Pango library")
(description
"Rust bindings for the Pango library.")
(license license:expat)))
(define-public rust-pango-0.7
(package
(inherit rust-pango-0.8)
(name "rust-pango")
(version "0.7.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "pango" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"11np7nxb69g3kid2l78b7k519x1wk1c3f9yy7swgzy24n5qs0grr"))))
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-glib" ,rust-glib-0.8)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-pango-sys" ,rust-pango-sys-0.9)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-pango-sys-0.9
(package
(name "rust-pango-sys")
(version "0.9.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "pango-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0zdynikh6jrfa31fpmbrwnz46a57idci73zzkf0z0g3vj223vfc6"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Some test files not included in release.
#:cargo-inputs
(("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("pango" ,pango)))
(home-page "https://gtk-rs.org/")
(synopsis "FFI bindings to libpango-1.0")
(description "This package provides FFI bindings to @code{libpango-1.0}.")
(license license:expat)))
(define-public rust-pangocairo-0.9
(package
(name "rust-pangocairo")
(version "0.9.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0bap3h78hdqdyln58349qjjbcv45m8a0a16c4n9fprdj1my0gldx"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-rs" ,rust-cairo-rs-0.8)
("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
("rust-glib" ,rust-glib-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-pango" ,rust-pango-0.8)
("rust-pango-sys" ,rust-pango-sys-0.9)
("rust-pangocairo-sys" ,rust-pangocairo-sys-0.10)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(inputs
`(("gtk+" ,gtk+)))
(home-page "http://gtk-rs.org/")
(synopsis "Rust bindings for the PangoCairo library")
(description
"Rust bindings for the PangoCairo library.")
(license license:expat)))
(define-public rust-pangocairo-0.8
(package
(inherit rust-pangocairo-0.9)
(name "rust-pangocairo")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0qjiwsp73x3w0493dzycyjzxnzwq7ixwmf1ccr5r41pjhxbnk1kl"))))
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-rs" ,rust-cairo-rs-0.7)
("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
("rust-glib" ,rust-glib-0.8)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-pango" ,rust-pango-0.7)
("rust-pango-sys" ,rust-pango-sys-0.9)
("rust-pangocairo-sys" ,rust-pangocairo-sys-0.10)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-pangocairo-sys-0.10
(package
(name "rust-pangocairo-sys")
(version "0.10.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1zlyf5vajarnxg5034b8qa5w5zajv96lfvlgiki26svpmcqip4m3"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-libc" ,rust-libc-0.2)
("rust-pango-sys" ,rust-pango-sys-0.9)
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("gtk+" ,gtk+)))
(home-page "https://gtk-rs.org/")
(synopsis "FFI bindings to libgtk-3")
(description "This package provides FFI bindings to libgtk-3.")
(license license:expat)))

File diff suppressed because it is too large Load diff

View file

@ -143,7 +143,7 @@ communication, encryption, decryption, signatures, etc.")
(define-public signify (define-public signify
(package (package
(name "signify") (name "signify")
(version "29") (version "30")
(home-page "https://github.com/aperezdc/signify") (home-page "https://github.com/aperezdc/signify")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -151,7 +151,7 @@ communication, encryption, decryption, signatures, etc.")
"/download/v" version "/signify-" version ".tar.xz")) "/download/v" version "/signify-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1bzcax5kb4lr0rmpmrdpq5q0iq6b2dxzpl56li8aanbkck1c7hd9")))) "11l67j04gyxnlw6zrzsygqs5cgsc1sww1rh0apl05yay131hd17n"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; TODO Build with libwaive (described in README.md), to implement something ;; TODO Build with libwaive (described in README.md), to implement something
;; like OpenBSD's pledge(). ;; like OpenBSD's pledge().
@ -359,10 +359,10 @@ secure operations. ")
(base32 (base32
"0lj38ldh8vzi11wp4ghw4k0fkwp0s04zv8k8d473p1snmbh7mx98")))) "0lj38ldh8vzi11wp4ghw4k0fkwp0s04zv8k8d473p1snmbh7mx98"))))
(inputs (inputs
`(("openssl" ,openssl))) ; It needs: openssl/{bn,pem,rsa,sha}.h `(("openssl" ,openssl-1.0))) ; for openssl/{bn,pem,rsa,sha}.h
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list "CC=gcc" `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "PREFIX=" (assoc-ref %outputs "out"))
(string-append "INSTALL=" "install")) (string-append "INSTALL=" "install"))
;; XXX: make test would run a !VERY! long hashing of names with the use ;; XXX: make test would run a !VERY! long hashing of names with the use

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -35,7 +35,7 @@
(define-public cryptsetup (define-public cryptsetup
(package (package
(name "cryptsetup") (name "cryptsetup")
(version "2.3.3") (version "2.3.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/cryptsetup/v" (uri (string-append "mirror://kernel.org/linux/utils/cryptsetup/v"
@ -43,7 +43,7 @@
"/cryptsetup-" version ".tar.xz")) "/cryptsetup-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1pw2bq4nv2z3xyycckxkbp7dp9kkp2n6bspna3plryg277z4zjiv")))) "0wrpz2fzbsszmsgxxbssxjgylpyiindh24z8g13m2fxmjsxyw5lx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View file

@ -418,16 +418,17 @@ should only be used as part of the Guix cups-pk-helper service.")
(define-public hplip (define-public hplip
(package (package
(name "hplip") (name "hplip")
(version "3.20.6") (version "3.20.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/hplip/hplip/" version (uri (string-append "mirror://sourceforge/hplip/hplip/" version
"/hplip-" version ".tar.gz")) "/hplip-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"083w58wpvvm6sir6rf5dwx3r0rman9sv1zpl26chl0a88crjsjy6")) "1prdbp410405xrfggjc7y34nzljg7jnbgjzalgv4khwwma4i299n"))
(modules '((guix build utils))) (modules '((guix build utils)))
(patches (search-patches "hplip-remove-imageprocessor.patch")) (patches (search-patches "hplip-fix-bug-1898438.patch"
"hplip-remove-imageprocessor.patch"))
(snippet (snippet
'(begin '(begin
;; Delete non-free blobs: .so files, pre-compiled ;; Delete non-free blobs: .so files, pre-compiled
@ -468,10 +469,7 @@ should only be used as part of the Guix cups-pk-helper service.")
(assoc-ref %outputs "out") "/lib") (assoc-ref %outputs "out") "/lib")
;; Disable until mime.types merging works (FIXME). ;; Disable until mime.types merging works (FIXME).
"--disable-fax-build" "--disable-fax-build"
"--enable-hpcups-install"
"--enable-new-hpcups" "--enable-new-hpcups"
"--enable-cups_ppd_install"
"--enable-cups_drv_install"
;; TODO add foomatic drv install eventually. ;; TODO add foomatic drv install eventually.
;; TODO --enable-policykit eventually. ;; TODO --enable-policykit eventually.
,(string-append "--with-cupsfilterdir=" ,(string-append "--with-cupsfilterdir="
@ -752,20 +750,19 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.")
(define-public escpr (define-public escpr
(package (package
(name "escpr") (name "escpr")
(version "1.6.30") (version "1.7.7")
;; XXX: This currently works. But it will break as soon as a newer ;; XXX: This currently works. But it will break as soon as a newer
;; version is available since the URLs for older versions are not ;; version is available since the URLs for older versions are not
;; preserved. An alternative source will be added as soon as ;; preserved. An alternative source will be added as soon as
;; available. ;; available.
(source (origin (source
(method url-fetch) (origin
;; The uri has to be chopped up in order to satisfy guix lint. (method url-fetch)
(uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/08/18/20/" (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/10/49/18/"
"e94de600e28e510c1cfa158929d8b2c0aadc8aa0/" "f3016be6120a7271a6d9cb64872f817bce1920b8/"
"epson-inkjet-printer-escpr-1.6.30-1lsb3.2.tar.gz")) "epson-inkjet-printer-escpr-1.7.7-1lsb3.2.tar.gz"))
(sha256 (sha256
(base32 (base32 "0khdf2a9iwh9aplj2gzyzl53yyfnfv0kszk3p018jnirl5l475ld"))))
"0m8pyfkixisp0vclwxj340isn15zzisal0v2xvv66kxfd68dzf12"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -774,13 +771,30 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.")
,(string-append "--with-cupsfilterdir=" ,(string-append "--with-cupsfilterdir="
(assoc-ref %outputs "out") "/lib/cups/filter") (assoc-ref %outputs "out") "/lib/cups/filter")
,(string-append "--with-cupsppddir=" ,(string-append "--with-cupsppddir="
(assoc-ref %outputs "out") "/share/ppd")))) (assoc-ref %outputs "out") "/share/cups/model"))
(inputs `(("cups" ,cups-minimal))) #:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-autotools-version-requirement
(lambda _
(substitute* "aclocal.m4"
(("1\\.15")
,(package-version automake)))
(substitute* "configure"
(("^(ACLOCAL=).*" _ match)
(string-append match "aclocal"))
(("^(AUTOMAKE=).*" _ match)
(string-append match "automake")))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)))
(inputs
`(("cups" ,cups-minimal)))
(synopsis "ESC/P-R printer driver") (synopsis "ESC/P-R printer driver")
(description (description
"This package provides a filter for the Common UNIX Printing "This package provides a filter for @acronym{CUPS, the Common UNIX Printing
System (CUPS). It offers high-quality printing with Seiko Epson color ink jet System} that offers high-quality printing with Seiko@tie{}Epson color ink jet
printers. It can only be used with printers that support the Epson ESC/P-R printers. It can be used only with printers that support the Epson@tie{}ESC/P-R
language.") language.")
(home-page "http://download.ebz.epson.net/dsc/search/01/search") (home-page "http://download.ebz.epson.net/dsc/search/01/search")
(license license:gpl2+))) (license license:gpl2+)))

View file

@ -44,6 +44,7 @@
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -128,6 +129,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix bzr-download) #:use-module (guix bzr-download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system emacs) #:use-module (guix build-system emacs)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system go) #:use-module (guix build-system go)
@ -716,7 +718,7 @@ Language.")
(define-public mariadb (define-public mariadb
(package (package
(name "mariadb") (name "mariadb")
(version "10.1.45") (version "10.5.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://downloads.mariadb.com/MariaDB" (uri (string-append "https://downloads.mariadb.com/MariaDB"
@ -724,8 +726,7 @@ Language.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1mfs0x4c0z7d306n128dxdawk3llk25vxif5zwl20fv1z5qhz3wx")) "1i257h0zdypdfj5wkg6ck9pxlkph0jvjs92k22pjr6gnx5lxs1gz"))
(patches (search-patches "mariadb-client-test-32bit.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -743,8 +744,8 @@ Language.")
(for-each (lambda (file) (for-each (lambda (file)
(unless (string-suffix? "CMakeLists.txt" file) (unless (string-suffix? "CMakeLists.txt" file)
(delete-file file))) (delete-file file)))
(append (find-files "extra/yassl") (append (find-files "extra/wolfssl")
(find-files "pcre") (find-files "zlib"))) (find-files "zlib")))
#t)))) #t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(outputs '("out" "lib" "dev")) (outputs '("out" "lib" "dev"))
@ -798,29 +799,20 @@ Language.")
"-DINSTALL_SHAREDIR=share") "-DINSTALL_SHAREDIR=share")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
,@(if (string-prefix? "arm" (%current-system)) (add-after 'unpack 'adjust-output-references
;; XXX: Because of the GCC 5 input, we need to hide GCC 7 from
;; CPLUS_INCLUDE_PATH so that its headers do not shadow GCC 5.
'((add-after 'set-paths 'hide-default-gcc
(lambda* (#:key inputs #:allow-other-keys)
(let ((gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete (string-append gcc "/include/c++")
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
#t))))
'())
(add-after 'unpack 'fix-pcre-detection
(lambda _ (lambda _
;; The bundled PCRE in MariaDB has a patch that was upstreamed ;; The build system invariably prepends $CMAKE_INSTALL_PREFIX
;; in version 8.34. Unfortunately the upstream patch behaves ;; to other variables such as $INSTALL_INCLUDEDIR, which does
;; slightly differently and the build system fails to detect it. ;; not work when the latter uses an absolute file name.
;; See <https://bugs.exim.org/show_bug.cgi?id=2173>. (substitute* "libmariadb/mariadb_config/mariadb_config.c.in"
;; XXX: Consider patching PCRE instead. (("@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@")
(substitute* "cmake/pcre.cmake" "@INSTALL_INCLUDEDIR@"))
((" OR NOT PCRE_STACK_SIZE_OK") "")) (substitute* "libmariadb/mariadb_config/libmariadb.pc.in"
(("\\$\\{prefix\\}/@INSTALL_INCLUDEDIR@")
"@INSTALL_INCLUDEDIR@"))
(substitute* "include/CMakeLists.txt"
(("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_INCLUDEDIR\\}")
"${INSTALL_INCLUDEDIR}"))
#t)) #t))
(add-after 'unpack 'adjust-tests (add-after 'unpack 'adjust-tests
(lambda _ (lambda _
@ -828,6 +820,7 @@ Language.")
'(;; These fail because root@hostname == root@localhost in '(;; These fail because root@hostname == root@localhost in
;; the build environment, causing a user count mismatch. ;; the build environment, causing a user count mismatch.
;; See <https://jira.mariadb.org/browse/MDEV-7761>. ;; See <https://jira.mariadb.org/browse/MDEV-7761>.
"funcs_1.is_columns_mysql"
"main.join_cache" "main.join_cache"
"main.explain_non_select" "main.explain_non_select"
"main.stat_tables" "main.stat_tables"
@ -836,20 +829,7 @@ Language.")
;; This file contains a time bomb which makes it fail after ;; This file contains a time bomb which makes it fail after
;; 2030-12-31. See <https://bugs.gnu.org/34351> for details. ;; 2030-12-31. See <https://bugs.gnu.org/34351> for details.
"main.mysqldump" "main.mysqldump"))
;; FIXME: This test fails on i686:
;; -myisampack: Can't create/write to file (Errcode: 17 "File exists")
;; +myisampack: Can't create/write to file (Errcode: 17 "File exists)
;; When running "myisampack --join=foo/t3 foo/t1 foo/t2"
;; (all three tables must exist and be identical)
;; in a loop it produces the same error around 1/240 times.
;; montywi on #maria suggested removing the real_end check in
;; "strings/my_vsnprintf.c" on line 503, yet it still does not
;; reach the ending quote occasionally. Disable it for now.
"main.myisampack"
;; FIXME: This test fails on armhf-linux:
"mroonga/storage.index_read_multiple_double"))
;; This file contains a list of known-flaky tests for this ;; This file contains a list of known-flaky tests for this
;; release. Append our own items. ;; release. Append our own items.
@ -860,9 +840,10 @@ Language.")
disabled-tests) disabled-tests)
(close-port unstable-tests) (close-port unstable-tests)
;; XXX: This test fails because it expects a latin1 charset and ;; XXX: These fail because they expect a latin1 charset and
;; collation. See <https://jira.mariadb.org/browse/MDEV-21264>. ;; collation. See <https://jira.mariadb.org/browse/MDEV-21264>.
(substitute* "mysql-test/r/gis_notembedded.result" (substitute* '("mysql-test/main/gis_notembedded.result"
"mysql-test/main/system_mysql_db.result")
(("latin1_swedish_ci") "utf8_general_ci") (("latin1_swedish_ci") "utf8_general_ci")
(("\tlatin1") "\tutf8")) (("\tlatin1") "\tutf8"))
@ -895,6 +876,10 @@ Language.")
"--testcase-timeout=40" "--testcase-timeout=40"
"--suite-timeout=600" "--suite-timeout=600"
"--parallel" (number->string (parallel-job-count)) "--parallel" (number->string (parallel-job-count))
;; Skip the replication tests: they are very I/O
;; intensive and frequently causes indeterministic
;; failures even on powerful hardware.
"--skip-rpl"
"--skip-test-list=unstable-tests")) "--skip-test-list=unstable-tests"))
(format #t "test suite not run~%")) (format #t "test suite not run~%"))
#t)) #t))
@ -905,56 +890,57 @@ Language.")
(dev (assoc-ref outputs "dev")) (dev (assoc-ref outputs "dev"))
(lib (assoc-ref outputs "lib")) (lib (assoc-ref outputs "lib"))
(openssl (assoc-ref inputs "openssl"))) (openssl (assoc-ref inputs "openssl")))
(substitute* (string-append out "/bin/mysql_install_db") (substitute* (list (string-append out "/bin/mariadb-install-db")
(string-append out "/bin/mysql_install_db"))
(("basedir=\"\"") (("basedir=\"\"")
(string-append "basedir=\"" out "\""))) (string-append "basedir=\"" out "\""))
(("\\$basedir/share/mysql")
(string-append lib "/share/mysql")))
;; Remove unneeded files for testing. ;; Remove unneeded files for testing.
(with-directory-excursion lib (with-directory-excursion lib
(for-each delete-file-recursively (for-each delete-file-recursively
'("data" "mysql-test" "sql-bench")) '("mysql-test" "sql-bench"))
;; And static libraries. ;; And static libraries.
(for-each delete-file (find-files "lib" "\\.a$"))) (for-each delete-file (find-files "lib" "\\.a$")))
(with-directory-excursion out (with-directory-excursion out
(delete-file "share/man/man1/mysql-test-run.pl.1") (delete-file "share/man/man1/mysql-test-run.pl.1")
;; Delete huge and unnecessary executables. ;; Delete huge and unnecessary executables.
(for-each delete-file (find-files "bin" "(test|embedded)"))) (for-each delete-file (find-files "bin" "test$")))
(mkdir-p (string-append dev "/share")) (mkdir-p (string-append dev "/share"))
(mkdir-p (string-append dev "/bin")) (mkdir-p (string-append dev "/bin"))
(rename-file (string-append lib "/bin/mariadbd")
(string-append out "/bin/mariadbd"))
(rename-file (string-append lib "/bin/mysqld") (rename-file (string-append lib "/bin/mysqld")
(string-append out "/bin/mysqld")) (string-append out "/bin/mysqld"))
(rename-file (string-append lib "/share/pkgconfig") (mkdir-p (string-append dev "/lib"))
(string-append dev "/share/pkgconfig")) (rename-file (string-append lib "/lib/pkgconfig")
(string-append dev "/lib/pkgconfig"))
(rename-file (string-append lib "/bin/mariadb_config")
(string-append dev "/bin/mariadb_config"))
(rename-file (string-append out "/bin/mysql_config") (rename-file (string-append out "/bin/mysql_config")
(string-append dev "/bin/mysql_config")) (string-append dev "/bin/mysql_config"))
(substitute* (string-append out "/bin/mysql_install_db")
(("\\$basedir/share/mysql")
(string-append lib "/share/mysql")))
;; Embed an absolute reference to OpenSSL in mysql_config ;; Embed an absolute reference to OpenSSL in mysql_config
;; and the pkg-config file to avoid propagation. ;; and the pkg-config file to avoid propagation.
;; XXX: how to do this for mariadb_config.c.in?
(substitute* (list (string-append dev "/bin/mysql_config") (substitute* (list (string-append dev "/bin/mysql_config")
(string-append dev "/share/pkgconfig/mariadb.pc")) (string-append dev "/lib/pkgconfig/mariadb.pc"))
(("-lssl -lcrypto" all) (("-lssl -lcrypto" all)
(string-append "-L" openssl "/lib " all))) (string-append "-L" openssl "/lib " all)))
#t)))))) #t))))))
(native-inputs (native-inputs
`(("bison" ,bison) `(("bison" ,bison)
;; XXX: On armhf, use GCC 5 to work around <https://bugs.gnu.org/37605>.
,@(if (string-prefix? "armhf" (%current-system))
`(("gcc@5", gcc-5))
'())
("perl" ,perl))) ("perl" ,perl)))
(inputs (inputs
`(("jemalloc" ,jemalloc) `(("jemalloc" ,jemalloc)
("libaio" ,libaio) ("libaio" ,libaio)
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
("openssl" ,openssl-1.0) ("openssl" ,openssl)
("pam" ,linux-pam) ("pam" ,linux-pam)
("pcre" ,pcre) ("pcre2" ,pcre2)
("xz" ,xz) ("xz" ,xz)
("zlib" ,zlib))) ("zlib" ,zlib)))
;; The test suite is very resource intensive and can take more than three ;; The test suite is very resource intensive and can take more than three
@ -970,7 +956,7 @@ as a drop-in replacement of MySQL.")
(define-public mariadb-connector-c (define-public mariadb-connector-c
(package (package
(name "mariadb-connector-c") (name "mariadb-connector-c")
(version "3.1.9") (version "3.1.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -979,7 +965,7 @@ as a drop-in replacement of MySQL.")
version "-src.tar.gz")) version "-src.tar.gz"))
(sha256 (sha256
(base32 (base32
"1izjzf7yzjqzlk8dkp327fa9lawsv2hnnlnr7g5lshyx5azrk38h")))) "13v5z4w1cl890lnr2fbwbziw638lqw2aga45vdq1z0cyrc9mcgmg"))))
(inputs (inputs
`(("openssl" ,openssl))) `(("openssl" ,openssl)))
(build-system cmake-build-system) (build-system cmake-build-system)
@ -1139,7 +1125,7 @@ organized in a hash table or B+ tree.")
(native-inputs `(("bc" ,bc) (native-inputs `(("bc" ,bc)
("bash:include" ,bash "include") ("bash:include" ,bash "include")
("check" ,check) ("check" ,check-0.14)
("libuuid" ,util-linux) ("libuuid" ,util-linux)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
@ -1343,7 +1329,7 @@ for example from a shell script.")
(define-public sqitch (define-public sqitch
(package (package
(name "sqitch") (name "sqitch")
(version "1.0.0") (version "1.1.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1351,7 +1337,7 @@ for example from a shell script.")
"mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v" "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "0p4wraqiscvwmmsvfqfy65blgsilwpvd9zj4d2zvm2xdx70ncr7l")))) (base32 "1ayiwg9kh3w0nbacbcln7h944z94vq5vnnd5diz86033bpbnq57f"))))
(build-system perl-build-system) (build-system perl-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -1383,6 +1369,7 @@ for example from a shell script.")
("perl-test-file" ,perl-test-file) ("perl-test-file" ,perl-test-file)
("perl-test-file-contents" ,perl-test-file-contents) ("perl-test-file-contents" ,perl-test-file-contents)
("perl-test-mockmodule" ,perl-test-mockmodule) ("perl-test-mockmodule" ,perl-test-mockmodule)
("perl-test-mockobject" ,perl-test-mockobject)
("perl-test-nowarnings" ,perl-test-nowarnings) ("perl-test-nowarnings" ,perl-test-nowarnings)
("perl-test-warn" ,perl-test-warn))) ("perl-test-warn" ,perl-test-warn)))
(inputs (inputs
@ -1391,7 +1378,9 @@ for example from a shell script.")
("perl-config-gitlike" ,perl-config-gitlike) ("perl-config-gitlike" ,perl-config-gitlike)
("perl-datetime" ,perl-datetime) ("perl-datetime" ,perl-datetime)
("perl-datetime-timezone" ,perl-datetime-timezone) ("perl-datetime-timezone" ,perl-datetime-timezone)
("perl-dbd-mysql" ,perl-dbd-mysql)
("perl-dbd-pg" ,perl-dbd-pg) ("perl-dbd-pg" ,perl-dbd-pg)
("perl-dbd-sqlite" ,perl-dbd-sqlite)
("perl-dbi" ,perl-dbi) ("perl-dbi" ,perl-dbi)
("perl-devel-stacktrace" ,perl-devel-stacktrace) ("perl-devel-stacktrace" ,perl-devel-stacktrace)
("perl-encode-locale" ,perl-encode-locale) ("perl-encode-locale" ,perl-encode-locale)
@ -1738,7 +1727,7 @@ columns, primary keys, unique constraints and relationships.")
(define-public perl-dbd-sqlite (define-public perl-dbd-sqlite
(package (package
(name "perl-dbd-sqlite") (name "perl-dbd-sqlite")
(version "1.64") (version "1.66")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1746,7 +1735,7 @@ columns, primary keys, unique constraints and relationships.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"00gz5aw3xrr92lf9nfk0dhmy7a8jzmxhznddd9b0a8w4a1xqzbpl")))) "1zljln5nh61gj3k22a1fv2vhx5l83waizmarwkh77hk6kzzmvrw9"))))
(build-system perl-build-system) (build-system perl-build-system)
(inputs `(("sqlite" ,sqlite))) (inputs `(("sqlite" ,sqlite)))
(propagated-inputs `(("perl-dbi" ,perl-dbi))) (propagated-inputs `(("perl-dbi" ,perl-dbi)))
@ -1777,7 +1766,7 @@ module, and nothing else.")
(synopsis "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files") (synopsis "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files")
(description (description
"@code{MySQL::Config} emulates the @code{load_defaults} function from "@code{MySQL::Config} emulates the @code{load_defaults} function from
libmysqlclient. It will fill an aray with long options, ready to be parsed by libmysqlclient. It will fill an array with long options, ready to be parsed by
@code{Getopt::Long}.") @code{Getopt::Long}.")
(license license:perl-license))) (license license:perl-license)))
@ -1898,7 +1887,7 @@ valid SQL query.")
(define-public unixodbc (define-public unixodbc
(package (package
(name "unixodbc") (name "unixodbc")
(version "2.3.7") (version "2.3.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -1906,7 +1895,7 @@ valid SQL query.")
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-" "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "0xry3sg497wly8f7715a7gwkn2k36bcap0mvzjw74jj53yx6kwa5")))) (base32 "01xj65d02i3yjy7p9z08y9jakcs5szmz4rask868n7387nn3x0sj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Data source abstraction library") (synopsis "Data source abstraction library")
(description "Unixodbc is a library providing an API with which to access (description "Unixodbc is a library providing an API with which to access
@ -2120,14 +2109,14 @@ database.")
(define-public perl-db-file (define-public perl-db-file
(package (package
(name "perl-db-file") (name "perl-db-file")
(version "1.853") (version "1.855")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/P/PM/PMQS/DB_File-" (uri (string-append "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "1y967si45vj0skip1hnhicbv9da29fv6qcfwnsbnvj06n36mkj6h")))) (base32 "0q599h7g4jkzks5dxf1zifx9k7l9vif26r2dlgkzxkg6bfif5zyr"))))
(build-system perl-build-system) (build-system perl-build-system)
(inputs `(("bdb" ,bdb))) (inputs `(("bdb" ,bdb)))
(native-inputs `(("perl-test-pod" ,perl-test-pod))) (native-inputs `(("perl-test-pod" ,perl-test-pod)))
@ -2140,8 +2129,7 @@ database.")
(("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb"))) (("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb")))
#t))))) #t)))))
(home-page "https://metacpan.org/release/DB_File") (home-page "https://metacpan.org/release/DB_File")
(synopsis (synopsis "Perl5 access to Berkeley DB version 1.x")
"Perl5 access to Berkeley DB version 1.x")
(description (description
"The DB::File module provides Perl bindings to the Berkeley DB version 1.x.") "The DB::File module provides Perl bindings to the Berkeley DB version 1.x.")
(license license:perl-license))) (license license:perl-license)))
@ -2450,13 +2438,13 @@ etc., and an SQL engine for performing simple SQL queries.")
(define-public python-lmdb (define-public python-lmdb
(package (package
(name "python-lmdb") (name "python-lmdb")
(version "0.99") (version "1.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "lmdb" version)) (uri (pypi-uri "lmdb" version))
(sha256 (sha256
(base32 (base32
"12fwlzfd82471ss9xzbqwcqc6f5miy51y72y2yya9j5cm9589szr")) "1di1gj2agbxwqqwrpk4w58dpfah0kl10ha20s63dlqdd1bgzydj1"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Delete bundled lmdb source files. ;; Delete bundled lmdb source files.
@ -2475,6 +2463,7 @@ etc., and an SQL engine for performing simple SQL queries.")
(add-before 'build 'use-system-lmdb (add-before 'build 'use-system-lmdb
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((lmdb (assoc-ref inputs "lmdb"))) (let ((lmdb (assoc-ref inputs "lmdb")))
(setenv "LMDB_PURE" "set") ; don't apply env-copy-txn.patch
(setenv "LMDB_FORCE_SYSTEM" "set") (setenv "LMDB_FORCE_SYSTEM" "set")
(setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include")) (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include"))
(setenv "LMDB_LIBDIR" (string-append lmdb "/lib")) (setenv "LMDB_LIBDIR" (string-append lmdb "/lib"))
@ -2632,13 +2621,13 @@ Database API 2.0T.")
(define-public python-sqlalchemy (define-public python-sqlalchemy
(package (package
(name "python-sqlalchemy") (name "python-sqlalchemy")
(version "1.3.18") (version "1.3.20")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "SQLAlchemy" version)) (uri (pypi-uri "SQLAlchemy" version))
(sha256 (sha256
(base32 "1rwc6ss1cnz3kxx0p9p6xw0w79r8qw03lcc29k31yb3rcigvfbys")))) (base32 "18b9am7bsqc4nj3d2h5r93i002apczxfvpfpcqbd6f0385zmrwnj"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-cython" ,python-cython) ; for C extensions `(("python-cython" ,python-cython) ; for C extensions
@ -2712,16 +2701,57 @@ You might also want to install the following optional dependencies:
(define-public python2-sqlalchemy-utils (define-public python2-sqlalchemy-utils
(package-with-python2 python-sqlalchemy-utils)) (package-with-python2 python-sqlalchemy-utils))
(define-public python-alchemy-mock
(package
(name "python-alchemy-mock")
(version "0.4.3")
(home-page "https://github.com/miki725/alchemy-mock")
(source (origin
(method url-fetch)
(uri (pypi-uri "alchemy-mock" version))
(sha256
(base32
"0ylxygl3bcdapzz529n8wgk7vx9gjwb3ism564ypkpd7dbsw653r"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda _
;; Create pytest.ini that adds doctest options to
;; prevent test failure. Taken from tox.ini.
(call-with-output-file "pytest.ini"
(lambda (port)
(format port "[pytest]
doctest_optionflags=IGNORE_EXCEPTION_DETAIL
")))
(invoke "pytest" "-vv" "--doctest-modules"
"alchemy_mock/"))))))
(native-inputs
`(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-six" ,python-six)
("python-sqlalchemy" ,python-sqlalchemy)))
(synopsis "Mock helpers for SQLAlchemy")
(description
"This package provides mock helpers for SQLAlchemy that makes it easy
to mock an SQLAlchemy session while preserving the ability to do asserts.
Normally Normally SQLAlchemy's expressions cannot be easily compared as
comparison on binary expression produces yet another binary expression, but
this library provides functions to facilitate such comparisons.")
(license license:expat)))
(define-public python-alembic (define-public python-alembic
(package (package
(name "python-alembic") (name "python-alembic")
(version "1.4.2") (version "1.4.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "alembic" version)) (uri (pypi-uri "alembic" version))
(sha256 (sha256
(base32 "1gsdrzx9h7wfva200qvvsc9sn4w79mk2vs0bbnzjhxi1jw2b0nh3")))) (base32 "0if2dgb088clk738p26bwk50735h6jpd2kacdgc5capv2hiz6d2k"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases
@ -2897,13 +2927,13 @@ designed to be easy and intuitive to use.")
(define-public python-psycopg2 (define-public python-psycopg2
(package (package
(name "python-psycopg2") (name "python-psycopg2")
(version "2.8.5") (version "2.8.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "psycopg2" version)) (uri (pypi-uri "psycopg2" version))
(sha256 (sha256
(base32 "06081jk9srkd4ra9j8b93x9ld3a2yxsbsf5bbbcivbm1yx065m7p")))) (base32 "0hzmk6b1hb5riqkljr5xics6p4zbvmis6knbczb7zhq7273zc8zv"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; Tests would require a postgresql database "psycopg2_test" ;; Tests would require a postgresql database "psycopg2_test"
@ -2948,27 +2978,51 @@ database).")
(define-public python2-sadisplay (define-public python2-sadisplay
(package-with-python2 python-sadisplay)) (package-with-python2 python-sadisplay))
(define-public yoyo-migrations
(package
(name "yoyo-migrations")
(version "7.2.0")
(source
(origin
;; We use the upstream repository, as the tests are not included in the
;; PyPI releases.
(method hg-fetch)
(uri (hg-reference
(url "https://hg.sr.ht/~olly/yoyo")
(changeset (string-append "v" version "-release"))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32 "0q2z9bgdj3wyix7yvqsayfs21grp5av8ilh411lgmjhigszkvhcq"))))
(build-system python-build-system)
(arguments
;; XXX: Tests require a connection to some pgsql database and psycopg
;; fails to connect to it.
'(#:tests? #f))
(propagated-inputs
`(("python-sqlparse" ,python-sqlparse)
("python-tabulate" ,python-tabulate)))
(home-page "https://ollycope.com/software/yoyo/latest/")
(synopsis "Database migrations with SQL")
(description
"Yoyo is a database schema migration tool. Migrations are written as SQL
files or Python scripts that define a list of migration steps.")
(license license:asl2.0)))
(define-public python-mysqlclient (define-public python-mysqlclient
(package (package
(name "python-mysqlclient") (name "python-mysqlclient")
(version "1.3.13") (version "2.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "mysqlclient" version)) (uri (pypi-uri "mysqlclient" version))
(sha256 (sha256
(base32 (base32
"0kv4a1icwdav8jpl7qvnr931lw5h3v22ids6lwq6qpi1hjzf33pz")))) "1rf5l8hazs3v18hmcrm90z3hi9wxv553ipwd5l6kj8j7l6p7abzv"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (arguments '(#:tests? #f)) ;XXX: requires a live database
`(("nose" ,python-nose)
("mock" ,python-mock)
("py.test" ,python-pytest)))
(inputs (inputs
`(("mysql" ,mariadb "lib") `(("mysql-dev" ,mariadb "dev")))
("mysql-dev" ,mariadb "dev")
("libz" ,zlib)
("openssl" ,openssl)))
(home-page "https://github.com/PyMySQL/mysqlclient-python") (home-page "https://github.com/PyMySQL/mysqlclient-python")
(synopsis "MySQLdb is an interface to the popular MySQL database server for Python") (synopsis "MySQLdb is an interface to the popular MySQL database server for Python")
(description "MySQLdb is an interface to the popular MySQL database server (description "MySQLdb is an interface to the popular MySQL database server
@ -2980,9 +3034,6 @@ for Python. The design goals are:
@end enumerate") @end enumerate")
(license license:gpl2))) (license license:gpl2)))
(define-public python2-mysqlclient
(package-with-python2 python-mysqlclient))
(define-public python-hiredis (define-public python-hiredis
(package (package
(name "python-hiredis") (name "python-hiredis")
@ -3042,13 +3093,13 @@ reasonable substitute.")
(define-public python-redis (define-public python-redis
(package (package
(name "python-redis") (name "python-redis")
(version "3.3.8") (version "3.5.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "redis" version)) (uri (pypi-uri "redis" version))
(sha256 (sha256
(base32 "0fyxzqax7lcwzwhvnz0i0q6v62hxyv1mv52ywx3bpff9a2vjz8lq")))) (base32 "18h5b87g15x3j6pb1h2q27ri37p2qpvc9n2wgn5yl3b6m3y0qzhf"))))
(build-system python-build-system) (build-system python-build-system)
;; Tests require a running Redis server. ;; Tests require a running Redis server.
(arguments '(#:tests? #f)) (arguments '(#:tests? #f))
@ -3067,14 +3118,35 @@ reasonable substitute.")
(define-public python-rq (define-public python-rq
(package (package
(name "python-rq") (name "python-rq")
(version "0.13.0") (version "1.5.2")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (pypi-uri "rq" version)) (uri (git-reference
(url "https://github.com/rq/rq")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 "0xvapd2bxnyq480i48bdkddzlqmv2axbsq85rlfy8k3al8zxxxrf")))) (base32 "0ikqmpq0g1qiqwd7ar1286l4hqjb6aj2wr844gihhb8ijzwhp8va"))))
(build-system python-build-system) (build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-before 'check 'start-redis
(lambda _
(invoke "redis-server" "--daemonize" "yes")))
(replace 'check
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Drop test that needs the SDK for Sentry.io.
(delete-file "tests/test_sentry.py")
;; Ensure 'rq' and 'rqworker' ends up on PATH.
(setenv "PATH" (string-append out "/bin:"
(getenv "PATH")))
(invoke "pytest" "-vv")))))))
(native-inputs
`(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)
("redis" ,redis)))
(propagated-inputs (propagated-inputs
`(("python-click" ,python-click) `(("python-click" ,python-click)
("python-redis" ,python-redis))) ("python-redis" ,python-redis)))
@ -3089,6 +3161,44 @@ is designed to have a low barrier to entry.")
(define-public python2-rq (define-public python2-rq
(package-with-python2 python-rq)) (package-with-python2 python-rq))
(define-public python-rq-scheduler
(package
(name "python-rq-scheduler")
(version "0.10.0")
(home-page "https://github.com/rq/rq-scheduler")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0xg6yazqs5kbr2ayvhvljs1h5vgx5k5dds613fmhswln7gglf9hk"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-before 'check 'start-redis
(lambda _
(invoke "redis-server" "--daemonize" "yes")))
(replace 'check
(lambda _
(substitute* "run_tests.py"
(("/usr/bin/env")
(which "env")))
(invoke "./run_tests.py"))))))
(native-inputs
`(("redis" ,redis)
("which" ,which)))
(propagated-inputs
`(("python-croniter" ,python-croniter)
("python-rq" ,python-rq)))
(synopsis "Job scheduling capabilities for RQ (Redis Queue)")
(description
"This package provides job scheduling capabilities to @code{python-rq}
(Redis Queue).")
(license license:expat)))
(define-public python-trollius-redis (define-public python-trollius-redis
(package (package
(name "python-trollius-redis") (name "python-trollius-redis")
@ -3593,8 +3703,7 @@ The drivers officially supported by @code{libdbi} are:
("sqlite" ,sqlite) ("sqlite" ,sqlite)
("odbc" ,unixodbc) ("odbc" ,unixodbc)
("boost" ,boost) ("boost" ,boost)
("mariadb:dev" ,mariadb "dev") ("mariadb:dev" ,mariadb "dev")))
("mariadb:lib" ,mariadb "lib")))
(arguments (arguments
`(#:tests? #f ; Tests may require running database management systems. `(#:tests? #f ; Tests may require running database management systems.
#:phases #:phases

View file

@ -37,14 +37,16 @@
(name "gdsl") (name "gdsl")
(version "1.8") (version "1.8")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "http://download.gna.org/gdsl/" (uri (git-reference
"gdsl-" version ".tar.gz")) (url "https://example.org") ;only hosted on Software Heritage
(commit "6adb53be8b8f9f2e4bbfc92d357eedeefb4c7430")))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1v64jvlnj8jfpphphgjgb36p0kv50kwfyqncf0y12f16v8ydyiaw")))) "0a52g12d9sf9hhcyvwfd7xdazj2a9i9jh97cnlqf2ymvwnvjk1g0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://home.gna.org/gdsl/") (home-page "https://web.archive.org/web/20170502005430/http://home.gna.org/gdsl/")
(synopsis "Generic data structures library") (synopsis "Generic data structures library")
(description "The Generic Data Structures Library (GDSL) is a collection (description "The Generic Data Structures Library (GDSL) is a collection
of routines for generic data structures manipulation. It is a re-entrant of routines for generic data structures manipulation. It is a re-entrant

View file

@ -6,6 +6,7 @@
;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -36,6 +37,7 @@
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages c)
#:use-module (gnu packages code) #:use-module (gnu packages code)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
@ -624,6 +626,78 @@ GDB/x86 features like hardware data watchpoints, makes debugging much more
fun.") fun.")
(license license:expat))) (license license:expat)))
(define-public libbacktrace
;; There are no releases nor tags.
(let ((revision "1")
(commit "5009c113981431ae1843ebd29d6ad24eb32fc1b2"))
(package
(name "libbacktrace")
(version (git-version "1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ianlancetaylor/libbacktrace")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0663zjpfpnsyv9h3pbp7cgmg9gz79n68bqpdl97y6i0jsx93v1zg"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("CFLAGS=-fPIC")))
(home-page "https://github.com/ianlancetaylor/libbacktrace")
(synopsis "C library for producing symbolic backtraces")
(description "The @code{libbacktrace} library can be linked into a C/C++
program to produce symbolic backtraces.")
(license license:bsd-3))))
(define-public libleak
(package
(name "libleak")
(version "0.3.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/WuBingzheng/libleak")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1p8mb0hcfp8hdv1klv6rrpkn2zlhjxgkxbbjsk8kszxv7ijln87d"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test suite
#:parallel-build? #f ;jobserver unavailable
#:phases (modify-phases %standard-phases
(add-after 'unpack 'unbundle-libwuya
(lambda _
(substitute* "Makefile"
((".*make -C libwuya.*") ""))
#t))
(add-before 'build 'set-CC
(lambda _
(setenv "CC" "gcc")
#t))
(delete 'configure) ;no configure script
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(install-file "libleak.so" (string-append out "/lib"))
#t))))))
(inputs `(("libbacktrace" ,libbacktrace)
("libwuya" ,libwuya)))
(home-page "https://github.com/WuBingzheng/libleak")
(synopsis "Memory leaks detection tool")
(description "The libleak tool detects memory leaks by hooking memory
functions such as @code{malloc}. It comes as a shared object to be pre-loaded
via @code{LD_PRELOAD} when launching the application. It prints the full call
stack at suspicious memory leak points. Modifying or recompiling the target
program is not required, and the detection can be enabled or disabled while
the target application is running. The overhead incurred by libleak is
smaller than that of other tools such as Valgrind, and it aims to be easier to
use than similar tools like @command{mtrace}.")
(license license:gpl2+)))
(define-public mspdebug (define-public mspdebug
(package (package
(name "mspdebug") (name "mspdebug")

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -39,14 +39,14 @@
(define-public dico (define-public dico
(package (package
(name "dico") (name "dico")
(version "2.9") (version "2.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/dico/dico-" (uri (string-append "mirror://gnu/dico/dico-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0i9xqhy3h5nlizcmav4mv5ay8ivdgn4l4k0k7fxix3fsc87nijyr")))) "0qag47mzs00d53hnrmh381r0jay42766vp5xrffmzmsn2307x8vl"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags (list (string-append "--with-guile-site-dir=" %output '(#:configure-flags (list (string-append "--with-guile-site-dir=" %output

View file

@ -205,14 +205,14 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
(define-public grammalecte (define-public grammalecte
(package (package
(name "grammalecte") (name "grammalecte")
(version "1.12.0") (version "1.12.2")
(source (source
(origin (origin
(method url-fetch/zipbomb) (method url-fetch/zipbomb)
(uri (string-append "https://grammalecte.net/grammalecte/zip/" (uri (string-append "https://grammalecte.net/grammalecte/zip/"
"Grammalecte-fr-v" version ".zip")) "Grammalecte-fr-v" version ".zip"))
(sha256 (sha256
(base32 "1aifa7rj8zyxgk5cgmlgcws2hip7a7y6sr7kddjdnpfgdgy4jjgh")))) (base32 "1qny2l5dr08pfj2dnzmvm5gmwqz8m879ryxfaw4k8dhaacrrrf62"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://grammalecte.net") (home-page "https://grammalecte.net")
(synopsis "French spelling and grammar checker") (synopsis "French spelling and grammar checker")

View file

@ -254,7 +254,7 @@ install.")
(inputs (inputs
`(("python-debian" ,python-debian) `(("python-debian" ,python-debian)
("python-distro" ,python-distro) ("python-distro" ,python-distro)
("python-libarchive-c", python-libarchive-c) ("python-libarchive-c" ,python-libarchive-c)
("python-rstr" ,python-rstr))) ("python-rstr" ,python-rstr)))
(native-inputs (native-inputs
`(("diffoscope" ,diffoscope) `(("diffoscope" ,diffoscope)

View file

@ -689,7 +689,7 @@ passphrases.")
(define-public ndctl (define-public ndctl
(package (package
(name "ndctl") (name "ndctl")
(version "69") (version "70.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -698,7 +698,7 @@ passphrases.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1l7p0ycj27d4z07gf9qp796xpg16kfsg3rwx6plhilbhip1as4w7")))) "09ymdibcr18vpmyf2n0xrnzgccfvr7iy3p2l5lbh7cgz7djyl5wq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("asciidoc" ,asciidoc) `(("asciidoc" ,asciidoc)
@ -1038,6 +1038,50 @@ of choice for all light thinking Unix addicts!")
(home-page "https://savannah.nongnu.org/projects/hddtemp/") (home-page "https://savannah.nongnu.org/projects/hddtemp/")
(synopsis "Report the temperature of hard drives from S.M.A.R.T. information") (synopsis "Report the temperature of hard drives from S.M.A.R.T. information")
(description "@command{hddtemp} is a small utility that gives you the (description "@command{hddtemp} is a small utility that gives you the
temperature of your hard drive by reading S.M.A.R.T. informations (for drives temperature of your hard drive by reading S.M.A.R.T. information (for drives
that support this feature).") that support this feature).")
(license license:gpl2+))) (license license:gpl2+)))
(define-public memkind
(package
(name "memkind")
(version "1.10.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/memkind/memkind.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"11iz887f3cp5pzf1bzm644wzab8gkbhz3b7x1w6pcps71yd94ylj"))))
(build-system gnu-build-system)
(inputs
`(;; memkind patched jemalloc to add je_arenalookupx,
;; je_check_reallocatex--i.e. they forked jemalloc.
;("jemalloc" ,jemalloc)
("ndctl" ,ndctl)
("numactl" ,numactl)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)))
(arguments
`(#:tests? #f ; Tests require a NUMA-enabled system.
#:phases
(modify-phases %standard-phases
(add-before 'build 'autogen-jemalloc
(lambda _
(with-directory-excursion "jemalloc"
(substitute* "Makefile.in"
(("/bin/sh") (which "sh")))
(invoke "autoconf")
(substitute* "configure"
(("/bin/sh") (which "sh"))))
#t)))))
(home-page "https://github.com/memkind/memkind")
(synopsis "Heap manager with memory kinds (for NUMA)")
(description "This package provides a user-extensible heap manager
built on top of jemalloc which enables control of memory characteristics
and a partitioning of the heap between kinds of memory (for NUMA).")
(license license:bsd-3)))

File diff suppressed because it is too large Load diff

View file

@ -17,6 +17,7 @@
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Simon South <simon@simonsouth.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -45,6 +46,7 @@
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages datastructures) #:use-module (gnu packages datastructures)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
@ -65,9 +67,11 @@
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages ragel)
#:use-module (gnu packages shells) #:use-module (gnu packages shells)
#:use-module (gnu packages sphinx) #:use-module (gnu packages sphinx)
#:use-module (gnu packages swig) #:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
@ -313,7 +317,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(package (package
(name "bind") (name "bind")
;; When updating, check whether isc-dhcp's bundled copy should be as well. ;; When updating, check whether isc-dhcp's bundled copy should be as well.
(version "9.16.6") (version "9.16.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -321,7 +325,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.xz")) "/bind-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1jvi6ms51vyrhpflx05xlb7gblyd59zsyj28b8s3pl3xnkrv0rxm")))) "1l8lhgnkj3fnl1101bs3pzj5gv2x5m9ahvrbyscsc9mxxc91hzcz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs `("out" "utils")) (outputs `("out" "utils"))
(inputs (inputs
@ -529,14 +533,14 @@ asynchronous fashion.")
(define-public nsd (define-public nsd
(package (package
(name "nsd") (name "nsd")
(version "4.3.2") (version "4.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-" (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "0ac3mbn5z4nc18782m9aswdpi2m9f4665vidw0ciyigdh0pywp2v")))) (base32 "0lgdiqnkfvy245h6kkiqic586qjwmg51lsfs86vlc0kwjwddiijz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -756,16 +760,16 @@ served by AS112. Stub and forward zones are supported.")
(define-public yadifa (define-public yadifa
(package (package
(name "yadifa") (name "yadifa")
(version "2.3.9") (version "2.3.10")
(source (source
(let ((build "8497")) (let ((build "9729"))
(origin (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "http://cdn.yadifa.eu/sites/default/files/releases/" (string-append "http://cdn.yadifa.eu/sites/default/files/releases/"
"yadifa-" version "-" build ".tar.gz")) "yadifa-" version "-" build ".tar.gz"))
(sha256 (sha256
(base32 "0xvyr91sfgzkpw6g3h893ldbwnki3w2472n56rr18w67qghs1sa5"))))) (base32 "0azaignqmylfdzr4x02s8y3pkn4f0xkpz3d1pkiiz8mwk92zgybn")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("which" ,which))) `(("which" ,which)))
@ -803,44 +807,63 @@ Extensions} (DNSSEC).")
(define-public knot (define-public knot
(package (package
(name "knot") (name "knot")
(version "2.9.6") (version "3.0.1")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/" (uri (git-reference
"knot-" version ".tar.xz")) (url "https://gitlab.nic.cz/knot/knot-dns")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 "1rxjjisr6rz1wa4279ghvj5zzhgyjhncmb9dkzqm8nw2qs1jhx5z")) (base32 "10mlzldxqvbaw78nghkr0s73rlbpz9wg16z14321xw2l9xfibkad"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
;; Delete bundled libraries. ;; Remove Ragel-generated C files. We'll recreate them below.
(with-directory-excursion "src/contrib" (for-each delete-file (find-files "." "\\.c\\.[gt]."))
(delete-file-recursively "lmdb")) (delete-file "src/libknot/yparser/ypbody.c")
;; Remove bundled library to ensure we always use the system's.
(delete-file-recursively "src/contrib/libbpf")
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (outputs (list "out" "doc" "lib" "tools"))
`(("pkg-config" ,pkg-config)))
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
("jansson" ,jansson)
("libcap-ng" ,libcap-ng)
("libedit" ,libedit)
("libidn" ,libidn)
("liburcu" ,liburcu)
("lmdb" ,lmdb)
("ncurses" ,ncurses)
("protobuf-c" ,protobuf-c)))
(arguments (arguments
`(#:phases `(#:configure-flags
(list (string-append "--docdir=" (assoc-ref %outputs "doc")
"/share/" ,name "-" ,version)
(string-append "--infodir=" (assoc-ref %outputs "doc")
"/share/info")
(string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
"--sysconfdir=/etc"
"--localstatedir=/var"
"--enable-dnstap" ; let tools read/write capture files
"--enable-fastparser" ; disabled by default when .git/ exists
"--enable-xdp=auto" ; XXX [=yes] currently means =embedded
"--with-module-dnstap=yes") ; detailed query capturing & logging
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'link-missing-libbpf-dependency
;; Linking against -lbpf later would fail to find -lz: libbpf.pc has
;; zlib in its Requires.private (not Requires) field. Add it here.
(lambda _
(substitute* "configure.ac"
(("enable_xdp=yes" match)
(string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))
#true))
(add-before 'bootstrap 'update-parser
(lambda _
(with-directory-excursion "src"
(invoke "sh" "../scripts/update-parser.sh"))))
(add-before 'configure 'disable-directory-pre-creation (add-before 'configure 'disable-directory-pre-creation
(lambda _ (lambda _
;; Don't install empty directories like /etc outside the store. ;; Don't install empty directories like /etc outside the store.
;; This is needed even when using make config_dir=... install. ;; This is needed even when using make config_dir=... install.
(substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true")) (substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))
#t)) #t))
(add-after 'build 'build-info
(lambda _
(invoke "make" "info")))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -848,15 +871,51 @@ Extensions} (DNSSEC).")
(etc (string-append doc "/examples/etc"))) (etc (string-append doc "/examples/etc")))
(invoke "make" (invoke "make"
(string-append "config_dir=" etc) (string-append "config_dir=" etc)
"install"))))) "install"))))
#:configure-flags (add-after 'install 'install-info
(list "--sysconfdir=/etc" (lambda _
"--localstatedir=/var" (invoke "make" "install-info")))
"--enable-dnstap" ; let tools read/write capture files (add-after 'install 'break-circular-:lib->:out-reference
"--with-module-dnstap=yes" ; detailed query capturing & logging (lambda* (#:key outputs #:allow-other-keys)
(string-append "--with-bash-completions=" (let ((lib (assoc-ref outputs "lib")))
(assoc-ref %outputs "out") (for-each (lambda (file)
"/etc/bash_completion.d")))) (substitute* file
(("(prefix=).*" _ assign)
(string-append assign lib "\n"))))
(find-files lib "\\.pc$"))
#true)))
(add-after 'install 'split-:tools
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(tools (assoc-ref outputs "tools")))
(mkdir-p (string-append tools "/share/man"))
(rename-file (string-append out "/bin")
(string-append tools "/bin"))
(rename-file (string-append out "/share/man/man1")
(string-append tools "/share/man/man1"))
#true))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
("ragel" ,ragel)
("texinfo" ,texinfo)))
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
("jansson" ,jansson)
("libbpf" ,libbpf)
("libcap-ng" ,libcap-ng)
("libedit" ,libedit)
("libelf" ,libelf)
("libidn" ,libidn)
("libnghttp2" ,nghttp2 "lib")
("liburcu" ,liburcu)
("lmdb" ,lmdb)
("ncurses" ,ncurses)
("protobuf-c" ,protobuf-c)))
(home-page "https://www.knot-dns.cz/") (home-page "https://www.knot-dns.cz/")
(synopsis "Authoritative DNS name server") (synopsis "Authoritative DNS name server")
(description "Knot DNS is an authoritative name server for the @dfn{Domain (description "Knot DNS is an authoritative name server for the @dfn{Domain
@ -878,14 +937,14 @@ synthesis, and on-the-fly re-configuration.")
(define-public knot-resolver (define-public knot-resolver
(package (package
(name "knot-resolver") (name "knot-resolver")
(version "4.3.0") (version "5.1.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-resolver/" (uri (string-append "https://secure.nic.cz/files/knot-resolver/"
"knot-resolver-" version ".tar.xz")) "knot-resolver-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"09ffmqx79lv5psr433x4n946njgsn071b9b7161pcb9bmrqz380c")))) "12s5070nqqf599s1mb6rjas2as481rjf751qk5yrz6p34y885k90"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
'(#:configure-flags '("-Ddoc=enabled") '(#:configure-flags '("-Ddoc=enabled")
@ -927,16 +986,12 @@ synthesis, and on-the-fly re-configuration.")
(inputs (inputs
`(("fstrm" ,fstrm) `(("fstrm" ,fstrm)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
("knot" ,knot) ("knot:lib" ,knot "lib")
("libuv" ,libuv) ("libuv" ,libuv)
("lmdb" ,lmdb) ("lmdb" ,lmdb)
("luajit" ,luajit) ("luajit" ,luajit)
;; TODO: Add optional lua modules: basexx and psl. ;; TODO: Add optional lua modules: basexx and psl.
("lua-bitop" ,lua5.1-bitop) ("lua-bitop" ,lua5.1-bitop)))
("lua-cqueues" ,lua5.1-cqueues)
("lua-filesystem" ,lua5.1-filesystem)
("lua-sec" ,lua5.1-sec)
("lua-socket" ,lua5.1-socket)))
(home-page "https://www.knot-resolver.cz/") (home-page "https://www.knot-resolver.cz/")
(synopsis "Caching validating DNS resolver") (synopsis "Caching validating DNS resolver")
(description (description

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