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.scmmaster
commit
0d41fe4855
|
@ -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).
|
||||
|
|
1
.mailmap
1
.mailmap
|
@ -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>
|
||||
|
|
28
Makefile.am
28
Makefile.am
|
@ -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"; \
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
590
doc/build.scm
590
doc/build.scm
|
@ -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))
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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
|
||||
|
|
1141
doc/guix.texi
1141
doc/guix.texi
File diff suppressed because it is too large
Load Diff
|
@ -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 \
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
130
etc/news.scm
130
etc/news.scm
|
@ -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 © 2019–2021 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 © 2019–2022 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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
500
gnu/build/vm.scm
500
gnu/build/vm.scm
|
@ -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
|
43
gnu/ci.scm
43
gnu/ci.scm
|
@ -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.
|
||||
|
|
10
gnu/home.scm
10
gnu/home.scm
|
@ -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)))))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 _)
|
||||
|
|
|
@ -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)))
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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)))
|
||||
|
||||
|
||||
;;
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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))))
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
85
gnu/local.mk
85
gnu/local.mk
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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+)))
|
||||
|
||||
|
||||
|
|
|
@ -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 © 2016–2022 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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/")))
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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 © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016–2022 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+)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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()
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")))
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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/"
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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+)))
|
||||
|
|
|
@ -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)))
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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+)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
Reference in New Issue