me
/
guix
Archived
1
0
Fork 0

Merge branch 'staging' into core-updates.

With "conflicts" resolved in (mostly in favor of master/staging):
	gnu/packages/admin.scm
	gnu/packages/gnuzilla.scm
	gnu/packages/gtk.scm
	gnu/packages/kerberos.scm
	gnu/packages/linux.scm
	guix/lint.scm
master
Maxim Cournoyer 2022-01-25 23:36:11 -05:00
commit 0d41fe4855
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
536 changed files with 358961 additions and 224436 deletions

View File

@ -6,8 +6,6 @@
(("AD17 A21E F8AE D8F1 CC02 DBD9 F7D5 C9BF 765C 61E3"
(name "andreas"))
("2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"
(name "ajgrf"))
("4FB9 9F49 2B12 A365 7997 E664 8246 0C08 2A0E E98F"
(name "alezost"))
("50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F"
@ -16,21 +14,9 @@
(name "apteryx"))
("7F73 0343 F2F0 9F3C 77BF 79D3 2E25 EE8B 6180 2BB3"
(name "arunisaac"))
(;; primary: "3B12 9196 AE30 0C3C 0E90 A26F A715 5567 3271 9948"
"9A2B 401E D001 0650 1584 BAAC 8BC4 F447 6E8A 8E00"
(name "atheia"))
(;; primary: "BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103"
"39B3 3C8D 9448 0D2D DCC2 A498 8B44 A0CD C7B9 56F2"
(name "bandali"))
(;; primary: "34FF 38BC D151 25A6 E340 A0B5 3453 2F9F AFCA 8B8E"
"A3A4 B419 0074 087C A7DE 5698 BC45 CA67 E2F8 D007"
(name "bavier"))
("45CC 63B8 5258 C9D5 5F34 B239 D37D 0EA7 CECC 3912"
(name "biscuolo"))
("7988 3B9F 7D6A 4DBF 3719 0367 2506 A96C CF63 0B21"
(name "boskovits"))
("E82A C026 95D6 FF02 43CA 1E5C F6C5 2DD1 BA27 CB87"
(name "brettgilio"))
(;; primary: "8929 BBC5 73CD 9206 3DDD 979D 3D36 CAA0 116F 0F99"
"1C9B F005 1A1A 6A44 5257 599A A949 03A1 66A1 8FAE"
(name "bricewge"))
@ -50,8 +36,6 @@
(name "davexunit"))
("8CCB A7F5 52B9 CBEA E1FB 2915 8328 C747 0FF1 D807" ;FIXME: to be confirmed!
(name "davexunit (2nd)"))
("53C4 1E6E 41AA FE55 335A CA5E 446A 2ED4 D940 BF14"
(name "daviwil"))
("A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351"
(name "efraim"))
(;; primary: "2453 02B1 BAB1 F867 FDCA 96BC 8F3F 861F 82EB 7A9A"
@ -61,8 +45,6 @@
(name "hoebjo"))
("B943 509D 633E 80DD 27FC 4EED 634A 8DFF D3F6 31DF"
(name "htgoebel"))
("7440 26BA 7CA3 C668 E940 1D53 0B43 1E98 3705 6942"
(name "ipetkov"))
(;; primary: "66A5 6D9C 9A98 BE7F 719A B401 2652 5665 AE72 7D37"
"0325 78A6 8298 94E7 2AA2 66F5 D415 BF25 3B51 5976"
(name "iyzsong"))
@ -79,19 +61,17 @@
(name "lbraun (professional)"))
("ACC2 3BA0 59F7 CCF4 08F0 43AD 442A 84B8 C70E 2F87"
(name "lilyp"))
("45E5 75FA 53EA 8BD6 1BCE 0B4E 3ADC 75F0 13D6 78F9"
(name "leungbk"))
(;; primary: "4F71 6F9A 8FA2 C80E F1B5 E1BA 5E35 F231 DE1A C5E0"
"B051 5948 F1E7 D3C1 B980 38A0 2646 FA30 BACA 7F08"
(name "lfam"))
("8887 84C4 1459 ACCB 83E7 E84C 634C 6E89 79FA BEC2"
(name "m1gu3l"))
("CBF5 9755 CBE7 E7EF EF18 3FB1 DD40 9A15 D822 469D"
(name "marusich"))
("BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
(name "mbakke"))
("D919 0965 CE03 199E AF28 B3BE 7CEF 2984 7562 C516"
(name "mhw"))
("B845 5B7F FAD5 E8E9 5DEF 4296 637B 0B13 8065 B68A"
(name "monego"))
("4008 6A7E 0252 9B60 31FB 8607 8354 7635 3176 9CA6"
(name "mothacehe"))
(;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
@ -109,12 +89,8 @@
(;; primary: "B68B DF22 73F9 DA0E 63C1 8A32 515B F416 9242 D600"
"C699 ED09 E51B CE89 FD1D A078 AAC7 E891 896B 568A"
(name "pgarlick"))
("3A86 380E 58A8 B942 8D39 60E1 327C 1EF3 8DF5 4C32"
(name "phant0mas"))
("CD2D 5EAA A98C CB37 DA91 D6B0 5F58 1664 7F8B E551"
(name "raghavgururajan"))
("74D6 A930 F44B 9B84 9EA5 5606 C166 AA49 5F7F 189C"
(name "reepca"))
("BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC"
(name "rekado"))
(;; From commit cc51c03ff867d4633505354819c6d88af88bf919 (March 2020).

View File

@ -91,3 +91,4 @@ Thomas Danckaert <thomas.danckaert@gmail.com> <post@thomasdanckaert.be>
Tobias Geerinckx-Rice <me@tobias.gr> <tobias.geerinckx.rice@gmail.com>
Tomáš Čech <sleep_walker@gnu.org> <sleep_walker@suse.cz>
Vincent Legoll <vincent.legoll@gmail.com> <vincent.legoll@idgrilles.fr>
Zheng Junjie <873216071@qq.com> Z572 <873216071@qq.com>

View File

@ -81,6 +81,7 @@ MODULES = \
guix/base64.scm \
guix/ci.scm \
guix/cpio.scm \
guix/cpu.scm \
guix/deprecation.scm \
guix/docker.scm \
guix/records.scm \
@ -99,6 +100,7 @@ MODULES = \
guix/extracting-download.scm \
guix/git-download.scm \
guix/hg-download.scm \
guix/hash.scm \
guix/swh.scm \
guix/monads.scm \
guix/monad-repl.scm \
@ -404,6 +406,7 @@ AUX_FILES = \
gnu/packages/aux-files/pack-audit.c \
gnu/packages/aux-files/python/sanity-check.py \
gnu/packages/aux-files/python/sitecustomize.py \
gnu/packages/aux-files/renpy/renpy.in \
gnu/packages/aux-files/run-in-namespace.c
# Templates, examples.
@ -481,6 +484,7 @@ SCM_TESTS = \
tests/hackage.scm \
tests/home-import.scm \
tests/import-git.scm \
tests/import-github.scm \
tests/import-utils.scm \
tests/inferior.scm \
tests/lint.scm \
@ -654,16 +658,18 @@ EXTRA_DIST += \
build-aux/update-guix-package.scm \
build-aux/update-NEWS.scm \
tests/test.drv \
tests/signing-key.pub \
tests/signing-key.sec \
tests/cve-sample.json \
tests/civodul.key \
tests/rsa.key \
tests/dsa.key \
tests/ed25519.key \
tests/ed25519.sec \
tests/ed25519bis.key \
tests/ed25519bis.sec \
tests/keys/signing-key.pub \
tests/keys/signing-key.sec \
tests/keys/civodul.pub \
tests/keys/rsa.pub \
tests/keys/dsa.pub \
tests/keys/ed25519.pub \
tests/keys/ed25519.sec \
tests/keys/ed25519-2.pub \
tests/keys/ed25519-2.sec \
tests/keys/ed25519-3.pub \
tests/keys/ed25519-3.sec \
build-aux/config.rpath \
bootstrap \
doc/build.scm \
@ -962,7 +968,7 @@ release: dist-with-updated-version all
--system=$$system --fallback \
gnu/system/install.scm` ; \
if [ ! -f "$$image" ] ; then \
echo "failed to produced Guix installation image for $$system" >&2 ; \
echo "failed to produce Guix installation image for $$system" >&2 ; \
exit 1 ; \
fi ; \
cp "$$image" "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp" ; \
@ -977,7 +983,7 @@ release: dist-with-updated-version all
--system=$$system --fallback \
gnu/system/examples/vm-image.tmpl` ; \
if [ ! -f "$$image" ] ; then \
echo "failed to produced Guix VM image for $$system" >&2 ; \
echo "failed to produce Guix VM image for $$system" >&2 ; \
exit 1 ; \
fi ; \
cp "$$image" "$(releasedir)/$(GUIX_SYSTEM_VM_IMAGE_BASE).$$system.qcow2"; \

View File

@ -73,9 +73,9 @@ then
# Copy the keys so that the secret key has the right permissions (the
# daemon errors out when this is not the case.)
mkdir -p "$GUIX_CONFIGURATION_DIRECTORY"
cp "@abs_top_srcdir@/tests/signing-key.sec" \
"@abs_top_srcdir@/tests/signing-key.pub" \
"$GUIX_CONFIGURATION_DIRECTORY"
cp "@abs_top_srcdir@/tests/keys/signing-key.sec" \
"@abs_top_srcdir@/tests/keys/signing-key.pub" \
"$GUIX_CONFIGURATION_DIRECTORY"
chmod 400 "$GUIX_CONFIGURATION_DIRECTORY/signing-key.sec"
fi

View File

@ -102,6 +102,9 @@ if test "x$GUILD" = "x"; then
AC_MSG_ERROR(['guild' binary not found; please check your Guile installation.])
fi
dnl (guix ui), notably, requires 'default-optimization-level' added in 3.0.3.
PKG_CHECK_MODULES([GUILE], [guile-3.0 >= 3.0.3])
dnl Get CFLAGS and LDFLAGS for libguile.
GUILE_FLAGS

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;;
;;; This file is part of GNU Guix.
@ -51,17 +51,7 @@
(@@ (guix self) file-append*))
(define translated-texi-manuals
(let ((translated (@@ (guix self) translate-texi-manuals)))
(lambda (source)
(let ((result (translated source)))
;; Build with 'guile-3.0-latest', which is linked against
;; 'libgc/disable-munmap', to avoid the dreaded "mmap(PROT_NONE)
;; failed" crash: <https://bugs.gnu.org/47428>.
(computed-file (computed-file-name result)
(computed-file-gexp result)
#:local-build? #f
#:options (computed-file-options result)
#:guile guile-3.0-latest)))))
(@@ (guix self) translate-texi-manuals))
(define info-manual
(@@ (guix self) info-manual))
@ -610,6 +600,175 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(computed-file name build))
(define* (stylized-html source input
#:key
(languages %languages)
(manual %manual)
(manual-css-url "/static/base/css/manual.css"))
"Process all the HTML files in INPUT; add them MANUAL-CSS-URL as a <style>
link, and add a menu to choose among LANGUAGES. Use the Guix PO files found
in SOURCE."
(define build
(with-extensions (list guile-lib)
(with-imported-modules `((guix build utils)
((localization)
=> ,(localization-helper-module
source languages)))
#~(begin
(use-modules (htmlprag)
(localization)
(guix build utils)
(srfi srfi-1)
(ice-9 match)
(ice-9 threads))
(define* (menu-dropdown #:key (label "Item") (url "#") (items '()))
;; Return an SHTML <li> element representing a dropdown for the
;; navbar. LABEL is the text of the dropdown menu, and ITEMS is
;; the list of items in this menu.
(define id "visible-dropdown")
`(li
(@ (class "navbar-menu-item dropdown dropdown-btn"))
(input (@ (class "navbar-menu-hidden-input")
(type "radio")
(name "dropdown")
(id ,id)))
(label (@ (for ,id)) ,label)
(label (@ (for "all-dropdowns-hidden")) ,label)
(div
(@ (class "navbar-submenu")
(id "navbar-submenu"))
(div (@ (class "navbar-submenu-triangle"))
" ")
(ul ,@items))))
(define (menu-item label url)
;; Return an SHTML <li> element for a menu item with the given
;; LABEL and URL.
`(li (a (@ (class "navbar-menu-item")
(href ,url))
,label)))
(define* (navigation-bar menus #:key split-node?)
;; Return the navigation bar showing all of MENUS.
`(header (@ (class "navbar"))
(h1 (a (@ (class "branding")
(href ,(if split-node? ".." "#")))))
(nav (@ (class "navbar-menu"))
(input (@ (class "navbar-menu-hidden-input")
(type "radio")
(name "dropdown")
(id "all-dropdowns-hidden")))
(ul ,@menus))
;; This is the button that shows up on small screen in
;; lieu of the drop-down button.
(a (@ (class "navbar-menu-btn")
(href ,(if split-node? "../.." ".."))))))
(define* (base-language-url code manual
#:key split-node?)
;; Return the base URL of MANUAL for language CODE.
(if split-node?
(string-append "../../" (normalize code) "/html_node")
(string-append "../" (normalize code) "/" manual
(if (string=? code "en")
""
(string-append "." code))
".html")))
(define (language-menu-items file)
;; Return the language menu items to be inserted in FILE.
(define split-node?
(string-contains file "/html_node/"))
(append
(map (lambda (code)
(menu-item (language-code->native-name code)
(base-language-url code #$manual
#:split-node?
split-node?)))
'#$%languages)
(list
(menu-item "⊕"
(if (string=? #$manual "guix-cookbook")
"https://translate.fedoraproject.org/projects/guix/documentation-cookbook/"
"https://translate.fedoraproject.org/projects/guix/documentation-manual/")))))
(define (stylized-html sxml file)
;; Return SXML, which was read from FILE, with additional
;; styling.
(define split-node?
(string-contains file "/html_node/"))
(let loop ((sxml sxml))
(match sxml
(('*TOP* decl body ...)
`(*TOP* ,decl ,@(map loop body)))
(('head elements ...)
;; Add reference to our own manual CSS, which provides
;; support for the language menu.
`(head ,@elements
(link (@ (rel "stylesheet")
(type "text/css")
(href #$manual-css-url)))))
(('body ('@ attributes ...) elements ...)
`(body (@ ,@attributes)
,(navigation-bar
;; TODO: Add "Contribute" menu, to report
;; errors, etc.
(list (menu-dropdown
#:label
`(img (@ (alt "Language")
(src "/static/base/img/language-picker.svg")))
#:items
(language-menu-items file)))
#:split-node? split-node?)
,@elements))
((tag ('@ attributes ...) body ...)
`(,tag (@ ,@attributes) ,@(map loop body)))
((tag body ...)
`(,tag ,@(map loop body)))
((? string? str)
str))))
(define (process-html file)
;; Parse FILE and add links to translations. Install the result
;; to #$output.
(format (current-error-port) "processing ~a...~%" file)
(let* ((shtml (parameterize ((%strict-tokenizer? #t))
(call-with-input-file file html->shtml)))
(processed (stylized-html shtml file))
(base (string-drop file (string-length #$input)))
(target (string-append #$output base)))
(mkdir-p (dirname target))
(call-with-output-file target
(lambda (port)
(write-shtml-as-html processed port)))))
;; Install a UTF-8 locale so we can process UTF-8 files.
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setlocale LC_ALL "en_US.utf8")
(setenv "LC_ALL" "en_US.utf8")
(setvbuf (current-error-port) 'line)
(n-par-for-each (parallel-job-count)
(lambda (file)
(if (string-suffix? ".html" file)
(process-html file)
;; Copy FILE as is to #$output.
(let* ((base (string-drop file (string-length #$input)))
(target (string-append #$output base)))
(mkdir-p (dirname target))
(if (eq? 'symlink (stat:type (lstat file)))
(symlink (readlink file) target)
(copy-file file target)))))
(find-files #$input))))))
(computed-file "stylized-html-manual" build))
(define* (html-manual source #:key (languages %languages)
(version "0.0")
(manual %manual)
@ -700,9 +859,11 @@ makeinfo OPTIONS."
(filter (compose file-exists? language->texi-file-name)
'#$languages)))))
(let* ((name (string-append manual "-html-manual"))
(manual (computed-file name build #:local-build? #f)))
(syntax-highlighted-html manual
(let* ((name (string-append manual "-html-manual"))
(manual* (computed-file name build #:local-build? #f)))
(syntax-highlighted-html (stylized-html source manual*
#:languages languages
#:manual manual)
#:mono-node-indexes mono-node-indexes
#:split-node-indexes split-node-indexes
#:name (string-append name "-highlighted"))))
@ -835,6 +996,104 @@ from SOURCE."
(computed-file "guix-manual-po" build))
(define* (localization-helper-module source
#:optional (languages %languages))
"Return a file-like object for use as the (localization) module. SOURCE
must be the Guix top-level source directory, from which PO files are taken."
(define content
(with-extensions (list guile-json-3)
#~(begin
(define-module (localization)
#:use-module (json)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:export (normalize
with-language
translate
language-code->name
language-code->native-name
seconds->string))
(define (normalize language) ;XXX: deduplicate
;; Normalize LANGUAGE. For instance, "zh_CN" becomes "zh-cn".
(string-map (match-lambda
(#\_ #\-)
(chr chr))
(string-downcase language)))
(define-syntax-rule (with-language language exp ...)
(let ((lang (getenv "LANGUAGE")))
(dynamic-wind
(lambda ()
(setenv "LANGUAGE" language)
(setlocale LC_MESSAGES))
(lambda () exp ...)
(lambda ()
(if lang
(setenv "LANGUAGE" lang)
(unsetenv "LANGUAGE"))
(setlocale LC_MESSAGES)))))
;; (put 'with-language 'scheme-indent-function 1)
(define* (translate str language
#:key (domain "guix-manual"))
(define exp
`(begin
(bindtextdomain "guix-manual"
#+(guix-manual-text-domain
source
languages))
(bindtextdomain "iso_639-3" ;language names
#+(file-append iso-codes
"/share/locale"))
(setenv "LANGUAGE" ,language)
(write (gettext ,str ,domain))))
;; Since the 'gettext' function caches msgid translations,
;; regardless of $LANGUAGE, we have to spawn a new process each
;; time we want to translate to a different language. Bah!
(let* ((pipe (open-pipe* OPEN_READ
#+(file-append guile-3.0
"/bin/guile")
"-c" (object->string exp)))
(str (read pipe)))
(close-pipe pipe)
str))
(define %iso639-languages
(vector->list
(assoc-ref (call-with-input-file
#+(file-append iso-codes
"/share/iso-codes/json/iso_639-3.json")
json->scm)
"639-3")))
(define (language-code->name code)
"Return the full name of a language from its ISO-639-3 code."
(let ((code (match (string-index code #\_)
(#f code)
(index (string-take code index)))))
(any (lambda (language)
(and (string=? (or (assoc-ref language "alpha_2")
(assoc-ref language "alpha_3"))
code)
(assoc-ref language "name")))
%iso639-languages)))
(define (language-code->native-name code)
"Return the name of language CODE in that language."
(translate (language-code->name code) code
#:domain "iso_639-3"))
(define (seconds->string seconds language)
(let* ((time (make-time time-utc 0 seconds))
(date (time-utc->date time)))
(with-language language (date->string date "~e ~B ~Y")))))))
(scheme-file "localization.scm" content))
(define* (html-manual-indexes source
#:key (languages %languages)
(version "0.0")
@ -844,207 +1103,132 @@ from SOURCE."
"GNU Guix Cookbook"))
(date 1))
(define build
(with-extensions (list guile-json-3)
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(json)
(ice-9 match)
(ice-9 popen)
(sxml simple)
(srfi srfi-1)
(srfi srfi-19))
(with-imported-modules `((guix build utils)
((localization)
=> ,(localization-helper-module
source languages)))
#~(begin
(use-modules (guix build utils)
(localization)
(sxml simple)
(srfi srfi-1))
(define (normalize language) ;XXX: deduplicate
;; Normalize LANGUAGE. For instance, "zh_CN" becomes "zh-cn".
(string-map (match-lambda
(#\_ #\-)
(chr chr))
(string-downcase language)))
(define (guix-url path)
(string-append #$%web-site-url path))
(define-syntax-rule (with-language language exp ...)
(let ((lang (getenv "LANGUAGE")))
(dynamic-wind
(lambda ()
(setenv "LANGUAGE" language)
(setlocale LC_MESSAGES))
(lambda () exp ...)
(lambda ()
(if lang
(setenv "LANGUAGE" lang)
(unsetenv "LANGUAGE"))
(setlocale LC_MESSAGES)))))
(define (sxml-index language title body)
;; FIXME: Avoid duplicating styling info from guix-artwork.git.
`(html (@ (lang ,language))
(head
(title ,(string-append title " — GNU Guix"))
(meta (@ (charset "UTF-8")))
(meta (@ (name "viewport") (content "width=device-width, initial-scale=1.0")))
;; Menu prefetch.
(link (@ (rel "prefetch") (href ,(guix-url "menu/index.html"))))
;; Base CSS.
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/elements.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/common.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/messages.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/navbar.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/breadcrumbs.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/buttons.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/footer.css"))))
;; (put 'with-language 'scheme-indent-function 1)
(define* (translate str language
#:key (domain "guix-manual"))
(define exp
`(begin
(bindtextdomain "guix-manual"
#+(guix-manual-text-domain
source
languages))
(bindtextdomain "iso_639-3" ;language names
#+(file-append iso-codes
"/share/locale"))
(write (gettext ,str ,domain))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/page.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/post.css")))))
(body
(header (@ (class "navbar"))
(h1 (a (@ (class "branding")
(href #$%web-site-url)))
(span (@ (class "a11y-offset"))
"Guix"))
(nav (@ (class "menu"))))
(nav (@ (class "breadcrumbs"))
(a (@ (class "crumb")
(href #$%web-site-url))
"Home"))
,body
(footer))))
(with-language language
;; Since the 'gettext' function caches msgid translations,
;; regardless of $LANGUAGE, we have to spawn a new process each
;; time we want to translate to a different language. Bah!
(let* ((pipe (open-pipe* OPEN_READ
#+(file-append guile-2.2
"/bin/guile")
"-c" (object->string exp)))
(str (read pipe)))
(close-pipe pipe)
str)))
(define (language-index language)
(define title
(translate #$title language))
(define (seconds->string seconds language)
(let* ((time (make-time time-utc 0 seconds))
(date (time-utc->date time)))
(with-language language (date->string date "~e ~B ~Y"))))
(sxml-index
language title
`(main
(article
(@ (class "page centered-block limit-width"))
(h2 ,title)
(p (@ (class "post-metadata centered-text"))
#$version " — "
,(seconds->string #$date language))
(define (guix-url path)
(string-append #$%web-site-url path))
(div
(ul
(li (a (@ (href "html_node"))
"HTML, with a separate page per node"))
(li (a (@ (href
,(string-append
#$manual
(if (string=? language
"en")
""
(string-append "."
language))
".html")))
"HTML, entirely on one page"))
,@(if (member language '("ru" "zh_CN"))
'()
`((li (a (@ (href ,(string-append
#$manual
(if (string=? language "en")
""
(string-append "."
language))
".pdf"))))
"PDF")))))))))
(define (sxml-index language title body)
;; FIXME: Avoid duplicating styling info from guix-artwork.git.
`(html (@ (lang ,language))
(head
(title ,(string-append title " — GNU Guix"))
(meta (@ (charset "UTF-8")))
(meta (@ (name "viewport") (content "width=device-width, initial-scale=1.0")))
;; Menu prefetch.
(link (@ (rel "prefetch") (href ,(guix-url "menu/index.html"))))
;; Base CSS.
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/elements.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/common.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/messages.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/navbar.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/breadcrumbs.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/buttons.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/footer.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/page.css"))))
(link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/post.css")))))
(body
(header (@ (class "navbar"))
(h1 (a (@ (class "branding")
(href #$%web-site-url)))
(span (@ (class "a11y-offset"))
"Guix"))
(nav (@ (class "menu"))))
(nav (@ (class "breadcrumbs"))
(a (@ (class "crumb")
(href #$%web-site-url))
"Home"))
,body
(footer))))
(define (language-index language)
(define title
(translate #$title language))
(sxml-index
language title
`(main
(article
(@ (class "page centered-block limit-width"))
(h2 ,title)
(p (@ (class "post-metadata centered-text"))
#$version " — "
,(seconds->string #$date language))
(div
(ul
(li (a (@ (href "html_node"))
"HTML, with a separate page per node"))
(li (a (@ (href
,(string-append
#$manual
(if (string=? language
"en")
""
(string-append "."
language))
".html")))
"HTML, entirely on one page"))
,@(if (member language '("ru" "zh_CN"))
'()
`((li (a (@ (href ,(string-append
#$manual
(if (string=? language "en")
""
(string-append "."
language))
".pdf"))))
"PDF")))))))))
(define %iso639-languages
(vector->list
(assoc-ref (call-with-input-file
#+(file-append iso-codes
"/share/iso-codes/json/iso_639-3.json")
json->scm)
"639-3")))
(define (language-code->name code)
"Return the full name of a language from its ISO-639-3 code."
(let ((code (match (string-index code #\_)
(#f code)
(index (string-take code index)))))
(any (lambda (language)
(and (string=? (or (assoc-ref language "alpha_2")
(assoc-ref language "alpha_3"))
code)
(assoc-ref language "name")))
%iso639-languages)))
(define (top-level-index languages)
(define title #$title)
(sxml-index
"en" title
`(main
(article
(@ (class "page centered-block limit-width"))
(h2 ,title)
(div
"This document is available in the following
(define (top-level-index languages)
(define title #$title)
(sxml-index
"en" title
`(main
(article
(@ (class "page centered-block limit-width"))
(h2 ,title)
(div
"This document is available in the following
languages:\n"
(ul
,@(map (lambda (language)
`(li (a (@ (href ,(normalize language)))
,(translate
(language-code->name language)
language
#:domain "iso_639-3"))))
languages)))))))
(ul
,@(map (lambda (language)
`(li (a (@ (href ,(normalize language)))
,(language-code->native-name language))))
languages)))))))
(define (write-html file sxml)
(call-with-output-file file
(lambda (port)
(display "<!DOCTYPE html>\n" port)
(sxml->xml sxml port))))
(define (write-html file sxml)
(call-with-output-file file
(lambda (port)
(display "<!DOCTYPE html>\n" port)
(sxml->xml sxml port))))
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setenv "LC_ALL" "en_US.utf8")
(setlocale LC_ALL "en_US.utf8")
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setenv "LC_ALL" "en_US.utf8")
(setlocale LC_ALL "en_US.utf8")
(for-each (lambda (language)
(define directory
(string-append #$output "/"
(normalize language)))
(for-each (lambda (language)
(define directory
(string-append #$output "/"
(normalize language)))
(mkdir-p directory)
(write-html (string-append directory "/index.html")
(language-index language)))
'#$languages)
(mkdir-p directory)
(write-html (string-append directory "/index.html")
(language-index language)))
'#$languages)
(write-html (string-append #$output "/index.html")
(top-level-index '#$languages))))))
(write-html (string-append #$output "/index.html")
(top-level-index '#$languages)))))
(computed-file "html-indexes" build))

View File

@ -695,7 +695,7 @@ package typically include a @file{snippets} directory, which could be
copied to the installation directory using:
@lisp
#:include (cons "^snippets/" %default-include))
#:include (cons "^snippets/" %default-include)
@end lisp
When encountering problems, it is wise to check for the presence of the
@ -959,17 +959,11 @@ If you do not use Emacs, please make sure to let your editor knows these
rules. To automatically indent a package definition, you can also run:
@example
./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}
./pre-inst-env guix style @var{package}
@end example
@noindent
This automatically indents the definition of @var{package} in
@file{gnu/packages/@var{file}.scm} by running Emacs in batch mode. To
indent a whole file, omit the second argument:
@example
./etc/indent-code.el gnu/services/@var{file}.scm
@end example
@xref{Invoking guix style}, for more information.
@cindex Vim, Scheme code editing
If you are editing code with Vim, we recommend that you run @code{:set
@ -1038,6 +1032,10 @@ Run @code{guix lint @var{package}}, where @var{package} is the
name of the new or modified package, and fix any errors it reports
(@pxref{Invoking guix lint}).
@item
Run @code{guix style @var{package}} to format the new package definition
according to the project's conventions (@pxref{Invoking guix style}).
@item
Make sure the package builds on your platform, using @code{guix build
@var{package}}.
@ -1175,8 +1173,8 @@ Examples of unrelated changes include the addition of several packages,
or a package update along with fixes to that package.
@item
Please follow our code formatting rules, possibly running the
@command{etc/indent-code.el} script to do that automatically for you
Please follow our code formatting rules, possibly running
@command{guix style} script to do that automatically for you
(@pxref{Formatting Code}).
@item

View File

@ -6,8 +6,7 @@
;; Augment the package definition of GDB with the build tools
;; needed when developing GDB (and which are not needed when
;; simply installing it.)
(package (inherit gdb)
(native-inputs `(("autoconf" ,autoconf-2.64)
("automake" ,automake)
("texinfo" ,texinfo)
,@(package-native-inputs gdb))))
(package
(inherit gdb)
(native-inputs (modify-inputs (package-native-inputs gdb)
(prepend autoconf-2.64 automake texinfo))))

View File

@ -1222,10 +1222,7 @@ $ guix import cran --recursive walrus
"1nk2glcvy4hyksl5ipq2mz8jy4fss90hx6cq98m3w96kzjni6jjj"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
("r-jmvcore" ,r-jmvcore)
("r-r6" ,r-r6)
("r-wrs2" ,r-wrs2)))
(list r-ggplot2 r-jmvcore r-r6 r-wrs2))
(home-page "https://github.com/jamovi/walrus")
(synopsis "Robust Statistical Methods")
(description
@ -1284,8 +1281,7 @@ noticed that a significant number of them have a @code{inherit} field:
(sha256
(base32
"17fpahgh5dyckgz7rwqvzgnhx53cx9kr2xw0szprc6bnqy977fi8"))))
(native-inputs
`(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
(native-inputs (list `(,gtk+ "bin")))))
@end lisp
All unspecified fields are inherited from the parent package. This is very
@ -1434,37 +1430,34 @@ The @code{linux-libre} kernel package definition is actually a procedure which
creates a package.
@lisp
(define* (make-linux-libre version hash supported-systems
#:key
;; A function that takes an arch and a variant.
;; See kernel-config for an example.
(extra-version #false)
(configuration-file #false)
(defconfig "defconfig")
(extra-options %default-extra-linux-options)
(patches (list %boot-logo-patch)))
(define* (make-linux-libre* version gnu-revision source supported-systems
#:key
(extra-version #f)
;; A function that takes an arch and a variant.
;; See kernel-config for an example.
(configuration-file #f)
(defconfig "defconfig")
(extra-options %default-extra-linux-options))
...)
@end lisp
The current @code{linux-libre} package is for the 5.1.x series, and is
The current @code{linux-libre} package is for the 5.15.x series, and is
declared like this:
@lisp
(define-public linux-libre
(make-linux-libre %linux-libre-version
%linux-libre-hash
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
#:patches %linux-libre-5.1-patches
#:configuration-file kernel-config))
(define-public linux-libre-5.15
(make-linux-libre* linux-libre-5.15-version
linux-libre-5.15-gnu-revision
linux-libre-5.15-source
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux")
#:configuration-file kernel-config))
@end lisp
Any keys which are not assigned values inherit their default value from the
@code{make-linux-libre} definition. When comparing the two snippets above,
you may notice that the code comment in the first doesn't actually refer to
the @code{#:extra-version} keyword; it is actually for
@code{#:configuration-file}. Because of this, it is not actually easy to
include a custom kernel configuration from the definition, but don't worry,
there are other ways to work with what we do have.
notice the code comment that refers to @code{#:configuration-file}. Because of
this, it is not actually easy to include a custom kernel configuration from the
definition, but don't worry, there are other ways to work with what we do have.
There are two ways to create a kernel with a custom kernel configuration. The
first is to provide a standard @file{.config} file during the build process by
@ -1564,14 +1557,15 @@ custom kernel:
(@@@@ (gnu packages linux) %default-extra-linux-options)))
(define-public linux-libre-macbook41
;; XXX: Access the internal 'make-linux-libre' procedure, which is
;; XXX: Access the internal 'make-linux-libre*' procedure, which is
;; private and unexported, and is liable to change in the future.
((@@@@ (gnu packages linux) make-linux-libre) (@@@@ (gnu packages linux) %linux-libre-version)
(@@@@ (gnu packages linux) %linux-libre-hash)
'("x86_64-linux")
#:extra-version "macbook41"
#:patches (@@@@ (gnu packages linux) %linux-libre-5.1-patches)
#:extra-options %macbook41-config-options))
((@@@@ (gnu packages linux) make-linux-libre*)
(@@@@ (gnu packages linux) linux-libre-version)
(@@@@ (gnu packages linux) linux-libre-gnu-revision)
(@@@@ (gnu packages linux) linux-libre-source)
'("x86_64-linux")
#:extra-version "macbook41"
#:extra-options %macbook41-config-options))
@end lisp
In the above example @code{%file-systems} is a collection of flags enabling

File diff suppressed because it is too large Load Diff

View File

@ -22,8 +22,8 @@
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
# If adding a language, update the following variables, and info_TEXINFOS.
MANUAL_LANGUAGES = de es fa fr it ko pt_BR ru sk zh_CN
COOKBOOK_LANGUAGES = de es fa fr ko ru sk zh_Hans
MANUAL_LANGUAGES = de es fa fi fr it ko pt_BR ru sk zh_CN
COOKBOOK_LANGUAGES = de es fa fi fr ko ru sk zh_Hans
# Arg1: A list of languages codes.
# Arg2: The file name stem.
@ -35,6 +35,7 @@ info_TEXINFOS = %D%/guix.texi \
%D%/guix.de.texi \
%D%/guix.es.texi \
%D%/guix.fa.texi \
%D%/guix.fi.texi \
%D%/guix.fr.texi \
%D%/guix.it.texi \
%D%/guix.ko.texi \
@ -46,6 +47,7 @@ info_TEXINFOS = %D%/guix.texi \
%D%/guix-cookbook.de.texi \
%D%/guix-cookbook.es.texi \
%D%/guix-cookbook.fa.texi \
%D%/guix-cookbook.fi.texi \
%D%/guix-cookbook.fr.texi \
%D%/guix-cookbook.ko.texi \
%D%/guix-cookbook.ru.texi \

View File

@ -215,7 +215,12 @@ corresponding to the top-level definition containing the staged changes."
"Print ChangeLog commit message for changes between OLD and NEW."
(define (get-values expr field)
(match ((sxpath `(// ,field quasiquote *)) expr)
(() '())
(()
;; New-style plain lists
(match ((sxpath `(// ,field list *)) expr)
((inner) inner)
(_ '())))
;; Old-style labelled inputs
((first . rest)
(map cadadr first))))
(define (listify items)

View File

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2021 Tobias Geerinck-Rice <me@tobias.gr>
#
# This file is part of GNU Guix.
@ -73,7 +73,7 @@ _guix_complete_option ()
local command="${COMP_WORDS[$1]}"
local subcommand="${COMP_WORDS[$(($1 + 1))]}"
if [ $1 -le 1 ]
if [ $1 -eq 0 ]
then
command=""
subcommand=""
@ -294,7 +294,7 @@ _guix_complete ()
elif [[ "$command" = "size" ]]
then
_guix_complete_available_package_or_store_file "$word_at_point"
elif [[ "$command" = "system" ]]
elif [[ "$command" = "system" || "$command" = "home" ]]
then
case $((COMP_CWORD - command_index)) in
1) _guix_complete_subcommand;;

View File

@ -302,6 +302,9 @@
(allow guix_daemon_t
guix_daemon_conf_t
(lnk_file (create getattr rename unlink read)))
(allow guix_daemon_t
guix_daemon_conf_t
(sock_file (write)))
(allow guix_daemon_t net_conf_t
(file (getattr open read)))
(allow guix_daemon_t net_conf_t

View File

@ -1,120 +0,0 @@
:;exec emacs --batch --quick --load="$0" --funcall=main "$@"
;;; indent-code.el --- Run Emacs to indent a package definition.
;; Copyright © 2017 Alex Kost <alezost@gmail.com>
;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This scripts indents the given file or package definition in the specified
;; file using Emacs.
;;; Code:
;; Load Scheme indentation rules from ".dir-locals.el".
(with-temp-buffer
(scheme-mode)
(let ((default-directory (file-name-as-directory load-file-name))
(enable-local-variables :all))
(hack-dir-local-variables)
(hack-local-variables-apply)))
;; Add indentation info for Scheme constructs that are not Guix-specific.
;; This is normally provided by Geiser but this file is for people who may not
;; be running Geiser, so we just copy it here (from 'geiser-syntax.el').
(defmacro guix-syntax--scheme-indent (&rest pairs)
`(progn ,@(mapcar (lambda (p)
`(put ',(car p) 'scheme-indent-function ',(cadr p)))
pairs)))
(guix-syntax--scheme-indent
(and-let* 1)
(case-lambda 0)
(catch defun)
(class defun)
(dynamic-wind 0)
(guard 1)
(let*-values 1)
(let-values 1)
(let/ec 1)
(letrec* 1)
(match 1)
(match-lambda 0)
(match-lambda* 0)
(match-let scheme-let-indent)
(match-let* 1)
(match-letrec 1)
(opt-lambda 1)
(parameterize 1)
(parameterize* 1)
(receive 2)
(require-extension 0)
(syntax-case 2)
(test-approximate 1)
(test-assert 1)
(test-eq 1)
(test-equal 1)
(test-eqv 1)
(test-group-with-cleanup 1)
(test-runner-on-bad-count! 1)
(test-runner-on-bad-end-name! 1)
(test-runner-on-final! 1)
(test-runner-on-group-begin! 1)
(test-runner-on-group-end! 1)
(test-runner-on-test-begin! 1)
(test-runner-on-test-end! 1)
(test-with-runner 1)
(unless 1)
(when 1)
(while 1)
(with-exception-handler 1)
(with-syntax 1))
(defun main ()
(pcase command-line-args-left
(`(,file-name ,package-name)
;; Indent the definition of PACKAGE-NAME in FILE-NAME.
(find-file file-name)
(goto-char (point-min))
(if (re-search-forward (concat "^(define\\(\\|-public\\) +"
package-name)
nil t)
(let ((indent-tabs-mode nil))
(beginning-of-defun)
(mark-sexp)
(untabify (point) (mark))
(indent-sexp)
(save-buffer)
(message "Done!"))
(error "Package '%s' not found in '%s'"
package-name file-name)))
(`(,file-name)
;; Indent all of FILE-NAME.
(find-file file-name)
(let ((indent-tabs-mode nil))
(untabify (point-min) (point-max))
(indent-region (point-min) (point-max))
(save-buffer)
(message "Done!")))
(x
(error "Usage: indent-code.el FILE [PACKAGE]"))))
;;; indent-code.el ends here

View File

@ -1,11 +1,11 @@
;; GNU Guix news, for use by 'guix pull'.
;;
;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 20192021 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, 2021 Julien Lepiller <julien@lepiller.eu>
;; Copyright © 2019, 2020, 2021 Florian Pelz <pelzflorian@pelzflorian.de>
;; Copyright © 20192022 Florian Pelz <pelzflorian@pelzflorian.de>
;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@ -25,11 +25,135 @@
(channel-news
(version 0)
(entry (commit "c4fe13c294cc1e31dd8a49ce3981f603fb169e0a")
(title
(en "@command{guix style} can format package definitions")
(de "@command{guix style} kann Paketdefinitionen formatieren")
(fr "@command{guix style} peut mettre en forme les définitions de paquets"))
(body
(en "The recently-introduced @command{guix style} command can now be
used to automatically format package definitions according to the Guix
project's formatting guidelines. If you contribute packages to Guix or to a
third-party channel, you may find it useful.
The new @option{--styling} option can currently be passed one of the following
@dfn{styling rules}: @code{format}, to format package definitions, or
@code{inputs}, to remove labels from package inputs. Omitting
@option{--styling} is equivalent to passing @samp{--styling=format};
previously it was equivalent to @samp{--styling=inputs}.
Run @code{info \"(guix) Invoking guix style\"}, for more info.")
(de "Der kürzlich eingeführte Befehl @command{guix style} kann jetzt
benutzt werden, um Paketdefinitionen automatisch nach den
Formatierungsrichtlinien des Guix-Projekts zu formatieren. Wenn Sie Pakete zu
Guix oder zu einem Drittanbieterkanal beitragen, könnte Ihnen das helfen.
Für die neue Befehlszeilenoption @option{--styling} können Sie derzeit eine
der folgenden @dfn{Stilregeln} angeben: @code{format}, wodurch
Paketdefinitionen formatiert werden, oder @code{inputs}, wodurch die
Bezeichnungen aus Paketeingaben entfernt werden. Wenn Sie {--styling}
weglassen, passiert das Gleiche wie wenn Sie @samp{--styling=format} angeben;
früher war es das Gleiche wie @samp{--styling=inputs}.
Führen Sie @command{info \"(guix) Invoking guix style\"} aus, um mehr
Informationen zu erhalten.")
(fr "La commande @command{guix style}, récemment introduite, peut
désormais être utilisée pour mettre en forme des définitions de paquets
suivant les règles de style du projet Guix. Si vous contribuez des paquets à
Guix ou à un canal tiers, cela peut vous être utile.
La nouvelle option @option{--style} peut pour le moment recevoir une des deux
@dfn{règles de style} suivantes : @code{format}, pour mettre en forme les
définitions de paquet, ou @code{inputs}, pour retirer les étiquettes des
champs @code{inputs} des paquets. Omettre @option{--styling} revient à passer
@samp{--styling=format} ; auparavant c'était équivalent à
@samp{--styling=inputs}.
Lancer @command{info \"(guix.fr) Invoquer guix style\"}, pour plus
d'informations.")))
(entry (commit "d090e9c37d693f5a0f381482c17fb03462cb6a48")
(title
(en "New @option{--tune} option for CPU micro-architecture tuning")
(de "Neue Option @option{--tune} ermöglicht mikroarchitekturspezifische Optimierungen")
(fr "Nouvelle option @option{--tune} pour optimiser pour une
micro-architecture"))
(body
(en "The new @option{--tune} package transformation option instructs
Guix to tune relevant packages for the micro-architecture of the host CPU.
This lets the compiler use single-instruction/multiple-data (SIMD)
instructions beyond the baseline instruction set architecture (ISA), which can
noticeably improve performance in some cases such as linear algebra code.
As an example, here is how you would install the GNU Astronomy Utilities
against an optimized variant of the GNU Scientific Library (GSL):
@example
guix install gnuastro --tune
@end example
Run @command{info \"(guix) Package Transformation Options\"} for more
information.")
(de "Die neue Paketumwandlungsoption @option{--tune} lässt Guix die
betroffenen Pakete an die im Prozessor dieses Rechners benutzte
Mikroarchitektur anpassen. Dadurch kann der Compiler Befehle für
Single-Instruction/Multiple-Data (SIMD) einsetzen, die über den gemeinsamen
Befehlssatz hinausgehen. Das kann in manchen Fällen die Leistung beträchtlich
steigern, etwa für Berechnungen der linearen Algebra.
Zum Beispiel würden Sie so die GNU-Astronomieprogramme unter Nutzung einer
optimierten Variante der GNU Scientific Library (GSL) installieren:
@example
guix install gnuastro --tune
@end example
Führen Sie für mehr Informationen @command{info \"(guix.de)
Paketumwandlungsoptionen\"} aus.")
(fr "La nouvelle option de transformation de paquets @option{--tune}
demande à Guix d'optimiser les paquets pour lesquels c'est pertinent pour la
micro-architecture du processeur hôte. Cela permet au compilateur d'utiliser
des instructions vectorielles (SIMD) en plus des instructions de base de
l'architecture, ce qui peut sensiblement améliorer les performance dans
certains cas tels que pour du code d'algèbre linéaire.
Par exemple, voici comment installer les Utilitaires d'astronomie GNU de
manière à ce qu'ils utilisent une variante optimisée de la Bibliothèque
scientifique GNU (GSL) :
@example
guix install gnuastro --tune
@end example
Lancer @command{info \"(guix.fr) Options de transformation de paquets\"} pour
plus d'informations.")))
(entry (commit "ea2fd313d52dc62593b478acf5c3e7ea052c45de")
(title
(en "@samp{integer expected from stream}? Update your Guix daemon")
(de "@samp{integer expected from stream}? Aktualisieren Sie Ihren Guix-Daemon")
(nl "@samp{integer expected from stream}? Werk je Guix daemon bij"))
(body
(en "We recently fixed a bug where substitution would fail with
@samp{error: integer expected from stream}. Be sure to update your system's
Guix package that provides the @command{guix-daemon} if you haven't done so
recently. Run @command{info \"(guix) Upgrading Guix\"} for instructions.")
(de "Unlängst haben wir einen Fehler behoben, dass die Substitution
mit der Fehlermeldung @samp{error: integer expected from stream}
fehlschlägt. Bitte aktualisieren Sie daher Ihr systemweites Guix-Paket, das
@command{guix-daemon} zur Verfügung stellt, wenn es noch nicht geschehen
ist. Führen Sie @command{info \"(guix.de) Aktualisieren von Guix\"} aus für
genaue Anweisungen.")
(nl "Onlangs herstelden we een fout waarbij substitutie mislukt met
een @samp{error: integer expected from stream}. Werk zeker je systeemwijde
Guix-pakket bij, dat de @command{guix-daemon} levert, als dat nog niet is
gebeurd. Voer @command{info \"(guix) Upgrading Guix\"} uit voor meer uitleg.")))
(entry (commit "223f1b1eb3707f1d3ef91200dd616ee6c8b77db0")
(title
(en "Improved static networking support on Guix System")
(de "Bessere Unterstützung für statische Netzwerkanbindungen auf Guix System")
(fr "Meilleure prise en charge de réseaux statiques sur Guix System"))
(fr "Meilleure prise en charge des réseaux statiques sur Guix System"))
(body
(en "Support for declarative static networking setup on Guix System
has been improved. It now allows you to list IPv4 and IPv6 addresses in

View File

@ -8,7 +8,7 @@ gnu: ${1:`(with-temp-buffer
(magit-git-wash #'magit-diff-wash-diffs
"diff" "--staged")
(goto-char (point-min))
(when (re-search-forward "(define-public \\(\\S-+\\)" nil 'noerror)
(when (re-search-forward "^[ ]*(define-public \\(\\S-+\\)" nil 'noerror)
(match-string-no-properties 1)))`}: Update to ${2:`(with-temp-buffer
(magit-git-wash #'magit-diff-wash-diffs
"diff" "--staged")

View File

@ -264,36 +264,38 @@ is a string that can be inserted in grub.cfg."
at_keyboard usb_keyboard))
(io (string-append
"terminal_output "
(symbols->string
(map
(lambda (output)
(if (memq output valid-outputs) output #f)) outputs)) "\n"
(if (null? inputs)
""
(string-append
"terminal_input "
(symbols->string
(map
(lambda (input)
(if (memq input valid-inputs) input #f)) inputs)) "\n"))
;; UNIT and SPEED are arguments to the same GRUB command
;; ("serial"), so we process them together.
(if (or unit speed)
(string-append
;; UNIT and SPEED are arguments to the same GRUB command
;; ("serial"), so we process them together.
(if (or unit speed)
(string-append
"serial"
(if unit
;; COM ports 1 through 4
(if (and (exact-integer? unit) (<= unit 3) (>= unit 0))
(string-append " --unit=" (number->string unit))
#f)
"")
;; COM ports 1 through 4
(if (and (exact-integer? unit) (<= unit 3) (>= unit 0))
(string-append " --unit=" (number->string unit))
#f)
"")
(if speed
(if (exact-integer? speed)
(string-append " --speed=" (number->string speed))
#f)
""))
""))))
(if (exact-integer? speed)
(string-append " --speed=" (number->string speed))
#f)
"")
"\n")
"")
(if (null? inputs)
""
(string-append
"terminal_input "
(symbols->string
(map
(lambda (input)
(if (memq input valid-inputs) input #f)) inputs))
"\n"))
"terminal_output "
(symbols->string
(map
(lambda (output)
(if (memq output valid-outputs) output #f)) outputs)))))
(format #f "~a" io)))
(define (grub-root-search device file)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -490,7 +490,11 @@ new UIDs."
(uid id)
(directory directory)
(gid (if (number? group) group (group-id group)))
(real-name (if previous
;; Users might change their name to something
;; other than what the sysadmin chose, with
;; 'chfn'. Thus consider it "stateful".
(real-name (if (and previous (not system?))
(password-entry-real-name previous)
real-name))

View File

@ -83,10 +83,8 @@ in PACKAGE-OUTPUT of PACKAGE. The extension will be signed with SIGNING-KEY."
(system (string-append xvfb " :1 &"))
(setenv "DISPLAY" ":1")
(sleep 2) ;give Xorg some time to initialize...
;; Chromium stores the current time in the .crx Zip archive.
;; Use a fixed timestamp for deterministic behavior.
(invoke chromium
"--user-data-dir=/tmp/signing-profile"
"--user-data-dir=chromium-profile"
(string-append "--pack-extension=" packdir)
(string-append "--pack-extension-key=" #$signing-key))
(copy-file (string-append packdir ".crx") #$output))))

View File

@ -166,6 +166,7 @@ produced by #:references-graphs. Pass WAL-MODE? to call-with-database."
bootcfg-location
bootloader-package
bootloader-installer
(copy-closures? #t)
(deduplicate? #t)
references-graphs
(register-closures? #t)
@ -176,30 +177,50 @@ produced by #:references-graphs. Pass WAL-MODE? to call-with-database."
"Initialize the given ROOT directory. Use BOOTCFG and BOOTCFG-LOCATION to
install the bootloader configuration.
If REGISTER-CLOSURES? is true, register REFERENCES-GRAPHS in the store. If
If COPY-CLOSURES? is true, copy all of REFERENCES-GRAPHS to the partition. If
REGISTER-CLOSURES? is true, register REFERENCES-GRAPHS in the store. If
DEDUPLICATE? is true, then also deduplicate files common to CLOSURES and the
rest of the store when registering the closures. SYSTEM-DIRECTORY is the name
of the directory of the 'system' derivation. Pass WAL-MODE? to
register-closure."
(define root-store
(string-append root (%store-directory)))
(define tmp-store ".tmp-store")
(populate-root-file-system system-directory root)
(populate-store references-graphs root
#:deduplicate? deduplicate?)
(when copy-closures?
(populate-store references-graphs root
#:deduplicate? deduplicate?))
;; Populate /dev.
(when make-device-nodes
(make-device-nodes root))
(when register-closures?
(unless copy-closures?
;; XXX: 'register-closure' wants to palpate the things it registers, so
;; create a symlink to the store.
(rename-file root-store tmp-store)
(symlink (%store-directory) root-store))
(for-each (lambda (closure)
(register-closure root closure
#:wal-mode? wal-mode?))
references-graphs))
references-graphs)
(when bootloader-installer
(display "installing bootloader...\n")
(bootloader-installer bootloader-package #f root))
(when bootcfg
(install-boot-config bootcfg bootcfg-location root)))
(unless copy-closures?
(delete-file root-store)
(rename-file tmp-store root-store)))
;; There's no point installing a bootloader if we do not populate the store.
(when copy-closures?
(when bootloader-installer
(display "installing bootloader...\n")
(bootloader-installer bootloader-package #f root))
(when bootcfg
(install-boot-config bootcfg bootcfg-location root))))
(define* (make-iso9660-image xorriso grub-mkrescue-environment
grub bootcfg system-directory root target

View File

@ -52,7 +52,7 @@ exists."
(file-exists? "/proc/self/setgroups"))
(define %namespaces
'(mnt pid ipc uts user net))
'(cgroup mnt pid ipc uts user net))
(define (call-with-clean-exit thunk)
"Apply THUNK, but exit with a status code of 1 if it fails."
@ -210,6 +210,7 @@ corresponds to the symbols in NAMESPACES."
;; Use the same flags as fork(3) in addition to the namespace flags.
(apply logior SIGCHLD
(map (match-lambda
('cgroup CLONE_NEWCGROUP)
('mnt CLONE_NEWNS)
('uts CLONE_NEWUTS)
('ipc CLONE_NEWIPC)

View File

@ -24,6 +24,7 @@
#:use-module (rnrs io ports)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 regex)
#:export (marionette?
make-marionette
marionette-eval
@ -36,7 +37,8 @@
%qwerty-us-keystrokes
marionette-type
system-test-runner))
system-test-runner
qemu-command))
;;; Commentary:
;;;
@ -426,4 +428,14 @@ LOG-DIRECTORY is specified, create log file within it."
(exit success?))))
runner))
(define* (qemu-command #:optional (system %host-type))
"Return the default name of the QEMU command for SYSTEM."
(let ((cpu (substring system 0
(string-index system #\-))))
(string-append "qemu-system-"
(cond
((string-match "^i[3456]86$" cpu) "i386")
((string-match "armhf" cpu) "arm")
(else cpu)))))
;;; marionette.scm ends here

View File

@ -1,500 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build vm)
#:use-module (guix build utils)
#:use-module (guix build store-copy)
#:use-module (guix build syscalls)
#:use-module (guix store database)
#:use-module (gnu build bootloader)
#:use-module (gnu build linux-boot)
#:use-module (gnu build install)
#:use-module (gnu system uuid)
#:use-module (guix records)
#:use-module ((guix combinators) #:select (fold2))
#:use-module (ice-9 format)
#:use-module (ice-9 ftw)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (ice-9 popen)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:export (qemu-command
load-in-linux-vm
format-partition
partition
partition?
partition-device
partition-size
partition-file-system
partition-label
partition-flags
partition-initializer
estimated-partition-size
root-partition-initializer
initialize-partition-table
initialize-hard-disk))
;;; Commentary:
;;;
;;; This module provides supporting code to run virtual machines and build
;;; virtual machine images using QEMU.
;;;
;;; Code:
(define* (qemu-command #:optional (system %host-type))
"Return the default name of the QEMU command for SYSTEM."
(let ((cpu (substring system 0
(string-index system #\-))))
(string-append "qemu-system-"
(cond
((string-match "^i[3456]86$" cpu) "i386")
((string-match "armhf" cpu) "arm")
(else cpu)))))
(define* (load-in-linux-vm builder
#:key
output
(qemu (qemu-command)) (memory-size 512)
linux initrd
make-disk-image?
single-file-output?
(disk-image-size (* 100 (expt 2 20)))
(disk-image-format "qcow2")
(references-graphs '()))
"Run BUILDER, a Scheme file, into a VM running LINUX with INITRD, and copy
the result to OUTPUT. If SINGLE-FILE-OUTPUT? is true, copy a single file from
/xchg to OUTPUT. Otherwise, copy the contents of /xchg to a new directory
OUTPUT.
When MAKE-DISK-IMAGE? is true, OUTPUT will contain a VM image of
DISK-IMAGE-SIZE bytes resulting from the execution of BUILDER, which may
access it via /dev/hda.
REFERENCES-GRAPHS can specify a list of reference-graph files as produced by
the #:references-graphs parameter of 'derivation'."
(define target-arm32?
(string-prefix? "arm-" %host-type))
(define target-aarch64?
(string-prefix? "aarch64-" %host-type))
(define target-arm?
(or target-arm32? target-aarch64?))
(define arch-specific-flags
`(;; On ARM, a machine has to be specified. Use "virt" machine to avoid
;; hardware limits imposed by other machines.
,@(if target-arm?
'("-M" "virt")
'())
;; On ARM32, if the kernel is built without LPAE support, ECAM conflicts
;; with VIRT_PCIE_MMIO causing PCI devices not to show up. Disable
;; explicitely highmem to fix it.
;; See: https://bugs.launchpad.net/qemu/+bug/1790975.
,@(if target-arm32?
'("-machine" "highmem=off")
'())
;; Only enable kvm if we see /dev/kvm exists. This allows users without
;; hardware virtualization to still use these commands. KVM support is
;; still buggy on some ARM boards. Do not use it even if available.
,@(if (and (file-exists? "/dev/kvm")
(not target-arm?))
'("-enable-kvm")
'())
;; Pass "panic=1" so that the guest dies upon error.
"-append"
,(string-append "panic=1 --load=" builder
;; The serial port name differs between emulated
;; architectures/machines.
" console="
(if target-arm? "ttyAMA0" "ttyS0"))))
(when make-disk-image?
(format #t "creating ~a image of ~,2f MiB...~%"
disk-image-format (/ disk-image-size (expt 2 20)))
(force-output)
(invoke "qemu-img" "create" "-f" disk-image-format output
(number->string disk-image-size)))
(mkdir "xchg")
(mkdir "tmp")
(match references-graphs
((graph-files ...)
;; Copy the reference-graph files under xchg/ so EXP can access it.
(map (lambda (file)
(copy-file file (string-append "xchg/" file)))
graph-files))
(_ #f))
(apply invoke qemu "-nographic" "-no-reboot"
;; CPU "max" behaves as "host" when KVM is enabled, and like a system
;; CPU with the maximum possible feature set otherwise.
"-cpu" "max"
"-m" (number->string memory-size)
"-nic" "user,model=virtio-net-pci"
"-object" "rng-random,filename=/dev/urandom,id=guix-vm-rng"
"-device" "virtio-rng-pci,rng=guix-vm-rng"
"-virtfs"
(string-append "local,id=store_dev,path="
(%store-directory)
",security_model=none,mount_tag=store")
"-virtfs"
(string-append "local,id=xchg_dev,path=xchg"
",security_model=none,mount_tag=xchg")
"-virtfs"
;; Some programs require more space in /tmp than is normally
;; available in the guest. Accommodate such programs by sharing a
;; temporary directory.
(string-append "local,id=tmp_dev,path=tmp"
",security_model=none,mount_tag=tmp")
"-kernel" linux
"-initrd" initrd
(append
(if make-disk-image?
`("-device" "virtio-blk,drive=myhd"
"-drive" ,(string-append "if=none,file=" output
",format=" disk-image-format
",id=myhd"))
'())
arch-specific-flags))
(unless (file-exists? "xchg/.exit-status")
(error "VM did not produce an exit code"))
(match (call-with-input-file "xchg/.exit-status" read)
(0 #t)
(status (error "guest VM code exited with a non-zero status" status)))
(delete-file "xchg/.exit-status")
;; When MAKE-DISK-IMAGE? is true, the image is in OUTPUT already.
(unless make-disk-image?
(if single-file-output?
(let ((graph? (lambda (name stat)
(member (basename name) references-graphs))))
(match (find-files "xchg" (negate graph?))
((result)
(copy-file result output))
(x
(error "did not find a single result file" x))))
(begin
(mkdir output)
(copy-recursively "xchg" output)))))
(define* (register-closure prefix closure
#:key
(schema (sql-schema)))
"Register CLOSURE in PREFIX, where PREFIX is the directory name of the
target store and CLOSURE is the name of a file containing a reference graph as
produced by #:references-graphs."
(let ((items (call-with-input-file closure read-reference-graph)))
(parameterize ((sql-schema schema))
(with-database (store-database-file #:prefix prefix) db
(register-items db items
#:prefix prefix
#:registration-time %epoch)))))
;;;
;;; Partitions.
;;;
(define-record-type* <partition> partition make-partition
partition?
(device partition-device (default #f))
(size partition-size)
(file-system partition-file-system (default "ext4"))
(file-system-options partition-file-system-options ;passed to 'mkfs.FS'
(default '()))
(label partition-label (default #f))
(uuid partition-uuid (default #f))
(flags partition-flags (default '()))
(initializer partition-initializer (default (const #t))))
(define (estimated-partition-size graphs)
"Return the estimated size of a partition that can store the store items
given by GRAPHS, a list of file names produced by #:references-graphs."
;; Simply add a 25% overhead.
(round (* 1.25 (closure-size graphs))))
(define* (initialize-partition-table device partitions
#:key
(label-type "msdos")
(offset (expt 2 20)))
"Create on DEVICE a partition table of type LABEL-TYPE, containing the given
PARTITIONS (a list of <partition> objects), starting at OFFSET bytes. On
success, return PARTITIONS with their 'device' field changed to reflect their
actual /dev name based on DEVICE."
(define (partition-options part offset index)
(cons* "mkpart" "primary" "ext2"
(format #f "~aB" offset)
(format #f "~aB" (+ offset (partition-size part)))
(append-map (lambda (flag)
(list "set" (number->string index)
(symbol->string flag) "on"))
(partition-flags part))))
(define (options partitions offset)
(let loop ((partitions partitions)
(offset offset)
(index 1)
(result '()))
(match partitions
(()
(concatenate (reverse result)))
((head tail ...)
(loop tail
;; Leave one sector (512B) between partitions to placate
;; Parted.
(+ offset 512 (partition-size head))
(+ 1 index)
(cons (partition-options head offset index)
result))))))
(format #t "creating partition table with ~a partitions (~a)...\n"
(length partitions)
(string-join (map (compose (cut string-append <> " MiB")
number->string
(lambda (size)
(round (/ size (expt 2. 20))))
partition-size)
partitions)
", "))
(apply invoke "parted" "--script"
device "mklabel" label-type
(options partitions offset))
;; Set the 'device' field of each partition.
(reverse
(fold2 (lambda (part result index)
(values (cons (partition
(inherit part)
(device (string-append device
(number->string index))))
result)
(+ 1 index)))
'()
1
partitions)))
(define MS_BIND 4096) ; <sys/mounts.h> again!
(define* (create-ext-file-system partition type
#:key label uuid (options '()))
"Create an ext-family file system of TYPE on PARTITION. If LABEL is true,
use that as the volume name. If UUID is true, use it as the partition UUID."
(format #t "creating ~a partition... ~@[label: ~s~] ~@[uuid: ~s~]\n"
type label (and uuid (uuid->string uuid)))
(apply invoke (string-append "mkfs." type)
"-F" partition
`(,@(if label
`("-L" ,label)
'())
,@(if uuid
`("-U" ,(uuid->string uuid))
'())
,@options)))
(define* (create-fat-file-system partition
#:key label uuid (options '()))
"Create a FAT file system on PARTITION. The number of File Allocation Tables
will be determined based on file system size. If LABEL is true, use that as the
volume name."
;; FIXME: UUID is ignored!
(format #t "creating FAT partition...\n")
(apply invoke "mkfs.fat" partition
(append (if label `("-n" ,label) '()) options)))
(define* (format-partition partition type
#:key label uuid (options '()))
"Create a file system TYPE on PARTITION. If LABEL is true, use that as the
volume name. Options is a list of command-line options passed to 'mkfs.FS'."
(cond ((string-prefix? "ext" type)
(create-ext-file-system partition type #:label label #:uuid uuid
#:options options))
((or (string-prefix? "fat" type) (string= "vfat" type))
(create-fat-file-system partition #:label label #:uuid uuid
#:options options))
(else (error "Unsupported file system."))))
(define (initialize-partition partition)
"Format PARTITION, a <partition> object with a non-#f 'device' field, mount
it, run its initializer, and unmount it."
(let ((target "/fs"))
(format-partition (partition-device partition)
(partition-file-system partition)
#:label (partition-label partition)
#:uuid (partition-uuid partition)
#:options (partition-file-system-options partition))
(mkdir-p target)
(mount (partition-device partition) target
(partition-file-system partition))
((partition-initializer partition) target)
(umount target)
partition))
(define* (root-partition-initializer #:key (closures '())
copy-closures?
(register-closures? #t)
system-directory
(deduplicate? #t)
(make-device-nodes
make-essential-device-nodes)
(extra-directives '()))
"Return a procedure to initialize a root partition.
If REGISTER-CLOSURES? is true, register all of CLOSURES in the partition's
store. If DEDUPLICATE? is true, then also deduplicate files common to
CLOSURES and the rest of the store when registering the closures. If
COPY-CLOSURES? is true, copy all of CLOSURES to the partition.
SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation.
EXTRA-DIRECTIVES is an optional list of directives to populate the root file
system that is passed to 'populate-root-file-system'."
(lambda (target)
(define target-store
(string-append target (%store-directory)))
(when copy-closures?
;; Populate the store.
(populate-store (map (cut string-append "/xchg/" <>) closures)
target
#:deduplicate? deduplicate?))
;; Populate /dev.
(make-device-nodes target)
;; Optionally, register the inputs in the image's store.
(when register-closures?
(unless copy-closures?
;; XXX: 'register-closure' wants to palpate the things it registers, so
;; bind-mount the store on the target.
(mkdir-p target-store)
(mount (%store-directory) target-store "" MS_BIND))
(display "registering closures...\n")
(for-each (lambda (closure)
(register-closure target
(string-append "/xchg/" closure)))
closures)
(unless copy-closures?
(umount target-store)))
;; Add the non-store directories and files.
(display "populating...\n")
(populate-root-file-system system-directory target
#:extras extra-directives)
;; 'register-closure' resets timestamps and everything, so no need to do it
;; once more in that case.
(unless register-closures?
;; 'reset-timestamps' also resets file permissions; do that everywhere
;; except on /dev so that /dev/null remains writable, etc.
(for-each (lambda (directory)
(reset-timestamps (string-append target "/" directory)))
(scandir target
(match-lambda
((or "." ".." "dev") #f)
(_ #t))))
(reset-timestamps (string-append target "/dev")
#:preserve-permissions? #t))))
(define (register-bootcfg-root target bootcfg)
"On file system TARGET, register BOOTCFG as a GC root."
(let ((directory (string-append target "/var/guix/gcroots")))
(mkdir-p directory)
(symlink bootcfg (string-append directory "/bootcfg"))))
(define* (initialize-hard-disk device
#:key
bootloader-package
bootcfg
bootcfg-location
bootloader-installer
(grub-efi #f)
(partitions '()))
"Initialize DEVICE as a disk containing all the <partition> objects listed
in PARTITIONS, and using BOOTCFG as its bootloader configuration file.
Each partition is initialized by calling its 'initializer' procedure,
passing it a directory name where it is mounted."
(define (partition-bootable? partition)
"Return the first partition found with the boot flag set."
(member 'boot (partition-flags partition)))
(define (partition-esp? partition)
"Return the first EFI System Partition."
(member 'esp (partition-flags partition)))
(let* ((partitions (initialize-partition-table device partitions))
(root (find partition-bootable? partitions))
(esp (find partition-esp? partitions))
(target "/fs"))
(unless root
(error "no bootable partition specified" partitions))
(for-each initialize-partition partitions)
(display "mounting root partition...\n")
(mkdir-p target)
(mount (partition-device root) target (partition-file-system root))
(install-boot-config bootcfg bootcfg-location target)
(when bootloader-installer
(display "installing bootloader...\n")
(bootloader-installer bootloader-package device target))
(when esp
;; Mount the ESP somewhere and install GRUB UEFI image.
(let ((mount-point (string-append target "/boot/efi")))
(display "mounting EFI system partition...\n")
(mkdir-p mount-point)
(mount (partition-device esp) mount-point
(partition-file-system esp))
(display "creating EFI firmware image...")
(install-efi-loader grub-efi mount-point)
(display "done.\n")
(umount mount-point)))
;; Register BOOTCFG as a GC root.
(register-bootcfg-root target bootcfg)
(umount target)))
;;; vm.scm ends here

View File

@ -28,6 +28,7 @@
#:use-module (guix grafts)
#:use-module (guix profiles)
#:use-module (guix packages)
#:autoload (guix transformations) (tunable-package? tuned-package)
#:use-module (guix channels)
#:use-module (guix config)
#:use-module (guix derivations)
@ -107,9 +108,9 @@ building the derivation."
(#:timeout . ,timeout)))
(define* (package-job store job-name package system
#:key cross? target)
#:key cross? target (suffix ""))
"Return a job called JOB-NAME that builds PACKAGE on SYSTEM."
(let ((job-name (string-append job-name "." system)))
(let ((job-name (string-append job-name "." system suffix)))
(parameterize ((%graft? #f))
(let* ((drv (if cross?
(package-cross-derivation store package target system
@ -395,21 +396,39 @@ otherwise use the IMAGE name."
(((_ inputs _ ...) ...)
inputs))))
(%final-inputs)))))
(lambda (store package system)
(lambda* (store package system #:key (suffix ""))
"Return a job for PACKAGE on SYSTEM, or #f if this combination is not
valid."
valid. Append SUFFIX to the job name."
(cond ((member package base-packages)
(package-job store (string-append "base." (job-name package))
package system))
package system #:suffix suffix))
((supported-package? package system)
(let ((drv (package-derivation store package system
#:graft? #f)))
(and (substitutable-derivation? drv)
(package-job store (job-name package)
package system))))
package system #:suffix suffix))))
(else
#f)))))
(define %x86-64-micro-architectures
;; Micro-architectures for which we build tuned variants.
'("westmere" "ivybridge" "haswell" "skylake" "skylake-avx512"))
(define (tuned-package-jobs store package system)
"Return a list of jobs for PACKAGE tuned for SYSTEM's micro-architectures."
(filter-map (lambda (micro-architecture)
(define suffix
(string-append "." micro-architecture))
(package->job store
(tuned-package package micro-architecture)
system
#:suffix suffix))
(match system
("x86_64-linux" %x86-64-micro-architectures)
(_ '()))))
(define (all-packages)
"Return the list of packages to build."
(define (adjust package result)
@ -527,10 +546,16 @@ names."
('all
;; Build everything, including replacements.
(let ((all (all-packages))
(job (lambda (package)
(package->job store package system))))
(jobs (lambda (package)
(match (package->job store package system)
(#f '())
(main-job
(cons main-job
(if (tunable-package? package)
(tuned-package-jobs store package system)
'())))))))
(append
(filter-map job all)
(append-map jobs all)
(cross-jobs store system))))
('core
;; Build core packages only.

View File

@ -25,6 +25,8 @@
#:use-module (gnu services)
#:use-module (guix records)
#:use-module (guix diagnostics)
#:use-module (guix gexp)
#:use-module (guix store)
#:export (home-environment
home-environment?
@ -104,3 +106,11 @@ of HOME-PROVENANCE-SERVICE-TYPE to its services."
(inherit he)
(services (cons (service home-provenance-service-type config-file)
(home-environment-user-services he)))))
(define-gexp-compiler (home-environment-compiler (he <home-environment>)
system target)
((store-lift
(lambda (store)
(run-with-store store (home-environment-derivation he)
#:system system
#:target target)))))

View File

@ -19,6 +19,7 @@
(define-module (gnu home services)
#:use-module (gnu services)
#:use-module ((gnu packages package-management) #:select (guix))
#:use-module (guix channels)
#:use-module (guix monads)
#:use-module (guix store)
@ -28,7 +29,7 @@
#:use-module (guix ui)
#:use-module (guix discovery)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
@ -41,7 +42,9 @@
home-run-on-change-service-type
home-provenance-service-type
fold-home-service-types)
fold-home-service-types
%initialize-gettext)
#:re-export (service
service-type
@ -274,25 +277,38 @@ directory containing FILES."
(description "Configuration files for programs that
will be put in @file{~/.guix-home/files}.")))
(define %initialize-gettext
#~(begin
(bindtextdomain %gettext-domain
(string-append #$guix "/share/locale"))
(textdomain %gettext-domain)
(setlocale LC_ALL "")))
(define (compute-on-first-login-script _ gexps)
(program-file
"on-first-login"
#~(let* ((xdg-runtime-dir (or (getenv "XDG_RUNTIME_DIR")
(format #f "/run/user/~a" (getuid))))
(flag-file-path (string-append
xdg-runtime-dir "/on-first-login-executed"))
(touch (lambda (file-name)
(call-with-output-file file-name (const #t)))))
;; XDG_RUNTIME_DIR dissapears on logout, that means such trick
;; allows to launch on-first-login script on first login only
;; after complete logout/reboot.
(if (file-exists? xdg-runtime-dir)
(unless (file-exists? flag-file-path)
(begin #$@gexps (touch flag-file-path)))
(display "XDG_RUNTIME_DIR doesn't exists, on-first-login script
#~(begin
(use-modules (guix i18n))
#$%initialize-gettext
(let* ((xdg-runtime-dir (or (getenv "XDG_RUNTIME_DIR")
(format #f "/run/user/~a" (getuid))))
(flag-file-path (string-append
xdg-runtime-dir "/on-first-login-executed"))
(touch (lambda (file-name)
(call-with-output-file file-name (const #t)))))
;; XDG_RUNTIME_DIR dissapears on logout, that means such trick
;; allows to launch on-first-login script on first login only
;; after complete logout/reboot.
(if (file-exists? xdg-runtime-dir)
(unless (file-exists? flag-file-path)
(begin #$@gexps (touch flag-file-path)))
;; TRANSLATORS: 'on-first-login' is the name of a service and
;; shouldn't be translated
(display (G_ "XDG_RUNTIME_DIR doesn't exists, on-first-login script
won't execute anything. You can check if xdg runtime directory exists,
XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the
script by running '$HOME/.guix-home/on-first-login'")))))
script by running '$HOME/.guix-home/on-first-login'")))))))
(define (on-first-login-script-entry on-first-login)
"Return, as a monadic value, an entry for the on-first-login script
@ -385,6 +401,10 @@ with one gexp, but many times, and all gexps must be idempotent.")))
(define (compute-on-change-gexp eval-gexps? pattern-gexp-tuples)
#~(begin
(use-modules (guix i18n))
#$%initialize-gettext
(define (equal-regulars? file1 file2)
"Check if FILE1 and FILE2 are bit for bit identical."
(let* ((cmp-binary #$(file-append
@ -449,21 +469,23 @@ with one gexp, but many times, and all gexps must be idempotent.")))
"/gnu/store/non-existing-generation")
"/" (car x)))
(file2 (string-append (getenv "GUIX_NEW_HOME") "/" (car x)))
(_ (format #t "Comparing ~a and\n~10t~a..." file1 file2))
(_ (format #t (G_ "Comparing ~a and\n~10t~a...") file1 file2))
(any-changes? (something-changed? file1 file2))
(_ (format #t " done (~a)\n"
(_ (format #t (G_ " done (~a)\n")
(if any-changes? "changed" "same"))))
(if any-changes? (cadr x) "")))
'#$pattern-gexp-tuples))
(if #$eval-gexps?
(begin
(display "Evaling on-change gexps.\n\n")
;;; TRANSLATORS: 'on-change' is the name of a service type, it
;;; probably shouldn't be translated.
(display (G_ "Evaluating on-change gexps.\n\n"))
(for-each primitive-eval expressions-to-eval)
(display "On-change gexps evaluation finished.\n\n"))
(display (G_ "On-change gexps evaluation finished.\n\n")))
(display "\
On-change gexps won't be evaluated, disabled by service
configuration.\n"))))
On-change gexps won't be evaluated; evaluation has been disabled in the
service configuration"))))
(define home-run-on-change-service-type
(service-type (name 'home-run-on-change)

View File

@ -41,7 +41,9 @@
(use-modules (ice-9 ftw)
(ice-9 curried-definitions)
(ice-9 match)
(srfi srfi-1))
(srfi srfi-1)
(guix i18n))
#$%initialize-gettext
(define ((simplify-file-tree parent) file)
"Convert the result produced by `file-system-tree' to less
verbose and more suitable for further processing format.
@ -139,20 +141,21 @@ appear only after all nested items already listed."
(backup-file
(lambda (path)
(mkdir-p backup-dir)
(format #t "Backing up ~a..." (get-target-path path))
(format #t (G_ "Backing up ~a...") (get-target-path path))
(mkdir-p (dirname (get-backup-path path)))
(rename-file (get-target-path path) (get-backup-path path))
(display " done\n")))
(display (G_ " done\n"))))
(cleanup-symlinks
(lambda ()
(let ((to-delete ((file-tree-traverse #f) old-tree)))
(display
"Cleaning up symlinks from previous home-environment.\n\n")
(G_
"Cleaning up symlinks from previous home-environment.\n\n"))
(map
(match-lambda
(('dir . ".")
(display "Cleanup finished.\n\n"))
(display (G_ "Cleanup finished.\n\n")))
(('dir . path)
(if (and
@ -160,12 +163,13 @@ appear only after all nested items already listed."
(directory? (get-target-path path))
(empty-directory? (get-target-path path)))
(begin
(format #t "Removing ~a..."
(format #t (G_ "Removing ~a...")
(get-target-path path))
(rmdir (get-target-path path))
(display " done\n"))
(display (G_ " done\n")))
(format
#t "Skipping ~a (not an empty directory)... done\n"
#t
(G_ "Skipping ~a (not an empty directory)... done\n")
(get-target-path path))))
(('file . path)
@ -175,12 +179,12 @@ appear only after all nested items already listed."
;; up later during create-symlinks phase.
(if (symlink-to-store? (get-target-path path))
(begin
(format #t "Removing ~a..." (get-target-path path))
(format #t (G_ "Removing ~a...") (get-target-path path))
(delete-file (get-target-path path))
(display " done\n"))
(display (G_ " done\n")))
(format
#t
"Skipping ~a (not a symlink to store)... done\n"
(G_ "Skipping ~a (not a symlink to store)... done\n")
(get-target-path path))))))
to-delete))))
@ -191,9 +195,9 @@ appear only after all nested items already listed."
(match-lambda
(('dir . ".")
(display
"New symlinks to home-environment will be created soon.\n")
(G_ "New symlinks to home-environment will be created soon.\n"))
(format
#t "All conflicting files will go to ~a.\n\n" backup-dir))
#t (G_ "All conflicting files will go to ~a.\n\n") backup-dir))
(('dir . path)
(let ((target-path (get-target-path path)))
@ -203,20 +207,20 @@ appear only after all nested items already listed."
(if (file-exists? target-path)
(format
#t "Skipping ~a (directory already exists)... done\n"
#t (G_ "Skipping ~a (directory already exists)... done\n")
target-path)
(begin
(format #t "Creating ~a..." target-path)
(format #t (G_ "Creating ~a...") target-path)
(mkdir target-path)
(display " done\n")))))
(display (G_ " done\n"))))))
(('file . path)
(when (file-exists? (get-target-path path))
(backup-file path))
(format #t "Symlinking ~a -> ~a..."
(format #t (G_ "Symlinking ~a -> ~a...")
(get-target-path path) (get-source-path path))
(symlink (get-source-path path) (get-target-path path))
(display " done\n")))
(display (G_ " done\n"))))
to-create)))))
(when old-tree
@ -227,7 +231,7 @@ appear only after all nested items already listed."
(symlink new-home new-he-path)
(rename-file new-he-path he-path)
(display " done\nFinished updating symlinks.\n\n")))))
(display (G_" done\nFinished updating symlinks.\n\n"))))))
(define (update-symlinks-gexp _)

View File

@ -42,6 +42,8 @@
image-partitions
image-compression?
image-volatile-root?
image-shared-store?
image-shared-network?
image-substitutable?
image-type
@ -95,6 +97,10 @@
(default #t))
(volatile-root? image-volatile-root? ;boolean
(default #t))
(shared-store? image-shared-store? ;boolean
(default #f))
(shared-network? image-shared-network? ;boolean
(default #f))
(substitutable? image-substitutable? ;boolean
(default #t)))

View File

@ -44,6 +44,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages package-management)
#:use-module (gnu packages tls)
#:use-module (gnu packages xorg)
#:use-module (gnu system locale)
#:use-module (ice-9 match)
@ -351,7 +352,7 @@ selected keymap."
;; packages …), etc. modules.
(with-extensions (list guile-gcrypt guile-newt
guile-parted guile-bytestructures
guile-json-3 guile-git guix)
guile-json-3 guile-git guix gnutls)
(with-imported-modules `(,@(source-module-closure
`(,@modules
(gnu services herd)

View File

@ -105,36 +105,6 @@ USERS."
(write-passwd password (string-append etc "/passwd"))
(write-shadow shadow (string-append etc "/shadow")))
(define* (kill-cow-users cow-path #:key (spare '("udevd")))
"Kill all processes that have references to the given COW-PATH in their
'maps' file. The process whose names are in SPARE list are spared."
(define %not-nul
(char-set-complement (char-set #\nul)))
(let ((pids
(filter-map (lambda (pid)
(false-if-exception
(call-with-input-file
(string-append "/proc/" pid "/maps")
(lambda (port)
(and (string-contains (get-string-all port)
cow-path)
(string->number pid))))))
(scandir "/proc" string->number))))
(for-each (lambda (pid)
;; cmdline does not always exist.
(false-if-exception
(call-with-input-file
(string-append "/proc/" (number->string pid) "/cmdline")
(lambda (port)
(match (string-tokenize (read-string port) %not-nul)
((argv0 _ ...)
(unless (member (basename argv0) spare)
(syslog "Killing process ~a (~a)~%" pid argv0)
(kill pid SIGKILL)))
(_ #f))))))
pids)))
(define (call-with-mnt-container thunk)
"This is a variant of call-with-container. Run THUNK in a new container
process, within a separate MNT namespace. The container is not jailed so that
@ -149,6 +119,28 @@ it can interact with the rest of the system."
(match (waitpid pid)
((_ . status) status))))
(define (install-locale locale)
"Install the given LOCALE or the en_US.utf8 locale as a fallback."
(let ((supported? (false-if-exception
(setlocale LC_ALL locale))))
(if supported?
(begin
(syslog "install supported locale ~a~%." locale)
(setenv "LC_ALL" locale))
(begin
;; If the selected locale is not supported, install a default UTF-8
;; locale. This is required to copy some files with UTF-8
;; characters, in the nss-certs package notably. Set LANGUAGE
;; anyways, to have translated messages if possible.
(syslog "~a locale is not supported, installating en_US.utf8 \
locale instead.~%" locale)
(setlocale LC_ALL "en_US.utf8")
(setenv "LC_ALL" "en_US.utf8")
(setenv "LANGUAGE"
(string-take locale
(or (string-index locale #\_)
(string-length locale))))))))
(define* (install-system locale #:key (users '()))
"Create /etc/shadow and /etc/passwd on the installation target for USERS.
Start COW-STORE service on target directory and launch guix install command in
@ -199,6 +191,10 @@ or #f. Return #t on success and #f on failure."
(lambda ()
(dynamic-wind
(lambda ()
;; Install the locale before mounting the cow-store, otherwise
;; the loaded cow-store locale files will prevent umounting.
(install-locale locale)
;; Save the database, so that it can be restored once the
;; cow-store is umounted.
(copy-file database-file saved-database)
@ -221,9 +217,8 @@ or #f. Return #t on success and #f on failure."
(lambda ()
(with-error-to-file "/dev/console"
(lambda ()
(run-command install-command
#:locale locale)))))
(run-command install-command #:locale locale))))
(run-command install-command)))))
(run-command install-command))))
(lambda ()
;; Restart guix-daemon so that it does no keep the MNT namespace
;; alive.

View File

@ -30,6 +30,8 @@
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
#:use-module (web client)
#:use-module (web response)
#:use-module (newt)
#:export (run-network-page))
@ -119,8 +121,23 @@ network devices were found. Do you want to continue anyway?"))
(define (wait-service-online)
"Display a newt scale until connman detects an Internet access. Do
FULL-VALUE tentatives, spaced by 1 second."
(define (ci-available?)
(dynamic-wind
(lambda ()
(sigaction SIGALRM
(lambda _ #f))
(alarm 3))
(lambda ()
(false-if-exception
(= (response-code
(http-request "https://ci.guix.gnu.org"))
200)))
(lambda ()
(alarm 0))))
(define (online?)
(or (connman-online?)
(or (and (connman-online?)
(ci-available?))
(file-exists? "/tmp/installer-assume-online")))
(let* ((full-value 5))
@ -137,7 +154,7 @@ FULL-VALUE tentatives, spaced by 1 second."
(unless (online?)
(run-error-page
(G_ "The selected network does not provide access to the \
Internet, please try again.")
Internet and the Guix substitute server, please try again.")
(G_ "Connection error"))
(raise
(condition

View File

@ -83,7 +83,8 @@ DEVICES list."
devices))
(let* ((result (run-listbox-selection-page
#:info-text (G_ "Please select a disk.")
#:info-text (G_ "Please select a \
disk. The installation device as well as the small devices are filtered.")
#:title (G_ "Disk")
#:listbox-items (device-items)
#:listbox-item->text cdr
@ -792,13 +793,13 @@ by pressing the Exit button.~%~%")))
result-user-partitions)))))
(init-parted)
(let* ((non-install-devices (non-install-devices))
(user-partitions (run-page non-install-devices))
(let* ((eligible-devices (eligible-devices))
(user-partitions (run-page eligible-devices))
(user-partitions-with-pass (prompt-luks-passwords
user-partitions))
(form (draw-formatting-page user-partitions)))
;; Make sure the disks are not in use before proceeding to formatting.
(free-parted non-install-devices)
(free-parted eligible-devices)
(format-user-partitions user-partitions-with-pass)
(syslog "formatted ~a user partitions~%"
(length user-partitions-with-pass))

View File

@ -3,6 +3,7 @@
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@ -68,18 +69,16 @@ system.")
(condition
(&installer-step-abort)))))))
(define (run-other-services-cbt-page)
"Run a page allowing the user to select other services."
(define (run-printing-services-cbt-page)
"Run a page allowing the user to select document services such as CUPS."
(let ((items (filter (lambda (service)
(not (member (system-service-type service)
'(desktop
network-management
networking))))
(eq? 'document
(system-service-type service)))
%system-services)))
(run-checkbox-tree-page
#:info-text (G_ "You can now select other services to run on your \
#:info-text (G_ "You can now select the CUPS printing service to run on your \
system.")
#:title (G_ "Other services")
#:title (G_ "Printing and document services")
#:items items
#:selection (map system-service-recommended? items)
#:item->text (compose G_ system-service-name)
@ -90,6 +89,27 @@ system.")
(condition
(&installer-step-abort)))))))
(define (run-console-services-cbt-page)
"Run a page to select various system adminstration services for non-graphical
systems."
(let ((items (filter (lambda (service)
(eq? 'administration
(system-service-type service)))
%system-services)))
(run-checkbox-tree-page
#:title (G_ "Console services")
#:info-text (G_ "Select miscellaneous services to run on your \
non-graphical system.")
#:items items
#:selection (map system-service-recommended? items)
#:item->text (compose G_ system-service-name)
#:checkbox-tree-height 5
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort)))))))
(define (run-network-management-page)
"Run a page to select among several network management methods."
(let ((title (G_ "Network management")))
@ -121,6 +141,7 @@ client may be enough for a server.")
(append desktop
(run-networking-cbt-page)
(if (null? desktop)
(list (run-network-management-page))
(cons (run-network-management-page)
(run-console-services-cbt-page))
'())
(run-other-services-cbt-page))))
(run-printing-services-cbt-page))))

View File

@ -81,7 +81,7 @@
with-delay-device-in-use?
force-device-sync
non-install-devices
eligible-devices
partition-user-type
user-fs-type-name
partition-filesystem-user-type
@ -356,28 +356,49 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation."
(and=> (uuid root)
find-partition-by-uuid)))))
(define (non-install-devices)
"Return all the available devices, except the install device."
;; Minimal installation device size.
(define %min-device-size
(* 2 GIBIBYTE-SIZE)) ;2GiB
(define (eligible-devices)
"Return all the available devices except the install device and the devices
which are smaller than %MIN-DEVICE-SIZE."
(define the-installer-root-partition-path
(installer-root-partition-path))
(define (small-device? device)
(let ((length (device-length device))
(sector-size (device-sector-size device)))
(and (< (* length sector-size) %min-device-size)
(syslog "~a is not eligible because it is smaller than ~a.~%"
(device-path device)
(unit-format-custom-byte device
%min-device-size
UNIT-GIGABYTE)))))
;; Read partition table of device and compare each path to the one
;; we're booting from to determine if it is the installation
;; device.
(define (installation-device? device)
;; When using CDROM based installation, the root partition path may be the
;; device path.
(or (string=? the-installer-root-partition-path
(device-path device))
(let ((disk (disk-new device)))
(and disk
(any (lambda (partition)
(string=? the-installer-root-partition-path
(partition-get-path partition)))
(disk-partitions disk))))))
(and (or (string=? the-installer-root-partition-path
(device-path device))
(let ((disk (disk-new device)))
(and disk
(any (lambda (partition)
(string=? the-installer-root-partition-path
(partition-get-path partition)))
(disk-partitions disk)))))
(syslog "~a is not eligible because it is the installation device.~%"
(device-path device))))
(remove installation-device? (devices)))
(remove
(lambda (device)
(or (installation-device? device)
(small-device? device)))
(devices)))
;;

View File

@ -3,6 +3,7 @@
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@ -104,6 +105,17 @@
(packages '((specification->package "nss-certs")))
(recommended? #t))
;; Miscellaneous system administration services.
(system-service
(name (G_ "Network time service (NTP), to set the clock automatically"))
(type 'administration)
(recommended? #t)
(snippet '((service ntp-service-type))))
(system-service
(name (G_ "GPM mouse daemon, to use the mouse on the console"))
(type 'administration)
(snippet '((service gpm-service-type))))
;; Network connectivity management.
(system-service
(name (G_ "NetworkManager network connection manager"))

View File

@ -221,7 +221,11 @@ ROOT-PASSWORD, and USERS."
(choose-network-management-tool?
(lambda (service)
(string-contains service "DHCP")))
(choose-misc-service?
(lambda (service)
(string-contains service "NTP")))
(choose-other-service? (const #f)))
"Converse over PORT to choose services."
(define desktop-environments '())
@ -243,7 +247,12 @@ ROOT-PASSWORD, and USERS."
(null? desktop-environments)
(find choose-network-management-tool? services))
((checkbox-list (title "Other services") (text _)
((checkbox-list (title "Console services") (text _)
(items ,services))
(null? desktop-environments)
(filter choose-misc-service? services))
((checkbox-list (title "Printing and document services") (text _)
(items ,services))
(filter choose-other-service? services))))

View File

@ -74,9 +74,9 @@ number. If no percentage is found, return #f"
(and result
(string->number (match:substring result 1)))))
(define* (run-command command #:key locale)
"Run COMMAND, a list of strings, in the given LOCALE. Return true if
COMMAND exited successfully, #f otherwise."
(define* (run-command command)
"Run COMMAND, a list of strings. Return true if COMMAND exited
successfully, #f otherwise."
(define env (environ))
(define (pause)
@ -90,18 +90,6 @@ COMMAND exited successfully, #f otherwise."
(setenv "PATH" "/run/current-system/profile/bin")
(when locale
(let ((supported? (false-if-exception
(setlocale LC_ALL locale))))
;; If LOCALE is not supported, then set LANGUAGE, which might at
;; least give us translated messages.
(if supported?
(setenv "LC_ALL" locale)
(setenv "LANGUAGE"
(string-take locale
(or (string-index locale #\_)
(string-length locale)))))))
(guard (c ((invoke-error? c)
(newline)
(format (current-error-port)

View File

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2021 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2012-2021, 2021-2022 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Andreas Enge <andreas@enge.fr>
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
@ -19,8 +19,8 @@
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
# Copyright © 2018, 2019, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
# Copyright © 2018, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
# Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2018, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
# Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
@ -31,7 +31,7 @@
# Copyright © 2020 R Veera Kumar <vkor@vkten.in>
# Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
# Copyright © 2020 Michael Rohleder <mike@rohleder.de>
# Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
# Copyright © 2020, 2021, 2022 Felix Gruber <felgru@posteo.net>
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
# Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
@ -47,6 +47,8 @@
# Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
# Copyright © 2021 Andrew Tropin <andrew@trop.in>
# Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
# Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
# Copyright © 2022 Remco van 't Veer <remco@remworks.net>
#
# This file is part of GNU Guix.
#
@ -157,6 +159,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/configuration-management.scm \
%D%/packages/conky.scm \
%D%/packages/connman.scm \
%D%/packages/containers.scm \
%D%/packages/convmv.scm \
%D%/packages/cook.scm \
%D%/packages/coq.scm \
@ -412,6 +415,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/music.scm \
%D%/packages/musl.scm \
%D%/packages/mtools.scm \
%D%/packages/myrddin.scm \
%D%/packages/nano.scm \
%D%/packages/ncdu.scm \
%D%/packages/ncurses.scm \
@ -425,6 +429,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/ninja.scm \
%D%/packages/node.scm \
%D%/packages/node-xyz.scm \
%D%/packages/notcurses.scm \
%D%/packages/noweb.scm \
%D%/packages/nss.scm \
%D%/packages/ntp.scm \
@ -718,7 +723,6 @@ GNU_SYSTEM_MODULES = \
%D%/build/linux-modules.scm \
%D%/build/marionette.scm \
%D%/build/secret-service.scm \
%D%/build/vm.scm \
\
%D%/tests.scm \
%D%/tests/audio.scm \
@ -855,8 +859,6 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
%D%/packages/patches/atlas-gfortran-compat.patch \
%D%/packages/patches/audacity-build-with-system-portaudio.patch \
%D%/packages/patches/audacity-add-include.patch \
%D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \
%D%/packages/patches/audiofile-fix-sign-conversion.patch \
%D%/packages/patches/audiofile-CVE-2015-7747.patch \
@ -899,7 +901,6 @@ dist_patch_DATA = \
%D%/packages/patches/bsd-games-prevent-name-collisions.patch \
%D%/packages/patches/bsd-games-stdio.h.patch \
%D%/packages/patches/beancount-disable-googleapis-fonts.patch \
%D%/packages/patches/behave-skip-a-couple-of-tests.patch \
%D%/packages/patches/beignet-correct-file-names.patch \
%D%/packages/patches/bidiv-update-fribidi.patch \
%D%/packages/patches/binutils-2.37-file-descriptor-leak.patch \
@ -907,18 +908,15 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/blender-2.79-gcc8.patch \
%D%/packages/patches/blender-2.79-gcc9.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%D%/packages/patches/blender-2.79-oiio2.patch \
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
%D%/packages/patches/blender-2.79-python-3.8-fix.patch \
%D%/packages/patches/binutils-CVE-2021-45078.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
%D%/packages/patches/cabal-install-base16-bytestring1.0.patch \
%D%/packages/patches/cabal-install-ghc8.10.patch \
%D%/packages/patches/cairo-CVE-2018-19876.patch \
%D%/packages/patches/cairo-CVE-2020-35492.patch \
%D%/packages/patches/calibre-fix-zeroconf.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-sqlite.patch \
%D%/packages/patches/calibre-remove-test-unrar.patch \
@ -932,7 +930,6 @@ dist_patch_DATA = \
%D%/packages/patches/ceph-boost-compat.patch \
%D%/packages/patches/ceph-rocksdb-compat.patch \
%D%/packages/patches/cheese-vala-update.patch \
%D%/packages/patches/chez-scheme-build-util-paths-backport.patch \
%D%/packages/patches/chmlib-inttypes.patch \
%D%/packages/patches/cl-asdf-config-directories.patch \
%D%/packages/patches/clamav-config-llvm-libs.patch \
@ -947,6 +944,7 @@ dist_patch_DATA = \
%D%/packages/patches/clang-10.0-libc-search-path.patch \
%D%/packages/patches/clang-11.0-libc-search-path.patch \
%D%/packages/patches/clang-12.0-libc-search-path.patch \
%D%/packages/patches/clang-13.0-libc-search-path.patch \
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \
%D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \
@ -962,6 +960,7 @@ dist_patch_DATA = \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
%D%/packages/patches/combinatorial-blas-awpm.patch \
%D%/packages/patches/combinatorial-blas-io-fix.patch \
%D%/packages/patches/cool-retro-term-wctype.patch \
%D%/packages/patches/coreutils-gnulib-tests.patch \
%D%/packages/patches/coq-fix-envvars.patch \
%D%/packages/patches/coreutils-ls.patch \
@ -984,6 +983,8 @@ dist_patch_DATA = \
%D%/packages/patches/dbus-c++-gcc-compat.patch \
%D%/packages/patches/dbus-c++-threading-mutex.patch \
%D%/packages/patches/dbxfs-remove-sentry-sdk.patch \
%D%/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch \
%D%/packages/patches/dealii-fix-sundials.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/dee-vapi.patch \
@ -1001,7 +1002,6 @@ dist_patch_DATA = \
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.patch \
%D%/packages/patches/dune-istl-2.7-fix-non-mpi-tests.patch \
%D%/packages/patches/dvd+rw-tools-add-include.patch \
%D%/packages/patches/dynaconf-unvendor-deps.patch \
%D%/packages/patches/ecl-16-format-directive-limit.patch \
@ -1030,6 +1030,8 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/enjarify-setup-py.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
%D%/packages/patches/eog-update-libportal-usage.patch \
%D%/packages/patches/epiphany-update-libportal-usage.patch \
%D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/esmtp-add-lesmtp.patch \
%D%/packages/patches/eudev-rules-directory.patch \
@ -1047,6 +1049,7 @@ dist_patch_DATA = \
%D%/packages/patches/fasthenry-spSolve.patch \
%D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fbreader-curl-7.62.patch \
%D%/packages/patches/fifengine-boost-compat.patch \
%D%/packages/patches/fifengine-swig-compat.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
%D%/packages/patches/fifo-map-remove-catch.hpp.patch \
@ -1179,10 +1182,13 @@ dist_patch_DATA = \
%D%/packages/patches/gmp-faulty-test.patch \
%D%/packages/patches/gnash-fix-giflib-version.patch \
%D%/packages/patches/gnome-boxes-add-guix-logo.patch \
%D%/packages/patches/gnome-builder-update-libportal.patch \
%D%/packages/patches/gnome-control-center-libexecdir.patch \
%D%/packages/patches/gnome-online-miners-tracker-3.patch \
%D%/packages/patches/gnome-screenshot-meson-0.60.patch \
%D%/packages/patches/gnome-settings-daemon-gc.patch \
%D%/packages/patches/gnome-session-support-elogind.patch \
%D%/packages/patches/gnome-todo-libportal.patch \
%D%/packages/patches/gnome-tweaks-search-paths.patch \
%D%/packages/patches/gnupg-default-pinentry.patch \
%D%/packages/patches/gnupg-1-build-with-gcc10.patch \
@ -1197,6 +1203,7 @@ dist_patch_DATA = \
%D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
%D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
%D%/packages/patches/go-skip-gc-test.patch \
%D%/packages/patches/gpaste-fix-paths.patch \
%D%/packages/patches/gpm-glibc-2.26.patch \
%D%/packages/patches/gpodder-disable-updater.patch \
%D%/packages/patches/gpsbabel-fix-i686-test.patch \
@ -1234,8 +1241,9 @@ dist_patch_DATA = \
%D%/packages/patches/gtk2-theme-paths.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
%D%/packages/patches/gtk-introspection-test.patch \
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
%D%/packages/patches/gzdoom-search-in-installed-share.patch \
@ -1255,7 +1263,9 @@ dist_patch_DATA = \
%D%/packages/patches/hedgewars-network-bsd.patch \
%D%/packages/patches/helm-fix-gcc-9-build.patch \
%D%/packages/patches/http-parser-CVE-2020-8287.patch \
%D%/packages/patches/htslib-for-stringtie.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hueplusplus-mbedtls.patch \
%D%/packages/patches/hurd-cross.patch \
%D%/packages/patches/hurd-xattr.patch \
%D%/packages/patches/hydra-disable-darcs-test.patch \
@ -1265,7 +1275,6 @@ dist_patch_DATA = \
%D%/packages/patches/icecat-use-older-reveal-hidden-html.patch \
%D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \
%D%/packages/patches/icecat-use-system-media-libs.patch \
%D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch \
%D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch\
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
@ -1289,7 +1298,7 @@ dist_patch_DATA = \
%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/jsoncpp-pkg-config-version.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \
%D%/packages/patches/jami-fix-crash-on-quit.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 \
@ -1424,6 +1433,7 @@ dist_patch_DATA = \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
%D%/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/linuxdcpp-openssl-1.1.patch \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
%D%/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch \
@ -1444,6 +1454,8 @@ dist_patch_DATA = \
%D%/packages/patches/lua51-liblua-so.patch \
%D%/packages/patches/lua51-pkgconfig.patch \
%D%/packages/patches/lua-liblua-so.patch \
%D%/packages/patches/lua-5.4-pkgconfig.patch \
%D%/packages/patches/lua-5.4-liblua-so.patch \
%D%/packages/patches/luajit-no_ldconfig.patch \
%D%/packages/patches/luit-posix.patch \
%D%/packages/patches/lvm2-static-link.patch \
@ -1463,6 +1475,7 @@ dist_patch_DATA = \
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
%D%/packages/patches/libmemcached-build-with-gcc7.patch \
%D%/packages/patches/libmhash-hmac-fix-uaf.patch \
%D%/packages/patches/libsigrokdecode-python3.9-fix.patch \
%D%/packages/patches/mercurial-hg-extension-path.patch \
%D%/packages/patches/mesa-opencl-all-targets.patch \
%D%/packages/patches/mesa-skip-tests.patch \
@ -1502,6 +1515,7 @@ dist_patch_DATA = \
%D%/packages/patches/musl-cross-locale.patch \
%D%/packages/patches/mutt-store-references.patch \
%D%/packages/patches/m4-gnulib-libio.patch \
%D%/packages/patches/nautilus-add-libportal-gtk3.patch \
%D%/packages/patches/ncompress-fix-softlinks.patch \
%D%/packages/patches/netcdf-date-time.patch \
%D%/packages/patches/netpbm-CVE-2017-2586.patch \
@ -1513,6 +1527,7 @@ dist_patch_DATA = \
%D%/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch \
%D%/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch \
%D%/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch \
%D%/packages/patches/nix-dont-build-html-doc.diff \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/ngless-unliftio.patch \
@ -1549,14 +1564,13 @@ dist_patch_DATA = \
%D%/packages/patches/onnx-skip-model-downloads.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \
%D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openjdk-14-builtins.patch \
%D%/packages/patches/openmpi-mtl-priorities.patch \
%D%/packages/patches/openssh-hurd.patch \
%D%/packages/patches/openresolv-restartcmd-guix.patch \
%D%/packages/patches/openrgb-unbundle-hueplusplus.patch \
%D%/packages/patches/opensles-add-license-file.patch \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \
@ -1572,9 +1586,12 @@ dist_patch_DATA = \
%D%/packages/patches/p7zip-remove-unused-code.patch \
%D%/packages/patches/pam-krb5-CVE-2020-10595.patch \
%D%/packages/patches/pango-skip-libthai-test.patch \
%D%/packages/patches/passwordsafe-meson-remove-extra-argument.patch \
%D%/packages/patches/password-store-tree-compat.patch \
%D%/packages/patches/pciutils-hurd-configure.patch \
%D%/packages/patches/pciutils-hurd-fix.patch \
%D%/packages/patches/pitivi-fix-build-with-meson-0.60.patch \
%D%/packages/patches/pjproject-install-libpjsua2.patch \
%D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/pthreadpool-system-libraries.patch \
@ -1591,6 +1608,7 @@ dist_patch_DATA = \
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
%D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/sssd-collision-with-external-nss-symbol.patch \
%D%/packages/patches/sssd-fix-samba-4.15.3.patch \
%D%/packages/patches/strace-readlink-tests.patch \
%D%/packages/patches/sunxi-tools-remove-sys-io.patch \
%D%/packages/patches/p11-kit-hurd.patch \
@ -1622,8 +1640,6 @@ dist_patch_DATA = \
%D%/packages/patches/pingus-sdl-libs-config.patch \
%D%/packages/patches/pipewire-0.2.7-fno-common.patch \
%D%/packages/patches/pixman-CVE-2016-5296.patch \
%D%/packages/patches/pjproject-correct-the-cflags-field.patch \
%D%/packages/patches/pjproject-fix-pkg-config-ldflags.patch \
%D%/packages/patches/plink-1.07-unclobber-i.patch \
%D%/packages/patches/plink-endian-detection.patch \
%D%/packages/patches/plib-CVE-2011-4620.patch \
@ -1644,6 +1660,7 @@ dist_patch_DATA = \
%D%/packages/patches/pulseaudio-fix-mult-test.patch \
%D%/packages/patches/pulseaudio-longer-test-timeout.patch \
%D%/packages/patches/pulseview-qt515-compat.patch \
%D%/packages/patches/pulseview-glib-2.68.patch \
%D%/packages/patches/pybugz-encode-error.patch \
%D%/packages/patches/pybugz-stty.patch \
%D%/packages/patches/pygpgme-disable-problematic-tests.patch \
@ -1675,8 +1692,10 @@ dist_patch_DATA = \
%D%/packages/patches/python-fixtures-remove-monkeypatch-test.patch \
%D%/packages/patches/python-flask-restful-werkzeug-compat.patch \
%D%/packages/patches/python-keras-integration-test.patch \
%D%/packages/patches/python-pdoc3-tests.patch \
%D%/packages/patches/python-peachpy-determinism.patch \
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
%D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
%D%/packages/patches/python-pyflakes-test-location.patch \
%D%/packages/patches/python-flint-includes.patch \
@ -1693,7 +1712,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-pycrypto-time-clock.patch \
%D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \
%D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
%D%/packages/patches/python-pydot-regression-test.patch \
%D%/packages/patches/python2-pygobject-2-deprecation.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
%D%/packages/patches/python-pytest-asyncio-python-3.8.patch \
@ -1708,7 +1726,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-waitress-fix-tests.patch \
%D%/packages/patches/python-werkzeug-tests.patch \
%D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-CVE-2021-20203.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \
%D%/packages/patches/qemu-glibc-2.30.patch \
%D%/packages/patches/qemu-fix-agent-paths.patch \
@ -1720,13 +1737,13 @@ dist_patch_DATA = \
%D%/packages/patches/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \
%D%/packages/patches/quassel-qt-514-compat.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/qtwebkit-pbutils-include.patch \
%D%/packages/patches/qtwebkit-fix-building-with-bison-3.7.patch \
%D%/packages/patches/qtwebkit-fix-building-with-python-3.9.patch \
%D%/packages/patches/qtwebkit-fix-building-with-icu-68.patch \
%D%/packages/patches/qtwebkit-fix-building-with-glib-2.68.patch \
%D%/packages/patches/ragel-char-signedness.patch \
%D%/packages/patches/randomjungle-disable-static-build.patch \
%D%/packages/patches/range-v3-build-with-gcc10.patch \
%D%/packages/patches/rapicorn-isnan.patch \
@ -1786,10 +1803,11 @@ dist_patch_DATA = \
%D%/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch \
%D%/packages/patches/sendgmail-remove-domain-restriction.patch \
%D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/libsequoia-fix-ffi-Makefile.patch \
%D%/packages/patches/libsequoia-remove-store.patch \
%D%/packages/patches/serf-python3.patch \
%D%/packages/patches/shakespeare-spl-fix-grammar.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \
%D%/packages/patches/shadow-hurd-pctrl.patch \
%D%/packages/patches/shishi-fix-libgcrypt-detection.patch \
%D%/packages/patches/slim-session.patch \
%D%/packages/patches/slim-config.patch \
@ -1829,6 +1847,7 @@ dist_patch_DATA = \
%D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-fix-autotest.patch \
%D%/packages/patches/teensy-loader-cli-help.patch \
%D%/packages/patches/tensorflow-c-api-fix.patch \
%D%/packages/patches/texinfo-5-perl-compat.patch \
%D%/packages/patches/telegram-purple-adjust-test.patch \
%D%/packages/patches/texi2html-document-encoding.patch \
@ -1843,9 +1862,12 @@ dist_patch_DATA = \
%D%/packages/patches/tk-find-library.patch \
%D%/packages/patches/tla2tools-build-xml.patch \
%D%/packages/patches/tlf-support-hamlib-4.2+.patch \
gnu/packages/patches/tootle-glib-object-naming.patch \
gnu/packages/patches/tootle-reason-phrase.patch \
%D%/packages/patches/tor-sandbox-i686.patch \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/transmission-honor-localedir.patch \
%D%/packages/patches/tremc-fix-decodestring.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
%D%/packages/patches/trytond-add-guix_trytond_path.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \
@ -1863,6 +1885,7 @@ dist_patch_DATA = \
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
%D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch \
%D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
%D%/packages/patches/ungoogled-chromium-system-ffmpeg.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 \
@ -1923,15 +1946,15 @@ dist_patch_DATA = \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
%D%/packages/patches/wicd-urwid-1.3.patch \
%D%/packages/patches/wicd-wpa2-ttls.patch \
%D%/packages/patches/widelands-add-missing-map-include.patch \
%D%/packages/patches/widelands-system-wide_minizip.patch \
%D%/packages/patches/wmctrl-64-fix.patch \
%D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \
%D%/packages/patches/wordnet-CVE-2008-2149.patch \
%D%/packages/patches/wordnet-CVE-2008-3908-pt1.patch \
%D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \
%D%/packages/patches/wpa-supplicant-CVE-2021-27803.patch \
%D%/packages/patches/wpa-supplicant-CVE-2021-30004.patch \
%D%/packages/patches/x265-arm-flags.patch \
%D%/packages/patches/xdg-desktop-portal-wlr-harcoded-length.patch\
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
%D%/packages/patches/xf86-video-mach64-bool-to-boolean.patch \
%D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \
@ -1945,12 +1968,14 @@ dist_patch_DATA = \
%D%/packages/patches/xfce4-settings-defaults.patch \
%D%/packages/patches/xgboost-use-system-dmlc-core.patch \
%D%/packages/patches/xmonad-dynamic-linking.patch \
%D%/packages/patches/xmonad-next-dynamic-linking.patch \
%D%/packages/patches/xnnpack-system-libraries.patch \
%D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \
%D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.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/xpra-4.2-systemd-run.patch \
%D%/packages/patches/xpra-4.2-install_libs.patch \
%D%/packages/patches/xsane-fix-memory-leak.patch \
%D%/packages/patches/xsane-fix-pdf-floats.patch \
%D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -26,6 +26,7 @@
#:use-module (gnu system uuid)
#:use-module ((gnu services) #:select (sexp->system-provenance))
#:use-module (guix diagnostics)
#:use-module (guix memoization)
#:use-module (guix gexp)
#:use-module (guix i18n)
#:use-module (guix modules)
@ -83,6 +84,7 @@
(define-record-type* <machine-ssh-configuration> machine-ssh-configuration
make-machine-ssh-configuration
machine-ssh-configuration?
this-machine-ssh-configuration
(host-name machine-ssh-configuration-host-name) ; string
(system machine-ssh-configuration-system) ; string
(build-locally? machine-ssh-configuration-build-locally? ; boolean
@ -91,6 +93,8 @@
(default #t))
(allow-downgrades? machine-ssh-configuration-allow-downgrades? ; boolean
(default #f))
(safety-checks? machine-ssh-configuration-safety-checks? ;boolean
(default #t))
(port machine-ssh-configuration-port ; integer
(default 22))
(user machine-ssh-configuration-user ; string
@ -98,29 +102,41 @@
(identity machine-ssh-configuration-identity ; path to a private key
(default #f))
(session machine-ssh-configuration-session ; session
(default #f))
(thunked)
(default
;; By default, open the session once and cache it.
(open-machine-ssh-session* this-machine-ssh-configuration)))
(host-key machine-ssh-configuration-host-key ; #f | string
(default #f)))
(define (open-machine-ssh-session config)
"Open an SSH session for CONFIG, a <machine-ssh-configuration> record."
(let ((host-name (machine-ssh-configuration-host-name config))
(user (machine-ssh-configuration-user config))
(port (machine-ssh-configuration-port config))
(identity (machine-ssh-configuration-identity config))
(host-key (machine-ssh-configuration-host-key config)))
(unless host-key
(warning (G_ "<machine-ssh-configuration> without a 'host-key' \
is deprecated~%")))
(open-ssh-session host-name
#:user user
#:port port
#:identity identity
#:host-key host-key)))
(define open-machine-ssh-session*
(mlambdaq (config)
"Memoizing variant of 'open-machine-ssh-session'."
(open-machine-ssh-session config)))
(define (machine-ssh-session machine)
"Return the SSH session that was given in MACHINE's configuration, or create
one from the configuration's parameters if one was not provided."
(maybe-raise-unsupported-configuration-error machine)
(let ((config (machine-configuration machine)))
(or (machine-ssh-configuration-session config)
(let ((host-name (machine-ssh-configuration-host-name config))
(user (machine-ssh-configuration-user config))
(port (machine-ssh-configuration-port config))
(identity (machine-ssh-configuration-identity config))
(host-key (machine-ssh-configuration-host-key config)))
(unless host-key
(warning (G_ "<machine-ssh-configuration> without a 'host-key' \
is deprecated~%")))
(open-ssh-session host-name
#:user user
#:port port
#:identity identity
#:host-key host-key)))))
(open-machine-ssh-session config))))
;;;
@ -226,18 +242,21 @@ exist on the machine."
(raise (formatted-message (G_ "no file system with UUID '~a'")
(uuid->string (file-system-device fs)))))))
(append (map check-literal-file-system
(filter (lambda (fs)
(string? (file-system-device fs)))
file-systems))
(map check-labeled-file-system
(filter (lambda (fs)
(file-system-label? (file-system-device fs)))
file-systems))
(map check-uuid-file-system
(filter (lambda (fs)
(uuid? (file-system-device fs)))
file-systems))))
(if (machine-ssh-configuration-safety-checks?
(machine-configuration machine))
(append (map check-literal-file-system
(filter (lambda (fs)
(string? (file-system-device fs)))
file-systems))
(map check-labeled-file-system
(filter (lambda (fs)
(file-system-label? (file-system-device fs)))
file-systems))
(map check-uuid-file-system
(filter (lambda (fs)
(uuid? (file-system-device fs)))
file-systems)))
'()))
(define (machine-check-initrd-modules machine)
"Return a list of <remote-assertion> that raise a '&message' error condition
@ -277,7 +296,10 @@ not available in the initrd."
(file-system-device fs)
missing)))))
(map missing-modules file-systems))
(if (machine-ssh-configuration-safety-checks?
(machine-configuration machine))
(map missing-modules file-systems)
'()))
(define* (machine-check-forward-update machine)
"Check whether we are making a forward update for MACHINE. Depending on its

View File

@ -1,5 +1,5 @@
;;; 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-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
@ -51,6 +51,7 @@
%auxiliary-files-path
%package-module-path
%default-package-module-path
cache-is-authoritative?
fold-packages
fold-available-packages

View File

@ -78,14 +78,9 @@
"--disable-static"
"--enable-fake")))
(native-inputs
`(("latex2html" ,latex2html)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("swig" ,swig)))
(list latex2html pkg-config python-wrapper swig))
(inputs
`(("glib" ,glib)
("gtk+" ,gtk+-2)
("libusb" ,libusb-compat)))
(list glib gtk+-2 libusb-compat))
(synopsis "Portable Braille Library")
(description "Libbraille is a library to easily access Braille displays and
terminals.")
@ -95,22 +90,24 @@ terminals.")
(define-public brltty
(package
(name "brltty")
(version "6.2")
(version "6.4")
(source
(origin
(method url-fetch)
(uri
(string-append "https://brltty.app/archive/brltty-" version ".tar.gz"))
(sha256
(base32 "0m0cq3p1cwp52n81si621gij82w3mdqwgr39m6bs652pmk5na72l"))))
(base32 "0zybi9i9izv25g0wphl0snddrhb6xl5879y4pkpjpnxq61wm9gry"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; No target
;; High parallelism may cause errors such as:
;; ranlib: ./libbrlapi_stubs.a: error reading brlapi_stubs.o: file truncated
#:parallel-build? #f
#:configure-flags
(list
(string-append "--with-tcl-config="
(assoc-ref %build-inputs "tcl")
"/lib/tclConfig.sh")
(string-append "--with-libbraille="
(assoc-ref %build-inputs "libbraille"))
(string-append "--with-espeak_ng="
@ -152,49 +149,48 @@ terminals.")
(string-append "extra_link_args = ['-Wl,-rpath="
(assoc-ref outputs "out")
"/lib'], "
"extra_compile_args = ")))
#t)))))
"extra_compile_args = "))))))))
(native-inputs
`(("clisp" ,clisp)
("cython" ,python-cython)
("doxygen" ,doxygen)
("gettext" ,gettext-minimal)
("java" ,icedtea "jdk")
;; ("linuxdoc" ,linuxdoc-tools)
("ocaml" ,ocaml)
("ocamlfind" ,ocaml-findlib)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("tcl" ,tcl)))
(list clisp
python-cython
doxygen
gettext-minimal
`(,icedtea "jdk")
;; ("linuxdoc" ,linuxdoc-tools)
ocaml
ocaml-findlib
pkg-config
python-wrapper
tcl))
(inputs
`(("alsa" ,alsa-lib)
("atspi2" ,at-spi2-core)
("bluez" ,bluez)
("dbus" ,dbus)
("espeak" ,espeak)
("espeak-ng" ,espeak-ng)
("expat" ,expat)
("festival" ,festival)
("flite" ,flite)
("glib" ,glib)
("gpm" ,gpm)
("iconv" ,libiconv)
("icu" ,icu4c)
("libbraille" ,libbraille)
("libpcre2" ,pcre2)
("louis" ,liblouis)
("ncurses" ,ncurses)
("polkit" ,polkit)
("speech-dispatcher" ,speech-dispatcher)
("util-linux" ,util-linux)
("util-linux:lib" ,util-linux "lib")
("x11" ,libx11)
("xaw" ,libxaw)
("xaw3d" ,libxaw3d)
("xext" ,libxext)
("xfixes" ,libxfixes)
("xt" ,libxt)
("xtst" ,libxtst)))
(list alsa-lib
at-spi2-core
bluez
dbus
espeak
espeak-ng
expat
festival
flite
glib
gpm
libiconv
icu4c
libbraille
pcre2
liblouis
ncurses
polkit
speech-dispatcher
util-linux
`(,util-linux "lib")
libx11
libxaw
libxaw3d
libxext
libxfixes
libxt
libxtst))
(synopsis "Braille TTY")
(description "BRLTTY is a background process (daemon) which provides access
to the Linux/Unix console (when in text mode) for a blind person using a
@ -312,7 +308,7 @@ devices have vendorId:productId = 0c45:7403 or 0c45:7404.")
(modify-phases %standard-phases
(delete 'configure))))
(inputs
`(("libX11" ,libx11)))
(list libx11))
(home-page "https://gitlab.com/amiloradovsky/magnify")
(synopsis "Tiny screen magnifier for X11")
(description

View File

@ -9,7 +9,7 @@
;;; Copyright © 2016, 2017, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@ -46,6 +46,7 @@
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -75,6 +76,7 @@
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
@ -118,6 +120,7 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages mail)
#:use-module (gnu packages man)
#:use-module (gnu packages mcrypt)
@ -680,19 +683,21 @@ memory, disks, network and processes.")
(define-public bpytop
(package
(name "bpytop")
(version "1.0.67")
(version "1.0.68")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bpytop" version))
(sha256
(base32 "1fwmiwvs8ax9az3hbp1p79x6m3wq73pn3vkbhcg9jvps4wv8wcwb"))))
(base32 "1clvajbv7pzlya9s1xs6dvjic8rv3kx7aqiwnjxapiypx246gdjk"))))
(build-system python-build-system)
(inputs
(list python-psutil))
(arguments
`(#:phases
(modify-phases %standard-phases
;; sanity-check phase fail, but the application seems to be working
(delete 'sanity-check)
(add-after 'install 'install-themes
(lambda* (#:key outputs #:allow-other-keys)
(let ((themes (string-append (assoc-ref outputs "out")
@ -713,7 +718,7 @@ memory, disks, network and processes. It's a Python port and continuation of
(define-public pies
(package
(name "pies")
(version "1.6")
(version "1.7")
(source
(origin
(method url-fetch)
@ -721,7 +726,7 @@ memory, disks, network and processes. It's a Python port and continuation of
version ".tar.bz2"))
(sha256
(base32
"0ad5bg1czwmr4qw33aszxzc6ll99a9lfs32lyfb1wl5x9s1cc7az"))))
"0ajcah2y6n55qc0ckspcx0hfpm1yb2xa1apcyij7mclic4q2y330"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@ -732,8 +737,7 @@ memory, disks, network and processes. It's a Python port and continuation of
(let ((bash (assoc-ref inputs "bash")))
(substitute* '("src/progman.c" "src/comp.c")
(("\"/bin/sh\"")
(string-append "\"" bash "/bin/sh\"")))
#t))))))
(string-append "\"" bash "/bin/sh\"")))))))))
(home-page "https://www.gnu.org.ua/software/pies/")
(synopsis "Program invocation and execution supervisor")
(description
@ -801,16 +805,15 @@ hostname.")
(define-public shadow
(package
(name "shadow")
(version "4.8.1")
(version "4.9")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/shadow-maint/shadow/releases/"
"download/" version "/shadow-" version ".tar.xz"))
(patches (search-patches "shadow-hurd-pctrl.patch"))
"download/v" version "/shadow-" version ".tar.xz"))
(sha256
(base32
"0qmfq50sdhz6xilgxvinblll8j2iqfl7hwk45bq744y4plq4dbd3"))))
"0i4iijbshnwnsrskxzrh18xgmzff0hdpsnnkmyc2gdn1x4n1zv7y"))))
(build-system gnu-build-system)
(arguments
`(;; Assume System V `setpgrp (void)', which is the default on GNU
@ -821,9 +824,16 @@ hostname.")
'("--with-libpam"))
"shadow_cv_logdir=/var/log"
"ac_cv_func_setpgrp_void=yes")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-linking-to-pam
(lambda _
;; There's a build system problem in 4.9 that causes link
;; failures with the pam libraries (see:
;; https://github.com/shadow-maint/shadow/issues/407).
(substitute* "libsubid/Makefile.in"
(("\\$\\(LIBTCB\\)" all)
(string-append all " $(LIBPAM)")))))
,@(if (%current-target-system)
'((add-before 'configure 'set-runtime-shell
(lambda* (#:key inputs #:allow-other-keys)
@ -844,8 +854,7 @@ hostname.")
"libc"))))
(substitute* "lib/nscd.c"
(("/usr/sbin/nscd")
(string-append libc "/sbin/nscd")))
#t)))
(string-append libc "/sbin/nscd"))))))
(add-after 'install 'remove-groups
(lambda* (#:key outputs #:allow-other-keys)
;; Remove `groups', which is already provided by Coreutils.
@ -853,9 +862,7 @@ hostname.")
(bin (string-append out "/bin"))
(man (string-append out "/share/man")))
(delete-file (string-append bin "/groups"))
(for-each delete-file (find-files man "^groups\\."))
#t))))))
(for-each delete-file (find-files man "^groups\\."))))))))
(inputs
`(,@(if (hurd-target?)
'()
@ -1134,17 +1141,21 @@ recursive runs on the generated subnets. (also IPv6)
(define-public alive
(package
(name "alive")
(version "2.0.3")
(version "2.0.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/alive/alive-"
version ".tar.xz"))
version ".tar.lz"))
(sha256
(base32
"053hfp7s66lnilm1ii4jrjmy44wpa2cwwh6f0sl8cyz0mm813x4b"))))
"12ahlxbbrynm6md8qc872qr795lqpfkr8kwlsig40i4nznzkvkwl"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
(inputs (list guile-2.0 inetutils))
(inputs
(list guile-3.0
inetutils))
(native-inputs
(list lzip))
(home-page "https://www.gnu.org/software/alive/")
(synopsis "Autologin and keep-alive daemon")
(description
@ -1207,8 +1218,7 @@ connection alive.")
"--host=$host_alias"))
;; BIND needs a native compiler because the DHCP
;; build system uses the built 'gen' executable.
(setenv "BUILD_CC" "gcc")
#t)))
(setenv "BUILD_CC" "gcc"))))
'())
(add-after 'configure 'post-configure
(lambda* (#:key outputs #:allow-other-keys)
@ -1831,7 +1841,7 @@ features of sudo with a fraction of the codebase.")
(define-public wpa-supplicant-minimal
(package
(name "wpa-supplicant-minimal")
(version "2.9")
(version "2.10")
(source (origin
(method url-fetch)
(uri (string-append
@ -1839,7 +1849,7 @@ features of sudo with a fraction of the codebase.")
version ".tar.gz"))
(sha256
(base32
"05qzak1mssnxcgdrafifxh9w86a4ha69qabkg4bsigk499xyxggw"))
"0bvvw7bx149a57llzrwzlpggyym84f8jdd4abwsk0f2b2pjpmpr0"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1847,10 +1857,7 @@ features of sudo with a fraction of the codebase.")
;; Disable D-Bus to save ~14MiB on the closure size.
(("^CONFIG_CTRL_IFACE_DBUS" line _)
(string-append "#" line)))
#t))
(patches
(search-patches "wpa-supplicant-CVE-2021-27803.patch"
"wpa-supplicant-CVE-2021-30004.patch"))))
#t))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -2003,64 +2010,51 @@ command.")
(define-public hostapd
(package
(name "hostapd")
(version "2.9")
(version "2.10")
(source (origin
(method url-fetch)
(uri (string-append "https://w1.fi/releases/hostapd-" version
".tar.gz"))
(sha256
(base32
"1mrbvg4v7vm7mknf0n29mf88k3s4a4qj6r4d51wq8hmjj1m7s7c8"))
(patches
(search-patches "wpa-supplicant-CVE-2021-27803.patch"
"wpa-supplicant-CVE-2021-30004.patch"))))
"0pcik0a6yin9nib02frjhaglmg44hwik086iwg1751b7kdwpqvi0"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda _
;; This is mostly copied from 'wpa-supplicant' above.
(chdir "hostapd")
(copy-file "defconfig" ".config")
(let ((port (open-file ".config" "al")))
(display "
CONFIG_LIBNL32=y
CONFIG_IEEE80211R=y
CONFIG_IEEE80211N=y
CONFIG_IEEE80211AC=y\n" port)
(close-port port))
#t))
(add-after 'unpack 'patch-pkg-config
(lambda _
(substitute* "src/drivers/drivers.mak"
(("pkg-config")
(or (which "pkg-config")
(string-append ,(%current-target-system)
"-pkg-config"))))
#t))
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man"))
(man1 (string-append man "/man1"))
(man8 (string-append man "/man8")))
(define (copy-man-page target)
(lambda (file)
(install-file file target)))
(for-each (copy-man-page man1)
(find-files "." "\\.1"))
(for-each (copy-man-page man8)
(find-files "." "\\.8"))
#t))))
#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "BINDIR=" (assoc-ref %outputs "out")
"/sbin")
(string-append "LIBDIR=" (assoc-ref %outputs "out")
"/lib"))
#:tests? #f))
(list #:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda _
;; This is mostly copied from 'wpa-supplicant' above.
(chdir "hostapd")
(copy-file "defconfig" ".config")
(let ((port (open-file ".config" "al")))
(display "CONFIG_LIBNL32=y
CONFIG_IEEE80211R=y
CONFIG_IEEE80211N=y
CONFIG_IEEE80211AC=y\n" port)
(close-port port))))
(add-after 'unpack 'patch-pkg-config
(lambda _
(substitute* "src/drivers/drivers.mak"
(("pkg-config")
#$(pkg-config-for-target)))))
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
(let* ((man (string-append #$output "/share/man"))
(man1 (string-append man "/man1"))
(man8 (string-append man "/man8")))
(define (copy-man-page target)
(lambda (file)
(install-file file target)))
(for-each (copy-man-page man1)
(find-files "." "\\.1"))
(for-each (copy-man-page man8)
(find-files "." "\\.8"))))))
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "BINDIR=" #$output "/sbin")
(string-append "LIBDIR=" #$output "/lib"))
#:tests? #f))
(native-inputs (list pkg-config))
;; There's an optional dependency on SQLite.
@ -2149,7 +2143,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
(define-public acpica
(package
(name "acpica")
(version "20210930")
(version "20211217")
(source (origin
(method url-fetch)
(uri (string-append
@ -2157,7 +2151,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
version ".tar.gz"))
(sha256
(base32
"06wsrl1118sl9z76p9sh53zvzv5hpm82qks896d8slx5dgnzrrll"))))
"0521hmaw2zhi0mpgnaf2i83dykfgql4bx98cg7xqy8wmj649z194"))))
(build-system gnu-build-system)
(native-inputs (list flex bison))
(arguments
@ -2229,6 +2223,74 @@ the classes of bugs which only or more frequently manifest themselves when the
system is under heavy load.")
(license license:gpl2+)))
(define-public stress-ng
(package
(name "stress-ng")
(version "0.13.10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ColinIanKing/stress-ng")
(commit (string-append "V" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1z9vjn2131iv3pwrh04z6r5ygi1qgad5bi3jhghcvc3v1b4k5ran"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "BINDIR=" #$output "/bin")
;; XXX Really: MAN1DIR, or man pages won't be found.
(string-append "MANDIR=" #$output "/share/man/man1")
(string-append "JOBDIR=" #$output
"/share/stress-ng/example-jobs")
(string-append "BASHDIR=" #$output
"/share/bash-completion/completions"))
#:test-target "lite-test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'check 'check-a-little-harder
;; XXX Guix supports only one #:test-target. Run more tests.
(lambda* (#:key tests? #:allow-other-keys #:rest args)
(when tests?
(substitute* "debian/tests/fast-test-all"
(("EXCLUDE=\"" exclude=)
(string-append exclude=
;; Fails if host kernel denies ptracing.
"ptrace ")))
(apply (assoc-ref %standard-phases 'check)
`(,@args #:test-target "fast-test-all"))))))))
(inputs
(list keyutils
kmod
libaio
libbsd
libcap
libgcrypt
zlib))
(home-page "https://github.com/ColinIanKing/stress-ng")
(synopsis "Load and stress-test a computer system in various ways")
(description
"stress-ng stress-tests a computer system by exercising both physical
subsystems as operating system kernel interfaces. It can stress the CPU, cache,
disk, memory, socket and pipe I/O, scheduling, and much more, in various
selectable ways. This can trip hardware issues such as thermal overruns as well
as operating system bugs that occur only when a system is being thrashed hard.
You can also measure test throughput rates, which can be useful to observe
performance changes across different operating system releases or types of
hardware. However, stress-ng is not a benchmark. Use it with caution: some of
the tests can make poorly designed hardware run dangerously hot or make the
whole system lock up.
Compared to its inspiration, @command{stress}, @command{stress-ng} offers many
additional options such as the number of bogo operations to run, execution
metrics, verification of memory and computational operations, and considerably
more stress mechanisms.")
(license license:gpl2+)))
(define-public detox
(package
(name "detox")
@ -2296,20 +2358,24 @@ recover lost partitions and/or make non-booting disks bootable again.")
(define-public tree
(package
(name "tree")
(version "1.8.0")
(version "2.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://mama.indstate.edu/users/ice/tree/src/tree-"
version ".tgz"))
(sha256
(base32 "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi"))))
(base32 "0f92vx6gpz7v29wi9clklzah57v7lgx5kv0m1w4b9xjc35d9qcz3"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases (delete 'configure))
#:tests? #f ; no check target
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list (string-append "prefix=" out)))))
(list
#:phases
#~(modify-phases %standard-phases
(delete 'configure)) ; No configure script.
#:tests? #f ; No check target.
#:make-flags
#~(list (string-append "PREFIX=" #$output)
(string-append "CC=" #$(cc-for-target)))))
(synopsis "Recursively list the contents of a directory")
(description
"Tree is a recursive directory listing command that produces a depth
@ -2348,39 +2414,33 @@ features of ls(1), find(1), stat(1) and du(1).")
(define-public direvent
(package
(name "direvent")
(version "5.2")
(version "5.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/direvent/direvent-"
version ".tar.gz"))
(sha256
(base32
"0m9vi01b1km0cpknflyzsjnknbava0s1n6393b2bpjwyvb6j5613"))
(modules '((guix build utils)))
(snippet '(begin
(substitute* "tests/testsuite"
(("#![[:blank:]]?/bin/sh")
"#!$SHELL"))
#t))))
"15y4jk5vlcd003bvf42c6z9zd4gz4pwqpwaapqmyk7x4gnksh1cl"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'build 'patch-/bin/sh
(lambda* (#:key inputs #:allow-other-keys)
;; Use the right shell when executing the watcher and
;; user-provided shell commands.
(let ((bash (assoc-ref inputs "bash")))
(substitute* '("src/direvent.c" "src/progman.c")
(("\"/bin/sh\"")
(string-append "\"" bash "/bin/sh\"")))
(list #:phases
#~(modify-phases %standard-phases
(add-before 'build 'substitute-file-names
(lambda* (#:key inputs #:allow-other-keys)
;; Use the right shell when executing the watcher and
;; user-provided shell commands.
(let ((bash (assoc-ref inputs "bash")))
(substitute* '("src/direvent.c" "src/progman.c")
(("\"/bin/sh\"")
(string-append "\"" bash "/bin/sh\""))))
;; Adjust the 'shell.at' test accordingly.
(substitute* "tests/testsuite"
(("SHELL=/bin/sh")
(string-append "SHELL=" bash "/bin/sh")))
#t))))))
;; Adjust the test suite similarly.
(substitute* "tests/testsuite"
(("(SHELL=|#![[:space:]]*)/bin/sh" _ prefix)
(string-append prefix (which "sh")))
(("/bin/kill")
(which "kill"))))))))
(home-page "https://www.gnu.org.ua/software/direvent/")
(synopsis "Daemon to monitor directories for events such as file removal")
(description
@ -3444,6 +3504,43 @@ in order to be able to find it.
@end enumerate")
(license license:gpl2+)))
(define-public xfel
(package
(name "xfel")
(version "1.2.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xboot/xfel.git")
(commit (string-append "v" version))))
(sha256
(base32 "0r4j63vh6279fj1yh71h08d1av3nc0majlad5yh6admsxiig101m"))
(file-name (git-file-name name version))))
(native-inputs
(list pkg-config))
(inputs
(list libusb))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No tests exist
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-installation-target
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "Makefile"
(("/usr/local") out)
(("/usr") out)
(("/etc/udev/rules.d")
(string-append out "/lib/udev/rules.d"))))))
(delete 'configure))))
(home-page "https://github.com/xboot/xfel")
(synopsis "Remote debugging tool for Allwinner D1 computers")
(description "This package contains a debugging tool for Allwinner D1
devices (connects via USB OTG).")
(license license:expat)))
(define-public sedsed
(package
(name "sedsed")
@ -3768,7 +3865,7 @@ hard-coded.")
(define-public thermald
(package
(name "thermald")
(version "2.4.6")
(version "2.4.7")
(source
(origin
(method git-fetch)
@ -3777,7 +3874,7 @@ hard-coded.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1lgaky8cmxbi17zpymy2v9wgknx1g92bq50j6kfpsm8qgb7djjb6"))))
(base32 "1n0ih86bkm09bzhjl7hllxkl4gzcxvzsznbwi8dx87ragsjlix6n"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -3868,7 +3965,7 @@ application, collecting the information received.")
("python-nose" ,python-nose)))
(arguments
`(#:test-target "test"))
(synopsis "A single tool that combines @command{cat} & @command{rm}")
(synopsis "Single tool that combines @command{cat} & @command{rm}")
(description
"hungrycat prints the contents of a file to standard output, while
simultaneously freeing the disk space it occupied. It is useful if you need
@ -4483,7 +4580,7 @@ entries, providing commands to add, remove, comment, and search.")
(define-public nmrpflash
(package
(name "nmrpflash")
(version "0.9.15")
(version "0.9.16")
(source
(origin
(method git-fetch)
@ -4492,7 +4589,7 @@ entries, providing commands to add, remove, comment, and search.")
(url "https://github.com/jclehner/nmrpflash")
(commit (string-append "v" version))))
(sha256
(base32 "0ssfls1sfh8w748qsnkfgndlpw395100x2yynzbk5jd56scxvp20"))
(base32 "0gp66l3a2wznjnlc2ljs8g38mfrf1b9a0qcfxqg2bczmfxnrsynj"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
@ -4509,8 +4606,7 @@ entries, providing commands to add, remove, comment, and search.")
(delete 'configure)
(add-before 'install 'prepare-install
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
#t)))))
(mkdir-p (string-append (assoc-ref outputs "out") "/bin")))))))
(home-page "https://github.com/jclehner/nmrpflash")
(synopsis "Netgear unbrick utility")
(description "This package provides a utility to flash a new firmware
@ -4785,7 +4881,6 @@ FIFO and UNIX interprocess communication.")
(build-system go-build-system)
(arguments
`(#:unpack-path "bdd.fi/x/runitor"
#:go ,go-1.17
#:build-flags '(,(string-append "-ldflags=-X main.Version=" version))
#:import-path "bdd.fi/x/runitor/cmd/runitor"
#:install-source? #f))
@ -4796,3 +4891,39 @@ FIFO and UNIX interprocess communication.")
exit code reports successful or failed execution to
@url{https://healthchecks.io,https://healthchecks.io} or your private instance.")
(license license:bsd-0)))
(define-public udpcast
(package
(name "udpcast")
(version "20200328")
(source
(origin
(method url-fetch)
;; XXX: Original server is at https://www.udpcast.linux.lu is not
;; reliable.
(uri (list (string-append
"http://sources.buildroot.net/udpcast/udpcast-"
version ".tar.gz")
(string-append
"https://fossies.org/linux/privat/udpcast-"
version ".tar.gz")
(string-append
"https://www.udpcast.linux.lu/download/udpcast-"
version ".tar.gz")))
(sha256
(base32 "06pj86nbi9hx7abbb0z2c5ynhfq0rv89b7nmy0kq3xz2lsxfw6cw"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake m4 perl))
(arguments `(#:tests? #f)) ;no test suite
(synopsis "Multicast file transfer tool")
(description
"UDPcast is a file transfer tool that can send data simultaneously to
many destinations on a LAN. This can for instance be used to install entire
classrooms of PC's at once. The advantage of UDPcast over using other
methods (nfs, ftp, whatever) is that UDPcast uses UDP's multicast abilities:
it won't take longer to install 15 machines than it would to install just 2.")
(home-page "https://www.udpcast.linux.lu")
(license license:gpl2+)))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 20162022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@ -328,7 +328,7 @@ precision.")
(define-public giac
(package
(name "giac")
(version "1.7.0-43")
(version "1.7.0-45")
(source
(origin
(method url-fetch)
@ -340,7 +340,7 @@ precision.")
"~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz"))
(sha256
(base32 "0zsa506isvmixwwg0xgvxhlns6i75jsc3qjzcrny4fl11hkj9xw5"))))
(base32 "19hxbx27n5zby96d4pzhxxqn7mzk29g8sxn08fi638l17lr9x2q2"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
@ -378,33 +378,33 @@ precision.")
(delete-file (string-append out "/bin/xcasnew"))))))))
(inputs
;; TODO: Add libnauty, unbundle "libmicropython.a".
`(("fltk" ,fltk)
("glpk" ,glpk-4)
("gmp" ,gmp)
("gsl" ,gsl)
("lapack" ,lapack)
("libao" ,ao)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libsamplerate" ,libsamplerate)
("libx11" ,libx11)
("libxinerama" ,libxinerama)
("libxft" ,libxft)
("libxt" ,libxt)
("mesa" ,mesa)
("mpfi" ,mpfi)
("mpfr" ,mpfr)
("ntl" ,ntl)
("perl" ,perl)
("pari-gp" ,pari-gp)
("tcsh" ,tcsh)))
(list ao
fltk
glpk-4
gmp
gsl
lapack
libjpeg-turbo
libpng
libsamplerate
libx11
libxft
libxinerama
libxt
mesa
mpfi
mpfr
ntl
pari-gp
perl
tcsh))
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
("hevea" ,hevea)
("python" ,python-wrapper)
("readline" ,readline)
("texlive" ,texlive-tiny)))
(list bison
flex
hevea
python-wrapper
readline
texlive-tiny))
(home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html")
(synopsis "Computer algebra system")
(description
@ -1044,6 +1044,44 @@ features, and more.")
;; See 'COPYING.README' for details.
(license license:mpl2.0)))
(define-public eigen-benchmarks
(package
(inherit eigen)
(name "eigen-benchmarks")
(arguments
'(#:phases (modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(define (compile file)
(format #t "compiling '~a'...~%" file)
(let ((target
(string-append bin "/"
(basename file ".cpp"))))
(invoke "c++" "-o" target file
"-I" ".." "-O2" "-g"
"-lopenblas" "-Wl,--as-needed")))
(mkdir-p bin)
(with-directory-excursion "bench"
;; There are more benchmarks, of varying quality.
;; Here we pick some that appear to be useful.
(for-each compile
'("benchBlasGemm.cpp"
"benchCholesky.cpp"
;;"benchEigenSolver.cpp"
"benchFFT.cpp"
"benchmark-blocking-sizes.cpp"))))))
(delete 'install))))
(inputs (list boost openblas))
;; Mark as tunable to take advantage of SIMD code in Eigen.
(properties '((tunable? . #t)))
(synopsis "Micro-benchmarks of the Eigen linear algebra library")))
(define-public eigen-for-tensorflow
(let ((changeset "fd6845384b86")
(revision "1"))
@ -1131,6 +1169,45 @@ xtensor provides:
@end itemize")
(license license:bsd-3)))
(define-public xtensor-benchmark
(package
(inherit xtensor)
(name "xtensor-benchmark")
(arguments
`(#:configure-flags (list "-DBUILD_BENCHMARK=ON"
"-DDOWNLOAD_GBENCHMARK=OFF")
#:tests? #f
#:phases (modify-phases %standard-phases
(add-after 'unpack 'remove-march=native
(lambda _
(substitute* "benchmark/CMakeLists.txt"
(("-march=native") ""))))
(add-after 'unpack 'link-with-googlebenchmark
(lambda _
(substitute* "benchmark/CMakeLists.txt"
(("find_package\\(benchmark.*" all)
(string-append
all "\n"
"set(GBENCHMARK_LIBRARIES benchmark)\n")))))
(replace 'build
(lambda _
(invoke "make" "benchmark_xtensor" "-j"
(number->string (parallel-job-count)))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
;; Install nothing but the executable.
(let ((out (assoc-ref outputs "out")))
(install-file "benchmark/benchmark_xtensor"
(string-append out "/bin"))))))))
(synopsis "Benchmarks of the xtensor library")
(native-inputs '())
(inputs
(modify-inputs (package-native-inputs xtensor)
(prepend googlebenchmark xsimd)))
;; Mark as tunable to take advantage of SIMD code in xsimd/xtensor.
(properties '((tunable? . #t)))))
(define-public gap
(package
(name "gap")

View File

@ -11,6 +11,7 @@
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -45,6 +46,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages pcre)
@ -54,7 +56,9 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages selinux)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages virtualization)
@ -190,6 +194,28 @@ use their packages mostly unmodified in our Android NDK build system.")
(base32
checksum))))
(define (android-platform-development version)
(origin
(method git-fetch)
(uri (git-reference
(url "https://android.googlesource.com/platform/development")
(commit (string-append "android-" version))))
(file-name (string-append "android-platform-development-"
version "-checkout"))
(sha256
(base32 "0s92961yycg8wsga40i7fvbfmf1a5i6j2gk64j2jiy7s0hfd4rc3"))))
(define (android-platform-frameworks-native version)
(origin
(method git-fetch)
(uri (git-reference
(url "https://android.googlesource.com/platform/frameworks/native")
(commit (string-append "android-" version))))
(file-name (string-append "android-platform-frameworks-native-"
version "-checkout"))
(sha256
(base32 "00dgx27wma7wzivniy8zyw2443fi2xx8gyxii081m0fwamqd3jrm"))))
(define-public android-liblog
(package
(name "android-liblog")
@ -217,7 +243,7 @@ use their packages mostly unmodified in our Android NDK build system.")
"../include/android" (string-append out "/include/android")))
#t)))))
(home-page "https://developer.android.com/")
(synopsis "Logging library from the Android platform.")
(synopsis "Logging library from the Android platform")
(description "@code{liblog} represents an interface to the volatile Android
Logging system for NDK (Native) applications and libraries and contain
interfaces for either writing or reading logs. The log buffers are divided up
@ -728,6 +754,132 @@ it.
to be passed to the @code{udev} service.")
(license license:gpl3+)))
(define-public android-platform-frameworks-native-headers
(package
(name "android-platform-frameworks-native-headers")
(version (android-platform-version))
(source (android-platform-frameworks-native version))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((source (assoc-ref %build-inputs "source"))
(include (string-append %output "/include/android")))
(mkdir-p include)
(copy-recursively (string-append source "/include/android")
(string-append include)) ; "/android"))
))))
(home-page "https://android.googlesource.com/platform/frameworks/native/")
(synopsis "Headers for Android development from
android-platform-frameworks-native")
(description "This package contains headers used for developing software
for Android. More precicely the headers from include/android in
platform/frameworks/native.")
(license license:asl2.0)))
(define-public libetc1
(package
(name "libetc1")
(version (android-platform-version))
(source (android-platform-frameworks-native version))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'create-Makefile
(lambda _
;; No useful makefile is shipped, so we create one.
(with-output-to-file "Makefile"
(lambda _
(display
(string-append
"NAME = libETC1\n"
"SOURCES = opengl/libs/ETC1/etc1.cpp\n"
"CXXFLAGS += -fPIC\n"
"CPPFLAGS += -Iopengl/include\n"
"LDFLAGS += -shared -Wl,-soname,$(NAME).so.0\n"
"$(NAME).so.0: $(SOURCES)\n"
" $(CXX) $^ -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)\n"
"build: $(NAME).so.0"))
#t))))
(add-after 'unpack 'remove-unused-stuff-to-reduce-warnings
(lambda _
(delete-file-recursively "opengl/libs/tools")))
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(include (string-append out "/include")))
(install-file "libETC1.so.0" lib)
(with-directory-excursion lib
(symlink "libETC1.so.0" "libETC1.so"))
(copy-recursively "opengl/include/ETC1"
(string-append include "/ETC1"))))))))
(home-page "https://android.googlesource.com/platform/frameworks/native/")
(synopsis "ETC1 compression library")
(description "Ericsson Texture Compression (ETC) is a lossy texture
compression technique developed in collaboration with Ericsson Research in
early 2005. libETC1 provides the encoding and decoding of ETC1 compression
algorithm.")
(license license:asl2.0)))
(define-public etc1tool
(package
(name "etc1tool")
(version (android-platform-version))
(source (android-platform-development version))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'create-Makefile
(lambda _
;; No useful makefile is shipped, so we create one.
(with-output-to-file "Makefile"
(lambda _
(display
(string-append
"NAME = etc1tool\n"
"SOURCES = tools/etc1tool/etc1tool.cpp\n"
"CPPFLAGS += -Iinclude\n"
"LDFLAGS += -lpng -lETC1\n"
"$(NAME): $(SOURCES)\n"
" $(CXX) $^ -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)\n"
"build: $(NAME)"))
#t))))
(add-before 'build 'fix-typos-in-help
(lambda _
(substitute* "tools/etc1tool/etc1tool.cpp"
((" apropriate ") " appropriate "))
#t))
;; TODO: Add man-page from Debian
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "etc1tool" bin)))))))
(inputs
`(("libetc1" ,libetc1)
("libpng" ,libpng)))
(home-page "https://developer.android.com/studio/command-line/etc1tool.html")
(synopsis "Encode and decode PNG images to resp. from the ETC1 compression
standard.")
(description
"@command{etc1} is a command line utility that lets you encode PNG images
to the ETC1 compression standard and decode ETC1 compressed images back to
PNG. This tool is part of the Android SDK for working with media files for
game apps.
The standard for the ETC1 texture format can be found at
@uref{http://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt}.")
(license license:asl2.0)))
(define-public git-repo
(package
(name "git-repo")
@ -819,7 +971,7 @@ to be passed to the @code{udev} service.")
(native-inputs
`(("pytest" ,python-pytest)))
(home-page "https://code.google.com/p/git-repo/")
(synopsis "Helps to manage many Git repositories.")
(synopsis "Helps to manage many Git repositories")
(description "Repo is a tool built on top of Git. Repo helps manage many
Git repositories, does the uploads to revision control systems, and automates
parts of the development workflow. Repo is not meant to replace Git, only to
@ -904,17 +1056,84 @@ safest way, on a file image.")
useful for reverse engineering, analysis of Android applications and more.")
(license license:asl2.0)))
(define-public python-android-backup
(package
(name "python-android-backup")
(version "0.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "android_backup" version))
(sha256
(base32
"15wb2lyjj2fpf7bhvmgpqn0mglsjj11zfvbjycx7mnidisgnljw6"))))
(build-system python-build-system)
(propagated-inputs (list python-pycrypto))
(home-page "https://github.com/bluec0re/android-backup-tools")
(synopsis "Unpack and repack android backups")
(description "This package allows you to unpack and repack Android
backups. It supports encrypted archives.")
(license license:asl2.0)))
(define-public python-miio
(package
(name "python-miio")
(version "0.5.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-miio" version))
(sha256
(base32
"0a4f5ybjvibawwxcjm3r9nnrzf1yff6wwgy05yzyk0bb3rmc99fp"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "miio")))))))
(native-inputs
(list python-pytest
python-pytest-mock
python-sphinx
python-sphinx-click
python-sphinx-rtd-theme
python-sphinxcontrib-apidoc))
(propagated-inputs
(list python-android-backup
python-appdirs
python-attrs
python-click
python-construct
python-croniter
python-cryptography
python-defusedxml
python-importlib-metadata
python-netifaces
python-pytz
python-pyyaml
python-tqdm
python-zeroconf))
(home-page "https://github.com/rytilahti/python-miio")
(synopsis "Control Xiaomi smart appliances")
(description "This package provides library and command line interface
for communicating with Xiaomi smart appliances over miIO and MIoT protocols.")
(license license:gpl3+)))
(define-public fdroidserver
(package
(name "fdroidserver")
(version "1.1.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fdroidserver" version))
(sha256
(base32
"0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
(origin
(method url-fetch)
(uri (pypi-uri "fdroidserver" version))
(sha256
(base32
"0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
(build-system python-build-system)
(arguments
`(#:phases

View File

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu>
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2016, 2017, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
@ -136,6 +136,11 @@ dictionaries, including personal ones.")
(description
"This package provides a dictionary for the GNU Aspell spell checker.")
(license gpl2+)
(properties
;; Unfortunately any versions with a trailing 'dash and digit' (eg.: '-0')
;; will fail to register as a version.
`((upstream-name . ,(string-append prefix dict-name))
(ftp-directory . ,(string-append "/aspell/dict/" dict-name))))
(home-page "http://aspell.net/")))

View File

@ -181,14 +181,14 @@ speed on x86, NEON on ARM, etc.).")
(define-public fasm
(package
(name "fasm")
(version "1.73.28")
(version "1.73.29")
(source
(origin
(method url-fetch)
(uri (string-append "https://flatassembler.net/fasm-"
version ".tgz"))
(sha256
(base32 "14ljh0ngdaqlwzsr0l70k09r2d520lqpgswl388p84gxhnsfplcy"))))
(base32 "0ar1k1504cmwi49y6g254rkzayll0kn90vjd4zj09xv86kcg8a33"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests exist

View File

@ -6,7 +6,7 @@
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;;
@ -55,8 +55,10 @@
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages time)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages wxwidgets)
@ -188,7 +190,7 @@ for reading and writing.")
(define-public erfa
(package
(name "erfa")
(version "1.7.3")
(version "2.0.0")
(source
(origin
(method git-fetch)
@ -197,7 +199,7 @@ for reading and writing.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0nh12dr7gk4ki55lz95pkm4fpf7kazirra3zax9pab6v4qql4hlw"))))
(base32 "0s9dpj0jdkqcg552f00jhd722czji4pffabmpys5pgi6djckq4f4"))))
(build-system gnu-build-system)
(native-inputs
(list automake autoconf libtool pkg-config))
@ -612,13 +614,13 @@ accurately in real time at any rate desired.")
(define-public python-astropy
(package
(name "python-astropy")
(version "4.3.1")
(version "5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astropy" version))
(sha256
(base32 "0lfd6n7v7kas4wvacddnwgccax3ks908735dzilg7dsf7ci52f9d"))
(base32 "09rr9z2kn5qw34fqpwxgcwsn9m5aw6f0dd0pm232aa8k3qakw83h"))
(modules '((guix build utils)))
(snippet
'(begin
@ -690,7 +692,12 @@ accurately in real time at any rate desired.")
(inputs
(list cfitsio expat))
(propagated-inputs
(list python-configobj python-numpy python-ply python-pyerfa))
(list python-configobj
python-numpy
python-packaging
python-ply
python-pyerfa
python-pyyaml))
(home-page "https://www.astropy.org/")
(synopsis "Core package for Astronomy in Python")
(description
@ -699,6 +706,226 @@ much of the core functionality and some common tools needed for performing
astronomy and astrophysics.")
(license license:bsd-3)))
(define-public python-astropy-healpix
(package
(name "python-astropy-healpix")
(version "0.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astropy-healpix" version))
(sha256
(base32 "1436ml03xkmvx4afzbhfj67ab91418sz1w3lq1b18r43qchnd6j0"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; This file is opened in both install and check phases.
(add-before 'install 'writable-compiler
(lambda _ (make-file-writable "astropy_healpix/_compiler.c")))
(add-before 'check 'writable-compiler
(lambda _ (make-file-writable "astropy_healpix/_compiler.c")))
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
;; Extensions have to be rebuilt before running the tests.
(invoke "python" "setup.py" "build_ext" "--inplace")
(invoke "python" "-m" "pytest"
"--pyargs" "astropy_healpix")))))))
(native-inputs
(list python-extension-helpers
python-hypothesis
python-pytest-astropy
python-setuptools-scm))
(propagated-inputs
(list python-astropy python-numpy))
(home-page "https://github.com/astropy/astropy-healpix")
(synopsis "HEALPix for Astropy")
(description "This package provides HEALPix to the Astropy project.")
(license license:bsd-3)))
(define-public python-astroquery
(package
(name "python-astroquery")
(version "0.4.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astroquery" version))
(sha256
(base32 "06xy0qzqmps6z5vwfkh5fkhr151p7g94r2j0mvp1rc8zns22y010"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'writable-home
(lambda _ ; some tests need a writable home
(setenv "HOME" (getcwd))))
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest" "--pyargs" "astroquery"
;; Skip tests that require online data.
"-m" "not remote_data")))))))
(propagated-inputs
(list python-astropy
python-beautifulsoup4
python-html5lib
python-keyring
python-numpy
python-pyvo
python-requests))
(native-inputs
(list python-flask
python-jinja2
python-matplotlib
python-pytest-astropy
python-pytest-dependency))
(home-page "https://www.astropy.org/astroquery/")
(synopsis "Access online astronomical data resources")
(description "Astroquery is a package that contains a collection of tools
to access online Astronomical data. Each web service has its own sub-package.")
(license license:bsd-3)))
(define-public python-photutils
(package
(name "python-photutils")
(version "1.3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "photutils" version))
(sha256
(base32 "1a8djakaya6w5iv9237gkcz39brqzgrfs2wqrl0izi1s85cfdymn"))))
(build-system python-build-system)
(arguments
`(#:test-target "pytest"
#:phases
(modify-phases %standard-phases
;; This file is opened in both install and check phases.
(add-before 'install 'writable-compiler
(lambda _ (make-file-writable "photutils/_compiler.c")))
(add-before 'check 'writable-compiler
(lambda _ (make-file-writable "photutils/_compiler.c"))))))
(propagated-inputs
(list python-astropy python-numpy))
(native-inputs
(list python-cython
python-extension-helpers
python-pytest-astropy
python-pytest-runner
python-setuptools-scm))
(home-page "https://github.com/astropy/photutils")
(synopsis "Source detection and photometry")
(description "Photutils is an Astropy package for detection and photometry
of astronomical sources.")
(license license:bsd-3)))
(define-public python-pyvo
(package
(name "python-pyvo")
(version "1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyvo" version))
(sha256
(base32 "1lap703wxbyxqlbk85myirp4pkdnc6cg10xhfajfsvz5k0hm5ffw"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest" "--pyargs" "pyvo" "-k"
(string-append ; these tests use the network
"not test_access_with_string"
" and not test_access_with_list"
" and not test_access_with_expansion"))))))))
(native-inputs
(list python-pytest-astropy python-requests-mock))
(propagated-inputs
(list python-astropy python-mimeparse python-pillow python-requests))
(home-page "https://github.com/astropy/pyvo")
(synopsis "Access Virtual Observatory data and services")
(description
"PyVO is a package providing access to remote data and services of the
Virtual observatory (VO) using Python.")
(license license:bsd-3)))
(define-public python-regions
(package
(name "python-regions")
(version "0.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "regions" version))
(sha256
(base32 "1bjrcjchbw3xw1a26d5g198lh7vxpp9m5sal58r7f8mmr1d8g2dc"))))
(build-system python-build-system)
(arguments
`(#:test-target "pytest"
#:phases
(modify-phases %standard-phases
;; This doctest requires online data.
(add-after 'unpack 'delete-doctest
(lambda _ (delete-file "docs/masks.rst")))
;; This file is opened in both install and check phases.
(add-before 'install 'writable-compiler
(lambda _ (make-file-writable "regions/_compiler.c")))
(add-before 'check 'writable-compiler
(lambda _ (make-file-writable "regions/_compiler.c")))
(add-before 'check 'writable-home
(lambda _ (setenv "HOME" (getcwd)))))))
(propagated-inputs
(list python-astropy python-numpy))
(native-inputs
(list python-cython
python-extension-helpers
python-pytest-arraydiff
python-pytest-astropy
python-pytest-runner
python-setuptools-scm))
(home-page "https://github.com/astropy/regions")
(synopsis "Package for region handling")
(description "Regions is an Astropy package for region handling.")
(license license:bsd-3)))
(define-public python-astral
(package
(name "python-astral")
(version "2.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astral" version))
(sha256
(base32 "1gkggdibccmdy9glymw3kbrkzm6svvsg0lk56hhy92y4smkrj7g4"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-freezegun python-setuptools-scm))
(propagated-inputs
(list python-dataclasses python-pytest python-pytz))
(home-page "https://github.com/sffjunkie/astral")
(synopsis "Calculations for the position of the sun and moon")
(description "Astral is a Python module that calculates times for various
positions of the sun: dawn, sunrise, solar noon, sunset, dusk, solar
elevation, solar azimuth, rahukaalam, and the phases of the moon.")
(license license:asl2.0)))
(define-public libnova
(package
(name "libnova")
@ -1170,13 +1397,13 @@ JPL ephemerides use to predict raw (x,y,z) planetary positions.")
(define-public python-pyerfa
(package
(name "python-pyerfa")
(version "1.7.3")
(version "2.0.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyerfa" version))
(sha256
(base32 "1jqqrxvrgly4r0br5f6dsy8nab2xmhz915vp6md5f31ysr2sdwvc"))
(base32 "0c6y1rm51kj8ahbr1vwbswck3ix77dc3zhc2fkg6w7iczrzn7m1g"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1189,14 +1416,11 @@ JPL ephemerides use to predict raw (x,y,z) planetary positions.")
(modify-phases %standard-phases
(add-before 'build 'use-system-liberfa
(lambda _
(setenv "PYERFA_USE_SYSTEM_LIBERFA" "1")
#t)))))
(setenv "PYERFA_USE_SYSTEM_LIBERFA" "1"))))))
(native-inputs
`(("pytest-doctestplus" ,python-pytest-doctestplus)
("python-pytest" ,python-pytest)
("python-setuptools-scm" ,python-setuptools-scm)))
(list python-pytest-doctestplus python-pytest python-setuptools-scm))
(inputs
`(("liberfa" ,erfa)))
(list erfa))
(propagated-inputs
(list python-numpy))
(home-page "https://github.com/liberfa/pyerfa")

View File

@ -8,7 +8,7 @@
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 20162021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20162022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@ -36,6 +36,7 @@
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
;;;
;;; This file is part of GNU Guix.
;;;
@ -91,6 +92,7 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages mp3) ;taglib
@ -103,6 +105,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
#:use-module (gnu packages python)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rdf)
@ -133,6 +136,7 @@
#:use-module (guix build-system waf)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
@ -279,17 +283,17 @@ Coding (AAC) encoder.")
(define-public tinyalsa
(package
(name "tinyalsa")
(version "1.1.1")
(version "2.0.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/tinyalsa/tinyalsa")
(commit version)))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ajyvml5bnzvhiyyrn42gqwgg23ssxkfh09rvsnywhzxhd0xai4h"))))
(base32 "1p9khz3bdpdcrnc9p6w522a0ankdchj4nxd3ki41z9401rxmnljq"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No target
@ -721,7 +725,7 @@ engineers, musicians, soundtrack editors and composers.")
(define-public audacity
(package
(name "audacity")
(version "2.4.2")
(version "3.1.3")
(source
(origin
(method git-fetch)
@ -731,9 +735,7 @@ engineers, musicians, soundtrack editors and composers.")
(file-name (git-file-name name version))
(sha256
(base32
"0lklcvqkxrr2gkb9gh3422iadzl2rv9v0a8s76rwq43lj2im7546"))
(patches (search-patches "audacity-build-with-system-portaudio.patch"
"audacity-add-include.patch"))
"1689q9apbjf9nnda62shb8j7hm4hxd47mhk4l5h3c728mjjkilmi"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
@ -741,13 +743,10 @@ engineers, musicians, soundtrack editors and composers.")
(for-each
(lambda (dir)
(delete-file-recursively (string-append "lib-src/" dir)))
'("expat" "ffmpeg" "lame" "libflac" "libid3tag" "libmad" "libogg"
"libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2"
"portmidi" "soundtouch" "twolame"
'("libsoxr" "libvamp" "lv2" "soundtouch" "sqlite" "twolame"
;; FIXME: these libraries have not been packaged yet:
;; "libnyquist"
;; "libscorealign"
;; "libwidgetextra"
;; "portburn"
;; "portsmf"
;; "portmixer"
@ -759,26 +758,30 @@ engineers, musicians, soundtrack editors and composers.")
#t))))
(build-system cmake-build-system)
(inputs
(list wxwidgets
(list wxwidgets-3.1
gtk+
alsa-lib
jack-1
expat
ffmpeg
lame
linux-libre-headers
flac
libid3tag
libjpeg-turbo
libmad
;;("libsbsms" ,libsbsms) ;bundled version is modified
libsndfile
soundtouch
soxr ;replaces libsamplerate
sqlite
twolame
vamp
libvorbis
lv2
lilv ;for lv2
suil ;for lv2
portaudio
portmidi))
(native-inputs
`(("autoconf" ,autoconf)
@ -791,10 +794,12 @@ engineers, musicians, soundtrack editors and composers.")
(arguments
`(#:configure-flags
(list
;; Loading FFmpeg dynamically is problematic.
"-Daudacity_use_ffmpeg=linked"
"-Daudacity_use_lame=system"
"-Daudacity_use_portsmf=system")
"-Daudacity_conan_enabled=off"
"-Daudacity_lib_preference=system"
;; TODO: enable this flag once we've packaged all dependencies
;; "-Daudacity_obey_system_dependencies=on"
;; disable crash reports, updates, ..., anything that phones home
"-Daudacity_has_networking=off")
#:imported-modules ((guix build glib-or-gtk-build-system)
,@%cmake-build-system-modules)
#:modules
@ -803,27 +808,42 @@ engineers, musicians, soundtrack editors and composers.")
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-cmake-rpath
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("\\$ORIGIN/\\.\\./\\$\\{_PKGLIB\\}")
(string-append (assoc-ref outputs "out") "/lib/audacity"))
(("CMAKE_BUILD_WITH_INSTALL_RPATH [A-Z]*")
"CMAKE_BUILD_WITH_INSTALL_RPATH TRUE")
(("CMAKE_INSTALL_RPATH_USE_LINK_PATH [A-Z]*")
"CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE"))
(substitute* "src/CMakeLists.txt"
(("-Wl,--disable-new-dtags") "-Wl,--enable-new-dtags"))))
(add-after 'unpack 'comment-out-revision-ident
(lambda _
(substitute* "src/CMakeLists.txt"
(("file\\( TOUCH \".*RevisionIdent\\.h\" \\)" directive)
(string-append "# " directive)))
(substitute* "src/AboutDialog.cpp"
(("(.*RevisionIdent\\.h.*)" include-line)
(string-append "// " include-line)))))
(add-after 'unpack 'use-upstream-headers
(lambda* (#:key inputs #:allow-other-keys)
(substitute* '("src/NoteTrack.cpp"
"src/AudioIO.cpp"
"src/AudioIO.h"
"src/AudioIOBase.cpp")
(("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")
(("../lib-src/portmidi/porttime/porttime.h") "porttime.h"))
(substitute* "src/prefs/MidiIOPrefs.cpp"
(("../../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h"))))
(substitute* '("libraries/lib-files/FileNames.cpp")
(("\"/usr/include/linux/magic.h\"") "<linux/magic.h>"))))
(add-after 'wrap-program 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))
;; The test suite is not "well exercised" according to the developers,
;; and fails with various errors. See
;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
#:tests? #f))
;; The test suite is not "well exercised" according to the developers,
;; and fails with various errors. See
;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
#:tests? #f))
(native-search-paths
(list (search-path-specification
(variable "AUDACITY_MODULES_PATH")
(files '("lib/audacity/modules")))
(search-path-specification
(variable "AUDACITY_PATH")
(files '("share/audacity")))))
(home-page "https://www.audacityteam.org/")
(synopsis "Software for recording and editing sounds")
(description
@ -1248,10 +1268,8 @@ formats used to store information about DJ record libraries.")
"tao-fix-parser-types.patch"))
(modules '((guix build utils)))
(snippet
'(begin
(substitute* "configure"
(("SHELL=/bin/sh") ""))
#t))))
'(substitute* "configure"
(("SHELL=/bin/sh") "")))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("TAO_RELEASE=-beta")
@ -1267,8 +1285,7 @@ formats used to store information about DJ record libraries.")
(string-append (which "sed") " -f $distdir/"))
(("distdir=.*")
(string-append "distdir="
(assoc-ref outputs "out") "/share/tao")))
#t))
(assoc-ref outputs "out") "/share/tao")))))
(add-after 'install 'install-extra-files
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -1279,18 +1296,17 @@ formats used to store information about DJ record libraries.")
(install-file "user-scripts/error.parse" share)
(copy-recursively "examples" (string-append share "examples"))
(for-each (lambda (file) (install-file file inc))
(find-files "include" "\\.h"))
#t))))))
(find-files "include" "\\.h"))))))))
(inputs
`(("audiofile" ,audiofile)
("libxi" ,libxi)
("libxmu" ,libxmu)
("mesa" ,mesa)
("glut" ,freeglut)
("flex" ,flex)
("bison" ,bison)
("sed" ,sed)
("grep" ,grep)))
(list audiofile
libxi
libxmu
mesa
freeglut
flex
bison
sed
grep))
(home-page "http://taopm.sourceforge.net/")
(synopsis "Sound Synthesis with Physical Models")
(description "Tao is a software package for sound synthesis using physical
@ -1301,6 +1317,37 @@ playing instruments and a C++ API for those who would like to use it as an
object library.")
(license license:gpl2+)))
(define-public tao-synth
(let ((commit "f3aedd81efbc775574e591081b57ae1c08427064")
(revision "1"))
(package
(name "tao-synth")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lucasw/tao_synth")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1jds2l3cb96b02jxd7lmrjjl9s7mylnrvg6fpw0j8c141bk8vyg3"))))
(build-system cmake-build-system)
(arguments (list #:tests? #false)) ;there are no tests
(inputs
(list glfw freeglut))
(native-inputs
(list gcc-7))
(home-page "https://github.com/lucasw/tao_synth")
(synopsis "Sound synthesis with physical models")
(description "Tao is a software package for sound synthesis using physical
models. It provides a virtual acoustic material constructed from masses and
springs which can be used as the basis for building quite complex virtual
musical instruments. Tao comes with a synthesis language for creating and
playing instruments and a C++ API for those who would like to use it as an
object library.")
(license license:lgpl2.0+))))
(define-public csound
(package
(name "csound")
@ -1722,7 +1769,7 @@ follower.")
(define-public fluidsynth
(package
(name "fluidsynth")
(version "2.1.8")
(version "2.2.4")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1731,7 +1778,7 @@ follower.")
(file-name (git-file-name name version))
(sha256
(base32
"0r944ndn138ak9s3ivgd1wgkwkh6zp7jjnxd30hryczc6kbhkpmr"))))
"1061rdj69503spkd8vmfl3fqvyg4l41k5xcc4gw7niy31hnpnjmn"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no check target
@ -1742,18 +1789,19 @@ follower.")
;; Install libraries to /lib, not /lib64.
(substitute* "CMakeLists.txt"
(("LIB_SUFFIX \\$\\{_init_lib_suffix\\}")
"LIB_SUFFIX \"\""))
#t)))))
"LIB_SUFFIX \"\"")))))))
(inputs
(list libsndfile
alsa-lib
jack-1
ladspa
lash
readline
glib))
(list ladspa))
(native-inputs
(list pkg-config))
(propagated-inputs
;; In Libs.private of fluidsynth.pc.
(list alsa-lib
glib
jack-1
lash
libsndfile
readline))
(home-page "https://www.fluidsynth.org/")
(synopsis "SoundFont synthesizer")
(description
@ -1763,22 +1811,6 @@ device. It is the software analogue of a MIDI synthesizer. FluidSynth can
also play midifiles using a Soundfont.")
(license license:lgpl2.1+)))
;; gzdoom@3.3.0 and lmms@1.1.3 requires this version. Remove once no longer
;; needed.
(define-public fluidsynth-1
(package
(inherit fluidsynth)
(version "1.1.11")
(source (origin
(inherit (package-source fluidsynth))
(uri (git-reference
(url "https://github.com/FluidSynth/fluidsynth")
(commit (string-append "v" version))))
(file-name (git-file-name "fluidsynth" version))
(sha256
(base32
"0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"))))))
(define-public faad2
(package
(name "faad2")
@ -1909,7 +1941,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
(define-public guitarix
(package
(name "guitarix")
(version "0.41.0")
(version "0.43.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -1917,7 +1949,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
version ".tar.xz"))
(sha256
(base32
"0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0"))))
"1bsjlfd7x09p3iiljilyfbns6hpqn9cgp6psl4ccd6i1lwascfrm"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
@ -2562,7 +2594,7 @@ files.")
(lambda _
(substitute* "requirements.txt" (("==") ">=")))))))
(home-page "https://github.com/NFJones/audio-to-midi")
(synopsis "Convert audio to multichannel MIDI.")
(synopsis "Convert audio to multichannel MIDI")
(description "@command{audio-to-midi} converts audio files to multichannel
MIDI files. It accomplishes this by performing FFTs on all channels of the
audio data at user-specified time steps. It then separates the resulting
@ -2854,14 +2886,14 @@ different audio devices such as ALSA or PulseAudio.")
(define-public qjackctl
(package
(name "qjackctl")
(version "0.9.5")
(version "0.9.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz"))
(sha256
(base32
"1g61xwsxsndwlnh4547vl7jfcf4kqlbb4394jq2m8qbbzk51b6rv"))))
"0sqni9ppwadc01fnyqj6lkwy30ql1vccqglv9imd3zdchffjpjir"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no check target
@ -3199,22 +3231,22 @@ the Turtle syntax.")
(define-public suil
(package
(name "suil")
(version "0.10.8")
(version "0.10.10")
(source (origin
(method url-fetch)
(uri (string-append "https://download.drobilla.net/suil-"
version ".tar.bz2"))
(sha256
(base32
"0h0ghk1s0lrj4gh12r7390b0ybaw7awnj0vhchyy9ll0gvhqgkci"))))
"1ysbazqlbyxlzyr9zk7dj2mgb6pn0amllj2cd5g1m56wnzk0h3vm"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f)) ;no check target
(inputs
`(("lv2" ,lv2)
("gtk+" ,gtk+-2)
("gtk+" ,gtk+)
("qt" ,qtbase-5)))
(list lv2
gtk+-2
gtk+
qtbase-5))
(native-inputs
(list pkg-config))
(home-page "https://drobilla.net/software/suil/")
@ -3399,7 +3431,7 @@ stretching and pitch scaling of audio. This package contains the library.")
(define-public libkeyfinder
(package
(name "libkeyfinder")
(version "2.2.5")
(version "2.2.6")
(source
(origin
(method git-fetch)
@ -3408,7 +3440,7 @@ stretching and pitch scaling of audio. This package contains the library.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1623kirmxhmvmhx7f8lbzk0f18w2hrhwlkzl8l4aa906lfqffdp2"))))
(base32 "0s7nqjmv44q5qjynfcs0j6h4a6qcz4mxzandkkdjjbnwv5rxc3zg"))))
(build-system cmake-build-system)
(native-inputs
(list catch-framework2))
@ -5104,7 +5136,7 @@ edited, converted, compressed and saved.")
(define-public lsp-dsp-lib
(package
(name "lsp-dsp-lib")
(version "0.5.11")
(version "0.5.14")
(source
(origin
(method url-fetch)
@ -5112,23 +5144,23 @@ edited, converted, compressed and saved.")
"releases/download/" version
"/lsp-dsp-lib-" version "-src.tar.gz"))
(sha256
(base32 "0lkar6r9jfrrqswi8nnndlm5a9kfwqjn92d81gp2yhc3p46xsswz"))))
(base32 "1gcznkyybywbgdi2fhx27i8sckhy6ahvxax72b213g1lr5aaw7bq"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:make-flags
(list (string-append "CC=" ,(cc-for-target)))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'omit-static-library
(lambda _
(substitute* "src/Makefile"
((".*@.*ARTIFACT_SLIB.*") "") ; don't install it
((" \\$\\(ARTIFACT_SLIB\\)") "")))) ; don't build it
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "config"
(string-append "PREFIX=" (assoc-ref outputs "out"))))))))
(list #:tests? #f ; no tests
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'omit-static-library
(lambda _
(substitute* "src/Makefile"
((".*cp \\$\\(ARTIFACT_SLIB\\).*") "") ; don't install it
((" \\$\\(ARTIFACT_SLIB\\)") "")))) ; don't build it
(replace 'configure
(lambda _
(invoke "make" "config"
(string-append "PREFIX=" #$output)))))))
(home-page "https://github.com/sadko4u/lsp-dsp-lib")
(synopsis "Digital signal processing library")
(description "The LSP DSP library provides a set of functions that perform
@ -5443,6 +5475,78 @@ information such as sample rate, determining whether an audio file is silent,
and much more.")
(license license:bsd-3))))
(define-public python-resampy
(package
(name "python-resampy")
(version "0.2.2")
(source
(origin
(method git-fetch)
(uri
(git-reference
;; PyPi does not include tests.
(url "https://github.com/bmcfee/resampy")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0qmkxl5sbgh0j73n667vyi7ywzh09iaync91yp1j5rrcmwsn0qfs"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "tests")))))))
(propagated-inputs
(list python-numba python-numpy python-scipy python-six))
(native-inputs
(list python-pytest python-pytest-cov))
(home-page "https://github.com/bmcfee/resampy")
(synopsis "Efficient signal resampling")
(description
"@code{python-resampy} implements the band-limited sinc interpolation
method for sampling rate conversion as described by Julius O. Smith at the
@url{https://ccrma.stanford.edu/~jos/resample/, Digital Audio Resampling
Home Page}.")
(license license:isc)))
(define-public python-librosa
(package
(name "python-librosa")
(version "0.8.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "librosa" version))
(sha256
(base32 "1cx6rhcvak0hy6bx84jwzpxmwgi92m82w77279akwjmfd3khagf5"))))
(build-system python-build-system)
(arguments
;; Tests require internet connection to download MATLAB scripts for
;; generating the testing data.
`(#:tests? #f))
(propagated-inputs
(list python-audioread
python-decorator
python-joblib
python-numba
python-numpy
python-packaging
python-pooch
python-resampy
python-scikit-learn
python-scipy
python-soundfile))
(home-page "https://librosa.org")
(synopsis "Python module for audio and music processing")
(description
"@code{librosa} is a python package for music and audio analysis. It
provides the building blocks necessary to create music information retrieval
systems.")
(license license:isc)))
(define-public mda-lv2
(package
(name "mda-lv2")
@ -5474,3 +5578,62 @@ and much more.")
"MDA-LV2 is an LV2 port of the MDA plugins. It includes effects and a few
instrument plugins.")
(license license:gpl3+)))
(define-public libodiosacd
(package
(name "libodiosacd")
(version "21.8.30")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tari01/libodiosacd")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0iamf7wksbql0qfigdv5ahaax53ms2yligdav8dw6x0ay88x4lhi"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-makefile
(lambda _
(substitute* "Makefile"
(("\\$\\(DESTDIR\\)/usr")
"\\$(DESTDIR)"))))
(delete 'configure)) ; no configure script
#:make-flags
(list (string-append "DESTDIR=" %output))))
(synopsis "Library for decoding Super Audio CDs (SACD)")
(description
"The Odio SACD shared library is a decoding engine which takes a Super
Audio CD source and extracts a 24-bit high resolution WAV file. It handles
both DST and DSD streams.")
(home-page "https://tari.in/www/software/libodiosacd/")
(license license:gpl3+)))
(define-public odio-sacd
(package
(name "odio-sacd")
(version "21.1.9")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tari01/odio-sacd")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0314srqk0r4qv292qiaply619l2fw04nkdwvqhj3q1dqzv41g4qk"))))
(inputs (list libodiosacd))
;; Build system and arguments for libodiosacd are identical.
(build-system (package-build-system libodiosacd))
(arguments (package-arguments libodiosacd))
(synopsis "Rip Super Audio CDs (SACD)")
(description
"Odio SACD is a command-line application which takes a Super Audio CD
source and extracts a 24-bit high resolution WAV file. It handles both DST
and DSD streams.")
(home-page "https://tari.in/www/software/odio-sacd/")
(license license:gpl3+)))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2020, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,6 +28,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
@ -88,34 +90,58 @@ data.")
(license (list license:lgpl2.1+ ; the libraries (liboath/ & libpskc/)
license:gpl3+)))) ; the tools (everything else)
(define-public oauth2l
(package
(name "oauth2l")
(version "1.2.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/oauth2l")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0a9x0b31ybyjg0k7923xw6zr6crm0kigcn8g6hyr228nbvw35r8w"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/google/oauth2l"))
(home-page "https://github.com/google/oauth2l")
(synopsis "Simple CLI for interacting with Google API authentication")
(description
"@code{oauth2l} (pronounced ``oauth tool'') is a simple command-line tool
for working with @url{https://developers.google.com/identity/protocols/OAuth2,
Google OAuth 2.0} written in Go. Its primary use is to fetch and print OAuth
2.0 access tokens, which can be used with other command-line tools and
scripts.")
(license license:asl2.0)))
(define-public yubico-pam
(let ((commit "b5bd00db81e0e0e0ecced65c684080bb56ddc35b")
(revision "0"))
(package
(name "yubico-pam")
(version (git-version "2.26" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Yubico/yubico-pam")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"10dq8dqi3jldllj6p8r9hldx9sank9n82c44w8akxrs1vli6nj3m"))))
(build-system gnu-build-system)
(arguments
;; The pam_test fails because ykclient fails to build a Curl handle.
'(#:make-flags '("TESTS=util_test")))
(inputs
(list linux-pam libyubikey ykclient yubikey-personalization))
(native-inputs
(list autoconf automake libtool asciidoc pkg-config))
(home-page "https://developers.yubico.com/yubico-pam")
(synopsis "Yubico pluggable authentication module")
(description "The Yubico PAM module provides an easy way to integrate the
(package
(name "yubico-pam")
(version "2.27")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Yubico/yubico-pam")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0hb773zlf11xz4bwmsqv2mq5d4aq2g0crdr5cp9xwc4ivi5gd4kg"))))
(build-system gnu-build-system)
(arguments
;; The pam_test fails because ykclient fails to build a Curl handle.
'(#:make-flags '("TESTS=util_test")))
(inputs
(list linux-pam libyubikey ykclient yubikey-personalization))
(native-inputs
(list autoconf automake libtool asciidoc pkg-config))
(home-page "https://developers.yubico.com/yubico-pam")
(synopsis "Yubico pluggable authentication module")
(description "The Yubico PAM module provides an easy way to integrate the
YubiKey into your existing user authentication infrastructure.")
(license license:bsd-2))))
(license license:bsd-2)))
(define-public pamtester
(package

View File

@ -68,29 +68,38 @@
`(;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It
;; should use our own "cpp" instead of "/lib/cpp".
#:tests? #f
,@(if (%current-target-system)
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'patch-non-shebang-references
(lambda* (#:key build inputs outputs #:allow-other-keys)
;; `patch-shebangs' patches shebangs only, and the Perl
;; scripts use a re-exec feature that references the
;; build hosts' perl. Also, BASH and M4 store references
;; hide in the scripts.
(let ((bash (assoc-ref inputs "bash"))
(m4 (assoc-ref inputs "m4"))
(perl (assoc-ref inputs "perl"))
(out (assoc-ref outputs "out"))
(store-directory (%store-directory)))
(substitute* (find-files (string-append out "/bin"))
(((string-append store-directory "/[^/]*-bash-[^/]*"))
bash)
(((string-append store-directory "/[^/]*-m4-[^/]*"))
m4)
(((string-append store-directory "/[^/]*-perl-[^/]*"))
perl))
#t)))))
'())))
#:phases
(modify-phases %standard-phases
,@(if (%current-target-system)
'((add-after 'install 'patch-non-shebang-references
(lambda* (#:key build inputs outputs #:allow-other-keys)
;; `patch-shebangs' patches shebangs only, and the Perl
;; scripts use a re-exec feature that references the
;; build hosts' perl. Also, BASH and M4 store references
;; hide in the scripts.
(let ((bash (assoc-ref inputs "bash"))
(m4 (assoc-ref inputs "m4"))
(perl (assoc-ref inputs "perl"))
(out (assoc-ref outputs "out"))
(store-directory (%store-directory)))
(substitute* (find-files (string-append out "/bin"))
(((string-append store-directory "/[^/]*-bash-[^/]*"))
bash)
(((string-append store-directory "/[^/]*-m4-[^/]*"))
m4)
(((string-append store-directory "/[^/]*-perl-[^/]*"))
perl))))))
'())
(add-after 'install 'unpatch-shebangs
(lambda* (#:key outputs #:allow-other-keys)
;; Scripts that "autoconf -i" installs (config.guess,
;; config.sub, and install-sh) must use a regular shebang
;; rather than a reference to the store. Restore it.
(let* ((out (assoc-ref outputs "out"))
(build-aux (string-append
out "/share/autoconf/build-aux")))
(substitute* (find-files build-aux)
(("^#!.*/bin/sh") "#!/bin/sh"))))))))
(home-page "https://www.gnu.org/software/autoconf/")
(synopsis "Create source code configuration scripts")
(description
@ -130,19 +139,7 @@ know anything about Autoconf or M4.")
(executable-file? file)))
(find-files "bin"
(lambda (file stat)
(executable-file? file)))))
#t))
(add-after 'install 'unpatch-shebangs
(lambda* (#:key outputs #:allow-other-keys)
;; Scripts that "autoconf -i" installs (config.guess,
;; config.sub, and install-sh) must use a regular shebang
;; rather than a reference to the store. Restore it.
;; TODO: Move this phase to 'autoconf-2.69'.
(let* ((out (assoc-ref outputs "out"))
(build-aux (string-append
out "/share/autoconf/build-aux")))
(substitute* (find-files build-aux)
(("^#!.*/bin/sh") "#!/bin/sh")))))))))))
(executable-file? file)))))))))))))
(define-public autoconf autoconf-2.69)

View File

@ -4714,7 +4714,7 @@ CONFIG_PINCTRL_MCP23S08_SPI=m
CONFIG_PINCTRL_MCP23S08=m
CONFIG_PINCTRL_SX150X=y
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_CHERRYVIEW=m
CONFIG_PINCTRL_CHERRYVIEW=y
CONFIG_PINCTRL_LYNXPOINT=m
CONFIG_PINCTRL_INTEL=y
CONFIG_PINCTRL_ALDERLAKE=m
@ -6602,7 +6602,7 @@ CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_GM12U320=m
CONFIG_DRM_SIMPLEDRM=m
# CONFIG_DRM_SIMPLEDRM is not set
CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
@ -6731,7 +6731,7 @@ CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=m
CONFIG_FB_SIMPLE=y
CONFIG_FB_SSD1307=m
CONFIG_FB_SM712=m
# end of Frame buffer Devices

View File

@ -4713,7 +4713,7 @@ CONFIG_PINCTRL_MCP23S08_SPI=m
CONFIG_PINCTRL_MCP23S08=m
CONFIG_PINCTRL_SX150X=y
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_CHERRYVIEW=m
CONFIG_PINCTRL_CHERRYVIEW=y
CONFIG_PINCTRL_LYNXPOINT=m
CONFIG_PINCTRL_INTEL=y
CONFIG_PINCTRL_ALDERLAKE=m
@ -6565,7 +6565,7 @@ CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_GM12U320=m
CONFIG_DRM_SIMPLEDRM=m
# CONFIG_DRM_SIMPLEDRM is not set
CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
@ -6688,7 +6688,7 @@ CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=m
CONFIG_FB_SIMPLE=y
CONFIG_FB_SSD1307=m
CONFIG_FB_SM712=m
# end of Frame buffer Devices

View File

@ -18,6 +18,7 @@
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
import os
import site
import sys
# Commentary:
@ -47,9 +48,18 @@ all_sites_norm = [os.path.normpath(p) for p in all_sites_raw]
matching_sites = [p for p in all_sites_norm
if p.endswith(site_packages_prefix)]
# Insert sites matching the current version into sys.path, right before
# Python's own site. This way, the user can override the libraries provided
# by Python itself.
sys_path_absolute = [os.path.realpath(p) for p in sys.path]
index = sys_path_absolute.index(python_site)
sys.path[index:index] = matching_sites
if matching_sites:
# Deduplicate the entries, append them to sys.path, and handle any
# .pth files they contain.
for s in matching_sites:
site.addsitedir(s)
# Move the entries that were appended to sys.path in front of
# Python's own site-packages directory. This enables Guix
# packages to override Python's bundled packages, such as 'pip'.
python_site_index = sys.path.index(python_site)
new_site_start_index = sys.path.index(matching_sites[0])
if python_site_index < new_site_start_index:
sys.path = (sys.path[:python_site_index]
+ sys.path[new_site_start_index:]
+ sys.path[python_site_index:new_site_start_index])

View File

@ -0,0 +1,48 @@
#! @PYTHON@
# -*- mode: python -*-
from __future__ import print_function
import os
import sys
import warnings
def path_to_common(renpy_base):
return renpy_base + "/common"
def path_to_saves(gamedir, save_directory=None):
import renpy
if save_directory is None:
save_directory = renpy.config.save_directory
save_directory = renpy.exports.fsencode(save_directory)
if not save_directory:
return gamedir + "/saves"
return os.path.join(os.path.expanduser("~/.renpy"), save_directory)
def main():
try:
import renpy.bootstrap
import renpy.arguments
except ImportError:
print("""Could not import renpy.bootstrap.
Please ensure you decompressed Ren'py correctly, preserving the directory
structure.""", file=sys.stderr)
raise
args = renpy.arguments.bootstrap()
if not args.basedir:
print("""This Ren'py requires a basedir to launch.
The basedir is the directory, in which .rpy source files or compiled .rpyc files
live -- usually the 'game' subdirectory of a game packaged by Ren'py.
If you want the Ren'py launcher, use \"renpy-launcher\" instead.""",
file=sys.stderr)
sys.exit()
renpy.bootstrap.bootstrap("@RENPY_BASE@")
if __name__ == "__main__":
main()

View File

@ -43,22 +43,21 @@
(version "0.8")
(home-page "https://avahi.org")
(source (origin
(method url-fetch)
(uri (string-append home-page "/download/avahi-"
version ".tar.gz"))
(sha256
(base32
"1npdixwxxn3s9q1f365x9n9rc5xgfz39hxf23faqvlrklgbhj0q6"))
(patches (search-patches "avahi-localstatedir.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Fix version constraint in the avahi-libevent pkg-config file.
;; This can be removed for Avahi versions > 0.8.
(substitute* "avahi-libevent.pc.in"
(("libevent-2\\.1\\.5")
"libevent >= 2.1.5"))
#t))))
(method url-fetch)
(uri (string-append home-page "/download/avahi-"
version ".tar.gz"))
(sha256
(base32
"1npdixwxxn3s9q1f365x9n9rc5xgfz39hxf23faqvlrklgbhj0q6"))
(patches (search-patches "avahi-localstatedir.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Fix version constraint in the avahi-libevent pkg-config file.
;; This can be removed for Avahi versions > 0.8.
(substitute* "avahi-libevent.pc.in"
(("libevent-2\\.1\\.5")
"libevent >= 2.1.5"))))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-distro=none"

View File

@ -373,11 +373,9 @@ patcher application.")))
(sha256
(base32 "022p993wf9l9mp6vg94x592vfqd1k1sjrq5f6x45h5r16qy6bdzh"))
(modules '((guix build utils)))
;; Remove pre-built Java binaries.
(snippet
'(begin
;; Remove pre-built Java binaries.
(delete-file-recursively "lib/")
#t))))
'(delete-file-recursively "lib/"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there's a Java test which is run as part of the Java build.
@ -533,12 +531,12 @@ patcher application.")))
"share/axoloti/firmware")))
(mkdir-p target)
(install-file (string-append old-firmware
"flasher/flasher_build/flasher.bin")
"/flasher/flasher_build/flasher.bin")
target)
;; TODO: the old file differs from the file that is included
;; in this repository as the old firmware.
(install-file (string-append old-firmware
"build/axoloti.bin")
"/build/axoloti.bin")
target))
;; We do this to ensure that this package retains references to
@ -573,8 +571,7 @@ patcher application.")))
" -Dsun.java2d.renderer=org.marlin.pisces.MarlinRenderingEngine"
" -Daxoloti_release=" share
" -jar " dir "/Axoloti.jar")))))
(chmod target #o555))
#t)))
(chmod target #o555)))))
(add-after 'install 'strip-jar-timestamps
(assoc-ref ant:%standard-phases 'strip-jar-timestamps)))))
(inputs

View File

@ -21,6 +21,7 @@
;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -38,6 +39,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages backup)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix git-download)
@ -46,10 +48,12 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
@ -70,6 +74,7 @@
#:use-module (gnu packages mcrypt)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages networking)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@ -80,6 +85,7 @@
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rsync)
#:use-module (gnu packages ruby)
#:use-module (gnu packages serialization)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls)
@ -385,7 +391,7 @@ list and implement the backup strategy.")
(define-public snapraid
(package
(name "snapraid")
(version "11.6")
(version "12.0")
(source
(origin
(method git-fetch)
@ -394,22 +400,22 @@ list and implement the backup strategy.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1jpg97my0akh2ayzy0nm4yqiv4gcx79rgyrkzd19yyv3iy719vcw"))))
(base32 "0k8pynafkx8bhnqnjhc3jsds5p40sflz4drm88i6dg6ifv35mhh9"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--enable-valgrind"
"--with-blkid")
#:phases
(modify-phases %standard-phases
(add-before 'bootstrap 'set-version
(lambda _
(setenv "VERSION" ,version)
(patch-shebang "autover.sh"))))))
(list #:configure-flags
;; XXX --enable-valgrind fails with A must-be-redirected function
;; whose name matches the pattern: strlen in an object with soname
;; matching: ld-linux-x86-64.so.2 was not found […]; used to work.
#~(list "--with-blkid")
#:phases
#~(modify-phases %standard-phases
(add-before 'bootstrap 'set-version
(lambda _
(setenv "VERSION" #$version)
(patch-shebang "autover.sh"))))))
(native-inputs
(list automake autoconf
;; For the tests.
valgrind))
(list automake autoconf))
(inputs
(list `(,util-linux "lib"))) ; libblkid
(home-page "https://www.snapraid.it/")
@ -748,14 +754,14 @@ to not fully trusted targets. Borg is a fork of Attic.")
(define-public wimlib
(package
(name "wimlib")
(version "1.13.4")
(version "1.13.5")
(source (origin
(method url-fetch)
(uri (string-append "https://wimlib.net/downloads/"
"wimlib-" version ".tar.gz"))
(sha256
(base32
"04ny5s5z05gk6davbwkjkraan781k2xzw6kjwp75h6ncv45dv1sb"))))
"08z3xxm5hq1n4wmyhgz14p1cv0w2lx610vn8nhfwpds4n7lwkz1j"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
@ -877,7 +883,7 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
(description
"With dirvish you can maintain a set of complete images of your
file systems with unattended creation and expiration. A dirvish backup vault
is like a time machine for your data. ")
is like a time machine for your data.")
(license (license:fsf-free "file://COPYING"
"Open Software License 2.0"))))
@ -1066,6 +1072,85 @@ directory subtrees may also be restored from full or partial backups in
interactive mode.")
(license license:bsd-3)))
(define-public btrbk
(package
(name "btrbk")
(version "0.31.3")
(source (origin
(method url-fetch)
(uri (string-append "https://digint.ch/download/btrbk/releases/"
name "-" version ".tar.xz"))
(sha256
(base32
"1lx7vnf386nsik8mxrrfyx1h7mkqk5zs26sy0s0lynfxcm4lkxb2"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags #~(list (string-append "PREFIX=" #$output))
#:phases #~(modify-phases %standard-phases
(replace 'configure
(lambda _
(substitute* "Makefile"
(("= /etc")
(string-append "= " #$output "/etc")))))
(delete 'check)
(add-after 'install 'wrap-scripts
(lambda* (#:key inputs outputs #:allow-other-keys)
(define btrbk (search-input-file outputs "bin/btrbk"))
;; From a comment in btrbk, "Calling btrbk via 'lsbtr'
;; symlink acts as an alias for 'btrbk ls', while also
;; changing the semantics of the command line options."
(substitute* btrbk
(("program_name = \\$0")
(string-append "program_name = "
"$ENV{'BTRBK_PROGRAM_NAME'}")))
;; Wrap the script, so that it works with SSH URI and
;; finds mbuffer out of the box.
(wrap-program btrbk
#:sh (search-input-file inputs "bin/bash")
'("BTRBK_PROGRAM_NAME" = ("$0"))
`("PATH" prefix
,(list (string-append #$btrfs-progs "/bin")
(string-append #$coreutils "/bin")
(string-append #$mbuffer "/bin")
(string-append #$openssh "/bin")))))))))
(native-inputs (list ruby-asciidoctor))
(inputs (list bash-minimal
btrfs-progs
coreutils
mbuffer
openssh
perl))
(home-page "https://digint.ch/btrbk/")
(synopsis "Backup tool for Btrfs subvolumes")
(description "Btrbk is a backup tool for Btrfs subvolumes, taking
advantage of Btrfs specific capabilities to create atomic snapshots and
transfer them incrementally to your backup locations. The source and target
locations are specified in a config file, which allows easily configuring
simple scenarios like e.g. a @i{laptop with locally attached backup disks}, as
well as more complex ones, e.g. a @i{server receiving backups from several
hosts via SSH, with different retention policy}. It has features such as:
@itemize
@item atomic snapshots
@item incremental backups
@item flexible retention policy
@item backups to multiple destinations
@item transfer via SSH
@item resume backups (for removable and mobile devices)
@item archive to offline storage
@item encrypted backups to non-btrfs storage
@item wildcard subvolumes (useful for Docker and LXC containers)
@item transaction log
@item comprehensive list and statistics output
@item resolve and trace Btrfs parent-child and received-from relationships
@item list file changes between backups
@item calculate accurate disk space usage based on block regions.
@end itemize
Btrbk is designed to run as a cron job for triggering periodic snapshots and
backups, as well as from the command line (e.g. for instantly creating
additional snapshots).")
(license license:gpl3+)))
(define-public burp
(package
(name "burp")
@ -1109,14 +1194,14 @@ backup.")
(define-public disarchive
(package
(name "disarchive")
(version "0.3.0")
(version "0.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.ngyro.com/disarchive/"
"disarchive-" version ".tar.gz"))
(sha256
(base32
"0jgc53rrbas8i4z13l2ii99cpav1ma73spsjg70ygihf0635r3dh"))))
"1pql8cspsxyx8cpw3xyhirnisv6rb4vj5mxr1d7w9la72q740n8s"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@ -1124,11 +1209,12 @@ backup.")
pkg-config
guile-3.0 ;for cross-compilation
guile-gcrypt
guile-lzma
guile-quickcheck))
(inputs
(list guile-3.0 zlib))
(propagated-inputs
(list guile-gcrypt))
(list guile-gcrypt guile-lzma))
(home-page "https://ngyro.com/software/disarchive.html")
(synopsis "Software archive disassembler")
(description "Disarchive can disassemble software archives into data
@ -1142,32 +1228,32 @@ compression parameters used by Gzip.")
(define-public borgmatic
(package
(name "borgmatic")
(version "1.5.21")
(version "1.5.22")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgmatic" version))
(sha256
(base32 "1kw3mvyby8zd7ql3g930w7z55k8pi9iwj43kh8lvi58b4nzrvamq"))))
(base32 "0pvqlj17vp81i7saxqh5hsaxqz29ldrjd7bcssh4g1h0ikmnaf2r"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'configure
(lambda* (#:key inputs #:allow-other-keys)
;; Set absolute store path to borg.
(substitute* "borgmatic/commands/borgmatic.py"
(("location\\.get\\('local_path', 'borg'\\)")
(string-append "location.get('local_path', '"
(assoc-ref inputs "borg") "/bin/borg"
"')")))))
(replace 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
;; Tests require the installed executable.
(setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
":" (getenv "PATH")))
(invoke "pytest")))))))
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'configure
(lambda* (#:key inputs #:allow-other-keys)
;; Set absolute store path to borg.
(substitute* "borgmatic/commands/borgmatic.py"
(("location\\.get\\('local_path', 'borg'\\)")
(string-append "location.get('local_path', '"
(search-input-file inputs "bin/borg")
"')")))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; Tests require the installed executable.
(setenv "PATH" (string-append #$output "/bin"
":" (getenv "PATH")))
(invoke "pytest")))))))
(inputs
(list borg python-colorama python-jsonschema python-requests
python-ruamel.yaml))

View File

@ -84,14 +84,14 @@
(define-public hello
(package
(name "hello")
(version "2.10")
(version "2.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/hello/hello-" version
".tar.gz"))
(sha256
(base32
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
"1g84a3hqs4pgx3yzs99cysv3iq440ncdw77bf03fsi1w5mby174c"))))
(build-system gnu-build-system)
(synopsis "Hello, GNU world: An example GNU package")
(description
@ -521,10 +521,12 @@ change. GNU make offers many powerful extensions over the standard utility.")
(sha256
(base32 "1m3b2rdfv1dmdpd0bzg1hy7i8a2qng53szc6livyi3nh6101mz37"))
(patches (search-patches "binutils-loongson-workaround.patch"
"binutils-2.37-file-descriptor-leak.patch"))))
"binutils-2.37-file-descriptor-leak.patch"
"binutils-CVE-2021-45078.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '(;; Add `-static-libgcc' to not retain a dependency
`(#:out-of-source? #t ;recommended in the README
#:configure-flags '(;; Add `-static-libgcc' to not retain a dependency
;; on GCC when bootstrapping.
"LDFLAGS=-static-libgcc"
@ -543,7 +545,13 @@ change. GNU make offers many powerful extensions over the standard utility.")
;; Make sure 'ar' and 'ranlib' produce archives in a
;; deterministic fashion.
"--enable-deterministic-archives")))
"--enable-deterministic-archives"
"--enable-64-bit-bfd"
"--enable-compressed-debug-sections=all"
"--enable-lto"
"--enable-separate-code"
"--enable-threads")))
(synopsis "Binary utilities: bfd gas gprof ld")
(description
@ -556,23 +564,6 @@ included.")
(license gpl3+)
(home-page "https://www.gnu.org/software/binutils/")))
;;; TODO: Merge into binutils on the next world rebuild.
(define-public binutils-next
(package/inherit binutils
(name "binutils-next")
(version "2.37")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
((#:out-of-source? _ #f) ;recommended in the README
#t)
((#:configure-flags flags)
`(cons* "--enable-64-bit-bfd"
"--enable-compressed-debug-sections=all"
"--enable-lto"
"--enable-separate-code"
"--enable-threads"
,flags))))))
;; FIXME: ath9k-firmware-htc-binutils.patch do not apply on 2.34 because of a
;; big refactoring of xtensa-modules.c (commit 567607c11fbf7105 upstream).
;; Keep this version around until the patch is updated.
@ -594,7 +585,7 @@ included.")
(properties '())))
(define-public binutils-gold
(package/inherit binutils-next
(package/inherit binutils
(name "binutils-gold")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
@ -606,7 +597,15 @@ included.")
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* "gold/Makefile.in"
(("/bin/sh") (which "sh")))))))))
(("/bin/sh") (which "sh")))))
;; Multiple failing tests on some architectures in the gold testsuite.
,@(if (or (target-arm?)
(target-ppc32?))
'((add-after 'unpack 'skip-gold-testsuite
(lambda _
(substitute* "gold/Makefile.in"
((" testsuite") " ")))))
'())))))
(native-inputs
`(("bc" ,bc)))))
@ -1104,7 +1103,8 @@ to the @code{share/locale} sub-directory of this package.")
(assoc-ref %outputs "out")
"/lib/locale/"
,(version-major+minor
(package-version glibc)))))))))))
(package-version glibc)))))))))
(properties `((upstream-name . "glibc")))))
(define %default-utf8-locales
;; These are the locales commonly used for tests---e.g., in Guile's i18n

View File

@ -269,6 +269,23 @@ without modification.")
(delete-file-recursively (string-append out "/share"))
#t))))))))))
(define-public bash-with-syslog
(package
(inherit bash)
(name "bash-with-syslog")
(arguments
(substitute-keyword-arguments (package-arguments bash)
((#:phases phases '%standard-phases)
`(modify-phases ,phases
(add-after 'unpack 'enable-syslogging
(lambda _
(substitute* "config-top.h"
(("/\\* #define SYSLOG_HISTORY \\*/")
"#define SYSLOG_HISTORY"))))))))
(description
"Bash is the shell, or command-line interpreter, of the GNU system. This
variant logs the history to syslog.")))
(define-public bash-completion
(package
(name "bash-completion")

View File

@ -52,14 +52,14 @@
(define-public fio
(package
(name "fio")
(version "3.28")
(version "3.29")
(source (origin
(method url-fetch)
(uri (string-append "https://brick.kernel.dk/snaps/"
"fio-" version ".tar.bz2"))
(sha256
(base32
"0ba9cnjrnm3nwcfbhh5x2sycr54j3yn1rqn76kjdyz40f3pdg3qm"))))
"11k7ksksnb8lcbz0qdc9g7zlzaa0515j7kx4mlhk75sfs43v9zxc"))))
(build-system gnu-build-system)
(arguments
`(#:modules (,@%gnu-build-system-modules
@ -254,60 +254,57 @@ file metadata operations that can be performed per second.")
(define-public python-locust
(package
(name "python-locust")
(version "1.4.3")
(version "2.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "locust" version))
(sha256
(base32
"0vmw151xcaznd2j85n96iyv9fniss0bkk91xn4maw2gwzym424xk"))))
"1516z6z5pikybg7pma2cgxgj3wxaaky7z6d30mxf81wd4krbq16s"))))
(build-system python-build-system)
(arguments
`(#:phases
'(#:phases
(modify-phases %standard-phases
(add-before 'check 'extend-PATH
;; Add the 'locust' script to PATH, which is used in the test
;; suite.
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(setenv "PATH" (string-append out "/bin:"
(getenv "PATH"))))))
(replace 'check
(lambda _
(invoke "python" "-m" "pytest"
"-k" (string-join
(list
;; These tests return "non-zero exit status 1".
"not test_default_headless_spawn_options"
"not test_default_headless_spawn_options_with_shape"
"not test_headless_spawn_options_wo_run_time"
;; These tests depend on networking.
"not test_html_report_option"
"not test_web_options"
;; This test fails because of the warning "System open
;; file limit '1024' is below minimum setting '10000'".
"not test_skip_logging"
;; On some (slow?) machines, the following tests
;; fail, with the processes returning exit code
;; -15 instead of the expected 42 and 0,
;; respectively (see:
;; https://github.com/locustio/locust/issues/1708).
"not test_custom_exit_code"
"not test_webserver") " and ")))))))
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "python" "-m" "pytest" "locust"
"-k" (string-join
'(;; These tests return "non-zero exit status 1".
"not test_default_headless_spawn_options"
"not test_default_headless_spawn_options_with_shape"
"not test_headless_spawn_options_wo_run_time"
;; These tests depend on networking.
"not test_html_report_option"
"not test_web_options"
;; This test fails because of the warning "System open
;; file limit '1024' is below minimum setting '10000'".
"not test_skip_logging"
;; On some (slow?) machines, the following tests
;; fail, with the processes returning exit code
;; -15 instead of the expected 42 and 0,
;; respectively (see:
;; https://github.com/locustio/locust/issues/1708).
"not test_custom_exit_code"
"not test_webserver") " and "))))))))
(propagated-inputs
(list python-configargparse
python-flask
python-flask-basicauth
python-flask-cors
python-gevent
python-geventhttpclient
python-msgpack
python-psutil
python-pyzmq
python-requests
python-roundrobin
python-typing-extensions
python-werkzeug))
(native-inputs
(list python-mock python-pyquery python-pytest)) ;for more easily skipping tests
(list python-mock python-pyquery python-pytest
python-retry python-setuptools-scm))
(home-page "https://locust.io/")
(synopsis "Distributed load testing framework")
(description "Locust is a performance testing tool that aims to be easy to

View File

@ -1,11 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020, 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2019, 2020, 2021, 2022 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com>
;;; Copyright © 2020, 2021 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@ -626,13 +626,13 @@ based on mapping using Entrez Gene identifiers.")
(define-public r-org-hs-eg-db
(package
(name "r-org-hs-eg-db")
(version "3.7.0")
(version "3.14.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "org.Hs.eg.db" version 'annotation))
(sha256
(base32
"1qxz9l80yg3qdqszs6dsscp7lrpfi1bgd0pxh9j7q34vprzwhdim"))))
"0mnddv42ll0sc0zxf7hkgilslykbvfn7xgxg1g8qi57q2dmpwb6j"))))
(properties
`((upstream-name . "org.Hs.eg.db")))
(build-system r-build-system)
@ -956,6 +956,26 @@ annotations.")
Disease Ontology.")
(license license:artistic2.0)))
(define-public r-hgu133plus2-db
(package
(name "r-hgu133plus2-db")
(version "3.13.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "hgu133plus2.db" version 'annotation))
(sha256
(base32 "0i6cfk7ahql4fcgrq0dai9gkjbsahyzd9iv4lqv1ad58fzkmipnx"))))
(properties `((upstream-name . "hgu133plus2.db")))
(build-system r-build-system)
(propagated-inputs (list r-annotationdbi r-org-hs-eg-db))
(home-page "https://bioconductor.org/packages/hgu133plus2.db")
(synopsis "Affymetrix Affymetrix HG-U133_Plus_2 Array annotation data")
(description
"This package provides Affymetrix HG-U133_Plus_2 array annotation
data (chip hgu133plus2) assembled using data from public repositories.")
(license license:artistic2.0)))
(define-public r-pfam-db
(package
(name "r-pfam-db")
@ -1302,9 +1322,7 @@ downloaded from Encode.")
(version "1.14.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://bioconductor.org/packages/release/data/experiment"
"/src/contrib/pasilla_" version ".tar.gz"))
(uri (bioconductor-uri "pasilla" version 'experiment))
(sha256
(base32
"0h124i2fb2lbj2k48zzf1n7ldqa471bs26fbd9vw50299aqx28x0"))))
@ -1965,6 +1983,33 @@ the weighted combination of published signatures that, when summed, most
closely reconstructs the mutational profile.")
(license license:gpl2+)))
;; This is a CRAN package, but it depends on Bioconductor packages.
(define-public r-jetset
(package
(name "r-jetset")
(version "3.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "jetset" version))
(sha256
(base32 "0c99h5npsv2gf5d59s4qhkaqmjhbwa3prcykk24wzhnpfq6y6xhp"))))
(properties `((upstream-name . "jetset")))
(build-system r-build-system)
(propagated-inputs (list r-annotationdbi r-org-hs-eg-db))
(home-page "http://www.cbs.dtu.dk/biotools/jetset/")
(synopsis "One-to-one gene-probeset mapping for Affymetrix human microarrays")
(description
"This package provides a one-to-one mapping from gene to \"best\" probe
set for four Affymetrix human gene expression microarrays: hgu95av2, hgu133a,
hgu133plus2, and u133x3p. On Affymetrix gene expression microarrays, a single
gene may be measured by multiple probe sets. This can present a mild
conundrum when attempting to evaluate a gene \"signature\" that is defined by
gene names rather than by specific probe sets. This package also includes the
pre-calculated probe set quality scores that were used to define the
mapping.")
(license license:artistic2.0)))
;; This is a CRAN package, but it depends on Bioconductor packages.
(define-public r-nmf
(package
@ -2474,13 +2519,13 @@ powerful online queries from gene annotation to database mining.")
(define-public r-biocparallel
(package
(name "r-biocparallel")
(version "1.28.1")
(version "1.28.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "BiocParallel" version))
(sha256
(base32
"04s6y7q9dvg26fazs6lzkm668zpl3136j9gd5hkyihyrf4a1w3g3"))))
"0lkp7m2l66zq8yl788mkvi9kpb1haywxpf6ip9xl5y6iwm1w2b8p"))))
(properties
`((upstream-name . "BiocParallel")))
(build-system r-build-system)
@ -2659,13 +2704,13 @@ analysis.")
(define-public r-chipseeker
(package
(name "r-chipseeker")
(version "1.30.2")
(version "1.30.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "ChIPseeker" version))
(sha256
(base32
"1nr5p1h9131rvbpnh2kizzx9q6f4ycq6rzxy1yqg2pczqcg7hy4x"))))
"1f9m1p1viiigkmv15r2mknjrfw047jw1fylpqz5ipigc3jrphj1g"))))
(build-system r-build-system)
(native-inputs
(list r-knitr))
@ -3266,13 +3311,13 @@ alignments.")
(define-public r-genomicfeatures
(package
(name "r-genomicfeatures")
(version "1.46.1")
(version "1.46.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version))
(sha256
(base32
"1dm049r7k41m8zzp5b332fw3ah3jpzzgpcb21icxwhlg483ipjyv"))))
"0a3shdzc1r0f12q9w679hgj8ywrwbg36z7k0yp47dgfjl14lachk"))))
(properties
`((upstream-name . "GenomicFeatures")))
(build-system r-build-system)
@ -4472,6 +4517,56 @@ this package. It also provides functionalities for visualizing, summarizing
and comparing the clusterings.")
(license license:expat)))
(define-public r-transcriptr
(package
(name "r-transcriptr")
(version "1.22.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "transcriptR" version))
(sha256
(base32 "1p5l2z3szx3qh02x7r81ajl7yc5wqsri6q6pzw83livmalcli5yy"))))
(properties `((upstream-name . "transcriptR")))
(build-system r-build-system)
(propagated-inputs
(list r-biocgenerics
r-caret
r-chipseq
r-e1071
r-genomeinfodb
r-genomicalignments
r-genomicfeatures
r-genomicranges
r-ggplot2
r-iranges
r-proc
r-reshape2
r-rsamtools
r-rtracklayer
r-s4vectors))
(native-inputs (list r-knitr))
(home-page "https://bioconductor.org/packages/transcriptR")
(synopsis "Primary transcripts detection and quantification")
(description
"The differences in the RNA types being sequenced have an impact on the
resulting sequencing profiles. mRNA-seq data is enriched with reads derived
from exons, while GRO-, nucRNA- and chrRNA-seq demonstrate a substantial
broader coverage of both exonic and intronic regions. The presence of
intronic reads in GRO-seq type of data makes it possible to use it to
computationally identify and quantify all de novo continuous regions of
transcription distributed across the genome. This type of data, however, is
more challenging to interpret and less common practice compared to mRNA-seq.
One of the challenges for primary transcript detection concerns the
simultaneous transcription of closely spaced genes, which needs to be properly
divided into individually transcribed units. The R package transcriptR
combines RNA-seq data with ChIP-seq data of histone modifications that mark
active Transcription Start Sites (TSSs), such as, H3K4me3 or H3K9/14Ac to
overcome this challenge. The advantage of this approach over the use of, for
example, gene annotations is that this approach is data driven and therefore
able to deal also with novel and case specific events.")
(license license:gpl3)))
(define-public r-trajectoryutils
(package
(name "r-trajectoryutils")
@ -4567,13 +4662,13 @@ that integrates the various evidences.")
(define-public r-structuralvariantannotation
(package
(name "r-structuralvariantannotation")
(version "1.10.0")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "StructuralVariantAnnotation" version))
(sha256
(base32 "1pw7d39944dwk5gw6q7igcn866zpqwz01ljaha2ih5dfvmhxka8n"))))
(base32 "009l27kb9gvwwf57dwxfribhfhvn4z5pw8yc847l6pkbzqggx678"))))
(build-system r-build-system)
(propagated-inputs
(list r-assertthat
@ -4669,14 +4764,14 @@ unmodeled, or latent sources of noise.")
(define-public r-systempiper
(package
(name "r-systempiper")
(version "2.0.1")
(version "2.0.5")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "systemPipeR" version))
(sha256
(base32
"1r0qc1pyff9nvjix21xjd6fmka06ywr4ipr8szm52hq41hwaiqgq"))))
"1j91pyfjsqngxxlxjqc477pznlfax4vayrks2q12rxw76ija80hf"))))
(properties `((upstream-name . "systemPipeR")))
(build-system r-build-system)
(propagated-inputs
@ -4766,6 +4861,39 @@ provided as a matrix which can be used as an offset for different expression
of gene-level counts.")
(license license:gpl2+)))
;; This is a CRAN package, but it depends on a Bioconductor package.
(define-public r-valr
(package
(name "r-valr")
(version "0.6.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "valr" version))
(sha256
(base32
"0dd41irvibh6rwi52bw4zg4m7wpyihlp1kdkb8fdji3csw2fiz4k"))))
(build-system r-build-system)
(propagated-inputs
(list r-broom
r-dplyr
r-ggplot2
r-rcpp
r-readr
r-rlang
r-rtracklayer ;bioconductor package
r-stringr
r-tibble))
(native-inputs
(list r-knitr))
(home-page "https://github.com/rnabioco/valr")
(synopsis "Genome interval arithmetic in R")
(description
"This package enables you to read and manipulate genome intervals and
signals. It provides functionality similar to command-line tool suites within
R, enabling interactive analysis and visualization of genome-scale data.")
(license license:expat)))
(define-public r-variantannotation
(package
(name "r-variantannotation")
@ -5191,14 +5319,14 @@ signal in the input, that lead to spurious peaks during peak calling.")
(define-public r-diffbind
(package
(name "r-diffbind")
(version "3.4.0")
(version "3.4.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "DiffBind" version))
(sha256
(base32
"15p4jd9k520va6kzizkgsl4a18kh5r8i50qfdkv7xazsfhvxjm3i"))))
"1bz03ls7pkb09p6nkz7gfnhjlh06mgbp3j98ppnzibiar3cjrnfj"))))
(properties `((upstream-name . "DiffBind")))
(build-system r-build-system)
(propagated-inputs
@ -6212,14 +6340,14 @@ possible, parallelization is achieved using the BiocParallel framework.")
(define-public r-destiny
(package
(name "r-destiny")
(version "3.4.0")
(version "3.8.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "destiny" version))
(sha256
(base32
"1i7f5q02zvpfaxhd76fbw0h1wfgjphyn5hrmrjpvlnv4ardzsir2"))))
"01662p5j9l12ylf5a5djg4cjppd2n3chrygzw8nnrcf1806xn58y"))))
(build-system r-build-system)
(propagated-inputs
(list r-biobase
@ -6554,14 +6682,14 @@ independent of the p-value under the null hypothesis.")
(define-public r-icobra
(package
(name "r-icobra")
(version "1.22.1")
(version "1.22.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "iCOBRA" version))
(sha256
(base32
"05j3h314l2bw8n61h1nyiqhm3z7c1axycn4p3xkfccq5i4mcqvn2"))))
"1ln8l2cp6dqg6zv7s0qnmw5ii93v5sgp0b1nwswl52zdd8mivwxy"))))
(properties `((upstream-name . "iCOBRA")))
(build-system r-build-system)
(propagated-inputs
@ -6798,6 +6926,7 @@ several functions from the R igraph package.")
(uri (git-reference
(url "https://github.com/pneuvial/sanssouci.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"13ycdd790qw64qy2zdvcrpj3fc8as628rsly32438d3rifnlc5sk"))))
@ -7743,14 +7872,14 @@ All the visualization methods are developed based on ggplot2 graphics.")
(define-public r-clusterprofiler
(package
(name "r-clusterprofiler")
(version "4.2.0")
(version "4.2.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "clusterProfiler" version))
(sha256
(base32
"18y7482sw0awlhazikq13r2r0zid9ksk942rma87m448y1cq2fi5"))))
"08jhcbanz24x7zdkxznxz787g0nk3jfzd7zsap13sra7qnwaswq4"))))
(properties
`((upstream-name . "clusterProfiler")))
(build-system r-build-system)
@ -8719,14 +8848,14 @@ decomposition algorithms.")
(define-public r-yapsa
(package
(name "r-yapsa")
(version "1.19.0")
(version "1.20.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "YAPSA" version))
(sha256
(base32
"0fgcbskz96p5815nywsnqv2gzn7g93m438hpd5rpg85srg4wrpdj"))))
"08r05fzpraggbxv15lx0b68kjlkysp0rcdlm6n9avzmlsdqplb2h"))))
(properties `((upstream-name . "YAPSA")))
(build-system r-build-system)
(propagated-inputs
@ -8748,7 +8877,7 @@ decomposition algorithms.")
r-keggrest
r-limsolve
r-magrittr
r-pmcmr
r-pmcmrplus
r-pracma
r-reshape2
r-somaticsignatures
@ -9375,6 +9504,7 @@ Gaussian distributions.")
"0ardmryx6ac7v6n900a1klrrldvbmh7bxvy8ldz8rwid19h29ikr"))))
(properties `((upstream-name . "Rbowtie")))
(build-system r-build-system)
(inputs (list zlib))
(native-inputs
(list r-knitr))
(home-page "https://bioconductor.org/packages/Rbowtie/")
@ -9826,14 +9956,14 @@ cluster count and membership by stability evidence in unsupervised analysis.")
(define-public r-cytolib
(package
(name "r-cytolib")
(version "2.6.0")
(version "2.6.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "cytolib" version))
(sha256
(base32
"01r5dfjil1i526kb5gj9c8x9agi90x0bh7lzykbpn0g6s2hznbzi"))))
"16m5w6cp28p4fs2p8c8rjcg1d686xl8mpas816i7zxfh8m0bcqc9"))))
(properties `((upstream-name . "cytolib")))
(build-system r-build-system)
(native-inputs
@ -10849,6 +10979,8 @@ with multiple R processes supported by the package @code{parallel}.")
r-methylumi
r-minfi
r-watermelon))
(native-inputs
(list r-knitr))
(home-page "https://bioconductor.org/packages/bigmelon/")
(synopsis "Illumina methylation array analysis for large experiments")
(description
@ -11237,14 +11369,14 @@ data.")
(define-public r-universalmotif
(package
(name "r-universalmotif")
(version "1.12.1")
(version "1.12.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "universalmotif" version))
(sha256
(base32
"0d6zrwbc4i2npl29idm1icwa62wdx47z9s8yx7k662v3qagwpj16"))))
"1p9zdrsxqn4ayvbj05xgpzpbzkzrh7k0d62x10069687vfl6dlxg"))))
(properties
`((upstream-name . "universalmotif")))
(build-system r-build-system)
@ -11287,14 +11419,14 @@ motifs, and others.")
(define-public r-activedriverwgs
(package
(name "r-activedriverwgs")
(version "1.1.1")
(version "1.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ActiveDriverWGS" version))
(sha256
(base32
"06mvakdc8d2pn91p0sr4ixc561s4ia5h1cvd1p7pqd6s50dy4say"))))
"13b5yazgv9kckcp6gck183mh1m0q8lc5ixagmcy9s8kv2wz7wq45"))))
(properties
`((upstream-name . "ActiveDriverWGS")))
(build-system r-build-system)
@ -11302,6 +11434,9 @@ motifs, and others.")
(list r-biostrings
r-bsgenome
r-bsgenome-hsapiens-ucsc-hg19
r-bsgenome-hsapiens-ucsc-hg38
r-bsgenome-mmusculus-ucsc-mm9
r-bsgenome-mmusculus-ucsc-mm10
r-genomeinfodb
r-genomicranges
r-iranges
@ -11322,14 +11457,14 @@ using whole genome sequencing data.")
(define-public r-activepathways
(package
(name "r-activepathways")
(version "1.0.2")
(version "1.0.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "ActivePathways" version))
(sha256
(base32
"1hxy760x141ykrpqdbfldq4ggj1svj3lsrpwi4rb2x7r4lna937l"))))
"1prhwx0nnwy2q62l2r0z31mhk4mq6xdr6mjihdlwpwgwq4rfi60y"))))
(properties
`((upstream-name . "ActivePathways")))
(build-system r-build-system)
@ -11720,14 +11855,14 @@ searching and clustering.")
(define-public r-bioassayr
(package
(name "r-bioassayr")
(version "1.32.0")
(version "1.32.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "bioassayR" version))
(sha256
(base32
"1nfp1alva6qim5rbhg9j9w97p2n4z21ghr4j489lqklkcs4d030f"))))
"0pa8d7p9asp36wddkg779i3b9m12rxik56c54bmclnammr0cz89i"))))
(properties `((upstream-name . "bioassayR")))
(build-system r-build-system)
(propagated-inputs
@ -13858,19 +13993,21 @@ on the plot.")
(define-public r-abn
(package
(name "r-abn")
(version "2.5-0")
(version "2.6-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "abn" version))
(sha256
(base32
"1fqmhw0mhdl6az1gpg0byvx5snhz1pl3fqikhyfjcjrc9xbsq8yw"))))
"0fr5pyc43hly5ry5bbygibbh9mnql7vl4r5qz42d0ry4hahyxa4w"))))
(build-system r-build-system)
(inputs
(list gsl))
(propagated-inputs
(list r-lme4
(list r-doparallel
r-foreach
r-lme4
r-nnet
r-rcpp
r-rcpparmadillo
@ -14045,13 +14182,13 @@ starting site, start codon, stop codon and transcription ending site.")
(define-public r-sushi
(package
(name "r-sushi")
(version "1.31.0")
(version "1.32.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "Sushi" version))
(sha256
(base32
"1cj4palsq99vnwihp6z9mw0f8w9qj2vq8zwnabf3bgg0l1wpsc7c"))))
"073mh1d063ph5zk1d8kipgblr4l1ixqbxflhq4669761fi2frlw4"))))
(properties `((upstream-name . "Sushi")))
(build-system r-build-system)
(propagated-inputs
@ -14445,14 +14582,14 @@ the Bioconductor project.")
(define-public r-biodb
(package
(name "r-biodb")
(version "1.2.1")
(version "1.2.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "biodb" version))
(sha256
(base32
"1z4adapsnpw6fwanihdz43r11ijypxs5wbndb1i98j8kb7wf308k"))))
"0b5zva16r4kz8736h3djjgmh35nxmlin4f374rb4i2s55zsrb638"))))
(properties `((upstream-name . "biodb")))
(build-system r-build-system)
(propagated-inputs
@ -15006,13 +15143,13 @@ estimates, etc.")
(define-public r-tcgabiolinks
(package
(name "r-tcgabiolinks")
(version "2.22.1")
(version "2.22.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "TCGAbiolinks" version))
(sha256
(base32 "0114pwbxg6mdhv94g556krl08ig7nwaafrryxbjha4hvn0xwy36l"))))
(base32 "0l7hfwgd8aiqv2k98jchkr3sdp9hwdg7pzm3bnvr6k7p93ifr6wc"))))
(properties `((upstream-name . "TCGAbiolinks")))
(build-system r-build-system)
(propagated-inputs
@ -15061,14 +15198,14 @@ starburst plots) in order to easily develop complete analysis pipelines.")
(define-public r-tximeta
(package
(name "r-tximeta")
(version "1.12.3")
(version "1.12.4")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "tximeta" version))
(sha256
(base32
"15l1jvfis7xzxwwnlqs8xpaf212v1lx513np2dc4l4h7rqhclm2v"))))
"1lm2r64d6sdfzvxcabgs0214cdc5dl9pfx562acjcxz5mb101g9g"))))
(properties `((upstream-name . "tximeta")))
(build-system r-build-system)
(propagated-inputs

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
@ -21,7 +21,7 @@
;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
;;; Copyright © 2021 Tim Howes <timhowes@lavabit.com>
;;; Copyright © 2021 Hong Li <hli@mdc-berlin.de>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021, 2022 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
@ -76,6 +76,7 @@
#:use-module (gnu packages code)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages cpio)
#:use-module (gnu packages cran)
#:use-module (gnu packages crates-io)
@ -372,7 +373,7 @@ single executable called @code{bam}.")
(define-public bcftools
(package
(name "bcftools")
(version "1.12")
(version "1.14")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/samtools/bcftools/"
@ -380,12 +381,11 @@ single executable called @code{bam}.")
version "/bcftools-" version ".tar.bz2"))
(sha256
(base32
"1x94l1hy2pi3lbz0sxlbw0g6q5z5apcrhrlcwda94ns9n4r6a3ks"))
"1jqrma16fx8kpvb3c0462dg0asvmiv5yi8myqmc5ddgwi6p8ivxp"))
(modules '((guix build utils)))
(snippet '(begin
;; Delete bundled htslib.
(delete-file-recursively "htslib-1.12")
#t))))
(delete-file-recursively "htslib-1.14")))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -396,8 +396,7 @@ single executable called @code{bam}.")
(add-before 'check 'patch-tests
(lambda _
(substitute* "test/test.pl"
(("/bin/bash") (which "bash")))
#t)))))
(("/bin/bash") (which "bash"))))))))
(native-inputs
(list htslib perl))
(inputs
@ -411,9 +410,25 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
;; The sources are dual MIT/GPL, but becomes GPL-only when USE_GPL=1.
(license (list license:gpl3+ license:expat))))
(define-public bcftools-1.12
(package/inherit bcftools
(version "1.12")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/samtools/bcftools/"
"releases/download/"
version "/bcftools-" version ".tar.bz2"))
(sha256
(base32
"1x94l1hy2pi3lbz0sxlbw0g6q5z5apcrhrlcwda94ns9n4r6a3ks"))
(modules '((guix build utils)))
(snippet '(begin
;; Delete bundled htslib.
(delete-file-recursively "htslib-1.12")))))
(native-inputs (list htslib-1.12 perl))))
(define-public bcftools-1.10
(package (inherit bcftools)
(name "bcftools")
(package/inherit bcftools
(version "1.10")
(source (origin
(method url-fetch)
@ -426,11 +441,8 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
(modules '((guix build utils)))
(snippet '(begin
;; Delete bundled htslib.
(delete-file-recursively "htslib-1.10")
#t))))
(build-system gnu-build-system)
(native-inputs
(list htslib-1.10 perl))))
(delete-file-recursively "htslib-1.10")))))
(native-inputs (list htslib-1.10 perl))))
(define-public bedops
(package
@ -1063,13 +1075,7 @@ Python.")
(("^(.+)def test_from_hdf5_issue_731" m indent)
(string-append indent
"@npt.dec.skipif(True, msg='Guix')\n"
m)))))
(add-before 'reset-gzip-timestamps 'make-files-writable
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(for-each (lambda (file) (chmod file #o644))
(find-files out "\\.gz"))))))))
m))))))))
(propagated-inputs
(list python-anndata
python-numpy
@ -2315,7 +2321,7 @@ has several key features:
(define-public python-pysam
(package
(name "python-pysam")
(version "0.16.0.1")
(version "0.18.0")
(source (origin
(method git-fetch)
;; Test data is missing on PyPi.
@ -2325,11 +2331,10 @@ has several key features:
(file-name (git-file-name name version))
(sha256
(base32
"168bwwm8c2k22m7paip8q0yajyl7xdxgnik0bgjl7rhqg0majz0f"))
"042ca27r6634xg2ixgvq1079cp714wmm6ml7bwc1snn0wxxzywfg"))
(modules '((guix build utils)))
(snippet '(begin
;; Drop bundled htslib. TODO: Also remove samtools
;; and bcftools.
;; FIXME: Unbundle samtools and bcftools.
(delete-file-recursively "htslib")))))
(build-system python-build-system)
(arguments
@ -2346,35 +2351,24 @@ has several key features:
(setenv "CFLAGS" "-D_CURSES_LIB=1")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
;; FIXME: These tests fail with "AttributeError: 'array.array'
;; object has no attribute 'tostring'".
(delete-file "tests/AlignmentFile_test.py")
(when tests?
;; Step out of source dir so python does not import from CWD.
(with-directory-excursion "tests"
(setenv "HOME" "/tmp")
(invoke "make" "-C" "pysam_data")
(invoke "make" "-C" "cbcf_data")
(invoke "pytest" "-k"
(string-append
;; requires network access.
"not FileHTTP"
;; bug in test suite with samtools update
;; https://github.com/pysam-developers/pysam/issues/961
" and not TestHeaderBAM"
" and not TestHeaderCRAM"
" and not test_text_processing")))))))))
;; The FileHTTP test requires network access.
(invoke "pytest" "-k" "not FileHTTP"))))))))
(propagated-inputs
(list htslib-1.10)) ; Included from installed header files.
(list htslib)) ; Included from installed header files.
(inputs
(list ncurses curl zlib))
(native-inputs
(list python-cython
python-pytest
;; Dependencies below are are for tests only.
samtools-1.10
bcftools-1.10
python-nose))
samtools
bcftools))
(home-page "https://github.com/pysam-developers/pysam")
(synopsis "Python bindings to the SAMtools C API")
(description
@ -2583,13 +2577,6 @@ databases.")
`(#:tests? #false
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-files-writable
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure .gz files are writable so that the
;; 'reset-gzip-timestamps' phase can do its work.
(let ((out (assoc-ref outputs "out")))
(for-each make-file-writable
(find-files out "\\.gz$")))))
(add-after 'unpack 'use-python3-for-cython
(lambda _
(substitute* "setup.py"
@ -2968,7 +2955,7 @@ and record oriented data modeling and the Semantic Web.")
(define-public cwltool
(package
(name "cwltool")
(version "3.1.20211107152837")
(version "3.1.20220119140128")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2977,7 +2964,7 @@ and record oriented data modeling and the Semantic Web.")
(file-name (git-file-name name version))
(sha256
(base32
"0i3x9wdgpzgyc1askxymlhn0ps2x9xhqaax496iwpx66ab6132c4"))))
"1jmrm0qrqgka79avc1kq63fgh20gx6g07fc8p3iih4k85vhdyl3f"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -3046,8 +3033,7 @@ and record oriented data modeling and the Semantic Web.")
python-pytest
python-pytest-cov
python-pytest-mock
python-pytest-runner
python-rdflib-jsonld))
python-pytest-runner))
(home-page
"https://github.com/common-workflow-language/common-workflow-language")
(synopsis "Common Workflow Language reference implementation")
@ -4785,7 +4771,7 @@ performance.")
(define-public htslib
(package
(name "htslib")
(version "1.12")
(version "1.14")
(source (origin
(method url-fetch)
(uri (string-append
@ -4793,7 +4779,7 @@ performance.")
version "/htslib-" version ".tar.bz2"))
(sha256
(base32
"1jplnvizgr0fyyvvmkfmnsywrrpqhid3760vw15bllz98qdi9012"))))
"0pwk8yhhvb85mi1d2qhwsb4samc3rmbcrq7b1s0jz0glaa7in8pd"))))
(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
@ -4819,9 +4805,20 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and
;; the rest is released under the Expat license
(license (list license:expat license:bsd-3))))
(define-public htslib-1.12
(package/inherit htslib
(version "1.12")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/samtools/htslib/releases/download/"
version "/htslib-" version ".tar.bz2"))
(sha256
(base32
"1jplnvizgr0fyyvvmkfmnsywrrpqhid3760vw15bllz98qdi9012"))))))
(define-public htslib-1.10
(package (inherit htslib)
(name "htslib")
(package/inherit htslib
(version "1.10")
(source (origin
(method url-fetch)
@ -4833,8 +4830,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and
"0wm9ay7qgypj3mwx9zl1mrpnr36298b1aj5vx69l4k7bzbclvr3s"))))))
(define-public htslib-1.9
(package (inherit htslib)
(name "htslib")
(package/inherit htslib
(version "1.9")
(source (origin
(method url-fetch)
@ -4847,8 +4843,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and
;; This package should be removed once no packages rely upon it.
(define htslib-1.3
(package
(inherit htslib)
(package/inherit htslib
(version "1.3.1")
(source (origin
(method url-fetch)
@ -4860,8 +4855,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and
"1rja282fwdc25ql6izkhdyh8ppw8x2fs0w0js78zgkmqjlikmma9"))))))
(define htslib-for-samtools-1.2
(package
(inherit htslib)
(package/inherit htslib
(version "1.2.1")
(source (origin
(method url-fetch)
@ -4883,6 +4877,18 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and
(native-inputs
`(("perl" ,perl)))))
(define htslib-for-stringtie
(package
(inherit htslib)
(source (origin
(inherit (package-source htslib))
(patches
(search-patches "htslib-for-stringtie.patch"))))
(arguments
`(#:configure-flags '("--with-libdeflate")))
(inputs
(list bzip2 libdeflate openssl))))
(define-public idr
(package
(name "idr")
@ -6135,6 +6141,44 @@ to the user's query of interest.")
(define-public samtools
(package
(name "samtools")
(version "1.14")
(source
(origin
(method url-fetch)
(uri
(string-append "mirror://sourceforge/samtools/samtools/"
version "/samtools-" version ".tar.bz2"))
(sha256
(base32
"0x3xdda78ac5vx66b3jdsv9sfhyz4npl4znl1zbaf3lbm6xdlhck"))
(modules '((guix build utils)))
(snippet '(begin
;; Delete bundled htslib.
(delete-file-recursively "htslib-1.14")))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--with-ncurses")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-tests
(lambda _
(substitute* "test/test.pl"
;; The test script calls out to /bin/bash
(("/bin/bash") (which "bash"))))))))
(native-inputs (list pkg-config))
(inputs
(list htslib ncurses perl python zlib))
(home-page "http://samtools.sourceforge.net")
(synopsis "Utilities to efficiently manipulate nucleotide sequence alignments")
(description
"Samtools implements various utilities for post-processing nucleotide
sequence alignments in the SAM, BAM, and CRAM formats, including indexing,
variant calling (in conjunction with bcftools), and a simple alignment
viewer.")
(license license:expat)))
(define-public samtools-1.12
(package/inherit samtools
(version "1.12")
(source
(origin
@ -6148,47 +6192,31 @@ to the user's query of interest.")
(modules '((guix build utils)))
(snippet '(begin
;; Delete bundled htslib.
(delete-file-recursively "htslib-1.12")
#t))))
(build-system gnu-build-system)
(delete-file-recursively "htslib-1.12")))))
(arguments
`(#:modules ((ice-9 ftw)
(ice-9 regex)
(guix build gnu-build-system)
(guix build utils))
#:configure-flags (list "--with-ncurses")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-tests
(lambda _
(substitute* "test/test.pl"
;; The test script calls out to /bin/bash
(("/bin/bash") (which "bash")))
#t))
(add-after 'install 'install-library
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
(install-file "libbam.a" lib)
#t)))
(add-after 'install 'install-headers
(lambda* (#:key outputs #:allow-other-keys)
(let ((include (string-append (assoc-ref outputs "out")
"/include/samtools/")))
(for-each (lambda (file)
(install-file file include))
(scandir "." (lambda (name) (string-match "\\.h$" name))))
#t))))))
(substitute-keyword-arguments (package-arguments samtools)
((#:modules _ #f)
'((ice-9 ftw)
(ice-9 regex)
(guix build gnu-build-system)
(guix build utils)))
((#:phases phases)
`(modify-phases ,phases
(add-after 'install 'install-library
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
(install-file "libbam.a" lib))))
(add-after 'install 'install-headers
(lambda* (#:key outputs #:allow-other-keys)
(let ((include (string-append (assoc-ref outputs "out")
"/include/samtools/")))
(for-each (lambda (file)
(install-file file include))
(scandir "." (lambda (name)
(string-match "\\.h$" name)))))))))))
(native-inputs (list pkg-config))
(inputs
(list htslib ncurses perl python zlib))
(home-page "http://samtools.sourceforge.net")
(synopsis "Utilities to efficiently manipulate nucleotide sequence alignments")
(description
"Samtools implements various utilities for post-processing nucleotide
sequence alignments in the SAM, BAM, and CRAM formats, including indexing,
variant calling (in conjunction with bcftools), and a simple alignment
viewer.")
(license license:expat)))
(list htslib-1.12 ncurses perl python zlib))))
(define-public samtools-1.10
(package (inherit samtools)
@ -6287,6 +6315,11 @@ viewer.")
#:make-flags
(list "LIBCURSES=-lncurses")
,@(substitute-keyword-arguments (package-arguments samtools)
((#:modules _ #f)
'((ice-9 ftw)
(ice-9 regex)
(guix build gnu-build-system)
(guix build utils)))
((#:phases phases)
`(modify-phases ,phases
(replace 'install
@ -6296,6 +6329,18 @@ viewer.")
(mkdir-p bin)
(install-file "samtools" bin)
#t)))
(add-after 'install 'install-library
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
(install-file "libbam.a" lib))))
(add-after 'install 'install-headers
(lambda* (#:key outputs #:allow-other-keys)
(let ((include (string-append (assoc-ref outputs "out")
"/include/samtools/")))
(for-each (lambda (file)
(install-file file include))
(scandir "." (lambda (name)
(string-match "\\.h$" name)))))))
(delete 'patch-tests)
(delete 'configure))))))))
@ -7103,23 +7148,49 @@ of these reads to align data quickly through a hash-based indexing scheme.")
(define-public sortmerna
(package
(name "sortmerna")
(version "2.1b")
(version "4.3.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/biocore/sortmerna")
(commit version)))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0j3mbz4n25738yijmjbr5r4fyvkgm8v5vn3sshyfvmyqf5q9byqf"))))
(build-system gnu-build-system)
"0f8jfc8vsq6llhbb92p9yv7nbp566yqwfcmq3g2hw0n7d8hyl3a8"))))
(build-system cmake-build-system)
(outputs '("out" ;for binaries
"db")) ;for sequence databases
(arguments
`(#:phases
(modify-phases %standard-phases
(list
#:tests? #false ;unclear how to run them
#:configure-flags
#~(list "-DWITH_TESTS=ON"
"-DCMAKE_CXX_FLAGS=-pthread"
"-DZLIB_STATIC=OFF"
"-DROCKSDB_STATIC=OFF"
"-DPORTABLE=OFF" ;do not use static linking
(string-append "-DROCKSDB_HOME="
#$(this-package-input "rocksdb"))
(string-append "-DRAPIDJSON_HOME="
#$(this-package-input "rapidjson"))
(string-append "-DRapidJson_DIR="
#$(this-package-input "rapidjson")
"/lib/cmake/RapidJSON")
(string-append "-DRapidJSON_INCLUDE_DIR="
#$(this-package-input "rapidjson")
"/include"))
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'find-concurrentqueue-headers
(lambda* (#:key inputs #:allow-other-keys)
;; Ensure that headers can be found
(setenv "CPLUS_INCLUDE_PATH"
(string-append (search-input-directory
inputs "/include/concurrentqueue")
":"
(or (getenv "CPLUS_INCLUDE_PATH") "")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -7127,14 +7198,16 @@ of these reads to align data quickly through a hash-based indexing scheme.")
(db (assoc-ref outputs "db"))
(share
(string-append db "/share/sortmerna/rRNA_databases")))
(install-file "sortmerna" bin)
(install-file "indexdb_rna" bin)
(install-file "src/sortmerna" bin)
(for-each (lambda (file)
(install-file file share))
(find-files "rRNA_databases" ".*fasta"))
#t))))))
(find-files "../source/data/rRNA_databases" ".*fasta"))))))))
(inputs
(list zlib))
(list concurrentqueue
gflags ; because of rocksdb
rapidjson rocksdb zlib))
(native-inputs
(list pkg-config))
(home-page "https://bioinfo.lifl.fr/RNA/sortmerna/")
(synopsis "Biological sequence analysis tool for NGS reads")
(description
@ -7339,22 +7412,25 @@ against local background noises.")
(define-public stringtie
(package
(name "stringtie")
(version "1.2.1")
(version "2.2.0")
(source (origin
(method url-fetch)
(uri (string-append "http://ccb.jhu.edu/software/stringtie/dl/"
"stringtie-" version ".tar.gz"))
(sha256
(base32
"1cqllsc1maq4kh92isi8yadgzbmnf042hlnalpk3y59aph1z3bfz"))
"08w3ish4y9kf9acp7k38iwi8ixa6j51m6qyf0vvfj7yz78a3ai3x"))
;; This package bundles an annoying amount of third party source
;; code.
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "samtools-0.1.18")
#t))))
'(delete-file-recursively "htslib"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test suite
#:make-flags '("LIBDEFLATE=-ldeflate"
"LIBBZ2=-lbz2"
"LIBLZMA=-llzma")
#:phases
(modify-phases %standard-phases
;; no configure script
@ -7362,27 +7438,14 @@ against local background noises.")
(add-before 'build 'use-system-samtools
(lambda _
(substitute* "Makefile"
(("stringtie: \\$\\{BAM\\}/libbam\\.a")
"stringtie: "))
(substitute* '("gclib/GBam.h"
"gclib/GBam.cpp")
(("#include \"(bam|sam|kstring).h\"" _ header)
(string-append "#include <samtools/" header ".h>")))
#t))
(add-after 'unpack 'remove-duplicate-typedef
(lambda _
;; This typedef conflicts with the typedef in
;; glibc-2.25/include/bits/types.h
(substitute* "gclib/GThreads.h"
(("typedef long long __intmax_t;") ""))
#t))
((" -lm") " -lm -lhts")
((" \\$\\{HTSLIB\\}/libhts\\.a") " "))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
(install-file "stringtie" bin)
#t))))))
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
(install-file "stringtie" bin)))))))
(inputs
(list samtools-0.1 zlib))
(list bzip2 htslib-for-stringtie libdeflate zlib))
(home-page "http://ccb.jhu.edu/software/stringtie/")
(synopsis "Transcript assembly and quantification for RNA-Seq data")
(description
@ -7395,7 +7458,7 @@ other transcript assemblers, but also alignments of longer sequences that have
been assembled from those reads. To identify differentially expressed genes
between experiments, StringTie's output can be processed either by the
Cuffdiff or Ballgown programs.")
(license license:artistic2.0)))
(license license:expat)))
(define-public taxtastic
(package
@ -7677,11 +7740,11 @@ single-cell data.")
(license license:gpl3))))
(define-public r-archr
(let ((commit "46b519ffb6f73edf132497ac31650d19ef055dc1")
(let ((commit "92ab814f86be0cea75c661f9827a9549c2cf47f5")
(revision "1"))
(package
(name "r-archr")
(version (git-version "1.0.0" revision commit))
(version (git-version "1.0.1" revision commit))
(source
(origin
(method git-fetch)
@ -7690,8 +7753,7 @@ single-cell data.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1zj3sdfhgn2q2256fmz61a92vw1wylyck632d7842d6knd0v92v8"))))
(base32 "1m1vp3kkpvd0fcviv5vb3gcbm3w91ih6gm9ivg48swnbqny44kqb"))))
(properties `((upstream-name . "ArchR")))
(build-system r-build-system)
(propagated-inputs
@ -7725,6 +7787,50 @@ single-cell data.")
"This package is designed to streamline scATAC analyses in R.")
(license license:gpl2+))))
(define-public r-icellnet
;; v1.0 tagged in 2020, last commit contains many fixes.
;; DESCRIPTION says Version: 0.0.0.9000.
(let ((commit "b9c05488fb8b5ea69bd560018966eaf4e25f82a")
(revision "0"))
(package
(name "r-icellnet")
(version (git-version "1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/soumelis-lab/ICELLNET")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0cld7d6xqnvd0zpcpg3sx73an6vdc9divzywgnn6zxnqcd987cnw"))))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-dir
(lambda _ (chdir "icellnet"))))))
(propagated-inputs
(list r-annotationdbi
r-data-table
r-dplyr
r-ggplot2
r-hgu133plus2-db
r-jetset
r-psych
r-reshape2
r-rlist))
(home-page "https://github.com/soumelis-lab/ICELLNET")
(synopsis "Transcriptomic-based framework to dissect cell communication")
(description "This packages provides a a transcriptomic-based framework
to dissect cell communication in a global manner. It integrates an original
expert-curated database of ligand-receptor interactions taking into account
multiple subunits expression. Based on transcriptomic profiles (gene
expression), this package allows to compute communication scores between cells
and provides several visualization modes that can be helpful to dig into
cell-cell interaction mechanism and extend biological knowledge.")
(license license:gpl3))))
(define-public r-scde
(package
(name "r-scde")
@ -7803,6 +7909,56 @@ of transcriptional heterogeneity among single cells.")
analyze genomic data resulting from various experiments.")
(license license:gpl2)))
(define-public r-scseqcomm
(let ((commit "01076e703999f1a5aa76419d821b50aebe2b777a")
(revision "0"))
(package
(name "r-scseqcomm")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/sysbiobig/scseqcomm")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1fw5si47d6agnz5fibmp2b1sv08pbpwv1j71w57xbav9044i032q"))
;; Delete bundled dependency.
(modules '((guix build utils)))
(snippet
'(delete-file-recursively "other_deps"))))
(build-system r-build-system)
(inputs
(list r-add2ggplot
r-chorddiag
r-doparallel
r-dplyr
r-foreach
;;r-grid ;; listed in DESCRIPTION
r-gridextra
r-ggplot2
r-gtable
r-htmlwidgets
r-igraph
r-matrix
;;r-methods ;; listed in DESCRIPTION
r-org-hs-eg-db
r-psych
r-rcolorbrewer
r-rlang
r-scico
r-tidygraph
r-topgo))
(native-inputs
(list r-knitr))
(home-page "https://gitlab.com/sysbiobig/scseqcomm")
(synopsis "Inter- and intra- cellular signaling from single cell RNA-seq")
(description "This package is tools for analysing intercellular and
intracellular signaling from single cell RNA-seq (scRNA-seq) data.")
(license license:gpl3))))
(define-public r-shaman
(let ((commit "d6944e8ac7bd1dbd5c6cec646eafc1d19d0ca96f")
(release "2.0")
@ -8949,7 +9105,7 @@ communication networks from scRNA-seq data.")
(define-public sambamba
(package
(name "sambamba")
(version "0.8.0")
(version "0.8.2")
(source
(origin
(method git-fetch)
@ -8959,7 +9115,7 @@ communication networks from scRNA-seq data.")
(file-name (git-file-name name version))
(sha256
(base32
"07dznzl6m8k7sw84jxw2kx6i3ymrapbmcmyh0fxz8wrybhw8fmwc"))))
"1zdkd1md5wk4la71p82pbclqqcm55abk23fk087da6186i1bsihl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there is no test target
@ -8967,11 +9123,12 @@ communication networks from scRNA-seq data.")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'fix-ldc-version
(lambda _
(add-after 'unpack 'prepare-build-tools
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile"
;; We use ldc2 instead of ldmd2 to compile sambamba.
(("\\$\\(shell which ldmd2\\)") (which "ldc2")))))
(("\\$\\(shell which ldmd2\\)") (which "ldmd2")))
(setenv "CC" "gcc")
(setenv "D_LD" (which "ld.gold"))))
(add-after 'unpack 'unbundle-prerequisites
(lambda _
(substitute* "Makefile"
@ -8984,7 +9141,13 @@ communication networks from scRNA-seq data.")
(copy-file (string-append "bin/sambamba-" ,version)
(string-append bin "/sambamba"))))))))
(native-inputs
(list python))
`(("ld-gold-wrapper"
;; Importing (gnu packages commencement) would introduce a cycle.
,(module-ref (resolve-interface
'(gnu packages commencement))
'ld-gold-wrapper))
("binutils-gold" ,binutils-gold)
("python" ,python)))
(inputs
(list ldc lz4 zlib))
(home-page "https://github.com/biod/sambamba")
@ -10168,7 +10331,7 @@ API services.")
(propagated-inputs
(list python-biothings-client))
(home-page "https://github.com/biothings/mygene.py")
(synopsis "Python Client for MyGene.Info services.")
(synopsis "Python Client for MyGene.Info services")
(description "MyGene.Info provides simple-to-use REST web services
to query/retrieve gene annotation data. It's designed with simplicity
and performance emphasized. Mygene is a Python wrapper to access
@ -11560,6 +11723,39 @@ known and yet unknown splice junctions. Circular-to-linear ratios of circRNAs
can be calculated, and a number of descriptive plots easily generated.")
(license license:artistic2.0)))
(define-public r-doubletfinder
(let ((commit "554097ba4e2c0ed7c28dc7f0b5b75277f3a50551")
(revision "1"))
(package
(name "r-doubletfinder")
(version (git-version "2.0.3" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/chris-mcginnis-ucsf/DoubletFinder")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1q1pnqw7ry4syp04wjmvz5bws6z4vg4c340ky07lk0vp577x2773"))))
(properties `((upstream-name . "DoubletFinder")))
(build-system r-build-system)
(propagated-inputs (list r-fields r-kernsmooth r-rocr))
(home-page "https://github.com/chris-mcginnis-ucsf/DoubletFinder")
(synopsis "Identify doublets in single-cell RNA sequencing data")
(description
"DoubletFinder identifies doublets by generating artificial doublets
from existing scRNA-seq data and defining which real cells preferentially
co-localize with artificial doublets in gene expression space. Other
DoubletFinder package functions are used for fitting DoubletFinder to
different scRNA-seq datasets. For example, ideal DoubletFinder performance in
real-world contexts requires optimal pK selection and homotypic doublet
proportion estimation. pK selection is achieved using pN-pK parameter sweeps
and maxima identification in mean-variance-normalized bimodality coefficient
distributions. Homotypic doublet proportion estimation is achieved by finding
the sum of squared cell annotation frequencies.")
(license license:cc0))))
(define-public gffread
;; We cannot use the tagged release because it is not in sync with gclib.
;; See https://github.com/gpertea/gffread/issues/26
@ -11842,7 +12038,7 @@ implementation differs in these ways:
("python-pytest" ,python-pytest)
("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/theislab/scanpy")
(synopsis "Single-Cell Analysis in Python.")
(synopsis "Single-Cell Analysis in Python")
(description "Scanpy is a scalable toolkit for analyzing single-cell gene
expression data. It includes preprocessing, visualization, clustering,
pseudotime and trajectory inference and differential expression testing. The
@ -13282,7 +13478,7 @@ includes a command line tool and an analysis pipeline.")
star
zlib))
(home-page "https://github.com/suhrig/arriba")
(synopsis "Gene fusion detection from RNA-Seq data ")
(synopsis "Gene fusion detection from RNA-Seq data")
(description
"Arriba is a command-line tool for the detection of gene fusions from
RNA-Seq data. It was developed for the use in a clinical research setting.
@ -14645,7 +14841,7 @@ genomes known to contain a given k-mer.")
(native-inputs
(list autoconf automake which))
(home-page "https://csb5.github.io/lofreq/")
(synopsis "Sensitive variant calling from sequencing data ")
(synopsis "Sensitive variant calling from sequencing data")
(description "LoFreq is a fast and sensitive variant-caller for inferring
SNVs and indels from next-generation sequencing data. It makes full use of
base-call qualities and other sources of errors inherent in
@ -14675,7 +14871,7 @@ usually ignored by other methods or only used for filtering.")
(home-page "https://andersen-lab.github.io/ivar/html/")
(synopsis "Tools for amplicon-based sequencing")
(description "iVar is a computational package that contains functions
broadly useful for viral amplicon-based sequencing. ")
broadly useful for viral amplicon-based sequencing.")
(license license:gpl3+)))
(define-public python-pyliftover
@ -15124,7 +15320,9 @@ for the analysis and visualization of raw nanopore signal.")
(delete-file-recursively (string-append
(site-packages inputs outputs)
"/vcf/test")))))))
(native-inputs (list python-cython))
(native-inputs
;; Older setuptools is needed for use_2to3.
(list python-cython python-setuptools))
(propagated-inputs
(list python-pysam python-rpy2))
(home-page "https://github.com/jamescasbon/PyVCF")
@ -15147,7 +15345,7 @@ parser for Python.")
(inputs
(list python-configparser python-pysam python-pyvcf))
(home-page "https://github.com/mroosmalen/nanosv")
(synopsis "Structural variation detection tool for Oxford Nanopore data.")
(synopsis "Structural variation detection tool for Oxford Nanopore data")
(description "NanoSV is a software package that can be used to identify
structural genomic variations in long-read sequencing data, such as data
produced by Oxford Nanopore Technologies MinION, GridION or PromethION
@ -15326,7 +15524,7 @@ browser.")
(native-inputs
`(("cmake" ,cmake-minimal)))
(home-page "https://github.com/nanoporetech/pyspoa")
(synopsis "Python bindings for the SIMD partial order alignment library ")
(synopsis "Python bindings for the SIMD partial order alignment library")
(description
"This package provides Python bindings for spoa, a C++ implementation of
the @dfn{partial order alignment} (POA) algorithm (as described in

View File

@ -2,7 +2,7 @@
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
@ -13,6 +13,8 @@
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
;;; Copyright © 2022 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@ -38,10 +40,12 @@
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
@ -231,7 +235,8 @@ XML-RPC over SCGI.")
(file-name (git-file-name name version))
(sha256
(base32
"1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5"))))
"1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5"))
(patches (search-patches "tremc-fix-decodestring.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
@ -296,7 +301,7 @@ maintained upstream.")
(define-public aria2
(package
(name "aria2")
(version "1.35.0")
(version "1.36.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/aria2/aria2/releases/"
@ -304,23 +309,24 @@ maintained upstream.")
"/aria2-" version ".tar.xz"))
(sha256
(base32
"1zbxc517d97lb96f15xcy4l7b66grxrp3h2ids2jiwkaip87yaqy"))))
"1987x4ywnnrhhfs9hi2h820c200d7nas9nd35414yh0jiihfglaq"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-libaria2"
(string-append "--with-bashcompletiondir="
%output "/etc/bash_completion.d/"))
(list
#:configure-flags
#~(list "--enable-libaria2"
(string-append "--with-bashcompletiondir="
#$output "/etc/bash_completion.d/"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'delete-socket-tests
(lambda _
(substitute* "test/LpdMessageDispatcherTest.cc"
(("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageDispatcherTest\\);" text)
(string-append "// " text)))
(substitute* "test/LpdMessageReceiverTest.cc"
(("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageReceiverTest\\);" text)
(string-append "// " text)))
#t)))))
#~(modify-phases %standard-phases
(add-after 'unpack 'delete-socket-tests
(lambda _
(substitute* "test/LpdMessageDispatcherTest.cc"
(("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageDispatcherTest\\);" text)
(string-append "// " text)))
(substitute* "test/LpdMessageReceiverTest.cc"
(("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageReceiverTest\\);" text)
(string-append "// " text))))))))
(native-inputs
(list cppunit ; for the tests
pkg-config))
@ -339,6 +345,8 @@ maintained upstream.")
"Aria2 is a lightweight, multi-protocol & multi-source command-line
download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
(properties
'((release-monitoring-url . "https://github.com/aria2/aria2/releases")))
(license l:gpl2+)))
(define-public uget
@ -414,7 +422,7 @@ and will take advantage of multiple processor cores where possible.")
(define-public libtorrent-rasterbar
(package
(name "libtorrent-rasterbar")
(version "1.2.14")
(version "1.2.15")
(source
(origin
(method url-fetch)
@ -423,13 +431,18 @@ and will take advantage of multiple processor cores where possible.")
"releases/download/v" version "/"
"libtorrent-rasterbar-" version ".tar.gz"))
(sha256
(base32 "0gwm4w7337ykh5lfnspapnnz6a35g7yay3wnj126s8s5kcsvy9wy"))))
(base32 "0jr1c876mvwbbbnav8ldcdm1l6z3g404jc5wp8z902jcd0w8dbf8"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-Dpython-bindings=ON"
"-Dbuild_tests=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'extend-test-timeout
(lambda _
(substitute* "test/test_remove_torrent.cpp"
;; Extend the test timeout from 3 seconds to 10.
(("i > 30") "i > 100"))))
(replace 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
(let ((disabled-tests
@ -440,16 +453,19 @@ and will take advantage of multiple processor cores where possible.")
;; expiry date. To ensure succesful builds in the future,
;; fake the time to be roughly that of the release.
(setenv "FAKETIME_ONLY_CMDS" "test_ssl")
(invoke "faketime" "2021-06-01"
(invoke "faketime" "2021-12-12"
"ctest"
"--exclude-regex" (string-join disabled-tests "|")
"-j" (if parallel-tests?
(number->string (parallel-job-count))
"1")))))))))
"1")
"--rerun-failed"
"--output-on-failure"))))))))
(inputs (list boost openssl))
(native-inputs `(("libfaketime" ,libfaketime)
("python" ,python-wrapper)
("pkg-config" ,pkg-config)))
(native-inputs
(list libfaketime
python-wrapper
pkg-config))
(home-page "https://www.libtorrent.org/")
(synopsis "Feature-complete BitTorrent implementation")
(description
@ -461,7 +477,7 @@ desktops.")
(define-public qbittorrent
(package
(name "qbittorrent")
(version "4.2.5")
(version "4.4.0")
(source
(origin
(method git-fetch)
@ -470,7 +486,7 @@ desktops.")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1n613ylg6i9gisgk0dbr2kpfasyizrkdjff1r8smd4vri2qrdksn"))))
(base32 "0aqrcwxi3s2alila3fa7fjs4hifkq7055wa4xvz17hajchs3l567"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -515,7 +531,7 @@ features.")
(define-public deluge
(package
(name "deluge")
(version "2.0.3")
(version "2.0.5")
(source
(origin
(method url-fetch)
@ -524,28 +540,31 @@ features.")
(version-major+minor version) "/deluge-" version ".tar.xz"))
(sha256
(base32
"14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky"))))
"1n15dzfnz1gvb4cf046yhi404i3gs933qgz0ichna6r1znmh9gf4"))))
(build-system python-build-system)
(inputs (list bash-minimal))
(propagated-inputs
`(("gtk+" ,gtk+)
("librsvg" ,librsvg)
("libtorrent" ,libtorrent-rasterbar)
("python-pycairo" ,python-pycairo)
("python-chardet" ,python-chardet)
("python-dbus" ,python-dbus)
("python-mako" ,python-mako)
("python-pygobject" ,python-pygobject)
("python-pillow" ,python-pillow)
("python-pyopenssl" ,python-pyopenssl)
("python-pyxdg" ,python-pyxdg)
("python-rencode" ,python-rencode)
("python-service-identity" ,python-service-identity)
("python-setproctitle" ,python-setproctitle)
("python-six" ,python-six)
("python-twisted" ,python-twisted)
("python-zope-interface" ,python-zope-interface)))
(list gtk+
libtorrent-rasterbar
python-pycairo
python-chardet
python-dbus
python-mako
python-pygobject
python-pillow
python-pyopenssl
python-pyxdg
python-rencode
python-service-identity
python-setproctitle
python-six
python-twisted
python-zope-interface))
(native-inputs
(list intltool python-wheel))
(list intltool python-wheel
(if (string-prefix? "x86_64-" (%current-system))
librsvg-bootstrap
librsvg-2.40)))
;; TODO: Enable tests.
;; After "pytest-twisted" is packaged, HOME is set, and an X server is
;; started, some of the tests still fail. There are likely some tests
@ -554,17 +573,23 @@ features.")
`(#:tests? #f
#:phases
(modify-phases %standard-phases
;; Remove this phase when upgrading to version 2.0.4 or beyond, as
;; the issue is fixed upstream.
(add-after 'unpack 'fix-gettext-warning
(lambda _
(substitute* "deluge/i18n/util.py"
(("names='ngettext'") "names=['ngettext']"))
#t))
(add-after 'install 'wrap
(lambda* (#:key outputs #:allow-other-keys)
(lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(gi-typelib-path (getenv "GI_TYPELIB_PATH")))
;; "librsvg" input is only needed at build time and it
;; conflit with the "librsvg" propageted by "gtk+", so we
;; make sure there is no reference to it in the wrapper.
(gi-typelib-path
(string-join (filter
(lambda (x) (not (string-prefix?
(assoc-ref
(or native-inputs inputs)
"librsvg")
x)))
(string-split
(getenv "GI_TYPELIB_PATH")
#\:))
":")))
(for-each
(lambda (program)
(wrap-program program

View File

@ -924,7 +924,21 @@ to Novena upstream, does not load u-boot.img from the first partition.")
(make-u-boot-package "sifive_unleashed" "riscv64-linux-gnu"))
(define-public u-boot-sifive-unmatched
(make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu"))
(let ((base (make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu")))
(package
(inherit base)
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'set-environment
(lambda* (#:key inputs #:allow-other-keys)
(let ((opensbi (string-append (assoc-ref inputs "firmware")
"/fw_dynamic.bin")))
(setenv "OPENSBI" opensbi))))))))
(inputs
`(("firmware" ,opensbi-generic)
,@(package-inputs base))))))
(define-public u-boot-rock64-rk3328
(let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))

View File

@ -144,7 +144,16 @@
("tar"
,(base32 "150c8948cz8r208g6qgn2dn4f4zs5kpgbpbg6bwag6yw42rapw2l"))
("xz"
,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh")))))
,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh")))
("riscv64-linux"
("bash"
,(base32 "0almlf73k6hbm495kzf4bw1rzsg5qddn7z2rf5l3d1xcapac2hj3"))
("mkdir"
,(base32 "0rg1amdcqfkplcy1608jignl8jq0wqzfkp430mwik3f62959gya6"))
("tar"
,(base32 "17d3x27qhiwk7h6ns0xrvbrq0frxz89mjjh2cdwx2rraq5x6wffm"))
("xz"
,(base32 "0nxn75xf386vdq3igmgm8gnyk4h4x0cm8jv71vlb2jvwxh0cyw1q")))))
(define %bootstrap-executable-base-urls
;; This is where the bootstrap executables come from.
@ -159,6 +168,7 @@
("powerpc64le-linux" (string-append system "/20210106/" program))
("i586-gnu" (string-append system "/20200326/" program))
("powerpc-linux" (string-append system "/20200923/bin/" program))
("riscv64-linux" (string-append system "/20210725/bin/" program))
(_ (string-append system "/" program
"?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))))
@ -362,6 +372,8 @@ or false to signal an error."
"/20200326/guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz")
("powerpc64le-linux"
"/20210106/guile-static-stripped-2.0.14-powerpc64le-linux-gnu.tar.xz")
("riscv64-linux"
"/20210725/guile-3.0.2.tar.xz")
(_
"/20131110/guile-2.0.9.tar.xz"))))
@ -383,7 +395,9 @@ or false to signal an error."
("i586-gnu"
(base32 "0wgqpsmvg25rnqn49ap7kwd2qxccd8dr4lllzp7i3rjvgav27vac"))
("powerpc-linux"
(base32 "1by2p7s27fbyjzfkcw8h65h4kkqh7d23kv4sgg5jppjn2qx7swq4"))))
(base32 "1by2p7s27fbyjzfkcw8h65h4kkqh7d23kv4sgg5jppjn2qx7swq4"))
("riscv64-linux"
(base32 "12pqmhsbbp7hh9r1bjdl14l3a4q06plpz6dcks9dysb4czay8p9f"))))
(define (bootstrap-guile-origin system)
"Return an <origin> object for the Guile tarball of SYSTEM."
@ -455,6 +469,76 @@ GUILE_SYSTEM_PATH=$out/share/guile/2.0 \
GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache \
$out/bin/guile -c ~s $out ~a
# Sanity check.
$out/bin/guile --version~%"
(derivation->output-path mkdir)
(derivation->output-path xz)
(derivation->output-path tar)
(object->string wrapper)
(derivation->output-path bash)))))
(raw-derivation name
(derivation->output-path bash) `(,builder)
#:system system
#:inputs (map derivation-input
(list bash mkdir tar xz guile))
#:sources (list builder)
#:env-vars `(("GUILE_TARBALL"
. ,(derivation->output-path guile))))))
(define* (raw-build-guile3 name inputs
#:key outputs system search-paths
#:allow-other-keys)
(define (->store file)
(lower-object (bootstrap-executable file system)
system))
(define (make-guile-wrapper bash guile-real)
;; The following code, run by the bootstrap guile after it is unpacked,
;; creates a wrapper for itself to set its load path. This replaces the
;; previous non-portable method based on reading the /proc/self/exe
;; symlink.
'(begin
(use-modules (ice-9 match))
(match (command-line)
((_ out bash)
(let ((bin-dir (string-append out "/bin"))
(guile (string-append out "/bin/guile"))
(guile-real (string-append out "/bin/.guile-real"))
;; We must avoid using a bare dollar sign in this code,
;; because it would be interpreted by the shell.
(dollar (string (integer->char 36))))
(chmod bin-dir #o755)
(rename-file guile guile-real)
(call-with-output-file guile
(lambda (p)
(format p "\
#!~a
export GUILE_SYSTEM_PATH=~a/share/guile/3.0
export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/3.0/ccache
exec -a \"~a0\" ~a \"~a@\"\n"
bash out out dollar guile-real dollar)))
(chmod guile #o555)
(chmod bin-dir #o555))))))
(mlet* %store-monad ((tar (->store "tar"))
(xz (->store "xz"))
(mkdir (->store "mkdir"))
(bash (->store "bash"))
(guile (download-bootstrap-guile system))
(wrapper -> (make-guile-wrapper bash guile))
(builder
(text-file "build-bootstrap-guile.sh"
(format #f "
echo \"unpacking bootstrap Guile to '$out'...\"
~a $out
cd $out
~a -dc < $GUILE_TARBALL | ~a xv
# Use the bootstrap guile to create its own wrapper to set the load path.
GUILE_SYSTEM_PATH=$out/share/guile/3.0 \
GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/3.0/ccache \
$out/bin/guile -c ~s $out ~a
# Sanity check.
$out/bin/guile --version~%"
(derivation->output-path mkdir)
@ -478,7 +562,9 @@ $out/bin/guile --version~%"
(name name)
(system system)
(build-inputs inputs)
(build raw-build)))
(build (cond ((target-riscv64?)
raw-build-guile3)
(else raw-build)))))
(define %bootstrap-guile
;; The Guile used to run the build scripts of the initial derivations.
@ -518,6 +604,8 @@ $out/bin/guile --version~%"
"/20200326/static-binaries-0-i586-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/static-binaries.tar.xz")
("riscv64-linux"
"/20210725/static-binaries.tar.xz")
(_
"/20131110/static-binaries.tar.xz")))
%bootstrap-base-urls))
@ -544,6 +632,9 @@ $out/bin/guile --version~%"
("powerpc-linux"
(base32
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
("riscv64-linux"
(base32
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
("mips64el-linux"
(base32
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
@ -596,6 +687,8 @@ $out/bin/guile --version~%"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/binutils-2.35.1.tar.xz")
("riscv64-linux"
"/20210725/binutils-2.34.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
@ -616,6 +709,9 @@ $out/bin/guile --version~%"
("powerpc64le-linux"
(base32
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
("riscv64-linux"
(base32
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m"))
("i586-gnu"
(base32
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
@ -681,6 +777,8 @@ $out/bin/guile --version~%"
"/20200326/glibc-stripped-2.31-i586-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/glibc-2.32.tar.xz")
("riscv64-linux"
"/20210725/glibc-2.31.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
@ -701,6 +799,9 @@ $out/bin/guile --version~%"
("powerpc64le-linux"
(base32
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
("riscv64-linux"
(base32
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm"))
("i586-gnu"
(base32
"14ddm10lpbas8bankmn5bcrlqvz1v5dnn1qjzxb19r57vd2w5952"))
@ -782,6 +883,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz")
("riscv64-linux"
"/20210725/gcc-7.5.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
@ -802,6 +905,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
("powerpc64le-linux"
(base32
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
("riscv64-linux"
(base32
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d"))
("i586-gnu"
(base32
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))

View File

@ -51,7 +51,7 @@ supported content to the Kodi media center.")
(define ublock-origin
(package
(name "ublock-origin")
(version "1.39.2")
(version "1.40.8")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@ -60,7 +60,7 @@ supported content to the Kodi media center.")
(file-name (git-file-name name version))
(sha256
(base32
"12dqn7hm72ha7xclc7cny67l1ndsanhpgbwx1s9d74z0jhdl2iks"))))
"17pywblp87npj5z3zyvy9rmllnxhm916fnfyyfbvfbczswkbp78s"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(arguments
@ -98,8 +98,7 @@ supported content to the Kodi media center.")
(copy-recursively "dist/build/uBlock0.firefox" firefox)
(copy-recursively "dist/build/uBlock0.chromium" chromium)))))))
(native-inputs
`(("python" ,python-wrapper)
("zip" ,zip)))
(list python-wrapper zip))
(synopsis "Block unwanted content from web sites")
(description
"uBlock Origin is a @dfn{wide spectrum blocker} for IceCat and

View File

@ -155,14 +155,14 @@ generate such a compilation database.")
(define-public bmake
(package
(name "bmake")
(version "20211207")
(version "20211212")
(source
(origin
(method url-fetch)
(uri (string-append
"http://www.crufty.net/ftp/pub/sjg/bmake-" version ".tar.gz"))
(sha256
(base32 "1cvm10gh7gb0rjcfgbssrw13ha24qmagifgkr53kk39r9693ylq5"))))
(base32 "17lywks7fy5538vwyyvbvxcq5mgnd5si7f2qgw85sgqj7mdr4xdd"))))
(build-system gnu-build-system)
(inputs
(list bash-minimal))
@ -264,7 +264,7 @@ files and generates build instructions for the Ninja build system.")
(define-public meson
(package
(name "meson")
(version "0.60.0")
(version "0.60.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/"
@ -272,42 +272,10 @@ files and generates build instructions for the Ninja build system.")
version ".tar.gz"))
(sha256
(base32
"0irdn7hx5a182jbvq2kmdwd1v7mljzh5fm27pg4xk879hnv6h388"))
"13mrrizg4vl6n5k7fz6amyafnn3i097dcarr552qc0ca6nlmzjl7"))
(patches (search-patches
"meson-allow-dirs-outside-of-prefix.patch"))))
(build-system python-build-system)
(arguments
`(;; FIXME: Tests require many additional inputs and patching many
;; hard-coded file system locations in "run_unittests.py".
#:tests? #f
#:phases (modify-phases %standard-phases
;; Meson calls the various executables in out/bin through the
;; Python interpreter, so we cannot use the shell wrapper.
(delete 'wrap))))
(inputs (list ninja))
;; XXX: Python is propagated just to 'GUIX_PYTHONPATH' is set (!).
;; MESON-WRAPPED below fixes that by wrapping the 'meson' executable.
;; TODO: Make MESON-WRAPPED the new MESON on the next core update cycle.
(propagated-inputs (list python))
(home-page "https://mesonbuild.com/")
(properties '((hidden? . #t)))
(synopsis "Build system designed to be fast and user-friendly")
(description
"The Meson build system is focused on user-friendliness and speed.
It can compile code written in C, C++, Fortran, Java, Rust, and other
languages. Meson provides features comparable to those of the
Autoconf/Automake/make combo. Build specifications, also known as @dfn{Meson
files}, are written in a custom domain-specific language (@dfn{DSL}) that
resembles Python.")
(license license:asl2.0)))
(define-public meson-wrapped
(package/inherit meson
(propagated-inputs '()) ;don't propagate Python
(inputs (modify-inputs (package-inputs meson)
(prepend python-wrapper)))
(arguments
`(;; FIXME: Tests require many additional inputs and patching many
;; hard-coded file system locations in "run_unittests.py".
@ -327,7 +295,17 @@ import sys
sys.path.insert(0, '~a/lib/python~a/site-packages')
# EASY-INSTALL-ENTRY-SCRIPT"
output python-version)))))))))
(properties '())))
(inputs (list python-wrapper ninja))
(home-page "https://mesonbuild.com/")
(synopsis "Build system designed to be fast and user-friendly")
(description
"The Meson build system is focused on user-friendliness and speed.
It can compile code written in C, C++, Fortran, Java, Rust, and other
languages. Meson provides features comparable to those of the
Autoconf/Automake/make combo. Build specifications, also known as @dfn{Meson
files}, are written in a custom domain-specific language (@dfn{DSL}) that
resembles Python.")
(license license:asl2.0)))
;;; This older Meson variant is kept for now for gtkmm and others that may
;;; have problems with 0.60.

View File

@ -19,6 +19,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages busybox)
#:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
@ -122,7 +123,7 @@ any small or embedded system.")
(define-public toybox
(package
(name "toybox")
(version "0.8.5")
(version "0.8.6")
(source (origin
(method url-fetch)
(uri (string-append
@ -130,38 +131,35 @@ any small or embedded system.")
version ".tar.gz"))
(sha256
(base32
"0j896rblxd8jyll6dg1w9zz1v1q52y2ca7qswgvlfqvjhz0k1lmz"))))
"0jq3368jps6jg717ikzhlc6whml3k2s9xy69zpj4i0r35c5ck622"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-environment-variables
(lambda _
(setenv "CC" ,(cc-for-target))
(setenv "HOSTCC" (which "gcc"))))
(replace 'configure
(lambda _ (invoke "make" "defconfig")))
(add-before 'check 'fix-or-skip-broken-tests
(lambda _
;; Some tests expects $USER to magically be the current user name.
(setenv "USER" (passwd:name (getpwnam (geteuid))))
;; All these expect directories to be exactly 4K. They aren't!
(delete-file "tests/du.test")
;; Delete tests that expect a root or 0 user to exist.
(substitute* "tests/id.test"
(("^testing .*[ \\(]root.*") ""))
))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "make"
(string-append "PREFIX=" out)
"install"))))
(add-after 'install 'remove-usr-directory
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(delete-file-recursively (string-append out "/usr"))))))
#:test-target "tests"))
(list #:phases
#~(modify-phases %standard-phases
(add-before 'configure 'set-environment-variables
(lambda _
(setenv "CC" #$(cc-for-target))
(setenv "HOSTCC" (which "gcc"))))
(replace 'configure
(lambda _ (invoke "make" "defconfig")))
(add-before 'check 'fix-or-skip-broken-tests
(lambda _
;; Some tests expect $USER to magically be the current user.
(setenv "USER" (passwd:name (getpwnam (geteuid))))
;; This expects directories to be exactly 4K. They aren't!
(delete-file "tests/du.test")
;; Delete tests that expect a root or 0 user to exist.
(substitute* "tests/id.test"
(("^testing .*[ \\(]root.*") ""))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make"
(string-append "PREFIX=" #$output)
"install")))
(add-after 'install 'remove-usr-directory
(lambda* (#:key outputs #:allow-other-keys)
(delete-file-recursively (string-append #$output "/usr")))))
#:test-target "tests"))
(native-inputs (list bc))
(synopsis "Many common UNIX utilities in a single executable")
(description "ToyBox combines tiny versions of many common UNIX utilities

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
@ -30,6 +30,7 @@
(define-module (gnu packages c)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
@ -55,6 +56,7 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
(define-public tcc
@ -501,6 +503,46 @@ with essential JSON handling functions, sufficiently good JSON support (not
replacement for the syslog() call, but retains its ease of use.")
(license license:bsd-2)))
(define-public liblognorm
(package
(name "liblognorm")
(version "2.0.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rsyslog/liblognorm.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1pyy1swvq6jj12aqma42jimv71z8m66zy6ydd5v19cp2azm4krml"))))
(build-system gnu-build-system)
(arguments
(list
#:parallel-tests? #false ;not supported
#:phases
'(modify-phases %standard-phases
;; These tests fail because tmp.rulebase is never created. This
;; looks rather harmless.
(add-after 'unpack 'delete-failing-tests
(lambda _
(substitute* "tests/Makefile.am"
(("string_rb_simple.sh ") "")
(("string_rb_simple_2_lines.sh ") "")))))))
(inputs
(list json-c libestr libfastjson))
(native-inputs
(list autoconf automake libtool pkg-config))
(home-page "https://www.liblognorm.com")
(synopsis "Fast samples-based log normalization library")
(description
"Liblognorm normalizes event data into well-defined name-value pairs and
a set of tags describing the message.")
;; liblognorm is very slowly transitioning to ASL2.0
;; See https://github.com/rsyslog/liblognorm/issues/329
(license license:lgpl2.1+)))
(define-public unifdef
(package
(name "unifdef")

View File

@ -940,7 +940,7 @@ CD data, and more. It's mostly compatible with @code{cdrtools}.")
(define-public libmirage
(package
(name "libmirage")
(version "3.2.5")
(version "3.2.6")
(source (origin
(method url-fetch)
(uri (string-append
@ -948,7 +948,7 @@ CD data, and more. It's mostly compatible with @code{cdrtools}.")
version ".tar.xz"))
(sha256
(base32
"0f8i2ha44rykkk3ac2q8zsw3y1zckw6qnf6zvkyrj3qqbzhrf3fm"))))
"19pjdmxhzl8y3brhg8fsv99b6jg4lfnl8jvcjgm4jmqrr684czr5"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config intltool))
@ -968,7 +968,7 @@ the data stored in various image formats.")
(define-public cdemu-daemon
(package
(name "cdemu-daemon")
(version "3.2.5")
(version "3.2.6")
(source (origin
(method url-fetch)
(uri (string-append
@ -976,7 +976,7 @@ the data stored in various image formats.")
"cdemu-daemon-" version ".tar.xz"))
(sha256
(base32
"16g6fv1lxkdmbsy6zh5sj54dvgwvm900fd18aq609yg8jnqm644d"))))
"13vxhl7ik3h5qnfh6m0zxywb8qzx1n46akrm6rp19ikmxzih9r56"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config intltool))

View File

@ -25,7 +25,7 @@
;;; Copyright © 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2015, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
@ -79,6 +79,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
@ -845,6 +846,7 @@ available via the @code{unittest.mock} module.")
("python2-funcsigs" ,python2-funcsigs)
,@(package-propagated-inputs base))))))
;;; This package is unmaintained (see the note at the top of doc/index.rst).
(define-public python-nose
(package
(name "python-nose")
@ -858,15 +860,26 @@ available via the @code{unittest.mock} module.")
"164a43k7k2wsqqk1s6vavcdamvss4mz0vd6pwzv2h9n8rgwzxgzi"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; FIXME: test suite fails
'(#:tests? #f
#:phases (modify-phases %standard-phases
(add-after 'unpack 'invoke-2to3
(lambda _
(invoke "2to3" "-w" "."))))))
(home-page "http://readthedocs.org/docs/nose/")
(synopsis "Python testing library")
(description
"Nose extends the unittest library to make testing easier.")
(license license:lgpl2.0+)))
(license license:lgpl2.0+)
(properties `((python2-variant . ,(delay python2-nose))))))
(define-public python2-nose
(package-with-python2 python-nose))
(let ((base (package-with-python2
(strip-python2-variant python-nose))))
(package/inherit base
(arguments (substitute-keyword-arguments (package-arguments base)
((#:phases phases)
`(modify-phases ,phases
(delete 'invoke-2to3))))))))
(define-public python-nose2
(package
@ -991,17 +1004,6 @@ and many external plugins.")
(license license:expat)
(properties `((python2-variant . ,(delay python2-pytest))))))
(define-public python-pytest-6.1
(package
(inherit python-pytest)
(version "6.1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest" version))
(sha256
(base32 "0gl2sdm322vzmsh5k4f8kj9raiq2y7kdinnca4m45ifvii5fk9y0"))))))
(define-public python-pytest-6 python-pytest)
;; Pytest 4.x are the last versions that support Python 2.
@ -1284,22 +1286,29 @@ reported in a previous test run.")
(origin
(method url-fetch)
(uri (pypi-uri "pytest-mock" version))
(sha256 (base32
"0qhfmd05z3g88bnwq6644jl6p5wy01i4yy7h8883z9jjih2pl8a0"))))
(sha256
(base32 "0qhfmd05z3g88bnwq6644jl6p5wy01i4yy7h8883z9jjih2pl8a0"))
(modules '((guix build utils)))
(snippet
;; Some tests do a string match on Pytest output, and fails when
;; warnings are present. Adjust to cope with warnings from
;; third-party libraries (looking at you, pytest-asyncio).
'(substitute* "tests/test_pytest_mock.py"
(("1 passed in \\*")
"1 passed*")))))
(build-system python-build-system)
(arguments
`(#:phases
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
;; Skip the assertion rewriting tests, which don't work in the
;; presence of read-only Python modules (a limitation of
;; Pytest). Also skip the "test_standalone_mock" test, which
;; can only work when 'python-mock' is not available
;; (currently propagated by Pytest 5).
(invoke "pytest" "--assert=plain"
(invoke "pytest" "--assert=plain" "-vv"
"-k" "not test_standalone_mock")))))))
(native-inputs
(list python-pytest-asyncio python-setuptools-scm))
@ -1410,14 +1419,14 @@ result back.")
(define-public python-pytest-timeout
(package
(name "python-pytest-timeout")
(version "1.4.2")
(version "2.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-timeout" version))
(sha256
(base32
"0xnsigs0kmpq1za0d4i522sp3f71x5bgpdh3ski0rs74yqy13cr0"))))
"04l1cd2qyp3fbccw95a8nqg682r647v7yil8807dgs7xv9a8pyg6"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@ -1780,7 +1789,7 @@ executed.")
(define-public python-pytest-asyncio
(package
(name "python-pytest-asyncio")
(version "0.15.1")
(version "0.17.2")
(source
(origin
(method git-fetch) ;for tests
@ -1789,11 +1798,24 @@ executed.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "03drs4myv1ik79148xyhli37q6mp931jb14cz65n8qvls2zvvwgx"))))
(base32 "0sl0ckc23m40q6r2xcidsizrgqbbsfa7rwmr80fss359xsydf073"))))
(build-system python-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'pretend-version
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION"
#$(package-version this-package))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(invoke "pytest" "-vv" "tests"))))))
(native-inputs
(list python-coverage python-async-generator python-hypothesis
python-pytest))
(list python-async-generator
python-flaky
python-hypothesis
python-pytest
python-setuptools-scm))
(home-page "https://github.com/pytest-dev/pytest-asyncio")
(synopsis "Pytest support for asyncio")
(description "Python asyncio code is usually written in the form of
@ -1853,7 +1875,7 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.")
(define-public python-testpath
(package
(name "python-testpath")
(version "0.4.4")
(version "0.5.0")
(source
(origin
(method git-fetch)
@ -1863,35 +1885,33 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.")
(file-name (git-file-name name version))
(sha256
(base32
"1fwv4d3p54xx1x942s104irr35lszvv6jnr4nn1scsfvc0m1qmbk"))))
"08r1c6bhvj8pcdvzkqv1950k36a6q3v81fd2p1yqdq3c07mcwgif"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; this package does not even have a setup.py
#:modules ((guix build python-build-system)
(guix build utils)
(srfi srfi-1))
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda _
;; A ZIP archive should be generated, but it fails with "ZIP does
;; not support timestamps before 1980". Luckily,
;; SOURCE_DATE_EPOCH is respected, which we set to some time in
;; 1980.
(setenv "SOURCE_DATE_EPOCH" "315532800")
(invoke "flit" "build")))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(let ((out (assoc-ref outputs "out")))
(for-each (lambda (wheel)
(format #true wheel)
(invoke "python" "-m" "pip" "install"
wheel (string-append "--prefix=" out)))
(find-files "dist" "\\.whl$"))))))))
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "pyproject.toml"
(("flit_core >=3.2.0,<3.3")
"flit_core >=3.2.0"))))
;; XXX: PEP 517 manual build copied from python-isort.
(replace 'build
(lambda _
(invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest"))))
(replace 'install
(lambda _
(let ((whl (car (find-files "dist" "\\.whl$"))))
(invoke "pip" "--no-cache-dir" "--no-input"
"install" "--no-deps" "--prefix" #$output whl)))))))
(native-inputs
(list python-flit))
(home-page "https://github.com/takluyver/testpath")
(list python-pypa-build python-flit-core python-pytest))
(home-page "https://github.com/jupyter/testpath")
(synopsis "Test utilities for code working with files and commands")
(description
"Testpath is a collection of utilities for Python code working with files
@ -2244,7 +2264,7 @@ statements in the module it tests.")
(define-public python-pylint
(package
(name "python-pylint")
(version "2.9.6")
(version "2.12.2")
(source
(origin
(method git-fetch)
@ -2253,15 +2273,31 @@ statements in the module it tests.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "15yw69v1cj6zkndk60c2g0dgl0khh8bfm1lrwhjffpdjfc7nkc9a"))))
(base32 "0spmy7j1vvh55shzgma80q61y0d1cj45dcgslb4g5w3y602miq5i"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; The unused but collected 'primer'-related test files require
;; the extraneous 'git' Python module; remove them.
(delete-file "tests/primer/test_primer_external.py")
(delete-file "tests/testutils/test_package_to_lint.py")
(setenv "HOME" "/tmp")
(invoke "pytest" "-k" "test_functional")))))))
(native-inputs
(list python-pytest python-pytest-benchmark python-pytest-runner))
(list python-pytest))
(propagated-inputs
(list python-astroid python-isort python-mccabe python-toml))
(list python-astroid
python-isort
python-mccabe
python-platformdirs
python-toml
python-typing-extensions))
(home-page "https://github.com/PyCQA/pylint")
(synopsis "Python source code analyzer which looks for coding standard
errors")
(synopsis "Advanced Python code static checker")
(description "Pylint is a Python source code analyzer which looks
for programming errors, helps enforcing a coding standard and sniffs
for some code smells (as defined in Martin Fowler's Refactoring book).
@ -2428,23 +2464,33 @@ backported from Python 2.7 for Python 2.4+.")
(define-public behave
(package
(name "behave")
(version "1.2.6")
;; The 1.2.6 release from 2018 has several problems with newer Python
;; versions, so we package a recent snapshot.
(version "1.2.7.dev2")
(source (origin
(method url-fetch)
(uri (pypi-uri "behave" version))
(sha256
(base32
"11hsz365qglvpp1m1w16239c3kiw15lw7adha49lqaakm8kj6rmr"))
(patches (search-patches
"behave-skip-a-couple-of-tests.patch"))))
(method git-fetch)
(uri (git-reference
(url "https://github.com/behave/behave")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0sv94wagi214h0l91zn8m04f78x5wn83vqxib81hnl1qahvx9hq7"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-c" "/dev/null" "-vv")))))))
(native-inputs
(list python-mock python-nose python-pathpy python-pyhamcrest
python-pytest))
(propagated-inputs
(list python-parse python-parse-type))
(arguments
'(#:test-target "behave_test"))
(list python-colorama
python-cucumber-tag-expressions
python-parse
python-parse-type))
(home-page "https://github.com/behave/behave")
(synopsis "Python behavior-driven development")
(description

View File

@ -71,7 +71,7 @@
(define-public chez-scheme
(package
(name "chez-scheme")
(version "9.5.4")
(version "9.5.6")
(source
(origin
(method git-fetch)
@ -79,14 +79,10 @@
(url "https://github.com/cisco/ChezScheme")
(commit (string-append "v" version))))
(sha256
(base32 "0prgn2z9l888j93ydxaf04ph424g0fi3a8w7f8m0b2r7fr1v7388"))
(base32 "07s433hn1z2slfc026sidrpzxv3a8narcd40qqr1xrpb9012xdky"))
(file-name (git-file-name name version))
(patches
(search-patches
;; backported from upstream: remove on next release
"chez-scheme-build-util-paths-backport.patch"))
(snippet
;; remove bundled libraries
;; Remove bundled libraries.
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
@ -144,8 +140,7 @@
(assoc-ref (or native-inputs inputs) dep))
(copy-recursively src dep
#:keep-mtime? #t))
'("nanopass" "stex"))
#t))
'("nanopass" "stex"))))
;; NOTE: the custom Chez 'configure' script doesn't allow
;; unrecognized flags, such as those automatically added
;; by `gnu-build-system`.
@ -172,8 +167,7 @@
(setenv "HOME" "/tmp")
(apply invoke
"./configure"
flags)
#t)))
flags))))
;; The binary file name is called "scheme" as is the one from MIT/GNU
;; Scheme. We add a symlink to use in case both are installed.
(add-after 'install 'install-symlink
@ -187,8 +181,7 @@
(map (lambda (file)
(symlink file (string-append (dirname file)
"/" name ".boot")))
(find-files lib "scheme.boot"))
#t)))
(find-files lib "scheme.boot")))))
;; Building explicitly lets us avoid using substitute*
;; to re-write makefiles.
(add-after 'install-symlink 'prepare-stex
@ -217,8 +210,7 @@
'("ReadMe" ; includes the license
"doc/stex.html"
"doc/stex.css"
"doc/stex.pdf"))
#t))))
"doc/stex.pdf"))))))
;; Building the documentation requires stex and a running scheme.
;; FIXME: this is probably wrong for cross-compilation
(add-after 'prepare-stex 'install-doc
@ -251,8 +243,7 @@
(symlink "release_notes/release_notes.pdf"
"release_notes.pdf")
(symlink "csug/csug9_5.pdf"
"csug.pdf"))
#t))))))
"csug.pdf"))))))))
;; Chez Scheme does not have a MIPS backend.
;; FIXME: Debian backports patches to get armhf working.
;; We should too. It is the Chez machine type arm32le

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020, 2021 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2019, 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
@ -336,20 +336,14 @@
(string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash))))
(define %chromium-version "96.0.4664.110")
(define %chromium-version "97.0.4692.99")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %arch-revision "db2157b84924ce84201a8245e68a02f7d55f6491")
(define %debian-revision "debian/90.0.4430.85-1")
(define %arch-patches
(list (arch-patch "chromium-94-ffmpeg-roll.patch"
"1kiskdjr9v3d491sq0wdjxliflh2vq5700gbygcixayj8gkvdb2n")
(arch-patch "replace-blacklist-with-ignorelist.patch"
"0ddvbyks7s8nijmg2nmirpwdv08dqx0z99sb6c1d4vlckfilnd6k")
(arch-patch "add-a-TODO-about-a-missing-pnacl-flag.patch"
"0mf4zn94ckd3vxzw441wka7ak4aajq1x33h4dqd78blgacba4gfm")
(arch-patch "use-ffile-compilation-dir.patch"
"0vk0vyxr55c716vkn4y4yhhrxb4zng4ni2y6fsz30pxbiz6i044j")))
"1kiskdjr9v3d491sq0wdjxliflh2vq5700gbygcixayj8gkvdb2n")))
(define %debian-patches
(list (debian-patch "fixes/nomerge.patch"
@ -367,7 +361,7 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
"098mfcd1lr2hhlic0i1l5gxsq71axvqnn4gayr4r9j6nbj9byf4h"))))
"1jgxpp3wl24hq39291mgmdwcxbarxg4rpa6il53k8z3rf6gd2s4i"))))
(define %guix-patches
(list (local-file
@ -382,6 +376,9 @@
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-ffmpeg-compat.patch")))
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-system-ffmpeg.patch")))
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-system-nspr.patch")))))
@ -483,428 +480,413 @@
%chromium-version ".tar.xz"))
(sha256
(base32
"1s3ilq0ik36qgqp7l88gfd1yx97zscn8yr2kprsrjfp9q8lrva9n"))
"1fpc07zvashaqqalwn7wxnswxclrxvhjrxy1rzr6gcq5awhaw6y9"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:modules ((guix build gnu-build-system)
(list
#:tests? #f
#:modules '((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
#:configure-flags
;; See tools/gn/docs/cookbook.md and
;; https://www.chromium.org/developers/gn-build-configuration
;; for usage. Run "gn args . --list" in the Release
;; directory for an exhaustive list of supported flags.
;; (Note: The 'configure' phase will do that for you.)
(list "is_debug=false"
;; Use the "official" release optimizations, as opposed to
;; a developer build.
"is_official_build=true"
"clang_use_chrome_plugins=false"
"is_cfi=false" ;requires Clang 13
"use_thin_lto=false" ;XXX ICE with Clang+LLD 12.0.1
"chrome_pgo_phase=0"
"use_sysroot=false"
"goma_dir=\"\""
"enable_nacl=false"
"enable_nacl_nonsfi=false"
"use_unofficial_version_number=false"
"treat_warnings_as_errors=false"
"use_official_google_api_keys=false"
"disable_fieldtrial_testing_config=true"
"safe_browsing_mode=0"
"enable_mdns=false"
"enable_one_click_signin=false"
"enable_reading_list=false"
"enable_remoting=false"
"enable_reporting=false"
"enable_service_discovery=false"
"enable_vr=false"
"enable_widevine=false"
;; Disable type-checking for the Web UI to avoid a Java dependency.
"enable_js_type_check=false"
;; Disable code using TensorFlow until it has been scrutinized
;; by the ungoogled project.
"build_with_tflite_lib=false"
;; Avoid dependency on code formatting tools.
"blink_enable_generated_code_formatting=false"
#:configure-flags
;; See tools/gn/docs/cookbook.md and
;; https://www.chromium.org/developers/gn-build-configuration
;; for usage. Run "gn args . --list" in the Release
;; directory for an exhaustive list of supported flags.
;; (Note: The 'configure' phase will do that for you.)
#~(list "is_debug=false"
;; Use the "official" release optimizations, as opposed to
;; a developer build.
"is_official_build=true"
"clang_use_chrome_plugins=false"
"is_cfi=false" ;requires ThinLTO
"use_thin_lto=false" ;XXX lld segfaults
"chrome_pgo_phase=0"
"use_sysroot=false"
"goma_dir=\"\""
"enable_nacl=false"
"enable_nacl_nonsfi=false"
"use_unofficial_version_number=false"
"treat_warnings_as_errors=false"
"use_official_google_api_keys=false"
"disable_fieldtrial_testing_config=true"
"safe_browsing_mode=0"
"enable_mdns=false"
"enable_one_click_signin=false"
"enable_reading_list=false"
"enable_remoting=false"
"enable_reporting=false"
"enable_service_discovery=false"
"enable_vr=false"
"enable_widevine=false"
;; Disable type-checking for the Web UI to avoid a Java dependency.
"enable_js_type_check=false"
;; Disable code using TensorFlow until it has been scrutinized
;; by the ungoogled project.
"build_with_tflite_lib=false"
;; Avoid dependency on code formatting tools.
"blink_enable_generated_code_formatting=false"
;; Define a custom toolchain that simply looks up CC, AR and
;; friends from the environment.
"custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
"host_toolchain=\"//build/toolchain/linux/unbundle:default\""
;; Define a custom toolchain that simply looks up CC, AR and
;; friends from the environment.
"custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
"host_toolchain=\"//build/toolchain/linux/unbundle:default\""
;; Prefer system libraries.
"use_system_freetype=true"
"use_system_harfbuzz=true"
"use_system_lcms2=true"
"use_system_libdrm=true"
"use_system_libjpeg=true"
"use_system_libopenjpeg2=true"
"use_system_libpng=true"
"use_system_wayland_scanner=true"
(string-append "system_wayland_scanner_path=\""
(assoc-ref %build-inputs "wayland-scanner")
"/bin/wayland-scanner\"")
;; Prefer system libraries.
"use_system_freetype=true"
"use_system_harfbuzz=true"
"use_system_lcms2=true"
"use_system_libdrm=true"
"use_system_libjpeg=true"
"use_system_libopenjpeg2=true"
"use_system_libpng=true"
"use_system_wayland_scanner=true"
(string-append "system_wayland_scanner_path=\""
(search-input-file %build-inputs
"/bin/wayland-scanner")
"\"")
"use_system_zlib=true"
"use_gnome_keyring=false" ;deprecated by libsecret
"use_pulseaudio=true"
"link_pulseaudio=true"
"icu_use_data_file=false"
"use_system_zlib=true"
"use_gnome_keyring=false" ;deprecated by libsecret
"use_pulseaudio=true"
"link_pulseaudio=true"
"icu_use_data_file=false"
;; FIXME: Using system protobuf with "is_official_build" causes an
;; invalid opcode and "protoc-gen-plugin: Plugin killed by signal 4".
;;"perfetto_use_system_protobuf=true"
;; FIXME: Using system protobuf with "is_official_build" causes an
;; invalid opcode and "protoc-gen-plugin: Plugin killed by signal 4".
;;"perfetto_use_system_protobuf=true"
;; VA-API acceleration is currently only supported on x86_64-linux.
,@(if (string-prefix? "x86_64" (or (%current-target-system)
(%current-system)))
'("use_vaapi=true")
'())
;; VA-API acceleration is currently only supported on x86_64-linux.
#$@(if (string-prefix? "x86_64" (or (%current-target-system)
(%current-system)))
'("use_vaapi=true")
'())
"media_use_ffmpeg=true"
"media_use_libvpx=true"
"media_use_openh264=true"
"media_use_ffmpeg=true"
"media_use_libvpx=true"
"media_use_openh264=true"
;; Do not artifically restrict formats supported by system ffmpeg.
"proprietary_codecs=true"
"ffmpeg_branding=\"Chrome\""
;; Do not artifically restrict formats supported by system ffmpeg.
"proprietary_codecs=true"
"ffmpeg_branding=\"Chrome\""
;; WebRTC stuff.
"rtc_use_h264=true"
"rtc_use_pipewire=true"
"rtc_link_pipewire=true"
;; Don't use bundled sources.
"rtc_build_json=true" ;FIXME: libc++ std::string ABI difference
"rtc_build_libevent=false"
"rtc_build_libvpx=false"
"rtc_build_opus=false"
"rtc_build_libsrtp=true" ;FIXME: fails to find headers
"rtc_build_usrsctp=true" ;TODO: package this
"rtc_build_ssl=true") ;XXX: the bundled BoringSSL is required?
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-stuff
(lambda* (#:key inputs #:allow-other-keys)
(let ((openjpeg (assoc-ref inputs "openjpeg")))
(substitute* "third_party/pdfium/BUILD.gn"
;; This include path is added by Debians openjpeg patch.
(("/usr/include/openjpeg")
(string-append openjpeg "/include/openjpeg"))))
;; WebRTC stuff.
"rtc_use_h264=true"
"rtc_use_pipewire=true"
"rtc_link_pipewire=true"
;; Don't use bundled sources.
"rtc_build_json=true" ;FIXME: libc++ std::string ABI difference
"rtc_build_libevent=false"
;; XXX: Use the bundled libvpx for WebRTC because unbundling
;; currently fails (see above), and the versions must match.
"rtc_build_libvpx=true"
"rtc_build_opus=false"
"rtc_build_libsrtp=true" ;FIXME: fails to find headers
"rtc_build_usrsctp=true" ;TODO: package this
"rtc_build_ssl=true") ;XXX: requires BoringSSL
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-stuff
(lambda* (#:key inputs #:allow-other-keys)
(let ((openjpeg (search-input-directory
inputs "include/openjpeg-2.4")))
(substitute* "third_party/pdfium/BUILD.gn"
;; This include path is added by Debians openjpeg patch.
(("/usr/include/openjpeg-2.4") openjpeg))
(substitute*
'("base/process/launch_posix.cc"
"base/third_party/dynamic_annotations/dynamic_annotations.c"
"sandbox/linux/seccomp-bpf/sandbox_bpf.cc"
"sandbox/linux/services/credentials.cc"
"sandbox/linux/services/namespace_utils.cc"
"sandbox/linux/services/syscall_wrappers.cc"
"sandbox/linux/syscall_broker/broker_host.cc")
(("include \"base/third_party/valgrind/") "include \"valgrind/"))
(substitute*
'("base/process/launch_posix.cc"
"base/third_party/dynamic_annotations/dynamic_annotations.c"
"sandbox/linux/seccomp-bpf/sandbox_bpf.cc"
"sandbox/linux/services/credentials.cc"
"sandbox/linux/services/namespace_utils.cc"
"sandbox/linux/services/syscall_wrappers.cc"
"sandbox/linux/syscall_broker/broker_host.cc")
(("include \"base/third_party/valgrind/") "include \"valgrind/"))
(for-each (lambda (file)
(substitute* file
;; Fix opus include path.
;; Do not substitute opus_private.h.
(("#include \"opus\\.h\"")
"#include \"opus/opus.h\"")
(("#include \"opus_custom\\.h\"")
"#include \"opus/opus_custom.h\"")
(("#include \"opus_defines\\.h\"")
"#include \"opus/opus_defines.h\"")
(("#include \"opus_multistream\\.h\"")
"#include \"opus/opus_multistream.h\"")
(("#include \"opus_types\\.h\"")
"#include \"opus/opus_types.h\"")))
(find-files (string-append "third_party/webrtc/modules"
"/audio_coding/codecs/opus")))
(for-each (lambda (file)
(substitute* file
;; Fix opus include path.
;; Do not substitute opus_private.h.
(("#include \"opus\\.h\"")
"#include \"opus/opus.h\"")
(("#include \"opus_custom\\.h\"")
"#include \"opus/opus_custom.h\"")
(("#include \"opus_defines\\.h\"")
"#include \"opus/opus_defines.h\"")
(("#include \"opus_multistream\\.h\"")
"#include \"opus/opus_multistream.h\"")
(("#include \"opus_types\\.h\"")
"#include \"opus/opus_types.h\"")))
(find-files (string-append "third_party/webrtc/modules"
"/audio_coding/codecs/opus")))
;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead.
(substitute* (find-files "chrome" "\\.cc$")
(("third_party/icu/source/(common|i18n)/")
""))
;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead.
(substitute* (find-files "chrome" "\\.cc$")
(("third_party/icu/source/(common|i18n)/")
""))
;; XXX: Should be unnecessary when use_system_lcms2=true.
(substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h"
(("include \"third_party/lcms/include/lcms2\\.h\"")
"include \"lcms2.h\""))
;; XXX: Should be unnecessary when use_system_lcms2=true.
(substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h"
(("include \"third_party/lcms/include/lcms2\\.h\"")
"include \"lcms2.h\""))
;; Chromium bundles a pre-release of Harfbuzz 3.0 and uses an
;; experimental API that was removed in 3.0. Adjust to use
;; the updated API (taken from <https://crrev.com/c/3076563>).
(substitute* "components/paint_preview/common/subset_font.cc"
(("hb_subset_input_no_subset_tables_set\\(input\\.get\\(\\)\\)")
"hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG)"))
(substitute*
"third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
(("include \"third_party/curl")
"include \"curl"))
(substitute*
"third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
(("include \"third_party/curl")
"include \"curl"))
(substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
"components/viz/common/resources/resource_format_utils.h"
"gpu/config/gpu_util.cc")
(("third_party/vulkan_headers/include/") ""))
(substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
"components/viz/common/resources/resource_format_utils.h"
"gpu/config/gpu_util.cc")
(("third_party/vulkan_headers/include/") ""))
(substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
(("include/third_party/vulkan/") "")))))
(add-after 'patch-stuff 'add-absolute-references
(lambda* (#:key inputs #:allow-other-keys)
(let ((cups-config (search-input-file inputs "/bin/cups-config"))
(libnssckbi.so (search-input-file inputs
"/lib/nss/libnssckbi.so"))
(libudev.so.1 (search-input-file inputs "/lib/libudev.so.1"))
(libvulkan.so.1 (search-input-file inputs
"/lib/libvulkan.so.1"))
(mesa-lib (dirname (search-input-file inputs
"/lib/libGL.so.1"))))
(substitute* "printing/cups_config_helper.py"
(("cups_config =.*")
(string-append "cups_config = '" cups-config "'\n")))
(substitute* "crypto/nss_util.cc"
(("libnssckbi\\.so") libnssckbi.so))
(substitute* "device/udev_linux/udev1_loader.cc"
(("libudev\\.so\\.1") libudev.so.1))
(substitute* "third_party/dawn/src/dawn_native/vulkan/BackendVk.cpp"
(("libvulkan\\.so\\.1") libvulkan.so.1))
(substitute*
'("ui/ozone/platform/x11/gl_ozone_glx.cc"
"ui/ozone/common/egl_util.cc"
"ui/gl/init/gl_initializer_linux_x11.cc"
"third_party/angle/src/libANGLE/renderer/gl/glx\
/FunctionsGLX.cpp")
(("libGL\\.so\\.1")
(string-append mesa-lib "/libGL.so.1"))
(("libEGL\\.so\\.1")
(string-append mesa-lib "/libEGL.so.1"))
(("libGLESv2\\.so\\.2")
(string-append mesa-lib "/libGLESv2.so.2"))))))
(add-before 'configure 'prepare-build-environment
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((c++ (search-input-directory (or native-inputs inputs)
"include/c++"))
(node (search-input-file (or native-inputs inputs)
"/bin/node")))
;; Remove the default compiler from CPLUS_INCLUDE_PATH to
;; prevent header conflict with the bundled libcxx.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete c++
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))
(substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
(("include/third_party/vulkan/") ""))))
(add-after 'patch-stuff 'add-absolute-references
(lambda* (#:key inputs #:allow-other-keys)
(let ((cups (assoc-ref inputs "cups"))
(nss (assoc-ref inputs "nss"))
(mesa (assoc-ref inputs "mesa"))
(udev (assoc-ref inputs "udev")))
(substitute* "printing/cups_config_helper.py"
(("cups_config =.*")
(string-append "cups_config = '" cups
"/bin/cups-config'\n")))
(substitute* "crypto/nss_util.cc"
(("libnssckbi\\.so")
(string-append nss "/lib/nss/libnssckbi.so")))
(substitute* "device/udev_linux/udev1_loader.cc"
(("libudev\\.so\\.1")
(string-append udev "/lib/libudev.so.1")))
;; Define the GN toolchain.
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++")
(substitute* "third_party/dawn/src/dawn_native/vulkan/BackendVk.cpp"
(("libvulkan\\.so\\.1")
(search-input-file inputs "/lib/libvulkan.so.1")))
;; TODO: pre-compile instead. Avoids a race condition.
(setenv "PYTHONDONTWRITEBYTECODE" "1")
(substitute*
'("ui/ozone/platform/x11/gl_ozone_glx.cc"
"ui/ozone/common/egl_util.cc"
"ui/gl/init/gl_initializer_linux_x11.cc"
"third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp")
(("libGL\\.so\\.1")
(string-append mesa "/lib/libGL.so.1"))
(("libEGL\\.so\\.1")
(string-append mesa "/lib/libEGL.so.1"))
(("libGLESv2\\.so\\.2")
(string-append mesa "/lib/libGLESv2.so.2"))))))
(add-before 'configure 'prepare-build-environment
(lambda* (#:key inputs #:allow-other-keys)
;; XXX: How portable is this.
(mkdir-p "third_party/node/linux/node-linux-x64")
(symlink (dirname node)
"third_party/node/linux/node-linux-x64/bin"))))
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(let ((args (string-join configure-flags " ")))
;; Generate ninja build files.
(invoke "gn" "gen" "out/Release"
(string-append "--args=" args))
;; Define the GN toolchain.
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++")
;; Print the full list of supported arguments as well as
;; their current status for convenience.
(format #t "Dumping configure flags...\n")
(invoke "gn" "args" "out/Release" "--list"))))
(add-before 'build 'increase-resource-limits
(lambda _
;; XXX: Chromiums linking step requires a lot of simultaneous file
;; accesses. Having a too low ulimit will result in bogus linker
;; errors such as "foo.a: error adding symbols: malformed archive".
(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")))
;; Try increasing the soft resource limit of max open files to 2048,
;; or equal to the hard limit, whichever is lower.
(call-with-values (lambda () (getrlimit 'nofile))
(lambda (soft hard)
(when (and soft (< soft 2048))
(if hard
(setrlimit 'nofile (min hard 2048) hard)
(setrlimit 'nofile 2048 #f))
(format #t
"increased maximum number of open files from ~d to ~d~%"
soft (if hard (min hard 2048) 2048)))))))
(replace 'build
(lambda* (#:key (parallel-build? #t) #:allow-other-keys)
(invoke "ninja" "-C" "out/Release"
"-j" (if parallel-build?
(number->string (parallel-job-count))
"1")
"chrome"
"chromedriver")))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(exe (string-append bin "/chromium"))
(lib (string-append out "/lib"))
(man (string-append out "/share/man/man1"))
(applications (string-append out "/share/applications"))
(libs '("chrome_100_percent.pak"
"chrome_200_percent.pak"
"resources.pak"
"v8_context_snapshot.bin"
(setenv "CXXFLAGS"
(string-join
'(;; Do not optimize away null pointer safety checks.
"-fno-delete-null-pointer-checks"
;; Disable warnings about unknown warnings that require
;; Clang plugins or newer versions.
"-Wno-unknown-warning-option")))
;; Swiftshader ICD.
"libvk_swiftshader.so"
"vk_swiftshader_icd.json"
(setenv "CFLAGS" "-Wno-unknown-warning-option")
;; Chromium ships its own libGL
;; implementation called ANGLE.
"libEGL.so" "libGLESv2.so"))
(locales (string-append lib "/locales"))
(resources (string-append lib "/resources"))
(preferences
;; This file contains defaults for new user profiles.
#$(local-file "aux-files/chromium/master-preferences.json"))
(gtk+ (assoc-ref inputs "gtk+"))
(xdg-utils (assoc-ref inputs "xdg-utils")))
;; TODO: pre-compile instead. Avoids a race condition.
(setenv "PYTHONDONTWRITEBYTECODE" "1")
(substitute* '("chrome/app/resources/manpage.1.in"
"chrome/installer/linux/common/desktop.template")
(("@@MENUNAME@@") "Chromium")
(("@@PACKAGE@@") "chromium")
(("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
;; XXX: How portable is this.
(mkdir-p "third_party/node/linux/node-linux-x64")
(symlink (string-append (assoc-ref inputs "node") "/bin")
"third_party/node/linux/node-linux-x64/bin")))
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(let ((args (string-join configure-flags " ")))
;; Generate ninja build files.
(invoke "gn" "gen" "out/Release"
(string-append "--args=" args))
(mkdir-p man)
(copy-file "chrome/app/resources/manpage.1.in"
(string-append man "/chromium.1"))
;; Print the full list of supported arguments as well as
;; their current status for convenience.
(format #t "Dumping configure flags...\n")
(invoke "gn" "args" "out/Release" "--list"))))
(add-before 'build 'increase-resource-limits
(lambda _
;; XXX: Chromiums linking step requires a lot of simultaneous file
;; accesses. Having a too low ulimit will result in bogus linker
;; errors such as "foo.a: error adding symbols: malformed archive".
(mkdir-p applications)
(copy-file "chrome/installer/linux/common/desktop.template"
(string-append applications "/chromium.desktop"))
;; Try increasing the soft resource limit of max open files to 2048,
;; or equal to the hard limit, whichever is lower.
(call-with-values (lambda () (getrlimit 'nofile))
(lambda (soft hard)
(when (and soft (< soft 2048))
(if hard
(setrlimit 'nofile (min hard 2048) hard)
(setrlimit 'nofile 2048 #f))
(format #t
"increased maximum number of open files from ~d to ~d~%"
soft (if hard (min hard 2048) 2048)))))))
(replace 'build
(lambda* (#:key (parallel-build? #t) #:allow-other-keys)
(invoke "ninja" "-C" "out/Release"
"-j" (if parallel-build?
(number->string (parallel-job-count))
"1")
"chrome"
"chromedriver")))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(exe (string-append bin "/chromium"))
(lib (string-append out "/lib"))
(man (string-append out "/share/man/man1"))
(applications (string-append out "/share/applications"))
(libs '("chrome_100_percent.pak"
"chrome_200_percent.pak"
"resources.pak"
"v8_context_snapshot.bin"
(mkdir-p lib)
(copy-file preferences (string-append lib "/master_preferences"))
;; Swiftshader ICD.
"libvk_swiftshader.so"
"vk_swiftshader_icd.json"
(with-directory-excursion "out/Release"
(for-each (cut install-file <> lib) libs)
(copy-file "chrome" (string-append lib "/chromium"))
;; Chromium ships its own libGL
;; implementation called ANGLE.
"libEGL.so" "libGLESv2.so"))
(locales (string-append lib "/locales"))
(resources (string-append lib "/resources"))
(preferences (assoc-ref inputs "master-preferences"))
(gtk+ (assoc-ref inputs "gtk+"))
(xdg-utils (assoc-ref inputs "xdg-utils"))
(sh (which "sh")))
(copy-recursively "locales" locales)
(copy-recursively "resources" resources)
(substitute* '("chrome/app/resources/manpage.1.in"
"chrome/installer/linux/common/desktop.template")
(("@@MENUNAME@@") "Chromium")
(("@@PACKAGE@@") "chromium")
(("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
(mkdir-p bin)
(symlink "../lib/chromium" exe)
(install-file "chromedriver" bin)
(mkdir-p man)
(copy-file "chrome/app/resources/manpage.1.in"
(string-append man "/chromium.1"))
(for-each (lambda (so)
(install-file so (string-append lib "/swiftshader")))
(find-files "swiftshader" "\\.so$"))
(mkdir-p applications)
(copy-file "chrome/installer/linux/common/desktop.template"
(string-append applications "/chromium.desktop"))
(wrap-program exe
;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
`("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))
`("PATH" ":" prefix (,(string-append xdg-utils "/bin")))))
(mkdir-p lib)
(copy-file preferences (string-append lib "/master_preferences"))
(with-directory-excursion "out/Release"
(for-each (cut install-file <> lib) libs)
(copy-file "chrome" (string-append lib "/chromium"))
(copy-recursively "locales" locales)
(copy-recursively "resources" resources)
(mkdir-p bin)
(symlink "../lib/chromium" exe)
(install-file "chromedriver" bin)
(for-each (lambda (so)
(install-file so (string-append lib "/swiftshader")))
(find-files "swiftshader" "\\.so$"))
(wrap-program exe
;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
`("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))
`("PATH" ":" prefix (,(string-append xdg-utils "/bin")))))
(with-directory-excursion "chrome/app/theme/chromium"
(for-each
(lambda (size)
(let ((icons (string-append out "/share/icons/hicolor/"
size "x" size "/apps")))
(mkdir-p icons)
(copy-file (string-append "product_logo_" size ".png")
(string-append icons "/chromium.png"))))
'("24" "48" "64" "128" "256")))))))))
(with-directory-excursion "chrome/app/theme/chromium"
(for-each
(lambda (size)
(let ((icons (string-append out "/share/icons/hicolor/"
size "x" size "/apps")))
(mkdir-p icons)
(copy-file (string-append "product_logo_" size ".png")
(string-append icons "/chromium.png"))))
'("24" "48" "64" "128" "256")))))))))
(native-inputs
`(("bison" ,bison)
("clang" ,clang-12)
("gn" ,gn)
("gperf" ,gperf)
("ld-wrapper" ,lld-as-ld-wrapper)
("ninja" ,ninja)
("node" ,node-lts)
("pkg-config" ,pkg-config)
("which" ,which)
;; This file contains defaults for new user profiles.
("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
("python-beautifulsoup4" ,python-beautifulsoup4)
("python-html5lib" ,python-html5lib)
("python" ,python-wrapper)
("wayland-scanner" ,wayland)))
(list bison
clang-13
gn
gperf
lld-as-ld-wrapper
ninja
node-lts
pkg-config
which
python-beautifulsoup4
python-html5lib
python-wrapper
wayland))
(inputs
`(("alsa-lib" ,alsa-lib)
("atk" ,atk)
("cups" ,cups)
("curl" ,curl)
("dbus" ,dbus)
("expat" ,expat)
("flac" ,flac)
("ffmpeg" ,ffmpeg)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib)
("gtk+" ,gtk+)
("harfbuzz" ,harfbuzz-3.0)
("icu4c" ,icu4c)
("lcms" ,lcms)
("libevent" ,libevent)
("libffi" ,libffi)
("libjpeg-turbo" ,libjpeg-turbo)
("libpng" ,libpng)
("libva" ,libva)
("libvpx" ,libvpx)
("libwebp" ,libwebp)
("libx11" ,libx11)
("libxcb" ,libxcb)
("libxcomposite" ,libxcomposite)
("libxcursor" ,libxcursor)
("libxdamage" ,libxdamage)
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxi" ,libxi)
("libxml2" ,libxml2)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxscrnsaver" ,libxscrnsaver)
("libxslt" ,libxslt)
("libxtst" ,libxtst)
("mesa" ,mesa)
("minizip" ,minizip)
("mit-krb5" ,mit-krb5)
("nss" ,nss)
("openh264" ,openh264)
("openjpeg" ,openjpeg) ;PDFium only
("opus" ,opus+custom)
("pango" ,pango)
("pciutils" ,pciutils)
("pipewire" ,pipewire-0.3)
("pulseaudio" ,pulseaudio)
("snappy" ,snappy)
("speech-dispatcher" ,speech-dispatcher)
("udev" ,eudev)
("valgrind" ,valgrind)
("vulkan-headers" ,vulkan-headers)
("vulkan-loader" ,vulkan-loader)
("wayland" ,wayland)
("xdg-utils" ,xdg-utils)))
(list alsa-lib
atk
cups
curl
dbus
expat
flac
ffmpeg
fontconfig
freetype
gdk-pixbuf
glib
gtk+
harfbuzz-3.0
icu4c
lcms
libevent
libffi
libjpeg-turbo
libpng
libva
libvpx
libwebp
libx11
libxcb
libxcomposite
libxcursor
libxdamage
libxext
libxfixes
libxi
libxml2
libxrandr
libxrender
libxscrnsaver
libxslt
libxtst
mesa
minizip
mit-krb5
nss
openh264
openjpeg ;PDFium only
opus+custom
pango
pciutils
pipewire-0.3
pulseaudio
snappy
speech-dispatcher
eudev
valgrind
vulkan-headers
vulkan-loader
wayland
xdg-utils))
(native-search-paths
(list (search-path-specification
(variable "CHROMIUM_EXTENSION_DIRECTORY")

View File

@ -54,27 +54,9 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
(define-public guile-squee-dev
(let ((commit "e0614273ad4067af82f508db51c8a100131151ea")
(revision "3"))
(package
(inherit guile-squee)
(name "guile-squee")
(version (string-append "0-" revision "." (string-take commit 7)))
(home-page "https://notabug.org/mothacehe/guile-squee.git")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"1jps14z8653ah2kr367iayzyi3ql2s55l77xrafz7gk3mzcvgrrg"))
(file-name (string-append name "-" version "-checkout")))))))
(define-public cuirass
(let ((commit "7160b182a0d4c9aa71460ad9c4d866b440027bbd")
(revision "7"))
(let ((commit "9f08035f942a1e78f92e2db886d7837b0ab98b2f")
(revision "11"))
(package
(name "cuirass")
(version (git-version "1.1.0" revision commit))
@ -87,7 +69,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"1zpldqzrn4ifp0bzh9af4djjjn7bgmyk37qr4qrx3dm1v0jzjgdr"))))
"0jrp0hngbmlg5vmfr93j86lxgk2zm5d424dx0c29ldgfr8i7bwcz"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build utils)
@ -114,14 +96,12 @@
(lambda* (#:key inputs #:allow-other-keys)
(let ((pg (assoc-ref inputs "ephemeralpg"))
(path (getenv "PATH")))
(setenv "PATH" (string-append pg "/bin:" path))
#t)))
(setenv "PATH" (string-append pg "/bin:" path)))))
;; Disable the remote tests that require a Guix daemon connection.
(add-before 'check 'disable-remote-tests
(lambda _
(substitute* "Makefile.am"
(("tests/remote.scm") ""))
#t))
(("tests/remote.scm") ""))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Wrap the 'cuirass' command to refer to the right modules.
@ -165,8 +145,7 @@
(wrap-program (string-append out "/bin/cuirass")
`("PATH" ":" prefix (,(string-append out "/bin")))
`("GUILE_LOAD_PATH" ":" prefix (,mods))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
#t))))))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))))))))
(inputs
(list guile-3.0-latest
guile-avahi
@ -174,7 +153,7 @@
guile-gcrypt
guile-json-4
guile-simple-zmq
guile-squee-dev
guile-squee
guile-git
guile-zlib
guile-mastodon
@ -207,7 +186,7 @@ intended as a replacement for Hydra.")
(define-public laminar
(package
(name "laminar")
(version "1.0")
(version "1.1")
(source
(origin (method url-fetch)
(uri (string-append "https://github.com/ohwgiles/laminar/archive/"
@ -216,7 +195,7 @@ intended as a replacement for Hydra.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"11m6h3rdmj2rsmsryy7r40gqccj4gg1cnqwy6blscs87gx4s423g"))))
"1lzfmfjygmbdr2n1q49kwwffw8frz5y6iczhdz5skwmzwg0chbsf"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; TODO Can't build tests
@ -293,10 +272,10 @@ intended as a replacement for Hydra.")
("ansi_up.js"
,(origin (method url-fetch)
(uri (string-append "https://raw.githubusercontent.com/"
"drudru/ansi_up/v1.3.0/ansi_up.js"))
"drudru/ansi_up/v4.0.4/ansi_up.js"))
(sha256
(base32
"1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r"))))
"1dx8wn38ds8d01kkih26fx1yrisg3kpz61qynjr4zil03ap0hrlr"))))
("Chart.js"
,(origin (method url-fetch)
(uri (string-append "https://github.com/chartjs/Chart.js/"

View File

@ -23,11 +23,14 @@
(define-module (gnu packages clojure)
#:use-module (gnu packages)
#:use-module (gnu packages java)
#:use-module (gnu packages maven)
#:use-module (gnu packages readline)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system ant)
#:use-module (guix build-system copy)
#:use-module (guix build-system clojure)
#:use-module (ice-9 match))
@ -118,23 +121,7 @@
(add-after 'install-license-files 'install-doc
(cut install-doc #:doc-dirs '("doc/clojure/") <...>))
(add-after 'install-doc 'install-javadoc
(install-javadoc "target/javadoc/"))
(add-after 'install 'make-wrapper
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(wrapper (string-append out "/bin/clojure")))
(mkdir-p (string-append out "/bin"))
(with-output-to-file wrapper
(lambda _
(display
(string-append
"#!"
(which "sh")
"\n\n"
(assoc-ref inputs "jre") "/bin/java -jar "
out "/share/java/clojure.jar \"$@\"\n"))))
(chmod wrapper #o555))
#t)))))
(install-javadoc "target/javadoc/")))))
(native-inputs libraries)
(home-page "https://clojure.org/")
(synopsis "Lisp dialect running on the JVM")
@ -163,6 +150,62 @@ designs.")
license:asl2.0
license:cpl1.0)))))
(define-public clojure-tools
(package
(name "clojure-tools")
(version "1.10.3.1040")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.clojure.org/install/clojure-tools-"
version
".tar.gz"))
(sha256 (base32 "0xvr9nmk9q789vp32zmmzj4macv8v7y9ivnfd6lf7i8vxgg6hvgv"))
;; Remove AOT compiled JAR. The other JAR only contains uncompiled
;; Clojure source code.
(snippet
`(delete-file ,(string-append "clojure-tools-" version ".jar")))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("deps.edn" "lib/clojure/")
("example-deps.edn" "lib/clojure/")
("exec.jar" "lib/clojure/libexec/")
("clojure" "bin/")
("clj" "bin/"))
#:modules ((guix build copy-build-system)
(guix build utils)
(srfi srfi-1)
(ice-9 match))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "clojure"
(("PREFIX") (string-append (assoc-ref outputs "out") "/lib/clojure")))
(substitute* "clj"
(("BINDIR") (string-append (assoc-ref outputs "out") "/bin"))
(("rlwrap") (which "rlwrap")))))
(add-after 'fix-paths 'copy-tools-deps-alpha-jar
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "clojure"
(("\\$install_dir/libexec/clojure-tools-\\$version\\.jar")
(string-join
(append-map (match-lambda
((label . dir)
(find-files dir "\\.jar$")))
inputs)
":"))))))))
(inputs (list rlwrap
clojure
clojure-tools-deps-alpha
java-commons-logging-minimal))
(home-page "https://clojure.org/releases/tools")
(synopsis "CLI tools for the Clojure programming language")
(description "The Clojure command line tools can be used to start a
Clojure repl, use Clojure and Java libraries, and start Clojure programs.")
(license license:epl1.0)))
(define-public clojure-algo-generic
(package
(name "clojure-algo-generic")
@ -243,6 +286,66 @@ It supports Clojure 1.5.1 and later as well as ClojureScript.")
(home-page "https://github.com/clojure/core.match")
(license license:epl1.0))))
(define-public clojure-data-codec
(package
(name "clojure-data-codec")
(version "0.1.1")
(home-page "https://github.com/clojure/data.codec")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "data.codec-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"192df1dmbwvf1x837mi731n9x94bdypaz18va45plzgdsh4xx6dr"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()))
(native-inputs (list java-commons-codec
clojure-test-check))
(synopsis "Native codec implementations for Clojure")
(description "Native codec implementations for Clojure. Currently only
base64 has been implemented. Implements the standard base64 encoding
character set, but does not yet support automatic fixed line-length encoding.
All operations work on either byte arrays or Input/OutputStreams. Performance
is on par with Java implementations, e.g., Apache commons-codec.")
(license license:epl1.0)))
(define-public clojure-data-xml
(package
(name "clojure-data-xml")
(version "0.2.0-alpha6")
(home-page "https://github.com/clojure/data.xml")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "data.xml-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"08vglcapq7sd9zhw8dw1y7dcdks7f21w1pw9p05i475i3bw4cf94"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()))
(propagated-inputs (list clojure-data-codec))
(synopsis "Clojure library for reading and writing XML data")
(description "@code{data.xml} is a Clojure library for reading and writing
XML data. @code{data.xml} has the following features:
Parses XML documents into Clojure data structures
Emits XML from Clojure data structures
No additional dependencies if using JDK >= 1.6
Uses StAX internally
lazy - should allow parsing and emitting of large XML documents")
(license license:epl1.0)))
(define-public clojure-instaparse
(let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e")
(version "1.4.9")) ; upstream forget to tag this release
@ -295,6 +398,33 @@ tree.
(home-page "https://github.com/Engelberg/instaparse")
(license license:epl1.0))))
(define-public clojure-test-check
(package
(name "clojure-test-check")
(version "1.1.1")
(home-page "https://github.com/clojure/test.check")
(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
"09jvlibnxhjv0l57y0sa7yy5in67gq4sssag77hv2d980mwdnls6"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()))
(synopsis "QuickCheck for Clojure")
(description "@code{test.check} is a Clojure property-based testing tool
inspired by QuickCheck. The core idea of @code{test.check} is that instead of
enumerating expected input and output for unit tests, you write properties
about your function that should hold true for all inputs. This lets you write
concise, powerful tests.")
(license license:epl1.0)))
(define-public clojure-tools-macro
(package
(name "clojure-tools-macro")
@ -341,3 +471,93 @@ tree.
"The @code{tools.cli} library provides Clojure programmers with tools to
work with command-line arguments.")
(license license:epl1.0)))
(define-public clojure-tools-deps-alpha
(package
(name "clojure-tools-deps-alpha")
(version "0.12.1104")
(home-page "https://github.com/clojure/tools.deps.alpha")
(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
"174m83n5m3arai2vbg434zjibbsr3r4pp7lz3adja8lxq7g21r80"))))
(build-system clojure-build-system)
(arguments
`(#:source-dirs '("src/main/clojure" "src/main/resources")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()
;; FIXME: Could not initialize class org.eclipse.aether.transport.http.SslSocketFactory
#:tests? #f
#:phases
(modify-phases %standard-phases
;; FIXME: Currently, the S3 transporter depends on ClojureScript,
;; which is very difficult to package due to dependencies on Java
;; libraries with non-standard build systems. Instead of actually
;; packaging these libraries, we just remove the S3 transporter that
;; depends on them.
(add-after 'unpack 'remove-s3-transporter
(lambda _
(for-each delete-file
(list
(string-append
"src/main/clojure/clojure/"
"tools/deps/alpha/util/s3_aws_client.clj")
(string-append
"src/main/clojure/clojure/"
"tools/deps/alpha/util/s3_transporter.clj")
(string-append
"src/test/clojure/clojure/"
"tools/deps/alpha/util/test_s3_transporter.clj")))
(substitute*
"src/main/clojure/clojure/tools/deps/alpha/util/maven.clj"
(("clojure.tools.deps.alpha.util.s3-transporter")
"")))))))
(propagated-inputs (list maven-resolver-api
maven-resolver-spi
maven-resolver-impl
maven-resolver-util
maven-resolver-connector-basic
maven-resolver-provider
maven-core
maven-resolver-transport-http
maven-resolver-transport-file
clojure-tools-gitlibs
clojure-tools-cli
clojure-data-xml))
(synopsis "Clojure library supporting clojure-tools")
(description "This package provides a functional API for transitive
dependency graph expansion and the creation of classpaths.")
(license license:epl1.0)))
(define-public clojure-tools-gitlibs
(package
(name "clojure-tools-gitlibs")
(version "2.4.172")
(home-page "https://github.com/clojure/tools.gitlibs")
(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
"19d83wigmigy66f5i61a3ishg7zrlv8jngj8m9brsh9v38a0fwdr"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()
;; Tests attempt to clone git repositories from the internet.
#:tests? #f))
(synopsis "Retrieve, cache, and programmatically access git libraries")
(description "To access git dependencies (for example, via
@code{tools.deps}), one must download git directories and working trees as
indicated by git SHAs. This library provides this functionality and also
keeps a cache of git directories and working trees that can be reused.")
(license license:epl1.0)))

View File

@ -150,7 +150,7 @@ using the CMake build system.")
(define-public cmake-bootstrap
(package
(name "cmake-bootstrap")
(version "3.21.3")
(version "3.21.4")
(source (origin
(method url-fetch)
(uri (string-append "https://cmake.org/files/v"
@ -158,7 +158,7 @@ using the CMake build system.")
"/cmake-" version ".tar.gz"))
(sha256
(base32
"0kvrhgbrvm0lv7jshzd4nsvp3d5q1jkgal2d5kj4w4v58bghckfi"))
"0y2rk316j9m1iqimgwah0z1ii3ggli65dw6hdn4ckx0mqaahlmyr"))
(patches (search-patches "cmake-curl-certificates.patch"))))
(build-system gnu-build-system)
(arguments

View File

@ -71,7 +71,7 @@
(list bdb gmp json-c libxml2 ncurses))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/gnucobol/")
(synopsis "A modern COBOL compiler")
(synopsis "Modern COBOL compiler")
(description "GnuCOBOL is a free, modern COBOL compiler. GnuCOBOL
implements a substantial part of the COBOL 85, COBOL 2002 and COBOL 2014
standards and X/Open COBOL, as well as many extensions included in other

View File

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2015, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
@ -33,6 +33,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages code)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download)
@ -77,18 +78,19 @@
(define-public cflow
(package
(name "cflow")
(version "1.6")
(version "1.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/cflow/cflow-"
version ".tar.bz2"))
(sha256
(base32
"1mzd3yf0dfv8h2av5vsxxlhpk21nw064h91b2kgfrdz92r0pnj1l"))))
"11khr78090jjyqa2l26bdz0myjx6b212lz216dhjc7h0z754c4fh"))))
(build-system gnu-build-system)
;; Needed to have cflow-mode.el installed.
(native-inputs `(("emacs" ,emacs-minimal)))
(native-inputs
(list emacs-minimal))
(arguments
'(#:configure-flags (list (string-append "CPPFLAGS="
"-D" "CFLOW_PREPROC=\\\""
@ -129,77 +131,78 @@ highlighting your own code that seemed comprehensible when you wrote it.")
(define-public global ; a global variable
(package
(name "global")
(version "6.6.7")
(version "6.6.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/global/global-"
version ".tar.gz"))
(sha256
(base32
"0g4aslm2zajq605py11s4rs1wdnzcqhkh7bc2xl5az42adzzg839"))))
"1kaphc3gml89p8dpdgh2is8hj46wj05689kxj0bmh5q759rxk4vg"))))
(build-system gnu-build-system)
(inputs
`(("bash" ,bash-minimal) ; for wrap-program
("coreutils" ,coreutils)
("ctags" ,universal-ctags)
("libltdl" ,libltdl)
("ncurses" ,ncurses)
("python-pygments" ,python-pygments)
("python-wrapper" ,python-wrapper)
("sqlite" ,sqlite)))
(arguments
`(#:configure-flags
(list (string-append "--with-ncurses="
(assoc-ref %build-inputs "ncurses"))
(string-append "--with-sqlite3="
(assoc-ref %build-inputs "sqlite"))
(string-append "--with-universal-ctags="
(assoc-ref %build-inputs "ctags") "/bin/ctags")
(string-append "--sysconfdir="
(assoc-ref %outputs "out") "/share/gtags")
"--localstatedir=/var" ; This needs to be a writable location.
"--disable-static")
(list #:configure-flags
#~(list (string-append "--with-ncurses="
#$(this-package-input "ncurses"))
(string-append "--with-sqlite3="
#$(this-package-input "sqlite"))
(string-append "--with-universal-ctags="
#$(this-package-input "universal-ctags")
"/bin/ctags")
(string-append "--sysconfdir="
#$output "/share/gtags")
"--localstatedir=/var" ; This needs to be a writable location.
"--disable-static")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-globash
(lambda* (#:key inputs #:allow-other-keys)
(let* ((echo (string-append
(assoc-ref inputs "coreutils") "/bin/echo")))
(substitute* "globash/globash.in"
(("/bin/echo") echo)))))
(add-after 'post-install 'install-plugins
(lambda _
(with-directory-excursion "plugin-factory"
(invoke "make" "install"))))
(add-before 'install 'dont-install-to-/var
(lambda _
(substitute* "gozilla/Makefile"
(("DESTDIR\\)\\$\\{localstatedir\\}") "TMPDIR)"))))
(add-after 'install-plugins 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program
(string-append (assoc-ref outputs "out")
"/share/gtags/script/pygments_parser.py")
`("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))))
(add-after 'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
;; Install the plugin files in the right place.
(let* ((out (assoc-ref outputs "out"))
(data (string-append out "/share/gtags"))
(vim (string-append out "/share/vim/vimfiles/plugin"))
(lisp (string-append out "/share/emacs/site-lisp/"
,(package-name this-package) "-"
,(package-version this-package))))
(mkdir-p lisp)
(mkdir-p vim)
(rename-file (string-append data "/gtags.el")
(string-append lisp "/gtags.el"))
(rename-file (string-append data "/gtags.vim")
(string-append vim "/gtags.vim"))
(rename-file (string-append data "/gtags-cscope.vim")
(string-append vim "/gtags-cscope.vim"))
#t))))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-globash
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "globash/globash.in"
(("/bin/echo")
(search-input-file inputs "bin/echo")))))
(add-after 'post-install 'install-plugins
(lambda _
(with-directory-excursion "plugin-factory"
(invoke "make" "install"))))
(add-before 'install 'dont-install-to-/var
(lambda _
(substitute* "gozilla/Makefile"
(("DESTDIR\\)\\$\\{localstatedir\\}")
"TMPDIR)"))))
(add-after 'install-plugins 'wrap-program
(lambda _
(wrap-program
(string-append #$output
"/share/gtags/script/pygments_parser.py")
`("GUIX_PYTHONPATH" ":" prefix
(,(getenv "GUIX_PYTHONPATH"))))))
(add-after 'install 'post-install
(lambda _
;; Install the plugin files in the right place.
(let* ((data (string-append #$output "/share/gtags"))
(vim (string-append #$output
"/share/vim/vimfiles/plugin"))
(lisp (string-append #$output "/share/emacs/site-lisp/"
#$(package-name this-package) "-"
#$(package-version this-package))))
(mkdir-p lisp)
(mkdir-p vim)
(rename-file (string-append data "/gtags.el")
(string-append lisp "/gtags.el"))
(rename-file (string-append data "/gtags.vim")
(string-append vim "/gtags.vim"))
(rename-file (string-append data "/gtags-cscope.vim")
(string-append vim "/gtags-cscope.vim"))))))))
(inputs
(list bash-minimal ; for wrap-program
coreutils
universal-ctags
libltdl
ncurses
python-pygments
python-wrapper
sqlite))
(home-page "https://www.gnu.org/software/global/")
(synopsis "Cross-environment source code tag system")
(description
@ -561,7 +564,7 @@ results and determine build stability.")
(define-public kcov
(package
(name "kcov")
(version "39")
(version "40")
(source (origin
(method git-fetch)
(uri (git-reference
@ -570,7 +573,7 @@ results and determine build stability.")
(file-name (git-file-name name version))
(sha256
(base32
"09wf1k4dlpdhqjjgq2bibmgy8i3z32wf0zxhd2px2dvg92m4zwqr"))))
"0zayhmx6s377bxmkmvl9d9vjzfbpvh1k9ba6np4zdjvjjq327xag"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no test target
@ -588,9 +591,9 @@ results and determine build stability.")
(list python))
(home-page "https://github.com/SimonKagstrom/kcov")
(synopsis "Code coverage tester for compiled languages, Python and Bash")
(description "Kcov is a FreeBSD/Linux/OSX code coverage tester for compiled
languages, Python and Bash. Kcov was originally a fork of Bcov, but has since
evolved to support a large feature set in addition to that of Bcov.
(description "Kcov is a code coverage tester for compiled languages,
Python and Bash. It was originally a fork of Bcov, but has since evolved to
support a large feature set in addition to that of Bcov.
Kcov uses DWARF debugging information for compiled programs to make it
possible to collect coverage information without special compiler switches.")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
@ -2496,6 +2496,7 @@ exec " gcc "/bin/" program
,@(substitute-keyword-arguments (package-arguments findutils)
((#:configure-flags flags ''())
`(append
;; TODO: Figure out exactly with architectures need this.
,(if (target-64bit?)
''("TIME_T_32_BIT_OK=yes")
''())
@ -2701,6 +2702,50 @@ exec " gcc "/bin/" program
(inputs (%boot0-inputs))
(native-inputs '()))))
(define libstdc++-boot0-gcc7
;; GCC >= 7 is needed by architectures which use C++-14 features.
(let ((lib (make-libstdc++ gcc-7)))
(package
(inherit lib)
(source (bootstrap-origin (package-source lib)))
(name "libstdc++-boot0")
(arguments
`(#:guile ,%bootstrap-guile
#:implicit-inputs? #f
;; XXX: libstdc++.so NEEDs ld.so for some reason.
#:validate-runpath? #f
,@(substitute-keyword-arguments (package-arguments lib)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'unpack-gmp&co
(lambda* (#:key inputs #:allow-other-keys)
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
(mpfr (assoc-ref %build-inputs "mpfr-source"))
(mpc (assoc-ref %build-inputs "mpc-source")))
;; To reduce the set of pre-built bootstrap inputs, build
;; GMP & co. from GCC.
(for-each (lambda (source)
(invoke "tar" "xvf" source))
(list gmp mpfr mpc))
;; Create symlinks like `gmp' -> `gmp-x.y.z'.
,@(map (lambda (lib)
;; Drop trailing letters, as gmp-6.0.0a unpacks
;; into gmp-6.0.0.
`(symlink ,(string-trim-right
(package-full-name lib "-")
char-set:letter)
,(package-name lib)))
(list gmp-6.0 mpfr mpc))))))))))
(inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0)))
("mpfr-source" ,(bootstrap-origin (package-source mpfr)))
("mpc-source" ,(bootstrap-origin (package-source mpc)))
,@(%boot0-inputs)))
(native-inputs '()))))
(define gcc-boot0
(package
(inherit gcc)
@ -2812,7 +2857,9 @@ exec " gcc "/bin/" program
("binutils-cross" ,binutils-boot0)
;; The libstdc++ that libcc1 links against.
("libstdc++" ,libstdc++-boot0)
("libstdc++" ,(match (%current-system)
("riscv64-linux" libstdc++-boot0-gcc7)
(_ libstdc++-boot0)))
;; Call it differently so that the builder can check whether
;; the "libc" input is #f.
@ -3540,6 +3587,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define (%boot3-inputs)
;; 4th stage inputs.
`(("gcc" ,gcc-final)
,@(if (target-riscv64?)
`(("gcc:lib" ,gcc-final "lib"))
'())
("ld-wrapper" ,ld-wrapper-boot3)
,@(alist-delete "gcc" (%boot2-inputs))))
@ -3777,6 +3827,10 @@ COREUTILS-FINAL vs. COREUTILS, etc."
(append (package-search-paths gcc)
(package-search-paths libc)))
;; Copy the 'compiler-cpu-architectures' property and other things that
;; may be useful, but not the 'hidden?' property.
(properties (alist-delete 'hidden? (package-properties gcc)))
(license (package-license gcc))
(synopsis "Complete GCC tool chain for C/C++ development")
(description

View File

@ -4,7 +4,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
@ -1392,6 +1392,32 @@ handles the 7z format which features very high compression ratios.")
functionality in a C++ iostream.")
(license license:lgpl2.1+)))
(define-public zopfli
(package
(name "zopfli")
(version "1.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/zopfli")
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0dr8n4j5nj2h9n208jns56wglw59gg4qm3s7c6y3hs75d0nnkhm4"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test suite
#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
(home-page "https://github.com/google/zopfli")
(synopsis "Very good, but slow, deflate or zlib compression")
(description "Zopfli Compression Algorithm is a compression library
programmed in C to perform very good, but slow, deflate or zlib compression.
ZopfliCompress supports the deflate, gzip and zlib output formats. This
library can only compress, not decompress; existing zlib or deflate libraries
can decompress the data.")
(license license:asl2.0)))
(define-public zpaq
(package
(name "zpaq")
@ -2280,7 +2306,7 @@ API, and that means that you can also use QTextStream, QDataStream or
whatever you would like to use on your zipped files.
QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both
reading from and writing to ZIP archives. ")
reading from and writing to ZIP archives.")
;; Project is distributed under LGPL, but "quazip/z*" "quazip/unzip.*" are
;; distributed under zlib terms.
(license (list license:lgpl2.1+ license:zlib))))
@ -2708,3 +2734,31 @@ negotiation. These design goals make it different from earlier binary
serializations such as ASN.1 and MessagePack.")
(license license:expat)
(home-page "https://github.com/PJK/libcbor")))
(define-public fcrackzip
(package
(name "fcrackzip")
(version "1.0")
(source (origin
(method url-fetch)
(uri (string-append "http://oldhome.schmorp.de/marc/data/"
"fcrackzip-" version ".tar.gz"))
(sha256
(base32
"0l1qsk949vnz18k4vjf3ppq8p497966x4c7f2yx18x8pk35whn2a"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'fix-reference-to-unzip
(lambda _
(substitute* "main.c"
(("\"unzip")
(string-append "\"" (which "unzip")))))))))
(inputs
(list perl unzip))
(home-page "http://oldhome.schmorp.de/marc/fcrackzip.html")
(synopsis "Zip password cracker")
(description "Fcrackzip is a Zip file password cracker.")
(license license:gpl2+)))

View File

@ -0,0 +1,346 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Timmy Douglas <mail@timmydouglas.com>
;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; 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 containers)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix utils)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages linux)
#:use-module (gnu packages python)
#:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages selinux)
#:use-module (gnu packages version-control)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages web))
(define-public crun
(let ((commit "8e5757a4e68590326dafe8a8b1b4a584b10a1370"))
(package
(name "crun")
(version "1.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containers/crun")
(commit commit)
(recursive? #t)))
(sha256
(base32 "01yiss2d57kwlxb7zlqzjwlg9fyaf19yjngd1mw9n4hxls3dfj3k"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-systemd")
#:tests? #f ; XXX: needs /sys/fs/cgroup mounted
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-depend-on-git
(lambda _
(substitute* "autogen.sh"
(("^git submodule update.*")
""))
(with-output-to-file "git-version.h"
(lambda ()
(display (string-append
"/* autogenerated. */\n#ifndef GIT_VERSION\n# define GIT_VERSION \""
,commit
"\"\n#endif\n"))))))
(add-after 'unpack 'fix-tests
(lambda _
(substitute* (find-files "tests" "\\.(c|py)")
(("/bin/true") (which "true"))
(("/bin/false") (which "false"))
; relies on sd_notify which requires systemd?
(("\"sd-notify\" : test_sd_notify,") "")
(("\"sd-notify-file\" : test_sd_notify_file,") "")))))))
(inputs
(list libcap
libseccomp
libyajl))
(native-inputs
(list automake
autoconf
git
libtool
pkg-config
python-3))
(home-page "https://github.com/containers/crun")
(synopsis "Open Container Initiative (OCI) Container runtime")
(description
"crun is a fast and low-memory footprint Open Container Initiative (OCI)
Container Runtime fully written in C.")
(license license:gpl2+))))
(define-public conmon
(package
(name "conmon")
(version "2.0.31")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containers/conmon")
(commit (string-append "v" version))))
(sha256
(base32 "1cxklcihb2i4ywli0fxafkp2gi1x831r37z7spnigaj6pzj1517w"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "PREFIX=" #$output))
;; XXX: uses `go get` to download 50 packages, runs a ginkgo test suite
;; then tries to download busybox and use a systemd logging library
;; see also https://github.com/containers/conmon/blob/main/nix/derivation.nix
#:tests? #f
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'set-env
(lambda _
;; when running go, things fail because
;; HOME=/homeless-shelter.
(setenv "HOME" "/tmp"))))))
(inputs
(list crun
glib
libseccomp))
(native-inputs
(list git
go
pkg-config))
(home-page "https://github.com/containers/conmon")
(synopsis "Monitoring tool for Open Container Initiative (OCI) runtime")
(description
"Conmon is a monitoring program and communication tool between a container
manager (like Podman or CRI-O) and an Open Container Initiative (OCI)
runtime (like runc or crun) for a single container.")
(license license:asl2.0)))
(define-public libslirp
(package
(name "libslirp")
(version "4.6.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/slirp/libslirp")
(commit (string-append "v" version))))
(sha256
(base32 "1b4cn51xvzbrxd63g6w1033prvbxfxsnsn1l0fa5i311xv28vkh0"))
(file-name (git-file-name name version))))
(build-system meson-build-system)
(inputs
(list glib))
(native-inputs
(list pkg-config))
(home-page "https://gitlab.freedesktop.org/slirp/libslirp")
(synopsis "User-mode networking library")
(description
"libslirp is a user-mode networking library used by virtual machines,
containers or various tools.")
(license license:bsd-3)))
(define-public slirp4netns
(package
(name "slirp4netns")
(version "1.1.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rootless-containers/slirp4netns")
(commit (string-append "v" version))))
(sha256
(base32 "03llv4dlf7qqxwz4zdyk926g4bigfj2gb50glm70ciflpvzs8081"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; XXX: open("/dev/net/tun"): No such file or directory
#:phases (modify-phases %standard-phases
(add-after 'unpack 'fix-hardcoded-paths
(lambda _
(substitute* (find-files "tests" "\\.sh")
(("ping") "/run/setuid-programs/ping")))))))
(inputs
(list glib
libcap
libseccomp
libslirp))
(native-inputs
(list automake
autoconf
iproute ; iproute, jq, nmap (ncat) and util-linux are for tests
jq
nmap
pkg-config
util-linux))
(home-page "https://github.com/rootless-containers/slirp4netns")
(synopsis "User-mode networking for unprivileged network namespaces")
(description
"slirp4netns provides user-mode networking (\"slirp\") for unprivileged
network namespaces.")
(license license:gpl2+)))
(define-public cni-plugins
(package
(name "cni-plugins")
(version "1.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containernetworking/plugins")
(commit (string-append "v" version))))
(sha256
(base32 "1j91in0mg4nblpdccyq63ncbnn2pc2zzjp1fh3jy0bsndllgv0nc"))
(file-name (git-file-name name version))))
(build-system go-build-system)
(arguments
`(#:unpack-path "github.com/containernetworking/plugins"
#:tests? #f ; XXX: see stat /var/run below
#:phases (modify-phases %standard-phases
(replace 'build
(lambda _
(with-directory-excursion
"src/github.com/containernetworking/plugins"
(invoke "./build_linux.sh"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
; only pkg/ns tests run without root
(when tests?
(with-directory-excursion
"src/github.com/containernetworking/plugins/pkg/ns"
(invoke "stat" "/var/run") ; XXX: test tries to stat this directory
(invoke "unshare" "-rmn" "go" "test")))))
(add-before 'check 'set-test-environment
(lambda _
(setenv "XDG_RUNTIME_DIR" "/tmp/cni-rootless")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively
"src/github.com/containernetworking/plugins/bin"
(string-append (assoc-ref outputs "out") "/bin")))))))
(native-inputs
(list util-linux))
(home-page "https://github.com/containernetworking/plugins")
(synopsis "Container Network Interface (CNI) network plugins")
(description
"This package provides Container Network Interface (CNI) plugins to
configure network interfaces in Linux containers.")
(license license:asl2.0)))
;; For podman to work, the user needs to run
;; `sudo mount -t cgroup2 none /sys/fs/cgroup`
(define-public podman
(package
(name "podman")
(version "3.4.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containers/podman")
(commit (string-append "v" version))))
(sha256
(base32 "1q09qsl1wwiiy5njvb97n1j5f5jin4ckmzj5xbdfs28czb2kx3g5"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list ,(string-append "CC=" (cc-for-target))
(string-append "PREFIX=" %output))
#:tests? #f ; /sys/fs/cgroup not set up in guix sandbox
#:test-target "test"
#:phases (modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'set-env
(lambda* (#:key inputs #:allow-other-keys)
;; when running go, things fail because
;; HOME=/homeless-shelter.
(setenv "HOME" "/tmp")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; (invoke "strace" "-f" "bin/podman" "version")
(invoke "make" "localsystem")
(invoke "make" "remotesystem"))))
(add-after 'unpack 'fix-hardcoded-paths
(lambda _
(substitute* (find-files "libpod" "\\.go")
(("exec.LookPath[(][\"]slirp4netns[\"][)]")
(string-append "exec.LookPath(\""
(which "slirp4netns") "\")")))
(substitute* "hack/install_catatonit.sh"
(("CATATONIT_PATH=\"[^\"]+\"")
(string-append "CATATONIT_PATH=" (which "true"))))
(substitute* "vendor/github.com/containers/common/pkg/config/config_linux.go"
(("/usr/local/libexec/podman")
(string-append (assoc-ref %outputs "out") "/bin")))
(substitute* "vendor/github.com/containers/common/pkg/config/default.go"
(("/usr/libexec/podman/conmon") (which "conmon"))
(("/usr/local/libexec/cni")
(string-append (assoc-ref %build-inputs "cni-plugins")
"/bin"))
(("/usr/bin/crun") (which "crun"))))))))
(inputs
(list btrfs-progs
cni-plugins
conmon
crun
gpgme
go-github-com-go-md2man
iptables
libassuan
libseccomp
libselinux
slirp4netns))
(native-inputs
(list bats
git
go
; strace ; XXX debug
pkg-config))
(home-page "https://podman.io")
(synopsis "Manage containers, images, pods, and their volumes")
(description
"Podman (the POD MANager) is a tool for managing containers and images,
volumes mounted into those containers, and pods made from groups of
containers.")
(license license:asl2.0)))

View File

@ -52,7 +52,7 @@
(define-public coq-core
(package
(name "coq-core")
(version "8.14.0")
(version "8.14.1")
(source
(origin
(method git-fetch)
@ -62,7 +62,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0iachapmdwvwwlvkrb2yxhqqrgzs70zyr1c9v1jdb1awx3bp68hf"))
"0q634fmrh5ivpxy7ammdiqdh9xp72ji2726vcz1bd55ln0d08z40"))
(patches (search-patches "coq-fix-envvars.patch"))))
(native-search-paths
(list (search-path-specification

View File

@ -8,9 +8,9 @@
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
@ -22,6 +22,9 @@
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -78,6 +81,76 @@
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
(define-public argagg
(let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0"))
(package
(name "argagg")
(version (git-version "0.4.6" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vietjtnguyen/argagg")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
(build-system cmake-build-system)
(outputs '("out" "doc"))
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'install 'move-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((name ,(package-name argagg)) (out (assoc-ref
outputs
"out"))
(doc (assoc-ref outputs "doc")))
(mkdir-p (string-append doc "/share/doc"))
(rename-file
(string-append out "/share/doc/" name)
(string-append doc "/share/doc/" name))))))))
(native-inputs (list doxygen))
(home-page "https://github.com/vietjtnguyen/argagg")
(synopsis "C++11 command line argument parser")
(description
"ArgAgg is yet another C++ command line argument/option
parser. It was written as a simple and idiomatic alternative to other
frameworks like getopt, Boost program options, TCLAP, and others. The goal is
to achieve the majority of argument parsing needs in a simple manner with an
easy to use API.")
(license license:expat))))
(define-public asmjit
(let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
(revision "0"))
(package
(name "asmjit")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/asmjit/asmjit")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags #~(list "-DASMJIT_TEST=TRUE")))
(home-page "https://asmjit.com/")
(synopsis "Machine code generation for C++")
(description "AsmJit is a lightweight library for machine code
generation written in C++ language. It can generate machine code for X86 and
X86_64 architectures with the support for the whole instruction set from
legacy MMX to the newest AVX-512 and AMX. It has a type-safe API that allows
C++ compiler to do semantic checks at compile-time even before the assembled
code is generated or executed. It also provides an optional register
allocator that makes it easy to generate complex code without a significant
development effort.")
(license license:zlib))))
(define-public range-v3
(package
(name "range-v3")
@ -111,7 +184,7 @@ range-v3 ranges are an abstraction layer on top of iterators.")
(license:x11-style "file:///LICENSE.txt")
;; SGI STL
license:sgifreeb2.0
;;; LibC++ (dual-licensed)
;;; LibC++ (dual-licensed)
license:expat
license:ncsa
;; Others
@ -300,6 +373,53 @@ It also provides accelerated implementation of common mathematical functions
operating on batches.")
(license license:bsd-3)))
(define-public google-highway
(package
(name "google-highway")
(version "0.15.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/highway")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1yjwgnrpd9m99x2nqf6ld28zc6y9nlsxqg128bxxmja1gg4g4qdz"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on")))
(native-inputs
(list googletest))
(home-page "https://github.com/google/highway")
(synopsis "SIMD library with runtime dispatch")
(description "Highway is a performance-portable, length-agnostic C++
library for SIMD (Single Instruction, Multiple Data) with runtime dispatch.")
(license license:asl2.0)))
(define-public xsmimd-benchmark
(package
(inherit xsimd)
(name "xsimd-benchmark")
(arguments
`(#:configure-flags (list "-DBUILD_BENCHMARK=ON")
#:tests? #f
#:phases (modify-phases %standard-phases
(add-after 'unpack 'remove-march=native
(lambda _
(substitute* "benchmark/CMakeLists.txt"
(("-march=native") ""))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
;; Install nothing but the executable.
(let ((out (assoc-ref outputs "out")))
(install-file "benchmark/benchmark_xsimd"
(string-append out "/bin"))))))))
(synopsis "Benchmark of the xsimd library")
;; Mark as tunable to take advantage of SIMD code in xsimd/xtensor.
(properties '((tunable? . #t)))))
(define-public chaiscript
(package
(name "chaiscript")
@ -510,6 +630,28 @@ syntax highlighting. @code{ccls} is derived from @code{cquery} which is not
maintained anymore.")
(license license:asl2.0)))
(define-public concurrentqueue
(package
(name "concurrentqueue")
(version "1.0.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cameron314/concurrentqueue/")
(commit "3747268264d0fa113e981658a99ceeae4dad05b7")))
(file-name (git-file-name name version))
(sha256
(base32 "1n5v7n27llzg7khg1jvi35jrcf9v6adw8gaic9ndxn65dp723ssy"))))
(build-system cmake-build-system)
(arguments '(#:tests? #false)) ;no check target
(home-page "https://github.com/cameron314/concurrentqueue/")
(synopsis "Multi-producer, multi-consumer lock-free concurrent queue for C++11")
(description
"This package provides a fast multi-producer, multi-consumer lock-free
concurrent queue for C++11.")
(license license:bsd-2)))
(define-public spscqueue
(package
(name "spscqueue")
@ -1136,7 +1278,7 @@ computation.")
(native-inputs
`(("unzip" ,unzip)))
(home-page "https://sourceforge.net/projects/polyclipping")
(synopsis "A polygon and line clipping and offsetting library")
(synopsis "Polygon and line clipping and offsetting library")
(description
"The Clipper library performs line & polygon clipping - intersection,
union, difference & exclusive-or, and line & polygon offsetting.

File diff suppressed because it is too large Load Diff

View File

@ -192,10 +192,10 @@ text or blue underlined text, on ANSI terminals.")
"1xif1bh938qpfc3d0f9xgidibpm65xix11w9gszwqnia00q7rb13"))))
(arguments `())))
(define-public rust-aom-sys-0.2
(define-public rust-aom-sys-0.3
(package
(name "rust-aom-sys")
(version "0.2.1")
(version "0.3.0")
(source
(origin
(method url-fetch)
@ -204,7 +204,7 @@ text or blue underlined text, on ANSI terminals.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"03a0xhaafjn0hlpcf9ba73hv557m0jqnmj9wl57wzrcnka96zvgj"))))
"0dhikfl7l5nacspajbllbhhysad3vl845cpfplqgm5mf67nmx9w8"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@ -219,30 +219,6 @@ text or blue underlined text, on ANSI terminals.")
(description "This package provides FFI bindings to aom.")
(license license:expat)))
(define-public rust-aom-sys-0.1
(package
(inherit rust-aom-sys-0.2)
(name "rust-aom-sys")
(version "0.1.4")
(source
(origin
(method url-fetch)
(uri (crate-uri "aom-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1bqcpkycv1d67r6jcl9npfbw6rkl829rdq9w6vlpb0rjqxp0xzsn"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bindgen" ,rust-bindgen-0.53)
("rust-metadeps" ,rust-metadeps-1))))
(native-inputs
(list pkg-config))
(inputs
(list libaom clang llvm))))
(define-public rust-ascii-canvas-2
(package
(name "rust-ascii-canvas")
@ -570,24 +546,44 @@ types.")
and iOS.")
(license license:expat)))
(define-public rust-dav1d-0.6
(package
(name "rust-dav1d")
(version "0.6.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "dav1d" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0pn6r1a9qfrpg2xwc7ci2iddvnzxb17ddca0bwymgi839cxc2chl"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-dav1d-sys" ,rust-dav1d-sys-0.3))))
(home-page "https://github.com/rust-av/dav1d-rs")
(synopsis "libdav1d bindings in Rust")
(description "This package provides libdav1d bindings in Rust.")
(license license:expat)))
(define-public rust-dav1d-sys-0.3
(package
(name "rust-dav1d-sys")
(version "0.3.2")
(version "0.3.4")
(source
(origin
(method url-fetch)
(uri (crate-uri "dav1d-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1jdxhnlxcml6jd67lx78ifzkn1xm18zfk4li7vjdh3fa61i073kx"))))
(origin
(method url-fetch)
(uri (crate-uri "dav1d-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32 "020lla2l703iy69gbksq18snj2b1sp7vmjf39qqykd4242d4msr5"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bindgen" ,rust-bindgen-0.54)
("rust-metadeps" ,rust-metadeps-1))))
(("rust-bindgen" ,rust-bindgen-0.58)
("rust-system-deps" ,rust-system-deps-3))))
(native-inputs
(list pkg-config))
(inputs
@ -597,10 +593,32 @@ and iOS.")
(description "This package provides FFI bindings to dav1d.")
(license license:expat)))
(define-public rust-euclid-0.20
(define-public rust-dcv-color-primitives-0.1
(package
(name "rust-dcv-color-primitives")
(version "0.1.16")
(source
(origin
(method url-fetch)
(uri (crate-uri "dcv-color-primitives" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0yrm1qipdmadynhjgz1bvdh42ph9azvwg8v43c8ywr8vlx9qvaq2"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))))
(home-page "https://github.com/aws/dcv-color-primitives")
(synopsis "Rust library to perform image color model conversion")
(description "This package is a Rust library to perform image color model
conversion.")
(license license:expat)))
(define-public rust-euclid-0.22
(package
(name "rust-euclid")
(version "0.20.10")
(version "0.22.6")
(source
(origin
(method url-fetch)
@ -609,11 +627,12 @@ and iOS.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0c3hbl0kvc53k6nws0v9d46hi0giza1j079sqx2bgl4wfw65nshc"))))
"102blw7ljphi7i2xg435z0bb0a4npmwwbgyfinqxg1m0af2q55ns"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-mint" ,rust-mint-0.5)
(("rust-arbitrary" ,rust-arbitrary-1)
("rust-mint" ,rust-mint-0.5)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-serde" ,rust-serde-1))
#:cargo-development-inputs
@ -775,14 +794,14 @@ EUI-64, also known as MAC-48 media access control addresses.")
(define-public rust-gif-0.11
(package
(name "rust-gif")
(version "0.11.1")
(version "0.11.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "gif" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1i4n9fwg3zrp07pi5zsgyza2gl8lqnap6fj6875lfy121xbbmvq2"))))
(base32 "0nsfd5qvp69z8kn17ziiq8zv4mclfycyxppf5k9fm2h8g1z1i9y3"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@ -1214,14 +1233,14 @@ PATH.")
(define-public rust-image-0.23
(package
(name "rust-image")
(version "0.23.12")
(version "0.23.14")
(source
(origin
(method url-fetch)
(uri (crate-uri "image" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1dg9z5sbc389spp7pm23n2b1k0gdd8hjdb8hhsp3k3npx9vl1q3w"))))
(base32 "18gn2f7xp30pf9aqka877knlq308khxqiwjvsccvzaa4f9zcpzr4"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@ -1363,7 +1382,7 @@ pixel buffers with width, height and stride.")
(define-public rust-jpeg-decoder-0.1
(package
(name "rust-jpeg-decoder")
(version "0.1.18")
(version "0.1.22")
(source
(origin
(method url-fetch)
@ -1371,8 +1390,7 @@ pixel buffers with width, height and stride.")
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0lc428qgffh2a1agkq0p26mvf9rjaiswpywy5883j99mqypg0mh2"))))
(base32 "1wnh0bmmswpgwhgmlizz545x8334nlbmkq8imy9k224ri3am7792"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Some test files missing.
@ -1418,10 +1436,33 @@ pixel buffers with width, height and stride.")
graphics and video games.")
(license license:expat)))
(define-public rust-lyon-geom-0.14
(define-public rust-lyon-extra-0.17
(package
(name "rust-lyon-extra")
(version "0.17.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "lyon_extra" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "10n8h48a363qa66byqfkg164542p97v5rrnb33gqhggah739nwm0"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build?
#t
#:cargo-inputs
(("rust-lyon-path" ,rust-lyon-path-0.17)
("rust-lyon-svg" ,rust-lyon-svg-0.17))))
(home-page "https://github.com/nical/lyon")
(synopsis "Optional utilities for the lyon crate")
(description "This package provides optional utilities for the lyon crate.")
(license (list license:expat license:asl2.0))))
(define-public rust-lyon-geom-0.17
(package
(name "rust-lyon-geom")
(version "0.14.1")
(version "0.17.6")
(source
(origin
(method url-fetch)
@ -1430,25 +1471,25 @@ graphics and video games.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"178z4cqqmyw0rsabbgx9phkjxjzcnq0604062lqjlq87k063216a"))))
"12al92qsh0f8ci3qf3533r4y5hxzzyfp972vm4wqzz9bq9vwx6ff"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-num-traits" ,rust-num-traits-0.2)
("rust-euclid" ,rust-euclid-0.20)
("rust-arrayvec" ,rust-arrayvec-0.4)
("rust-serde" ,rust-serde-1))))
(("rust-arrayvec" ,rust-arrayvec-0.5)
("rust-euclid" ,rust-euclid-0.22)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-serde" ,rust-serde-1))))
(home-page "https://github.com/nical/lyon")
(synopsis "2D graphics rendering on the GPU using tessellation")
(description
"This package provides 2D graphics rendering on the GPU using tessellation.")
(license (list license:expat license:asl2.0))))
(define-public rust-lyon-path-0.14
(define-public rust-lyon-path-0.17
(package
(name "rust-lyon-path")
(version "0.14.0")
(version "0.17.7")
(source
(origin
(method url-fetch)
@ -1457,12 +1498,12 @@ graphics and video games.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0qk8x46w0sf6j04l6gvhgn9kr4ymcqkmkh67w8wqahm54jn5gjqb"))))
"1h7vbfaanf3x7xch6md4q4ja3xmvsi41n7d6ga40vjk7yzymj2jv"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-lyon-geom" ,rust-lyon-geom-0.14)
(("rust-lyon-geom" ,rust-lyon-geom-0.17)
("rust-serde" ,rust-serde-1))))
(home-page "https://github.com/nical/lyon")
(synopsis "Types and utilities to store, build and iterate over 2D paths")
@ -1470,6 +1511,54 @@ graphics and video games.")
"Types and utilities to store, build and iterate over 2D paths.")
(license (list license:expat license:asl2.0))))
(define-public rust-lyon-svg-0.17
(package
(name "rust-lyon-svg")
(version "0.17.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "lyon_svg" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0fin6h9vwgz7gi2a1b0j9bp8a1aval2lvha1kzy7iijm4kgdcj3d"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build?
#t
#:cargo-inputs
(("rust-lyon-path" ,rust-lyon-path-0.17)
("rust-svgtypes" ,rust-svgtypes-0.5))))
(home-page "https://github.com/nical/lyon")
(synopsis "SVG helpers for the lyon crates")
(description "This package provides SVG helpers for the lyon crates.")
(license (list license:expat license:asl2.0))))
(define-public rust-lyon-tessellation-0.17
(package
(name "rust-lyon-tessellation")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "lyon-tessellation" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0q2pccjszda26asylnvhwsil8wvsprfjazrqdzj4i033s26y0c3j"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-float-next-after" ,rust-float-next-after-0.1)
("rust-lyon-path" ,rust-lyon-path-0.17)
("rust-serde" ,rust-serde-1))
#:cargo-development-inputs
(("rust-lyon-extra" ,rust-lyon-extra-0.17))))
(home-page "https://github.com/nical/lyon")
(synopsis "Low level path tessellation library")
(description
"This package provides a low level path tessellation library.")
(license (list license:expat license:asl2.0))))
(define-public rust-osmesa-sys-0.1
(package
(name "rust-osmesa-sys")
@ -1587,7 +1676,7 @@ nicely with Piston libraries.")
(home-page
"https://github.com/PistonDevelopers/graphics_api_version")
(synopsis
"A library for storing graphics API versions")
"Library for storing graphics API versions")
(description
"This package provides a library for storing graphics API versions")
(license license:expat)))
@ -1630,7 +1719,7 @@ nicely with Piston libraries.")
(arguments `(#:skip-build? #t))
(home-page
"https://github.com/pistondevelopers/texture")
(synopsis "A generic library for textures")
(synopsis "Generic library for textures")
(description
"This package provides a generic library for textures")
(license license:expat)))

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -383,18 +383,29 @@ the wrong hands.")
"$(LNS) "))))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(delete 'configure)) ; no configure script
#:make-flags (list ,(string-append "CC=" (cc-for-target))
"RPATH=-Wl,-rpath,$(DESTDIR)$(LIBDIR)"
(string-append "DESTDIR="
(assoc-ref %outputs "out"))
"INCLUDEDIR=/include"
"LIBDIR=/lib"
"MANDIR=/share/man"
"SHAREDIR=/share/keyutils"
"NO_ARLIB=1") ; omit static libraries
#:test-target "test"))
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
;; "NO_ARLIB=1" would cleanly disable static libraries.
"RPATH=-Wl,-rpath,$(DESTDIR)$(LIBDIR)"
(string-append "DESTDIR=" #$output)
"INCLUDEDIR=/include"
"LIBDIR=/lib"
"MANDIR=/share/man"
"SHAREDIR=/share/keyutils")
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'install 'install:static
(lambda _
(with-directory-excursion #$output
(for-each (lambda (file)
(let ((target (string-append #$output:static
"/" file)))
(format #t "~a -> ~a\n" file target)
(mkdir-p (dirname target))
(rename-file file target)))
(find-files "lib" "\\.a$"))))))
#:test-target "test"))
(inputs
(list mit-krb5))
(home-page "https://people.redhat.com/dhowells/keyutils/")
@ -403,7 +414,7 @@ the wrong hands.")
"Keyutils is a set of utilities for managing the key retention facility in
the Linux kernel, which can be used by file systems, block devices, and more to
gain and retain the authorization and encryption keys required to perform
secure operations. ")
secure operations.")
(license (list license:lgpl2.1+ ; the files keyutils.*
license:gpl2+)))) ; the rest

View File

@ -35,7 +35,7 @@
(define-public cryptsetup
(package
(name "cryptsetup")
(version "2.3.6")
(version "2.3.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/cryptsetup/v"
@ -43,7 +43,7 @@
"/cryptsetup-" version ".tar.xz"))
(sha256
(base32
"0pv34l6230ba1i5p0z6zmvfqvv3as0cwn731h2qw4xm53sibg5mj"))))
"1a97rvi6arsj8dikh1qsvixx9rizm89k155q2ypifqlqllr530v1"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

View File

@ -309,15 +309,6 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
(("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@")
(("/bin/sh") (which "sh")))
#t))
;; Make the compressed manpages writable so that the
;; reset-gzip-timestamps phase does not error out.
(add-before 'reset-gzip-timestamps 'make-manpages-writable
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man")))
(for-each (lambda (file) (chmod file #o644))
(find-files man "\\.gz"))
#t)))
(add-before 'build 'patch-tests
(lambda _
(substitute* "tools/ippeveprinter.c"

View File

@ -40,11 +40,15 @@
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (gnu packages)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages golang)
#:use-module (gnu packages guile)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages logging)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@ -333,3 +337,27 @@ more!")
"Provided a set of HTTP request headers, h2c outputs how to invoke
curl to obtain exactly that HTTP request.")
(license license:expat)))
(define-public coeurl
(package
(name "coeurl")
(version "0.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://nheko.im/nheko-reborn/coeurl")
(commit (string-append "v" version))))
(sha256
(base32
"0sqciagagyc0qv90g0qw8fkyvy4l8h7nbaz04chiz9gnv89hg28p"))))
(build-system meson-build-system)
(native-inputs
(list doctest pkg-config))
(inputs
(list curl libevent spdlog))
(home-page "https://nheko.im/nheko-reborn/coeurl")
(synopsis "Simple async wrapper around CURL for C++")
(description "Coeurl is a simple library to do HTTP requests
asynchronously via cURL in C++.")
(license license:expat)))

View File

@ -2,6 +2,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 c4droid <c4droid@foxmail.com>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;;
;;; This file is part of GNU Guix.
;;;
@ -20,10 +21,14 @@
(define-module (gnu packages cybersecurity)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (gnu packages cpp)
#:use-module (gnu packages engineering)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-crypto)
@ -32,6 +37,68 @@
#:use-module (gnu packages bioinformatics) ;python-intervaltree
#:use-module (gnu packages emulators))
(define-public blacksmith
(package
(name "blacksmith")
(version "0.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/comsec-group/blacksmith")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
(modules '((guix build utils)))
(snippet `(begin
(delete-file-recursively "external")
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(external\\)") "")
(("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
(string-append
"find_package(asmjit)\n"
"find_package(nlohmann_json)")))))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test-suite
#:imported-modules
((guix build copy-build-system)
,@%cmake-build-system-modules)
#:modules
(((guix build copy-build-system) #:prefix copy:)
(guix build cmake-build-system)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-build
(lambda _
(substitute* "CMakeLists.txt"
;; Use default C++ standard instead.
(("cxx_std_17") "")
;; This project tries to link argagg library, which doesn't
;; exist, as argagg project is a single header file.
(("argagg") ""))))
(replace 'install
(lambda args
(apply (assoc-ref copy:%standard-phases 'install)
#:install-plan
'(("." "bin" #:include ("blacksmith"))
("." "lib" #:include-regexp ("\\.a$")))
args))))))
(native-inputs
(list pkg-config))
(inputs
(list argagg asmjit json-modern-cxx))
(home-page "https://comsec.ethz.ch/research/dram/blacksmith")
(synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
(description
"Blacksmith is an implementation of Rowhammer fuzzer that crafts novel
non-uniform Rowhammer access patterns based on the concepts of frequency,
phase, and amplitude. It is able to bypass recent @acronym{TRR, Target Row
Refresh}in-DRAM mitigations effectively and as such can trigger bit flips.")
(license license:expat)))
(define-public ropgadget
(package
(name "ropgadget")

View File

@ -17,7 +17,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017, 2020 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
@ -54,6 +54,7 @@
;;; Copyright © 2021 Alexandre Hannud Abdo <abdo@member.fsf.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -114,6 +115,7 @@
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages pantheon)
#:use-module (gnu packages parallel)
@ -485,6 +487,12 @@ database later.")
"-DBENCHMARK_ENABLE_INSTALL=OFF")
#:phases
#~(modify-phases %standard-phases
;; Ceph uses leveldb and depends on RTTI.
(add-after 'unpack 'allow-RTTI
(lambda _
(substitute* "CMakeLists.txt"
(("set\\(CMAKE_CXX_FLAGS \"\\$\\{CMAKE_CXX_FLAGS\\} -fno-rtti\"\\)")
""))))
(add-after 'unpack 'unpack-third_party-sources
;; These are only for testing, so copying source is fine.
(lambda _
@ -504,14 +512,14 @@ mapping from string keys to string values.")
(define-public memcached
(package
(name "memcached")
(version "1.6.12")
(version "1.6.13")
(source
(origin
(method url-fetch)
(uri (string-append
"https://memcached.org/files/memcached-" version ".tar.gz"))
(sha256
(base32 "0ii3z2mhjrimc6mv5z5x6bwp1s2bbzppja4m3pnmd5zgh9gs74gj"))))
(base32 "1m5mhw9ybb8qcyi6hb5kwpqanqmlnz27r54ccabc4y7nhpfvl6mx"))))
(build-system gnu-build-system)
(inputs
(list libevent cyrus-sasl))
@ -648,35 +656,93 @@ replacement for the code@{python-memcached} library.")
auto-completion and syntax highlighting.")
(license license:bsd-3)))
(define-public python-pgspecial
(package
(name "python-pgspecial")
(version "1.13.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pgspecial" version))
(sha256
(base32 "00ddkf565rjcxmfml1z4mmkns1aq8x5s5g85xmnz2scln42y4irq"))))
(build-system python-build-system)
(propagated-inputs
(list python-click python-sqlparse python-psycopg2))
(home-page "https://github.com/dbcli/pgspecial")
(synopsis
"Python implementation of PostgreSQL meta commands (backslash commands)")
(description
"This Python package provides an API to execute meta-commands (AKA
\"special\", or \"backslash commands\") on PostgreSQL.")
(license license:bsd-3)))
(define-public pgcli
(package
(name "pgcli")
(version "3.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pgcli" version))
(sha256
(base32 "1dy6yzak696107pqv83296h0xhc3ahlfaydm80593gwn37krgpkc"))))
(build-system python-build-system)
(propagated-inputs
(list python-cli-helpers
python-click
python-configobj
python-pendulum
python-pgspecial
python-prompt-toolkit
python-psycopg2
python-pygments
python-setproctitle
python-sqlparse))
(native-inputs
(list python-ipython-sql))
(home-page "https://www.pgcli.com")
(synopsis "PostgreSQL CLI with autocompletion and syntax highlighting")
(description
"@code{pgcli} is a command line interface for PostgreSQL with
autocompletion and syntax highlighting.")
(license license:bsd-3)))
(define-public mycli
(package
(name "mycli")
(version "1.24.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "mycli" version))
(sha256
(base32 "0rij9nw20zhqr7cqnkm8daw8b1wdc9zb6ny1ji9qz5557nz9i3bl"))))
(origin
(method url-fetch)
(uri (pypi-uri "mycli" version))
(sha256
(base32 "0rij9nw20zhqr7cqnkm8daw8b1wdc9zb6ny1ji9qz5557nz9i3bl"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; tests expect a running MySQL
'(#:tests? #f ; tests expect a running MySQL
#:phases (modify-phases %standard-phases
(add-after 'unpack 'loosen-requirements
(lambda _
;; Permit newer versions of sqlparse.
(substitute* "setup.py"
(("<0\\.4\\.0") "<0.5.0")))))))
(propagated-inputs
(list python-cli-helpers
python-click
python-configobj
python-cryptography
python-prompt-toolkit
python-pyaes
python-pygments
python-pymysql
python-pyperclip
python-sqlparse))
(list python-cli-helpers
python-click
python-configobj
python-cryptography
python-prompt-toolkit
python-pyaes
python-pygments
python-pymysql
python-pyperclip
python-sqlparse))
(home-page "https://www.mycli.net")
(synopsis
"Terminal Client for MySQL with AutoCompletion and Syntax Highlighting")
"Terminal Client for MySQL with AutoCompletion and Syntax Highlighting")
(description
"MyCLI is a command line interface for MySQL, MariaDB, and Percona with
"MyCLI is a command line interface for MySQL, MariaDB, and Percona with
auto-completion and syntax highlighting.")
(license license:bsd-3)))
@ -1089,17 +1155,17 @@ and high-availability (HA).")
(license license:gpl2))) ;'COPYING' says "version 2" only
;; Don't forget to update the other postgresql packages when upgrading this one.
(define-public postgresql-13
(define-public postgresql-14
(package
(name "postgresql")
(version "13.4")
(version "14.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za"))
"07x45iycqpps0qh3ingc09jgn9rpnmc3gixx0qprhf5flwg10g2d"))
(patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
(build-system gnu-build-system)
(arguments
@ -1146,6 +1212,18 @@ TIMESTAMP. It also supports storage of binary large objects, including
pictures, sounds, or video.")
(license (license:x11-style "file://COPYRIGHT"))))
(define-public postgresql-13
(package
(inherit postgresql-14)
(version "13.4")
(source (origin
(inherit (package-source postgresql-14))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za"))))))
(define-public postgresql-11
(package
(inherit postgresql-13)
@ -1188,7 +1266,7 @@ pictures, sounds, or video.")
(define-public pgloader
(package
(name "pgloader")
(version "3.6.2")
(version "3.6.3")
(source
(origin
(method git-fetch)
@ -1196,7 +1274,7 @@ pictures, sounds, or video.")
(url "https://github.com/dimitri/pgloader")
(commit (string-append "v" version))))
(sha256
(base32 "06i1jd2za3ih5caj2b4vzlzags5j65vv8dfdbz0ggdrp40wfd5lh"))
(base32 "147dcf0rmi94p95dvifx8qy7602fvs041dv9wlg3q31ly13agwb5"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@ -1204,62 +1282,59 @@ pictures, sounds, or video.")
;; dependent on Quicklisp, main build target is `pgloader-standalone' which
;; does not require Quicklisp workarounds. There is no `install' target
;; configured in Makefile.
`(#:tests? #f
#:strip-binaries? #f
#:make-flags
(list "pgloader-standalone" "BUILDAPP_SBCL=buildapp")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'set-home
(lambda _
(setenv "HOME" "/tmp")
#t))
(add-after 'unpack 'patch-Makefile
(lambda _
(substitute* "Makefile"
(("--sbcl.*") "--sbcl $(CL) --asdf-path . \\\n"))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(mkdir-p bin)
(install-file "build/bin/pgloader" bin))
#t)))))
(list #:tests? #f
#:strip-binaries? #f
#:make-flags
#~(list "pgloader-standalone" "BUILDAPP_SBCL=buildapp")
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'set-home
(lambda _
(setenv "HOME" "/tmp")))
(add-after 'unpack 'patch-Makefile
(lambda _
(substitute* "Makefile"
(("--sbcl.*") "--sbcl $(CL) --asdf-path . \\\n"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append #$output "/bin")))
(mkdir-p bin)
(install-file "build/bin/pgloader" bin)))))))
(native-inputs
(list buildapp sbcl))
(inputs
`(("alexandria" ,sbcl-alexandria)
("cl-abnf" ,sbcl-cl-abnf)
("cl-base64" ,sbcl-cl-base64)
("cl-csv" ,sbcl-cl-csv)
("cl-fad" ,sbcl-cl-fad)
("cl-log" ,sbcl-cl-log)
("cl-markdown" ,sbcl-cl-markdown)
("cl-mustache" ,sbcl-cl-mustache)
("cl-ppcre" ,sbcl-cl-ppcre)
("cl-sqlite" ,sbcl-cl-sqlite)
("closer-mop" ,sbcl-closer-mop)
("command-line-arguments" ,sbcl-command-line-arguments)
("db3" ,sbcl-db3)
("drakma" ,sbcl-drakma)
("esrap" ,sbcl-esrap)
("flexi-streams" ,sbcl-flexi-streams)
("ixf" ,sbcl-ixf)
("local-time" ,sbcl-local-time)
("lparallel" ,sbcl-lparallel)
("metabang-bind" ,sbcl-metabang-bind)
("mssql" ,sbcl-mssql)
("postmodern" ,sbcl-postmodern)
("py-configparser" ,sbcl-py-configparser)
("qmynd" ,sbcl-qmynd)
("quri" ,sbcl-quri)
("split-sequence" ,sbcl-split-sequence)
("trivial-backtrace" ,sbcl-trivial-backtrace)
("usocket" ,sbcl-usocket)
("uuid" ,sbcl-uuid)
("yason" ,sbcl-yason)
("zs3" ,sbcl-zs3)))
(list sbcl-alexandria
sbcl-cl-abnf
sbcl-cl-base64
sbcl-cl-csv
sbcl-cl-fad
sbcl-cl-log
sbcl-cl-markdown
sbcl-cl-mustache
sbcl-cl-ppcre
sbcl-cl-sqlite
sbcl-closer-mop
sbcl-command-line-arguments
sbcl-db3
sbcl-drakma
sbcl-esrap
sbcl-flexi-streams
sbcl-ixf
sbcl-local-time
sbcl-lparallel
sbcl-metabang-bind
sbcl-mssql
sbcl-postmodern
sbcl-py-configparser
sbcl-qmynd
sbcl-quri
sbcl-split-sequence
sbcl-trivial-backtrace
sbcl-usocket
sbcl-uuid
sbcl-yason
sbcl-zs3))
(home-page "https://pgloader.io/")
(synopsis "Tool to migrate data to PostgreSQL")
(description
@ -1395,7 +1470,7 @@ including field and record folding.")
(define-public rocksdb
(package
(name "rocksdb")
(version "6.25.3")
(version "6.26.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1404,7 +1479,7 @@ including field and record folding.")
(file-name (git-file-name name version))
(sha256
(base32
"14150kd7hk8jjwpm28bf3a0agrhyapbq9lgnl00l385vfb73wnzl"))
"0mylma106w93kxhj89g9y1ccdq7m9m94wrmv5nyr17yc1zsk87sg"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1412,70 +1487,33 @@ including field and record folding.")
(delete-file "build_tools/gnu_parallel")
(substitute* "Makefile"
(("build_tools/gnu_parallel") "parallel"))))))
(build-system gnu-build-system)
(build-system cmake-build-system)
(arguments
`(#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" (assoc-ref %outputs "out"))
;; Ceph requires that RTTI is enabled.
"USE_RTTI=1"
;; Don't pass '-march=native' to the compiler.
"PORTABLE=1"
;; Use a deterministic date stamp.
"build_date=1970-01-01"
`(#:configure-flags
(list "-DROCKSDB_BUILD_SHARED=1"
;; Ceph requires that RTTI is enabled.
"-DUSE_RTTI=1"
;; Prevent the build from passing '-march=native' to the compiler.
"-DPORTABLE=1")
;; Running the full test suite takes hours and require
;; a lot of disk space. Instead we only run a subset
;; that exercises platform-specific functionality.
"ROCKSDBTESTS_PLATFORM_DEPENDENT=only")
#:test-target "check_some"
;; Many tests fail on 32-bit platforms. There are multiple reports about
;; this upstream, but it's not going to be supported any time soon.
#:tests? ,(if (%current-target-system)
#f
(let ((system (%current-system)))
(or (string-prefix? "x86_64-linux" system)
(string-prefix? "aarch64-linux" system))))
;; Many tests fail on 32-bit platforms. There are multiple
;; reports about this upstream, but it's not going to be
;; supported any time soon. What's worse: Release builds don't
;; include tests, and overriding the build system to build
;; tests anyway fails with missing TEST_ symbols.
#:tests? #false
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-Makefile
(add-after 'unpack 'patch-CMakeLists.txt
(lambda _
(substitute* "Makefile"
;; Don't depend on the static library when installing.
(("install: install-static")
"install:")
(("#!/bin/sh") (string-append "#!" (which "sh"))))))
(delete 'configure)
;; The default target is only needed for tests and built on demand.
(delete 'build)
(add-before 'check 'mount-tmp
;; Use the provided workspace directory for test files.
;; Otherwise, /tmp is used which is a mount namespace on /gnu/store.
;; This speeds up the build when the host /tmp is a proper tmpfs or
;; other fast filesystem, as opposed to /gnu which may be a HDD.
(substitute* "CMakeLists.txt"
;; build reproducibly
(("set\\(BUILD_DATE \"\\$\\{TS\\}\"")
"set(BUILD_DATE \"1970-01-01\""))))
(add-after 'unpack 'build-generically
(lambda _
(let ((test-dir (string-append (getcwd) "/../test")))
(mkdir test-dir)
(setenv "TEST_TMPDIR" (canonicalize-path test-dir)))))
(add-before 'check 'disable-failing-tests
(lambda _
(substitute* "Makefile"
;; These tests reliably fail due to "Too many open files".
(("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\")
(("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\"))))
(add-after 'check 'clean
(lambda _
;; Otherwise stale objects from the tests would interfere.
(invoke "make" "clean")))
(add-after 'clean 'build
;; The default build target is a debug build for tests. The
;; install target depends on the "shared_lib" release target
;; so we build it here for clarity.
(lambda* (#:key (make-flags '()) parallel-build? #:allow-other-keys)
(apply invoke "make" "shared_lib"
`(,@(if parallel-build?
`("-j" ,(number->string (parallel-job-count)))
'())
,@make-flags)))))))
(substitute* "CMakeLists.txt"
(("if\\(HAVE_SSE42\\)") "if(FALSE)")))))))
(native-inputs
(list parallel perl procps python which))
(inputs
@ -3056,13 +3094,13 @@ Database API 2.0T.")
(define-public python-sqlalchemy
(package
(name "python-sqlalchemy")
(version "1.4.27")
(version "1.4.31")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy" version))
(sha256
(base32 "031jbd0svrvwr3n52iibp9mkwsj9wicnck45yd26da5kmsfkas6p"))))
(base32 "06448s883bb8fgca33bn0pfaj15la0g4cax2mmx482kqwp8mjasq"))))
(build-system python-build-system)
(native-inputs
(list python-cython ; for C extensions
@ -3086,18 +3124,6 @@ designed for efficient and high-performing database access, adapted into a
simple and Pythonic domain language.")
(license license:x11)))
(define-public python-sqlalchemy-1.3
(package
(inherit python-sqlalchemy)
(version "1.3.20")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy" version))
(sha256
(base32 "18b9am7bsqc4nj3d2h5r93i002apczxfvpfpcqbd6f0385zmrwnj"))))
(propagated-inputs '())))
(define-public python2-sqlalchemy
(package-with-python2 python-sqlalchemy))
@ -3125,14 +3151,14 @@ framework.")
(define-public python-sqlalchemy-utils
(package
(name "python-sqlalchemy-utils")
(version "0.32.21")
(version "0.38.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy-Utils" version))
(sha256
(base32
"1myn71dn8j74xglyh46f12sh8ywb7j0j732rzwq70kvwwnq32m73"))))
"1d6fq81489kqzxmk3l6f39sinw206lzs392frmpr5lsjzg9xc0cy"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; FIXME: Many tests require a running database server.
@ -3393,27 +3419,128 @@ designed to be easy and intuitive to use.")
(define-public python-psycopg2
(package
(name "python-psycopg2")
(version "2.9.2")
(version "2.9.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "psycopg2" version))
(sha256
(base32 "1smvvs1ngqy0ymlp1d7f85j09j9v0z5dq14f1qky0j0qi7xajkd8"))))
(base32 "1099as8ind9kpz30rmqzc3nir668fmpkxwayrj2sjka3ycdiv14f"))))
(build-system python-build-system)
(arguments
;; Tests would require a postgresql database "psycopg2_test"
;; and a running postgresql database management service.
`(#:tests? #f)) ; TODO re-enable after providing a test-db.
'(#:tests? #f)) ; TODO re-enable after providing a test-db.
(inputs
(list postgresql)) ; libpq
(home-page "http://initd.org/psycopg/")
(home-page "https://www.psycopg.org/")
(synopsis "Python PostgreSQL adapter")
(description
"psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API
2.0.")
(license license:lgpl3+)))
(define-public python-psycopg-pool
(package
(name "python-psycopg-pool")
;; The connection pooling code is on a different release cadence
;; from the driver code, so fetch the latest PyPI release.
(version "3.0.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "psycopg-pool" version))
(sha256
(base32
"1nx139pwzsgrz253zjxw2sf8h713s79h4cp1falmpc39j08djb46"))))
(build-system python-build-system)
(arguments
(list #:tests? #f ;run for psycopg below
#:phases
#~(modify-phases %standard-phases
;; This module requires 'psycopg', however psycopg needs this
;; for its tests. Disable sanity check to break the cycle.
(delete 'sanity-check))))
(home-page "https://www.psycopg.org/")
(synopsis "Connection pooler for psycopg")
(description
"This module provides connection pool implementations that can be used
with the @code{psycopg} PostgreSQL driver.")
(license license:lgpl3+)))
(define-public python-psycopg
(package
(name "python-psycopg")
(version "3.0.8")
(source (origin
;; Fetch from git because PyPI contains only cythonized sources.
(method git-fetch)
(uri (git-reference
(url "https://github.com/psycopg/psycopg")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"16i19jqd9lg9r7bc63ssh527cccrpf49g1nlayikk5qlswpzp75y"))))
(build-system python-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-before 'build 'change-directory
(lambda _
(chdir "psycopg")))
(add-after 'build 'build-c-extensions
(lambda _
(with-directory-excursion "../psycopg_c"
((assoc-ref %standard-phases 'build)))))
(add-after 'install 'install-c-extensions
(lambda* (#:key inputs outputs #:allow-other-keys)
;; For some reason setup.py refuses to install if the
;; installation directory is not on PYTHONPATH.
(setenv "PYTHONPATH" (site-packages inputs outputs))
(with-directory-excursion "../psycopg_c"
((assoc-ref %standard-phases 'install)
#:inputs inputs
#:outputs outputs))))
(add-before 'check 'start-postgresql
(lambda _
(let ((dbdir (string-append (getcwd) "/../pgdir")))
(invoke "initdb" "-D" dbdir)
(invoke "pg_ctl" "-D" dbdir
"-o" (string-append "-k " dbdir)
"-l" (string-append dbdir "/db.log")
"start")
(invoke "psql" "-h" dbdir "-d" "postgres"
"-c" "CREATE DATABASE nixbld;"))))
(replace 'check
(lambda* (#:key inputs tests? #:allow-other-keys)
(when tests?
(setenv "TZDIR" (search-input-directory inputs
"share/zoneinfo"))
(with-directory-excursion ".."
(invoke "pytest" "-vv"
"-o" "asyncio_mode=auto"
;; FIXME: Many of the typing tests are failing,
;; conveniently tagged as slow...
"-k" "not slow"))))))))
(native-inputs
(list python-cython-3
python-mypy
python-psycopg-pool
python-pytest
python-pytest-asyncio
python-tenacity
pproxy
tzdata-for-tests))
(inputs
(list postgresql))
(home-page "https://www.psycopg.org/")
(synopsis "PostgreSQL driver for Python")
(description
"Psycopg 3 is a new implementation of the popular @code{psycopg2}
database adapter for Python.")
(license license:lgpl3+)))
(define-public python-sadisplay
(package
(name "python-sadisplay")
@ -3685,13 +3812,13 @@ is designed to have a low barrier to entry.")
(define-public python-sqlparse
(package
(name "python-sqlparse")
(version "0.4.1")
(version "0.4.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "sqlparse" version))
(sha256
(base32
"1s2l0jgi1v7rk7smzb99iamasaz22apfkczsphn3ci4wh8pgv48g"))))
"1bkx52c2jh28c528b69qfk2ijfzw1laxx6lim7jr8fi6fh67600c"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -3719,7 +3846,8 @@ is designed to have a low barrier to entry.")
(synopsis "Non-validating SQL parser")
(description "Sqlparse is a non-validating SQL parser for Python. It
provides support for parsing, splitting and formatting SQL statements.")
(license license:bsd-3)))
(license license:bsd-3)
(properties '((cpe-name . "sqlparse")))))
(define-public python-sql
(package

View File

@ -21,10 +21,16 @@
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages gawk)
#:use-module (gnu packages perl)
#:use-module (gnu packages base))
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz))
(define-public datamash
(package
@ -48,3 +54,99 @@
"Perform basic numeric, textual and statistical operations on plain text
files. Designed to work within standard pipelines without additional code.")
(license gpl3+)))
(define-public vnlog
(package
(name "vnlog")
(version "1.32")
(home-page "https://github.com/dkogan/vnlog")
(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
"1g4insm6gkw3c82fq8q9swkdha3cncbz1nib15yg9b2s4yl123hm"))))
(build-system gnu-build-system)
(native-inputs
(list python-numpy)) ;for tests
(inputs
(list mawk
perl
perl-ipc-run
perl-list-moreutils
perl-string-shellquote
perl-text-diff
perl-text-table
python-wrapper))
(arguments
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "DESTDIR=" #$output)
"USRLIB=lib"
"MANDIR=share/man"
(string-append "PY3_MODULE_PATH=lib/python"
#$(version-major+minor
(package-version
(this-package-input "python-wrapper")))
"/site-packages")
;; Do not install the Python 2 modules.
"DIST_PY2_MODULES=")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'adjust-Makefile
(lambda _
(substitute* "GNUmakefile"
;; Install Perl modules to the usual location.
(("/usr/share/perl5")
(string-append "/lib/perl5/site_perl/"
#$(package-version
(this-package-input "perl"))))
;; Do not add a '/usr' suffix to DESTDIR.
(("\\$\\(DESTDIR\\)/usr")
"$(DESTDIR)")
;; Do not strip RUNPATH from the installed C library.
((".*find.*chrpath.*")
""))))
(add-after 'unpack 'use-absolute-mawk
(lambda* (#:key inputs #:allow-other-keys)
(let ((mawk (search-input-file inputs "bin/mawk")))
(substitute* '("vnl-filter" "lib/Vnlog/Util.pm")
(("'mawk'")
(string-append "'" mawk "'"))))))
(delete 'configure)
(add-before 'check 'disable-python2-test
(lambda _
(delete-file "test/test_python2_parser.sh")
(substitute* "GNUmakefile"
((".*test/test_python2_parser\\.sh\\.RUN.*")
""))))
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(PERL5LIB (string-append
out "/lib/perl5/site_perl/"
#$(package-version
(this-package-input "perl"))
":" (getenv "PERL5LIB"))))
(for-each (lambda (script)
(wrap-program script
`("PERL5LIB" ":" prefix (,PERL5LIB))))
(find-files (string-append out "/bin"))))))
(add-after 'wrap 'check-wrapped-executables
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Assert that the installed Perl scripts can find
;; their dependencies even when PERL5LIB is unset.
(unsetenv "PERL5LIB")
(for-each (lambda (script)
(invoke/quiet script "--help"))
(find-files (string-append out "/bin")
"^vnl-[[:lower:]]+$"))))))))
(synopsis "Process labelled tabular ASCII data on the command line")
(description
"Vnlog (pronounced @dfn{vanillog}) is a toolkit for manipulating
tabular ASCII data with labelled fields using regular command-line tools.")
(license lgpl2.1+)))

View File

@ -137,14 +137,14 @@ in between these sequences may be different in both content and length.")
(define-public liburcu
(package
(name "liburcu")
(version "0.13.0")
(version "0.13.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.lttng.org/files/urcu/"
"userspace-rcu-" version ".tar.bz2"))
(sha256
(base32
"085s437nig6bdiv9im4k4qwqbrbnc4qw9flqi16jlb493az0vcnb"))))
"10rh6v9j13622cjlzx31cfpghjy0kqkvn6pb42whwwcg5cyz64rj"))))
(build-system gnu-build-system)
(native-inputs
(list perl)) ; for tests

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
@ -83,7 +83,7 @@ contains the archive keys used for that.")
(define-public debian-ports-archive-keyring
(package
(name "debian-ports-archive-keyring")
(version "2020.02.02")
(version "2021.12.30")
(source
(origin
(method url-fetch)
@ -92,7 +92,7 @@ contains the archive keys used for that.")
"/debian-ports-archive-keyring_" version ".tar.xz"))
(sha256
(base32
"0746zfc3n4f77wlrd9a9a6r4mahz2cx5wdd9izg65vmn5qwamgza"))))
"14f9hklr8gdlp782j5ijmm0nh061zcfw9vwpr8smb7rdfzk4wk70"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; No test suite.

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014, 2015, 2016, 2017, 2019-2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@ -179,7 +179,7 @@ tools that process C/C++ code.")
(define-public c-vise
(package
(name "c-vise")
(version "2.3.0")
(version "2.4.0")
(source
(origin
(method git-fetch)
@ -187,19 +187,14 @@ tools that process C/C++ code.")
(url "https://github.com/marxin/cvise")
(commit (string-append "v" version))))
(sha256
(base32 "0f6m58rak87gvcvxxcgp1bzbsv1q618h0iipmv0dx9jv1bn0qv43"))
(base32 "1i2z5q2pcwh1gpdqc24x1a2q5vzwhblzzq021nzwf304di7m18vl"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(native-inputs
(list flex python-pytest python-pytest-flake8))
(inputs
`(("bash" ,bash-minimal) ; For wrap-program
("clang" ,clang)
("llvm" ,llvm)
("python" ,python)
("python-pebble" ,python-pebble)
("python-psutil" ,python-psutil)
("unifdef" ,unifdef)))
(list bash-minimal clang llvm unifdef
python python-pebble python-psutil python-chardet))
(arguments
`(#:phases
(modify-phases %standard-phases

View File

@ -74,7 +74,7 @@
(define-public diffoscope
(package
(name "diffoscope")
(version "197")
(version "199")
(source
(origin
(method git-fetch)
@ -83,7 +83,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0wpwzjqv7pbah55hmajyca7mmz7xv98mg0yqknjzmrjvfnm6azgw"))
(base32 "0wy1nd52a4rzqhhdcdi3pfgrixz3w3q7qfc9mpc9zraq5cj94l7n"))
(patches
(search-patches "diffoscope-fix-llvm-test.patch"))))
(build-system python-build-system)
@ -157,7 +157,6 @@
binwalk
python-pytest
python-chardet
python-black
python-h5py
python-pypdf2
python-progressbar33

View File

@ -19,6 +19,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages digest)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
@ -66,7 +67,8 @@ Zig, V, and Nim programming language standard libraries.")
(define-public xxhash
(package
(name "xxhash")
(version "0.8.0")
;; XXX Remove the 'fix-man-page-links phase when updating.
(version "0.8.1")
(source
(origin
(method git-fetch)
@ -75,21 +77,27 @@ Zig, V, and Nim programming language standard libraries.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0hpbzdd6kfki5f61g103vp7pfczqkdj0js63avl0ss552jfb8h96"))))
(base32 "1h6080lvcr5mpbvy4fhb4i7wvhpy72nrixk3djmpai4hxq41hsnr"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list ,(string-append "CC=" (cc-for-target))
,(match (or (%current-target-system)
(%current-system))
;; Detect vector instruction set at run time.
((or "i686-linux" "x86_64-linux") "DISPATCH=1")
(_ "DISPATCH=0"))
"XXH_FORCE_MEMORY_ACCESS=1" ; improved performance with GCC
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure)))) ; no configure script
(list #:make-flags
#~(list #$(string-append "CC=" (cc-for-target))
#$(match (or (%current-target-system)
(%current-system))
;; Detect vector instruction set at run time.
((or "i686-linux" "x86_64-linux") "DISPATCH=1")
(_ "DISPATCH=0"))
"XXH_FORCE_MEMORY_ACCESS=1" ; improved performance with GCC
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-man-page-links
;; https://github.com/Cyan4973/xxHash/issues/647
(lambda _
(substitute* "Makefile"
(("ln -sf \\$\\(MAN\\)")
"ln -sf xxhsum.1"))))
(delete 'configure)))) ; no configure script
(home-page "https://cyan4973.github.io/xxHash/")
(synopsis "Extremely fast hash algorithm")
(description

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