Merge branch 'master' into staging
This commit is contained in:
commit
9edb3f66fd
157
.guix-authorizations
Normal file
157
.guix-authorizations
Normal file
@ -0,0 +1,157 @@
|
||||
;; This is the list of OpenPGP keys currently authorized to sign commits in
|
||||
;; this repository.
|
||||
|
||||
(authorizations
|
||||
(version 0)
|
||||
|
||||
(("AD17 A21E F8AE D8F1 CC02 DBD9 F7D5 C9BF 765C 61E3"
|
||||
(name "andreas"))
|
||||
("2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"
|
||||
(name "ajgrf"))
|
||||
("306F CB8F 2C01 C25D 29D3 0556 61EF 502E F602 52F2"
|
||||
(name "alexvong1995"))
|
||||
("4FB9 9F49 2B12 A365 7997 E664 8246 0C08 2A0E E98F"
|
||||
(name "alezost"))
|
||||
("50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F"
|
||||
(name "ambrevar"))
|
||||
("27D5 86A4 F890 0854 329F F09F 1260 E464 82E6 3562"
|
||||
(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"
|
||||
"A0C5 E352 2EF8 EF5C 64CD B7F0 FD73 CAC7 19D3 2566"
|
||||
(name "bavier"))
|
||||
("3774 8024 880F D3FF DCA2 C9AB 5893 6E0E 2F1B 5A4C"
|
||||
(name "beffa"))
|
||||
("BCF8 F737 2CED 080A 67EB 592D 2A6A D9F4 AAC2 0DF6"
|
||||
(name "benwoodcroft"))
|
||||
("45CC 63B8 5258 C9D5 5F34 B239 D37D 0EA7 CECC 3912"
|
||||
(name "biscuolo"))
|
||||
("7988 3B9F 7D6A 4DBF 3719 0367 2506 A96C CF63 0B21"
|
||||
(name "boskovits"))
|
||||
("DFC0 C7F7 9EE6 0CA7 AE55 5E19 6722 43C4 A03F 0EEE"
|
||||
(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"))
|
||||
(;; primary: "0401 7A2A 6D9A 0CCD C81D 8EC2 96AB 007F 1A7E D999"
|
||||
"09CD D25B 5244 A376 78F6 EEA8 0CC5 2153 1979 91A5"
|
||||
(name "carl"))
|
||||
("3E89 EEE7 458E 720D 9754 E0B2 5E28 A33B 0B84 F577"
|
||||
(name "cbaines"))
|
||||
("3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5"
|
||||
(name "civodul"))
|
||||
("510A 8628 E2A7 7678 8F8C 709C 4BC0 2592 5FF8 F4D3"
|
||||
(name "cwebber"))
|
||||
(;; primary: "295A F991 6F46 F8A1 34B0 29DA 8086 3842 F0FE D83B"
|
||||
"76CE C6B1 7274 B465 C02D B3D9 E71A 3554 2C30 BAA5"
|
||||
(name "dannym"))
|
||||
("B3C0 DB4D AD73 BA5D 285E 19AE 5143 0234 CEFD 87C3"
|
||||
(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"))
|
||||
("6909 6DFD D702 8BED ACC5 884B C5E0 51C7 9C0B ECDB"
|
||||
(name "dvc"))
|
||||
("5F43 B681 0437 2F4B A898 A64B 33B9 E9FD E28D 2C23"
|
||||
(name "dvc (old)"))
|
||||
("A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351"
|
||||
(name "efraim"))
|
||||
("9157 41FE B22F A4E3 3B6E 8F8D F4C1 D391 7EAC EE93"
|
||||
(name "efraim (old)"))
|
||||
(;; primary: "2453 02B1 BAB1 F867 FDCA 96BC 8F3F 861F 82EB 7A9A"
|
||||
"CBC5 9C66 EC27 B971 7940 6B3E 6BE8 208A DF21 FE3F"
|
||||
(name "glv"))
|
||||
("2219 43F4 9E9F 276F 9499 3382 BF28 6CB6 593E 5FFD"
|
||||
(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"))
|
||||
|
||||
;; https://lists.gnu.org/archive/html/guix-devel/2018-04/msg00229.html
|
||||
("DB34 CB51 D25C 9408 156F CDD6 A12F 8797 8D70 1B99"
|
||||
(name "janneke (old)"))
|
||||
("1A85 8392 E331 EAFD B8C2 7FFB F3C1 A0D9 C1D6 5273"
|
||||
(name "janneke"))
|
||||
|
||||
(;; primary: "1BA4 08C5 8BF2 0EA7 3179 635A 865D C0A3 DED9 B5D0"
|
||||
"E31D 9DDE EBA5 4A14 8A20 4550 DA45 97F9 47B4 1025"
|
||||
(name "jlicht"))
|
||||
("83B6 703A DCCA 3B69 4BCE 2DA6 E6A5 EE3C 1946 7A0D"
|
||||
(name "kkebreau"))
|
||||
("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"))
|
||||
("2AE3 1395 932B E642 FC0E D99C 9BED 6EDA 32E5 B0BC"
|
||||
(name "lsl88"))
|
||||
("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"))
|
||||
("4008 6A7E 0252 9B60 31FB 8607 8354 7635 3176 9CA6"
|
||||
(name "mothacehe"))
|
||||
(;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
|
||||
"F5DA 2032 4B87 3D0B 7A38 7672 0DB0 FF88 4F55 6D79"
|
||||
(name "nckx"))
|
||||
("E576 BFB2 CF6E B13D F571 33B9 E315 A758 4613 1564"
|
||||
(name "niedzejkob"))
|
||||
("ED0E F1C8 E126 BA83 1B48 5FE9 DA00 B4F0 48E9 2F2D"
|
||||
(name "ngz"))
|
||||
("CEF4 CB91 4856 BA38 0A20 A7E2 3008 88CB 39C6 3817"
|
||||
(name "pelzflorian"))
|
||||
(;; 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"))
|
||||
("74D6 A930 F44B 9B84 9EA5 5606 C166 AA49 5F7F 189C"
|
||||
(name "reepca"))
|
||||
("BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC"
|
||||
(name "rekado"))
|
||||
("0154 E1B9 1CC9 D9EF 7764 8DE7 F3A7 27DB 44FC CA36"
|
||||
(name "rhelling"))
|
||||
(;; From commit cc51c03ff867d4633505354819c6d88af88bf919 (March 2020).
|
||||
;; See <https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00070.html>.
|
||||
"F556 FD94 FB8F 8B87 79E3 6832 CBD0 CD51 38C1 9AFC"
|
||||
(name "roelj"))
|
||||
(;; From commit 2cbede5935eb6a40173bbdf30a9ad22bf7574c22 (Jan. 2020). See
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2020-01/msg00499.html>.
|
||||
"1EFB 0909 1F17 D28C CBF9 B13A 53D4 57B2 D636 EE82"
|
||||
(name "roptat"))
|
||||
(;; primary: "D6B0 C593 DA8C 5EDC A44C 7A58 C336 91F7 1188 B004"
|
||||
"A02C 2D82 0EF4 B25B A6B5 1D90 2AC6 A5EC 1C35 7C59"
|
||||
(name "samplet"))
|
||||
("77DD AD2D 97F5 31BB C0F3 C7FD DFB5 EB09 AA62 5423"
|
||||
(name "sleep_walker"))
|
||||
("F494 72F4 7A59 00D5 C235 F212 89F9 6D48 08F3 59C7"
|
||||
(name "snape"))
|
||||
("9ADE 9ECF 2B19 C180 9C99 5CEA A1F4 CFCC 5283 6BAC"
|
||||
(name "taylanub"))
|
||||
|
||||
;; https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00826.html
|
||||
(;; primary: "1DD1 681F E285 E07F 11DC 0C59 2E15 A6BC D77D 54FD"
|
||||
"3D2C DA58 819C 08C2 A649 D43D 5C3B 064C 724A 5726"
|
||||
(name "thomasd"))
|
||||
|
||||
("6580 7361 3BFC C5C7 E2E4 5D45 DC51 8FC8 7F97 16AA"
|
||||
(name "vagrantc"))
|
||||
(;; primary: "C955 CC5D C048 7FB1 7966 40A9 199A F6A3 67E9 4ABB"
|
||||
"7238 7123 8EAC EB63 4548 5857 167F 8EA5 001A FA9C"
|
||||
(name "wigust"))
|
||||
("FF47 8FB2 64DE 32EC 2967 25A3 DDC0 F535 8812 F8F2"
|
||||
(name "wingo"))))
|
29
.mailmap
29
.mailmap
@ -48,20 +48,21 @@ Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
|
||||
Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
Mathieu Othacehe <mathieu.othacehe@parrot.com>
|
||||
Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com>
|
||||
ng0 <ng0@n0.is> Nils Gillmann <ng0@n0.is>
|
||||
ng0 <ng0@n0.is> Nils Gillmann <gillmann@infotropique.org>
|
||||
ng0 <ng0@n0.is> ng0 <ng0@crash.cx>
|
||||
ng0 <ng0@n0.is> ng0 <ng0@crash.cx>
|
||||
ng0 <ng0@n0.is> <ng0@infotropique.org>
|
||||
ng0 <ng0@n0.is> <ng0@no-reply.infotropique.org>
|
||||
ng0 <ng0@n0.is> <ng0@no-reply.pragmatique.xyz>
|
||||
ng0 <ng0@n0.is> <ng0@pragmatique.xyz>
|
||||
ng0 <ng0@n0.is> <contact.ng0@cryptolab.net>
|
||||
ng0 <ng0@n0.is> <ng0@we.make.ritual.n0.is>
|
||||
ng0 <ng0@n0.is> <ngillmann@runbox.com>
|
||||
ng0 <ng0@n0.is> <niasterisk@grrlz.net>
|
||||
ng0 <ng0@n0.is> <ng@niasterisk.space>
|
||||
ng0 <ng0@n0.is> <ng0@libertad.pw>
|
||||
nikita <nikita@n0.is>
|
||||
nikita <nikita@n0.is> ng0 <ng0@n0.is>
|
||||
nikita <nikita@n0.is> Nils Gillmann <ng0@n0.is>
|
||||
nikita <nikita@n0.is> Nils Gillmann <gillmann@infotropique.org>
|
||||
nikita <nikita@n0.is> ng0 <ng0@crash.cx>
|
||||
nikita <nikita@n0.is> <ng0@infotropique.org>
|
||||
nikita <nikita@n0.is> <ng0@no-reply.infotropique.org>
|
||||
nikita <nikita@n0.is> <ng0@no-reply.pragmatique.xyz>
|
||||
nikita <nikita@n0.is> <ng0@pragmatique.xyz>
|
||||
nikita <nikita@n0.is> <contact.ng0@cryptolab.net>
|
||||
nikita <nikita@n0.is> <ng0@we.make.ritual.n0.is>
|
||||
nikita <nikita@n0.is> <ngillmann@runbox.com>
|
||||
nikita <nikita@n0.is> <niasterisk@grrlz.net>
|
||||
nikita <nikita@n0.is> <ng@niasterisk.space>
|
||||
nikita <nikita@n0.is> <ng0@libertad.pw>
|
||||
Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public01@thebird.nl>
|
||||
|
12
Makefile.am
12
Makefile.am
@ -9,7 +9,7 @@
|
||||
# Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
# Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||
# Copyright © 2018 ng0 <ng0@n0.is>
|
||||
# Copyright © 2018 Nikita <nikita@n0.is>
|
||||
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
|
||||
# Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
# Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
@ -70,6 +70,7 @@ MODULES = \
|
||||
guix/docker.scm \
|
||||
guix/json.scm \
|
||||
guix/records.scm \
|
||||
guix/openpgp.scm \
|
||||
guix/pki.scm \
|
||||
guix/progress.scm \
|
||||
guix/combinators.scm \
|
||||
@ -94,6 +95,7 @@ MODULES = \
|
||||
guix/repl.scm \
|
||||
guix/inferior.scm \
|
||||
guix/describe.scm \
|
||||
guix/quirks.scm \
|
||||
guix/channels.scm \
|
||||
guix/gnu-maintenance.scm \
|
||||
guix/self.scm \
|
||||
@ -174,6 +176,7 @@ MODULES = \
|
||||
guix/build/git.scm \
|
||||
guix/build/hg.scm \
|
||||
guix/build/glib-or-gtk-build-system.scm \
|
||||
guix/build/gnu-bootstrap.scm \
|
||||
guix/build/gnu-build-system.scm \
|
||||
guix/build/gnu-dist.scm \
|
||||
guix/build/guile-build-system.scm \
|
||||
@ -336,6 +339,7 @@ AUX_FILES = \
|
||||
gnu/packages/aux-files/linux-libre/4.9-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/4.4-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/4.4-x86_64.conf \
|
||||
gnu/packages/aux-files/pack-audit.c \
|
||||
gnu/packages/aux-files/run-in-namespace.c
|
||||
|
||||
# Templates, examples.
|
||||
@ -414,6 +418,7 @@ SCM_TESTS = \
|
||||
tests/nar.scm \
|
||||
tests/networking.scm \
|
||||
tests/opam.scm \
|
||||
tests/openpgp.scm \
|
||||
tests/packages.scm \
|
||||
tests/pack.scm \
|
||||
tests/pki.scm \
|
||||
@ -564,6 +569,11 @@ EXTRA_DIST += \
|
||||
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 \
|
||||
build-aux/config.rpath \
|
||||
bootstrap \
|
||||
doc/build.scm \
|
||||
|
@ -384,11 +384,11 @@ interface (FFI) of Guile.")
|
||||
#:key verbose? (version (date-version-string)) system
|
||||
(pull-version 0)
|
||||
|
||||
;; For the standalone Guix, default to Guile 2.2. For old
|
||||
;; For the standalone Guix, default to Guile 3.0. For old
|
||||
;; versions of 'guix pull' (pre-0.15.0), we have to use the
|
||||
;; same Guile as the current one.
|
||||
(guile-version (if (> pull-version 0)
|
||||
"2.2"
|
||||
"3.0"
|
||||
(effective-version)))
|
||||
|
||||
#:allow-other-keys
|
||||
|
@ -23,8 +23,10 @@
|
||||
|
||||
(use-modules (git)
|
||||
(guix git)
|
||||
(guix gnupg)
|
||||
(guix utils)
|
||||
(guix openpgp)
|
||||
(guix base16)
|
||||
((guix utils)
|
||||
#:select (cache-directory with-atomic-file-output))
|
||||
((guix build utils) #:select (mkdir-p))
|
||||
(guix i18n)
|
||||
(guix progress)
|
||||
@ -33,6 +35,7 @@
|
||||
(srfi srfi-26)
|
||||
(srfi srfi-34)
|
||||
(srfi srfi-35)
|
||||
(rnrs bytevectors)
|
||||
(rnrs io ports)
|
||||
(ice-9 match)
|
||||
(ice-9 format)
|
||||
@ -215,7 +218,8 @@
|
||||
;; Fingerprint of authorized signing keys.
|
||||
(map (match-lambda
|
||||
((name fingerprint)
|
||||
(string-filter char-set:graphic fingerprint)))
|
||||
(base16-string->bytevector
|
||||
(string-downcase (string-filter char-set:graphic fingerprint)))))
|
||||
%committers))
|
||||
|
||||
(define %commits-with-bad-signature
|
||||
@ -226,93 +230,148 @@
|
||||
;; Commits lacking a signature.
|
||||
'())
|
||||
|
||||
(define-syntax-rule (with-temporary-files file1 file2 exp ...)
|
||||
(call-with-temporary-output-file
|
||||
(lambda (file1 port1)
|
||||
(call-with-temporary-output-file
|
||||
(lambda (file2 port2)
|
||||
exp ...)))))
|
||||
|
||||
(define (commit-signing-key repo commit-id)
|
||||
"Return the OpenPGP key ID that signed COMMIT-ID (an OID). Raise an
|
||||
exception if the commit is unsigned or has an invalid signature."
|
||||
(define (commit-signing-key repo commit-id keyring)
|
||||
"Return the OpenPGP key that signed COMMIT-ID (an OID). Raise an exception
|
||||
if the commit is unsigned, has an invalid signature, or if its signing key is
|
||||
not in KEYRING."
|
||||
(let-values (((signature signed-data)
|
||||
(catch 'git-error
|
||||
(lambda ()
|
||||
(commit-extract-signature repo commit-id))
|
||||
(lambda _
|
||||
(values #f #f)))))
|
||||
(if (not signature)
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "commit ~a lacks a signature")
|
||||
commit-id)))))
|
||||
(begin
|
||||
(with-fluids ((%default-port-encoding "UTF-8"))
|
||||
(with-temporary-files data-file signature-file
|
||||
(call-with-output-file data-file
|
||||
(cut display signed-data <>))
|
||||
(call-with-output-file signature-file
|
||||
(cut display signature <>))
|
||||
(unless signature
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "commit ~a lacks a signature")
|
||||
commit-id))))))
|
||||
|
||||
(let-values (((status data)
|
||||
(with-error-to-port (%make-void-port "w")
|
||||
(lambda ()
|
||||
(gnupg-verify* signature-file data-file
|
||||
#:key-download 'always)))))
|
||||
(match status
|
||||
('invalid-signature
|
||||
;; There's a signature but it's invalid.
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "signature verification failed \
|
||||
(let ((signature (string->openpgp-packet signature)))
|
||||
(with-fluids ((%default-port-encoding "UTF-8"))
|
||||
(let-values (((status data)
|
||||
(verify-openpgp-signature signature keyring
|
||||
(open-input-string signed-data))))
|
||||
(match status
|
||||
('bad-signature
|
||||
;; There's a signature but it's invalid.
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "signature verification failed \
|
||||
for commit ~a")
|
||||
(oid->string commit-id)))))))
|
||||
('missing-key
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "could not authenticate \
|
||||
(oid->string commit-id)))))))
|
||||
('missing-key
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "could not authenticate \
|
||||
commit ~a: key ~a is missing")
|
||||
(oid->string commit-id)
|
||||
data))))))
|
||||
('valid-signature
|
||||
(match data
|
||||
((fingerprint . user)
|
||||
fingerprint)))))))))))
|
||||
(oid->string commit-id)
|
||||
data))))))
|
||||
('good-signature data)))))))
|
||||
|
||||
(define (authenticate-commit repository commit)
|
||||
(define (read-authorizations port)
|
||||
"Read authorizations in the '.guix-authorizations' format from PORT, and
|
||||
return a list of authorized fingerprints."
|
||||
(match (read port)
|
||||
(('authorizations ('version 0)
|
||||
(((? string? fingerprints) _ ...) ...)
|
||||
_ ...)
|
||||
(map (lambda (fingerprint)
|
||||
(base16-string->bytevector
|
||||
(string-downcase (string-filter char-set:graphic fingerprint))))
|
||||
fingerprints))))
|
||||
|
||||
(define* (commit-authorized-keys repository commit
|
||||
#:optional (default-authorizations '()))
|
||||
"Return the list of OpenPGP fingerprints authorized to sign COMMIT, based on
|
||||
authorizations listed in its parent commits. If one of the parent commits
|
||||
does not specify anything, fall back to DEFAULT-AUTHORIZATIONS."
|
||||
(define (commit-authorizations commit)
|
||||
(catch 'git-error
|
||||
(lambda ()
|
||||
(let* ((tree (commit-tree commit))
|
||||
(entry (tree-entry-bypath tree ".guix-authorizations"))
|
||||
(blob (blob-lookup repository (tree-entry-id entry))))
|
||||
(read-authorizations
|
||||
(open-bytevector-input-port (blob-content blob)))))
|
||||
(lambda (key error)
|
||||
(if (= (git-error-code error) GIT_ENOTFOUND)
|
||||
default-authorizations
|
||||
(throw key error)))))
|
||||
|
||||
(apply lset-intersection bytevector=?
|
||||
(map commit-authorizations (commit-parents commit))))
|
||||
|
||||
(define (authenticate-commit repository commit keyring)
|
||||
"Authenticate COMMIT from REPOSITORY and return the signing key fingerprint.
|
||||
Raise an error when authentication fails."
|
||||
(define id
|
||||
(commit-id commit))
|
||||
|
||||
(define signing-key
|
||||
(commit-signing-key repository id))
|
||||
(commit-signing-key repository id keyring))
|
||||
|
||||
(unless (member signing-key %authorized-signing-keys)
|
||||
(unless (member (openpgp-public-key-fingerprint signing-key)
|
||||
(commit-authorized-keys repository commit
|
||||
%authorized-signing-keys))
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "commit ~a not signed by an authorized \
|
||||
key: ~a")
|
||||
(oid->string id) signing-key))))))
|
||||
(oid->string id)
|
||||
(openpgp-format-fingerprint
|
||||
(openpgp-public-key-fingerprint
|
||||
signing-key))))))))
|
||||
|
||||
signing-key)
|
||||
|
||||
(define (load-keyring-from-blob repository oid keyring)
|
||||
"Augment KEYRING with the keyring available in the blob at OID, which may or
|
||||
may not be ASCII-armored."
|
||||
(let* ((blob (blob-lookup repository oid))
|
||||
(port (open-bytevector-input-port (blob-content blob))))
|
||||
(get-openpgp-keyring (if (port-ascii-armored? port)
|
||||
(open-bytevector-input-port (read-radix-64 port))
|
||||
port)
|
||||
keyring)))
|
||||
|
||||
(define (load-keyring-from-reference repository reference)
|
||||
"Load the '.key' files from the tree at REFERENCE in REPOSITORY and return
|
||||
an OpenPGP keyring."
|
||||
(let* ((reference (branch-lookup repository
|
||||
(string-append "origin/" reference)
|
||||
BRANCH-REMOTE))
|
||||
(target (reference-target reference))
|
||||
(commit (commit-lookup repository target))
|
||||
(tree (commit-tree commit)))
|
||||
(fold (lambda (name keyring)
|
||||
(if (string-suffix? ".key" name)
|
||||
(let ((entry (tree-entry-bypath tree name)))
|
||||
(load-keyring-from-blob repository
|
||||
(tree-entry-id entry)
|
||||
keyring))
|
||||
keyring))
|
||||
%empty-keyring
|
||||
(tree-list tree))))
|
||||
|
||||
(define* (authenticate-commits repository commits
|
||||
#:key (report-progress (const #t)))
|
||||
#:key
|
||||
(keyring-reference "keyring")
|
||||
(report-progress (const #t)))
|
||||
"Authenticate COMMITS, a list of commit objects, calling REPORT-PROGRESS for
|
||||
each of them. Return an alist showing the number of occurrences of each key."
|
||||
(parameterize ((current-keyring (string-append (config-directory)
|
||||
"/keyrings/channels/guix.kbx")))
|
||||
(fold (lambda (commit stats)
|
||||
(report-progress)
|
||||
(let ((signer (authenticate-commit repository commit)))
|
||||
(match (assoc signer stats)
|
||||
(#f (cons `(,signer . 1) stats))
|
||||
((_ . count) (cons `(,signer . ,(+ count 1))
|
||||
(alist-delete signer stats))))))
|
||||
'()
|
||||
commits)))
|
||||
each of them. Return an alist showing the number of occurrences of each key.
|
||||
The OpenPGP keyring is loaded from KEYRING-REFERENCE in REPOSITORY."
|
||||
(define keyring
|
||||
(load-keyring-from-reference repository keyring-reference))
|
||||
|
||||
(fold (lambda (commit stats)
|
||||
(report-progress)
|
||||
(let ((signer (authenticate-commit repository commit keyring)))
|
||||
(match (assq signer stats)
|
||||
(#f (cons `(,signer . 1) stats))
|
||||
((_ . count) (cons `(,signer . ,(+ count 1))
|
||||
(alist-delete signer stats))))))
|
||||
'()
|
||||
commits))
|
||||
|
||||
(define commit-short-id
|
||||
(compose (cut string-take <> 7) oid->string commit-id))
|
||||
@ -409,7 +468,10 @@ COMMIT-ID is written to cache, though)."
|
||||
(format #t (G_ "Signing statistics:~%"))
|
||||
(for-each (match-lambda
|
||||
((signer . count)
|
||||
(format #t " ~a ~10d~%" signer count)))
|
||||
(format #t " ~a ~10d~%"
|
||||
(openpgp-format-fingerprint
|
||||
(openpgp-public-key-fingerprint signer))
|
||||
count)))
|
||||
(sort stats
|
||||
(match-lambda*
|
||||
(((_ . count1) (_ . count2))
|
||||
@ -423,7 +485,3 @@ COMMIT-ID is written to cache, though)."
|
||||
(G_ "Usage: git-authenticate START [END]
|
||||
|
||||
Authenticate commits START to END or the current head.\n"))))))
|
||||
|
||||
;;; Local Variables:
|
||||
;;; eval: (put 'with-temporary-files 'scheme-indent-function 2)
|
||||
;;; End:
|
||||
|
@ -1,5 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -58,7 +59,10 @@
|
||||
"guix"))
|
||||
|
||||
(define %languages
|
||||
'("de" "en" "es" "fr" "ru" "zh_CN"))
|
||||
;; The cookbook is currently only translated into German.
|
||||
(if (string=? %manual "guix-cookbook")
|
||||
'("de" "en")
|
||||
'("de" "en" "es" "fr" "ru" "zh_CN")))
|
||||
|
||||
(define (texinfo-manual-images source)
|
||||
"Return a directory containing all the images used by the user manual, taken
|
||||
@ -451,7 +455,9 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
|
||||
(lambda (mono)
|
||||
(let ((anchors (collect-anchors mono)))
|
||||
(process-html mono anchors)))
|
||||
(find-files #$input "^guix(\\.[a-zA-Z_-]+)?\\.html$"))
|
||||
(find-files
|
||||
#$input
|
||||
"^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$"))
|
||||
|
||||
;; Next process the multi-node HTML files in two phases: (1)
|
||||
;; collect the list of anchors, and (2) perform
|
||||
|
@ -1083,12 +1083,14 @@ guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master
|
||||
@end enumerate
|
||||
|
||||
When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as
|
||||
a subject. You may use your email client or the @command{git
|
||||
send-email} command (@pxref{Sending a Patch Series}). We prefer to get
|
||||
patches in plain text messages, either inline or as MIME attachments.
|
||||
You are advised to pay attention if your email client changes anything
|
||||
like line breaks or indentation which could potentially break the
|
||||
patches.
|
||||
a subject, if your patch is to be applied on a branch other than
|
||||
@code{master}, say @code{core-updates}, specify it in the subject like
|
||||
@samp{[PATCH core-updates] @dots{}}. You may use your email client or
|
||||
the @command{git send-email} command (@pxref{Sending a Patch Series}).
|
||||
We prefer to get patches in plain text messages, either inline or as
|
||||
MIME attachments. You are advised to pay attention if your email client
|
||||
changes anything like line breaks or indentation which could potentially
|
||||
break the patches.
|
||||
|
||||
When a bug is resolved, please close the thread by sending an email to
|
||||
@email{@var{NNN}-done@@debbugs.gnu.org}.
|
||||
@ -1187,18 +1189,38 @@ the OpenPGP key you will use to sign commits, and giving its fingerprint
|
||||
(see below). See @uref{https://emailselfdefense.fsf.org/en/}, for an
|
||||
introduction to public-key cryptography with GnuPG.
|
||||
|
||||
@c See <https://sha-mbles.github.io/>.
|
||||
Set up GnuPG such that it never uses the SHA1 hash algorithm for digital
|
||||
signatures, which is known to be unsafe since 2019, for instance by
|
||||
adding the following line to @file{~/.gnupg/gpg.conf} (@pxref{GPG
|
||||
Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):
|
||||
|
||||
@example
|
||||
digest-algo sha512
|
||||
@end example
|
||||
|
||||
@item
|
||||
Maintainers ultimately decide whether to grant you commit access,
|
||||
usually following your referrals' recommendation.
|
||||
|
||||
@item
|
||||
@cindex OpenPGP, signed commits
|
||||
If and once you've been given access, please send a message to
|
||||
@email{guix-devel@@gnu.org} to say so, again signed with the OpenPGP key
|
||||
you will use to sign commits (do that before pushing your first commit).
|
||||
That way, everyone can notice and ensure you control that OpenPGP key.
|
||||
|
||||
@c TODO: Add note about adding the fingerprint to the list of authorized
|
||||
@c keys once that has stabilized.
|
||||
@quotation Important
|
||||
Before you can push for the first time, maintainers must:
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
add your OpenPGP key to the @code{keyring} branch;
|
||||
@item
|
||||
add your OpenPGP fingerprint to the @file{.guix-authorizations} file of
|
||||
the branch(es) you will commit to.
|
||||
@end enumerate
|
||||
@end quotation
|
||||
|
||||
@item
|
||||
Make sure to read the rest of this section and... profit!
|
||||
|
@ -13,6 +13,7 @@ Copyright @copyright{} 2019 Efraim Flashner@*
|
||||
Copyright @copyright{} 2019 Pierre Neidhardt@*
|
||||
Copyright @copyright{} 2020 Oleg Pykhalov@*
|
||||
Copyright @copyright{} 2020 Matthew Brooks@*
|
||||
Copyright @copyright{} 2020 Marcin Karpezo@*
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
@ -1575,7 +1576,7 @@ available for inclusion into the initrd.
|
||||
@cindex stumpwm
|
||||
|
||||
You could install StumpWM with a Guix system by adding
|
||||
@code{stumpwm-checkout} and optionally @code{`(,stumpwm-checkout "lib")}
|
||||
@code{stumpwm} and optionally @code{`(,stumpwm "lib")}
|
||||
packages to a system configuration file, e.g.@: @file{/etc/config.scm}.
|
||||
|
||||
An example configuration can look like this:
|
||||
@ -1586,14 +1587,14 @@ An example configuration can look like this:
|
||||
|
||||
(operating-system
|
||||
;; …
|
||||
(packages (append (list sbcl stumpwm-checkout `(,stumpwm-checkout "lib"))
|
||||
(packages (append (list sbcl stumpwm `(,stumpwm "lib"))
|
||||
%base-packages)))
|
||||
@end lisp
|
||||
|
||||
@cindex stumpwm fonts
|
||||
By default StumpWM uses X11 fonts, which could be small or pixelated on
|
||||
your system. You could fix this by installing StumpWM contrib Lisp
|
||||
module @code{sbcl-stumpwm-ttf-fonts}, adding it to Guix system packages:
|
||||
module @code{sbcl-ttf-fonts}, adding it to Guix system packages:
|
||||
|
||||
@lisp
|
||||
(use-modules (gnu))
|
||||
@ -1601,8 +1602,8 @@ module @code{sbcl-stumpwm-ttf-fonts}, adding it to Guix system packages:
|
||||
|
||||
(operating-system
|
||||
;; …
|
||||
(packages (append (list sbcl stumpwm-checkout `(,stumpwm-checkout "lib"))
|
||||
sbcl-stumpwm-ttf-fonts font-dejavu %base-packages)))
|
||||
(packages (append (list sbcl stumpwm `(,stumpwm "lib"))
|
||||
sbcl-ttf-fonts font-dejavu %base-packages)))
|
||||
@end lisp
|
||||
|
||||
Then you need to add the following code to a StumpWM configuration file
|
||||
|
876
doc/guix.texi
876
doc/guix.texi
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
#
|
||||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2017, 2018 ng0 <ng0@n0.is>
|
||||
# Copyright © 2017, 2018 Nikita <nikita@n0.is>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
148
etc/news.scm
148
etc/news.scm
@ -2,6 +2,7 @@
|
||||
;;
|
||||
;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;
|
||||
;; Copying and distribution of this file, with or without modification, are
|
||||
;; permitted in any medium without royalty provided the copyright notice and
|
||||
@ -10,6 +11,122 @@
|
||||
(channel-news
|
||||
(version 0)
|
||||
|
||||
(entry (commit "6456232164890dbf5aa20394ee24637feb4b7b9e")
|
||||
(title (en "@command{guix pack -RR} introduces a new execution
|
||||
engine"))
|
||||
(body
|
||||
(en "The @command{guix pack -RR} command allows you to create a
|
||||
tarball containing @dfn{relocatable binaries}. Until now, those would rely
|
||||
either on Linux ``unprivileged user namespaces'' or on PRoot, when
|
||||
unprivileged user namespaces are not supported. However, PRoot introduces
|
||||
significant overhead for some workloads.
|
||||
|
||||
To address that, @command{guix pack -RR} introduces a third option based on an
|
||||
extension to the GNU run-time linker (ld.so) and on Fakechroot, which incurs
|
||||
very little overhead. You can select the fastest option when executing a
|
||||
relocatable binary like this:
|
||||
|
||||
@example
|
||||
GUIX_EXECUTION_ENGINE=performance
|
||||
export GUIX_EXECUTION_ENGINE
|
||||
@end example
|
||||
|
||||
Run @command{info \"(guix) Invoking guix pack\"} for more information.")))
|
||||
|
||||
(entry (commit "88a96c568c47c97d05d883ada5afbc4e1200b10f")
|
||||
(title (en "New @option{--path} option for @command{guix graph}")
|
||||
(de "Neue Option @option{--path} für @command{guix graph}"))
|
||||
(body
|
||||
(en "The @command{guix graph} command has a new @option{--path}
|
||||
option that instructs it to display the shortest path between two packages,
|
||||
derivations, or store items. For example, the command below displays the
|
||||
shortest path from the @code{libreoffice} package to @code{libunistring}:
|
||||
|
||||
@example
|
||||
guix graph --path libreoffice libunistring
|
||||
@end example
|
||||
|
||||
Run @code{info \"(guix) Invoking guix graph\"} for more information.")
|
||||
(de "Der Befehl @command{guix graph} verfügt über eine neue
|
||||
Befehlszeilenoption @option{--path}, die ihn den kürzesten Pfad zwischen zwei
|
||||
Paketen, Ableitungen oder Store-Objekten ausgeben lässt. Zum Beispiel zeigt
|
||||
folgender Befehl den kürzesten Pfad vom Paket @code{libreoffice} zu
|
||||
@code{libunistring}:
|
||||
|
||||
@example
|
||||
guix graph --path libreoffice libunistring
|
||||
@end example
|
||||
|
||||
Führen Sie @code{info \"(guix.de) Aufruf von guix graph\"} aus, um mehr zu
|
||||
erfahren.")))
|
||||
|
||||
(entry (commit "a33eac038a811603c8b9ed106ae405a5f80a0e9d")
|
||||
(title (en "GNU C Library upgraded")
|
||||
(de "GNU-C-Bibliothek aktualisiert")
|
||||
(es "Actualización de la biblioteca C de GNU")
|
||||
(fr "Mise à jour de la bibliothèque C de GNU")
|
||||
(nl "GNU C-bibliotheek bijgewerkt"))
|
||||
(body
|
||||
(en "The GNU C Library (glibc) has been upgraded to version 2.31. To
|
||||
run previously-installed programs linked against glibc 2.29, you need to
|
||||
install locale data for version 2.29 in addition to locale data for 2.31:
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.29
|
||||
@end example
|
||||
|
||||
On Guix System, you can adjust the @code{locale-libcs} field of your
|
||||
@code{operating-system} form. Run @code{info \"(guix) Locales\"}, for more
|
||||
info.")
|
||||
(de "Die GNU-C-Bibliothek (glibc) wurde auf Version 2.31
|
||||
aktualisiert. Um zuvor installierte Programme, die an glibc 2.29 gebunden
|
||||
worden sind, weiter benutzen zu können, müssen Sie Locale-Daten für Version
|
||||
2.29 zusätzlich zu den Locale-Daten für 2.31 installieren:
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.29
|
||||
@end example
|
||||
|
||||
Auf Guix System genügt es, das @code{locale-libcs}-Feld Ihrer
|
||||
@code{operating-system}-Form anzupassen. Führen Sie @code{info \"(guix.de)
|
||||
Locales\"} aus, um weitere Informationen dazu zu erhalten.")
|
||||
(es "Se ha actualizado la biblioteca de C de GNU (glibc) a la versión
|
||||
2.31. Para ejecutar programas instalados previamente que se encuentren
|
||||
enlazados con glibc 2.29, es necesario que instale los datos de localización
|
||||
de la versión 2.29 junto a los datos de localización de la versión 2.31:
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.29
|
||||
@end example
|
||||
|
||||
En el sistema Guix, puede ajustar el campo @code{locale-libcs} de su
|
||||
declaración @code{operating-system}. Ejecute @code{info \"(guix.es)
|
||||
Localizaciones\"} para obtener más información.")
|
||||
(fr "La bibliothèque C de GNU (glibc) a été mise à jour en version
|
||||
2.31. Pour pouvoir lancer tes programmes déjà installés et liés à glibc 2.29,
|
||||
tu dois installer les données pour la version 2.29 en plus des données de
|
||||
régionalisation pour la version 2.31:
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.29
|
||||
@end example
|
||||
|
||||
Sur le système Guix, tu peux ajuster le champ @code{locale-libcs} de ta forme
|
||||
@code{operating-system}. Lance @code{info \"(guix.fr) Régionalisation\"} pour
|
||||
plus de détails.")
|
||||
(nl "De GNU C-bibliotheek (glibc) werd bijgewerkt naar versie 2.31.
|
||||
Om gebruik te maken van reeds geïnstalleerde programma's die aan glibc 2.29
|
||||
gebonden zijn, moet u de regionale informatie van versie 2.29 naast die van
|
||||
versie 2.31 installeren:
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.29
|
||||
@end example
|
||||
|
||||
Op Guix System kunt u het @code{locale-libcs}-veld van uw
|
||||
@code{operating-system}-vorm aanpassen. Voer @code{info \"(guix) Locales\"}
|
||||
uit voor verdere uitleg.")))
|
||||
|
||||
(entry (commit "e1e6491226347d9fb93ff484d78cef98848a510a")
|
||||
(title (en "Guix Cookbook now available as Info")
|
||||
(de "Guix-Kochbuch jetzt als Info-Dokument verfügbar"))
|
||||
@ -45,6 +162,22 @@ Ihre Beiträge werden gerne gesehen. Bitte
|
||||
@uref{https://guix.gnu.org/contact/, kontaktieren Sie die Entwickler}, um Ihre
|
||||
Rezepte mit uns zu teilen!")))
|
||||
|
||||
(entry (commit "2ca7af43fe17d9acf082dce85d137a27a8ac4887")
|
||||
(title (en "Further reduced binary seed bootstrap")
|
||||
(de "Bootstrapping jetzt mit noch kleinerem Seed"))
|
||||
(body
|
||||
(en "The package graph on x86_64 and i686 is now rooted in a further
|
||||
@dfn{reduced set of binary seeds}. The initial set of binaries from which
|
||||
packages are built now weighs in at approximately 60 MiB, a quarter of what it
|
||||
used to be. Run @code{info \"(guix) Bootstrapping\"} to learn more, or watch
|
||||
the talk at @uref{https://fosdem.org/2020/schedule/event/gnumes/}.")
|
||||
(de "Der Paketgraph auf x86_64 und i686 hat jetzt eine noch
|
||||
@dfn{kleinere Menge an binären Seeds} als Wurzel. Das heißt, die ursprüngliche
|
||||
Menge an Binärdateien, aus denen heraus Pakete erstellt werden, machen nun
|
||||
ungefähr 60 MiB aus, ein Viertel der früheren Größe. Führen Sie @code{info
|
||||
\"(guix.de) Bootstrapping\"} aus, um mehr zu erfahren, oder schauen Sie sich
|
||||
den Vortrag auf @uref{https://fosdem.org/2020/schedule/event/gnumes/} an.")))
|
||||
|
||||
(entry (commit "0468455e7d279c89ea3ad1b51935efb2b785ec47")
|
||||
(title (en "Rottlog service added to @code{%base-services}")
|
||||
(de "Rottlog-Dienst ist nun Teil der @code{%base-services}"))
|
||||
@ -59,6 +192,21 @@ Systemdienst bereits in Ihrer Konfiguration für Guix System ausdrücklich
|
||||
genannt wurde, sollten Sie ihn jetzt daraus entfernen. Siehe den Abschnitt
|
||||
„Log-Rotation“ im Handbuch für weitere Informationen.")))
|
||||
|
||||
(entry (commit "b6bee63bed4f013064c0d902e7c8b83ed7514ade")
|
||||
(title (en "@code{guile} package now refers to version 3.0")
|
||||
(de "Das @code{guile}-Paket bezeichnet jetzt Version 3.0"))
|
||||
(body (en "The @code{guile} package has been upgraded to version 3.0
|
||||
(instead of 2.2). The @code{guile3.0-} packages have been renamed to their
|
||||
original name, and @code{guile2.2-} variants of these packages have been
|
||||
defined. Additionally, derivations are now all built with Guile 3.0, and
|
||||
system services also run on 3.0.")
|
||||
(de "Das @code{guile}-Paket wurde auf Version 3.0
|
||||
(statt 2.2) aktualisiert. Die Pakete, deren Namen mit @code{guile3.0-}
|
||||
beginnen, wurden umbenannt, so dass sie nun den unveränderten Namen tragen,
|
||||
während ihre Varianten mit @code{guile2.2-} hinzugefügt wurden. Des Weiteren
|
||||
werden jetzt alle Ableitungen mit Guile 3.0 erstellt und die Systemdienste
|
||||
laufen auch auf 3.0.")))
|
||||
|
||||
(entry (commit "e3e1a7ba08af2d58c47264c543617e499c239444")
|
||||
(title (en "@command{guix pull} now supports SSH authenticated
|
||||
repositories")
|
||||
|
@ -66,7 +66,7 @@ TARGET."
|
||||
;; Packages that must be cross-buildable from x86_64-linux.
|
||||
;; FIXME: Add (@ (gnu packages gcc) gcc) when <https://bugs.gnu.org/40463>
|
||||
;; is fixed.
|
||||
(append (list (@ (gnu packages guile) guile-2.2/fixed))
|
||||
(append (list (@ (gnu packages guile) guile-3.0/fixed))
|
||||
(map specification->package
|
||||
'("coreutils" "grep" "sed" "findutils" "diffutils" "patch"
|
||||
"gawk" "gettext" "gzip" "xz"
|
||||
|
@ -3,7 +3,7 @@
|
||||
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -54,6 +54,7 @@
|
||||
grub-bootloader
|
||||
grub-efi-bootloader
|
||||
grub-mkrescue-bootloader
|
||||
grub-minimal-bootloader
|
||||
|
||||
grub-configuration))
|
||||
|
||||
@ -457,6 +458,14 @@ fi~%"))))
|
||||
(configuration-file "/boot/grub/grub.cfg")
|
||||
(configuration-file-generator grub-configuration-file)))
|
||||
|
||||
(define grub-minimal-bootloader
|
||||
(bootloader
|
||||
(name 'grub)
|
||||
(package grub-minimal)
|
||||
(installer install-grub)
|
||||
(configuration-file "/boot/grub/grub.cfg")
|
||||
(configuration-file-generator grub-configuration-file)))
|
||||
|
||||
(define* grub-efi-bootloader
|
||||
(bootloader
|
||||
(inherit grub-bootloader)
|
||||
|
@ -18,8 +18,12 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu build bootloader)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 binary-ports)
|
||||
#:export (write-file-on-device))
|
||||
#:use-module (ice-9 format)
|
||||
#:export (write-file-on-device
|
||||
install-efi-loader))
|
||||
|
||||
|
||||
;;;
|
||||
@ -36,3 +40,53 @@
|
||||
(seek output offset SEEK_SET)
|
||||
(put-bytevector output bv))
|
||||
#:binary #t)))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; EFI bootloader.
|
||||
;;;
|
||||
|
||||
(define (install-efi grub grub-config esp)
|
||||
"Write a self-contained GRUB EFI loader to the mounted ESP using GRUB-CONFIG."
|
||||
(let* ((system %host-type)
|
||||
;; Hard code the output location to a well-known path recognized by
|
||||
;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour":
|
||||
;; http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf
|
||||
(grub-mkstandalone (string-append grub "/bin/grub-mkstandalone"))
|
||||
(efi-directory (string-append esp "/EFI/BOOT"))
|
||||
;; Map grub target names to boot file names.
|
||||
(efi-targets (cond ((string-prefix? "x86_64" system)
|
||||
'("x86_64-efi" . "BOOTX64.EFI"))
|
||||
((string-prefix? "i686" system)
|
||||
'("i386-efi" . "BOOTIA32.EFI"))
|
||||
((string-prefix? "armhf" system)
|
||||
'("arm-efi" . "BOOTARM.EFI"))
|
||||
((string-prefix? "aarch64" system)
|
||||
'("arm64-efi" . "BOOTAA64.EFI")))))
|
||||
;; grub-mkstandalone requires a TMPDIR to prepare the firmware image.
|
||||
(setenv "TMPDIR" esp)
|
||||
|
||||
(mkdir-p efi-directory)
|
||||
(invoke grub-mkstandalone "-O" (car efi-targets)
|
||||
"-o" (string-append efi-directory "/"
|
||||
(cdr efi-targets))
|
||||
;; Graft the configuration file onto the image.
|
||||
(string-append "boot/grub/grub.cfg=" grub-config))))
|
||||
|
||||
(define (install-efi-loader grub-efi esp)
|
||||
"Install in ESP directory the given GRUB-EFI bootloader. Configure it to
|
||||
load the Grub bootloader located in the 'Guix_image' root partition."
|
||||
(let ((grub-config "grub.cfg"))
|
||||
(call-with-output-file grub-config
|
||||
(lambda (port)
|
||||
;; Create a tiny configuration file telling the embedded grub where to
|
||||
;; load the real thing. XXX This is quite fragile, and can prevent
|
||||
;; the image from booting when there's more than one volume with this
|
||||
;; label present. Reproducible almost-UUIDs could reduce the risk
|
||||
;; (not eliminate it).
|
||||
(format port
|
||||
"insmod part_msdos~@
|
||||
search --set=root --label Guix_image~@
|
||||
configfile /boot/grub/grub.cfg~%")))
|
||||
(install-efi grub-efi grub-config esp)
|
||||
(delete-file grub-config)))
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
@ -38,8 +38,11 @@
|
||||
|
||||
(define %gcc-include-paths
|
||||
;; Environment variables for header search paths.
|
||||
;; Note: See <http://bugs.gnu.org/30756> for why not 'C_INCLUDE_PATH' & co.
|
||||
'("CPATH"))
|
||||
;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
|
||||
'("C_INCLUDE_PATH"
|
||||
"CPLUS_INCLUDE_PATH"
|
||||
"OBJC_INCLUDE_PATH"
|
||||
"OBJCPLUS_INCLUDE_PATH"))
|
||||
|
||||
(define %gcc-cross-include-paths
|
||||
;; Search path for target headers when cross-compiling.
|
||||
|
@ -98,6 +98,47 @@ takes a bytevector and returns #t when it's a valid superblock."
|
||||
(define null-terminated-latin1->string
|
||||
(cut latin1->string <> zero?))
|
||||
|
||||
(define (bytevector-utf16-length bv)
|
||||
"Given a bytevector BV containing a NUL-terminated UTF16-encoded string,
|
||||
determine where the NUL terminator is and return its index. If there's no
|
||||
NUL terminator, return the size of the bytevector."
|
||||
(let ((length (bytevector-length bv)))
|
||||
(let loop ((index 0))
|
||||
(if (< index length)
|
||||
(if (zero? (bytevector-u16-ref bv index 'little))
|
||||
index
|
||||
(loop (+ index 2)))
|
||||
length))))
|
||||
|
||||
(define* (bytevector->u16-list bv endianness #:optional (index 0))
|
||||
(if (< index (bytevector-length bv))
|
||||
(cons (bytevector-u16-ref bv index endianness)
|
||||
(bytevector->u16-list bv endianness (+ index 2)))
|
||||
'()))
|
||||
|
||||
;; The initrd doesn't have iconv data, so do the conversion ourselves.
|
||||
(define (utf16->string bv endianness)
|
||||
(list->string
|
||||
(map integer->char
|
||||
(reverse
|
||||
(let loop ((remainder (bytevector->u16-list bv endianness))
|
||||
(result '()))
|
||||
(match remainder
|
||||
(() result)
|
||||
((a) (cons a result))
|
||||
((a b x ...)
|
||||
(if (and (>= a #xD800) (< a #xDC00) ; high surrogate
|
||||
(>= b #xDC00) (< b #xE000)) ; low surrogate
|
||||
(loop x (cons (+ #x10000
|
||||
(* #x400 (- a #xD800))
|
||||
(- b #xDC00))
|
||||
result))
|
||||
(loop (cons b x) (cons a result))))))))))
|
||||
|
||||
(define (null-terminated-utf16->string bv endianness)
|
||||
(utf16->string (sub-bytevector bv 0 (bytevector-utf16-length bv))
|
||||
endianness))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Ext2 file systems.
|
||||
@ -336,6 +377,60 @@ if DEVICE does not contain a JFS file system."
|
||||
(2 'reboot-required)
|
||||
(_ 'fatal-error)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; F2FS (Flash-Friendly File System)
|
||||
;;;
|
||||
|
||||
;;; https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/tree/include/linux/f2fs_fs.h
|
||||
;;; (but using xxd proved to be simpler)
|
||||
|
||||
(define-syntax %f2fs-endianness
|
||||
;; Endianness of F2FS file systems
|
||||
(identifier-syntax (endianness little)))
|
||||
|
||||
;; F2FS actually stores two adjacent copies of the superblock.
|
||||
;; should we read both?
|
||||
(define (f2fs-superblock? sblock)
|
||||
"Return #t when SBLOCK is an F2FS superblock."
|
||||
(let ((magic (bytevector-u32-ref sblock 0 %f2fs-endianness)))
|
||||
(= magic #xF2F52010)))
|
||||
|
||||
(define (read-f2fs-superblock device)
|
||||
"Return the raw contents of DEVICE's F2FS superblock as a bytevector, or #f
|
||||
if DEVICE does not contain an F2FS file system."
|
||||
(read-superblock device
|
||||
;; offset of magic in first copy
|
||||
#x400
|
||||
;; difference between magic of second
|
||||
;; and first copies
|
||||
(- #x1400 #x400)
|
||||
f2fs-superblock?))
|
||||
|
||||
(define (f2fs-superblock-uuid sblock)
|
||||
"Return the UUID of F2FS superblock SBLOCK as a 16-byte bytevector."
|
||||
(sub-bytevector sblock
|
||||
(- (+ #x460 12)
|
||||
;; subtract superblock offset
|
||||
#x400)
|
||||
16))
|
||||
|
||||
(define (f2fs-superblock-volume-name sblock)
|
||||
"Return the volume name of SBLOCK as a string of at most 512 characters, or
|
||||
#f if SBLOCK has no volume name."
|
||||
(null-terminated-utf16->string
|
||||
(sub-bytevector sblock (- (+ #x470 12) #x400) 512)
|
||||
%f2fs-endianness))
|
||||
|
||||
(define (check-f2fs-file-system device)
|
||||
"Return the health of a F2FS file system on DEVICE."
|
||||
(match (status:exit-val
|
||||
(system* "fsck.f2fs" "-p" device))
|
||||
;; 0 and -1 are the only two possibilities
|
||||
;; (according to the manpage)
|
||||
(0 'pass)
|
||||
(_ 'fatal-error)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; LUKS encrypted devices.
|
||||
@ -472,7 +567,9 @@ partition field reader that returned a value."
|
||||
(partition-field-reader read-fat16-superblock
|
||||
fat16-superblock-volume-name)
|
||||
(partition-field-reader read-jfs-superblock
|
||||
jfs-superblock-volume-name)))
|
||||
jfs-superblock-volume-name)
|
||||
(partition-field-reader read-f2fs-superblock
|
||||
f2fs-superblock-volume-name)))
|
||||
|
||||
(define %partition-uuid-readers
|
||||
(list (partition-field-reader read-iso9660-superblock
|
||||
@ -486,7 +583,9 @@ partition field reader that returned a value."
|
||||
(partition-field-reader read-fat16-superblock
|
||||
fat16-superblock-uuid)
|
||||
(partition-field-reader read-jfs-superblock
|
||||
jfs-superblock-uuid)))
|
||||
jfs-superblock-uuid)
|
||||
(partition-field-reader read-f2fs-superblock
|
||||
f2fs-superblock-uuid)))
|
||||
|
||||
(define read-partition-label
|
||||
(cut read-partition-field <> %partition-label-readers))
|
||||
@ -582,6 +681,7 @@ were found."
|
||||
((string-prefix? "btrfs" type) check-btrfs-file-system)
|
||||
((string-suffix? "fat" type) check-fat-file-system)
|
||||
((string-prefix? "jfs" type) check-jfs-file-system)
|
||||
((string-prefix? "f2fs" type) check-f2fs-file-system)
|
||||
((string-prefix? "nfs" type) (const 'pass))
|
||||
(else #f)))
|
||||
|
||||
|
273
gnu/build/image.scm
Normal file
273
gnu/build/image.scm
Normal file
@ -0,0 +1,273 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu build image)
|
||||
#:use-module (guix build store-copy)
|
||||
#:use-module (guix build syscalls)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix store database)
|
||||
#:use-module (gnu build bootloader)
|
||||
#:use-module (gnu build install)
|
||||
#:use-module (gnu build linux-boot)
|
||||
#:use-module (gnu image)
|
||||
#:use-module (gnu system uuid)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:export (make-partition-image
|
||||
genimage
|
||||
initialize-efi-partition
|
||||
initialize-root-partition
|
||||
|
||||
make-iso9660-image))
|
||||
|
||||
(define (sexp->partition sexp)
|
||||
"Take SEXP, a tuple as returned by 'partition->gexp', and turn it into a
|
||||
<partition> record."
|
||||
(match sexp
|
||||
((size file-system label uuid)
|
||||
(partition (size size)
|
||||
(file-system file-system)
|
||||
(label label)
|
||||
(uuid uuid)))))
|
||||
|
||||
(define (size-in-kib size)
|
||||
"Convert SIZE expressed in bytes, to kilobytes and return it as a string."
|
||||
(number->string
|
||||
(inexact->exact (ceiling (/ size 1024)))))
|
||||
|
||||
(define (estimate-partition-size root)
|
||||
"Given the ROOT directory, evalute and return its size. As this doesn't
|
||||
take the partition metadata size into account, take a 25% margin."
|
||||
(* 1.25 (file-size root)))
|
||||
|
||||
(define* (make-ext4-image partition target root
|
||||
#:key
|
||||
(owner-uid 0)
|
||||
(owner-gid 0))
|
||||
"Handle the creation of EXT4 partition images. See 'make-partition-image'."
|
||||
(let ((size (partition-size partition))
|
||||
(label (partition-label partition))
|
||||
(uuid (partition-uuid partition))
|
||||
(options "lazy_itable_init=1,lazy_journal_init=1"))
|
||||
(invoke "mke2fs" "-t" "ext4" "-d" root
|
||||
"-L" label "-U" (uuid->string uuid)
|
||||
"-E" (format #f "root_owner=~a:~a,~a"
|
||||
owner-uid owner-gid options)
|
||||
target
|
||||
(format #f "~ak"
|
||||
(size-in-kib
|
||||
(if (eq? size 'guess)
|
||||
(estimate-partition-size root)
|
||||
size))))))
|
||||
|
||||
(define* (make-vfat-image partition target root)
|
||||
"Handle the creation of VFAT partition images. See 'make-partition-image'."
|
||||
(let ((size (partition-size partition))
|
||||
(label (partition-label partition)))
|
||||
(invoke "mkdosfs" "-n" label "-C" target "-F" "16" "-S" "1024"
|
||||
(size-in-kib
|
||||
(if (eq? size 'guess)
|
||||
(estimate-partition-size root)
|
||||
size)))
|
||||
(for-each (lambda (file)
|
||||
(unless (member file '("." ".."))
|
||||
(invoke "mcopy" "-bsp" "-i" target
|
||||
(string-append root "/" file)
|
||||
(string-append "::" file))))
|
||||
(scandir root))))
|
||||
|
||||
(define* (make-partition-image partition-sexp target root)
|
||||
"Create and return the image of PARTITION-SEXP as TARGET. Use the given
|
||||
ROOT directory to populate the image."
|
||||
(let* ((partition (sexp->partition partition-sexp))
|
||||
(type (partition-file-system partition)))
|
||||
(cond
|
||||
((string=? type "ext4")
|
||||
(make-ext4-image partition target root))
|
||||
((string=? type "vfat")
|
||||
(make-vfat-image partition target root))
|
||||
(else
|
||||
(format (current-error-port)
|
||||
"Unsupported partition type~%.")))))
|
||||
|
||||
(define* (genimage config target)
|
||||
"Use genimage to generate in TARGET directory, the image described in the
|
||||
given CONFIG file."
|
||||
;; genimage needs a 'root' directory.
|
||||
(mkdir "root")
|
||||
(invoke "genimage" "--config" config
|
||||
"--outputpath" target))
|
||||
|
||||
(define* (register-closure prefix closure
|
||||
#:key
|
||||
(deduplicate? #t) (reset-timestamps? #t)
|
||||
(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.. As a side effect, if RESET-TIMESTAMPS? is
|
||||
true, reset timestamps on store files and, if DEDUPLICATE? is true,
|
||||
deduplicates files common to CLOSURE and the rest of PREFIX."
|
||||
(let ((items (call-with-input-file closure read-reference-graph)))
|
||||
(register-items items
|
||||
#:prefix prefix
|
||||
#:deduplicate? deduplicate?
|
||||
#:reset-timestamps? reset-timestamps?
|
||||
#:registration-time %epoch
|
||||
#:schema schema)))
|
||||
|
||||
(define* (initialize-efi-partition root
|
||||
#:key
|
||||
bootloader-package
|
||||
#:allow-other-keys)
|
||||
"Install in ROOT directory, an EFI loader using BOOTLOADER-PACKAGE."
|
||||
(install-efi-loader bootloader-package root))
|
||||
|
||||
(define* (initialize-root-partition root
|
||||
#:key
|
||||
bootcfg
|
||||
bootcfg-location
|
||||
(deduplicate? #t)
|
||||
references-graphs
|
||||
(register-closures? #t)
|
||||
system-directory
|
||||
#:allow-other-keys)
|
||||
"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
|
||||
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."
|
||||
(populate-root-file-system system-directory root)
|
||||
(populate-store references-graphs root)
|
||||
|
||||
(when register-closures?
|
||||
(for-each (lambda (closure)
|
||||
(register-closure root
|
||||
closure
|
||||
#:reset-timestamps? #t
|
||||
#:deduplicate? deduplicate?))
|
||||
references-graphs))
|
||||
|
||||
(when bootcfg
|
||||
(install-boot-config bootcfg bootcfg-location root)))
|
||||
|
||||
(define* (make-iso9660-image xorriso grub-mkrescue-environment
|
||||
grub bootcfg system-directory root target
|
||||
#:key (volume-id "Guix_image") (volume-uuid #f)
|
||||
register-closures? (references-graphs '())
|
||||
(compression? #t))
|
||||
"Given a GRUB package, creates an iso image as TARGET, using BOOTCFG as
|
||||
GRUB configuration and OS-DRV as the stuff in it."
|
||||
(define grub-mkrescue
|
||||
(string-append grub "/bin/grub-mkrescue"))
|
||||
|
||||
(define grub-mkrescue-sed.sh
|
||||
(string-append (getcwd) "/" "grub-mkrescue-sed.sh"))
|
||||
|
||||
;; Use a modified version of grub-mkrescue-sed.sh, see below.
|
||||
(copy-file (string-append xorriso
|
||||
"/bin/grub-mkrescue-sed.sh")
|
||||
grub-mkrescue-sed.sh)
|
||||
|
||||
;; Force grub-mkrescue-sed.sh to use the build directory instead of /tmp
|
||||
;; that is read-only inside the build container.
|
||||
(substitute* grub-mkrescue-sed.sh
|
||||
(("/tmp/") (string-append (getcwd) "/"))
|
||||
(("MKRESCUE_SED_XORRISO_ARGS \\$x")
|
||||
(format #f "MKRESCUE_SED_XORRISO_ARGS $(echo $x | sed \"s|/tmp|~a|\")"
|
||||
(getcwd))))
|
||||
|
||||
;; 'grub-mkrescue' calls out to mtools programs to create 'efi.img', a FAT
|
||||
;; file system image, and mtools honors SOURCE_DATE_EPOCH for the mtime of
|
||||
;; those files. The epoch for FAT is Jan. 1st 1980, not 1970, so choose
|
||||
;; that.
|
||||
(setenv "SOURCE_DATE_EPOCH"
|
||||
(number->string
|
||||
(time-second
|
||||
(date->time-utc (make-date 0 0 0 0 1 1 1980 0)))))
|
||||
|
||||
;; Our patched 'grub-mkrescue' honors this environment variable and passes
|
||||
;; it to 'mformat', which makes it the serial number of 'efi.img'. This
|
||||
;; allows for deterministic builds.
|
||||
(setenv "GRUB_FAT_SERIAL_NUMBER"
|
||||
(number->string (if volume-uuid
|
||||
|
||||
;; On 32-bit systems the 2nd argument must be
|
||||
;; lower than 2^32.
|
||||
(string-hash (iso9660-uuid->string volume-uuid)
|
||||
(- (expt 2 32) 1))
|
||||
|
||||
#x77777777)
|
||||
16))
|
||||
|
||||
(setenv "MKRESCUE_SED_MODE" "original")
|
||||
(setenv "MKRESCUE_SED_XORRISO" (string-append xorriso "/bin/xorriso"))
|
||||
(setenv "MKRESCUE_SED_IN_EFI_NO_PT" "yes")
|
||||
|
||||
(for-each (match-lambda
|
||||
((name . value) (setenv name value)))
|
||||
grub-mkrescue-environment)
|
||||
|
||||
(apply invoke grub-mkrescue
|
||||
(string-append "--xorriso=" grub-mkrescue-sed.sh)
|
||||
"-o" target
|
||||
(string-append "boot/grub/grub.cfg=" bootcfg)
|
||||
root
|
||||
"--"
|
||||
;; Set all timestamps to 1.
|
||||
"-volume_date" "all_file_dates" "=1"
|
||||
|
||||
`(,@(if compression?
|
||||
'(;; ‘zisofs’ compression reduces the total image size by
|
||||
;; ~60%.
|
||||
"-zisofs" "level=9:block_size=128k" ; highest compression
|
||||
;; It's transparent to our Linux-Libre kernel but not to
|
||||
;; GRUB. Don't compress the kernel, initrd, and other
|
||||
;; files read by grub.cfg, as well as common
|
||||
;; already-compressed file names.
|
||||
"-find" "/" "-type" "f"
|
||||
;; XXX Even after "--" above, and despite documentation
|
||||
;; claiming otherwise, "-or" is stolen by grub-mkrescue
|
||||
;; which then chokes on it (as ‘-o …’) and dies. Don't use
|
||||
;; "-or".
|
||||
"-not" "-wholename" "/boot/*"
|
||||
"-not" "-wholename" "/System/*"
|
||||
"-not" "-name" "unicode.pf2"
|
||||
"-not" "-name" "bzImage"
|
||||
"-not" "-name" "*.gz" ; initrd & all man pages
|
||||
"-not" "-name" "*.png" ; includes grub-image.png
|
||||
"-exec" "set_filter" "--zisofs"
|
||||
"--")
|
||||
'())
|
||||
"-volid" ,(string-upcase volume-id)
|
||||
,@(if volume-uuid
|
||||
`("-volume_date" "uuid"
|
||||
,(string-filter (lambda (value)
|
||||
(not (char=? #\- value)))
|
||||
(iso9660-uuid->string
|
||||
volume-uuid)))
|
||||
'()))))
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -25,7 +25,6 @@
|
||||
#:export (install-boot-config
|
||||
evaluate-populate-directive
|
||||
populate-root-file-system
|
||||
register-closure
|
||||
install-database-and-gc-roots
|
||||
populate-single-profile-directory))
|
||||
|
||||
@ -51,9 +50,14 @@ that the fonts, background images, etc. referred to by BOOTCFG are not GC'd."
|
||||
(copy-file bootcfg pivot)
|
||||
(rename-file pivot target)))
|
||||
|
||||
(define (evaluate-populate-directive directive target)
|
||||
(define* (evaluate-populate-directive directive target
|
||||
#:key
|
||||
(default-gid 0)
|
||||
(default-uid 0))
|
||||
"Evaluate DIRECTIVE, an sexp describing a file or directory to create under
|
||||
directory TARGET."
|
||||
directory TARGET. DEFAULT-UID and DEFAULT-GID are the default UID and GID in
|
||||
the context of the caller. If the directive matches those defaults then,
|
||||
'chown' won't be run."
|
||||
(let loop ((directive directive))
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
@ -63,10 +67,22 @@ directory TARGET."
|
||||
(('directory name uid gid)
|
||||
(let ((dir (string-append target name)))
|
||||
(mkdir-p dir)
|
||||
(chown dir uid gid)))
|
||||
;; If called from a context without "root" permissions, "chown"
|
||||
;; to root will fail. In that case, do not try to run "chown"
|
||||
;; and assume that the file will be chowned elsewhere (when
|
||||
;; interned in the store for instance).
|
||||
(or (and (= uid default-uid) (= gid default-gid))
|
||||
(chown dir uid gid))))
|
||||
(('directory name uid gid mode)
|
||||
(loop `(directory ,name ,uid ,gid))
|
||||
(chmod (string-append target name) mode))
|
||||
(('file name)
|
||||
(call-with-output-file (string-append target name)
|
||||
(const #t)))
|
||||
(('file name (? string? content))
|
||||
(call-with-output-file (string-append target name)
|
||||
(lambda (port)
|
||||
(display content port))))
|
||||
((new '-> old)
|
||||
(let try ()
|
||||
(catch 'system-error
|
||||
@ -91,9 +107,7 @@ directory TARGET."
|
||||
(define (directives store)
|
||||
"Return a list of directives to populate the root file system that will host
|
||||
STORE."
|
||||
`(;; Note: the store's GID is fixed precisely so we can set it here rather
|
||||
;; than at activation time.
|
||||
(directory ,store 0 30000 #o1775)
|
||||
`((directory ,store 0 0 #o1775)
|
||||
|
||||
(directory "/etc")
|
||||
(directory "/var/log") ; for shepherd
|
||||
@ -119,11 +133,14 @@ STORE."
|
||||
|
||||
(directory "/home" 0 0)))
|
||||
|
||||
(define (populate-root-file-system system target)
|
||||
(define* (populate-root-file-system system target
|
||||
#:key (extras '()))
|
||||
"Make the essential non-store files and directories on TARGET. This
|
||||
includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM."
|
||||
includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM.
|
||||
EXTRAS is a list of directives appended to the built-in directives to populate
|
||||
TARGET."
|
||||
(for-each (cut evaluate-populate-directive <> target)
|
||||
(directives (%store-directory)))
|
||||
(append (directives (%store-directory)) extras))
|
||||
|
||||
;; Add system generation 1.
|
||||
(let ((generation-1 (string-append target
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;;
|
||||
@ -40,6 +40,7 @@
|
||||
find-long-option
|
||||
find-long-options
|
||||
make-essential-device-nodes
|
||||
make-hurd-device-nodes
|
||||
make-static-device-nodes
|
||||
configure-qemu-networking
|
||||
|
||||
@ -223,7 +224,7 @@ one specific hardware device. These we have to create."
|
||||
(call-with-input-file devname-name
|
||||
read-static-device-nodes))))
|
||||
|
||||
(define* (make-essential-device-nodes #:key (root "/"))
|
||||
(define* (make-essential-device-nodes #:optional (root "/"))
|
||||
"Make essential device nodes under ROOT/dev."
|
||||
;; The hand-made devtmpfs/udev!
|
||||
|
||||
@ -323,6 +324,36 @@ one specific hardware device. These we have to create."
|
||||
;; File systems in user space (FUSE).
|
||||
(mknod (scope "dev/fuse") 'char-special #o666 (device-number 10 229)))
|
||||
|
||||
(define* (make-hurd-device-nodes #:optional (root "/"))
|
||||
"Make some of the nodes needed on GNU/Hurd."
|
||||
(define (scope dir)
|
||||
(string-append root
|
||||
(if (string-suffix? "/" root)
|
||||
""
|
||||
"/")
|
||||
dir))
|
||||
|
||||
(mkdir (scope "dev"))
|
||||
(for-each (lambda (file)
|
||||
(call-with-output-file (scope file)
|
||||
(lambda (port)
|
||||
(chmod port #o666))))
|
||||
'("dev/null"
|
||||
"dev/zero"
|
||||
"dev/full"
|
||||
"dev/random"
|
||||
"dev/urandom"))
|
||||
;; Don't create /dev/console, /dev/vcs, etc.: they are created by
|
||||
;; console-run on first boot.
|
||||
|
||||
(mkdir (scope "servers"))
|
||||
(mkdir (scope "servers/socket"))
|
||||
;; Don't create /servers/socket/1 & co: runsystem does that on first boot.
|
||||
|
||||
;; TODO: Set the 'gnu.translator' extended attribute for passive translator
|
||||
;; settings?
|
||||
)
|
||||
|
||||
(define %host-qemu-ipv4-address
|
||||
(inet-pton AF_INET "10.0.2.10"))
|
||||
|
||||
@ -534,10 +565,13 @@ upon error."
|
||||
;; The "--root=SPEC" kernel command-line option always provides a
|
||||
;; string, but the string can represent a device, a UUID, or a
|
||||
;; label. So check for all three.
|
||||
(let ((root (cond ((string-prefix? "/" root) root)
|
||||
((uuid root) => identity)
|
||||
(else (file-system-label root)))))
|
||||
(mount-root-file-system (canonicalize-device-spec root)
|
||||
(let ((device-spec (cond ((string-prefix? "/" root) root)
|
||||
((uuid root) => identity)
|
||||
((string-contains root ":/") #f) ; nfs
|
||||
(else (file-system-label root)))))
|
||||
(mount-root-file-system (if device-spec
|
||||
(canonicalize-device-spec device-spec)
|
||||
root)
|
||||
root-fs-type
|
||||
#:volatile-root? volatile-root?
|
||||
#:flags root-fs-flags
|
||||
|
226
gnu/build/vm.scm
226
gnu/build/vm.scm
@ -27,12 +27,14 @@
|
||||
#: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)
|
||||
@ -56,8 +58,7 @@
|
||||
estimated-partition-size
|
||||
root-partition-initializer
|
||||
initialize-partition-table
|
||||
initialize-hard-disk
|
||||
make-iso9660-image))
|
||||
initialize-hard-disk))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
@ -234,6 +235,8 @@ deduplicates files common to CLOSURE and the rest of PREFIX."
|
||||
(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 '()))
|
||||
@ -308,7 +311,7 @@ actual /dev name based on DEVICE."
|
||||
(define MS_BIND 4096) ; <sys/mounts.h> again!
|
||||
|
||||
(define* (create-ext-file-system partition type
|
||||
#:key label uuid)
|
||||
#: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"
|
||||
@ -320,26 +323,29 @@ use that as the volume name. If UUID is true, use it as the partition UUID."
|
||||
'())
|
||||
,@(if uuid
|
||||
`("-U" ,(uuid->string uuid))
|
||||
'()))))
|
||||
'())
|
||||
,@options)))
|
||||
|
||||
(define* (create-fat-file-system partition
|
||||
#:key label uuid)
|
||||
#: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
|
||||
(if label `("-n" ,label) '())))
|
||||
(append (if label `("-n" ,label) '()) options)))
|
||||
|
||||
(define* (format-partition partition type
|
||||
#:key label uuid)
|
||||
#:key label uuid (options '()))
|
||||
"Create a file system TYPE on PARTITION. If LABEL is true, use that as the
|
||||
volume name."
|
||||
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))
|
||||
(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))
|
||||
(create-fat-file-system partition #:label label #:uuid uuid
|
||||
#:options options))
|
||||
(else (error "Unsupported file system."))))
|
||||
|
||||
(define (initialize-partition partition)
|
||||
@ -349,7 +355,8 @@ it, run its initializer, and unmount it."
|
||||
(format-partition (partition-device partition)
|
||||
(partition-file-system partition)
|
||||
#:label (partition-label partition)
|
||||
#:uuid (partition-uuid partition))
|
||||
#:uuid (partition-uuid partition)
|
||||
#:options (partition-file-system-options partition))
|
||||
(mkdir-p target)
|
||||
(mount (partition-device partition) target
|
||||
(partition-file-system partition))
|
||||
@ -363,14 +370,20 @@ it, run its initializer, and unmount it."
|
||||
copy-closures?
|
||||
(register-closures? #t)
|
||||
system-directory
|
||||
(deduplicate? #t))
|
||||
(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."
|
||||
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)))
|
||||
@ -381,7 +394,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
|
||||
target))
|
||||
|
||||
;; Populate /dev.
|
||||
(make-essential-device-nodes #:root target)
|
||||
(make-device-nodes target)
|
||||
|
||||
;; Optionally, register the inputs in the image's store.
|
||||
(when register-closures?
|
||||
@ -403,12 +416,22 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
|
||||
|
||||
;; Add the non-store directories and files.
|
||||
(display "populating...\n")
|
||||
(populate-root-file-system system-directory target)
|
||||
(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 target))))
|
||||
;; '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."
|
||||
@ -416,159 +439,6 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
|
||||
(mkdir-p directory)
|
||||
(symlink bootcfg (string-append directory "/bootcfg"))))
|
||||
|
||||
(define (install-efi grub esp config-file)
|
||||
"Write a self-contained GRUB EFI loader to the mounted ESP using CONFIG-FILE."
|
||||
(let* ((system %host-type)
|
||||
;; Hard code the output location to a well-known path recognized by
|
||||
;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour":
|
||||
;; http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf
|
||||
(grub-mkstandalone (string-append grub "/bin/grub-mkstandalone"))
|
||||
(efi-directory (string-append esp "/EFI/BOOT"))
|
||||
;; Map grub target names to boot file names.
|
||||
(efi-targets (cond ((string-prefix? "x86_64" system)
|
||||
'("x86_64-efi" . "BOOTX64.EFI"))
|
||||
((string-prefix? "i686" system)
|
||||
'("i386-efi" . "BOOTIA32.EFI"))
|
||||
((string-prefix? "armhf" system)
|
||||
'("arm-efi" . "BOOTARM.EFI"))
|
||||
((string-prefix? "aarch64" system)
|
||||
'("arm64-efi" . "BOOTAA64.EFI")))))
|
||||
;; grub-mkstandalone requires a TMPDIR to prepare the firmware image.
|
||||
(setenv "TMPDIR" esp)
|
||||
|
||||
(mkdir-p efi-directory)
|
||||
(invoke grub-mkstandalone "-O" (car efi-targets)
|
||||
"-o" (string-append efi-directory "/"
|
||||
(cdr efi-targets))
|
||||
;; Graft the configuration file onto the image.
|
||||
(string-append "boot/grub/grub.cfg=" config-file))))
|
||||
|
||||
(define* (make-iso9660-image xorriso grub-mkrescue-environment
|
||||
grub config-file os-drv target
|
||||
#:key (volume-id "Guix_image") (volume-uuid #f)
|
||||
register-closures? (closures '()))
|
||||
"Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as
|
||||
GRUB configuration and OS-DRV as the stuff in it."
|
||||
(define grub-mkrescue
|
||||
(string-append grub "/bin/grub-mkrescue"))
|
||||
|
||||
(define grub-mkrescue-sed.sh
|
||||
(string-append xorriso "/bin/grub-mkrescue-sed.sh"))
|
||||
|
||||
(define target-store
|
||||
(string-append "/tmp/root" (%store-directory)))
|
||||
|
||||
(define items
|
||||
;; The store items to add to the image.
|
||||
(delete-duplicates
|
||||
(append-map (lambda (closure)
|
||||
(map store-info-item
|
||||
(call-with-input-file (string-append "/xchg/" closure)
|
||||
read-reference-graph)))
|
||||
closures)))
|
||||
|
||||
(populate-root-file-system os-drv "/tmp/root")
|
||||
(mount (%store-directory) target-store "" MS_BIND)
|
||||
|
||||
(when register-closures?
|
||||
(display "registering closures...\n")
|
||||
(for-each (lambda (closure)
|
||||
(register-closure
|
||||
"/tmp/root"
|
||||
(string-append "/xchg/" closure)
|
||||
|
||||
;; TARGET-STORE is a read-only bind-mount so we shouldn't try
|
||||
;; to modify it.
|
||||
#:deduplicate? #f
|
||||
#:reset-timestamps? #f))
|
||||
closures)
|
||||
(register-bootcfg-root "/tmp/root" config-file))
|
||||
|
||||
;; 'grub-mkrescue' calls out to mtools programs to create 'efi.img', a FAT
|
||||
;; file system image, and mtools honors SOURCE_DATE_EPOCH for the mtime of
|
||||
;; those files. The epoch for FAT is Jan. 1st 1980, not 1970, so choose
|
||||
;; that.
|
||||
(setenv "SOURCE_DATE_EPOCH"
|
||||
(number->string
|
||||
(time-second
|
||||
(date->time-utc (make-date 0 0 0 0 1 1 1980 0)))))
|
||||
|
||||
;; Our patched 'grub-mkrescue' honors this environment variable and passes
|
||||
;; it to 'mformat', which makes it the serial number of 'efi.img'. This
|
||||
;; allows for deterministic builds.
|
||||
(setenv "GRUB_FAT_SERIAL_NUMBER"
|
||||
(number->string (if volume-uuid
|
||||
|
||||
;; On 32-bit systems the 2nd argument must be
|
||||
;; lower than 2^32.
|
||||
(string-hash (iso9660-uuid->string volume-uuid)
|
||||
(- (expt 2 32) 1))
|
||||
|
||||
#x77777777)
|
||||
16))
|
||||
|
||||
(setenv "MKRESCUE_SED_MODE" "original")
|
||||
(setenv "MKRESCUE_SED_XORRISO" (string-append xorriso
|
||||
"/bin/xorriso"))
|
||||
(setenv "MKRESCUE_SED_IN_EFI_NO_PT" "yes")
|
||||
(for-each (match-lambda
|
||||
((name . value) (setenv name value)))
|
||||
grub-mkrescue-environment)
|
||||
|
||||
(let ((pipe
|
||||
(apply open-pipe* OPEN_WRITE
|
||||
grub-mkrescue
|
||||
(string-append "--xorriso=" grub-mkrescue-sed.sh)
|
||||
"-o" target
|
||||
(string-append "boot/grub/grub.cfg=" config-file)
|
||||
"etc=/tmp/root/etc"
|
||||
"var=/tmp/root/var"
|
||||
"run=/tmp/root/run"
|
||||
;; /mnt is used as part of the installation
|
||||
;; process, as the mount point for the target
|
||||
;; file system, so create it.
|
||||
"mnt=/tmp/root/mnt"
|
||||
"-path-list" "-"
|
||||
"--"
|
||||
|
||||
;; Set all timestamps to 1.
|
||||
"-volume_date" "all_file_dates" "=1"
|
||||
|
||||
;; ‘zisofs’ compression reduces the total image size by ~60%.
|
||||
"-zisofs" "level=9:block_size=128k" ; highest compression
|
||||
;; It's transparent to our Linux-Libre kernel but not to GRUB.
|
||||
;; Don't compress the kernel, initrd, and other files read by
|
||||
;; grub.cfg, as well as common already-compressed file names.
|
||||
"-find" "/" "-type" "f"
|
||||
;; XXX Even after "--" above, and despite documentation claiming
|
||||
;; otherwise, "-or" is stolen by grub-mkrescue which then chokes
|
||||
;; on it (as ‘-o …’) and dies. Don't use "-or".
|
||||
"-not" "-wholename" "/boot/*"
|
||||
"-not" "-wholename" "/System/*"
|
||||
"-not" "-name" "unicode.pf2"
|
||||
"-not" "-name" "bzImage"
|
||||
"-not" "-name" "*.gz" ; initrd & all man pages
|
||||
"-not" "-name" "*.png" ; includes grub-image.png
|
||||
"-exec" "set_filter" "--zisofs"
|
||||
"--"
|
||||
|
||||
"-volid" (string-upcase volume-id)
|
||||
(if volume-uuid
|
||||
`("-volume_date" "uuid"
|
||||
,(string-filter (lambda (value)
|
||||
(not (char=? #\- value)))
|
||||
(iso9660-uuid->string
|
||||
volume-uuid)))
|
||||
`()))))
|
||||
;; Pass lines like 'gnu/store/…-x=/gnu/store/…-x' corresponding to the
|
||||
;; '-path-list -' option.
|
||||
(for-each (lambda (item)
|
||||
(format pipe "~a=~a~%"
|
||||
(string-drop item 1) item))
|
||||
items)
|
||||
(unless (zero? (close-pipe pipe))
|
||||
(error "oh, my! grub-mkrescue failed" grub-mkrescue))))
|
||||
|
||||
(define* (initialize-hard-disk device
|
||||
#:key
|
||||
bootloader-package
|
||||
@ -610,30 +480,16 @@ passing it a directory name where it is mounted."
|
||||
|
||||
(when esp
|
||||
;; Mount the ESP somewhere and install GRUB UEFI image.
|
||||
(let ((mount-point (string-append target "/boot/efi"))
|
||||
(grub-config (string-append target "/tmp/grub-standalone.cfg")))
|
||||
(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))
|
||||
|
||||
;; Create a tiny configuration file telling the embedded grub
|
||||
;; where to load the real thing.
|
||||
;; XXX This is quite fragile, and can prevent the image from booting
|
||||
;; when there's more than one volume with this label present.
|
||||
;; Reproducible almost-UUIDs could reduce the risk (not eliminate it).
|
||||
(call-with-output-file grub-config
|
||||
(lambda (port)
|
||||
(format port
|
||||
"insmod part_msdos~@
|
||||
search --set=root --label Guix_image~@
|
||||
configfile /boot/grub/grub.cfg~%")))
|
||||
|
||||
(display "creating EFI firmware image...")
|
||||
(install-efi grub-efi mount-point grub-config)
|
||||
(install-efi-loader grub-efi mount-point)
|
||||
(display "done.\n")
|
||||
|
||||
(delete-file grub-config)
|
||||
(umount mount-point)))
|
||||
|
||||
;; Register BOOTCFG as a GC root.
|
||||
|
55
gnu/ci.scm
55
gnu/ci.scm
@ -38,6 +38,7 @@
|
||||
#:select (lookup-compressor self-contained-tarball))
|
||||
#:use-module (gnu bootloader)
|
||||
#:use-module (gnu bootloader u-boot)
|
||||
#:use-module (gnu image)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages base)
|
||||
@ -49,6 +50,7 @@
|
||||
#:use-module (gnu packages make-bootstrap)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system image)
|
||||
#:use-module (gnu system vm)
|
||||
#:use-module (gnu system install)
|
||||
#:use-module (gnu tests)
|
||||
@ -123,8 +125,12 @@ SYSTEM."
|
||||
%guile-bootstrap-tarball
|
||||
%bootstrap-tarballs))
|
||||
|
||||
(define %packages-to-cross-build
|
||||
%core-packages)
|
||||
(define (packages-to-cross-build target)
|
||||
"Return the list of packages to cross-build for TARGET."
|
||||
;; Don't cross-build the bootstrap tarballs for MinGW.
|
||||
(if (string-contains target "mingw")
|
||||
(drop-right %core-packages 6)
|
||||
%core-packages))
|
||||
|
||||
(define %cross-targets
|
||||
'("mips64el-linux-gnu"
|
||||
@ -175,7 +181,7 @@ SYSTEM."
|
||||
(map (lambda (package)
|
||||
(package-cross-job store (job-name package)
|
||||
package target system))
|
||||
%packages-to-cross-build))
|
||||
(packages-to-cross-build target)))
|
||||
(remove (either from-32-to-64? same? pointless?)
|
||||
%cross-targets)))
|
||||
|
||||
@ -209,32 +215,23 @@ system.")
|
||||
(expt 2 20))
|
||||
|
||||
(if (member system %guixsd-supported-systems)
|
||||
(if (member system %u-boot-systems)
|
||||
(list (->job 'flash-image
|
||||
(run-with-store store
|
||||
(mbegin %store-monad
|
||||
(set-guile-for-build (default-guile))
|
||||
(system-disk-image
|
||||
(operating-system (inherit installation-os)
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader u-boot-bootloader)
|
||||
(target #f))))
|
||||
#:disk-image-size
|
||||
(* 1500 MiB))))))
|
||||
(list (->job 'usb-image
|
||||
(run-with-store store
|
||||
(mbegin %store-monad
|
||||
(set-guile-for-build (default-guile))
|
||||
(system-disk-image installation-os
|
||||
#:disk-image-size
|
||||
(* 1500 MiB)))))
|
||||
(->job 'iso9660-image
|
||||
(run-with-store store
|
||||
(mbegin %store-monad
|
||||
(set-guile-for-build (default-guile))
|
||||
(system-disk-image installation-os
|
||||
#:file-system-type
|
||||
"iso9660"))))))
|
||||
(list (->job 'usb-image
|
||||
(run-with-store store
|
||||
(mbegin %store-monad
|
||||
(set-guile-for-build (default-guile))
|
||||
(system-image
|
||||
(image
|
||||
(inherit efi-disk-image)
|
||||
(size (* 1500 MiB))
|
||||
(operating-system installation-os))))))
|
||||
(->job 'iso9660-image
|
||||
(run-with-store store
|
||||
(mbegin %store-monad
|
||||
(set-guile-for-build (default-guile))
|
||||
(system-image
|
||||
(image
|
||||
(inherit iso9660-image)
|
||||
(operating-system installation-os)))))))
|
||||
'()))
|
||||
|
||||
(define channel-build-system
|
||||
|
76
gnu/image.scm
Normal file
76
gnu/image.scm
Normal file
@ -0,0 +1,76 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu image)
|
||||
#:use-module (guix records)
|
||||
#:export (partition
|
||||
partition?
|
||||
partition-device
|
||||
partition-size
|
||||
partition-file-system
|
||||
partition-label
|
||||
partition-uuid
|
||||
partition-flags
|
||||
partition-initializer
|
||||
|
||||
image
|
||||
image-name
|
||||
image-format
|
||||
image-size
|
||||
image-operating-system
|
||||
image-partitions
|
||||
image-compression?
|
||||
image-volatile-root?
|
||||
image-substitutable?))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Partition record.
|
||||
;;;
|
||||
|
||||
(define-record-type* <partition> partition make-partition
|
||||
partition?
|
||||
(device partition-device (default #f))
|
||||
(size partition-size)
|
||||
(file-system partition-file-system (default "ext4"))
|
||||
(label partition-label (default #f))
|
||||
(uuid partition-uuid (default #f))
|
||||
(flags partition-flags (default '()))
|
||||
(initializer partition-initializer (default #f)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Image record.
|
||||
;;;
|
||||
|
||||
(define-record-type* <image>
|
||||
image make-image
|
||||
image?
|
||||
(format image-format) ;symbol
|
||||
(size image-size ;size in bytes as integer
|
||||
(default 'guess))
|
||||
(operating-system image-operating-system ;<operating-system>
|
||||
(default #f))
|
||||
(partitions image-partitions ;list of <partition>
|
||||
(default '()))
|
||||
(compression? image-compression? ;boolean
|
||||
(default #t))
|
||||
(volatile-root? image-volatile-root? ;boolean
|
||||
(default #t))
|
||||
(substitutable? image-substitutable? ;boolean
|
||||
(default #t)))
|
@ -313,18 +313,18 @@ selected keymap."
|
||||
(define set-installer-path
|
||||
;; Add the specified binary to PATH for later use by the installer.
|
||||
#~(let* ((inputs
|
||||
'#$(append (list bash ;start subshells
|
||||
connman ;call connmanctl
|
||||
cryptsetup
|
||||
dosfstools ;mkfs.fat
|
||||
e2fsprogs ;mkfs.ext4
|
||||
btrfs-progs ;mkfs.btrfs
|
||||
jfsutils ;jfs_mkfs
|
||||
kbd ;chvt
|
||||
guix ;guix system init call
|
||||
util-linux ;mkwap
|
||||
shadow)
|
||||
(map canonical-package (list coreutils)))))
|
||||
'#$(list bash ;start subshells
|
||||
connman ;call connmanctl
|
||||
cryptsetup
|
||||
dosfstools ;mkfs.fat
|
||||
e2fsprogs ;mkfs.ext4
|
||||
btrfs-progs
|
||||
jfsutils ;jfs_mkfs
|
||||
kbd ;chvt
|
||||
guix ;guix system init call
|
||||
util-linux ;mkwap
|
||||
shadow
|
||||
coreutils)))
|
||||
(with-output-to-port (%make-void-port "w")
|
||||
(lambda ()
|
||||
(set-path-environment-variable "PATH" '("bin" "sbin") inputs)))))
|
||||
|
158
gnu/local.mk
158
gnu/local.mk
@ -2,7 +2,7 @@
|
||||
# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
|
||||
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
|
||||
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
|
||||
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
# Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||
# Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org>
|
||||
@ -11,17 +11,17 @@
|
||||
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
# Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
|
||||
# Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
# Copyright © 2016, 2017, 2018, 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2016, 2017, 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
|
||||
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
# Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
# Copyright © 2017, 2018, 2019 Gábor Boskovits <boskovits@gmail.com>
|
||||
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
|
||||
# Copyright © 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
|
||||
# Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
# Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
# Copyright © 2019 John Soo <jsoo1@asu.edu>
|
||||
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
|
||||
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
|
||||
# Copyright © 2019 Brett Gilio <brettg@gnu.org>
|
||||
@ -33,6 +33,8 @@
|
||||
# Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||
# Copyright © 2020 Felix Gruber <felgru@posteo.net>
|
||||
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
|
||||
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
|
||||
# Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
@ -61,6 +63,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/bootloader/u-boot.scm \
|
||||
%D%/bootloader/depthcharge.scm \
|
||||
%D%/ci.scm \
|
||||
%D%/image.scm \
|
||||
%D%/packages.scm \
|
||||
%D%/packages/abduco.scm \
|
||||
%D%/packages/abiword.scm \
|
||||
@ -259,6 +262,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/haskell-crypto.scm \
|
||||
%D%/packages/haskell-web.scm \
|
||||
%D%/packages/haskell-xyz.scm \
|
||||
%D%/packages/heads.scm \
|
||||
%D%/packages/hexedit.scm \
|
||||
%D%/packages/hugs.scm \
|
||||
%D%/packages/hurd.scm \
|
||||
@ -278,6 +282,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/ipfs.scm \
|
||||
%D%/packages/irc.scm \
|
||||
%D%/packages/iso-codes.scm \
|
||||
%D%/packages/jami.scm \
|
||||
%D%/packages/java.scm \
|
||||
%D%/packages/java-compression.scm \
|
||||
%D%/packages/java-graphics.scm \
|
||||
@ -287,6 +292,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/jrnl.scm \
|
||||
%D%/packages/jose.scm \
|
||||
%D%/packages/julia.scm \
|
||||
%D%/packages/julia-xyz.scm \
|
||||
%D%/packages/jupyter.scm \
|
||||
%D%/packages/kawa.scm \
|
||||
%D%/packages/kde.scm \
|
||||
@ -426,6 +432,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/pretty-print.scm \
|
||||
%D%/packages/protobuf.scm \
|
||||
%D%/packages/pure.scm \
|
||||
%D%/packages/purescript.scm \
|
||||
%D%/packages/pv.scm \
|
||||
%D%/packages/python.scm \
|
||||
%D%/packages/python-check.scm \
|
||||
@ -469,6 +476,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/search.scm \
|
||||
%D%/packages/security-token.scm \
|
||||
%D%/packages/selinux.scm \
|
||||
%D%/packages/sequoia.scm \
|
||||
%D%/packages/serialization.scm \
|
||||
%D%/packages/serveez.scm \
|
||||
%D%/packages/shells.scm \
|
||||
@ -602,6 +610,8 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/system.scm \
|
||||
%D%/system/accounts.scm \
|
||||
%D%/system/file-systems.scm \
|
||||
%D%/system/hurd.scm \
|
||||
%D%/system/image.scm \
|
||||
%D%/system/install.scm \
|
||||
%D%/system/keyboard.scm \
|
||||
%D%/system/linux-container.scm \
|
||||
@ -622,6 +632,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/build/activation.scm \
|
||||
%D%/build/bootloader.scm \
|
||||
%D%/build/cross-toolchain.scm \
|
||||
%D%/build/image.scm \
|
||||
%D%/build/file-systems.scm \
|
||||
%D%/build/install.scm \
|
||||
%D%/build/linux-boot.scm \
|
||||
@ -718,6 +729,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/a2ps-CVE-2014-0466.patch \
|
||||
%D%/packages/patches/a2ps-CVE-2015-8107.patch \
|
||||
%D%/packages/patches/abcl-fix-build-xml.patch \
|
||||
%D%/packages/patches/ableton-link-system-libraries-debian.patch \
|
||||
%D%/packages/patches/abiword-explictly-cast-bools.patch \
|
||||
%D%/packages/patches/adb-add-libraries.patch \
|
||||
%D%/packages/patches/aegis-constness-error.patch \
|
||||
@ -726,7 +738,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/aegis-test-fixup-1.patch \
|
||||
%D%/packages/patches/aegis-test-fixup-2.patch \
|
||||
%D%/packages/patches/aegisub-icu59-include-unistr.patch \
|
||||
%D%/packages/patches/aegisub-boost68.patch \
|
||||
%D%/packages/patches/aegisub-boost68.patch \
|
||||
%D%/packages/patches/aegisub-make43.patch \
|
||||
%D%/packages/patches/agg-am_c_prototype.patch \
|
||||
%D%/packages/patches/akonadi-paths.patch \
|
||||
%D%/packages/patches/akonadi-not-relocatable.patch \
|
||||
@ -739,7 +752,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch \
|
||||
%D%/packages/patches/apr-skip-getservbyname-test.patch \
|
||||
%D%/packages/patches/aspell-default-dict-dir.patch \
|
||||
%D%/packages/patches/aspell-gcc-compat.patch \
|
||||
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
|
||||
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
|
||||
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
|
||||
@ -758,7 +770,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/audiofile-hurd.patch \
|
||||
%D%/packages/patches/audiofile-signature-of-multiplyCheckOverflow.patch \
|
||||
%D%/packages/patches/automake-skip-amhello-tests.patch \
|
||||
%D%/packages/patches/avahi-CVE-2018-1000845.patch \
|
||||
%D%/packages/patches/avahi-localstatedir.patch \
|
||||
%D%/packages/patches/avogadro-boost148.patch \
|
||||
%D%/packages/patches/avogadro-eigen3-update.patch \
|
||||
@ -768,10 +779,13 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/azr3.patch \
|
||||
%D%/packages/patches/bash-reproducible-linux-pgrp-pipe.patch \
|
||||
%D%/packages/patches/bash-completion-directories.patch \
|
||||
%D%/packages/patches/bash-linux-pgrp-pipe.patch \
|
||||
%D%/packages/patches/bastet-change-source-of-unordered_set.patch \
|
||||
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
|
||||
%D%/packages/patches/bc-fix-cross-compilation.patch \
|
||||
%D%/packages/patches/beancount-disable-googleapis-fonts.patch \
|
||||
%D%/packages/patches/beets-werkzeug-compat.patch \
|
||||
%D%/packages/patches/behave-skip-a-couple-of-tests.patch \
|
||||
%D%/packages/patches/beignet-correct-file-names.patch \
|
||||
%D%/packages/patches/benchmark-unbundle-googletest.patch \
|
||||
%D%/packages/patches/biber-fix-encoding-write.patch \
|
||||
@ -781,6 +795,7 @@ 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/bitcoin-core-python-compat.patch \
|
||||
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
|
||||
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
|
||||
%D%/packages/patches/byobu-writable-status.patch \
|
||||
@ -807,6 +822,9 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/clang-10.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 \
|
||||
%D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch \
|
||||
%D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch \
|
||||
%D%/packages/patches/classpath-aarch64-support.patch \
|
||||
%D%/packages/patches/clementine-fix-sqlite.patch \
|
||||
%D%/packages/patches/clementine-remove-crypto++-dependency.patch \
|
||||
@ -815,22 +833,28 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/clucene-pkgconfig.patch \
|
||||
%D%/packages/patches/cmake-curl-certificates.patch \
|
||||
%D%/packages/patches/coda-use-system-libs.patch \
|
||||
%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/containerd-test-with-go1.13.patch \
|
||||
%D%/packages/patches/coreutils-ls.patch \
|
||||
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \
|
||||
%D%/packages/patches/crawl-upgrade-saves.patch \
|
||||
%D%/packages/patches/crda-optional-gcrypt.patch \
|
||||
%D%/packages/patches/clucene-contribs-lib.patch \
|
||||
%D%/packages/patches/cube-nocheck.patch \
|
||||
%D%/packages/patches/curl-use-ssl-cert-env.patch \
|
||||
%D%/packages/patches/cursynth-wave-rand.patch \
|
||||
%D%/packages/patches/cvs-CVE-2017-12836.patch \
|
||||
%D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch \
|
||||
%D%/packages/patches/date-output-pkg-config-files.patch \
|
||||
%D%/packages/patches/darkice-workaround-fpermissive-error.patch \
|
||||
%D%/packages/patches/datefudge-gettimeofday.patch \
|
||||
%D%/packages/patches/dbacl-include-locale.h.patch \
|
||||
%D%/packages/patches/dbus-helper-search-path.patch \
|
||||
%D%/packages/patches/dbus-c++-gcc-compat.patch \
|
||||
%D%/packages/patches/dbus-c++-threading-mutex.patch \
|
||||
%D%/packages/patches/dconf-meson-0.52.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/deja-dup-use-ref-keyword-for-iter.patch \
|
||||
@ -845,6 +869,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/docker-fix-tests.patch \
|
||||
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
|
||||
%D%/packages/patches/doxygen-test.patch \
|
||||
%D%/packages/patches/doxygen-1.8.17-runtests.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 \
|
||||
@ -876,6 +901,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/evolution-data-server-libical-compat.patch \
|
||||
%D%/packages/patches/exiv2-CVE-2017-14860.patch \
|
||||
%D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \
|
||||
%D%/packages/patches/extempore-unbundle-external-dependencies.patch \
|
||||
%D%/packages/patches/extundelete-e2fsprogs-1.44.patch \
|
||||
%D%/packages/patches/fastcap-mulGlobal.patch \
|
||||
%D%/packages/patches/fastcap-mulSetup.patch \
|
||||
@ -886,19 +912,17 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/fasthenry-spFactor.patch \
|
||||
%D%/packages/patches/fbreader-curl-7.62.patch \
|
||||
%D%/packages/patches/ffmpeg-prefer-dav1d.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 \
|
||||
%D%/packages/patches/file-CVE-2018-10360.patch \
|
||||
%D%/packages/patches/findutils-gnulib-libio.patch \
|
||||
%D%/packages/patches/findutils-localstatedir.patch \
|
||||
%D%/packages/patches/findutils-makedev.patch \
|
||||
%D%/packages/patches/findutils-test-xargs.patch \
|
||||
%D%/packages/patches/findutils-test-rwlock-threads.patch \
|
||||
%D%/packages/patches/flann-cmake-3.11.patch \
|
||||
%D%/packages/patches/flint-ldconfig.patch \
|
||||
%D%/packages/patches/foobillard++-pkg-config.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
|
||||
%D%/packages/patches/fribidi-CVE-2019-18397.patch \
|
||||
%D%/packages/patches/fontconfig-hurd-path-max.patch \
|
||||
%D%/packages/patches/freeimage-unbundle.patch \
|
||||
%D%/packages/patches/fuse-overlapping-headers.patch \
|
||||
%D%/packages/patches/gawk-shell.patch \
|
||||
@ -906,18 +930,22 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
|
||||
%D%/packages/patches/gcc-asan-missing-include.patch \
|
||||
%D%/packages/patches/gcc-boot-2.95.3.patch \
|
||||
%D%/packages/patches/gcc-boot-4.7.4.patch \
|
||||
%D%/packages/patches/gcc-boot-4.6.4.patch \
|
||||
%D%/packages/patches/gcc-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-fix-texi2pod.patch \
|
||||
%D%/packages/patches/gcc-4.8-libsanitizer-fix.patch \
|
||||
%D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \
|
||||
%D%/packages/patches/gcc-4.9-libsanitizer-ustat.patch \
|
||||
%D%/packages/patches/gcc-libsanitizer-ustat.patch \
|
||||
%D%/packages/patches/gcc-4.9-libsanitizer-mode-size.patch \
|
||||
%D%/packages/patches/gcc-6-libsanitizer-mode-size.patch \
|
||||
%D%/packages/patches/gcc-7-libsanitizer-mode-size.patch \
|
||||
%D%/packages/patches/gcc-libvtv-runpath.patch \
|
||||
%D%/packages/patches/gcc-strmov-store-file-names.patch \
|
||||
%D%/packages/patches/gcc-4-compile-with-gcc-5.patch \
|
||||
%D%/packages/patches/gcc-4.6-gnu-inline.patch \
|
||||
%D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch \
|
||||
%D%/packages/patches/gcc-5-hurd.patch \
|
||||
%D%/packages/patches/gcc-5.0-libvtv-runpath.patch \
|
||||
%D%/packages/patches/gcc-5-source-date-epoch-1.patch \
|
||||
%D%/packages/patches/gcc-5-source-date-epoch-2.patch \
|
||||
@ -927,21 +955,18 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gcc-6-source-date-epoch-2.patch \
|
||||
%D%/packages/patches/gcc-7-cross-mingw.patch \
|
||||
%D%/packages/patches/gcc-7-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-7-cross-toolexeclibdir.patch \
|
||||
%D%/packages/patches/gcc-8-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-8-strmov-store-file-names.patch \
|
||||
%D%/packages/patches/gcc-9-asan-fix-limits-include.patch \
|
||||
%D%/packages/patches/gcc-9-strmov-store-file-names.patch \
|
||||
%D%/packages/patches/gd-CVE-2018-5711.patch \
|
||||
%D%/packages/patches/gd-CVE-2018-1000222.patch \
|
||||
%D%/packages/patches/gd-CVE-2019-6977.patch \
|
||||
%D%/packages/patches/gd-CVE-2019-6978.patch \
|
||||
%D%/packages/patches/gd-fix-tests-on-i686.patch \
|
||||
%D%/packages/patches/gd-freetype-test-failure.patch \
|
||||
%D%/packages/patches/gd-brect-bounds.patch \
|
||||
%D%/packages/patches/gdm-default-session.patch \
|
||||
%D%/packages/patches/geoclue-config.patch \
|
||||
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
|
||||
%D%/packages/patches/ghc-diff-swap-cover-args.patch \
|
||||
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
|
||||
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
|
||||
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
|
||||
%D%/packages/patches/ghc-diff-swap-cover-args.patch \
|
||||
%D%/packages/patches/ghc-haddock-api-fix-haddock.patch \
|
||||
%D%/packages/patches/ghc-hpack-fix-tests.patch \
|
||||
%D%/packages/patches/ghc-microlens-aeson-fix-tests.patch \
|
||||
@ -951,7 +976,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ghostscript-no-header-id.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-uuid.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
|
||||
%D%/packages/patches/giflib-make-reallocarray-private.patch \
|
||||
%D%/packages/patches/git-annex-S3v4.patch \
|
||||
%D%/packages/patches/glib-tests-timer.patch \
|
||||
%D%/packages/patches/glibc-CVE-2015-5180.patch \
|
||||
%D%/packages/patches/glibc-CVE-2015-7547.patch \
|
||||
@ -965,13 +990,20 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/glibc-CVE-2018-11237.patch \
|
||||
%D%/packages/patches/glibc-CVE-2019-7309.patch \
|
||||
%D%/packages/patches/glibc-CVE-2019-9169.patch \
|
||||
%D%/packages/patches/glibc-CVE-2019-19126.patch \
|
||||
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
|
||||
%D%/packages/patches/glibc-boot-2.16.0.patch \
|
||||
%D%/packages/patches/glibc-boot-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system-2.16.0.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system.patch \
|
||||
%D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \
|
||||
%D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \
|
||||
%D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \
|
||||
%D%/packages/patches/glibc-hurd-gettyent.patch \
|
||||
%D%/packages/patches/glibc-hurd-mach-print.patch \
|
||||
%D%/packages/patches/glibc-hurd-magic-pid.patch \
|
||||
%D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch \
|
||||
%D%/packages/patches/glibc-ldd-x86_64.patch \
|
||||
%D%/packages/patches/glibc-locales.patch \
|
||||
%D%/packages/patches/glibc-locales-2.28.patch \
|
||||
@ -984,14 +1016,17 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/glibc-2.29-git-updates.patch \
|
||||
%D%/packages/patches/glibc-2.27-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-2.28-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-2.29-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-supported-locales.patch \
|
||||
%D%/packages/patches/glm-restore-install-target.patch \
|
||||
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
|
||||
%D%/packages/patches/gmp-faulty-test.patch \
|
||||
%D%/packages/patches/gnome-shell-theme.patch \
|
||||
%D%/packages/patches/gnome-shell-disable-test.patch \
|
||||
%D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
|
||||
%D%/packages/patches/gnome-tweaks-search-paths.patch \
|
||||
%D%/packages/patches/gnupg-default-pinentry.patch \
|
||||
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
|
||||
%D%/packages/patches/gnutls-cross.patch \
|
||||
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
|
||||
%D%/packages/patches/gobject-introspection-cc.patch \
|
||||
%D%/packages/patches/gobject-introspection-girepository.patch \
|
||||
@ -1001,20 +1036,25 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gpsbabel-qstring.patch \
|
||||
%D%/packages/patches/grantlee-merge-theme-dirs.patch \
|
||||
%D%/packages/patches/grep-timing-sensitive-test.patch \
|
||||
%D%/packages/patches/grocsvs-dont-use-admiral.patch \
|
||||
%D%/packages/patches/gromacs-tinyxml2.patch \
|
||||
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
|
||||
%D%/packages/patches/grub-efi-fat-serial-number.patch \
|
||||
%D%/packages/patches/gsl-test-i686.patch \
|
||||
%D%/packages/patches/grub-verifiers-Blocklist-fallout-cleanup.patch \
|
||||
%D%/packages/patches/gspell-dash-test.patch \
|
||||
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
|
||||
%D%/packages/patches/guile-2.2-default-utf8.patch \
|
||||
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
|
||||
%D%/packages/patches/guile-default-utf8.patch \
|
||||
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
|
||||
%D%/packages/patches/guile-linux-syscalls.patch \
|
||||
%D%/packages/patches/guile-present-coding.patch \
|
||||
%D%/packages/patches/guile-2.2-default-utf8.patch \
|
||||
%D%/packages/patches/guile-relocatable.patch \
|
||||
%D%/packages/patches/guile-3.0-relocatable.patch \
|
||||
%D%/packages/patches/guile-linux-syscalls.patch \
|
||||
%D%/packages/patches/guile-3.0-linux-syscalls.patch \
|
||||
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
|
||||
%D%/packages/patches/guile-present-coding.patch \
|
||||
%D%/packages/patches/guile-rsvg-pkgconfig.patch \
|
||||
%D%/packages/patches/guile-emacs-fix-configure.patch \
|
||||
%D%/packages/patches/guile-sqlite3-fix-cross-compilation.patch \
|
||||
%D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \
|
||||
%D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
|
||||
%D%/packages/patches/gtk2-theme-paths.patch \
|
||||
@ -1040,11 +1080,12 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/hdf-eos5-fix-szip.patch \
|
||||
%D%/packages/patches/hdf-eos5-fortrantests.patch \
|
||||
%D%/packages/patches/hubbub-sort-entities.patch \
|
||||
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
|
||||
%D%/packages/patches/hurd-cross.patch \
|
||||
%D%/packages/patches/hplip-remove-imageprocessor.patch \
|
||||
%D%/packages/patches/hydra-disable-darcs-test.patch \
|
||||
%D%/packages/patches/icecat-makeicecat.patch \
|
||||
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
|
||||
%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-hotspot-gcc-segfault-workaround.patch \
|
||||
@ -1053,7 +1094,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
||||
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
|
||||
%D%/packages/patches/ilmbase-fix-tests.patch \
|
||||
%D%/packages/patches/ilmbase-openexr-pkg-config.patch \
|
||||
%D%/packages/patches/ilmbase-fix-test-arm.patch \
|
||||
%D%/packages/patches/inetutils-hurd.patch \
|
||||
%D%/packages/patches/inkscape-poppler-0.76.patch \
|
||||
%D%/packages/patches/intltool-perl-compatibility.patch \
|
||||
%D%/packages/patches/irrlicht-use-system-libs.patch \
|
||||
@ -1069,7 +1111,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/java-xerces-bootclasspath.patch \
|
||||
%D%/packages/patches/java-xerces-build_dont_unzip.patch \
|
||||
%D%/packages/patches/java-xerces-xjavac_taskdef.patch \
|
||||
%D%/packages/patches/jbig2dec-ignore-testtest.patch \
|
||||
%D%/packages/patches/jfsutils-add-sysmacros.patch \
|
||||
%D%/packages/patches/jfsutils-include-systypes.patch \
|
||||
%D%/packages/patches/jsoncpp-fix-inverted-case.patch \
|
||||
@ -1115,6 +1156,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ldc-bootstrap-disable-tests.patch \
|
||||
%D%/packages/patches/ldc-disable-phobos-tests.patch \
|
||||
%D%/packages/patches/leela-zero-gtest.patch \
|
||||
%D%/packages/patches/less-hurd-path-max.patch \
|
||||
%D%/packages/patches/liba52-enable-pic.patch \
|
||||
%D%/packages/patches/liba52-link-with-libm.patch \
|
||||
%D%/packages/patches/liba52-set-soname.patch \
|
||||
@ -1132,9 +1174,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/libgit2-mtime-0.patch \
|
||||
%D%/packages/patches/libgnome-encoding.patch \
|
||||
%D%/packages/patches/libgnomeui-utf8.patch \
|
||||
%D%/packages/patches/libgpg-error-gawk-compat.patch \
|
||||
%D%/packages/patches/libffi-3.2.1-complex-alpha.patch \
|
||||
%D%/packages/patches/libjpeg-turbo-CVE-2019-2201.patch \
|
||||
%D%/packages/patches/libjxr-fix-function-signature.patch \
|
||||
%D%/packages/patches/libjxr-fix-typos.patch \
|
||||
%D%/packages/patches/libotr-test-auth-fix.patch \
|
||||
@ -1150,6 +1189,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
|
||||
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
|
||||
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
|
||||
%D%/packages/patches/libreoffice-poppler-compat.patch \
|
||||
%D%/packages/patches/libsndfile-armhf-type-checks.patch \
|
||||
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
|
||||
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \
|
||||
@ -1158,6 +1198,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/libtgvoip-disable-sse2.patch \
|
||||
%D%/packages/patches/libtgvoip-disable-webrtc.patch \
|
||||
%D%/packages/patches/libtheora-config-guess.patch \
|
||||
%D%/packages/patches/libtirpc-hurd.patch \
|
||||
%D%/packages/patches/libtirpc-hurd-client.patch \
|
||||
%D%/packages/patches/libtommath-fix-linkage.patch \
|
||||
%D%/packages/patches/libtool-skip-tests2.patch \
|
||||
%D%/packages/patches/libusb-0.1-disable-tests.patch \
|
||||
@ -1176,12 +1218,12 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/lierolibre-remove-arch-warning.patch \
|
||||
%D%/packages/patches/lierolibre-try-building-other-arch.patch \
|
||||
%D%/packages/patches/linkchecker-tests-require-network.patch \
|
||||
%D%/packages/patches/linphoneqt-tabbutton.patch \
|
||||
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
|
||||
%D%/packages/patches/linux-pam-no-setfsuid.patch \
|
||||
%D%/packages/patches/lirc-localstatedir.patch \
|
||||
%D%/packages/patches/lirc-reproducible-build.patch \
|
||||
%D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \
|
||||
%D%/packages/patches/llvm-for-extempore.patch \
|
||||
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
|
||||
%D%/packages/patches/lrcalc-includes.patch \
|
||||
%D%/packages/patches/lrzip-CVE-2017-8842.patch \
|
||||
@ -1195,7 +1237,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/luminance-hdr-qt-printer.patch \
|
||||
%D%/packages/patches/lvm2-static-link.patch \
|
||||
%D%/packages/patches/lxsession-use-gapplication.patch \
|
||||
%D%/packages/patches/make-glibc-compat.patch \
|
||||
%D%/packages/patches/make-impure-dirs.patch \
|
||||
%D%/packages/patches/mariadb-client-test-32bit.patch \
|
||||
%D%/packages/patches/mars-install.patch \
|
||||
@ -1218,6 +1259,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/mingw-w64-reproducible-gendef.patch \
|
||||
%D%/packages/patches/minisat-friend-declaration.patch \
|
||||
%D%/packages/patches/minisat-install.patch \
|
||||
%D%/packages/patches/mit-krb5-hurd.patch \
|
||||
%D%/packages/patches/mit-krb5-qualify-short-hostnames.patch \
|
||||
%D%/packages/patches/mpc123-initialize-ao.patch \
|
||||
%D%/packages/patches/module-init-tools-moduledir.patch \
|
||||
%D%/packages/patches/monero-use-system-miniupnpc.patch \
|
||||
@ -1237,6 +1280,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/mumps-shared-pord.patch \
|
||||
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
|
||||
%D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \
|
||||
%D%/packages/patches/musl-cross-locale.patch \
|
||||
%D%/packages/patches/mutt-store-references.patch \
|
||||
%D%/packages/patches/m4-gnulib-libio.patch \
|
||||
%D%/packages/patches/ncompress-fix-softlinks.patch \
|
||||
@ -1275,9 +1319,10 @@ dist_patch_DATA = \
|
||||
%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/openldap-CVE-2020-12243.patch \
|
||||
%D%/packages/patches/openmpi-mtl-priorities.patch \
|
||||
%D%/packages/patches/openocd-nrf52.patch \
|
||||
%D%/packages/patches/openssh-hurd.patch \
|
||||
%D%/packages/patches/openresolv-restartcmd-guix.patch \
|
||||
%D%/packages/patches/openssl-runpath.patch \
|
||||
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \
|
||||
%D%/packages/patches/openssl-c-rehash-in.patch \
|
||||
@ -1292,6 +1337,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/p7zip-remove-unused-code.patch \
|
||||
%D%/packages/patches/pam-krb5-CVE-2020-10595.patch \
|
||||
%D%/packages/patches/pam-mount-luks2-support.patch \
|
||||
%D%/packages/patches/pango-skip-libthai-test.patch \
|
||||
%D%/packages/patches/pciutils-hurd-configure.patch \
|
||||
%D%/packages/patches/sdl-pango-api_additions.patch \
|
||||
%D%/packages/patches/sdl-pango-blit_overflow.patch \
|
||||
%D%/packages/patches/sdl-pango-fillrect_crash.patch \
|
||||
@ -1301,6 +1348,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/patchutils-test-perms.patch \
|
||||
%D%/packages/patches/patch-hurd-path-max.patch \
|
||||
%D%/packages/patches/perl-autosplit-default-time.patch \
|
||||
%D%/packages/patches/perl-cross.patch \
|
||||
%D%/packages/patches/perl-deterministic-ordering.patch \
|
||||
%D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
|
||||
%D%/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch \
|
||||
@ -1331,7 +1379,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/portaudio-audacity-compat.patch \
|
||||
%D%/packages/patches/portmidi-modular-build.patch \
|
||||
%D%/packages/patches/postgresql-disable-resolve_symlinks.patch \
|
||||
%D%/packages/patches/potrace-tests.patch \
|
||||
%D%/packages/patches/procmail-ambiguous-getline-debian.patch \
|
||||
%D%/packages/patches/procmail-CVE-2014-3618.patch \
|
||||
%D%/packages/patches/procmail-CVE-2017-16844.patch \
|
||||
@ -1342,6 +1389,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/psm-repro.patch \
|
||||
%D%/packages/patches/pulseaudio-fix-mult-test.patch \
|
||||
%D%/packages/patches/pulseaudio-longer-test-timeout.patch \
|
||||
%D%/packages/patches/purescript-relax-dependencies.patch \
|
||||
%D%/packages/patches/pybugz-encode-error.patch \
|
||||
%D%/packages/patches/pybugz-stty.patch \
|
||||
%D%/packages/patches/pygpgme-disable-problematic-tests.patch \
|
||||
@ -1353,20 +1401,21 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/python-2.7-search-paths.patch \
|
||||
%D%/packages/patches/python-2.7-site-prefixes.patch \
|
||||
%D%/packages/patches/python-2.7-source-date-epoch.patch \
|
||||
%D%/packages/patches/python-3-arm-alignment.patch \
|
||||
%D%/packages/patches/python-3-deterministic-build-info.patch \
|
||||
%D%/packages/patches/python-3-search-paths.patch \
|
||||
%D%/packages/patches/python-3-fix-tests.patch \
|
||||
%D%/packages/patches/python-3.8-search-paths.patch \
|
||||
%D%/packages/patches/python-3.8-fix-tests.patch \
|
||||
%D%/packages/patches/python-CVE-2018-14647.patch \
|
||||
%D%/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch \
|
||||
%D%/packages/patches/python-alembic-exceptions-cause.patch \
|
||||
%D%/packages/patches/python-axolotl-AES-fix.patch \
|
||||
%D%/packages/patches/python-cairocffi-dlopen-path.patch \
|
||||
%D%/packages/patches/python-cffi-x87-stack-clean.patch \
|
||||
%D%/packages/patches/python-cross-compile.patch \
|
||||
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
|
||||
%D%/packages/patches/python-configobj-setuptools.patch \
|
||||
%D%/packages/patches/python-flask-restful-werkzeug-compat.patch \
|
||||
%D%/packages/patches/python-gst-fix-build-with-python-3.8.patch \
|
||||
%D%/packages/patches/python-keras-integration-test.patch \
|
||||
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
|
||||
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
|
||||
@ -1379,6 +1428,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/python2-parameterized-docstring-test.patch \
|
||||
%D%/packages/patches/python-paste-remove-timing-test.patch \
|
||||
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
|
||||
%D%/packages/patches/python-pycrypto-time-clock.patch \
|
||||
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
|
||||
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
|
||||
%D%/packages/patches/python-robotframework-honor-source-date-epoch.patch \
|
||||
@ -1388,13 +1438,9 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/python-unittest2-remove-argparse.patch \
|
||||
%D%/packages/patches/python-waitress-fix-tests.patch \
|
||||
%D%/packages/patches/qemu-glibc-2.27.patch \
|
||||
%D%/packages/patches/qemu-CVE-2020-1711.patch \
|
||||
%D%/packages/patches/qemu-CVE-2020-7039.patch \
|
||||
%D%/packages/patches/qemu-CVE-2020-7211.patch \
|
||||
%D%/packages/patches/qemu-CVE-2020-8608.patch \
|
||||
%D%/packages/patches/qemu-fix-documentation-build-failure.patch \
|
||||
%D%/packages/patches/qrcodegen-cpp-make-install.patch \
|
||||
%D%/packages/patches/qt4-ldflags.patch \
|
||||
%D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch \
|
||||
%D%/packages/patches/qtbase-use-TZDIR.patch \
|
||||
%D%/packages/patches/qtbase-QTBUG-81715.patch \
|
||||
%D%/packages/patches/qtscript-disable-tests.patch \
|
||||
@ -1418,7 +1464,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/rtags-separate-rct.patch \
|
||||
%D%/packages/patches/racket-store-checksum-override.patch \
|
||||
%D%/packages/patches/retroarch-disable-online-updater.patch \
|
||||
%D%/packages/patches/ruby-rubygems-276-for-ruby24.patch \
|
||||
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \
|
||||
%D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\
|
||||
%D%/packages/patches/runc-CVE-2019-5736.patch \
|
||||
@ -1426,6 +1471,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch \
|
||||
%D%/packages/patches/rust-bootstrap-stage0-test.patch \
|
||||
%D%/packages/patches/rust-coresimd-doctest.patch \
|
||||
%D%/packages/patches/rust-nettle-disable-vendor.patch \
|
||||
%D%/packages/patches/rust-nettle-sys-disable-vendor.patch \
|
||||
%D%/packages/patches/rust-reproducible-builds.patch \
|
||||
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
|
||||
%D%/packages/patches/rxvt-unicode-escape-sequences.patch \
|
||||
@ -1434,10 +1481,12 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/scheme48-tests.patch \
|
||||
%D%/packages/patches/scotch-build-parallelism.patch \
|
||||
%D%/packages/patches/scotch-integer-declarations.patch \
|
||||
%D%/packages/patches/screen-hurd-path-max.patch \
|
||||
%D%/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch \
|
||||
%D%/packages/patches/sdl-libx11-1.6.patch \
|
||||
%D%/packages/patches/seahorse-gkr-use-0-on-empty-flags.patch \
|
||||
%D%/packages/patches/seq24-rename-mutex.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 \
|
||||
@ -1453,7 +1502,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/superlu-dist-awpm-grid.patch \
|
||||
%D%/packages/patches/superlu-dist-scotchmetis.patch \
|
||||
%D%/packages/patches/supertux-unbundle-squirrel.patch \
|
||||
%D%/packages/patches/swig-guile-gc.patch \
|
||||
%D%/packages/patches/swish-e-search.patch \
|
||||
%D%/packages/patches/swish-e-format-security.patch \
|
||||
%D%/packages/patches/symmetrica-bruch.patch \
|
||||
@ -1468,13 +1516,14 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/tar-skip-unreliable-tests.patch \
|
||||
%D%/packages/patches/tcc-boot-0.9.27.patch \
|
||||
%D%/packages/patches/tclxml-3.2-install.patch \
|
||||
%D%/packages/patches/tcl-fix-cross-compilation.patch \
|
||||
%D%/packages/patches/tcsh-fix-autotest.patch \
|
||||
%D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \
|
||||
%D%/packages/patches/teensy-loader-cli-help.patch \
|
||||
%D%/packages/patches/texinfo-5-perl-compat.patch \
|
||||
%D%/packages/patches/texlive-bin-CVE-2018-17407.patch \
|
||||
%D%/packages/patches/texlive-bin-luatex-poppler-compat.patch \
|
||||
%D%/packages/patches/texlive-bin-poppler-0.83.patch \
|
||||
%D%/packages/patches/texlive-bin-poppler-0.86.patch \
|
||||
%D%/packages/patches/telegram-purple-adjust-test.patch \
|
||||
%D%/packages/patches/telepathy-glib-channel-memory-leak.patch \
|
||||
%D%/packages/patches/texi2html-document-encoding.patch \
|
||||
%D%/packages/patches/texi2html-i18n.patch \
|
||||
%D%/packages/patches/thefuck-test-environ.patch \
|
||||
@ -1516,17 +1565,19 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
|
||||
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
|
||||
%D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
|
||||
%D%/packages/patches/vigra-python-compat.patch \
|
||||
%D%/packages/patches/vinagre-newer-freerdp.patch \
|
||||
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \
|
||||
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
|
||||
%D%/packages/patches/vlc-fix-test_libvlc_slaves.patch \
|
||||
%D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch \
|
||||
%D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \
|
||||
%D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \
|
||||
%D%/packages/patches/vsearch-unbundle-cityhash.patch \
|
||||
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
|
||||
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
|
||||
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
|
||||
%D%/packages/patches/weasyprint-library-paths.patch \
|
||||
%D%/packages/patches/webkitgtk-share-store.patch \
|
||||
%D%/packages/patches/websocketpp-fix-for-boost-1.70.patch \
|
||||
%D%/packages/patches/wicd-bitrate-none-fix.patch \
|
||||
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
|
||||
@ -1563,5 +1614,4 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/zziplib-CVE-2018-16548.patch
|
||||
|
||||
MISC_DISTRO_FILES = \
|
||||
%D%/packages/ld-wrapper.in \
|
||||
%D%/packages/ld-wrapper-next.in
|
||||
%D%/packages/ld-wrapper.in
|
||||
|
@ -95,7 +95,7 @@
|
||||
("libchamplain" ,libchamplain)
|
||||
("libglade" ,libglade)
|
||||
("libgsf" ,libgsf)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libpng" ,libpng)
|
||||
("librsvg" ,librsvg)
|
||||
("libxml2" ,libxml2)
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
|
||||
|
@ -48,6 +48,7 @@
|
||||
(arguments
|
||||
`(#:modules ((ice-9 ftw)
|
||||
,@%gnu-build-system-modules)
|
||||
#:configure-flags '("--disable-static")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; XXX After repacking the sources the timestamps are reset to the
|
||||
|
@ -12,7 +12,7 @@
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 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 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
|
||||
@ -29,8 +29,9 @@
|
||||
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
|
||||
;;;
|
||||
@ -91,6 +92,7 @@
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages imagemagick)
|
||||
#:use-module (gnu packages inkscape)
|
||||
@ -130,6 +132,7 @@
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
;; This package uses su instead of sudo (because of SpaceFM).
|
||||
(define-public ktsuss
|
||||
(package
|
||||
(name "ktsuss")
|
||||
@ -146,17 +149,13 @@
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--enable-sudo=yes")
|
||||
#:phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-file-names
|
||||
(lambda _
|
||||
(substitute* "configure.ac"
|
||||
(("supath=`which su 2>/dev/null`")
|
||||
"supath=/run/setuid-programs/su")
|
||||
(("sudopath=`which sudo 2>/dev/null`")
|
||||
"sudopath=/run/setuid-programs/sudo"))
|
||||
"supath=/run/setuid-programs/su"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
@ -260,10 +259,10 @@ and provides a \"top-like\" mode (monitoring).")
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
||||
;; This is the Guile we use as a cross-compiler...
|
||||
("guile" ,guile-2.2.7)))
|
||||
("guile" ,guile-3.0)))
|
||||
(inputs
|
||||
;; ... and this is the one that appears in shebangs when cross-compiling.
|
||||
`(("guile" ,guile-2.2.7) ;for <https://bugs.gnu.org/37757>
|
||||
`(("guile" ,guile-3.0)
|
||||
|
||||
;; The 'shepherd' command uses Readline when used interactively. It's
|
||||
;; an unusual use case though, so we don't propagate it.
|
||||
@ -277,15 +276,18 @@ interface and is based on GNU Guile.")
|
||||
(license license:gpl3+)
|
||||
(home-page "https://www.gnu.org/software/shepherd/")))
|
||||
|
||||
(define-public guile3.0-shepherd
|
||||
(define-public guile2.2-shepherd
|
||||
(package
|
||||
(inherit shepherd)
|
||||
(name "guile3.0-shepherd")
|
||||
(name "guile2.2-shepherd")
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("guile" ,guile-next)))
|
||||
("guile" ,guile-2.2)))
|
||||
(inputs
|
||||
`(("guile" ,guile-next)))))
|
||||
`(("guile" ,guile-2.2)))))
|
||||
|
||||
(define-public guile3.0-shepherd
|
||||
(deprecated-package "guile3.0-shepherd" shepherd))
|
||||
|
||||
(define-public guile2.0-shepherd
|
||||
(package
|
||||
@ -491,6 +493,7 @@ re-executing them as necessary.")
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/inetutils/inetutils-"
|
||||
version ".tar.gz"))
|
||||
(patches (search-patches "inetutils-hurd.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy"))))
|
||||
@ -502,13 +505,27 @@ re-executing them as necessary.")
|
||||
;; cross-compiling (by default it does not.)
|
||||
,@(if (%current-target-system)
|
||||
'("--with-path-procnet-dev=/proc/net/dev")
|
||||
'())
|
||||
,@(if (hurd-target?)
|
||||
'("--disable-rcp"
|
||||
"--disable-rexec"
|
||||
"--disable-rexecd"
|
||||
"--disable-rlogin"
|
||||
"--disable-rlogind"
|
||||
"--disable-rsh"
|
||||
"--disable-rshd"
|
||||
"--disable-uucpd"
|
||||
"--disable-whois")
|
||||
'()))
|
||||
;; On some systems, 'libls.sh' may fail with an error such as:
|
||||
;; "Failed to tell switch -a apart from -A".
|
||||
#:parallel-tests? #f))
|
||||
(inputs `(("ncurses" ,ncurses)
|
||||
("readline" ,readline))) ;for 'ftp'
|
||||
(native-inputs `(("netstat" ,net-tools))) ;for tests
|
||||
(native-inputs (if (member (%current-system)
|
||||
(package-supported-systems net-tools))
|
||||
`(("netstat" ,net-tools)) ;for tests
|
||||
'()))
|
||||
(home-page "https://www.gnu.org/software/inetutils/")
|
||||
(synopsis "Basic networking utilities")
|
||||
(description
|
||||
@ -526,6 +543,7 @@ hostname.")
|
||||
(uri (string-append
|
||||
"https://github.com/shadow-maint/shadow/releases/"
|
||||
"download/" version "/shadow-" version ".tar.xz"))
|
||||
(patches (search-patches "shadow-hurd-pctrl.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0qmfq50sdhz6xilgxvinblll8j2iqfl7hwk45bq744y4plq4dbd3"))))
|
||||
@ -559,11 +577,7 @@ hostname.")
|
||||
(for-each delete-file (find-files man "^groups\\."))
|
||||
#t))))))
|
||||
|
||||
(inputs (if (string-contains (or (%current-target-system)
|
||||
(%current-system))
|
||||
"-linux")
|
||||
`(("linux-pam" ,linux-pam))
|
||||
'()))
|
||||
(inputs `(("linux-pam" ,linux-pam)))
|
||||
(home-page "https://github.com/shadow-maint/shadow")
|
||||
(synopsis "Authentication-related tools such as passwd, su, and login")
|
||||
(description
|
||||
@ -590,13 +604,17 @@ login, passwd, su, groupadd, and useradd.")
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(lambda* (#:key inputs outputs target #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(man8 (string-append out "/share/man/man8"))
|
||||
(sbin (string-append out "/sbin"))
|
||||
(shadow (assoc-ref inputs "shadow"))
|
||||
(login (string-append shadow "/bin/login")))
|
||||
(substitute* "Makefile"
|
||||
,@(if (%current-target-system)
|
||||
'((("CC=.*$")
|
||||
(string-append "CC=" target "-gcc\n")))
|
||||
'())
|
||||
(("^SBINDIR.*")
|
||||
(string-append "SBINDIR = " out
|
||||
"/sbin\n"))
|
||||
@ -947,8 +965,9 @@ connection alive.")
|
||||
("file" ,file)))
|
||||
|
||||
(inputs `(("inetutils" ,inetutils)
|
||||
("net-tools" ,net-tools)
|
||||
("iproute" ,iproute)
|
||||
,@(if (hurd-target?) '()
|
||||
`(("net-tools" ,net-tools)
|
||||
("iproute" ,iproute)))
|
||||
|
||||
;; isc-dhcp bundles a copy of BIND, which has proved vulnerable
|
||||
;; in the past. Use a BIND-VERSION of our choosing instead.
|
||||
@ -1258,7 +1277,7 @@ system administrator.")
|
||||
(define-public sudo
|
||||
(package
|
||||
(name "sudo")
|
||||
(version "1.8.31p1")
|
||||
(version "1.9.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
@ -1268,7 +1287,7 @@ system administrator.")
|
||||
version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1n0mdmgcs92af34xxsnsh1arrngymhdmwd9srjgjbk65q7xzsg67"))
|
||||
"0p7r3cl16pjwbc48ff1gbhjw51lngrghvwblxz5lxpyzqlwi88xb"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@ -1277,7 +1296,16 @@ system administrator.")
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--with-logpath=/var/log/sudo.log"
|
||||
(list (string-append "--docdir=" (assoc-ref %outputs "out")
|
||||
"/share/doc/" ,name "-" ,version)
|
||||
|
||||
;; XXX: Disable Python support when cross-compiling because
|
||||
;; 'configure' tries to run 'python', which fails.
|
||||
,(if (%current-target-system)
|
||||
"--disable-python"
|
||||
"--enable-python") ; for plug-ins written in ~
|
||||
|
||||
"--with-logpath=/var/log/sudo.log"
|
||||
"--with-rundir=/var/run/sudo" ; must be cleaned up at boot time
|
||||
"--with-vardir=/var/db/sudo"
|
||||
"--with-iologdir=/var/log/sudo-io"
|
||||
@ -1302,17 +1330,20 @@ system administrator.")
|
||||
;; prematurely.
|
||||
(("@CONFIGURE_ARGS@") "\"\""))
|
||||
(substitute* (find-files "." "Makefile\\.in")
|
||||
;; Allow installation as non-root.
|
||||
(("-o [[:graph:]]+ -g [[:graph:]]+")
|
||||
;; Allow installation as non-root.
|
||||
"")
|
||||
;; Don't try to create /etc/sudoers.
|
||||
(("^install: (.*)install-sudoers(.*)" _ before after)
|
||||
;; Don't try to create /etc/sudoers.
|
||||
(string-append "install: " before after "\n"))
|
||||
;; Don't try to create /run/sudo.
|
||||
(("\\$\\(DESTDIR\\)\\$\\(rundir\\)")
|
||||
;; Don't try to create /run/sudo.
|
||||
"$(TMPDIR)/dummy")
|
||||
;; Install example sudo{,_logsrvd}.conf to the right place.
|
||||
(("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)")
|
||||
"$(DESTDIR)/$(docdir)/examples")
|
||||
;; Don't try to create /var/db/sudo.
|
||||
(("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
|
||||
;; Don't try to create /var/db/sudo.
|
||||
"$(TMPDIR)/dummy"))
|
||||
|
||||
;; ‘Checking existing [/etc/]sudoers file for syntax errors’ is
|
||||
@ -1328,9 +1359,12 @@ system administrator.")
|
||||
(native-inputs
|
||||
`(("groff" ,groff)))
|
||||
(inputs
|
||||
`(("linux-pam" ,linux-pam)
|
||||
("zlib" ,zlib)
|
||||
("coreutils" ,coreutils)))
|
||||
`(("coreutils" ,coreutils)
|
||||
("linux-pam" ,linux-pam)
|
||||
,@(if (%current-target-system)
|
||||
'()
|
||||
`(("python" ,python)))
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://www.sudo.ws/")
|
||||
(synopsis "Run commands as root")
|
||||
(description
|
||||
@ -1770,12 +1804,12 @@ characters can be replaced as well, as can UTF-8 characters.")
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("ntfs-3g" ,ntfs-3g)
|
||||
("util-linux" ,util-linux)
|
||||
("util-linux" ,util-linux "lib")
|
||||
("openssl" ,openssl)
|
||||
;; FIXME: add reiserfs.
|
||||
("zlib" ,zlib)
|
||||
("e2fsprogs" ,e2fsprogs)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("ncurses" ,ncurses)))
|
||||
(home-page "https://www.cgsecurity.org/wiki/TestDisk")
|
||||
(synopsis "Data recovery tool")
|
||||
@ -2900,14 +2934,7 @@ buffers.")
|
||||
(base32 "1gpdjs5aj6vsnzwcjvw5bb120lgffvvshi4202phr0bzw3b92ky8"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; many of the tests try to load kernel modules
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
;; Don't run configure in this phase.
|
||||
(setenv "NOCONFIGURE" "1")
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
`(#:tests? #f)) ; many of the tests try to load kernel modules
|
||||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("elfutils" ,elfutils) ; libdw
|
||||
@ -3646,6 +3673,7 @@ tcpdump and snoop.")
|
||||
("lvm2" ,lvm2)
|
||||
("openssl" ,openssl)
|
||||
("pcre" ,pcre)
|
||||
("libmount" ,util-linux "lib")
|
||||
("util-linux" ,util-linux)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -62,7 +62,7 @@ scripts.")
|
||||
(define-public c-ares
|
||||
(package
|
||||
(name "c-ares")
|
||||
(version "1.15.0")
|
||||
(version "1.16.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -70,7 +70,7 @@ scripts.")
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lk8knip4xk6qzksdkn7085mmgm4ixfczdyyjw656c193y3rgnvc"))))
|
||||
"129sm0wzij0mp8vdv68v18hnykcjb6ivi66wnqnnw598q7bql1fy"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -8,8 +8,10 @@
|
||||
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -406,7 +408,7 @@ precision.")
|
||||
("gsl" ,gsl)
|
||||
("lapack" ,lapack)
|
||||
("libao" ,ao)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libpng" ,libpng)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("libx11" ,libx11)
|
||||
@ -689,15 +691,23 @@ binary.")
|
||||
(uri (string-append "mirror://gnu/bc/bc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0amh9ik44jfg66csyvf4zz1l878c4755kjndq9j0270akflgrbb2"))))
|
||||
"0amh9ik44jfg66csyvf4zz1l878c4755kjndq9j0270akflgrbb2"))
|
||||
(patches (search-patches "bc-fix-cross-compilation.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("ed" ,ed)
|
||||
`(("automake" ,automake)
|
||||
("autoconf" ,autoconf)
|
||||
("ed" ,ed)
|
||||
("flex" ,flex)
|
||||
("texinfo" ,texinfo)))
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(list "--with-readline")))
|
||||
(list "--with-readline")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(invoke "autoreconf" "-vif"))))))
|
||||
(home-page "https://www.gnu.org/software/bc/")
|
||||
(synopsis "Arbitrary precision numeric processing language")
|
||||
(description
|
||||
@ -913,6 +923,29 @@ Fourier Transform} (DFT), @dfn{Discrete Cosine Transform} (DCT), @dfn{Discrete
|
||||
Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public lmfit
|
||||
(package
|
||||
(name "lmfit")
|
||||
(version "8.2.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://jugit.fz-juelich.de/mlz/lmfit.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"00bch77a6qgnw6vzsjn2a42n8n683ih3xm0wpr454jxa15hw78vf"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("perl" ,perl))) ; for pod2man
|
||||
(home-page "https://jugit.fz-juelich.de/mlz/lmfit")
|
||||
(synopsis "Levenberg-Marquardt minimization and least-squares fitting")
|
||||
(description "lmfit is a C library for Levenberg-Marquardt least-squares
|
||||
minimization and curve fitting. It is mature code, based on decades-old
|
||||
algorithms from the FORTRAN library MINPACK.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public eigen
|
||||
(package
|
||||
(name "eigen")
|
||||
@ -1216,15 +1249,6 @@ objects.")
|
||||
("libtool" ,libtool)))
|
||||
(propagated-inputs
|
||||
`(("gmp" ,gmp))) ; gmp++.h includes gmpxx.h
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'setenv
|
||||
;; Prevent the autogen.sh script to carry out the configure
|
||||
;; script, which has not yet been patched to replace /bin/sh.
|
||||
(lambda _
|
||||
(setenv "NOCONFIGURE" "yes")
|
||||
#t)))))
|
||||
(synopsis "Algebraic computations with exact rings and fields")
|
||||
(description
|
||||
"Givaro is a C++ library implementing the basic arithmetic of various
|
||||
@ -1263,15 +1287,7 @@ compound objects, such as vectors, matrices and univariate polynomials.")
|
||||
`(#:configure-flags
|
||||
(list (string-append "--with-blas-libs="
|
||||
(assoc-ref %build-inputs "openblas")
|
||||
"/lib/libopenblas.so"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'setenv
|
||||
;; Prevent the autogen.sh script to carry out the configure
|
||||
;; script, which has not yet been patched to replace /bin/sh.
|
||||
(lambda _
|
||||
(setenv "NOCONFIGURE" "yes")
|
||||
#t)))))
|
||||
"/lib/libopenblas.so"))))
|
||||
(synopsis "C++ library for linear algebra over finite fields")
|
||||
(description
|
||||
"FFLAS-FFPACK is a C++ template library for basic linear algebra
|
||||
@ -1307,15 +1323,6 @@ algebra, such as the row echelon form.")
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("fflas-ffpack" ,fflas-ffpack)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'setenv
|
||||
;; Prevent the autogen.sh script to carry out the configure
|
||||
;; script, which has not yet been patched to replace /bin/sh.
|
||||
(lambda _
|
||||
(setenv "NOCONFIGURE" "yes")
|
||||
#t)))))
|
||||
(synopsis "C++ library for linear algebra over exact rings")
|
||||
(description
|
||||
"LinBox is a C++ template library for exact linear algebra computation
|
||||
|
@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Stefan Handschuh <handschuh.stefan@googlemail.com>
|
||||
;;; Copyright © 2015 Kai-Chung Yan <seamlikok@gmail.com>
|
||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
@ -611,9 +611,20 @@ file system.")
|
||||
#:make-flags '("CXXFLAGS=-std=gnu++11 -Wno-error")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Hide the default GCC from CPLUS_INCLUDE_PATH to prevent it from
|
||||
;; shadowing the version of GCC provided in native-inputs.
|
||||
(let ((gcc (assoc-ref inputs "gcc")))
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-join
|
||||
(delete (string-append gcc "/include/c++")
|
||||
(string-split (getenv "CPLUS_INCLUDE_PATH")
|
||||
#\:))
|
||||
":"))
|
||||
#t)))
|
||||
(add-after 'unpack 'enter-source
|
||||
(lambda _ (chdir "libutils") #t))
|
||||
|
||||
(add-after 'install 'install-headers
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(copy-recursively "../include/utils" (string-append (assoc-ref outputs "out") "/include/utils")))))))
|
||||
@ -623,7 +634,7 @@ file system.")
|
||||
(native-inputs
|
||||
`(("android-bionic-uapi" ,android-bionic-uapi)
|
||||
("android-liblog" ,android-liblog)
|
||||
("gcc" ,gcc-5))) ; XXX: fails to build with GCC 7
|
||||
("gcc@5" ,gcc-5))) ; XXX: fails to build with GCC 7
|
||||
(home-page "https://developer.android.com/")
|
||||
(synopsis "Android utility library")
|
||||
(description "@code{android-libutils} provides utilities for Android NDK developers.")
|
||||
@ -840,7 +851,7 @@ script that you can put anywhere in your path.")
|
||||
(install-file "abootimg" bin)
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("libblkid" ,util-linux)))
|
||||
`(("libblkid" ,util-linux "lib")))
|
||||
(home-page "https://ac100.grandou.net/abootimg")
|
||||
(synopsis "Tool for manipulating Android Boot Images")
|
||||
(description "This package provides a tool for manipulating old Android
|
||||
|
@ -112,7 +112,7 @@ C++ @dfn{Standard Template Library} (STL).")
|
||||
`(("boost" ,boost)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
("libdv" ,libdv)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libpng" ,libpng)
|
||||
("libmng" ,libmng)
|
||||
("zlib" ,zlib)))
|
||||
|
@ -216,13 +216,7 @@ engine programmable using Lua.")
|
||||
(assoc-ref %build-inputs "xkbcomp")
|
||||
"/bin")
|
||||
,(string-append "--with-xkb-output="
|
||||
"/tmp")) ; FIXME: Copied from xorg
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'noconfigure
|
||||
(lambda _
|
||||
(setenv "NOCONFIGURE" "true")
|
||||
#t)))))
|
||||
"/tmp")))) ; FIXME: Copied from xorg
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("autoconf" ,autoconf)
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019 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 Efraim Flashner <efraim@flashner.co.il>
|
||||
@ -8,6 +8,7 @@
|
||||
;;; Copyright © 2016, 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
|
||||
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
|
||||
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -39,7 +40,7 @@
|
||||
(define-public aspell
|
||||
(package
|
||||
(name "aspell")
|
||||
(version "0.60.6.1")
|
||||
(version "0.60.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -47,9 +48,8 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm"))
|
||||
(patches (search-patches "aspell-default-dict-dir.patch"
|
||||
"aspell-gcc-compat.patch"))))
|
||||
"1wi60ankalmh8ds7nplz434jd7j94gdvbahdwsr539rlad8pxdzr"))
|
||||
(patches (search-patches "aspell-default-dict-dir.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -66,14 +66,6 @@
|
||||
(("\"filter-path(.*)DICT_DIR" _ middle)
|
||||
(string-append "\"filter-path" middle
|
||||
"\"" libdir "\"")))
|
||||
#t)))
|
||||
(add-after 'install 'wrap-aspell
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin/aspell (string-append (assoc-ref outputs "out")
|
||||
"/bin/aspell")))
|
||||
(wrap-program bin/aspell
|
||||
'("ASPELL_CONF" "" =
|
||||
("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}")))
|
||||
#t))))))
|
||||
(inputs `(("perl" ,perl)))
|
||||
|
||||
@ -298,6 +290,13 @@ dictionaries, including personal ones.")
|
||||
(base32
|
||||
"0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc")))
|
||||
|
||||
(define-public aspell-dict-pl
|
||||
(aspell-dictionary "pl" "Polish"
|
||||
#:version "0.51-0"
|
||||
#:sha256
|
||||
(base32
|
||||
"1a3ccji6k5gys7l3ilr2lh5pzxgzb7ipc5vb737svl6nqgdy8757")))
|
||||
|
||||
(define-public aspell-dict-pt-br
|
||||
(aspell-dictionary "pt_BR" "Brazilian Portuguese"
|
||||
#:version "20131030-12-0"
|
||||
|
@ -140,7 +140,7 @@ header.")
|
||||
(inputs
|
||||
`(("cfitsio" ,cfitsio)
|
||||
("gsl" ,gsl)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libtiff" ,libtiff)
|
||||
("wcslib" ,wcslib)
|
||||
("zlib" ,zlib)))
|
||||
@ -226,7 +226,7 @@ objects.")
|
||||
`(("glu" ,glu)
|
||||
("glew" ,glew)
|
||||
("libtheora" ,libtheora)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libpng" ,libpng)
|
||||
;; maybe required?
|
||||
("mesa" ,mesa)
|
||||
@ -326,7 +326,7 @@ Mechanics, Astrometry and Astrodynamics library.")
|
||||
("freetype" ,freetype)
|
||||
("pango" ,pango)
|
||||
("giflib" ,giflib)
|
||||
("libjpeg", libjpeg)
|
||||
("libjpeg", libjpeg-turbo)
|
||||
("libpng" ,libpng)
|
||||
("libtiff" ,libtiff)
|
||||
("netpbm" ,netpbm)
|
||||
|
@ -6,7 +6,7 @@
|
||||
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2016 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2016 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
@ -30,6 +30,8 @@
|
||||
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
|
||||
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
|
||||
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -86,6 +88,7 @@
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages music)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages networking)
|
||||
#:use-module (gnu packages onc-rpc)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
@ -1239,7 +1242,7 @@ follower.")
|
||||
(define-public fluidsynth
|
||||
(package
|
||||
(name "fluidsynth")
|
||||
(version "2.1.1")
|
||||
(version "2.1.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@ -1248,7 +1251,7 @@ follower.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"09jq04hrasidf6b5gkk4aba13fq55z3bmn7bq35rdaikz26xiij4"))))
|
||||
"0pf8hjn15isf772nz8qcqja700aay8nhdwmr24djkj42c7chf96j"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no check target
|
||||
@ -1627,7 +1630,7 @@ especially for creating reverb effects. It supports impulse responses with 1,
|
||||
;; uuid.h is included in the JACK type headers
|
||||
;; db.h is included in the libjack metadata headers
|
||||
(propagated-inputs
|
||||
`(("libuuid" ,util-linux)
|
||||
`(("libuuid" ,util-linux "lib")
|
||||
("bdb" ,bdb)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
@ -1855,6 +1858,31 @@ for headphone prolonged listening to disable superstereo fatigue without
|
||||
essential distortions.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ladspa-bs2b
|
||||
(package
|
||||
(name "ladspa-bs2b")
|
||||
(version "0.9.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/bs2b/plugins/LADSPA%20plugin/"
|
||||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1b4aipbj1ba5k99gbc7gmgy14sywyrjd8rpyqj5l905j0mjv8jg2"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("ladspa" ,ladspa)
|
||||
("libbs2b" ,libbs2b)))
|
||||
(home-page "https://sourceforge.net/projects/bs2b/")
|
||||
(synopsis "Bauer stereophonic-to-binaural DSP - LADSPA plugin")
|
||||
(description "The Bauer stereophonic-to-binaural DSP (bs2b) library and
|
||||
plugins is designed to improve headphone listening of stereo audio records.
|
||||
Recommended for headphone prolonged listening to disable superstereo fatigue
|
||||
without essential distortions. This package contains a LADSPA plugin for use
|
||||
with applications that support them (e.g. PulseAudio).")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public liblo
|
||||
(package
|
||||
(name "liblo")
|
||||
@ -2292,20 +2320,26 @@ background file post-processing.")
|
||||
(define-public supercollider
|
||||
(package
|
||||
(name "supercollider")
|
||||
(version "3.10.4")
|
||||
(version "3.11.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/supercollider/supercollider"
|
||||
"/releases/download/Version-" version
|
||||
"/SuperCollider-" version "-Source-linux.tar.bz2"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/supercollider/supercollider.git")
|
||||
(commit (string-append "Version-" version))
|
||||
;; for nova-simd, nova-tt, hidapi, TLSF, oscpack
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0x11g3pfw11m6v18qfpfl5w99dbmf73g4z7wvwhrj1a4qv2dn084"))))
|
||||
"02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))))
|
||||
(build-system cmake-build-system)
|
||||
(outputs
|
||||
'("out" ;core language
|
||||
"ide")) ;qt ide
|
||||
(arguments
|
||||
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
|
||||
"-DSC_QT=off"
|
||||
"-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DFORTIFY=ON" "-DLIBSCSYNTH=ON"
|
||||
"-DSC_EL=off") ;scel is packaged individually as
|
||||
;emacs-scel
|
||||
#:modules ((guix build utils)
|
||||
@ -2326,6 +2360,9 @@ background file post-processing.")
|
||||
(lambda (x)
|
||||
(and (eq? (stat:type (stat x)) 'directory)
|
||||
(not (member (basename x) keep-dirs))))))))
|
||||
(substitute* "lang/CMakeLists.txt"
|
||||
(("include\\(\\.\\./external_libraries/link/AbletonLinkConfig\\.cmake\\)")
|
||||
"find_package(AbletonLink NAMES AbletonLink ableton-link link REQUIRED)"))
|
||||
#t))
|
||||
;; Some tests are broken (see:
|
||||
;; https://github.com/supercollider/supercollider/issues/3555 and
|
||||
@ -2337,15 +2374,36 @@ background file post-processing.")
|
||||
"")
|
||||
(("perf_counter_test.cpp")
|
||||
""))
|
||||
(delete-file "testsuite/server/supernova/server_test.cpp")
|
||||
(delete-file "testsuite/server/supernova/perf_counter_test.cpp")
|
||||
(substitute* "testsuite/CMakeLists.txt"
|
||||
(("add_subdirectory\\(sclang\\)")
|
||||
""))
|
||||
(delete-file "testsuite/sclang/CMakeLists.txt")
|
||||
#t)))))
|
||||
#t))
|
||||
(add-after 'disable-broken-tests 'patch-scclass-dir
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(scclass-dir
|
||||
(string-append out
|
||||
"/share/SuperCollider/SCClassLibrary")))
|
||||
(substitute* "lang/LangSource/SC_LanguageConfig.cpp"
|
||||
(((string-append
|
||||
"SC_Filesystem::instance\\(\\)\\.getDirectory"
|
||||
"\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
|
||||
(string-append "Path(\"" scclass-dir "\")")))
|
||||
#t)))
|
||||
(add-before 'install 'install-ide
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(ide (assoc-ref outputs "ide"))
|
||||
(scide "editors/sc-ide/scide"))
|
||||
(install-file scide
|
||||
(string-append ide "/bin"))
|
||||
(delete-file scide)
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
`(("ableton-link" ,ableton-link)
|
||||
("pkg-config" ,pkg-config)
|
||||
("qttools" ,qttools)))
|
||||
(inputs
|
||||
`(("jack" ,jack-1)
|
||||
("libsndfile" ,libsndfile)
|
||||
@ -2358,7 +2416,14 @@ background file post-processing.")
|
||||
("icu4c" ,icu4c)
|
||||
("boost" ,boost)
|
||||
("boost-sync" ,boost-sync)
|
||||
("yaml-cpp" ,yaml-cpp)))
|
||||
("yaml-cpp" ,yaml-cpp)
|
||||
("qtbase" ,qtbase)
|
||||
("qtdeclarative" ,qtdeclarative)
|
||||
("qtsvg" ,qtsvg)
|
||||
("qtwebchannel" ,qtwebchannel)
|
||||
("qtwebsockets" ,qtwebsockets)))
|
||||
(propagated-inputs ;to get native-search-path
|
||||
`(("qtwebengine" ,qtwebengine)))
|
||||
(home-page "https://github.com/supercollider/supercollider")
|
||||
(synopsis "Synthesis engine and programming language")
|
||||
(description "SuperCollider is a synthesis engine (@code{scsynth} or
|
||||
@ -2490,13 +2555,6 @@ tempo and pitch of an audio recording independently of one another.")
|
||||
(base32
|
||||
"1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'noconfigure
|
||||
(lambda _
|
||||
(setenv "NOCONFIGURE" "yes")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("jack" ,jack-1)
|
||||
("alsa-lib" ,alsa-lib)))
|
||||
@ -2715,14 +2773,14 @@ stretching and pitch scaling of audio. This package contains the library.")
|
||||
(define-public wavpack
|
||||
(package
|
||||
(name "wavpack")
|
||||
(version "5.2.0")
|
||||
(version "5.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.wavpack.com/"
|
||||
"wavpack-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qvpvfx30kvrkw7y1g6r8xj109wszg1z0qmkfm17wf3flb7v3rbp"))))
|
||||
"01r351ggha9pdfk7p601dlxac4ka1q89lgnb6zqk00zf1fd3fi5l"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--disable-static")))
|
||||
@ -4242,3 +4300,104 @@ between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF
|
||||
digital radio.")
|
||||
(home-page "https://www.rowetel.com/?page_id=452")
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public ableton-link
|
||||
(package
|
||||
(name "ableton-link")
|
||||
(version "3.0.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Ableton/link.git")
|
||||
(commit (string-append "Link-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0262vm0v7hmqjhqx5xikh529p3c065p1yld6ymaiz74yq1dnnjir"))
|
||||
(modules '((guix build utils)))
|
||||
(patches
|
||||
(search-patches "ableton-link-system-libraries-debian.patch"))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Tests assume that CMake's "build" directory is a
|
||||
;; sub-directory of the source tree, so we fix it.
|
||||
(substitute* "ci/run-tests.py"
|
||||
(("root_dir,") "root_dir, os.pardir,"))
|
||||
;; Unbundle dependencies.
|
||||
(delete-file-recursively "third_party")
|
||||
(delete-file-recursively "modules")
|
||||
#t))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("catch" ,catch-framework)
|
||||
("python" ,python) ;for running tests
|
||||
("portaudio" ,portaudio) ;for portaudio examples
|
||||
("qtbase" ,qtbase) ;for Qt examples
|
||||
("qtdeclarative" ,qtdeclarative)
|
||||
("qttools" ,qttools)))
|
||||
(inputs
|
||||
`(("jack" ,jack-1) ;for JACK examples
|
||||
("qtquickcontrols" ,qtquickcontrols))) ;for Qt examples
|
||||
(propagated-inputs
|
||||
;; This is because include/ableton/platforms/asio/AsioWrapper.hpp
|
||||
;; contains '#include <asio.hpp>'.
|
||||
`(("asio" ,asio)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("-DLINK_BUILD_QT_EXAMPLES=ON"
|
||||
"-DLINK_BUILD_JACK=ON")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((python (string-append (assoc-ref inputs "python")
|
||||
"/bin/python3"))
|
||||
(run-tests (string-append "../ableton-link-"
|
||||
,version
|
||||
"-checkout/ci/run-tests.py")))
|
||||
(invoke python run-tests "--target" "LinkCoreTest")
|
||||
(invoke python run-tests "--target" "LinkDiscoveryTest"))))
|
||||
(add-before 'install 'patch-cmake
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((source (string-append "../ableton-link-"
|
||||
,version
|
||||
"-checkout/")))
|
||||
(substitute* (string-append source
|
||||
"cmake_include/AsioStandaloneConfig.cmake")
|
||||
(((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./"
|
||||
"modules/asio-standalone/asio/include"))
|
||||
(string-append (assoc-ref inputs "asio")
|
||||
"/include")))
|
||||
(substitute* (string-append source "AbletonLinkConfig.cmake")
|
||||
(("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include")
|
||||
"${CMAKE_CURRENT_LIST_DIR}/../../../include")
|
||||
(("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp")
|
||||
"${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp"))
|
||||
#t)))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(lib-cmake (string-append out "/lib/cmake/ableton-link"))
|
||||
(source (string-append "../ableton-link-" ,version "-checkout")))
|
||||
(for-each (lambda (test-file)
|
||||
(delete-file test-file))
|
||||
'("bin/LinkDiscoveryTest" "bin/LinkCoreTest"))
|
||||
(copy-recursively "bin" bin)
|
||||
(copy-recursively (string-append source "/include/ableton")
|
||||
(string-append out "/include/ableton"))
|
||||
(install-file (string-append source "/AbletonLinkConfig.cmake")
|
||||
lib-cmake)
|
||||
(install-file (string-append source
|
||||
"/cmake_include/AsioStandaloneConfig.cmake")
|
||||
(string-append lib-cmake "/cmake_include"))
|
||||
#t))))))
|
||||
(home-page "https://github.com/Ableton/link")
|
||||
(synopsis "Synchronize musical beat, tempo, and phase across multiple applications")
|
||||
(description
|
||||
"Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase
|
||||
across multiple applications running on one or more devices. Applications on devices
|
||||
connected to a local network discover each other automatically and form a musical
|
||||
session in which each participant can perform independently: anyone can start or stop
|
||||
while still staying in time.")
|
||||
(license license:gpl2+)))
|
||||
|
@ -2,6 +2,7 @@
|
||||
;;; Copyright © 2013, 2014 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -51,6 +52,10 @@
|
||||
;; “Something went wrong bootstrapping makefile fragments for
|
||||
;; automatic dependency tracking. Try re-running configure with […]”
|
||||
(list "--disable-dependency-tracking")
|
||||
|
||||
;; XXX: Parallel tests may cause an indefinite hang with GNU Make 4.3.
|
||||
#:parallel-tests? #f
|
||||
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'patch-source-shebangs 'patch-test-scripts
|
||||
|
@ -5,10 +5,12 @@
|
||||
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -54,12 +56,43 @@
|
||||
(base32
|
||||
"113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
;; TODO: remove `if' in the next rebuild cycle.
|
||||
(if (%current-target-system)
|
||||
`(("bash" ,bash-minimal)
|
||||
("perl" ,perl)
|
||||
("m4" ,m4))
|
||||
'()))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("m4" ,m4)))
|
||||
;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It
|
||||
;; should use our own "cpp" instead of "/lib/cpp".
|
||||
(arguments `(#:tests? #f))
|
||||
(arguments
|
||||
`(;; 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)))))
|
||||
'())))
|
||||
(home-page "https://www.gnu.org/software/autoconf/")
|
||||
(synopsis "Create source code configuration scripts")
|
||||
(description
|
||||
@ -249,17 +282,24 @@ output is indexed in many ways to simplify browsing.")
|
||||
(define-public automake
|
||||
(package
|
||||
(name "automake")
|
||||
(version "1.16.1")
|
||||
(version "1.16.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/automake/automake-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax"))
|
||||
"1l7dkqbsmbf94ax29jj1jf6a0r6ikc8jybg1p5m0c3ki7pg5ki6c"))
|
||||
(patches
|
||||
(search-patches "automake-skip-amhello-tests.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
;; TODO: remove `if' in the next rebuild cycle.
|
||||
(if (%current-target-system)
|
||||
`(("autoconf" ,autoconf-wrapper)
|
||||
("bash" ,bash-minimal)
|
||||
("perl" ,perl))
|
||||
'()))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf-wrapper)
|
||||
("perl" ,perl)))
|
||||
@ -268,7 +308,7 @@ output is indexed in many ways to simplify browsing.")
|
||||
(variable "ACLOCAL_PATH")
|
||||
(files '("share/aclocal")))))
|
||||
(arguments
|
||||
'(#:modules ((guix build gnu-build-system)
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
@ -288,6 +328,37 @@ output is indexed in many ways to simplify browsing.")
|
||||
(setenv "CONFIG_SHELL" sh)
|
||||
#t)))
|
||||
|
||||
(add-before 'check 'skip-test
|
||||
(lambda _
|
||||
;; This test requires 'etags' and fails if it's missing.
|
||||
;; Skip it.
|
||||
(substitute* "t/tags-lisp-space.sh"
|
||||
(("^required.*" all)
|
||||
(string-append "exit 77\n" all "\n")))
|
||||
#t))
|
||||
|
||||
,@(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, AUTOCONF and BASH store
|
||||
;; references hide in the scripts.
|
||||
(let ((autoconf (assoc-ref inputs "autoconf"))
|
||||
(bash (assoc-ref inputs "bash"))
|
||||
(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 "/[^/]*-autoconf-[^/]*"))
|
||||
autoconf)
|
||||
(((string-append store-directory "/[^/]*-bash-[^/]*"))
|
||||
bash)
|
||||
(((string-append store-directory "/[^/]*-perl-[^/]*"))
|
||||
perl))
|
||||
#t))))
|
||||
'())
|
||||
|
||||
;; Files like `install-sh', `mdate.sh', etc. must use
|
||||
;; #!/bin/sh, otherwise users could leak erroneous shebangs
|
||||
;; in the wild. See <http://bugs.gnu.org/14201> for an
|
||||
@ -324,32 +395,6 @@ intuitive format and then Automake works with Autoconf to produce a robust
|
||||
Makefile, simplifying the entire process for the developer.")
|
||||
(license gpl2+))) ; some files are under GPLv3+
|
||||
|
||||
(define-public automake-1.16.2
|
||||
(package
|
||||
(inherit automake)
|
||||
(version "1.16.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/automake/automake-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l7dkqbsmbf94ax29jj1jf6a0r6ikc8jybg1p5m0c3ki7pg5ki6c"))
|
||||
(patches
|
||||
(search-patches "automake-skip-amhello-tests.patch"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments automake)
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'skip-test
|
||||
(lambda _
|
||||
;; This test requires 'etags' and fails if it's missing.
|
||||
;; Skip it.
|
||||
(substitute* "t/tags-lisp-space.sh"
|
||||
(("^required.*" all)
|
||||
(string-append "exit 77\n" all "\n")))
|
||||
#t))))))))
|
||||
|
||||
(define-public libtool
|
||||
(package
|
||||
(name "libtool")
|
||||
@ -379,21 +424,22 @@ Makefile, simplifying the entire process for the developer.")
|
||||
|
||||
;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
|
||||
;; <http://hydra.gnu.org/build/181662>.
|
||||
#:tests? ,(not (string-prefix? "mips64"
|
||||
(or (%current-target-system)
|
||||
;; Also, do not run tests when cross compiling
|
||||
#:tests? ,(not (or (%current-target-system)
|
||||
(string-prefix? "mips64"
|
||||
(%current-system))))
|
||||
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'pre-check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||
;; Run the test suite in parallel, if possible.
|
||||
(setenv "TESTSUITEFLAGS"
|
||||
(string-append
|
||||
"-j"
|
||||
(number->string (parallel-job-count))))
|
||||
;; Patch references to /bin/sh.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(let ((bash (assoc-ref (or native-inputs inputs) "bash")))
|
||||
(substitute* "tests/testsuite"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/sh")))
|
||||
|
85
gnu/packages/aux-files/pack-audit.c
Normal file
85
gnu/packages/aux-files/pack-audit.c
Normal file
@ -0,0 +1,85 @@
|
||||
/* GNU Guix --- Functional package management for GNU
|
||||
Copyright (C) 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
This file is part of GNU Guix.
|
||||
|
||||
GNU Guix is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or (at
|
||||
your option) any later version.
|
||||
|
||||
GNU Guix is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* This file implements part of the GNU ld.so audit interface. It is used by
|
||||
the "fakechroot" engine of the 'guix pack -RR' wrappers to make sure the
|
||||
loader looks for shared objects under the "fake" root directory. */
|
||||
|
||||
#define _GNU_SOURCE 1
|
||||
|
||||
#include <link.h>
|
||||
|
||||
#include <error.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
/* The pseudo root directory and store that we are relocating to. */
|
||||
static const char *root_directory;
|
||||
static char *store;
|
||||
|
||||
/* The original store, "/gnu/store" by default. */
|
||||
static const char original_store[] = "@STORE_DIRECTORY@";
|
||||
|
||||
/* Like 'malloc', but abort if 'malloc' returns NULL. */
|
||||
static void *
|
||||
xmalloc (size_t size)
|
||||
{
|
||||
void *result = malloc (size);
|
||||
assert (result != NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
la_version (unsigned int v)
|
||||
{
|
||||
if (v != LAV_CURRENT)
|
||||
error (1, 0, "cannot handle interface version %u", v);
|
||||
|
||||
root_directory = getenv ("FAKECHROOT_BASE");
|
||||
if (root_directory == NULL)
|
||||
error (1, 0, "'FAKECHROOT_BASE' is not set");
|
||||
|
||||
store = xmalloc (strlen (root_directory) + sizeof original_store);
|
||||
strcpy (store, root_directory);
|
||||
strcat (store, original_store);
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
/* Return NAME, a shared object file name, relocated under STORE. This
|
||||
function is called by the loader whenever it looks for a shared object. */
|
||||
char *
|
||||
la_objsearch (const char *name, uintptr_t *cookie, unsigned int flag)
|
||||
{
|
||||
char *result;
|
||||
|
||||
if (strncmp (name, original_store,
|
||||
sizeof original_store - 1) == 0)
|
||||
{
|
||||
size_t len = strlen (name) - sizeof original_store
|
||||
+ strlen (store) + 1;
|
||||
result = xmalloc (len);
|
||||
strcpy (result, store);
|
||||
strcat (result, name + sizeof original_store - 1);
|
||||
}
|
||||
else
|
||||
result = strdup (name);
|
||||
|
||||
return result;
|
||||
}
|
@ -42,13 +42,30 @@
|
||||
#include <dirent.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
/* Whether we're building the ld.so/libfakechroot wrapper. */
|
||||
#define HAVE_EXEC_WITH_LOADER \
|
||||
(defined PROGRAM_INTERPRETER) && (defined LOADER_AUDIT_MODULE) \
|
||||
&& (defined FAKECHROOT_LIBRARY)
|
||||
|
||||
/* The original store, "/gnu/store" by default. */
|
||||
static const char original_store[] = "@STORE_DIRECTORY@";
|
||||
|
||||
|
||||
/* Like 'malloc', but abort if 'malloc' returns NULL. */
|
||||
static void *
|
||||
xmalloc (size_t size)
|
||||
{
|
||||
void *result = malloc (size);
|
||||
assert (result != NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Concatenate DIRECTORY, a slash, and FILE. Return the result, which the
|
||||
caller must eventually free. */
|
||||
static char *
|
||||
concat (const char *directory, const char *file)
|
||||
{
|
||||
char *result = malloc (strlen (directory) + 2 + strlen (file));
|
||||
assert (result != NULL);
|
||||
char *result = xmalloc (strlen (directory) + 2 + strlen (file));
|
||||
|
||||
strcpy (result, directory);
|
||||
strcat (result, "/");
|
||||
@ -105,9 +122,42 @@ rm_rf (const char *directory)
|
||||
assert_perror (errno);
|
||||
}
|
||||
|
||||
/* Bind mount all the top-level entries in SOURCE to TARGET. */
|
||||
/* Make TARGET a bind-mount of SOURCE. Take into account ENTRY's type, which
|
||||
corresponds to SOURCE. */
|
||||
static int
|
||||
bind_mount (const char *source, const struct dirent *entry,
|
||||
const char *target)
|
||||
{
|
||||
if (entry->d_type == DT_DIR)
|
||||
{
|
||||
int err = mkdir (target, 0700);
|
||||
if (err != 0)
|
||||
return err;
|
||||
}
|
||||
else
|
||||
close (open (target, O_WRONLY | O_CREAT));
|
||||
|
||||
return mount (source, target, "none",
|
||||
MS_BIND | MS_REC | MS_RDONLY, NULL);
|
||||
}
|
||||
|
||||
#if HAVE_EXEC_WITH_LOADER
|
||||
|
||||
/* Make TARGET a symlink to SOURCE. */
|
||||
static int
|
||||
make_symlink (const char *source, const struct dirent *entry,
|
||||
const char *target)
|
||||
{
|
||||
return symlink (source, target);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* Mirror with FIRMLINK all the top-level entries in SOURCE to TARGET. */
|
||||
static void
|
||||
bind_mount (const char *source, const char *target)
|
||||
mirror_directory (const char *source, const char *target,
|
||||
int (* firmlink) (const char *, const struct dirent *,
|
||||
const char *))
|
||||
{
|
||||
DIR *stream = opendir (source);
|
||||
|
||||
@ -142,17 +192,7 @@ bind_mount (const char *source, const char *target)
|
||||
else
|
||||
{
|
||||
/* Create the mount point. */
|
||||
if (entry->d_type == DT_DIR)
|
||||
{
|
||||
int err = mkdir (new_entry, 0700);
|
||||
if (err != 0)
|
||||
assert_perror (errno);
|
||||
}
|
||||
else
|
||||
close (open (new_entry, O_WRONLY | O_CREAT));
|
||||
|
||||
int err = mount (abs_source, new_entry, "none",
|
||||
MS_BIND | MS_REC | MS_RDONLY, NULL);
|
||||
int err = firmlink (abs_source, entry, new_entry);
|
||||
|
||||
/* It used to be that only directories could be bind-mounted. Thus,
|
||||
keep going if we fail to bind-mount a non-directory entry.
|
||||
@ -211,6 +251,83 @@ disallow_setgroups (pid_t pid)
|
||||
close (fd);
|
||||
}
|
||||
|
||||
/* Run the wrapper program in a separate mount user namespace. Return only
|
||||
upon failure. */
|
||||
static void
|
||||
exec_in_user_namespace (const char *store, int argc, char *argv[])
|
||||
{
|
||||
/* Spawn @WRAPPED_PROGRAM@ in a separate namespace where STORE is
|
||||
bind-mounted in the right place. */
|
||||
int err;
|
||||
char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX"));
|
||||
char *new_store = concat (new_root, original_store);
|
||||
char *cwd = get_current_dir_name ();
|
||||
|
||||
/* Create a child with separate namespaces and set up bind-mounts from
|
||||
there. That way, bind-mounts automatically disappear when the child
|
||||
exits, which simplifies cleanup for the parent. Note: clone is more
|
||||
convenient than fork + unshare since the parent can directly write
|
||||
the child uid_map/gid_map files. */
|
||||
pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER,
|
||||
NULL, NULL, NULL);
|
||||
switch (child)
|
||||
{
|
||||
case 0:
|
||||
/* Note: Due to <https://bugzilla.kernel.org/show_bug.cgi?id=183461>
|
||||
we cannot make NEW_ROOT a tmpfs (which would have saved the need
|
||||
for 'rm_rf'.) */
|
||||
mirror_directory ("/", new_root, bind_mount);
|
||||
mkdir_p (new_store);
|
||||
err = mount (store, new_store, "none", MS_BIND | MS_REC | MS_RDONLY,
|
||||
NULL);
|
||||
if (err < 0)
|
||||
assert_perror (errno);
|
||||
|
||||
chdir (new_root);
|
||||
err = chroot (new_root);
|
||||
if (err < 0)
|
||||
assert_perror (errno);
|
||||
|
||||
/* Change back to where we were before chroot'ing. */
|
||||
chdir (cwd);
|
||||
|
||||
int err = execv ("@WRAPPED_PROGRAM@", argv);
|
||||
if (err < 0)
|
||||
assert_perror (errno);
|
||||
break;
|
||||
|
||||
case -1:
|
||||
/* Failure: user namespaces not supported. */
|
||||
fprintf (stderr, "%s: error: 'clone' failed: %m\n", argv[0]);
|
||||
rm_rf (new_root);
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
/* Map the current user/group ID in the child's namespace (the
|
||||
default is to get the "overflow UID", i.e., the UID of
|
||||
"nobody"). We must first disallow 'setgroups' for that
|
||||
process. */
|
||||
disallow_setgroups (child);
|
||||
write_id_map (child, "uid_map", getuid ());
|
||||
write_id_map (child, "gid_map", getgid ());
|
||||
|
||||
int status;
|
||||
waitpid (child, &status, 0);
|
||||
chdir ("/"); /* avoid EBUSY */
|
||||
rm_rf (new_root);
|
||||
free (new_root);
|
||||
|
||||
if (WIFEXITED (status))
|
||||
exit (WEXITSTATUS (status));
|
||||
else
|
||||
/* Abnormal termination cannot really be reproduced, so exit
|
||||
with 255. */
|
||||
exit (255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef PROOT_PROGRAM
|
||||
|
||||
@ -221,12 +338,12 @@ exec_with_proot (const char *store, int argc, char *argv[])
|
||||
{
|
||||
int proot_specific_argc = 4;
|
||||
int proot_argc = argc + proot_specific_argc;
|
||||
char *proot_argv[proot_argc], *proot;
|
||||
char bind_spec[strlen (store) + 1 + sizeof "@STORE_DIRECTORY@"];
|
||||
char *proot_argv[proot_argc + 1], *proot;
|
||||
char bind_spec[strlen (store) + 1 + sizeof original_store];
|
||||
|
||||
strcpy (bind_spec, store);
|
||||
strcat (bind_spec, ":");
|
||||
strcat (bind_spec, "@STORE_DIRECTORY@");
|
||||
strcat (bind_spec, original_store);
|
||||
|
||||
proot = concat (store, PROOT_PROGRAM);
|
||||
|
||||
@ -251,6 +368,173 @@ exec_with_proot (const char *store, int argc, char *argv[])
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if HAVE_EXEC_WITH_LOADER
|
||||
|
||||
/* Execute the wrapped program by invoking the loader (ld.so) directly,
|
||||
passing it the audit module and preloading libfakechroot.so. */
|
||||
static void
|
||||
exec_with_loader (const char *store, int argc, char *argv[])
|
||||
{
|
||||
char *loader = concat (store,
|
||||
PROGRAM_INTERPRETER + sizeof original_store);
|
||||
size_t loader_specific_argc = 6;
|
||||
size_t loader_argc = argc + loader_specific_argc;
|
||||
char *loader_argv[loader_argc + 1];
|
||||
loader_argv[0] = argv[0];
|
||||
loader_argv[1] = "--audit";
|
||||
loader_argv[2] = concat (store,
|
||||
LOADER_AUDIT_MODULE + sizeof original_store);
|
||||
loader_argv[3] = "--preload";
|
||||
loader_argv[4] = concat (store,
|
||||
FAKECHROOT_LIBRARY + sizeof original_store);
|
||||
loader_argv[5] = concat (store,
|
||||
"@WRAPPED_PROGRAM@" + sizeof original_store);
|
||||
|
||||
for (size_t i = 0; i < argc; i++)
|
||||
loader_argv[i + loader_specific_argc] = argv[i + 1];
|
||||
|
||||
loader_argv[loader_argc] = NULL;
|
||||
|
||||
/* Set up the root directory. */
|
||||
int err;
|
||||
char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX"));
|
||||
mirror_directory ("/", new_root, make_symlink);
|
||||
|
||||
char *new_store = concat (new_root, original_store);
|
||||
char *new_store_parent = dirname (strdup (new_store));
|
||||
mkdir_p (new_store_parent);
|
||||
symlink (store, new_store);
|
||||
|
||||
#ifdef GCONV_DIRECTORY
|
||||
/* Tell libc where to find its gconv modules. This is necessary because
|
||||
gconv uses non-interposable 'open' calls. */
|
||||
char *gconv_path = concat (store,
|
||||
GCONV_DIRECTORY + sizeof original_store);
|
||||
setenv ("GCONV_PATH", gconv_path, 1);
|
||||
free (gconv_path);
|
||||
#endif
|
||||
|
||||
setenv ("FAKECHROOT_BASE", new_root, 1);
|
||||
|
||||
pid_t child = fork ();
|
||||
switch (child)
|
||||
{
|
||||
case 0:
|
||||
err = execv (loader, loader_argv);
|
||||
if (err < 0)
|
||||
assert_perror (errno);
|
||||
exit (EXIT_FAILURE);
|
||||
break;
|
||||
|
||||
case -1:
|
||||
assert_perror (errno);
|
||||
exit (EXIT_FAILURE);
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
int status;
|
||||
waitpid (child, &status, 0);
|
||||
chdir ("/"); /* avoid EBUSY */
|
||||
rm_rf (new_root);
|
||||
free (new_root);
|
||||
|
||||
close (2); /* flushing stderr should be silent */
|
||||
|
||||
if (WIFEXITED (status))
|
||||
exit (WEXITSTATUS (status));
|
||||
else
|
||||
/* Abnormal termination cannot really be reproduced, so exit
|
||||
with 255. */
|
||||
exit (255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Execution engines. */
|
||||
|
||||
struct engine
|
||||
{
|
||||
const char *name;
|
||||
void (* exec) (const char *, int, char **);
|
||||
};
|
||||
|
||||
static void
|
||||
buffer_stderr (void)
|
||||
{
|
||||
static char stderr_buffer[4096];
|
||||
setvbuf (stderr, stderr_buffer, _IOFBF, sizeof stderr_buffer);
|
||||
}
|
||||
|
||||
/* The default engine: choose a robust method. */
|
||||
static void
|
||||
exec_default (const char *store, int argc, char *argv[])
|
||||
{
|
||||
/* Buffer stderr so that nothing's displayed if 'exec_in_user_namespace'
|
||||
fails but 'exec_with_proot' works. */
|
||||
buffer_stderr ();
|
||||
|
||||
exec_in_user_namespace (store, argc, argv);
|
||||
#ifdef PROOT_PROGRAM
|
||||
exec_with_proot (store, argc, argv);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* The "performance" engine: choose performance over robustness. */
|
||||
static void
|
||||
exec_performance (const char *store, int argc, char *argv[])
|
||||
{
|
||||
buffer_stderr ();
|
||||
|
||||
exec_in_user_namespace (store, argc, argv);
|
||||
#if HAVE_EXEC_WITH_LOADER
|
||||
exec_with_loader (store, argc, argv);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* List of supported engines. */
|
||||
static const struct engine engines[] =
|
||||
{
|
||||
{ "default", exec_default },
|
||||
{ "performance", exec_performance },
|
||||
{ "userns", exec_in_user_namespace },
|
||||
#ifdef PROOT_PROGRAM
|
||||
{ "proot", exec_with_proot },
|
||||
#endif
|
||||
#if HAVE_EXEC_WITH_LOADER
|
||||
{ "fakechroot", exec_with_loader },
|
||||
#endif
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
/* Return the "execution engine" to use. */
|
||||
static const struct engine *
|
||||
execution_engine (void)
|
||||
{
|
||||
const char *str = getenv ("GUIX_EXECUTION_ENGINE");
|
||||
|
||||
if (str == NULL)
|
||||
str = "default";
|
||||
|
||||
try:
|
||||
for (const struct engine *engine = engines;
|
||||
engine->name != NULL;
|
||||
engine++)
|
||||
{
|
||||
if (strcmp (engine->name, str) == 0)
|
||||
return engine;
|
||||
}
|
||||
|
||||
fprintf (stderr, "%s: unsupported Guix execution engine; ignoring\n",
|
||||
str);
|
||||
str = "default";
|
||||
goto try;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
@ -263,8 +547,7 @@ main (int argc, char *argv[])
|
||||
/* SELF is something like "/home/ludo/.local/gnu/store/…-foo/bin/ls" and we
|
||||
want to extract "/home/ludo/.local/gnu/store". */
|
||||
size_t index = strlen (self)
|
||||
- strlen ("@WRAPPED_PROGRAM@")
|
||||
+ strlen ("@STORE_DIRECTORY@");
|
||||
- strlen ("@WRAPPED_PROGRAM@") + strlen (original_store);
|
||||
char *store = strdup (self);
|
||||
store[index] = '\0';
|
||||
|
||||
@ -274,84 +557,21 @@ main (int argc, char *argv[])
|
||||
@WRAPPED_PROGRAM@ right away. This is not just an optimization: it's
|
||||
needed when running one of these wrappers from within an unshare'd
|
||||
namespace, because 'unshare' fails with EPERM in that context. */
|
||||
if (strcmp (store, "@STORE_DIRECTORY@") != 0
|
||||
if (strcmp (store, original_store) != 0
|
||||
&& lstat ("@WRAPPED_PROGRAM@", &statbuf) != 0)
|
||||
{
|
||||
/* Spawn @WRAPPED_PROGRAM@ in a separate namespace where STORE is
|
||||
bind-mounted in the right place. */
|
||||
int err;
|
||||
char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX"));
|
||||
char *new_store = concat (new_root, "@STORE_DIRECTORY@");
|
||||
char *cwd = get_current_dir_name ();
|
||||
const struct engine *engine = execution_engine ();
|
||||
engine->exec (store, argc, argv);
|
||||
|
||||
/* Create a child with separate namespaces and set up bind-mounts from
|
||||
there. That way, bind-mounts automatically disappear when the child
|
||||
exits, which simplifies cleanup for the parent. Note: clone is more
|
||||
convenient than fork + unshare since the parent can directly write
|
||||
the child uid_map/gid_map files. */
|
||||
pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER,
|
||||
NULL, NULL, NULL);
|
||||
switch (child)
|
||||
{
|
||||
case 0:
|
||||
/* Note: Due to <https://bugzilla.kernel.org/show_bug.cgi?id=183461>
|
||||
we cannot make NEW_ROOT a tmpfs (which would have saved the need
|
||||
for 'rm_rf'.) */
|
||||
bind_mount ("/", new_root);
|
||||
mkdir_p (new_store);
|
||||
err = mount (store, new_store, "none", MS_BIND | MS_REC | MS_RDONLY,
|
||||
NULL);
|
||||
if (err < 0)
|
||||
assert_perror (errno);
|
||||
|
||||
chdir (new_root);
|
||||
err = chroot (new_root);
|
||||
if (err < 0)
|
||||
assert_perror (errno);
|
||||
|
||||
/* Change back to where we were before chroot'ing. */
|
||||
chdir (cwd);
|
||||
break;
|
||||
|
||||
case -1:
|
||||
rm_rf (new_root);
|
||||
#ifdef PROOT_PROGRAM
|
||||
exec_with_proot (store, argc, argv);
|
||||
#else
|
||||
fprintf (stderr, "%s: error: 'clone' failed: %m\n", argv[0]);
|
||||
fprintf (stderr, "\
|
||||
/* If we reach this point, that's because ENGINE failed to do the
|
||||
job. */
|
||||
fprintf (stderr, "\
|
||||
This may be because \"user namespaces\" are not supported on this system.\n\
|
||||
Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\
|
||||
unless you move it to the '@STORE_DIRECTORY@' directory.\n\
|
||||
\n\
|
||||
Please refer to the 'guix pack' documentation for more information.\n");
|
||||
#endif
|
||||
return EXIT_FAILURE;
|
||||
|
||||
default:
|
||||
{
|
||||
/* Map the current user/group ID in the child's namespace (the
|
||||
default is to get the "overflow UID", i.e., the UID of
|
||||
"nobody"). We must first disallow 'setgroups' for that
|
||||
process. */
|
||||
disallow_setgroups (child);
|
||||
write_id_map (child, "uid_map", getuid ());
|
||||
write_id_map (child, "gid_map", getgid ());
|
||||
|
||||
int status;
|
||||
waitpid (child, &status, 0);
|
||||
chdir ("/"); /* avoid EBUSY */
|
||||
rm_rf (new_root);
|
||||
free (new_root);
|
||||
|
||||
if (WIFEXITED (status))
|
||||
exit (WEXITSTATUS (status));
|
||||
else
|
||||
/* Abnormal termination cannot really be reproduced, so exit
|
||||
with 255. */
|
||||
exit (255);
|
||||
}
|
||||
}
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
/* The executable is available under @STORE_DIRECTORY@, so we can now
|
||||
|
@ -2,6 +2,7 @@
|
||||
;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -25,17 +26,18 @@
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages dbm)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages libdaemon)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public avahi
|
||||
(package
|
||||
(name "avahi")
|
||||
(version "0.7")
|
||||
(replacement avahi/fixed)
|
||||
(version "0.8")
|
||||
(home-page "https://avahi.org")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
@ -43,29 +45,40 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0128n7jlshw4bpx0vg8lwj8qwdisjxi7mvniwfafgnkzzrfrpaap"))
|
||||
(patches (search-patches "avahi-localstatedir.patch"))))
|
||||
"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))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--with-distro=none"
|
||||
"--disable-static"
|
||||
"--localstatedir=/var" ; for the DBus socket
|
||||
"--disable-python"
|
||||
"--disable-mono"
|
||||
"--disable-doxygen-doc"
|
||||
"--disable-xmltoman"
|
||||
"--enable-tests"
|
||||
"--disable-qt3" "--disable-qt4"
|
||||
"--disable-qt4" "--disable-qt5"
|
||||
"--disable-gtk" "--disable-gtk3"
|
||||
"--enable-compat-libdns_sd")))
|
||||
(inputs
|
||||
`(("expat" ,expat)
|
||||
("glib" ,glib)
|
||||
("dbus" ,dbus)
|
||||
`(("dbus" ,dbus)
|
||||
("expat" ,expat)
|
||||
("gdbm" ,gdbm)
|
||||
("glib" ,glib)
|
||||
("libcap" ,libcap) ;to enable chroot support in avahi-daemon
|
||||
("libdaemon" ,libdaemon)))
|
||||
("libdaemon" ,libdaemon)
|
||||
("libevent" ,libevent)))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
`(("gettext" ,gettext-minimal)
|
||||
("glib" ,glib "bin")
|
||||
("pkg-config" ,pkg-config)))
|
||||
(synopsis "Implementation of mDNS/DNS-SD protocols")
|
||||
@ -75,17 +88,6 @@ network. It is an implementation of the mDNS (for \"Multicast DNS\") and
|
||||
DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
|
||||
(license lgpl2.1+)))
|
||||
|
||||
(define avahi/fixed
|
||||
(package
|
||||
(inherit avahi)
|
||||
(source (origin
|
||||
(inherit (package-source avahi))
|
||||
(patches
|
||||
(append (search-patches "avahi-CVE-2018-1000845.patch")
|
||||
(origin-patches (package-source avahi))))))
|
||||
;; Hide a duplicate of the CVE fixed above.
|
||||
(properties `((lint-hidden-cve . ("CVE-2017-6519"))))))
|
||||
|
||||
(define-public nss-mdns
|
||||
(package
|
||||
(name "nss-mdns")
|
||||
|
@ -4,6 +4,7 @@
|
||||
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -49,6 +50,21 @@
|
||||
(substitute-keyword-arguments (package-arguments xgcc)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gcc (assoc-ref inputs "gcc")))
|
||||
;; Remove the default compiler from CPLUS_INCLUDE_PATH to
|
||||
;; prevent header conflict with the GCC from native-inputs.
|
||||
(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"))
|
||||
#t)))
|
||||
;; Without a working multilib build, the resulting GCC lacks
|
||||
;; support for nearly every AVR chip.
|
||||
(add-after 'unpack 'fix-genmultilib
|
||||
@ -78,7 +94,7 @@
|
||||
(variable "CROSS_LIBRARY_PATH")
|
||||
(files '("avr/lib")))))
|
||||
(native-inputs
|
||||
`(("gcc" ,gcc-5)
|
||||
`(("gcc@5" ,gcc-5)
|
||||
,@(package-native-inputs xgcc))))))
|
||||
|
||||
(define-public avr-gcc-5
|
||||
|
@ -11,9 +11,11 @@
|
||||
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -36,6 +38,7 @@
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system python)
|
||||
@ -63,6 +66,7 @@
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages protobuf)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-crypto)
|
||||
#:use-module (gnu packages python-web)
|
||||
@ -200,18 +204,18 @@ backups (called chunks) to allow easy burning to CD/DVD.")
|
||||
(define-public libarchive
|
||||
(package
|
||||
(name "libarchive")
|
||||
(version "3.4.0")
|
||||
(version "3.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "https://libarchive.org/downloads/libarchive-"
|
||||
version ".tar.gz")
|
||||
version ".tar.xz")
|
||||
(string-append "https://github.com/libarchive/libarchive"
|
||||
"/releases/download/v" version "/libarchive-"
|
||||
version ".tar.gz")))
|
||||
version ".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0pl25mmz1b1cnwf35kxmygyy9g7z7hslxbx329a9yx8csh7dahw6"))))
|
||||
"18dd01ahs2hv74xm7axjc3yhq839p0x0s4vssvlmm8fknja09qfq"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("bzip2" ,bzip2)
|
||||
@ -231,24 +235,34 @@ backups (called chunks) to allow easy burning to CD/DVD.")
|
||||
(("/bin/pwd") (which "pwd")))
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
;; XXX: The test_owner_parse, test_read_disk, and
|
||||
;; test_write_disk_lookup tests expect user 'root' to exist, but
|
||||
;; the chroot's /etc/passwd doesn't have it. Turn off those tests.
|
||||
;;
|
||||
;; XXX: Adjust test that fails with zstd 1.4.1 because the default
|
||||
;; options compresses two bytes better than this test expects.
|
||||
;; https://github.com/libarchive/libarchive/issues/1226
|
||||
(substitute* "libarchive/test/test_write_filter_zstd.c"
|
||||
(("compression-level\", \"6\"")
|
||||
"compression-level\", \"7\""))
|
||||
(lambda* (#:key (tests? #t) #:allow-other-keys)
|
||||
(if tests?
|
||||
;; XXX: The test_owner_parse, test_read_disk, and
|
||||
;; test_write_disk_lookup tests expect user 'root' to
|
||||
;; exist, but the chroot's /etc/passwd doesn't have
|
||||
;; it. Turn off those tests.
|
||||
;;
|
||||
;; XXX: Adjust test that fails with zstd 1.4.1
|
||||
;; because the default options compresses two bytes
|
||||
;; better than this test expects.
|
||||
;; https://github.com/libarchive/libarchive/issues/1226
|
||||
(begin
|
||||
(substitute* "libarchive/test/test_write_filter_zstd.c"
|
||||
(("compression-level\", \"6\"")
|
||||
"compression-level\", \"7\""))
|
||||
|
||||
;; The tests allow one to disable tests matching a globbing pattern.
|
||||
(invoke "make" "libarchive_test" "bsdcpio_test" "bsdtar_test")
|
||||
;; XXX: This glob disables too much.
|
||||
(invoke "./libarchive_test" "^test_*_disk*")
|
||||
(invoke "./bsdcpio_test" "^test_owner_parse")
|
||||
(invoke "./bsdtar_test")))
|
||||
;; The tests allow one to disable tests matching a globbing pattern.
|
||||
(invoke "make"
|
||||
"libarchive_test"
|
||||
"bsdcpio_test"
|
||||
"bsdtar_test")
|
||||
|
||||
;; XXX: This glob disables too much.
|
||||
(invoke "./libarchive_test" "^test_*_disk*")
|
||||
(invoke "./bsdcpio_test" "^test_owner_parse")
|
||||
(invoke "./bsdtar_test"))
|
||||
;; Tests may be disabled if cross-compiling.
|
||||
(format #t "Test suite not run.~%"))))
|
||||
(add-after 'install 'add--L-in-libarchive-pc
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
@ -976,6 +990,42 @@ precious backup space.
|
||||
@end itemize")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public zbackup
|
||||
(package
|
||||
(name "zbackup")
|
||||
(version "1.4.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/zbackup/zbackup.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "14l1kyxg7pccpax3d6qcpmdycb70kn3fxp1a59w64hqy2493hngl"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;no test
|
||||
(inputs
|
||||
`(("lzo" ,lzo)
|
||||
("libressl" ,libressl)
|
||||
("protobuf" ,protobuf)
|
||||
("xz" ,xz)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://zbackup.org")
|
||||
(synopsis "Versatile deduplicating backup tool")
|
||||
(description
|
||||
"ZBackup is a globally-deduplicating backup tool, based on the
|
||||
ideas found in Rsync. Feed a large @file{.tar} into it, and it will
|
||||
store duplicate regions of it only once, then compress and optionally
|
||||
encrypt the result. Feed another @file{.tar} file, and it will also
|
||||
re-use any data found in any previous backups. This way only new
|
||||
changes are stored, and as long as the files are not very different,
|
||||
the amount of storage required is very low. Any of the backup files
|
||||
stored previously can be read back in full at any time. The program
|
||||
is format-agnostic, so you can feed virtually any files to it.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public burp
|
||||
(package
|
||||
(name "burp")
|
||||
|
@ -1,16 +1,16 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
@ -93,14 +93,14 @@ command-line arguments, multiple languages, and so on.")
|
||||
(define-public grep
|
||||
(package
|
||||
(name "grep")
|
||||
(version "3.3")
|
||||
(version "3.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/grep/grep-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"055mqp6vrd0brkygmygb2673qwz409a7kyp1mzbfy6cn94f58q5r"))
|
||||
"1yy33kiwrxrwj2nxa4fg15bvmwyghqbs8qwkdvy5phm784f7brjq"))
|
||||
(patches (search-patches "grep-timing-sensitive-test.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl))) ;some of the tests require it
|
||||
@ -134,14 +134,14 @@ including, for example, recursive directory searching.")
|
||||
(define-public sed
|
||||
(package
|
||||
(name "sed")
|
||||
(version "4.7")
|
||||
(version "4.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/sed/sed-" version
|
||||
".tar.xz"))
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0smxcx66vx29djzb542nxcynl7qnzxqa5032ibazi7x2s267d198"))))
|
||||
"0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Stream editor")
|
||||
(native-inputs
|
||||
@ -171,7 +171,22 @@ implementation offers several extensions over the standard utility.")
|
||||
(build-system gnu-build-system)
|
||||
;; Note: test suite requires ~1GiB of disk space.
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
`(,@(if (hurd-target?)
|
||||
'(#:make-flags
|
||||
(list (string-append
|
||||
"TESTSUITEFLAGS= -k '"
|
||||
"!sparse"
|
||||
",!renamed dirs in incrementals"
|
||||
",!--exclude-tag option in incremental pass"
|
||||
",!incremental dumps with -C"
|
||||
",!incremental dumps of nested directories"
|
||||
",!incremental restores with -C"
|
||||
",!concatenated incremental archives (renames)"
|
||||
",!renamed directory containing subdirectories"
|
||||
",!renamed subdirectories"
|
||||
"'")))
|
||||
'())
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'set-shell-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Do not use "/bin/sh" to run programs.
|
||||
@ -254,40 +269,29 @@ interactive means to merge two files.")
|
||||
(define-public findutils
|
||||
(package
|
||||
(name "findutils")
|
||||
(version "4.6.0")
|
||||
(version "4.7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/findutils/findutils-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"178nn4dl7wbcw499czikirnkniwnx36argdnqgz4ik9i6zvwkm6y"))
|
||||
(patches (search-patches
|
||||
"findutils-gnulib-libio.patch"
|
||||
"findutils-localstatedir.patch"
|
||||
"findutils-makedev.patch"
|
||||
"findutils-test-xargs.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; The gnulib test-lock test is prone to writer starvation
|
||||
;; with our glibc@2.25, which prefers readers, so disable it.
|
||||
;; The gnulib commit b20e8afb0b2 should fix this once
|
||||
;; incorporated here.
|
||||
(substitute* "tests/Makefile.in"
|
||||
(("test-lock\\$\\(EXEEXT\\) ") ""))
|
||||
#t))))
|
||||
"16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5"))
|
||||
(patches (search-patches "findutils-localstatedir.patch"
|
||||
"findutils-test-rwlock-threads.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list
|
||||
;; Tell 'updatedb' to write to /var.
|
||||
"--localstatedir=/var"
|
||||
|
||||
;; Work around cross-compilation failure. See
|
||||
;; <http://savannah.gnu.org/bugs/?27299#comment1>.
|
||||
,@(if (%current-target-system)
|
||||
'("gl_cv_func_wcwidth_works=yes")
|
||||
'()))))
|
||||
"--localstatedir=/var")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'check 'adjust-test-shebangs
|
||||
(lambda _
|
||||
(substitute* '("tests/xargs/verbose-quote.sh"
|
||||
"tests/find/exec-plus-last-file.sh")
|
||||
(("#!/bin/sh")
|
||||
(string-append "#!" (which "sh"))))
|
||||
#t)))))
|
||||
(synopsis "Operating on files matching given criteria")
|
||||
(description
|
||||
"Findutils supplies the basic file directory searching utilities of the
|
||||
@ -302,23 +306,26 @@ used to apply commands with arbitrarily long arguments.")
|
||||
(define-public coreutils
|
||||
(package
|
||||
(name "coreutils")
|
||||
(version "8.31")
|
||||
(version "8.32")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/coreutils/coreutils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz"))))
|
||||
"1yjcrh5hw70c0yn8zw55pd6j51dj90anpq8mmg649ps9g3gdhn24"))
|
||||
(patches (search-patches "coreutils-ls.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("acl" ,acl) ; TODO: add SELinux
|
||||
("gmp" ,gmp) ;bignums in 'expr', yay!
|
||||
|
||||
;; Drop the dependency on libcap when cross-compiling since it's
|
||||
;; not quite cross-compilable.
|
||||
,@(if (%current-target-system)
|
||||
'()
|
||||
`(("libcap" ,libcap))))) ;capability support is 'ls', etc.
|
||||
;; Do not use libcap when cross-compiling since it's not quite
|
||||
;; cross-compilable; and use it only for supported systems.
|
||||
,@(if (and (not (%current-target-system))
|
||||
(member (%current-system)
|
||||
(package-supported-systems libcap)))
|
||||
`(("libcap" ,libcap)) ;capability support in 'ls', etc.
|
||||
'())))
|
||||
(native-inputs
|
||||
;; Perl is needed to run tests in native builds, and to run the bundled
|
||||
;; copy of help2man. However, don't pass it when cross-compiling since
|
||||
@ -330,6 +337,23 @@ used to apply commands with arbitrarily long arguments.")
|
||||
(outputs '("out" "debug"))
|
||||
(arguments
|
||||
`(#:parallel-build? #f ; help2man may be called too early
|
||||
,@(if (hurd-target?)
|
||||
'(#:make-flags ; these tests fail deterministically
|
||||
(list (string-append "XFAIL_TESTS=tests/misc/env-S.pl"
|
||||
" tests/misc/kill.sh"
|
||||
" tests/misc/nice.sh"
|
||||
" tests/misc/shred-passes.sh"
|
||||
" tests/split/fail.sh"
|
||||
" tests/split/l-chunk.sh"
|
||||
" tests/dd/stats.sh"
|
||||
" test-fdutimensat"
|
||||
" test-futimens"
|
||||
" test-linkat"
|
||||
" test-renameat"
|
||||
" test-renameatu"
|
||||
" test-tls"
|
||||
" test-utimensat")))
|
||||
'())
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'patch-shell-references
|
||||
(lambda _
|
||||
@ -341,16 +365,6 @@ used to apply commands with arbitrarily long arguments.")
|
||||
(("/bin/sh") (which "sh")))
|
||||
(substitute* (find-files "tests" "\\.sh$")
|
||||
(("#!/bin/sh") (string-append "#!" (which "sh"))))
|
||||
#t))
|
||||
(add-before 'check 'disable-broken-test
|
||||
(lambda _
|
||||
;; This test hits the 127 character shebang limit in the build
|
||||
;; environment due to the way "env -S" splits arguments into
|
||||
;; shebangs. Note that "env-S-script.sh" works around this
|
||||
;; specific issue, but "env-S.pl" is not adjusted for build
|
||||
;; environments with long prefixes (/tmp/guix-build-...).
|
||||
(substitute* "Makefile"
|
||||
(("^.*tests/misc/env-S.pl.*$") ""))
|
||||
#t)))))
|
||||
(synopsis "Core GNU utilities (file, text, shell)")
|
||||
(description
|
||||
@ -370,34 +384,62 @@ standard.")
|
||||
(outputs '("out"))
|
||||
(inputs '())))
|
||||
|
||||
(define-public coreutils-8.30
|
||||
;; XXX: This version is kept just so we can run PRoot tests.
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit coreutils-minimal)
|
||||
(version "8.30")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/coreutils/coreutils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mxhw43d4wpqmvg0l4znk1vm10fy92biyh90lzdnqjcic2lb6cg8"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments coreutils-minimal)
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'disable-broken-test
|
||||
(lambda _
|
||||
;; This test hits the 127 character shebang limit in the build
|
||||
;; environment due to the way "env -S" splits arguments into
|
||||
;; shebangs. Note that "env-S-script.sh" works around this
|
||||
;; specific issue, but "env-S.pl" is not adjusted for build
|
||||
;; environments with long prefixes (/tmp/guix-build-...).
|
||||
(substitute* "Makefile"
|
||||
(("^.*tests/misc/env-S.pl.*$") ""))
|
||||
#t)))))))))
|
||||
|
||||
(define-public gnu-make
|
||||
(package
|
||||
(name "make")
|
||||
(version "4.2.1")
|
||||
(version "4.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/make/make-" version
|
||||
".tar.bz2"))
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))
|
||||
(patches (search-patches "make-impure-dirs.patch"
|
||||
"make-glibc-compat.patch"))))
|
||||
"06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0"))
|
||||
(patches (search-patches "make-impure-dirs.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile
|
||||
(inputs `(("guile" ,guile-2.0)))
|
||||
(inputs `(("guile" ,guile-3.0)))
|
||||
(outputs '("out" "debug"))
|
||||
(arguments
|
||||
'(;; Work around faulty glob detection with glibc 2.27. See
|
||||
;; <https://lists.nongnu.org/archive/html/bug-make/2017-11/msg00027.html>.
|
||||
#:configure-flags '("make_cv_sys_gnu_glob=yes")
|
||||
`(,@(if (hurd-target?)
|
||||
'(#:configure-flags '("CFLAGS=-D__alloca=alloca"
|
||||
"ac_cv_func_posix_spawn=no"))
|
||||
'())
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'set-default-shell
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Change the default shell from /bin/sh.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "job.c"
|
||||
(substitute* "src/job.c"
|
||||
(("default_shell =.*$")
|
||||
(format #f "default_shell = \"~a/bin/sh\";\n"
|
||||
bash)))
|
||||
@ -413,17 +455,42 @@ change. GNU make offers many powerful extensions over the standard utility.")
|
||||
(license gpl3+)
|
||||
(home-page "https://www.gnu.org/software/make/")))
|
||||
|
||||
(define-public gnu-make-4.2
|
||||
(package
|
||||
(inherit gnu-make)
|
||||
(version "4.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/make/make-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
|
||||
(arguments
|
||||
`(#:configure-flags '("CFLAGS=-D__alloca=alloca")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'set-default-shell
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Change the default shell from /bin/sh.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "job.c"
|
||||
(("default_shell =.*$")
|
||||
(format #f "default_shell = \"~a/bin/sh\";\n"
|
||||
bash)))
|
||||
#t))))))))
|
||||
|
||||
(define-public binutils
|
||||
(package
|
||||
(name "binutils")
|
||||
(version "2.32")
|
||||
(version "2.34")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/binutils/binutils-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b8767nyal1bc4cyzg5h9iis8kpkln1i3wkamig75cifj1fb2f6y"))
|
||||
"1rin1f5c7wm4n3piky6xilcrpf2s0n3dd5vqq8irrxkcic3i1w49"))
|
||||
(patches (search-patches "binutils-loongson-workaround.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
@ -448,7 +515,17 @@ 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")
|
||||
|
||||
;; XXX: binutils 2.34 was mistakenly released without generated manuals:
|
||||
;; <https://sourceware.org/bugzilla/show_bug.cgi?id=25491>. To avoid a
|
||||
;; circular dependency on texinfo, prevent the build system from creating
|
||||
;; the manuals by calling "true" instead of "makeinfo"...
|
||||
#:make-flags '("MAKEINFO=true")))
|
||||
|
||||
;; ...and "hide" this package so that users who install binutils get the
|
||||
;; version with documentation defined below.
|
||||
(properties '((hidden? . #t)))
|
||||
|
||||
(synopsis "Binary utilities: bfd gas gprof ld")
|
||||
(description
|
||||
@ -461,6 +538,37 @@ included.")
|
||||
(license gpl3+)
|
||||
(home-page "https://www.gnu.org/software/binutils/")))
|
||||
|
||||
;; Work around a problem with binutils 2.34 whereby manuals are missing from
|
||||
;; the release tarball. Remove this and the related code above when updating.
|
||||
(define-public binutils+documentation
|
||||
(package/inherit
|
||||
binutils
|
||||
(native-inputs
|
||||
`(("texinfo" ,texinfo)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments binutils)
|
||||
((#:make-flags _ ''()) ''())))
|
||||
(properties '())))
|
||||
|
||||
;; 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.
|
||||
(define-public binutils-2.33
|
||||
(package/inherit
|
||||
binutils
|
||||
(version "2.33.1")
|
||||
(source (origin
|
||||
(inherit (package-source binutils))
|
||||
(uri (string-append "mirror://gnu/binutils/binutils-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments binutils)
|
||||
((#:make-flags _ ''()) ''())))
|
||||
(properties '())))
|
||||
|
||||
(define-public binutils-gold
|
||||
(package
|
||||
(inherit binutils)
|
||||
@ -491,7 +599,7 @@ included.")
|
||||
(define* (make-ld-wrapper name #:key
|
||||
(target (const #f))
|
||||
binutils
|
||||
(guile (canonical-package guile-2.2))
|
||||
(guile (canonical-package guile-3.0))
|
||||
(bash (canonical-package bash))
|
||||
(guile-for-build guile))
|
||||
"Return a package called NAME that contains a wrapper for the 'ld' program
|
||||
@ -529,7 +637,9 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
|
||||
'(string-append bin "/ld")))
|
||||
(go (string-append ld ".go")))
|
||||
|
||||
(setvbuf (current-output-port) _IOLBF)
|
||||
(setvbuf (current-output-port)
|
||||
(cond-expand (guile-2.0 _IOLBF)
|
||||
(else 'line)))
|
||||
(format #t "building ~s/bin/ld wrapper in ~s~%"
|
||||
(assoc-ref %build-inputs "binutils")
|
||||
out)
|
||||
@ -569,13 +679,13 @@ the store.")
|
||||
;; version 2.28, GNU/Hurd used a different glibc branch.
|
||||
(package
|
||||
(name "glibc")
|
||||
(version "2.29")
|
||||
(version "2.31")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk"))
|
||||
"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj"))
|
||||
(snippet
|
||||
;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is
|
||||
;; required on LFS distros to avoid loading the distro's libc.so
|
||||
@ -587,14 +697,14 @@ the store.")
|
||||
#t))
|
||||
(modules '((guix build utils)))
|
||||
(patches (search-patches "glibc-ldd-x86_64.patch"
|
||||
"glibc-CVE-2019-7309.patch"
|
||||
"glibc-CVE-2019-9169.patch"
|
||||
"glibc-2.29-git-updates.patch"
|
||||
"glibc-hidden-visibility-ldconfig.patch"
|
||||
"glibc-versioned-locpath.patch"
|
||||
"glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-reinstate-prlimit64-fallback.patch"
|
||||
"glibc-supported-locales.patch"))))
|
||||
"glibc-supported-locales.patch"
|
||||
"glibc-hurd-clock_t_centiseconds.patch"
|
||||
"glibc-hurd-clock_gettime_monotonic.patch"
|
||||
"glibc-hurd-signal-sa-siginfo.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
|
||||
@ -821,6 +931,44 @@ with the Linux kernel.")
|
||||
;; Below are old libc versions, which we use mostly to build locale data in
|
||||
;; the old format (which the new libc cannot cope with.)
|
||||
|
||||
(define-public glibc-2.30
|
||||
(package
|
||||
(inherit glibc)
|
||||
(version "2.30")
|
||||
(source (origin
|
||||
(inherit (package-source glibc))
|
||||
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72"))
|
||||
(patches (search-patches "glibc-ldd-x86_64.patch"
|
||||
"glibc-CVE-2019-19126.patch"
|
||||
"glibc-hidden-visibility-ldconfig.patch"
|
||||
"glibc-versioned-locpath.patch"
|
||||
"glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-reinstate-prlimit64-fallback.patch"
|
||||
"glibc-2.29-supported-locales.patch"))))))
|
||||
|
||||
(define-public glibc-2.29
|
||||
(package
|
||||
(inherit glibc)
|
||||
(version "2.29")
|
||||
(source (origin
|
||||
(inherit (package-source glibc))
|
||||
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk"))
|
||||
(patches (search-patches "glibc-ldd-x86_64.patch"
|
||||
"glibc-CVE-2019-7309.patch"
|
||||
"glibc-CVE-2019-9169.patch"
|
||||
"glibc-2.29-git-updates.patch"
|
||||
"glibc-hidden-visibility-ldconfig.patch"
|
||||
"glibc-versioned-locpath.patch"
|
||||
"glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-reinstate-prlimit64-fallback.patch"
|
||||
"glibc-2.29-supported-locales.patch"))))))
|
||||
|
||||
(define-public glibc-2.28
|
||||
(package
|
||||
(inherit glibc)
|
||||
@ -980,21 +1128,8 @@ with the Linux kernel.")
|
||||
(package-name libc) "-"
|
||||
(package-version libc)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments
|
||||
(ensure-keyword-arguments (package-arguments base-gcc)
|
||||
'(#:implicit-inputs? #f))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'configure 'treat-glibc-as-system-header
|
||||
(lambda _
|
||||
(let ((libc (assoc-ref %build-inputs "libc")))
|
||||
;; GCCs build processes requires that the libc
|
||||
;; we're building against is on the system header
|
||||
;; search path.
|
||||
(for-each (lambda (var)
|
||||
(setenv var (string-append libc "/include")))
|
||||
'("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))
|
||||
#t)))))))
|
||||
(ensure-keyword-arguments (package-arguments base-gcc)
|
||||
'(#:implicit-inputs? #f)))
|
||||
(native-inputs
|
||||
`(,@(package-native-inputs base-gcc)
|
||||
,@(append (fold alist-delete (%final-inputs) '("libc" "libc:static")))
|
||||
@ -1134,18 +1269,12 @@ test environments.")
|
||||
(make-glibc-utf8-locales glibc))
|
||||
|
||||
;; Packages provided to ease use of binaries linked against the previous libc.
|
||||
(define-public glibc-locales-2.28
|
||||
(package (inherit (make-glibc-locales glibc-2.28))
|
||||
(name "glibc-locales-2.28")))
|
||||
(define-public glibc-utf8-locales-2.28
|
||||
(package (inherit (make-glibc-utf8-locales glibc-2.28))
|
||||
(name "glibc-utf8-locales-2.28")))
|
||||
|
||||
;; These should no longer be needed.
|
||||
(define-public glibc-utf8-locales-2.27
|
||||
(deprecated-package "glibc-utf8-locales-2.27" glibc-utf8-locales-2.28))
|
||||
(define-public glibc-locales-2.27
|
||||
(deprecated-package "glibc-locales-2.27" glibc-locales-2.28))
|
||||
(define-public glibc-locales-2.29
|
||||
(package (inherit (make-glibc-locales glibc-2.29))
|
||||
(name "glibc-locales-2.29")))
|
||||
(define-public glibc-utf8-locales-2.29
|
||||
(package (inherit (make-glibc-utf8-locales glibc-2.29))
|
||||
(name "glibc-utf8-locales-2.29")))
|
||||
|
||||
(define-public which
|
||||
(package
|
||||
@ -1173,6 +1302,15 @@ command.")
|
||||
(outputs '("out"))
|
||||
(propagated-inputs `(("gnumach-headers" ,gnumach-headers)
|
||||
("hurd-headers" ,hurd-headers)))
|
||||
(native-inputs
|
||||
`(("mig" ,(if (%current-target-system)
|
||||
;; XXX: When targeting i586-pc-gnu, we need a 32-bit MiG,
|
||||
;; hence this hack.
|
||||
(package
|
||||
(inherit mig)
|
||||
(arguments `(#:system "i686-linux")))
|
||||
mig))
|
||||
,@(package-native-inputs glibc)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments glibc)
|
||||
;; We just pass the flags really needed to build the headers.
|
||||
@ -1275,7 +1413,7 @@ and daylight-saving rules.")
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit tzdata)
|
||||
(version "2019b")
|
||||
(version "2019c")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -1283,7 +1421,7 @@ and daylight-saving rules.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0r0clnlslwm15m1c61dinf1fi9ffgl6aipng7i7yryfwj0n0kn85"))))
|
||||
"0z7w1yv37cfk8yhix2cillam091vgp1j4g8fv84261q9mdnq1ivr"))))
|
||||
(inputs
|
||||
`(("tzcode" ,(origin
|
||||
(method url-fetch)
|
||||
@ -1292,7 +1430,7 @@ and daylight-saving rules.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vbmswvv3li25s31shyllq5v24449lxnrki9hr043nipjd09sirf")))))))))
|
||||
"1m3y2rnf1nggxxhxplab5zdd5whvar3ijyrv7lifvm82irkd7szn")))))))))
|
||||
|
||||
(define-public libiconv
|
||||
(package
|
||||
|
@ -69,7 +69,16 @@
|
||||
(4 "021gqqvgydixkrmqss64b6srfdlkvnx88lyfzpxfrn5d6bc7li0l")
|
||||
(5 "0xl2kyzm84nlyklrqzkn73ixabhzfhn9x91lzcmis89cppclvxav")
|
||||
(6 "0844749ixk1z60437nkznzms1f0nzh9an62kj7sny6r0zyk2k1fn")
|
||||
(7 "16xg37gp1b8zlj5969w8mcrparwqlcbj9695vn3qhgb7wdz1xd0p")))
|
||||
(7 "16xg37gp1b8zlj5969w8mcrparwqlcbj9695vn3qhgb7wdz1xd0p")
|
||||
(8 "1qyp19krjh8zxvb0jgwmyjz40djslwcf4xi7kc1ab0iaca44bipf")
|
||||
(9 "00yrjjqd95s81b21qq3ba1y7h879q8jaajlkjggc6grhcwbs4g7d")
|
||||
(10 "04ca5bjv456v538mkspzvn4xb2zdphh31r4fpvfm9p5my0jw7yyn")
|
||||
(11 "1sklyixvsv8993kxzs0jigacpdchjrq7jv5xpdx7kbqyp4rf6k9c")
|
||||
(12 "0cz21qg2gbr40lfgza7g02bqi2qknwqgxnq459pjj640d0cywhr9")
|
||||
(13 "16h9nwz3yzwj7fnxvlidjymdc4yr30h818433gh9j1x3in6igmzm")
|
||||
(14 "12gm5bvv2pd3m72z2ilj26pa08c61az253dsgfl24vpf2ijywvjx")
|
||||
(15 "0pm0px758w4i23s55wajcv6lqfiym7zgxvq0pxf6vclkv8nxy5x5")
|
||||
(16 "0vdha332km2iwx8g2ld15jy7d24cbplzgr1531dpzylr9ajxglgz")))
|
||||
|
||||
(define (download-patches store count)
|
||||
"Download COUNT Bash patches into store. Return a list of
|
||||
@ -116,7 +125,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
|
||||
(base32
|
||||
"0kgvfwqdcd90waczf4gx39xnrxzijhjrzyzv7s8v4w31qqm0za5l"))
|
||||
(patch-flags '("-p0"))
|
||||
(patches %patch-series-5.0)))
|
||||
(patches (cons (search-patch "bash-linux-pgrp-pipe.patch")
|
||||
%patch-series-5.0))))
|
||||
(version (string-append version "." (number->string (length %patch-series-5.0))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -24,6 +24,7 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages hurd))
|
||||
@ -31,14 +32,14 @@
|
||||
(define-public libgc
|
||||
(package
|
||||
(name "libgc")
|
||||
(version "7.6.12")
|
||||
(version "8.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/ivmai/bdwgc/releases"
|
||||
"/download/v" version "/gc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10jhhi79d5brwlsyhwgpnrmc8nhlf7aan2lk9xhgihk5jc6srbvc"))))
|
||||
"1798rp3mcfkgs38ynkbg2p47bq59pisrc6mn0l20pb5iczf0ssj3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
@ -54,21 +55,14 @@
|
||||
,@(if (hurd-triplet? (or (%current-system)
|
||||
(%current-target-system)))
|
||||
'("--disable-gcj-support")
|
||||
'()))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'adjust-pc-file
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((libatomic-ops (assoc-ref inputs "libatomic-ops")))
|
||||
;; GC 7.6.10 and later includes -latomic_ops in the
|
||||
;; pkg-config file. To avoid propagation, insert an
|
||||
;; absolute reference so dependent programs can find it.
|
||||
(substitute* "bdw-gc.pc.in"
|
||||
(("@ATOMIC_OPS_LIBS@" match)
|
||||
(string-append "-L" libatomic-ops "/lib "
|
||||
match)))
|
||||
#t))))))
|
||||
'()))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("libatomic-ops" ,libatomic-ops)))
|
||||
(propagated-inputs
|
||||
(if (%current-target-system)
|
||||
;; The build system refuses to check for compiler intrinsics when
|
||||
;; cross-compiling, and demands using libatomic-ops instead.
|
||||
`(("libatomic-ops" ,libatomic-ops))
|
||||
'()))
|
||||
(outputs '("out" "debug"))
|
||||
(synopsis "The Boehm-Demers-Weiser conservative garbage collector
|
||||
for C and C++")
|
||||
@ -91,17 +85,27 @@ C or C++ programs, though that is not its primary goal.")
|
||||
|
||||
(license (x11-style (string-append home-page "license.txt")))))
|
||||
|
||||
(define-public libgc-8.0
|
||||
;; TODO: Add a static output in libgc in the next rebuild cycle.
|
||||
(define-public libgc/static-libs
|
||||
(package/inherit
|
||||
libgc
|
||||
(arguments (substitute-keyword-arguments (package-arguments libgc)
|
||||
((#:configure-flags flags ''())
|
||||
`(cons "--enable-static" ,flags))))
|
||||
(properties '((hidden? . #t)))))
|
||||
|
||||
(define-public libgc-7
|
||||
(package
|
||||
(inherit libgc)
|
||||
(version "8.0.4")
|
||||
(version "7.6.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/ivmai/bdwgc/releases"
|
||||
"/download/v" version "/gc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1798rp3mcfkgs38ynkbg2p47bq59pisrc6mn0l20pb5iczf0ssj3"))))))
|
||||
"10jhhi79d5brwlsyhwgpnrmc8nhlf7aan2lk9xhgihk5jc6srbvc"))))
|
||||
(propagated-inputs `(("libatomic-ops" ,libatomic-ops)))))
|
||||
|
||||
(define-public libgc/back-pointers
|
||||
(package/inherit
|
||||
|
@ -79,6 +79,7 @@
|
||||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages graph)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
@ -4942,14 +4943,24 @@ files and writing bioinformatics applications.")
|
||||
"1agfz6zqa8nc6cw47yh0s3y14gkpa9wqazwcj7mwwj3ffnw39p3j"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2)) ; requires Python 2.7
|
||||
`(#:python ,python-2 ; requires Python 2.7
|
||||
#:tests? #f ; test data are not included
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'use-weave
|
||||
(lambda _
|
||||
(substitute* "warpedlmm/util/linalg.py"
|
||||
(("from scipy import linalg, weave")
|
||||
"from scipy import linalg\nimport weave"))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
`(("python-scipy" ,python2-scipy)
|
||||
("python-numpy" ,python2-numpy)
|
||||
("python-matplotlib" ,python2-matplotlib)
|
||||
("python-fastlmm" ,python2-fastlmm)
|
||||
("python-pandas" ,python2-pandas)
|
||||
("python-pysnptools" ,python2-pysnptools)))
|
||||
("python-pysnptools" ,python2-pysnptools)
|
||||
("python-weave" ,python2-weave)))
|
||||
(native-inputs
|
||||
`(("python-mock" ,python2-mock)
|
||||
("python-nose" ,python2-nose)
|
||||
@ -11984,7 +11995,8 @@ dependency like SeqAn.")
|
||||
;; Ensure that Eigen headers can be found
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-append (assoc-ref inputs "eigen")
|
||||
"/include/eigen3"))
|
||||
"/include/eigen3:"
|
||||
(or (getenv "CPLUS_INCLUDE_PATH") "")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
@ -12162,8 +12174,8 @@ The following file formats are supported:
|
||||
(("lib/libdivsufsort.a") "/lib/libdivsufsort.so"))
|
||||
|
||||
;; Ensure that all headers can be found
|
||||
(setenv "CPATH"
|
||||
(string-append (getenv "CPATH")
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-append (or (getenv "CPLUS_INCLUDE_PATH") "")
|
||||
":"
|
||||
(assoc-ref inputs "eigen")
|
||||
"/include/eigen3"))
|
||||
@ -13302,6 +13314,42 @@ cases include:
|
||||
@end enumerate\n")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public miniasm
|
||||
(package
|
||||
(name "miniasm")
|
||||
(version "0.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/lh3/miniasm/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0g89pa98dvh34idv7w1zv12bsbyr3a11c4qb1cdcz68gyda88s4v"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:tests? #f ; There are no tests.
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
|
||||
(install-file "miniasm" bin)
|
||||
(install-file "minidot" bin)))))))
|
||||
(home-page "https://github.com/lh3/miniasm")
|
||||
(synopsis "Ultrafast de novo assembly for long noisy reads")
|
||||
(description "Miniasm is a very fast OLC-based de novo assembler for noisy
|
||||
long reads. It takes all-vs-all read self-mappings (typically by minimap) as
|
||||
input and outputs an assembly graph in the GFA format. Different from
|
||||
mainstream assemblers, miniasm does not have a consensus step. It simply
|
||||
concatenates pieces of read sequences to generate the final unitig sequences.
|
||||
Thus the per-base error rate is similar to the raw input reads.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-circus
|
||||
(package
|
||||
(name "r-circus")
|
||||
@ -15807,3 +15855,44 @@ biological processes. SBML is useful for models of metabolism, cell
|
||||
signaling, and more. It continues to be evolved and expanded by an
|
||||
international community.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public grocsvs
|
||||
;; The last release is out of date and new features have been added.
|
||||
(let ((commit "ecd956a65093a0b2c41849050e4512d46fecea5d")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "grocsvs")
|
||||
(version (git-version "0.2.6.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/grocsvs/grocsvs")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "14505725gr7qxc17cxxf0k6lzcwmgi64pija4mwf29aw70qn35cc"))
|
||||
(patches (search-patches "grocsvs-dont-use-admiral.patch"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; No test suite.
|
||||
#:python ,python-2)) ; Only python-2 supported.
|
||||
(inputs
|
||||
`(("python2-h5py" ,python2-h5py)
|
||||
("python2-ipython-cluster-helper" ,python2-ipython-cluster-helper)
|
||||
("python2-networkx" ,python2-networkx)
|
||||
("python2-psutil" ,python2-psutil)
|
||||
("python2-pandas" ,python2-pandas)
|
||||
("python2-pybedtools" ,python2-pybedtools)
|
||||
("python2-pyfaidx" ,python2-pyfaidx)
|
||||
("python2-pygraphviz" ,python2-pygraphviz)
|
||||
("python2-pysam" ,python2-pysam)
|
||||
("python2-scipy" ,python2-scipy)))
|
||||
(home-page "https://github.com/grocsvs/grocsvs")
|
||||
(synopsis "Genome-wide reconstruction of complex structural variants")
|
||||
(description
|
||||
"@dfn{Genome-wide Reconstruction of Complex Structural Variants}
|
||||
(GROC-SVs) is a software pipeline for identifying large-scale structural
|
||||
variants, performing sequence assembly at the breakpoints, and reconstructing
|
||||
the complex structural variants using the long-fragment information from the
|
||||
10x Genomics platform.")
|
||||
(license license:expat))))
|
||||
|
@ -31,7 +31,7 @@
|
||||
(define-public bison
|
||||
(package
|
||||
(name "bison")
|
||||
(version "3.4.1")
|
||||
(version "3.5.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -39,7 +39,7 @@
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03c2pmq3bs0drdislnz6gm1rwz3n4pb2rz9navyxydppxg2rl597"))))
|
||||
"1i57hbczvr8674z73775jxdd3y59qggs5lmfd60gmwm5i1gmpy1b"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(;; Building in parallel on many-core systems may cause an error such as
|
||||
|
@ -407,7 +407,7 @@ and will take advantage of multiple processor cores where possible.")
|
||||
(assoc-ref %outputs "out") "/lib"))))
|
||||
(inputs `(("boost" ,boost)
|
||||
("openssl" ,openssl)))
|
||||
(native-inputs `(("python" ,python-2)
|
||||
(native-inputs `(("python" ,python-wrapper)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://www.libtorrent.org/")
|
||||
(synopsis "Feature complete BitTorrent implementation")
|
||||
|
@ -10,7 +10,9 @@
|
||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -40,66 +42,113 @@
|
||||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages shells))
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define (version-with-underscores version)
|
||||
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version))
|
||||
|
||||
(define (boost-patch name version hash)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.boost.org/patches/"
|
||||
(version-with-underscores version) "/" name))
|
||||
(file-name (string-append "boost-" name))
|
||||
(sha256 (base32 hash))))
|
||||
|
||||
(define-public boost
|
||||
(package
|
||||
(name "boost")
|
||||
(version "1.70.0")
|
||||
(version "1.72.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (let ((version-with-underscores
|
||||
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)))
|
||||
(list (string-append "mirror://sourceforge/boost/boost/" version
|
||||
"/boost_" version-with-underscores ".tar.bz2")
|
||||
(string-append "https://dl.bintray.com/boostorg/release/"
|
||||
version "/source/boost_"
|
||||
version-with-underscores ".tar.bz2"))))
|
||||
(uri (string-append "https://dl.bintray.com/boostorg/release/"
|
||||
version "/source/boost_"
|
||||
(version-with-underscores version) ".tar.bz2"))
|
||||
(patches
|
||||
(list (boost-patch
|
||||
;; 1.72.0 was released with a faulty coroutine submodule:
|
||||
;; <https://github.com/boostorg/coroutine/issues/46>.
|
||||
"0001-revert-cease-dependence-on-range.patch" version
|
||||
"1zcqxzh56m1s635wqwk15j3zcs2gmjvjy2f0hid7i78s4pgm0yfs")))
|
||||
(sha256
|
||||
(base32
|
||||
"0y47nc7w0arwgj4x1phadxbvl7wyfcgknbz5kv8lzpl98wsyh2j3"))))
|
||||
"08h7cv61fd0lzb4z50xanfqn0pdgvizjrpd1kcdgj725pisb5jar"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("icu4c" ,icu4c)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("python" ,python-2)
|
||||
,@(if (%current-target-system)
|
||||
'()
|
||||
`(("python" ,python-wrapper)))
|
||||
("tcsh" ,tcsh)))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
`(#:imported-modules ((guix build python-build-system)
|
||||
,@%gnu-build-system-modules)
|
||||
#:modules (((guix build python-build-system) #:select (python-version))
|
||||
,@%gnu-build-system-modules)
|
||||
#:tests? #f
|
||||
#:make-flags
|
||||
(list "threading=multi" "link=shared"
|
||||
|
||||
;; XXX: Disable installation of Boosts modular CMake config scripts
|
||||
;; which conflicts in 1.70.0 with the ones provided by CMake.
|
||||
;; See <https://bugs.gnu.org/36721>.
|
||||
"--no-cmake-config"
|
||||
|
||||
;; Set the RUNPATH to $libdir so that the libs find each other.
|
||||
(string-append "linkflags=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib"))
|
||||
(assoc-ref %outputs "out") "/lib")
|
||||
,@(if (%current-target-system)
|
||||
`("--user-config=user-config.jam"
|
||||
;; Python is not supported when cross-compiling.
|
||||
"--without-python"
|
||||
"binary-format=elf"
|
||||
"target-os=linux"
|
||||
,@(cond
|
||||
((string-prefix? "arm" (%current-target-system))
|
||||
'("abi=aapcs"
|
||||
"address-model=32"
|
||||
"architecture=arm"))
|
||||
((string-prefix? "aarch64" (%current-target-system))
|
||||
'("abi=aapcs"
|
||||
"address-model=64"
|
||||
"architecture=arm"))
|
||||
(else '())))
|
||||
'()))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'bootstrap)
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((icu (assoc-ref inputs "icu4c"))
|
||||
(python (assoc-ref inputs "python"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(substitute* '("libs/config/configure"
|
||||
"libs/spirit/classic/phoenix/test/runtest.sh"
|
||||
"tools/build/src/engine/execunix.c"
|
||||
"tools/build/src/engine/Jambase"
|
||||
"tools/build/src/engine/jambase.c")
|
||||
"tools/build/src/engine/execunix.cpp"
|
||||
"tools/build/src/engine/Jambase")
|
||||
(("/bin/sh") (which "sh")))
|
||||
|
||||
(setenv "SHELL" (which "sh"))
|
||||
(setenv "CONFIG_SHELL" (which "sh"))
|
||||
|
||||
,@(if (%current-target-system)
|
||||
`((call-with-output-file "user-config.jam"
|
||||
(lambda (port)
|
||||
(format port
|
||||
"using gcc : cross : ~a-c++ ;"
|
||||
,(%current-target-system)))))
|
||||
'())
|
||||
|
||||
(invoke "./bootstrap.sh"
|
||||
(string-append "--prefix=" out)
|
||||
;; Auto-detection looks for ICU only in traditional
|
||||
;; install locations.
|
||||
(string-append "--with-icu=" icu)
|
||||
;; Ditto for Python.
|
||||
,@(if (%current-target-system)
|
||||
'()
|
||||
`((string-append "--with-python-root=" python)
|
||||
(string-append "--with-python=" python "/bin/python")
|
||||
(string-append "--with-python-version="
|
||||
(python-version python))))
|
||||
"--with-toolset=gcc"))))
|
||||
(replace 'build
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
@ -109,17 +158,27 @@
|
||||
(replace 'install
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(apply invoke "./b2" "install" make-flags)))
|
||||
(add-after 'install 'provide-libboost_python
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Boost can build support for both Python 2 and Python 3 since
|
||||
;; version 1.67.0, and suffixes each library with the Python
|
||||
;; version. Many consumers only check for libboost_python
|
||||
;; however, so we provide it here as suggested in
|
||||
;; <https://github.com/boostorg/python/issues/203>.
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(symlink "libboost_python27.so" "libboost_python.so"))
|
||||
#t))))))
|
||||
,@(if (%current-target-system)
|
||||
'()
|
||||
'((add-after 'install 'provide-libboost_python
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(python-version (python-version
|
||||
(assoc-ref inputs "python")))
|
||||
(libboost_pythonNN.so
|
||||
(string-append "libboost_python"
|
||||
(string-join (string-split
|
||||
python-version #\.)
|
||||
"")
|
||||
".so")))
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(symlink libboost_pythonNN.so "libboost_python.so")
|
||||
;; Some packages only look for the major version.
|
||||
(symlink libboost_pythonNN.so
|
||||
(string-append "libboost_python"
|
||||
(string-take python-version 1)
|
||||
".so")))
|
||||
#t))))))))
|
||||
|
||||
(home-page "https://www.boost.org")
|
||||
(synopsis "Peer-reviewed portable C++ source libraries")
|
||||
@ -129,54 +188,16 @@ across a broad spectrum of applications.")
|
||||
(license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
|
||||
"Some components have other similar licences."))))
|
||||
|
||||
;; TODO: Merge with 'Boost' in the next rebuild cycle.
|
||||
(define-public boost-with-python3
|
||||
(define-public boost-with-python2
|
||||
(package
|
||||
(inherit boost)
|
||||
(name "boost-python3")
|
||||
(name "boost-python2")
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("python" ,python)
|
||||
("tcsh" ,tcsh)))
|
||||
(arguments (substitute-keyword-arguments (package-arguments boost)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((icu (assoc-ref inputs "icu4c"))
|
||||
(python (assoc-ref inputs "python"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(substitute* '("libs/config/configure"
|
||||
"libs/spirit/classic/phoenix/test/runtest.sh"
|
||||
"tools/build/src/engine/execunix.c"
|
||||
"tools/build/src/engine/Jambase"
|
||||
"tools/build/src/engine/jambase.c")
|
||||
(("/bin/sh") (which "sh")))
|
||||
`(("python" ,python-2)
|
||||
,@(alist-delete "python" (package-native-inputs boost))))))
|
||||
|
||||
(setenv "SHELL" (which "sh"))
|
||||
(setenv "CONFIG_SHELL" (which "sh"))
|
||||
|
||||
(substitute* "tools/build/src/tools/python.jam"
|
||||
(("include/python\\$\\(version\\)")
|
||||
"include/python$(version)m"))
|
||||
|
||||
(invoke "./bootstrap.sh"
|
||||
(string-append "--prefix=" out)
|
||||
;; Auto-detection looks for dependencies only
|
||||
;; in traditional install locations.
|
||||
(string-append "--with-icu=" icu)
|
||||
(string-append "--with-python=" python "/bin/python3")
|
||||
(string-append "--with-python-root=" python)
|
||||
"--with-python-version=3.7"
|
||||
"--with-toolset=gcc"))))
|
||||
(replace 'provide-libboost_python
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(symlink "libboost_python37.so" "libboost_python.so")
|
||||
;; Some packages also look for libboost_python3.so
|
||||
(symlink "libboost_python37.so" "libboost_python3.so"))
|
||||
#t)))))))))
|
||||
(define-public boost-with-python3
|
||||
(deprecated-package "boost-with-python3" boost))
|
||||
|
||||
(define-public boost-static
|
||||
(package
|
||||
@ -189,35 +210,20 @@ across a broad spectrum of applications.")
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'provide-libboost_python
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(python-version (python-version
|
||||
(assoc-ref inputs "python")))
|
||||
(libboost_pythonNN.a
|
||||
(string-append "libboost_python"
|
||||
(string-join (string-split
|
||||
python-version #\.)
|
||||
"")
|
||||
".a")))
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(symlink "libboost_python27.a" "libboost_python.a"))
|
||||
(symlink libboost_pythonNN.a "libboost_python.a"))
|
||||
#t)))))))))
|
||||
|
||||
(define-public boost-1.69
|
||||
(package
|
||||
(inherit boost)
|
||||
(name "boost")
|
||||
(version "1.69.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (let ((version-with-underscores
|
||||
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)))
|
||||
(list (string-append "mirror://sourceforge/boost/boost/" version
|
||||
"/boost_" version-with-underscores ".tar.bz2")
|
||||
(string-append "https://dl.bintray.com/boostorg/release/"
|
||||
version "/source/boost_"
|
||||
version-with-underscores ".tar.bz2"))))
|
||||
(sha256
|
||||
(base32
|
||||
"01j4n142dz20lcgqji8d8hspp04p1nv7m8i6dz8w5lchfdhx8clg"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments boost)
|
||||
((#:make-flags flags)
|
||||
`(cons* "cxxflags=-std=c++14" ,flags))))
|
||||
(properties '((hidden? . #t)))))
|
||||
|
||||
(define-public boost-for-mysql
|
||||
;; Older version for MySQL 5.7.23.
|
||||
(package
|
||||
|
@ -11,6 +11,7 @@
|
||||
;;; Copyright © 2019 nee <nee@cock.li>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <vagrant@debian.org>
|
||||
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;;
|
||||
@ -93,7 +94,9 @@
|
||||
(sha256
|
||||
(base32
|
||||
"0zgp5m3hmc9jh8wpjx6czzkh5id2y8n1k823x2mjvm2sk6b28ag5"))
|
||||
(patches (search-patches "grub-efi-fat-serial-number.patch"))))
|
||||
(patches (search-patches
|
||||
"grub-efi-fat-serial-number.patch"
|
||||
"grub-verifiers-Blocklist-fallout-cleanup.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
@ -154,11 +157,19 @@
|
||||
|
||||
;; Depend on LVM2 for libdevmapper, used by 'grub-probe' and
|
||||
;; 'grub-install' to recognize mapped devices (LUKS, etc.)
|
||||
("lvm2" ,lvm2)
|
||||
,@(if (member (or (%current-target-system)
|
||||
(%current-system))
|
||||
(package-supported-systems lvm2))
|
||||
`(("lvm2" ,lvm2))
|
||||
'())
|
||||
|
||||
;; Depend on mdadm, which is invoked by 'grub-probe' and 'grub-install'
|
||||
;; to determine whether the root file system is RAID.
|
||||
("mdadm" ,mdadm)
|
||||
,@(if (member (or (%current-target-system)
|
||||
(%current-system))
|
||||
(package-supported-systems mdadm))
|
||||
`(("mdadm" ,mdadm))
|
||||
'())
|
||||
|
||||
;; Console-setup's ckbcomp is invoked by grub-kbdcomp. It is required
|
||||
;; for generating alternative keyboard layouts.
|
||||
@ -166,7 +177,11 @@
|
||||
|
||||
;; Needed for ‘grub-mount’, the only reliable way to tell whether a given
|
||||
;; file system will be readable by GRUB without rebooting.
|
||||
("fuse" ,fuse)
|
||||
,@(if (member (or (%current-target-system)
|
||||
(%current-system))
|
||||
(package-supported-systems fuse))
|
||||
`(("fuse" ,fuse))
|
||||
'())
|
||||
|
||||
("freetype" ,freetype)
|
||||
;; ("libusb" ,libusb)
|
||||
@ -198,7 +213,9 @@
|
||||
;; Dependencies for the test suite. The "real" QEMU is needed here,
|
||||
;; because several targets are used.
|
||||
("parted" ,parted)
|
||||
("qemu" ,qemu-minimal)
|
||||
,@(if (member (%current-system) (package-supported-systems qemu-minimal))
|
||||
`(("qemu" ,qemu-minimal))
|
||||
'())
|
||||
("xorriso" ,xorriso)))
|
||||
(home-page "https://www.gnu.org/software/grub/")
|
||||
(synopsis "GRand Unified Boot loader")
|
||||
@ -212,6 +229,33 @@ menu to select one of the installed operating systems.")
|
||||
(license license:gpl3+)
|
||||
(properties '((cpe-name . "grub2")))))
|
||||
|
||||
(define-public grub-minimal
|
||||
(package
|
||||
(inherit grub)
|
||||
(name "grub-minimal")
|
||||
(inputs
|
||||
(fold alist-delete (package-inputs grub)
|
||||
'("lvm2" "mdadm" "fuse" "console-setup")))
|
||||
(native-inputs
|
||||
(fold alist-delete (package-native-inputs grub)
|
||||
'("help2man" "texinfo" "parted" "qemu" "xorriso")))
|
||||
(arguments
|
||||
`(#:configure-flags (list "PYTHON=true")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-stuff
|
||||
(lambda* (#:key native-inputs inputs #:allow-other-keys)
|
||||
(substitute* "grub-core/Makefile.in"
|
||||
(("/bin/sh") (which "sh")))
|
||||
|
||||
;; Make the font visible.
|
||||
(copy-file (assoc-ref (or native-inputs inputs)
|
||||
"unifont")
|
||||
"unifont.bdf.gz")
|
||||
(system* "gunzip" "unifont.bdf.gz")
|
||||
|
||||
#t)))
|
||||
#:tests? #f))))
|
||||
|
||||
(define-public grub-efi
|
||||
(package
|
||||
(inherit grub)
|
||||
@ -305,7 +349,7 @@ menu to select one of the installed operating systems.")
|
||||
("perl" ,perl)
|
||||
("python-2" ,python-2)))
|
||||
(inputs
|
||||
`(("libuuid" ,util-linux)
|
||||
`(("libuuid" ,util-linux "lib")
|
||||
("mtools" ,mtools)))
|
||||
(arguments
|
||||
`(#:parallel-build? #f
|
||||
@ -943,7 +987,7 @@ to Novena upstream, does not load u-boot.img from the first partition.")
|
||||
("libyaml" ,libyaml)
|
||||
("openssl" ,openssl)
|
||||
("openssl:static" ,openssl "static")
|
||||
("util-linux" ,util-linux)))
|
||||
("util-linux" ,util-linux "lib")))
|
||||
(home-page
|
||||
"https://dev.chromium.org/chromium-os/chromiumos-design-docs/verified-boot")
|
||||
(synopsis "ChromiumOS verified boot utilities")
|
||||
|
@ -1,8 +1,8 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -104,6 +104,15 @@
|
||||
,(base32 "07830bx29ad5i0l1ykj0g0b1jayjdblf01sr3ww9wbnwdbzinqms"))
|
||||
("xz"
|
||||
,(base32 "0i9kxdi17bm5gxfi2xzm0y73p3ii0cqxli1sbljm6rh2fjgyn90k")))
|
||||
("i586-gnu"
|
||||
("bash"
|
||||
,(base32 "1as8649aqaibahhhrvkj10ci8shpi4hq5n7gnik8rhhy0dc1jarg"))
|
||||
("mkdir"
|
||||
,(base32 "1snqgpfrl00hfn82lm29jqylzjsfb9jd6ha74dp12phwb8fpbmb9"))
|
||||
("tar"
|
||||
,(base32 "0nq2c1zb3wv5bf7kd83sziaashydazrn7xgq6kijlk0zj2syzc2m"))
|
||||
("xz"
|
||||
,(base32 "033rhpk6zrpxpd6ffjyg5y2zwq9x9cnq0zljb7k8jlncbalsayq5")))
|
||||
("mips64el-linux"
|
||||
("bash"
|
||||
,(base32 "1aw046dhda240k9pb9iaj5aqkm23gkvxa9j82n4k7fk87nbrixw6"))
|
||||
@ -114,12 +123,17 @@
|
||||
("xz"
|
||||
,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5")))))
|
||||
|
||||
(define (bootstrap-executable-url program system)
|
||||
"Return the URL where PROGRAM can be found for SYSTEM."
|
||||
(string-append
|
||||
"https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
|
||||
system "/" program
|
||||
"?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))
|
||||
(define %bootstrap-executable-base-urls
|
||||
;; This is where the bootstrap executables come from.
|
||||
'("https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
|
||||
"http://lilypond.org/janneke/guix/"))
|
||||
|
||||
(define (bootstrap-executable-file-name system program)
|
||||
"Return the FILE-NAME part of url where PROGRAM can be found for SYSTEM."
|
||||
(match system
|
||||
("i586-gnu" (string-append system "/20200326/" program))
|
||||
(_ (string-append system "/" program
|
||||
"?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))))
|
||||
|
||||
(define bootstrap-executable
|
||||
(mlambda (program system)
|
||||
@ -140,7 +154,9 @@ for system '~a'")
|
||||
((sha256)
|
||||
(origin
|
||||
(method url-fetch/executable)
|
||||
(uri (bootstrap-executable-url program system))
|
||||
(uri (map (cute string-append <>
|
||||
(bootstrap-executable-file-name system program))
|
||||
%bootstrap-executable-base-urls))
|
||||
(file-name program)
|
||||
(sha256 sha256)))))))
|
||||
|
||||
@ -301,7 +317,8 @@ or false to signal an error."
|
||||
"http://alpha.gnu.org/gnu/guix/bootstrap"
|
||||
"ftp://alpha.gnu.org/gnu/guix/bootstrap"
|
||||
"http://www.fdn.fr/~lcourtes/software/guix/packages"
|
||||
"http://flashner.co.il/guix/bootstrap"))
|
||||
"http://flashner.co.il/guix/bootstrap"
|
||||
"http://lilypond.org/janneke/guix/"))
|
||||
|
||||
(define (bootstrap-guile-url-path system)
|
||||
"Return the URI for FILE."
|
||||
@ -311,6 +328,8 @@ or false to signal an error."
|
||||
"/20170217/guile-2.0.14.tar.xz")
|
||||
("armhf-linux"
|
||||
"/20150101/guile-2.0.11.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz")
|
||||
(_
|
||||
"/20131110/guile-2.0.9.tar.xz"))))
|
||||
|
||||
@ -326,7 +345,9 @@ or false to signal an error."
|
||||
("armhf-linux"
|
||||
(base32 "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))
|
||||
("aarch64-linux"
|
||||
(base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))))
|
||||
(base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))
|
||||
("i586-gnu"
|
||||
(base32 "0wgqpsmvg25rnqn49ap7kwd2qxccd8dr4lllzp7i3rjvgav27vac"))))
|
||||
|
||||
(define (bootstrap-guile-origin system)
|
||||
"Return an <origin> object for the Guile tarball of SYSTEM."
|
||||
@ -456,6 +477,8 @@ $out/bin/guile --version~%"
|
||||
"/20150101/static-binaries.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/static-binaries.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/static-binaries-0-i586-pc-gnu.tar.xz")
|
||||
(_
|
||||
"/20131110/static-binaries.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
@ -473,6 +496,9 @@ $out/bin/guile --version~%"
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
|
||||
("i586-gnu"
|
||||
(base32
|
||||
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
|
||||
@ -519,6 +545,8 @@ $out/bin/guile --version~%"
|
||||
"/20150101/binutils-2.25.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/binutils-2.27.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
|
||||
(_
|
||||
"/20131110/binutils-2.23.2.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
@ -536,6 +564,9 @@ $out/bin/guile --version~%"
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
|
||||
("i586-gnu"
|
||||
(base32
|
||||
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
|
||||
@ -589,6 +620,8 @@ $out/bin/guile --version~%"
|
||||
"/20150101/glibc-2.20.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/glibc-2.25.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/glibc-stripped-2.31-i586-pc-gnu.tar.xz")
|
||||
(_
|
||||
"/20131110/glibc-2.18.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
@ -606,6 +639,9 @@ $out/bin/guile --version~%"
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
|
||||
("i586-gnu"
|
||||
(base32
|
||||
"14ddm10lpbas8bankmn5bcrlqvz1v5dnn1qjzxb19r57vd2w5952"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
|
||||
@ -675,6 +711,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
"/20150101/gcc-4.8.4.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/gcc-5.4.0.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
|
||||
(_
|
||||
"/20131110/gcc-4.8.2.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
@ -692,6 +730,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
|
||||
("i586-gnu"
|
||||
(base32
|
||||
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
|
||||
@ -808,19 +849,18 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
(define (%bootstrap-inputs)
|
||||
;; The initial, pre-built inputs. From now on, we can start building our
|
||||
;; own packages.
|
||||
`(,@(match (%current-system)
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)
|
||||
("bootstrap-mescc-tools" ,%bootstrap-mescc-tools)
|
||||
("mes" ,%bootstrap-mes)))
|
||||
(_
|
||||
`(("libc" ,%bootstrap-glibc)
|
||||
("gcc" ,%bootstrap-gcc)
|
||||
("binutils" ,%bootstrap-binutils))))
|
||||
("coreutils&co" ,%bootstrap-coreutils&co)
|
||||
|
||||
;; In gnu-build-system.scm, we rely on the availability of Bash.
|
||||
("bash" ,%bootstrap-coreutils&co)))
|
||||
(match (%current-system)
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)
|
||||
("bootstrap-mescc-tools" ,%bootstrap-mescc-tools)
|
||||
("mes" ,%bootstrap-mes)))
|
||||
(_
|
||||
`(("libc" ,%bootstrap-glibc)
|
||||
("gcc" ,%bootstrap-gcc)
|
||||
("binutils" ,%bootstrap-binutils)
|
||||
("coreutils&co" ,%bootstrap-coreutils&co)
|
||||
;; In gnu-build-system.scm, we rely on the availability of Bash.
|
||||
("bash" ,%bootstrap-coreutils&co)))))
|
||||
|
||||
(define %bootstrap-inputs-for-tests
|
||||
;; These are bootstrap inputs that are cheap to produce (no compilation
|
||||
|
@ -171,7 +171,7 @@ files and generates build instructions for the Ninja build system.")
|
||||
(define-public meson
|
||||
(package
|
||||
(name "meson")
|
||||
(version "0.50.1")
|
||||
(version "0.53.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mesonbuild/meson/"
|
||||
@ -179,7 +179,7 @@ files and generates build instructions for the Ninja build system.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1k2fw5qk4mqjcb4j5dhp8xfn0caqphb11yh8zkw7v9w01kb5d3zn"))))
|
||||
"07y2hh9dfn1m9g4bsy49nbn3vdmd0b2iwr8bxg19fhqq6c7q73ry"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH
|
||||
|
@ -6,6 +6,7 @@
|
||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -252,3 +253,38 @@ structures and functions commonly needed, such as maps, deques, linked lists,
|
||||
string formatting and autoresizing, option and config file parsing, type
|
||||
checking casts and more.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public sparse
|
||||
(package
|
||||
(name "sparse")
|
||||
(version "0.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "mirror://kernel.org/software/devel/sparse/dist/"
|
||||
"sparse-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0qavyryxmhd1rf11akgn1nq3r15k11bqa3qajaq36a56r225rc7x"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(arguments
|
||||
'(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'patch-cgcc
|
||||
(lambda _
|
||||
(substitute* "cgcc"
|
||||
(("'cc'") (string-append "'" (which "gcc") "'")))
|
||||
#t)))))
|
||||
(synopsis "Semantic C parser for Linux development")
|
||||
(description
|
||||
"Sparse is a semantic parser for C and is required for Linux development.
|
||||
It provides a compiler frontend capable of parsing most of ANSI C as well as
|
||||
many GCC extensions, and a collection of sample compiler backends, including a
|
||||
static analyzer also called @file{sparse}. Sparse provides a set of
|
||||
annotations designed to convey semantic information about types, such as what
|
||||
address space pointers point to, or what locks a function acquires or
|
||||
releases.")
|
||||
(home-page "https://sparse.wiki.kernel.org/index.php/Main_Page")
|
||||
(license license:expat)))
|
||||
|
@ -38,6 +38,7 @@
|
||||
#:use-module (gnu packages dav)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages perl)
|
||||
@ -136,7 +137,10 @@ the <tz.h> library for handling time zones and leap seconds.")
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; test suite appears broken
|
||||
#:configure-flags '("-DSHARED_ONLY=true")
|
||||
#:configure-flags '("-DSHARED_ONLY=true"
|
||||
;; required by evolution-data-server
|
||||
"-DGOBJECT_INTROSPECTION=true"
|
||||
"-DICAL_GLIB_VAPI=true")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-paths
|
||||
@ -153,9 +157,11 @@ the <tz.h> library for handling time zones and leap seconds.")
|
||||
(("\\\"/usr/share/lib/zoneinfo\\\"") "")))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("gtk-doc" ,gtk-doc)
|
||||
`(("gobject-introspection" ,gobject-introspection)
|
||||
("gtk-doc" ,gtk-doc)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)))
|
||||
("pkg-config" ,pkg-config)
|
||||
("vala" ,vala)))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("libxml2" ,libxml2)
|
||||
|
@ -9,7 +9,7 @@
|
||||
;;; Copyright © 2017 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
|
||||
@ -477,7 +477,7 @@ capacity is user-selectable.")
|
||||
("eudev" ,eudev)
|
||||
("fontconfig" ,fontconfig)
|
||||
("libexif" ,libexif)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("ffmpeg" ,ffmpeg-3.4)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -23,7 +23,7 @@
|
||||
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
|
||||
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
@ -31,6 +31,8 @@
|
||||
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
|
||||
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -65,6 +67,7 @@
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
@ -643,26 +646,20 @@ doctest.")
|
||||
(define-public python-mock
|
||||
(package
|
||||
(name "python-mock")
|
||||
(version "2.0.0")
|
||||
(version "3.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "mock" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1flbpksir5sqrvq2z0dp8sl4bzbadg21sj4d42w3klpdfvgvcn5i"))))
|
||||
"1hrp6j0yrx2xzylfv02qa8kph661m6yq4p0mc8fnimch9j4psrc3"))))
|
||||
(propagated-inputs
|
||||
`(("python-pbr" ,python-pbr-minimal)
|
||||
("python-six" ,python-six)))
|
||||
`(("python-six" ,python-six)))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-unittest2" ,python-unittest2)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(zero? (system* "unit2")))))))
|
||||
;; FIXME: Tests require "pytest", which depends on this package.
|
||||
'(#:tests? #f))
|
||||
(home-page "https://github.com/testing-cabal/mock")
|
||||
(synopsis "Python mocking and patching library for testing")
|
||||
(description
|
||||
@ -770,35 +767,40 @@ standard library.")
|
||||
(define-public python-pytest
|
||||
(package
|
||||
(name "python-pytest")
|
||||
(version "4.4.2")
|
||||
(version "5.3.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18w38kjnffdcrlbw6ny6dksgxai6x9bxpjs2m6klqmb8hfzjkcb2"))))
|
||||
"139i9cjhrv5aici3skq8iihvfb3lq0d8xb5j7qycr2hlk8cfjpqd"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "pytest" "-vv" "-k"
|
||||
(string-append
|
||||
;; These tests involve the /usr directory, and fails.
|
||||
"not test_remove_dir_prefix"
|
||||
" and not test_argcomplete"
|
||||
;; This test tries to override PYTHONPATH, and
|
||||
;; subsequently fails to locate the test libraries.
|
||||
" and not test_collection")))))))
|
||||
(lambda* (#:key (tests? #t) #:allow-other-keys)
|
||||
(if tests?
|
||||
(invoke "pytest" "-vv" "-k"
|
||||
(string-append
|
||||
;; These tests involve the /usr directory, and fails.
|
||||
"not test_remove_dir_prefix"
|
||||
" and not test_argcomplete"
|
||||
;; This test tries to override PYTHONPATH, and
|
||||
;; subsequently fails to locate the test libraries.
|
||||
" and not test_collection"))
|
||||
(format #t "test suite not run~%"))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
`(("python-atomicwrites" ,python-atomicwrites)
|
||||
("python-attrs" ,python-attrs-bootstrap)
|
||||
("python-more-itertools" ,python-more-itertools)
|
||||
("python-packaging" ,python-packaging-bootstrap)
|
||||
("python-pluggy" ,python-pluggy)
|
||||
("python-py" ,python-py)
|
||||
("python-six" ,python-six-bootstrap)))
|
||||
("python-six" ,python-six-bootstrap)
|
||||
("python-wcwidth" ,python-wcwidth)))
|
||||
(native-inputs
|
||||
`(;; Tests need the "regular" bash since 'bash-final' lacks `compgen`.
|
||||
("bash" ,bash)
|
||||
@ -806,7 +808,8 @@ standard library.")
|
||||
("python-nose" ,python-nose)
|
||||
("python-mock" ,python-mock)
|
||||
("python-pytest" ,python-pytest-bootstrap)
|
||||
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||
("python-setuptools-scm" ,python-setuptools-scm)
|
||||
("python-xmlschema" ,python-xmlschema)))
|
||||
(home-page "https://docs.pytest.org/en/latest/")
|
||||
(synopsis "Python testing library")
|
||||
(description
|
||||
@ -816,15 +819,41 @@ and many external plugins.")
|
||||
(license license:expat)
|
||||
(properties `((python2-variant . ,(delay python2-pytest))))))
|
||||
|
||||
;; Pytest 4.x are the last versions that support Python 2.
|
||||
(define-public python2-pytest
|
||||
(let ((pytest (package-with-python2
|
||||
(strip-python2-variant python-pytest))))
|
||||
(package
|
||||
(inherit pytest)
|
||||
(propagated-inputs
|
||||
`(("python2-funcsigs" ,python2-funcsigs)
|
||||
("python2-pathlib2" ,python2-pathlib2)
|
||||
,@(package-propagated-inputs pytest))))))
|
||||
(package
|
||||
(inherit (strip-python2-variant python-pytest))
|
||||
(name "python2-pytest")
|
||||
(version "4.6.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
,@(package-arguments python-pytest)))
|
||||
(propagated-inputs
|
||||
`(("python-atomicwrites" ,python2-atomicwrites)
|
||||
("python-attrs" ,python2-attrs-bootstrap)
|
||||
("python-funcsigs" ,python2-funcsigs)
|
||||
("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
|
||||
("python-more-itertools" ,python2-more-itertools)
|
||||
("python-packaging" ,python2-packaging-bootstrap)
|
||||
("python-pathlib2" ,python2-pathlib2)
|
||||
("python-pluggy" ,python2-pluggy)
|
||||
("python-py" ,python2-py)
|
||||
("python-six" ,python2-six-bootstrap)
|
||||
("python-wcwidth" ,python2-wcwidth)))
|
||||
(native-inputs
|
||||
`(("bash" ,bash) ;tests require 'compgen'
|
||||
("python-hypothesis" ,python2-hypothesis)
|
||||
("python-nose" ,python2-nose)
|
||||
("python-mock" ,python2-mock)
|
||||
("python-pytest" ,python2-pytest-bootstrap)
|
||||
("python-setuptools-scm" ,python2-setuptools-scm)))))
|
||||
|
||||
(define-public python-pytest-bootstrap
|
||||
(package
|
||||
@ -835,24 +864,37 @@ and many external plugins.")
|
||||
(properties `((python2-variant . ,(delay python2-pytest-bootstrap))))))
|
||||
|
||||
(define-public python2-pytest-bootstrap
|
||||
(let ((pytest (package-with-python2
|
||||
(strip-python2-variant python-pytest-bootstrap))))
|
||||
(package (inherit pytest)
|
||||
(propagated-inputs
|
||||
`(("python2-funcsigs" ,python2-funcsigs-bootstrap)
|
||||
("python2-pathlib2" ,python2-pathlib2-bootstrap)
|
||||
,@(package-propagated-inputs pytest))))))
|
||||
(hidden-package
|
||||
(package/inherit
|
||||
python2-pytest
|
||||
(name "python2-pytest-bootstrap")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments python2-pytest)
|
||||
((#:tests? _ #f) #f)))
|
||||
(native-inputs
|
||||
`(("python-setuptools-scm" ,python2-setuptools-scm)))
|
||||
(propagated-inputs
|
||||
`(("python-atomicwrites" ,python2-atomicwrites)
|
||||
("python-attrs" ,python2-attrs-bootstrap)
|
||||
("python-funcsigs" ,python2-funcsigs-bootstrap)
|
||||
("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
|
||||
("python-more-itertools" ,python2-more-itertools)
|
||||
("python-packaging" ,python2-packaging-bootstrap)
|
||||
("python-pathlib2" ,python2-pathlib2-bootstrap)
|
||||
("python-pluggy" ,python2-pluggy-bootstrap)
|
||||
("python-py" ,python2-py)
|
||||
("python-wcwidth" ,python2-wcwidth))))))
|
||||
|
||||
(define-public python-pytest-cov
|
||||
(package
|
||||
(name "python-pytest-cov")
|
||||
(version "2.6.1")
|
||||
(version "2.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-cov" version))
|
||||
(sha256
|
||||
(base32 "0cyxbbghx2l4p60w10k00j1j74q1ngfiffr0pxn73ababjr69dha"))))
|
||||
(base32 "0avzlk9p4nc44k7lpx9109dybq71xqnggxb9f4hp0l64pbc44ryc"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -881,18 +923,28 @@ supports coverage of subprocesses.")
|
||||
(define-public python-pytest-runner
|
||||
(package
|
||||
(name "python-pytest-runner")
|
||||
(version "4.4")
|
||||
(version "5.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-runner" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x0d9n40lsiphblbs61rdc0d5r31f6vh0vcahqdv0mffakbnrb80"))))
|
||||
"0awll1bva5zy8cspsxcpv7pjcrdf5c6pf56nqn4f74vvmlzfgiwn"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(;; FIXME: The test suite requires 'python-flake8' and 'python-black',
|
||||
;; but that introduces a circular dependency.
|
||||
#:tests? #f
|
||||
#:phases (modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(if tests?
|
||||
(invoke "pytest" "-vv")
|
||||
(format #t "test suite not run~%"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest-bootstrap)
|
||||
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||
`(("python-setuptools-scm" ,python-setuptools-scm)))
|
||||
(home-page "https://github.com/pytest-dev/pytest-runner")
|
||||
(synopsis "Invoke py.test as a distutils command")
|
||||
(description
|
||||
@ -1383,14 +1435,14 @@ have failed since the last commit or what tests are currently failing.")))
|
||||
(define-public python-coverage
|
||||
(package
|
||||
(name "python-coverage")
|
||||
(version "4.5.3")
|
||||
(version "5.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "coverage" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02f6m073qdispn96rc616hg0rnmw1pgqzw3bgxwiwza4zf9hirlx"))))
|
||||
"1vrg8panqw79pswg52ygbrff3wdnxarrd9qz6c64ah0c4h2cmbvp"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; FIXME: 95 tests failed, 539 passed, 6 skipped, 2 errors.
|
||||
@ -1407,6 +1459,30 @@ executed.")
|
||||
(define-public python2-coverage
|
||||
(package-with-python2 python-coverage))
|
||||
|
||||
(define-public python-pytest-asyncio
|
||||
(package
|
||||
(name "python-pytest-asyncio")
|
||||
(version "0.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-asyncio" version))
|
||||
(sha256
|
||||
(base32 "1bysy4nii13bm7h345wxf8fxcjhab7l374pqdv7vwv3izl053b4z"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-coverage" ,python-coverage)
|
||||
("python-async-generator" ,python-async-generator)
|
||||
("python-hypothesis" ,python-hypothesis)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(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
|
||||
coroutines, which makes it slightly more difficult to test using normal
|
||||
testing tools. @code{pytest-asyncio} provides useful fixtures and markers
|
||||
to make testing async code easier.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python-cov-core
|
||||
(package
|
||||
(name "python-cov-core")
|
||||
@ -1651,20 +1727,20 @@ instantly.")
|
||||
(define-public python-hypothesis
|
||||
(package
|
||||
(name "python-hypothesis")
|
||||
(version "4.18.3")
|
||||
(version "5.4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "hypothesis" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0a35nwqyjnm4cphi43xracqpkws0ip61mndvqb1iqq7gkva83lb1"))))
|
||||
"0zn09bn6hadk4vxl6jy8bkjr5fz8mrhin3z46w7pq5qgbaycr89p"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-flake8" ,python-flake8)
|
||||
("python-pytest" ,python-pytest-bootstrap)))
|
||||
(arguments
|
||||
;; XXX: Tests are not distributed with the PyPI archive.
|
||||
'(#:tests? #f))
|
||||
(propagated-inputs
|
||||
`(("python-attrs" ,python-attrs-bootstrap)
|
||||
("python-coverage" ,python-coverage)))
|
||||
("python-sortedcontainers" ,python-sortedcontainers)))
|
||||
(synopsis "Library for property based testing")
|
||||
(description "Hypothesis is a library for testing your Python code against a
|
||||
much larger range of examples than you would ever want to write by hand. It’s
|
||||
@ -1674,10 +1750,18 @@ seamlessly into your existing Python unit testing work flow.")
|
||||
(license license:mpl2.0)
|
||||
(properties `((python2-variant . ,(delay python2-hypothesis))))))
|
||||
|
||||
;; This is the last version of Hypothesis that supports Python 2.
|
||||
(define-public python2-hypothesis
|
||||
(let ((hypothesis (package-with-python2
|
||||
(strip-python2-variant python-hypothesis))))
|
||||
(package (inherit hypothesis)
|
||||
(version "4.57.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "hypothesis" version))
|
||||
(sha256
|
||||
(base32
|
||||
"183gpxbfcdhdqzlahkji5a71n6lmvgqsbkcb0ihqad51n2j6jhrw"))))
|
||||
(propagated-inputs
|
||||
`(("python2-enum34" ,python2-enum34)
|
||||
,@(package-propagated-inputs hypothesis))))))
|
||||
@ -2049,7 +2133,9 @@ backported from Python 2.7 for Python 2.4+.")
|
||||
(uri (pypi-uri "behave" version))
|
||||
(sha256
|
||||
(base32
|
||||
"11hsz365qglvpp1m1w16239c3kiw15lw7adha49lqaakm8kj6rmr"))))
|
||||
"11hsz365qglvpp1m1w16239c3kiw15lw7adha49lqaakm8kj6rmr"))
|
||||
(patches (search-patches
|
||||
"behave-skip-a-couple-of-tests.patch"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-mock" ,python-mock)
|
||||
@ -2230,13 +2316,13 @@ create data based on random numbers and yet remain repeatable.")
|
||||
(define-public python-freezegun
|
||||
(package
|
||||
(name "python-freezegun")
|
||||
(version "0.3.12")
|
||||
(version "0.3.14")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "freezegun" version))
|
||||
(sha256
|
||||
(base32 "1rx57v8ryjncjimg8hys9kx1r3rknvwcl4y340g20jn0sf69qk9a"))))
|
||||
(base32 "0al75mk829j1izxi760b7yjnknjihyfhp2mvi5qiyrxb9cpxwqk2"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-mock" ,python-mock)
|
||||
@ -2403,11 +2489,21 @@ portable to just about any platform.")
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(setenv "CC" "gcc")
|
||||
(setenv "PREFIX" out)
|
||||
|
||||
;; XXX: Without this flag, the CLOCK_REALTIME test hangs
|
||||
;; indefinitely. See README.packagers for more information.
|
||||
;; Try removing this for future versions of libfaketime.
|
||||
(setenv "FAKETIME_COMPILE_CFLAGS" "-DFORCE_MONOTONIC_FIX")
|
||||
|
||||
#t)))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
(substitute* "test/functests/test_exclude_mono.sh"
|
||||
(("/bin/bash") (which "bash")))
|
||||
|
||||
;; Do not fail due to use of 'ftime', which was deprecated in
|
||||
;; glibc 2.31. Remove this for later versions of libfaketime.
|
||||
(setenv "FAKETIME_COMPILE_CFLAGS" "-Wno-deprecated-declarations")
|
||||
#t)))
|
||||
#:test-target "test"))
|
||||
(native-inputs
|
||||
@ -2436,11 +2532,10 @@ provides a simple way to achieve this.")
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'skip-broken-test
|
||||
(add-after 'unpack 'fix-test
|
||||
(lambda _
|
||||
(substitute* "tests/test-umockdev.c"
|
||||
(("/\\* sys/ in other dir")
|
||||
(string-append "return; // ")))
|
||||
(("/run") "/tmp"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("vala" ,vala)
|
||||
@ -2453,8 +2548,7 @@ provides a simple way to achieve this.")
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("eudev" ,eudev)
|
||||
("libgudev" ,libgudev)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
("libgudev" ,libgudev)))
|
||||
(home-page "https://github.com/martinpitt/umockdev/")
|
||||
(synopsis "Mock hardware devices for creating unit tests")
|
||||
(description "umockdev mocks hardware devices for creating integration
|
||||
@ -2545,6 +2639,19 @@ system. The code under test requires no modification to work with pyfakefs.")
|
||||
(define-public python2-pyfakefs
|
||||
(package-with-python2 python-pyfakefs))
|
||||
|
||||
;; This minimal variant is used to avoid a circular dependency between
|
||||
;; python2-importlib-metadata, which requires pyfakefs for its tests, and
|
||||
;; python2-pytest, which requires python2-importlib-metadata.
|
||||
(define-public python2-pyfakefs-bootstrap
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit python2-pyfakefs)
|
||||
(name "python2-pyfakefs-bootstrap")
|
||||
(native-inputs '())
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:tests? #f)))))
|
||||
|
||||
(define-public python-aiounittest
|
||||
(package
|
||||
(name "python-aiounittest")
|
||||
|
@ -4,6 +4,7 @@
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -29,15 +30,20 @@
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages gv)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
@ -300,6 +306,126 @@ is currently not actively maintained and works only with Python 2 and
|
||||
NumPy < 1.9.")
|
||||
(license license:cecill)))
|
||||
|
||||
(define-public tng
|
||||
(package
|
||||
(name "tng")
|
||||
(version "1.8.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/gromacs/tng.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1apf2n8nb34z09xarj7k4jgriq283l769sakjmj5aalpbilvai4q"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remove-bundled-zlib
|
||||
(lambda _
|
||||
(delete-file-recursively "external")
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "../build/bin/tests/tng_testing")
|
||||
#t)))))
|
||||
(home-page "https://github.com/gromacs/tng")
|
||||
(synopsis "Trajectory Next Generation binary format manipulation library")
|
||||
(description "TRAJNG (Trajectory next generation) is a program library for
|
||||
handling molecular dynamics (MD) trajectories. It can store coordinates, and
|
||||
optionally velocities and the H-matrix. Coordinates and velocities are
|
||||
stored with user-specified precision.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public gromacs
|
||||
(package
|
||||
(name "gromacs")
|
||||
(version "2020.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://ftp.gromacs.org/pub/gromacs/gromacs-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wyjgcdl30wy4hy6jvi9lkq53bqs9fgfq6fri52dhnb3c76y8rbl"))
|
||||
;; Our version of tinyxml2 is far newer than the bundled one and
|
||||
;; require fixing `testutils' code. See patch header for more info
|
||||
(patches (search-patches "gromacs-tinyxml2.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "-DGMX_DEVELOPER_BUILD=on" ; Needed to run tests
|
||||
;; Unbundling
|
||||
"-DGMX_USE_LMFIT=EXTERNAL"
|
||||
"-DGMX_BUILD_OWN_FFTW=off"
|
||||
"-DGMX_EXTERNAL_BLAS=on"
|
||||
"-DGMX_EXTERNAL_LAPACK=on"
|
||||
"-DGMX_EXTERNAL_TNG=on"
|
||||
"-DGMX_EXTERNAL_ZLIB=on"
|
||||
"-DGMX_EXTERNAL_TINYXML2=on"
|
||||
(string-append "-DTinyXML2_DIR="
|
||||
(assoc-ref %build-inputs "tinyxml2"))
|
||||
;; Workaround for cmake/FindSphinx.cmake version parsing that does
|
||||
;; not understand the guix-wrapped `sphinx-build --version' answer
|
||||
(string-append "-DSPHINX_EXECUTABLE_VERSION="
|
||||
,(package-version python-sphinx)))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fixes
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Still bundled: part of gromacs, source behind registration
|
||||
;; but free software anyways
|
||||
;;(delete-file-recursively "src/external/vmd_molfile")
|
||||
;; Still bundled: threads-based OpenMPI-compatible fallback
|
||||
;; designed to be bundled like that
|
||||
;;(delete-file-recursively "src/external/thread_mpi")
|
||||
;; Unbundling
|
||||
(delete-file-recursively "src/external/lmfit")
|
||||
(delete-file-recursively "src/external/clFFT")
|
||||
(delete-file-recursively "src/external/fftpack")
|
||||
(delete-file-recursively "src/external/build-fftw")
|
||||
(delete-file-recursively "src/external/tng_io")
|
||||
(delete-file-recursively "src/external/tinyxml2")
|
||||
(delete-file-recursively "src/external/googletest")
|
||||
(copy-recursively (assoc-ref inputs "googletest-source")
|
||||
"src/external/googletest")
|
||||
;; This test warns about the build host hardware, disable
|
||||
(substitute* "src/gromacs/hardware/tests/hardwaretopology.cpp"
|
||||
(("TEST\\(HardwareTopologyTest, HwlocExecute\\)")
|
||||
"void __guix_disabled()"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
("googletest-source" ,(package-source googletest))
|
||||
("graphviz" ,graphviz)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python)
|
||||
("python-pygments" ,python-pygments)
|
||||
("python-sphinx" ,python-sphinx)))
|
||||
(inputs
|
||||
`(("fftwf" ,fftwf)
|
||||
("hwloc" ,hwloc-2 "lib")
|
||||
("lmfit" ,lmfit)
|
||||
("openblas" ,openblas)
|
||||
("perl" ,perl)
|
||||
("tinyxml2" ,tinyxml2)
|
||||
("tng" ,tng)))
|
||||
(home-page "http://www.gromacs.org/")
|
||||
(synopsis "Molecular dynamics software package")
|
||||
(description "GROMACS is a versatile package to perform molecular dynamics,
|
||||
i.e. simulate the Newtonian equations of motion for systems with hundreds to
|
||||
millions of particles. It is primarily designed for biochemical molecules like
|
||||
proteins, lipids and nucleic acids that have a lot of complicated bonded
|
||||
interactions, but since GROMACS is extremely fast at calculating the nonbonded
|
||||
interactions (that usually dominate simulations) many groups are also using it
|
||||
for research on non-biological systems, e.g. polymers. GROMACS supports all the
|
||||
usual algorithms you expect from a modern molecular dynamics implementation.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public openbabel
|
||||
(package
|
||||
(name "openbabel")
|
||||
|
@ -77,7 +77,7 @@
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)
|
||||
("libuuid" ,util-linux)
|
||||
("libuuid" ,util-linux "lib")
|
||||
("libx11" ,libx11)
|
||||
("xorg-rgb" ,xorg-rgb)
|
||||
("nanopass" ,nanopass)
|
||||
|
@ -248,7 +248,7 @@ from forcing GEXP-PROMISE."
|
||||
#:system system
|
||||
#:guile-for-build guile)))
|
||||
|
||||
(define %chromium-version "81.0.4044.129")
|
||||
(define %chromium-version "81.0.4044.138")
|
||||
(define %ungoogled-revision "c2a89fb6b5b559c826796c811741fa8ed3e11de8")
|
||||
(define %debian-revision "debian/81.0.4044.92-1")
|
||||
(define package-revision "0")
|
||||
@ -264,7 +264,7 @@ from forcing GEXP-PROMISE."
|
||||
%chromium-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ls663s1f74p912x42qp3zcvm17kmjiv1ij6yy1c14gdhcpmjx7z"))))
|
||||
"19kpzmqmld0m0nflx13w9flxfal19msnxhzl3lip1jqih65z4y7l"))))
|
||||
|
||||
(define %ungoogled-origin
|
||||
(origin
|
||||
@ -427,18 +427,6 @@ from forcing GEXP-PROMISE."
|
||||
`(cons "--enable-custom-modes"
|
||||
,flags))))))
|
||||
|
||||
;; Add a custom ld wrapper that supports quoted strings in response files.
|
||||
;; To be merged with 'ld-wrapper' in a future rebuild cycle.
|
||||
(define-public ld-wrapper-next
|
||||
(let ((orig (car (assoc-ref (%final-inputs) "ld-wrapper"))))
|
||||
(package
|
||||
(inherit orig)
|
||||
(name "ld-wrapper-next")
|
||||
(inputs
|
||||
`(("wrapper" ,(search-path %load-path
|
||||
"gnu/packages/ld-wrapper-next.in"))
|
||||
,@(alist-delete "wrapper" (package-inputs orig)))))))
|
||||
|
||||
(define-public ungoogled-chromium
|
||||
(package
|
||||
(name "ungoogled-chromium")
|
||||
@ -539,6 +527,12 @@ from forcing GEXP-PROMISE."
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-stuff
|
||||
(lambda _
|
||||
;; Fix build with newer re2. Taken from:
|
||||
;; https://chromium-review.googlesource.com/c/chromium/src/+/2145261
|
||||
(substitute* "components/autofill/core/browser/address_rewriter.cc"
|
||||
(("options\\.set_utf8\\(true\\)")
|
||||
"options.set_encoding(RE2::Options::EncodingUTF8)"))
|
||||
|
||||
(substitute*
|
||||
'("base/process/launch_posix.cc"
|
||||
"base/third_party/dynamic_annotations/dynamic_annotations.c"
|
||||
@ -770,7 +764,6 @@ from forcing GEXP-PROMISE."
|
||||
("clang" ,clang-9)
|
||||
("gn" ,gn)
|
||||
("gperf" ,gperf)
|
||||
("ld-wrapper" ,ld-wrapper-next)
|
||||
("ninja" ,ninja)
|
||||
("node" ,node)
|
||||
("pkg-config" ,pkg-config)
|
||||
@ -799,7 +792,7 @@ from forcing GEXP-PROMISE."
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("harfbuzz" ,harfbuzz)
|
||||
("icu4c" ,icu4c-66.1)
|
||||
("icu4c" ,icu4c)
|
||||
("jsoncpp" ,jsoncpp)
|
||||
("lcms" ,lcms)
|
||||
("libevent" ,libevent)
|
||||
|
@ -47,8 +47,8 @@
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public cuirass
|
||||
(let ((commit "27af1d34646f4e3fca09283cb52caa8b89cbb2b1")
|
||||
(revision "29"))
|
||||
(let ((commit "9559fd18d4b89bf797216fbe187f2b26b0a2d165")
|
||||
(revision "30"))
|
||||
(package
|
||||
(name "cuirass")
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
@ -60,7 +60,7 @@
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"199fzv4d18qslcggl7lj42ib600nckp0c40x7ahnb4rgnjw8ppyi"))))
|
||||
"026cpcws8mb483mywwx2znpy9i7lw5n3lyqa9k6d87kxmw59060c"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils)
|
||||
@ -120,7 +120,7 @@
|
||||
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
`(("guile" ,guile-3.0)
|
||||
("guile-fibers" ,guile-fibers)
|
||||
("guile-gcrypt" ,guile-gcrypt)
|
||||
("guile-json" ,guile-json-3)
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
@ -51,13 +51,6 @@
|
||||
(base32
|
||||
"18mjy80ly9361npjhxpm3n0pkmrwviaqr2kixjb7hyxa6kzzh5xw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'skip-premature-configure
|
||||
(lambda _
|
||||
(setenv "NOCONFIGURE" "set")
|
||||
#t)))))
|
||||
;; TODO: package 'libgsystem'.
|
||||
(inputs
|
||||
`(("accountsservice" ,accountsservice)
|
||||
|
@ -5,10 +5,12 @@
|
||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -32,6 +34,7 @@
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages backup)
|
||||
@ -39,19 +42,63 @@
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
;;; This minimal variant of CMake does not include the documentation. It is
|
||||
;;; used by the cmake-build-system.
|
||||
(define-public cmake-minimal
|
||||
;;; Build phases shared between 'cmake-bootstrap' and the later variants
|
||||
;;; that use cmake-build-system.
|
||||
(define %common-build-phases
|
||||
`((add-after 'unpack 'split-package
|
||||
;; Remove files that have been packaged in other package recipes.
|
||||
(lambda _
|
||||
(delete-file "Auxiliary/cmake-mode.el")
|
||||
(substitute* "Auxiliary/CMakeLists.txt"
|
||||
((".*cmake-mode.el.*") ""))
|
||||
#t))
|
||||
(add-before 'configure 'patch-bin-sh
|
||||
(lambda _
|
||||
;; Replace "/bin/sh" by the right path in... a lot of
|
||||
;; files.
|
||||
(substitute*
|
||||
'("Modules/CompilerId/Xcode-3.pbxproj.in"
|
||||
"Modules/Internal/CPack/CPack.RuntimeScript.in"
|
||||
"Source/cmGlobalXCodeGenerator.cxx"
|
||||
"Source/cmLocalUnixMakefileGenerator3.cxx"
|
||||
"Source/cmExecProgramCommand.cxx"
|
||||
"Utilities/Release/release_cmake.cmake"
|
||||
"Tests/CMakeLists.txt"
|
||||
"Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t))))
|
||||
|
||||
(define %common-disabled-tests
|
||||
'(;; This test copies libgcc_s.so.1 from GCC and tries to modify its RPATH,
|
||||
;; but does not cope with the file being read-only.
|
||||
"BundleUtilities"
|
||||
;; This test requires network access.
|
||||
"CTestTestUpload"
|
||||
;; This test requires 'ldconfig' which is not available in Guix.
|
||||
"RunCMake.install"))
|
||||
|
||||
(define %preserved-third-party-files
|
||||
'(;; 'Source/cm_getdate.c' includes archive_getdate.c wholesale, so it must
|
||||
;; be available along with the required headers.
|
||||
"Utilities/cmlibarchive/libarchive/archive_getdate.c"
|
||||
"Utilities/cmlibarchive/libarchive/archive_getdate.h"))
|
||||
|
||||
;;; The "bootstrap" CMake. It is used to build 'cmake-minimal' below, as well
|
||||
;;; as any dependencies that need cmake-build-system.
|
||||
(define-public cmake-bootstrap
|
||||
(package
|
||||
(name "cmake-minimal")
|
||||
(version "3.15.1")
|
||||
(name "cmake-bootstrap")
|
||||
(version "3.16.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.cmake.org/files/v"
|
||||
@ -59,23 +106,50 @@
|
||||
"/cmake-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xyprly3sf4wi0n1x79k4n22yxm6pb7fv70gqr9lvc7qv14cbphq"))
|
||||
(modules '((guix build utils)))
|
||||
"1z4bb8z6b4dvq5hrvajrf1hyybqay3xybyimf71w1jgcp180nxjz"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Drop bundled software.
|
||||
(with-directory-excursion "Utilities"
|
||||
(for-each delete-file-recursively
|
||||
'("cmbzip2"
|
||||
;; "cmcompress"
|
||||
"cmcurl"
|
||||
"cmexpat"
|
||||
;; "cmjsoncpp"
|
||||
;; "cmlibarchive"
|
||||
"cmliblzma"
|
||||
;; "cmlibuv"
|
||||
"cmzlib"))
|
||||
#t)))))
|
||||
`(begin
|
||||
;; CMake bundles its dependencies in the "Utilities" directory.
|
||||
;; Delete those to ensure the system libraries are used.
|
||||
(define preserved-files
|
||||
'(,@%preserved-third-party-files
|
||||
;; Use the bundled JsonCpp during bootstrap to work around
|
||||
;; a circular dependency. TODO: JsonCpp can be built with
|
||||
;; Meson instead of CMake, but meson-build-system currently
|
||||
;; does not support cross-compilation.
|
||||
"Utilities/cmjsoncpp"
|
||||
;; LibUV is required to bootstrap the initial build system.
|
||||
"Utilities/cmlibuv"))
|
||||
|
||||
(file-system-fold (lambda (dir stat result) ;enter?
|
||||
(or (string=? "Utilities" dir) ;init
|
||||
;; The bundled dependencies are
|
||||
;; distinguished by having a "cm"
|
||||
;; prefix to their upstream names.
|
||||
(and (string-prefix? "Utilities/cm" dir)
|
||||
(not (member dir preserved-files)))))
|
||||
(lambda (file stat result) ;leaf
|
||||
(unless (or (member file preserved-files)
|
||||
;; Preserve top-level files.
|
||||
(string=? "Utilities"
|
||||
(dirname file)))
|
||||
(delete-file file)))
|
||||
(const #t) ;down
|
||||
(lambda (dir stat result) ;up
|
||||
(when (equal? (scandir dir) '("." ".."))
|
||||
(rmdir dir)))
|
||||
(const #t) ;skip
|
||||
(lambda (file stat errno result)
|
||||
(format (current-error-port)
|
||||
"warning: failed to delete ~a: ~a~%"
|
||||
file (strerror errno)))
|
||||
#t
|
||||
"Utilities"
|
||||
lstat)
|
||||
#t))
|
||||
(patches (search-patches "cmake-curl-certificates.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
@ -86,7 +160,7 @@
|
||||
(string-append "--parallel=" parallel-job-count)
|
||||
(string-append "--prefix=" out)
|
||||
"--system-libs"
|
||||
"--no-system-jsoncpp" ; FIXME: Circular dependency.
|
||||
"--no-system-jsoncpp"
|
||||
;; By default, the man pages and other docs land
|
||||
;; in PREFIX/man and PREFIX/doc, but we want them
|
||||
;; in share/{man,doc}. Note that unlike
|
||||
@ -95,14 +169,18 @@
|
||||
;; to --mandir and --docdir.
|
||||
"--mandir=share/man"
|
||||
,(string-append "--docdir=share/doc/cmake-"
|
||||
(version-major+minor version))))
|
||||
(version-major+minor version))
|
||||
|
||||
;; By default CMake is built without any optimizations. Use
|
||||
;; the recommended Release target for a ~2.5x speedup.
|
||||
"--" "-DCMAKE_BUILD_TYPE=Release"))
|
||||
#:make-flags
|
||||
(let ((skipped-tests
|
||||
(list "BundleUtilities" ; This test fails on Guix.
|
||||
(list ,@%common-disabled-tests
|
||||
"CTestTestSubdir" ; This test fails to build 2 of the 3 tests.
|
||||
;; These tests requires network access.
|
||||
"CTestCoverageCollectGCOV"
|
||||
"CTestTestUpload")))
|
||||
;; This test fails when ARGS (below) is in use, see
|
||||
;; <https://gitlab.kitware.com/cmake/cmake/issues/17165>.
|
||||
"CTestCoverageCollectGCOV")))
|
||||
(list
|
||||
(string-append
|
||||
;; These arguments apply for the tests only.
|
||||
@ -111,29 +189,7 @@
|
||||
" --exclude-regex ^\\(" (string-join skipped-tests "\\|") "\\)$")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'split-package
|
||||
;; Remove files that have been packaged in other package recipes.
|
||||
(lambda _
|
||||
(delete-file "Auxiliary/cmake-mode.el")
|
||||
(substitute* "Auxiliary/CMakeLists.txt"
|
||||
((".*cmake-mode.el.*") ""))
|
||||
#t))
|
||||
(add-before 'configure 'patch-bin-sh
|
||||
(lambda _
|
||||
;; Replace "/bin/sh" by the right path in... a lot of
|
||||
;; files.
|
||||
(substitute*
|
||||
'("Modules/CompilerId/Xcode-3.pbxproj.in"
|
||||
"Modules/CPack.RuntimeScript.in"
|
||||
"Source/cmGlobalXCodeGenerator.cxx"
|
||||
"Source/cmLocalUnixMakefileGenerator3.cxx"
|
||||
"Source/cmExecProgramCommand.cxx"
|
||||
"Utilities/Release/release_cmake.cmake"
|
||||
"Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
|
||||
"Tests/CMakeLists.txt"
|
||||
"Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t))
|
||||
,@%common-build-phases
|
||||
(add-before 'configure 'set-paths
|
||||
(lambda _
|
||||
;; Help cmake's bootstrap process to find system libraries
|
||||
@ -148,18 +204,31 @@
|
||||
(apply invoke "./configure" configure-flags))))))
|
||||
(inputs
|
||||
`(("bzip2" ,bzip2)
|
||||
("curl" ,curl)
|
||||
("curl" ,curl-minimal)
|
||||
("expat" ,expat)
|
||||
("file" ,file)
|
||||
("libarchive" ,libarchive)
|
||||
("libuv" ,libuv)
|
||||
("ncurses" ,ncurses) ; required for ccmake
|
||||
,@(if (hurd-target?)
|
||||
'()
|
||||
`(("libuv" ,libuv))) ;not supported on the Hurd
|
||||
("ncurses" ,ncurses) ;required for ccmake
|
||||
("rhash" ,rhash)
|
||||
("zlib" ,zlib)))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "CMAKE_PREFIX_PATH")
|
||||
(files '("")))))
|
||||
(files '("")))
|
||||
;; "cmake-curl-certificates.patch" changes CMake to honor 'SSL_CERT_DIR'
|
||||
;; and 'SSL_CERT_FILE', hence these search path entries.
|
||||
(search-path-specification
|
||||
(variable "SSL_CERT_DIR")
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs")))
|
||||
(search-path-specification
|
||||
(variable "SSL_CERT_FILE")
|
||||
(file-type 'regular)
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs/ca-certificates.crt")))))
|
||||
(home-page "https://cmake.org/")
|
||||
(synopsis "Cross-platform build system")
|
||||
(description
|
||||
@ -169,23 +238,84 @@ and compiler independent configuration files. CMake generates native makefiles
|
||||
and workspaces that can be used in the compiler environment of your choice.")
|
||||
(properties '((hidden? . #t)))
|
||||
(license (list license:bsd-3 ; cmake
|
||||
license:bsd-4 ; cmcompress
|
||||
license:bsd-2 ; cmlibarchive
|
||||
license:expat ; cmjsoncpp is dual MIT/public domain
|
||||
license:public-domain)))) ; cmlibarchive/archive_getdate.c
|
||||
|
||||
;;; This minimal variant of CMake does not include the documentation. It is
|
||||
;;; used by the cmake-build-system.
|
||||
(define-public cmake-minimal
|
||||
(package
|
||||
(inherit cmake-bootstrap)
|
||||
(name "cmake-minimal")
|
||||
(source (origin
|
||||
(inherit (package-source cmake-bootstrap))
|
||||
(snippet
|
||||
(match (origin-snippet (package-source cmake-bootstrap))
|
||||
((_ _ exp ...)
|
||||
;; Now we can delete the remaining software bundles.
|
||||
(append `(begin
|
||||
(define preserved-files ',%preserved-third-party-files))
|
||||
exp))))))
|
||||
(inputs
|
||||
`(("curl" ,curl)
|
||||
("jsoncpp" ,jsoncpp)
|
||||
,@(alist-delete "curl" (package-inputs cmake-bootstrap))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "-DCMAKE_USE_SYSTEM_LIBRARIES=ON"
|
||||
(string-append "-DCMAKE_DOC_DIR=share/doc/cmake-"
|
||||
,(version-major+minor (package-version
|
||||
cmake-bootstrap))))
|
||||
|
||||
;; This is the CMake used in cmake-build-system. Ensure compiler
|
||||
;; optimizations are enabled to save size and CPU cycles.
|
||||
#:build-type "Release"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
,@%common-build-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
|
||||
(let ((skipped-tests (list ,@%common-disabled-tests
|
||||
;; This test requires the bundled libuv.
|
||||
"BootstrapTest")))
|
||||
(if tests?
|
||||
(begin
|
||||
(invoke "ctest" "-j" (if parallel-tests?
|
||||
(number->string (parallel-job-count))
|
||||
"1")
|
||||
"--exclude-regex"
|
||||
(string-append "^(" (string-join skipped-tests "|") ")$")))
|
||||
(format #t "test suite not run~%"))
|
||||
#t))))
|
||||
,@(if (%current-target-system)
|
||||
'()
|
||||
`(#:cmake ,cmake-bootstrap))))))
|
||||
|
||||
;;; The "user-facing" CMake, now with manuals and HTML documentation.
|
||||
(define-public cmake
|
||||
(package
|
||||
(inherit cmake-minimal)
|
||||
(name "cmake")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments cmake-minimal)
|
||||
((#:configure-flags configure-flags ''())
|
||||
`(append ,configure-flags
|
||||
;; Extra configure flags used to generate the documentation.
|
||||
'("--sphinx-info"
|
||||
"--sphinx-man"
|
||||
"--sphinx-html")))
|
||||
;; Use cmake-minimal this time.
|
||||
((#:cmake _ #f)
|
||||
(if (%current-target-system)
|
||||
cmake-minimal-cross
|
||||
cmake-minimal))
|
||||
|
||||
;; Enable debugging information for convenience.
|
||||
((#:build-type _ #f) "RelWithDebInfo")
|
||||
|
||||
((#:configure-flags flags ''())
|
||||
`(append (list "-DSPHINX_INFO=ON" "-DSPHINX_MAN=ON" "-DSPHINX_HTML=ON"
|
||||
(string-append "-DCMAKE_DOC_DIR=share/doc/cmake-"
|
||||
,(version-major+minor (package-version
|
||||
cmake-minimal)))
|
||||
"-DCMAKE_INFO_DIR=share/info"
|
||||
"-DCMAKE_MAN_DIR=share/man")
|
||||
,flags))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'install 'move-html-doc
|
||||
@ -208,45 +338,13 @@ and workspaces that can be used in the compiler environment of your choice.")
|
||||
(outputs '("out" "doc"))
|
||||
(properties (alist-delete 'hidden? (package-properties cmake-minimal)))))
|
||||
|
||||
(define-public cmake-3.15.5
|
||||
;; CMake 3.15.5 fixes some issues, but declare another version to
|
||||
;; avoid triggering the rebuild of all CMake-based packages.
|
||||
;; See <https://issues.guix.gnu.org/issue/38060>.
|
||||
;;
|
||||
;; Furthermore, this variant fixes X.509 certificate lookup:
|
||||
;; <https://issues.guix.gnu.org/issue/37371>.
|
||||
(define-public cmake-minimal-cross
|
||||
(package
|
||||
(inherit cmake)
|
||||
(version "3.15.5")
|
||||
(source (origin
|
||||
(inherit (package-source cmake))
|
||||
(uri (string-append "https://www.cmake.org/files/v"
|
||||
(version-major+minor version)
|
||||
"/cmake-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d5y8d92axcc6rfqlsxamayfs3fc1vdby91hn5mx1kn02ppprpgv"))
|
||||
(patches
|
||||
(append (search-patches "cmake-curl-certificates.patch")
|
||||
(origin-patches (package-source cmake))))))
|
||||
|
||||
(native-search-paths
|
||||
;; "cmake-curl-certificates.patch" changes CMake to honor 'SSL_CERT_DIR'
|
||||
;; and 'SSL_CERT_FILE', hence these search path entries.
|
||||
(append (list (search-path-specification
|
||||
(variable "SSL_CERT_DIR")
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs")))
|
||||
(search-path-specification
|
||||
(variable "SSL_CERT_FILE")
|
||||
(file-type 'regular)
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs/ca-certificates.crt"))))
|
||||
(package-native-search-paths cmake)))))
|
||||
|
||||
;; This was cmake@3.15.1 plus "cmake-curl-certificates.patch".
|
||||
(define-deprecated cmake/fixed cmake-3.15.5)
|
||||
(export cmake/fixed)
|
||||
(inherit cmake-minimal)
|
||||
(name "cmake-minimal-cross")
|
||||
(native-search-paths '())
|
||||
(search-paths
|
||||
(package-native-search-paths cmake-minimal))))
|
||||
|
||||
(define-public emacs-cmake-mode
|
||||
(package
|
||||
|
@ -12,6 +12,7 @@
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2019 Hartmut Goebel <h.goebel@goebel-consult.de>
|
||||
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -30,6 +31,7 @@
|
||||
|
||||
(define-module (gnu packages code)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
@ -48,6 +50,7 @@
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages perl-compression)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages sqlite)
|
||||
@ -374,36 +377,60 @@ stack traces.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public lcov
|
||||
(package
|
||||
(name "lcov")
|
||||
(version "1.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/ltp/Coverage%20Analysis"
|
||||
"/LCOV-" version "/lcov-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"06h7ixyznf6vz1qvksjgy5f3q2nw9akf6zx59npf0h3l32cmd68l"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(list (string-append "PREFIX=" out)))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)) ; no configure script
|
||||
#:tests? #f)) ; no 'check' target
|
||||
(inputs `(("perl" ,perl)))
|
||||
(home-page "http://ltp.sourceforge.net/coverage/lcov.php")
|
||||
(synopsis "Code coverage tool that enhances GNU gcov")
|
||||
(description
|
||||
"LCOV is an extension of @command{gcov}, a tool part of the
|
||||
;; Use a recent commit from upstream since the latest official release
|
||||
;; (1.14) doesn't support GCC 9 (see:
|
||||
;; https://github.com/linux-test-project/lcov/issues/58).
|
||||
(let* ((commit "40580cd65909bc8324ae09b36bca2e178652ff3f")
|
||||
(revision "0")
|
||||
(version (git-version "1.14" revision commit)))
|
||||
(package
|
||||
(name "lcov")
|
||||
(version "1.14")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/linux-test-project/lcov.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0shgmh6fzhnj1qfdl90jgjmlbb1ih1qh879dca8hc58yggy3hqgb"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:test-target "test"
|
||||
#:make-flags (list (string-append "PREFIX="
|
||||
(assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-pwd
|
||||
;; Lift the requirement of having a shell in PATH.
|
||||
(lambda _
|
||||
(substitute* "bin/geninfo"
|
||||
(("qw/abs_path/")
|
||||
"qw/abs_path getcwd/"))
|
||||
(substitute* '("bin/lcov" "bin/geninfo")
|
||||
(("`pwd`")
|
||||
"getcwd()"))
|
||||
#t))
|
||||
(delete 'configure) ;no configure script
|
||||
(add-after 'install 'wrap
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(wrap-program (string-append out "/bin/geninfo")
|
||||
`("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
|
||||
#t)))))
|
||||
(inputs `(("perl" ,perl)
|
||||
("perl-json" ,perl-json)
|
||||
("perl-perlio-gzip" ,perl-perlio-gzip)))
|
||||
(home-page "http://ltp.sourceforge.net/coverage/lcov.php")
|
||||
(synopsis "Code coverage tool that enhances GNU gcov")
|
||||
(description "LCOV is an extension of @command{gcov}, a tool part of the
|
||||
GNU@tie{}Binutils, which provides information about what parts of a program
|
||||
are actually executed (i.e., \"covered\") while running a particular test
|
||||
case. The extension consists of a set of Perl scripts which build on the
|
||||
textual @command{gcov} output to implement the following enhanced
|
||||
functionality such as HTML output.")
|
||||
(license license:gpl2+)))
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public rtags
|
||||
(package
|
||||
@ -660,9 +687,24 @@ the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.")
|
||||
;; overrides this to be in PREFIX/doc. Fix this.
|
||||
(substitute* "doc/Makefile.in"
|
||||
(("^docdir = .*$") "docdir = @docdir@\n"))
|
||||
#t))
|
||||
(add-after 'unpack 'fix-configure
|
||||
(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||
;; Replace outdated config.sub and config.guess:
|
||||
(with-directory-excursion "config"
|
||||
(for-each (lambda (file)
|
||||
(install-file
|
||||
(string-append (assoc-ref
|
||||
(or native-inputs inputs) "automake")
|
||||
"/share/automake-"
|
||||
,(version-major+minor
|
||||
(package-version automake))
|
||||
"/" file) "."))
|
||||
'("config.sub" "config.guess")))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("texinfo" ,texinfo)))
|
||||
`(("texinfo" ,texinfo)
|
||||
("automake" ,automake))) ; For up to date 'config.guess' and 'config.sub'.
|
||||
(synopsis "Code reformatter")
|
||||
(description
|
||||
"Indent is a program that makes source code easier to read by
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -12,9 +12,9 @@
|
||||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016, 2019 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2016, 2019, 2020 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2016, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
||||
@ -270,16 +270,14 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
|
||||
(define-public bzip2
|
||||
(package
|
||||
(name "bzip2")
|
||||
(version "1.0.6")
|
||||
(version "1.0.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; XXX The bzip.org domain was allowed to expire.
|
||||
(uri (string-append "https://web.archive.org/web/20180624184806/"
|
||||
"http://www.bzip.org/"
|
||||
version "/bzip2-" version ".tar.gz"))
|
||||
(uri (string-append "https://sourceware.org/pub/bzip2/bzip2-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152"))))
|
||||
"0s92986cv0p692icqlw1j42y9nld8zd83qwhzbqd61p1dqbh6nmb"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
@ -288,6 +286,22 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
|
||||
(srfi srfi-1))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'set-paths 'hide-input-bzip2
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((bzip2 (assoc-ref inputs "bzip2")))
|
||||
(if bzip2
|
||||
;; Prevent the build system from retaining a reference to
|
||||
;; BZIP2 from INPUTS.
|
||||
(begin
|
||||
(setenv "LIBRARY_PATH"
|
||||
(string-join (delete (string-append bzip2 "/lib")
|
||||
(string-split (getenv "LIBRARY_PATH")
|
||||
#\:))
|
||||
":"))
|
||||
(format #t "environment variable `LIBRARY_PATH' set to `~a'~%"
|
||||
(getenv "LIBRARY_PATH")))
|
||||
(format #t "no bzip2 found, nothing done~%"))
|
||||
#t)))
|
||||
(replace 'configure
|
||||
(lambda* (#:key target #:allow-other-keys)
|
||||
(when ,(%current-target-system)
|
||||
@ -1345,18 +1359,18 @@ or junctions, and always follows hard links.")
|
||||
(define-public zstd
|
||||
(package
|
||||
(name "zstd")
|
||||
(version "1.4.2")
|
||||
(version "1.4.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/facebook/zstd/releases/download/"
|
||||
"v" version "/zstd-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1ja3nrjynmiwwdjrf6crraizkbagp7y414bqqq2ady91nn1hjwqj"))))
|
||||
(base32 "05ckxap00qvc0j51d3ci38150cxsw82w7s9zgd5fgzspnzmp1vsr"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" ;1.1MiB executables and documentation
|
||||
"lib" ;1MiB shared library and headers
|
||||
"static")) ;1MiB static library
|
||||
(outputs '("out" ;1.2MiB executables and documentation
|
||||
"lib" ;1.2MiB shared library and headers
|
||||
"static")) ;1.2MiB static library
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
@ -1376,12 +1390,10 @@ or junctions, and always follows hard links.")
|
||||
(delete-file ar))
|
||||
(find-files shared-libs "\\.a$"))
|
||||
|
||||
;; While here, remove prefix= from the pkg-config file because it
|
||||
;; is unused, and because it contains a needless reference to $out.
|
||||
;; XXX: It would be great if #:disallow-references worked between
|
||||
;; outputs.
|
||||
;; Make sure the pkg-config file refers to the right output.
|
||||
(substitute* (string-append shared-libs "/pkgconfig/libzstd.pc")
|
||||
(("^prefix=.*") ""))
|
||||
(("^prefix=.*")
|
||||
(string-append "prefix=" lib "\n")))
|
||||
|
||||
#t))))
|
||||
#:make-flags
|
||||
@ -1558,13 +1570,13 @@ recreates the stored directory structure by default.")
|
||||
(package
|
||||
(name "zziplib")
|
||||
(version "0.13.69")
|
||||
(replacement zziplib/fixed)
|
||||
(home-page "https://github.com/gdraheim/zziplib")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference (url home-page)
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(patches (search-patches "zziplib-CVE-2018-16548.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0fbk9k7ryas2wh2ykwkvm1pbi40i88rfvc3dydh9xyd7w2jcki92"))))
|
||||
@ -1596,13 +1608,6 @@ recreates the stored directory structure by default.")
|
||||
;; files carry the Zlib license; see "docs/copying.html" for details.
|
||||
(license (list license:lgpl2.0+ license:mpl1.1))))
|
||||
|
||||
(define zziplib/fixed
|
||||
(package
|
||||
(inherit zziplib)
|
||||
(source (origin
|
||||
(inherit (package-source zziplib))
|
||||
(patches (search-patches "zziplib-CVE-2018-16548.patch"))))))
|
||||
|
||||
(define-public libzip
|
||||
(package
|
||||
(name "libzip")
|
||||
@ -1791,17 +1796,7 @@ single-member files which can't be decompressed in parallel.")
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'configure 'glibc-is-already-a-system-library
|
||||
(lambda _
|
||||
;; Prevent the build system from passing the glibc
|
||||
;; header files to GCC as "system headers", because
|
||||
;; it conflicts with the system headers already known
|
||||
;; to GCC, causing #include_next failures.
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("include_directories\\(SYSTEM \\$\\{iconv")
|
||||
"include_directories(${iconv"))
|
||||
#t)))))
|
||||
#:configure-flags '("-DBoost_NO_BOOST_CMAKE=ON")))
|
||||
(inputs `(("boost" ,boost)
|
||||
("libiconv" ,libiconv)
|
||||
("xz" ,xz)))
|
||||
@ -1947,7 +1942,7 @@ download times, and other distribution and storage costs.")
|
||||
(define-public quazip
|
||||
(package
|
||||
(name "quazip")
|
||||
(version "0.8.1")
|
||||
(version "0.9")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@ -1956,7 +1951,7 @@ download times, and other distribution and storage costs.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1g473gnsbkvxpsv8lbsmhspn7jnq86b05zzgqh11r581v8ndvz5s"))))
|
||||
"0psvf3d9akyyx3bckc9325nmbp97xiagf8la4vhca5xn2f430fbn"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;no test
|
||||
@ -2194,3 +2189,39 @@ computations.")
|
||||
;; Blosc itself is released under BSD-3 but it incorporates code under
|
||||
;; other non-copyleft licenses.
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public ecm
|
||||
(package
|
||||
(name "ecm")
|
||||
(version "1.0.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/alucryd/ecm-tools")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1rvyx5gcy8lfklgj80szlz3312x45wzx0d9jsgwyvy8f6m4nnb0c"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
#:make-flags
|
||||
(let ((target ,(%current-target-system)))
|
||||
(list (string-append "CC=" (if target
|
||||
(string-append target "-gcc")
|
||||
"gcc"))
|
||||
(string-append "DESTDIR=" (assoc-ref %outputs "out"))))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("\\$\\(DESTDIR\\)/usr") "$(DESTDIR)"))
|
||||
#t)))))
|
||||
(home-page "https://github.com/alucryd/ecm-tools")
|
||||
(synopsis "Error code modeler")
|
||||
(description "ECM is a utility that converts ECM files, i.e., CD data files
|
||||
with their error correction data losslessly rearranged for better compression,
|
||||
to their original, binary CD format.")
|
||||
(license license:gpl3+)))
|
||||
|
@ -3,12 +3,13 @@
|
||||
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
|
||||
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
|
||||
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -362,7 +363,7 @@ tools:
|
||||
(define-public cpplint
|
||||
(package
|
||||
(name "cpplint")
|
||||
(version "1.4.4")
|
||||
(version "1.4.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -372,9 +373,21 @@ tools:
|
||||
(url "https://github.com/cpplint/cpplint")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "1ns9wbizr10w7rpyp106d7ip68s5nyskr54vw9bij11sci9z0v3j"))
|
||||
(base32 "1yzcxqx0186sh80p0ydl9z0ld51fn2cdpz9hmhrp15j53g9ira7c"))
|
||||
(file-name (git-file-name name version))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'use-later-pytest
|
||||
(lambda _
|
||||
(substitute* "test-requirements"
|
||||
(("pytest.*") "pytest\n"))
|
||||
#t)))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-pytest-cov" ,python-pytest-cov)
|
||||
("python-pytest-runner" ,python-pytest-runner)))
|
||||
(home-page "https://github.com/cpplint/cpplint")
|
||||
(synopsis "Static code checker for C++")
|
||||
(description "@code{cpplint} is a command-line tool to check C/C++ files
|
||||
@ -485,3 +498,24 @@ point and then, after each tween step, plugging back the result.")
|
||||
augment the C++ standard library. The Abseil library code is collected from
|
||||
Google's C++ code base.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public pegtl
|
||||
(package
|
||||
(name "pegtl")
|
||||
(version "2.8.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/taocpp/PEGTL.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"17crgjfdx55imi2dqnz6xpvsxq07390yfgkz5nd2g77ydkvq9db3"))))
|
||||
(build-system cmake-build-system)
|
||||
(home-page "https://github.com/taocpp/PEGTL")
|
||||
(synopsis "Parsing Expression Grammar template library")
|
||||
(description "The Parsing Expression Grammar Template Library (PEGTL) is
|
||||
a zero-dependency C++ header-only parser combinator library for creating
|
||||
parsers according to a Parsing Expression Grammar (PEG).")
|
||||
(license license:expat)))
|
||||
|
@ -179,13 +179,13 @@ respecting the grammar of its graphics paradigm.")
|
||||
(define-public r-scales
|
||||
(package
|
||||
(name "r-scales")
|
||||
(version "1.1.0")
|
||||
(version "1.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "scales" version))
|
||||
(sha256
|
||||
(base32 "00rdbfj5mwc3kr8pskidn3n2zkp4ms6cx36xazz54pxw3pysdr0y"))))
|
||||
(base32 "019ps0njjc0rzrjygqiyn8b9vp0c3c0jd56h1yi19wzi49jvdcj0"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-farver" ,r-farver)
|
||||
@ -596,14 +596,14 @@ the embedded @code{RapidXML} C++ library.")
|
||||
(define-public r-modelr
|
||||
(package
|
||||
(name "r-modelr")
|
||||
(version "0.1.6")
|
||||
(version "0.1.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "modelr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x2m34m4qirb401krmgc5wg3g7ndbcglfab2l0655rmky3fz7rfp"))))
|
||||
"1nln33ajad0c917hmal4v6fbw8rncsch9xz5sifqfw6wgqjx9yy6"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-broom" ,r-broom)
|
||||
@ -1480,7 +1480,7 @@ applications. That is, compute distances and related measures for angular
|
||||
(base32
|
||||
"1a8mi70x79a691r40yiw684jkg1mr9n8agkxlcksxcnrdybs9c0x"))))
|
||||
(build-system r-build-system)
|
||||
(inputs `(("libjpeg" ,libjpeg)))
|
||||
(inputs `(("libjpeg" ,libjpeg-turbo)))
|
||||
(home-page "https://www.rforge.net/jpeg/")
|
||||
(synopsis "Read and write JPEG images with R")
|
||||
(description "This package provides a way to read, write and display
|
||||
@ -1753,13 +1753,13 @@ print, summary, plot, update, etc.
|
||||
(define-public r-ps
|
||||
(package
|
||||
(name "r-ps")
|
||||
(version "1.3.2")
|
||||
(version "1.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ps" version))
|
||||
(sha256
|
||||
(base32 "0127q6pw9iw8hhcfp231gmdh29nahh2n5jzc38avrzy7yrm4bwl9"))))
|
||||
(base32 "1x10zgvq75gnkmzqhbqn6jyvp9h1y4qxgnbdds0bwmc8ad8md903"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://ps.r-lib.org")
|
||||
(synopsis "List, query, and manipulate system processes")
|
||||
@ -1771,13 +1771,13 @@ processes. Most of its code is based on the @code{psutil} Python package.")
|
||||
(define-public r-pkgbuild
|
||||
(package
|
||||
(name "r-pkgbuild")
|
||||
(version "1.0.6")
|
||||
(version "1.0.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "pkgbuild" version))
|
||||
(sha256
|
||||
(base32 "0xnlz6ivhkbmncg9hfw5p69lm4rjy3wn5lyxmygxyf4rrfnnqwxx"))))
|
||||
(base32 "188r2ba7y5j80mnfqdf210af40yd28jjgx7rbya4iwcfx7rzqjdi"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-callr" ,r-callr)
|
||||
@ -1974,19 +1974,21 @@ validation and filtering on the values, making options invisible or private.")
|
||||
(define-public r-circlize
|
||||
(package
|
||||
(name "r-circlize")
|
||||
(version "0.4.8")
|
||||
(version "0.4.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "circlize" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0jvr9hmxyhg0zx101iiqkrg8wfaj86kp62xpv42n2j9fkn5r1mi2"))))
|
||||
"14944vn0n5d095mpjyag4fz8vy04m6wxb6mmyygi8q813akikm3h"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-colorspace" ,r-colorspace)
|
||||
("r-globaloptions" ,r-globaloptions)
|
||||
("r-shape" ,r-shape)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/jokergoo/circlize")
|
||||
(synopsis "Circular visualization")
|
||||
(description
|
||||
@ -2272,14 +2274,14 @@ plot networks.")
|
||||
(define-public r-proxy
|
||||
(package
|
||||
(name "r-proxy")
|
||||
(version "0.4-23")
|
||||
(version "0.4-24")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "proxy" version))
|
||||
(sha256
|
||||
(base32
|
||||
"17b6qfllqrhzrxqgx7dccffgybnkcria5a68ap5ly3plg04ypm4x"))))
|
||||
"0z4wdnpv5x135nssxnmkkba7fivd5xgbpaabqjkl2na76vq9pzwc"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/proxy")
|
||||
(synopsis "Distance and similarity measures")
|
||||
@ -2410,14 +2412,14 @@ SpatialVx.")
|
||||
(define-public r-extremes
|
||||
(package
|
||||
(name "r-extremes")
|
||||
(version "2.0-11")
|
||||
(version "2.0-12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "extRemes" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hmgynxhzswqnhwb2sxrkczgam8c17s3vpxqc5bcz0bwczpxxyvm"))))
|
||||
"0wldzvj1h93jksq31dw9zgnr1wrqwmfr9qwmg7qk7nznsn2yy1h2"))))
|
||||
(properties `((upstream-name . "extRemes")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -3259,14 +3261,14 @@ provides a one-row summary of model-level statistics.")
|
||||
(define-public r-recipes
|
||||
(package
|
||||
(name "r-recipes")
|
||||
(version "0.1.10")
|
||||
(version "0.1.12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "recipes" version))
|
||||
(sha256
|
||||
(base32
|
||||
"11f96aanrzi2v6cn49fhvf9y4cmhra63wcy6nvpv6hcfaqqmwd2g"))))
|
||||
"0hbnrqgzazg401nk5fhljif7wnspicki179qf215r34y9wm8g3xj"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-dplyr" ,r-dplyr)
|
||||
@ -4229,14 +4231,14 @@ to variables on the left-hand side of the assignment.")
|
||||
(define-public r-vctrs
|
||||
(package
|
||||
(name "r-vctrs")
|
||||
(version "0.2.4")
|
||||
(version "0.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "vctrs" version))
|
||||
(sha256
|
||||
(base32
|
||||
"15sgzs6afvmhssk6jcg41rn3bvmzmbm4sgca6f6x8lfrsazvdj6w"))))
|
||||
"0ay1fk05mk6cnpfbzqwx6pjxmjk3ipx5xx6k0sbh81r5bqj17vpn"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-digest" ,r-digest)
|
||||
@ -4268,14 +4270,14 @@ to variables on the left-hand side of the assignment.")
|
||||
(define-public r-pillar
|
||||
(package
|
||||
(name "r-pillar")
|
||||
(version "1.4.3")
|
||||
(version "1.4.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "pillar" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02sn7zw80wq33jgxk2i6m5jb83sk7y72dfhgyy0apfinv05w92ss"))))
|
||||
"0viymfp1rkr7ig3m1b016r75hk8qbr9cqsjc6c20ks9pm5svmsp1"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-cli" ,r-cli)
|
||||
@ -5357,14 +5359,14 @@ specific S3-method.")
|
||||
(define-public r-vim
|
||||
(package
|
||||
(name "r-vim")
|
||||
(version "5.1.1")
|
||||
(version "6.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "VIM" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0w22ir0gvym7gqd6nw2j7w5ivlb3az1dkfxv33imimkb7c83056a"))))
|
||||
"0ddhca4v912q82rjpf1qld6i6g2c381g0v5b4hbnygr3lm6a7wiv"))))
|
||||
(properties `((upstream-name . "VIM")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -5381,6 +5383,8 @@ specific S3-method.")
|
||||
("r-robustbase" ,r-robustbase)
|
||||
("r-sp" ,r-sp)
|
||||
("r-vcd" ,r-vcd)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/alexkowa/VIM")
|
||||
(synopsis "Visualization and imputation of missing values")
|
||||
(description
|
||||
@ -5632,19 +5636,21 @@ additional external tools on any platform.")
|
||||
(define-public r-openxlsx
|
||||
(package
|
||||
(name "r-openxlsx")
|
||||
(version "4.1.4")
|
||||
(version "4.1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "openxlsx" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mwxldw9i9nfksx1i6h1kfs7vmsz9fgyllbsipar4vnfyqhqp8q7"))))
|
||||
"0wkpa3wsd8rs0pib7cp67iv0s6jn99frcrw7clypqxmvvdwyb9kq"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-rcpp" ,r-rcpp)
|
||||
("r-stringi" ,r-stringi)
|
||||
("r-zip" ,r-zip)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/awalker89/openxlsx")
|
||||
(synopsis "Read, write and edit XLSX files")
|
||||
(description
|
||||
@ -5837,16 +5843,18 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
|
||||
(define-public r-renv
|
||||
(package
|
||||
(name "r-renv")
|
||||
(version "0.9.3")
|
||||
(version "0.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "renv" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02ayfgbpw4b58148dcxz31anaxncwczmxs1zzkskwj0rzhb2x60r"))))
|
||||
"0yy24kq60dh9n68my132xhhkbnbs7q91z55b1yd6ymr7rxj32mif"))))
|
||||
(properties `((upstream-name . "renv")))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://rstudio.github.io/renv")
|
||||
(synopsis "Project environments")
|
||||
(description
|
||||
@ -6049,17 +6057,53 @@ single layer that takes the groups for comparison and the test as arguments
|
||||
and adds the annotation to the plot.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public r-rstatix
|
||||
(package
|
||||
(name "r-rstatix")
|
||||
(version "0.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rstatix" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ikbjmr58ah39rlwyiix50kl3yk9j7jngsvl6hh973392qdvmch6"))))
|
||||
(properties `((upstream-name . "rstatix")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-broom" ,r-broom)
|
||||
("r-car" ,r-car)
|
||||
("r-corrplot" ,r-corrplot)
|
||||
("r-dplyr" ,r-dplyr)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-purrr" ,r-purrr)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tidyr" ,r-tidyr)
|
||||
("r-tidyselect" ,r-tidyselect)))
|
||||
(home-page "https://rpkgs.datanovia.com/rstatix/")
|
||||
(synopsis "Pipe-friendly framework for basic statistical tests")
|
||||
(description
|
||||
"This package provides a simple and intuitive pipe-friendly framework,
|
||||
coherent with the @code{tidyverse} design philosophy, for performing basic
|
||||
statistical tests, including t-test, Wilcoxon test, ANOVA, Kruskal-Wallis and
|
||||
correlation analyses. The output of each test is automatically transformed
|
||||
into a tidy data frame to facilitate visualization. Additional functions are
|
||||
available for reshaping, reordering, manipulating and visualizing correlation
|
||||
matrix.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-ggpubr
|
||||
(package
|
||||
(name "r-ggpubr")
|
||||
(version "0.2.5")
|
||||
(version "0.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ggpubr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kb3hpmnhj4mkbx1kx0kv5y22himr8dijqx7ra0h8hi0pf2l2ha7"))))
|
||||
"1dly74cnn8iq7vsgmcz0czszdsmg5cgzm4w3s0v30k4psmmzqbxq"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-cowplot" ,r-cowplot)
|
||||
@ -6075,6 +6119,8 @@ and adds the annotation to the plot.")
|
||||
("r-purrr" ,r-purrr)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-scales" ,r-scales)
|
||||
("r-rstatix" ,r-rstatix)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tidyr" ,r-tidyr)))
|
||||
(home-page "http://www.sthda.com/english/rpkgs/ggpubr")
|
||||
(synopsis "ggplot2-based publication-ready plots")
|
||||
@ -6391,14 +6437,14 @@ references and Rd files.")
|
||||
(define-public r-officer
|
||||
(package
|
||||
(name "r-officer")
|
||||
(version "0.3.8")
|
||||
(version "0.3.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "officer" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xhx5n6qksyh2s9hvwhnc8y0hn362asc5y94ld06snad786hz0rw"))))
|
||||
"0kp8rmab917zimnyc0rz37czf5f044z9naiyq0yxw68i990ikxf7"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-magrittr" ,r-magrittr)
|
||||
@ -6603,18 +6649,19 @@ information are missing.")
|
||||
(define-public r-sjlabelled
|
||||
(package
|
||||
(name "r-sjlabelled")
|
||||
(version "1.1.3")
|
||||
(version "1.1.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "sjlabelled" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1amq7i9sxf0pkxhskqc53xq5wvc9rdxm7cxyb4b6xh6qsskjnlsj"))))
|
||||
"00dnrvwf7zbaq07hkh4rx24pvi5bwkl4npf6ycg101s63633dq5m"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-haven" ,r-haven)
|
||||
("r-insight" ,r-insight)))
|
||||
`(("r-insight" ,r-insight)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/strengejacke/sjlabelled")
|
||||
(synopsis "Labelled data utility functions")
|
||||
(description
|
||||
@ -6740,14 +6787,14 @@ documents.")
|
||||
(define-public r-writexl
|
||||
(package
|
||||
(name "r-writexl")
|
||||
(version "1.2")
|
||||
(version "1.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "writexl" version))
|
||||
(sha256
|
||||
(base32
|
||||
"09fhdip6igcg97fjx4c7727cx2lb49l4d74l4i8rg2bag2s5lrj3"))))
|
||||
"0lah0r2pd996s0vdbi614j3h52dbxmifha6f19v53p2b7fr32wjd"))))
|
||||
(build-system r-build-system)
|
||||
(inputs `(("zlib" ,zlib)))
|
||||
(home-page "https://github.com/ropensci/writexl")
|
||||
@ -7084,14 +7131,14 @@ bootstrap. Confidence intervals can be computed for (p)AUC or ROC curves.")
|
||||
(define-public r-rootsolve
|
||||
(package
|
||||
(name "r-rootsolve")
|
||||
(version "1.8.2")
|
||||
(version "1.8.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rootSolve" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0rj7c4zcrzgz7sb0vgvh7swpfafnw4040cxp7ypas3s8fnihn54l"))))
|
||||
"0c9hhgq1pgqdg80a6n2ssfbj5nyaf97y4iiya7j7l6b34qc53128"))))
|
||||
(properties `((upstream-name . "rootSolve")))
|
||||
(build-system r-build-system)
|
||||
(native-inputs `(("gfortran" ,gfortran)))
|
||||
@ -8603,13 +8650,13 @@ detection, parallelism through BLAS and parallel user templates.")
|
||||
(define-public r-sjstats
|
||||
(package
|
||||
(name "r-sjstats")
|
||||
(version "0.17.9")
|
||||
(version "0.18.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "sjstats" version))
|
||||
(sha256
|
||||
(base32 "0938ac6ixvkif07azd2msa8g3qnn9rabj6jg17almbysl83kg4nm"))))
|
||||
(base32 "17b1fcrhgjw66qa8zk2jj1bvz3vp5bnjn3p4y1wsg5ng5nxq8jz0"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-bayestestr" ,r-bayestestr)
|
||||
@ -8705,14 +8752,14 @@ ROPE percentage and pd).")
|
||||
(define-public r-performance
|
||||
(package
|
||||
(name "r-performance")
|
||||
(version "0.4.5")
|
||||
(version "0.4.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "performance" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0j6wmnwhfdd3v1a17qmg491q50579knjzscmyr4yk3xr0jbsbg8x"))))
|
||||
"08i9ngvga06abs2k50gvkh6iwl4r77bkmmchsqjibsy09wdvd8xj"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-bayestestr" ,r-bayestestr)
|
||||
@ -8920,14 +8967,14 @@ terminals that do not support Unicode.")
|
||||
(define-public r-usethis
|
||||
(package
|
||||
(name "r-usethis")
|
||||
(version "1.6.0")
|
||||
(version "1.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "usethis" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12iyimqyza752anj29wpfisl8nz5r25kfcqbssybg24nb4wyy146"))))
|
||||
"0vwxsnq615mwc706a4a71gyy0hmvnllbh249gzm7vl3ym5cr0cv0"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-cli" ,r-cli)
|
||||
@ -9141,14 +9188,14 @@ users.")
|
||||
(define-public r-lsei
|
||||
(package
|
||||
(name "r-lsei")
|
||||
(version "1.2-0")
|
||||
(version "1.2-0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lsei" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1xl06fb3is744pxlh42wx5hn1h0ab1k31wnmsmh0524kxzcyp0a7"))))
|
||||
"1rvzdb33x9ykl5qfwxkps1iylxqzlf1qla3l88420nbq7pxp7m87"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("gfortran" ,gfortran)))
|
||||
@ -9164,14 +9211,14 @@ problems into least squares ones first.")
|
||||
(define-public r-npsurv
|
||||
(package
|
||||
(name "r-npsurv")
|
||||
(version "0.4-0")
|
||||
(version "0.4-0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "npsurv" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1wq4c9yfha5azjhrn40iiqkshmvh611sa90jp3lh82n4bl9zfk20"))))
|
||||
"09nxibp93bp9v8qcx0gnazk7fkvyh0fq9vlgxl639m6ndr7fwp88"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-lsei" ,r-lsei)))
|
||||
@ -9447,14 +9494,14 @@ package provides a minimal R interface by relying on the Rcpp package.")
|
||||
(define-public r-rcppparallel
|
||||
(package
|
||||
(name "r-rcppparallel")
|
||||
(version "5.0.0")
|
||||
(version "5.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RcppParallel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mhd6vp47xmfw533h0pkvydv96m57fspvd85g8m7iqb5rcxvhhdb"))))
|
||||
"029yyjnixggqmddazwxh1wqid1h7xpwpi4sgixyhbb4kmvqlwfkd"))))
|
||||
(properties `((upstream-name . "RcppParallel")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://rcppcore.github.io/RcppParallel/")
|
||||
@ -9655,14 +9702,14 @@ features (e.g. local modes).")
|
||||
(define-public r-arm
|
||||
(package
|
||||
(name "r-arm")
|
||||
(version "1.10-1")
|
||||
(version "1.11-1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "arm" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vvp90jygajd6ydky57z66wqjq9msfbl88irj5jbsray574mh4bg"))))
|
||||
"0i2lnm09bqy1qw0ms5pw0rzw196xmnk5dxha3g8lc58lqpldp0kv"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-abind" ,r-abind)
|
||||
@ -9900,7 +9947,7 @@ redundant complex conjugate when the input is real data.")
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("libtiff" ,libtiff)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://www.rforge.net/tiff/")
|
||||
(synopsis "Read and write TIFF images")
|
||||
@ -10801,14 +10848,14 @@ and manipulating sets of ontological terms.")
|
||||
(define-public r-gargle
|
||||
(package
|
||||
(name "r-gargle")
|
||||
(version "0.4.0")
|
||||
(version "0.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "gargle" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08zhfk2sl342w35i5n2c93ayypg3z0kbl0020l3y9adqka1vazgx"))))
|
||||
"1fykmiv3x8c9ai31r9wr7qcca51h6kqn9cgwbxvxfj15fhwskh4n"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-fs" ,r-fs)
|
||||
@ -10817,6 +10864,8 @@ and manipulating sets of ontological terms.")
|
||||
("r-jsonlite" ,r-jsonlite)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-withr" ,r-withr)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://gargle.r-lib.org")
|
||||
(synopsis "Utilities for working with Google APIs")
|
||||
(description
|
||||
@ -10828,14 +10877,14 @@ preparing, executing, and processing HTTP requests.")
|
||||
(define-public r-bigrquery
|
||||
(package
|
||||
(name "r-bigrquery")
|
||||
(version "1.2.0")
|
||||
(version "1.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "bigrquery" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ggh2gngr5x0g6y7d55y6kvn94anf7qi1bkc28cjmw61hxjq38fb"))))
|
||||
"0j8asipnb4fg4kk3apy37ywqq78ncmqh9wq015xpww2zb9shnbvf"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-assertthat" ,r-assertthat)
|
||||
@ -11599,14 +11648,14 @@ library.")
|
||||
(define-public r-protviz
|
||||
(package
|
||||
(name "r-protviz")
|
||||
(version "0.6.4")
|
||||
(version "0.6.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "protViz" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1qq9bf4485x8cviry9fmhnv4hw9aw657w134003myzcv42c4pml6"))))
|
||||
"0rn8fjg7791a4j2k1kk1jwx40xz20bfaavvflmhyzpl398vmmy3a"))))
|
||||
(properties `((upstream-name . "protViz")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs `(("r-rcpp" ,r-rcpp)))
|
||||
@ -12849,14 +12898,14 @@ plotting functions are available for analyzing clustering results.")
|
||||
(define-public r-valr
|
||||
(package
|
||||
(name "r-valr")
|
||||
(version "0.5.0")
|
||||
(version "0.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "valr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"14jhrwkiwmha3vlmm7b50n2xxyizj6ddmy89gb20mpzq7qhz1ika"))))
|
||||
"1qxw6h63i2vfb2w6q453zzwk0ypma3xdwwpj15i06669vzgyy3bb"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-broom" ,r-broom)
|
||||
@ -12867,6 +12916,8 @@ plotting functions are available for analyzing clustering results.")
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-tibble" ,r-tibble)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "http://github.com/rnabioco/valr")
|
||||
(synopsis "Genome interval arithmetic in R")
|
||||
(description
|
||||
@ -12878,14 +12929,14 @@ R, enabling interactive analysis and visualization of genome-scale data.")
|
||||
(define-public r-rematch2
|
||||
(package
|
||||
(name "r-rematch2")
|
||||
(version "2.1.1")
|
||||
(version "2.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rematch2" version))
|
||||
(sha256
|
||||
(base32
|
||||
"13siaa8s2ji9q6hykhb2r34ag76335ypmbqr90xaqilbir0klhnh"))))
|
||||
"1fzpz8vhghw8ygwg6rsvfy3783pqk7ch029i5851lwypkplvz77y"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-tibble" ,r-tibble)))
|
||||
@ -13355,14 +13406,14 @@ tessellation.")
|
||||
(define-public r-sf
|
||||
(package
|
||||
(name "r-sf")
|
||||
(version "0.9-2")
|
||||
(version "0.9-3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "sf" version))
|
||||
(sha256
|
||||
(base32
|
||||
"01xplgy5nlwy3ajfch4h1ssa1xhm7q0jzscpz04dmvgqfzwhhdfh"))))
|
||||
"0qh9jxj88rhkwcd95g0l57cdrz5qqjw1b9yysz1hp9cp99485hcx"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("gdal" ,gdal)
|
||||
@ -13426,14 +13477,14 @@ spanning tree.")
|
||||
(define-public r-adegenet
|
||||
(package
|
||||
(name "r-adegenet")
|
||||
(version "2.1.2")
|
||||
(version "2.1.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "adegenet" version))
|
||||
(sha256
|
||||
(base32
|
||||
"01fgrgbiddz2q4l3mx637hhwbs7r0c43yw7vpwl8p8pwbm3nykz0"))))
|
||||
"1ipnawi0qfd4rfwj37igvh36x1a9d8x4n7xynn1jcr12rd713407"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-ade4" ,r-ade4)
|
||||
@ -13572,13 +13623,13 @@ either PDF/EPS files.")
|
||||
(define-public r-polspline
|
||||
(package
|
||||
(name "r-polspline")
|
||||
(version "1.1.17")
|
||||
(version "1.1.18")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "polspline" version))
|
||||
(sha256
|
||||
(base32 "0c7fnxpqpy3hibiim4yib6l6bq363s97wwvllxp4lp8h06fjcyyn"))))
|
||||
(base32 "00h1xg89wncfj2nk68zv7vphfcc68s7k0l5s9511bzxz8khhw9fz"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs `(("gfortran" ,gfortran)))
|
||||
(home-page "https://cran.r-project.org/web/packages/polspline/")
|
||||
@ -15435,14 +15486,14 @@ classification and regression models.")
|
||||
(define-public r-dalex
|
||||
(package
|
||||
(name "r-dalex")
|
||||
(version "1.2.0")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "DALEX" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mfcci54622gnk8al9fl2jhs9i2vfly7lam04y5rdacbyiam49j6"))))
|
||||
"0lx8nasm1zgh1ckz8nw3ysp6xjv3dsj39hzhr6k3xhh6i8pm9rxk"))))
|
||||
(properties `((upstream-name . "DALEX")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -15510,14 +15561,14 @@ includes data sets from oceanography.")
|
||||
(define-public r-ggfortify
|
||||
(package
|
||||
(name "r-ggfortify")
|
||||
(version "0.4.9")
|
||||
(version "0.4.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ggfortify" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1p6knrbyaynaqwd939w09hpf1zz1gn95cb46sfgppl8l98krb2h5"))))
|
||||
"0wmcwp63h90v3f00ixszvis4z28im621jickvc0wgi6qvjvnayq0"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-dplyr" ,r-dplyr)
|
||||
@ -16026,14 +16077,14 @@ both R code and compiled C/C++/FORTRAN code.")
|
||||
(define-public r-systemfonts
|
||||
(package
|
||||
(name "r-systemfonts")
|
||||
(version "0.2.0")
|
||||
(version "0.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "systemfonts" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1aba07djvxqdmnsdbwvzcsbm2fddnhrssa54xyrlviiwsv2c1qsd"))))
|
||||
"0dna00xai0pw76b4830yy4r5j1hq7f7kla67v0iz39cjm4rq4ygq"))))
|
||||
(properties `((upstream-name . "systemfonts")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
@ -16055,14 +16106,14 @@ be used further by e.g. graphic devices.")
|
||||
(define-public r-graphlayouts
|
||||
(package
|
||||
(name "r-graphlayouts")
|
||||
(version "0.6.0")
|
||||
(version "0.7.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "graphlayouts" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1la016m37kp79zk8p1yx9kaha8y6d4w52w39h0mzv1mfsi6d75w0"))))
|
||||
"17lc75k8i3c696hfj44zj7j1a5sb0nap8spc5r98v7vd6xh4nii0"))))
|
||||
(properties `((upstream-name . "graphlayouts")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -16082,14 +16133,14 @@ emphasize hidden group structures in networks or focus on specific nodes.")
|
||||
(define-public r-tidygraph
|
||||
(package
|
||||
(name "r-tidygraph")
|
||||
(version "1.1.2")
|
||||
(version "1.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "tidygraph" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zpsarm74afbc7p5dlyb0whc09670qdcddw1ckb25cfc9hfh0hjn"))))
|
||||
"17qjns33zcj82jcsl7bn7i4zxcm7ric50zyf7agi0i01zi16qz85"))))
|
||||
(properties `((upstream-name . "tidygraph")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -16818,14 +16869,14 @@ server-side.")
|
||||
(define-public r-sysfonts
|
||||
(package
|
||||
(name "r-sysfonts")
|
||||
(version "0.8")
|
||||
(version "0.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "sysfonts" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0wng902plryf2d8fc7k7m3jx11acz51kb2d91cqbyhq7xpk06z43"))))
|
||||
"1xp40hchjfif80a6jj210ghrjcvjjf66vqcssdy7a1j53nl1n994"))))
|
||||
(properties `((upstream-name . "sysfonts")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
@ -16866,14 +16917,14 @@ package.")
|
||||
(define-public r-showtext
|
||||
(package
|
||||
(name "r-showtext")
|
||||
(version "0.7-1")
|
||||
(version "0.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "showtext" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0a5gg72bfrc7wm0phj1aflj1wc08kfi81ac32na6ya9s2ivyimw5"))))
|
||||
"15v90s061iz9i655xin7kqb6ahnski55pgz3329wcz60bnbjb82x"))))
|
||||
(properties `((upstream-name . "showtext")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
@ -16883,7 +16934,9 @@ package.")
|
||||
(propagated-inputs
|
||||
`(("r-showtextdb" ,r-showtextdb)
|
||||
("r-sysfonts" ,r-sysfonts)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/yixuan/showtext")
|
||||
(synopsis "Using fonts more easily in R graphs")
|
||||
(description
|
||||
@ -17171,14 +17224,14 @@ data.")
|
||||
(define-public r-mda
|
||||
(package
|
||||
(name "r-mda")
|
||||
(version "0.4-10")
|
||||
(version "0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "mda" version))
|
||||
(sha256
|
||||
(base32
|
||||
"19g6kn6g0shidrjfffklbmzc5w7mcimrxhagx4nmpslg59ibqdkh"))))
|
||||
"01pjrz9xv1rx78ndy0x9dc32ws8brcvwyb500m1f0dqd42375vmx"))))
|
||||
(properties `((upstream-name . "mda")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs `(("r-class" ,r-class)))
|
||||
@ -18630,7 +18683,7 @@ currently limited to 8 bit greyscale images and 24, 32 bit (A)RGB images.")
|
||||
(properties `((upstream-name . "readbitmap")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("libjpeg" ,libjpeg)
|
||||
`(("libjpeg" ,libjpeg-turbo)
|
||||
("libpng" ,libpng)))
|
||||
(propagated-inputs
|
||||
`(("r-bmp" ,r-bmp)
|
||||
@ -18648,14 +18701,14 @@ number embedded in the file rather than the file extension.")
|
||||
(define-public r-imager
|
||||
(package
|
||||
(name "r-imager")
|
||||
(version "0.42.1")
|
||||
(version "0.42.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "imager" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1d7a49lcna77wyfjf5q1b89jck3p3vnysnkgz4drb0qkpy6hz76b"))))
|
||||
"1wxvbv803222gjrf1ys6a349xlnmmdw3kqgi93piq9gq7lahihvg"))))
|
||||
(properties `((upstream-name . "imager")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
@ -18673,7 +18726,9 @@ number embedded in the file rather than the file extension.")
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-readbitmap" ,r-readbitmap)
|
||||
("r-stringr" ,r-stringr)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("r-knitr" ,r-knitr)))
|
||||
(home-page "https://dahtah.github.io/imager/")
|
||||
(synopsis "Image processing library")
|
||||
(description
|
||||
@ -18795,14 +18850,14 @@ functions.")
|
||||
(define-public r-univoutl
|
||||
(package
|
||||
(name "r-univoutl")
|
||||
(version "0.1-5")
|
||||
(version "0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "univOutl" version))
|
||||
(sha256
|
||||
(base32
|
||||
"193wrpkvgmlrx43nag8w3ivrlqm37nm6g86wcvd3bgw3hchs70gi"))))
|
||||
"0rlc3w7cx2hfxacpjs9kmjzv5p8v9wxnlpxi3rh276wiy5zdr91v"))))
|
||||
(properties `((upstream-name . "univOutl")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -19309,14 +19364,14 @@ automatically show a loader when the output is (re)calculating.")
|
||||
(define-public r-rsvg
|
||||
(package
|
||||
(name "r-rsvg")
|
||||
(version "1.3")
|
||||
(version "2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rsvg" version))
|
||||
(sha256
|
||||
(base32
|
||||
"11mccgf6hfskg45wqc114sx3qy2r494y6axdf73z6xwhs1wpm97g"))))
|
||||
"0r066lvyfvhsjjpiad259f1m3qk5w7hxhbyjzhlryzf3fy0hvh29"))))
|
||||
(properties `((upstream-name . "rsvg")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
@ -20159,14 +20214,14 @@ and analyze Stan models.")
|
||||
(define-public r-rpf
|
||||
(package
|
||||
(name "r-rpf")
|
||||
(version "1.0.3")
|
||||
(version "1.0.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rpf" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1i2kqd7nx55nn35qnw89xmnqk23x9c8xhkh736c2xg7k2ai84ybl"))))
|
||||
"17crcgsbcsh0c00n7bgdqfnd7n1vzz7drfxjs7d18253yl5x44pl"))))
|
||||
(properties `((upstream-name . "rpf")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -20174,6 +20229,8 @@ and analyze Stan models.")
|
||||
("r-mvtnorm" ,r-mvtnorm)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-rcppeigen" ,r-rcppeigen)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/jpritikin/rpf")
|
||||
(synopsis "Response probability functions")
|
||||
(description
|
||||
@ -20219,19 +20276,18 @@ estimate parameters given observed data.")
|
||||
(define-public r-kutils
|
||||
(package
|
||||
(name "r-kutils")
|
||||
(version "1.69")
|
||||
(version "1.70")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "kutils" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12pg26a85h0jxlfcyai68dbh4bq1gnq8v1ngi8k9qvafbrpc6gx8"))))
|
||||
"06jk66wbq3jmdf2jdhqns6r3yk36l2x7c907x977zv80sqxa1l37"))))
|
||||
(properties `((upstream-name . "kutils")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-foreign" ,r-foreign)
|
||||
("r-lavaan" ,r-lavaan)
|
||||
("r-openxlsx" ,r-openxlsx)
|
||||
("r-plyr" ,r-plyr)
|
||||
("r-runit" ,r-runit)
|
||||
@ -20469,14 +20525,14 @@ well as Ravand and Robitzsch (2015).")
|
||||
(define-public r-tam
|
||||
(package
|
||||
(name "r-tam")
|
||||
(version "3.4-26")
|
||||
(version "3.5-19")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "TAM" version))
|
||||
(sha256
|
||||
(base32
|
||||
"111d7qkxhwh1lfvldyh9d61pdb5vb6x8lr8n9h95ssvw07vjqvk9"))))
|
||||
"1x1pdy0hrk4c3x5l4gcslpvyb0sv2zgly4n3a7y8j6yrzajx0sg7"))))
|
||||
(properties `((upstream-name . "TAM")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -21633,3 +21689,40 @@ infinite-precision rational arithmetic.")
|
||||
Archive Toolkit. Rxnat uses the XNAT REST API to perform data queries and
|
||||
download images.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-rserve
|
||||
(package
|
||||
(name "r-rserve")
|
||||
(version "1.8-6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.rforge.net/Rserve/snapshot/Rserve_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"017kkzv9lxlz9qhg3gprrf1wcyflxrif6wjk27x9b4bdzylw6bsx"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-checkmate" ,r-checkmate)
|
||||
("r-mime" ,r-mime)
|
||||
("r-jsonlite" ,r-jsonlite)
|
||||
("r-knitr" ,r-knitr)
|
||||
("r-r6" ,r-r6)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-uuid" ,r-uuid)))
|
||||
(inputs
|
||||
`(("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://github.com/s-u/Rserve")
|
||||
(synopsis
|
||||
"Server providing access to R from many languages and systems")
|
||||
(description
|
||||
"Rserve acts as a socket server (TCP/IP or local sockets) which allows
|
||||
binary requests to be sent to R. Every connection has a separate workspace
|
||||
and working directory. Client-side implementations are available for popular
|
||||
languages such as C/C++ and Java, allowing any application to use facilities
|
||||
of R without the need of linking to R code. Rserve supports remote
|
||||
connection, user authentication and file transfer. A simple R client is
|
||||
included in this package as well.")
|
||||
(license license:gpl2)))
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,8 +4,9 @@
|
||||
;;; Copyright © 2016, 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
|
||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -54,8 +55,11 @@
|
||||
|
||||
(define %gcc-include-paths
|
||||
;; Environment variables for header search paths.
|
||||
;; Note: See <http://bugs.gnu.org/30756> for why not 'C_INCLUDE_PATH' & co.
|
||||
'("CPATH"))
|
||||
;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
|
||||
'("C_INCLUDE_PATH"
|
||||
"CPLUS_INCLUDE_PATH"
|
||||
"OBJC_INCLUDE_PATH"
|
||||
"OBJCPLUS_INCLUDE_PATH"))
|
||||
|
||||
(define %gcc-cross-include-paths
|
||||
;; Search path for target headers when cross-compiling.
|
||||
@ -70,8 +74,8 @@
|
||||
`(cons ,(string-append "--target=" target)
|
||||
,flags))))))
|
||||
|
||||
(define (cross-binutils target)
|
||||
"Return a cross-Binutils for TARGET."
|
||||
(define* (cross-binutils target #:optional (binutils binutils))
|
||||
"Return a cross-Binutils for TARGET using BINUTILS."
|
||||
(let ((binutils (package (inherit binutils)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments
|
||||
@ -158,6 +162,13 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
|
||||
"--disable-libsanitizer"
|
||||
))
|
||||
|
||||
;; Install cross-built libraries such as libgcc_s.so in
|
||||
;; the "lib" output.
|
||||
,@(if libc
|
||||
`((string-append "--with-toolexeclibdir="
|
||||
(assoc-ref %outputs "lib")
|
||||
"/" ,target "/lib"))
|
||||
'())
|
||||
;; For a newlib (non-glibc) target
|
||||
,@(if (cross-newlib? target)
|
||||
'("--with-newlib")
|
||||
@ -176,19 +187,7 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
|
||||
,flags))
|
||||
flags))
|
||||
((#:phases phases)
|
||||
`(cross-gcc-build-phases
|
||||
,target
|
||||
(modify-phases ,phases
|
||||
(add-before 'configure 'treat-glibc-as-system-header
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((libc (assoc-ref inputs "libc")))
|
||||
(when libc
|
||||
;; For GCC6 and later, make sure Glibc is treated as a "system
|
||||
;; header" such that #include_next does the right thing.
|
||||
(for-each (lambda (var)
|
||||
(setenv var (string-append libc "/include")))
|
||||
'("CROSS_C_INCLUDE_PATH" "CROSS_CPLUS_INCLUDE_PATH")))
|
||||
#t))))))))))
|
||||
`(cross-gcc-build-phases ,target ,phases))))))
|
||||
|
||||
(define (cross-gcc-patches xgcc target)
|
||||
"Return GCC patches needed for XGCC and TARGET."
|
||||
@ -204,12 +203,19 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
|
||||
|
||||
(define (cross-gcc-snippet target)
|
||||
"Return GCC snippet needed for TARGET."
|
||||
(cond ((target-mingw? target)
|
||||
'(begin
|
||||
(copy-recursively "libstdc++-v3/config/os/mingw32-w64"
|
||||
"libstdc++-v3/config/os/newlib")
|
||||
#t))
|
||||
(else #f)))
|
||||
`(begin
|
||||
,@(if (target-mingw? target)
|
||||
'((copy-recursively "libstdc++-v3/config/os/mingw32-w64"
|
||||
"libstdc++-v3/config/os/newlib"))
|
||||
'())
|
||||
;; TOOLDIR_BASE_PREFIX is erroneous when using a separate "lib"
|
||||
;; output. Specify it correctly, otherwise GCC won't find its shared
|
||||
;; libraries installed in the "lib" output. See:
|
||||
;; https://lists.gnu.org/archive/html/bug-guix/2020-03/msg00196.html.
|
||||
(substitute* "gcc/Makefile.in"
|
||||
(("-DTOOLDIR_BASE_PREFIX=[^ ]*")
|
||||
"-DTOOLDIR_BASE_PREFIX=\\\"../../../../\\\""))
|
||||
#t))
|
||||
|
||||
(define* (cross-gcc target
|
||||
#:key
|
||||
@ -224,22 +230,26 @@ target that libc."
|
||||
(name (string-append "gcc-cross-"
|
||||
(if libc "" "sans-libc-")
|
||||
target))
|
||||
(source (origin (inherit (package-source xgcc))
|
||||
(patches
|
||||
(append
|
||||
(origin-patches (package-source xgcc))
|
||||
(cons (cond
|
||||
((version>=? (package-version xgcc) "8.0") (search-patch "gcc-8-cross-environment-variables.patch"))
|
||||
((version>=? (package-version xgcc) "6.0") (search-patch "gcc-6-cross-environment-variables.patch"))
|
||||
(else (search-patch "gcc-cross-environment-variables.patch")))
|
||||
(cross-gcc-patches xgcc target))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
(cross-gcc-snippet target))))
|
||||
(source
|
||||
(origin
|
||||
(inherit (package-source xgcc))
|
||||
(patches
|
||||
(append
|
||||
(origin-patches (package-source xgcc))
|
||||
(append (cond
|
||||
((version>=? (package-version xgcc) "8.0")
|
||||
(search-patches "gcc-8-cross-environment-variables.patch"))
|
||||
((version>=? (package-version xgcc) "6.0")
|
||||
(search-patches "gcc-7-cross-toolexeclibdir.patch"
|
||||
"gcc-6-cross-environment-variables.patch"))
|
||||
(else
|
||||
(search-patches "gcc-cross-environment-variables.patch")))
|
||||
(cross-gcc-patches xgcc target))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
(cross-gcc-snippet target))))
|
||||
|
||||
;; For simplicity, use a single output. Otherwise libgcc_s & co. are not
|
||||
;; found by default, etc.
|
||||
(outputs '("out"))
|
||||
(outputs '("out" "lib"))
|
||||
|
||||
(arguments
|
||||
`(#:implicit-inputs? #f
|
||||
@ -261,27 +271,31 @@ target that libc."
|
||||
#:binutils xbinutils))
|
||||
("binutils-cross" ,xbinutils)
|
||||
|
||||
;; Call it differently so that the builder can check whether the "libc"
|
||||
;; input is #f.
|
||||
("libc-native" ,@(assoc-ref (%final-inputs) "libc"))
|
||||
|
||||
;; Remaining inputs.
|
||||
,@(let ((inputs (append (package-inputs xgcc)
|
||||
(alist-delete "libc" (%final-inputs)))))
|
||||
(fold alist-delete (%final-inputs)
|
||||
'("libc" "libc:static"))
|
||||
|
||||
;; Call it differently so that the builder can
|
||||
;; check whether the "libc" input is #f.
|
||||
`(("libc-native"
|
||||
,@(assoc-ref (%final-inputs) "libc"))
|
||||
("libc-native:static"
|
||||
,@(assoc-ref (%final-inputs)
|
||||
"libc:static"))))))
|
||||
(cond
|
||||
((target-mingw? target)
|
||||
(if libc
|
||||
`(("libc" ,libc)
|
||||
,@inputs)
|
||||
`(("mingw-source" ,(package-source mingw-w64))
|
||||
,@inputs)))
|
||||
`(,@inputs
|
||||
("libc" ,libc))
|
||||
`(,@inputs
|
||||
("mingw-source" ,(package-source mingw-w64)))))
|
||||
(libc
|
||||
`(("libc" ,libc)
|
||||
`(,@inputs
|
||||
("libc" ,libc)
|
||||
("libc:static" ,libc "static")
|
||||
("xkernel-headers" ;the target headers
|
||||
,@(assoc-ref (package-propagated-inputs libc)
|
||||
"kernel-headers"))
|
||||
,@inputs))
|
||||
"kernel-headers"))))
|
||||
(else inputs)))))
|
||||
|
||||
(inputs '())
|
||||
@ -293,7 +307,15 @@ target that libc."
|
||||
(map (lambda (variable)
|
||||
(search-path-specification
|
||||
(variable variable)
|
||||
(files '("include"))))
|
||||
|
||||
;; Add 'include/c++' here so that <cstdlib>'s
|
||||
;; "#include_next <stdlib.h>" finds GCC's
|
||||
;; <stdlib.h>, not libc's.
|
||||
(files (match variable
|
||||
("CROSS_CPLUS_INCLUDE_PATH"
|
||||
'("include/c++" "include"))
|
||||
(_
|
||||
'("include"))))))
|
||||
%gcc-cross-include-paths)))
|
||||
(native-search-paths '())))
|
||||
|
||||
@ -499,7 +521,16 @@ and the cross tool chain."
|
||||
(("/[^ ]+/lib/libc.so.0.3")
|
||||
(string-append out "/lib/libc.so.0.3"
|
||||
" libmachuser.so libhurduser.so"))))
|
||||
#t)))
|
||||
#t))
|
||||
;; TODO: move to glibc in the next rebuild cycle
|
||||
(add-after 'unpack 'patch-libc/hurd
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(for-each
|
||||
(lambda (name)
|
||||
(let ((patch (assoc-ref inputs name)))
|
||||
(invoke "patch" "-p1" "--force" "-i" patch)))
|
||||
'("hurd-mach-print.patch"
|
||||
"hurd-gettyent.patch")))))
|
||||
'())))))
|
||||
|
||||
;; Shadow the native "kernel-headers" because glibc's recipe expects the
|
||||
@ -515,7 +546,12 @@ and the cross tool chain."
|
||||
,@(if (hurd-triplet? target)
|
||||
`(("cross-mig"
|
||||
,@(assoc-ref (package-native-inputs xheaders)
|
||||
"cross-mig")))
|
||||
"cross-mig"))
|
||||
;; TODO: move to glibc in the next rebuild cycle
|
||||
("hurd-mach-print.patch"
|
||||
,@(search-patches "glibc-hurd-mach-print.patch"))
|
||||
("hurd-gettyent.patch"
|
||||
,@(search-patches "glibc-hurd-gettyent.patch")))
|
||||
'())
|
||||
,@(package-inputs libc) ;FIXME: static-bash
|
||||
,@(package-native-inputs libc))))))
|
||||
|
@ -4,7 +4,7 @@
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
@ -14,6 +14,7 @@
|
||||
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -715,19 +716,28 @@ BLAKE.")
|
||||
(define-public rhash
|
||||
(package
|
||||
(name "rhash")
|
||||
(version "1.3.8")
|
||||
(version "1.3.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/rhash/RHash/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(uri (string-append "mirror://sourceforge/rhash/rhash/" version
|
||||
"/rhash-" version "-src.tar.gz"))
|
||||
(file-name (string-append "rhash-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0k60ywyhwqwqxa2q2l85vwgf884hcgy31nxir3dqgz7ymib6llxy"))))
|
||||
"1xn9fqa6rlnhsbgami45g82dlw9i1skg2sri3ydiinwak5ph1ca2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
`(#:configure-flags
|
||||
(list (string-append "--prefix=" (assoc-ref %outputs "out"))
|
||||
,@(let ((target (%current-target-system)))
|
||||
(if target
|
||||
`((string-append "--target=" ,target)
|
||||
(string-append "--cc="
|
||||
(assoc-ref %build-inputs "cross-gcc")
|
||||
"/bin/" ,target "-gcc"))
|
||||
'())))
|
||||
#:make-flags
|
||||
;; The binaries in /bin need some help finding librhash.so.0.
|
||||
(list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
|
||||
#:test-target "test" ; ‘make check’ just checks the sources
|
||||
@ -736,9 +746,13 @@ BLAKE.")
|
||||
(replace 'configure
|
||||
;; ./configure is not GNU autotools' and doesn't gracefully handle
|
||||
;; unrecognized options, so we must call it manually.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" (assoc-ref outputs "out")))))
|
||||
(lambda* (#:key configure-flags #:allow-other-keys)
|
||||
(apply invoke "./configure" configure-flags)))
|
||||
(add-before 'check 'patch-/bin/sh
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t))
|
||||
(add-after 'install 'install-library-extras
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(apply invoke
|
||||
|
@ -62,7 +62,7 @@
|
||||
("libgcrypt" ,libgcrypt)
|
||||
("lvm2" ,lvm2) ; device-mapper
|
||||
("popt" ,popt)
|
||||
("util-linux" ,util-linux))) ; libuuid
|
||||
("util-linux" ,util-linux "lib"))) ;libuuid
|
||||
(synopsis "Hard disk encryption tool")
|
||||
(description
|
||||
"LUKS (Linux Unified Key Setup)/Cryptsetup provides a standard on-disk
|
||||
@ -142,6 +142,6 @@ files). This assumes LIBRARY uses Libtool."
|
||||
("libgcrypt" ,libgcrypt-static)
|
||||
("lvm2" ,lvm2-static)
|
||||
("util-linux" ,util-linux "static")
|
||||
("util-linux" ,util-linux)
|
||||
("util-linux" ,util-linux "lib")
|
||||
("popt" ,popt))))
|
||||
(synopsis "Hard disk encryption tool (statically linked)")))
|
||||
|
@ -6,6 +6,7 @@
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -158,7 +159,7 @@
|
||||
("ijs" ,ijs)
|
||||
("dbus" ,dbus)
|
||||
("lcms" ,lcms)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libpng" ,libpng)
|
||||
("libtiff" ,libtiff)
|
||||
("glib" ,glib)
|
||||
@ -536,7 +537,20 @@ should only be used as part of the Guix cups-pk-helper service.")
|
||||
(string-append "rulessystemdir = " out
|
||||
"/lib/systemd/system"))
|
||||
(("/etc/sane.d")
|
||||
(string-append out "/etc/sane.d"))))))
|
||||
(string-append out "/etc/sane.d")))
|
||||
#t)))
|
||||
(add-before 'configure 'fix-build-with-python-3.8
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((python (assoc-ref inputs "python")))
|
||||
;; XXX: The configure script of looks for Python headers in the
|
||||
;; wrong places as of version 3.20.3. Help it by adding the
|
||||
;; include directory on C_INCLUDE_PATH.
|
||||
(when python
|
||||
(setenv "C_INCLUDE_PATH"
|
||||
(string-append python "/include/python"
|
||||
(python:python-version python)
|
||||
":" (getenv "C_INCLUDE_PATH"))))
|
||||
#t)))
|
||||
(add-after 'install 'install-models-dat
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
@ -585,7 +599,7 @@ should only be used as part of the Guix cups-pk-helper service.")
|
||||
(inputs
|
||||
`(("cups-minimal" ,cups-minimal)
|
||||
("dbus" ,dbus)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libusb" ,libusb)
|
||||
("python" ,python)
|
||||
("python-dbus" ,python-dbus)
|
||||
@ -673,14 +687,14 @@ printer/driver specific, but spooler-independent PPD file.")
|
||||
(define-public foo2zjs
|
||||
(package
|
||||
(name "foo2zjs")
|
||||
(version "20200207")
|
||||
(version "20200426")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; XXX: This is an unversioned URL!
|
||||
(uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
|
||||
(sha256
|
||||
(base32
|
||||
"0pf1sm29gnrhhpyvq95jskvr874h5r4kls9w10gc24z23fjmr5zx"))))
|
||||
"0wwh29ddd59q18r1jpi3166lgnwr8zn9lry82vahc2g96l97isp7"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
|
@ -4,11 +4,12 @@
|
||||
;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
|
||||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -36,7 +37,6 @@
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages libidn)
|
||||
@ -45,20 +45,21 @@
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages web))
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public curl
|
||||
(package
|
||||
(name "curl")
|
||||
(version "7.65.3")
|
||||
(replacement curl-7.66.0)
|
||||
(version "7.69.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1sjz4fq7jg96mpmpqq82nd61njna6jp3c4m9yrbx2j1rh5a8ingj"))))
|
||||
"0kwxh76iq9fblk7iyv4f75bmcmasarp2bcm1mm07wyvzd7kdbiq3"))
|
||||
(patches (search-patches "curl-use-ssl-cert-env.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ;1.2 MiB of man3 pages
|
||||
@ -70,27 +71,42 @@
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
;; to enable the --manual option and make test 1026 pass
|
||||
("groff" ,groff)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python-wrapper)))
|
||||
(native-search-paths
|
||||
;; Note: This search path is respected by the `curl` command-line tool only.
|
||||
;; Ideally we would bake this into libcurl itself so other users can benefit,
|
||||
;; but it's not supported upstream due to thread safety concerns.
|
||||
;; These variables are introduced by curl-use-ssl-cert-env.patch.
|
||||
(list (search-path-specification
|
||||
(variable "SSL_CERT_DIR")
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs")))
|
||||
(search-path-specification
|
||||
(variable "SSL_CERT_FILE")
|
||||
(file-type 'regular)
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs/ca-certificates.crt")))
|
||||
;; Note: This search path is respected by the `curl` command-line
|
||||
;; tool only. Patching libcurl to read it too would bring no
|
||||
;; advantages and require maintaining a more complex patch.
|
||||
(search-path-specification
|
||||
(variable "CURL_CA_BUNDLE")
|
||||
(file-type 'regular)
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs/ca-certificates.crt")))))
|
||||
(arguments
|
||||
`(#:configure-flags (list "--with-gnutls"
|
||||
`(#:disallowed-references ("doc")
|
||||
#:configure-flags (list "--with-gnutls"
|
||||
(string-append "--with-gssapi="
|
||||
(assoc-ref %build-inputs "mit-krb5"))
|
||||
"--disable-static")
|
||||
;; Add a phase to patch '/bin/sh' occurances in tests/runtests.pl
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'do-not-record-configure-flags
|
||||
(lambda _
|
||||
;; Do not save the configure options to avoid unnecessary references.
|
||||
(substitute* "curl-config.in"
|
||||
(("@CONFIGURE_OPTIONS@")
|
||||
"\"not available\""))
|
||||
#t))
|
||||
(add-after
|
||||
'install 'move-man3-pages
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
@ -143,17 +159,14 @@ tunneling, and so on.")
|
||||
"See COPYING in the distribution."))
|
||||
(home-page "https://curl.haxx.se/")))
|
||||
|
||||
(define curl-7.66.0
|
||||
(package
|
||||
(inherit curl)
|
||||
(version "7.66.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hcqxpibhknhjy56wcxz5vd6m9ggx3ykwp3wp5wx05ih36481d6v"))))))
|
||||
;; This package exists mainly to bootstrap CMake. It must not depend on
|
||||
;; anything that uses cmake-build-system.
|
||||
(define-public curl-minimal
|
||||
(hidden-package
|
||||
(package/inherit
|
||||
curl
|
||||
(name "curl-minimal")
|
||||
(inputs (alist-delete "openldap" (package-inputs curl))))))
|
||||
|
||||
(define-public kurly
|
||||
(package
|
||||
|
@ -2,6 +2,7 @@
|
||||
;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -20,6 +21,7 @@
|
||||
|
||||
(define-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages dbm)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages tls)
|
||||
@ -41,8 +43,13 @@
|
||||
"ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-"
|
||||
version ".tar.gz")))
|
||||
(sha256 (base32
|
||||
"1m85zcpgfdhm43cavpdkhb1s2zq1b31472hq1w1gs3xh94anp1i6"))))
|
||||
"1m85zcpgfdhm43cavpdkhb1s2zq1b31472hq1w1gs3xh94anp1i6"))
|
||||
(patches (search-patches "cyrus-sasl-ac-try-run-fix.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
(inputs `(("gdbm" ,gdbm)
|
||||
("openssl" ,openssl)))
|
||||
(propagated-inputs
|
||||
@ -57,7 +64,13 @@
|
||||
;; 'plugin_common.c'. When building the shared libraries there, libtool
|
||||
;; ends up doing "ln -s plugin_common.lo plugin_common.o", which can
|
||||
;; fail with EEXIST when building things in parallel.
|
||||
#:parallel-build? #f))
|
||||
#:parallel-build? #f
|
||||
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(invoke "autoreconf" "-vif"))))))
|
||||
(synopsis "Simple Authentication Security Layer implementation")
|
||||
(description
|
||||
"SASL (Simple Authentication Security Layer) is an Internet
|
||||
|
@ -11,7 +11,7 @@
|
||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
@ -168,7 +168,7 @@
|
||||
("avahi" ,avahi)
|
||||
("cyrus-sasl" ,cyrus-sasl)
|
||||
("openssl" ,openssl)
|
||||
("util-linux" ,util-linux)))
|
||||
("util-linux" ,util-linux "lib")))
|
||||
;; http://www.4store.org has been down for a while now.
|
||||
(home-page "https://github.com/4store/4store")
|
||||
(synopsis "Clustered RDF storage and query engine")
|
||||
@ -761,6 +761,20 @@ Language.")
|
||||
"-DINSTALL_SHAREDIR=share")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
,@(if (string-prefix? "arm" (%current-system))
|
||||
;; XXX: Because of the GCC 5 input, we need to hide GCC 7 from
|
||||
;; CPLUS_INCLUDE_PATH so that its headers do not shadow GCC 5.
|
||||
'((add-after 'set-paths 'hide-default-gcc
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gcc (assoc-ref inputs "gcc")))
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-join
|
||||
(delete (string-append gcc "/include/c++")
|
||||
(string-split (getenv "CPLUS_INCLUDE_PATH")
|
||||
#\:))
|
||||
":"))
|
||||
#t))))
|
||||
'())
|
||||
(add-after 'unpack 'fix-pcre-detection
|
||||
(lambda _
|
||||
;; The bundled PCRE in MariaDB has a patch that was upstreamed
|
||||
@ -893,7 +907,7 @@ Language.")
|
||||
`(("bison" ,bison)
|
||||
;; XXX: On armhf, use GCC 5 to work around <https://bugs.gnu.org/37605>.
|
||||
,@(if (string-prefix? "armhf" (%current-system))
|
||||
`(("gcc", gcc-5))
|
||||
`(("gcc@5", gcc-5))
|
||||
'())
|
||||
("perl" ,perl)))
|
||||
(inputs
|
||||
@ -974,7 +988,7 @@ developed in C/C++ to MariaDB and MySQL databases.")
|
||||
(invoke "make" "-C" "contrib" "install"))))))
|
||||
(inputs
|
||||
`(("readline" ,readline)
|
||||
("libuuid" ,util-linux)
|
||||
("libuuid" ,util-linux "lib")
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://www.postgresql.org/")
|
||||
@ -1129,7 +1143,7 @@ including field and record folding.")))
|
||||
(define-public rocksdb
|
||||
(package
|
||||
(name "rocksdb")
|
||||
(version "6.7.3")
|
||||
(version "6.8.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@ -1138,7 +1152,7 @@ including field and record folding.")))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"19nacd7fb98i97ir07jjsk3l1vf7zzq04c4nqywizq8wakcx99s9"))
|
||||
"0i6qglyrcqwxnrvq67zm7ln79a4sj8mzgij9h0nz5zkxax8v1zg1"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@ -2197,24 +2211,24 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
|
||||
(define-public python-tortoise-orm
|
||||
(package
|
||||
(name "python-tortoise-orm")
|
||||
(version "0.16.3")
|
||||
(version "0.16.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "tortoise-orm" version))
|
||||
(sha256
|
||||
(base32
|
||||
"01hbvfyxs2qd1mjc96aipwsdxxhydw8ww686r4gsf87bl6f98dvz"))))
|
||||
"0wr7p4v0b16ypm9fcpwpl99kf491m6w3jkd13xcsgq13fy73fbqc"))))
|
||||
(build-system python-build-system)
|
||||
;; Disable tests for now. They pull in a lot of dependencies.
|
||||
(arguments `(#:tests? #f))
|
||||
(native-inputs
|
||||
`(("python-ciso8601" ,python-ciso8601)
|
||||
("python-asynctest" ,python-asynctest)
|
||||
`(("python-asynctest" ,python-asynctest)
|
||||
("python-nose2" ,python-nose2)))
|
||||
(propagated-inputs
|
||||
`(("python-aiosqlite" ,python-aiosqlite)
|
||||
("python-pypika" ,python-pypika)
|
||||
("python-ciso8601" ,python-ciso8601)
|
||||
("python-typing-extensions"
|
||||
,python-typing-extensions)))
|
||||
(home-page
|
||||
@ -2698,7 +2712,7 @@ PickleShare.")
|
||||
(define-public python-apsw
|
||||
(package
|
||||
(name "python-apsw")
|
||||
(version "3.28.0-r1")
|
||||
(version "3.31.1-r1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -2706,7 +2720,7 @@ PickleShare.")
|
||||
"/download/" version "/apsw-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x62534l5hcgwrc4k2gxpdzc1sxlhm6m4nwlay74rnmr77qh8wly"))))
|
||||
"1gap5lr6c7bp134nzvfwr693i6d0fqyaysg3ms2cayjldv616yfx"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
@ -2743,14 +2757,14 @@ translate the complete SQLite API into Python.")
|
||||
(define-public python-aiosqlite
|
||||
(package
|
||||
(name "python-aiosqlite")
|
||||
(version "0.11.0")
|
||||
(version "0.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "aiosqlite" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1f3zdldp9zgrw6qz5fsp3wa5zw73cjf139pj4vf24ryv895320jg"))))
|
||||
"1w8248yz85xyzvvh4jaxnc59fqil45aka6h82kn1rcih4rjxbnn1"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-aiounittest" ,python-aiounittest)))
|
||||
@ -3074,14 +3088,16 @@ transforms idiomatic python function calls to well-formed SQL queries.")
|
||||
(define-public python-pypika
|
||||
(package
|
||||
(name "python-pypika")
|
||||
(version "0.36.0")
|
||||
(version "0.37.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyPika" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qzn5vygirg52dlizm6ayzdc5llq8p2krrx0kymr236lrz89wqp8"))))
|
||||
(origin (method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/kayak/pypika.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"089z1c778q1fwhzsc88ws8j5gm2hgxknibabn4wpax8rz2bfs3ck"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-parameterized" ,python-parameterized)))
|
||||
@ -3456,7 +3472,8 @@ The drivers officially supported by @code{libdbi} are:
|
||||
("sqlite" ,sqlite)
|
||||
("odbc" ,unixodbc)
|
||||
("boost" ,boost)
|
||||
("mysql" ,mysql)))
|
||||
("mariadb:dev" ,mariadb "dev")
|
||||
("mariadb:lib" ,mariadb "lib")))
|
||||
(arguments
|
||||
`(#:tests? #f ; Tests may require running database management systems.
|
||||
#:phases
|
||||
@ -3464,7 +3481,8 @@ The drivers officially supported by @code{libdbi} are:
|
||||
(add-after 'unpack 'fix-lib-path
|
||||
(lambda _
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("set\\(SOCI_LIBDIR \"lib64\"\\)") "")))))))
|
||||
(("set\\(SOCI_LIBDIR \"lib64\"\\)") ""))
|
||||
#t)))))
|
||||
(synopsis "C++ Database Access Library")
|
||||
(description
|
||||
"SOCI is an abstraction layer for several database backends, including
|
||||
|
@ -80,6 +80,11 @@ clients.")
|
||||
(if tests?
|
||||
(invoke "make" "test")
|
||||
#t)))
|
||||
(add-after 'unpack 'patch-version-call
|
||||
(lambda _
|
||||
(substitute* "docs/conf.py"
|
||||
(("^release.*") (string-append "release = '" ,version "'\n")))
|
||||
#t))
|
||||
(add-after 'install 'manpage
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(invoke "make" "--directory=docs/" "man")
|
||||
|
@ -55,7 +55,7 @@
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(lambda* (#:key target outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc")))
|
||||
;; '--docdir' is not honored, so we need to patch.
|
||||
@ -74,6 +74,10 @@
|
||||
'("--build=aarch64-unknown-linux-gnu")
|
||||
'())
|
||||
|
||||
,@(if (%current-target-system) ; cross building
|
||||
'((string-append "--host=" target))
|
||||
'())
|
||||
|
||||
;; Remove 7 MiB of .a files.
|
||||
"--disable-static"
|
||||
|
||||
@ -134,7 +138,8 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
|
||||
(sha256
|
||||
(base32
|
||||
"1p4ibds6z3ccy65lkmd6lm7js0kwifvl53r0fd759fjxgr917rl6"))))
|
||||
(arguments `(#:configure-flags '("--enable-libgdbm-compat")))
|
||||
(arguments `(#:configure-flags '("--enable-libgdbm-compat"
|
||||
"--disable-static")))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org.ua/software/gdbm")
|
||||
(synopsis
|
||||
|
@ -27,6 +27,7 @@
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages wget)
|
||||
#:use-module (gnu packages perl))
|
||||
|
||||
(define-public debian-archive-keyring
|
||||
@ -190,3 +191,40 @@ scratch, without requiring the availability of @code{dpkg} or @code{apt}.
|
||||
It does this by downloading .deb files from a mirror site, and carefully
|
||||
unpacking them into a directory which can eventually be chrooted into.")
|
||||
(license license:gpl2)))
|
||||
|
||||
|
||||
(define-public apt-mirror
|
||||
(let ((commit "e664486a5d8947c2579e16dd793d762ea3de4202")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "apt-mirror")
|
||||
(version (git-version "0.5.4" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/apt-mirror/apt-mirror/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qj6b7gldwcqyfs2kp6amya3ja7s4vrljs08y4zadryfzxf35nqq"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
;; sysconfdir is not PREFIXed in the makefile but DESTDIR is
|
||||
;; honored correctly; we therefore use DESTDIR for our
|
||||
;; needs. A more correct fix would involve patching.
|
||||
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))
|
||||
"PREFIX=/")
|
||||
#:phases (modify-phases %standard-phases (delete 'configure))))
|
||||
(inputs
|
||||
`(("wget" ,wget)
|
||||
("perl" ,perl)))
|
||||
(home-page "http://apt-mirror.github.io/")
|
||||
(synopsis "Script for mirroring a Debian repository")
|
||||
(description
|
||||
"apt-mirror is a small tool that provides the ability to
|
||||
selectively mirror Debian and Ubuntu GNU/Linux distributions or any
|
||||
other apt sources typically provided by open source developers.")
|
||||
(license license:gpl2))))
|
||||
|
@ -57,6 +57,7 @@
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages statistics)
|
||||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages vim)
|
||||
#:use-module (gnu packages web)
|
||||
@ -69,7 +70,7 @@
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public diffoscope
|
||||
(let ((version "141"))
|
||||
(let ((version "143"))
|
||||
(package
|
||||
(name "diffoscope")
|
||||
(version version)
|
||||
@ -81,7 +82,7 @@
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pls2jryx394ysaz0g8h959lhrsdqak9bkxjd5r6sdckgiikplkj"))))
|
||||
"0j58dqdk8ln8y0bcnfy37ljs37nkl56lzxqns396300ysln0qiwm"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
@ -96,8 +97,8 @@
|
||||
(add-after 'unpack 'add-known-tools
|
||||
(lambda _
|
||||
(substitute* "diffoscope/external_tools.py"
|
||||
(("'debian': 'hdf5-tools'")
|
||||
"'debian': 'hdf5-tools', 'guix': 'hdf5'"))))
|
||||
(("'debian': 'openssl'")
|
||||
"'debian': 'openssl', 'guix': 'openssl'"))))
|
||||
;; This test is broken because our `file` package has a
|
||||
;; bug in berkeley-db file type detection.
|
||||
(add-after 'unpack 'remove-berkeley-test
|
||||
@ -161,6 +162,7 @@
|
||||
(native-inputs `(("python-pytest" ,python-pytest)
|
||||
("python-chardet" ,python-chardet)
|
||||
("python-binwalk" ,python-binwalk)
|
||||
("python-h5py" ,python-h5py)
|
||||
("python-pypdf2" ,python-pypdf2)
|
||||
("python-progressbar33" ,python-progressbar33)
|
||||
;; test suite skips tests when tool is missing
|
||||
@ -205,6 +207,7 @@
|
||||
("ocaml" ,ocaml)
|
||||
("odt2txt" ,odt2txt)
|
||||
("openssh" ,openssh)
|
||||
("openssl" ,openssl)
|
||||
("pgpdump" ,pgpdump)
|
||||
("poppler" ,poppler)
|
||||
("python-jsbeautifier" ,python-jsbeautifier)
|
||||
|
@ -48,6 +48,7 @@
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages file-systems)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
@ -103,16 +104,34 @@
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--disable-systemd"
|
||||
(string-append "--sysconfdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/etc"))
|
||||
(list
|
||||
"--disable-systemd"
|
||||
(string-append "--sysconfdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/etc")
|
||||
;; udevil expects these programs to be run with uid set as root.
|
||||
;; user has to manually add these programs to setuid-programs.
|
||||
;; mount and umount are default setuid-programs in guix system.
|
||||
"--with-mount-prog=/run/setuid-programs/mount"
|
||||
"--with-umount-prog=/run/setuid-programs/umount"
|
||||
"--with-losetup-prog=/run/setuid-programs/losetup"
|
||||
"--with-setfacl-prog=/run/setuid-programs/setfacl")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remove-root-reference
|
||||
(lambda _
|
||||
(substitute* "src/Makefile.in"
|
||||
(("-o root -g root") ""))
|
||||
#t))
|
||||
(add-after 'unpack 'patch-udevil-reference
|
||||
;; udevil expects itself to be run with uid set as root.
|
||||
;; devmon also expects udevil to be run with uid set as root.
|
||||
;; user has to manually add udevil to setuid-programs.
|
||||
(lambda _
|
||||
(substitute* "src/udevil.c"
|
||||
(("/usr/bin/udevil") "/run/setuid-programs/udevil"))
|
||||
(substitute* "src/devmon"
|
||||
(("`which udevil 2>/dev/null`") "/run/setuid-programs/udevil"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
@ -157,13 +176,15 @@ tmpfs/ramfs filesystems.")
|
||||
(inputs
|
||||
`(("lvm2" ,lvm2)
|
||||
("readline" ,readline)
|
||||
("util-linux" ,util-linux)))
|
||||
("util-linux" ,util-linux "lib")))
|
||||
(native-inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
|
||||
;; For the tests.
|
||||
("e2fsprogs" ,e2fsprogs)
|
||||
("perl" ,perl)
|
||||
("python" ,python-2)))
|
||||
("python" ,python-2)
|
||||
("util-linux" ,util-linux)))
|
||||
(home-page "https://www.gnu.org/software/parted/")
|
||||
(synopsis "Disk partition editor")
|
||||
(description
|
||||
@ -187,7 +208,7 @@ tables. It includes a library and command-line utility.")
|
||||
(inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
("guile" ,guile-1.8)
|
||||
("util-linux" ,util-linux)
|
||||
("util-linux" ,util-linux "lib")
|
||||
("parted" ,parted)))
|
||||
;; The build neglects to look for its own headers in its own tree. A next
|
||||
;; release should fix this, but may never come: GNU fdisk looks abandoned.
|
||||
@ -227,7 +248,7 @@ tables, and it understands a variety of different formats.")
|
||||
`(("gettext" ,gettext-minimal)
|
||||
("ncurses" ,ncurses)
|
||||
("popt" ,popt)
|
||||
("util-linux" ,util-linux))) ; libuuid
|
||||
("util-linux" ,util-linux "lib"))) ;libuuid
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:phases
|
||||
@ -417,7 +438,7 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
|
||||
;; as '/dev/disk/by-id'
|
||||
`(#:tests? #f))
|
||||
(inputs
|
||||
`(("util-linux" ,util-linux)
|
||||
`(("util-linux" ,util-linux "lib")
|
||||
("parted" ,parted)
|
||||
("glib" ,glib)
|
||||
("gtkmm" ,gtkmm)
|
||||
@ -645,7 +666,7 @@ automatically finding out which program to use for what file type.")
|
||||
(inputs
|
||||
`(("cryptsetup" ,cryptsetup)
|
||||
("nss" ,nss)
|
||||
("libblkid" ,util-linux)
|
||||
("libblkid" ,util-linux "lib")
|
||||
("lvm2" ,lvm2) ; for "-ldevmapper"
|
||||
("glib" ,glib)
|
||||
("gpgme" ,gpgme)))
|
||||
@ -698,7 +719,7 @@ passphrases.")
|
||||
("json-c" ,json-c)
|
||||
("keyutils" ,keyutils)
|
||||
("kmod" ,kmod)
|
||||
("util-linux" ,util-linux)))
|
||||
("util-linux" ,util-linux "lib")))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--disable-asciidoctor" ; use docbook-xsl instead
|
||||
@ -781,8 +802,17 @@ to create devices with respective mappings for the ATARAID sets discovered.")
|
||||
(base32
|
||||
"15c7g2gbkahmy8c6677pvbvblan5h8jxcqqmn6nlvqwqynq2mkjm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-configuration-directory
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "src/lib/blockdev.c"
|
||||
(("/etc/libblockdev/conf.d/" path) (string-append out path)))))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
`(("gobject-introspection" ,gobject-introspection)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python-wrapper)
|
||||
("util-linux" ,util-linux)))
|
||||
(inputs
|
||||
@ -792,7 +822,6 @@ to create devices with respective mappings for the ATARAID sets discovered.")
|
||||
("dmraid" ,dmraid)
|
||||
("eudev" ,eudev)
|
||||
("glib" ,glib)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("kmod" ,kmod)
|
||||
("libbytesize" ,libbytesize)
|
||||
("libyaml" ,libyaml)
|
||||
@ -867,7 +896,7 @@ LVM D-Bus API).")
|
||||
("libelf" ,libelf)
|
||||
("elfutils" ,elfutils)
|
||||
("json-glib" ,json-glib)
|
||||
("libblkid" ,util-linux)))
|
||||
("libblkid" ,util-linux "lib")))
|
||||
(home-page "https://rmlint.rtfd.org")
|
||||
(synopsis "Remove duplicates and other lint from the file system")
|
||||
(description "@command{rmlint} finds space waste and other broken things
|
||||
@ -917,39 +946,60 @@ since they are better handled by external tools.")
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://sourceforge.net/projects/xfe/files/xfe/"
|
||||
version
|
||||
"/xfe-" version ".tar.gz"))
|
||||
(string-append "mirror://sourceforge/xfe/xfe/" version "/"
|
||||
"xfe-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1fl51k5jm2vrfc2g66agbikzirmp0yb0lqhmsssixfb4mky3hpzs"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-bin-dirs
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((bash (assoc-ref inputs "bash"))
|
||||
(coreutils (assoc-ref inputs "coreutils"))
|
||||
(findutils (assoc-ref inputs "findutils"))
|
||||
(file-prog (assoc-ref inputs "file")))
|
||||
(with-directory-excursion "src"
|
||||
(substitute* '("FilePanel.cpp" "help.h" "SearchPanel.cpp"
|
||||
"startupnotification.cpp" "xfeutils.cpp"
|
||||
"../st/config.h")
|
||||
(("/bin/sh" file) (string-append bash file))
|
||||
(("/bin/ls" file) (string-append coreutils file))
|
||||
(("/usr(/bin/du)" _ file) (string-append coreutils file))
|
||||
(("/usr(/bin/sort)" _ file) (string-append coreutils file))
|
||||
(("/usr(/bin/cut)" _ file) (string-append coreutils file))
|
||||
(("/usr(/bin/xargs)" _ file) (string-append findutils file))
|
||||
(("/usr(/bin/file)" _ file) (string-append file-prog file))))
|
||||
#t)))
|
||||
(add-after 'unpack 'patch-share-dirs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(share (string-append out "/share"))
|
||||
(xfe (string-append share "/xfe")))
|
||||
(with-directory-excursion "src"
|
||||
(substitute* '("foxhacks.cpp" "help.h" "xfedefs.h"
|
||||
"XFileExplorer.cpp")
|
||||
(("/(usr|opt)(/local)?/share") share)
|
||||
(("~/.config/xfe") xfe)))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("fox" ,fox)
|
||||
`(("bash" ,bash)
|
||||
("coreutils" ,coreutils)
|
||||
("file" ,file)
|
||||
("findutils" ,findutils)
|
||||
("fox" ,fox)
|
||||
("freetype" ,freetype)
|
||||
("x11" ,libx11)
|
||||
("xcb" ,libxcb)
|
||||
("xcb-util" ,xcb-util)
|
||||
("xft" ,libxft)
|
||||
("xrandr" ,libxrandr)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-xferc-path
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(xferc (string-append out "/share/xfe/xferc")))
|
||||
(substitute* "src/XFileExplorer.cpp"
|
||||
(("/usr/share/xfe/xferc") xferc))
|
||||
#t))))
|
||||
#:make-flags
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(list (string-append "BASH_COMPLETION_DIR=" out
|
||||
"/share/bash-completion/completions")))))
|
||||
(synopsis "File Manager for X-Based Graphical Systems")
|
||||
(description"XFE (X File Explorer) is a file manager for X. It is based on
|
||||
(description "XFE (X File Explorer) is a file manager for X. It is based on
|
||||
the popular but discontinued, X Win Commander. It aims to be the file manager
|
||||
of choice for all light thinking Unix addicts!")
|
||||
(home-page "http://roland65.free.fr/xfe/")
|
||||
|
@ -6,6 +6,7 @@
|
||||
;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 L p R n d n <guix@lprndn.info>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -125,16 +126,15 @@ create smooth, animated user interfaces.")
|
||||
(define-public lightdm
|
||||
(package
|
||||
(name "lightdm")
|
||||
(version "1.24.0")
|
||||
(version "1.30.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://launchpad.net/lightdm/"
|
||||
(version-major+minor version) "/"
|
||||
version "/+download/lightdm-"
|
||||
version ".tar.xz"))
|
||||
(uri (string-append
|
||||
"https://github.com/CanonicalLtd/lightdm/releases/download/"
|
||||
version "/lightdm-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18j33bm54i8k7ncxcs69zqi4105s62n58jrydqn3ikrb71s9nl6d"))))
|
||||
"158zb2d0v1309a8v19hh32y4yj3v6yg4yg6m0l7v59d3a2b7f651"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:parallel-tests? #f ; fails when run in parallel
|
||||
@ -153,12 +153,6 @@ create smooth, animated user interfaces.")
|
||||
(substitute* "src/seat.c"
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t))
|
||||
(add-after 'unpack 'disable-broken-tests
|
||||
(lambda _
|
||||
(substitute* "tests/Makefile.in"
|
||||
(("test-sessions-gobject ") "")
|
||||
((" test-sessions-python ") " "))
|
||||
#t))
|
||||
(add-before 'check 'pre-check
|
||||
;; Run test-suite under a dbus session.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
@ -181,6 +175,7 @@ create smooth, animated user interfaces.")
|
||||
("pkg-config" ,pkg-config)
|
||||
("itstool" ,itstool)
|
||||
("intltool" ,intltool)
|
||||
("vala" ,vala) ;for Vala bindings
|
||||
;; For tests
|
||||
("dbus" ,dbus)
|
||||
("python" ,python-2)
|
||||
@ -210,12 +205,44 @@ display manager which supports different greeters.")
|
||||
(base32
|
||||
"1g7wc3d3vqfa7mrdhx1w9ywydgjbffla6rbrxq9k3sc62br97qms"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "--enable-at-spi-command="
|
||||
(assoc-ref %build-inputs "at-spi2-core")
|
||||
"/libexec/at-spi-bus-launcher"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'fix-.desktop-file
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* (string-append
|
||||
out "/share/xgreeters/lightdm-gtk-greeter.desktop")
|
||||
(("Exec=lightdm-gtk-greeter")
|
||||
(string-append "Exec=" out "/sbin/lightdm-gtk-greeter")))
|
||||
#t)))
|
||||
(add-after 'fix-.desktop-file 'wrap-program
|
||||
;; Mimic glib-or-gtk build system
|
||||
;; which doesn't wrap files in /sbin
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(let ((gtk (assoc-ref inputs "gtk+")))
|
||||
(wrap-program (string-append (assoc-ref outputs "out")
|
||||
"/sbin/lightdm-gtk-greeter")
|
||||
`("XDG_DATA_DIRS" ":" prefix
|
||||
,(cons "/run/current-system/profile/share"
|
||||
(map (lambda (pkg)
|
||||
(string-append (assoc-ref inputs pkg) "/share"))
|
||||
'("gtk+" "shared-mime-info" "glib"))))
|
||||
`("GTK_PATH" ":" prefix (,gtk))
|
||||
`("GIO_EXTRA_MODULES" ":" prefix (,gtk))))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("exo" ,exo)
|
||||
("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("lightdm" ,lightdm)
|
||||
("shared-mime-info" ,shared-mime-info)
|
||||
("at-spi2-core" ,at-spi2-core)
|
||||
("gtk+" ,gtk+)))
|
||||
(synopsis "GTK+ greeter for LightDM")
|
||||
(home-page "https://launchpad.net/lightdm-gtk-greeter")
|
||||
@ -244,7 +271,7 @@ GTK+, lets you select a desktop session and log in to it.")
|
||||
(build-system cmake-build-system)
|
||||
(inputs `(("linux-pam" ,linux-pam)
|
||||
("libpng" ,libpng)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("freeglut" ,freeglut)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libxrender" ,libxrender)
|
||||
|
@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com>
|
||||
|
@ -4,9 +4,9 @@
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2016 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2016 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
|
||||
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
@ -15,6 +15,8 @@
|
||||
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -878,22 +880,16 @@ System (HNS) peer-to-peer network.")
|
||||
(define-public libmicrodns
|
||||
(package
|
||||
(name "libmicrodns")
|
||||
(version "0.0.10")
|
||||
(version "0.1.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/videolabs/libmicrodns")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/videolabs/libmicrodns/"
|
||||
"releases/download/" version "/microdns-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xvl9k49ng35wbsqmnjnyqvkyjf8dcq2ywsq3jp3wh0rgmxhq2fh"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
"0p4va18zxgmzcdwhlbg2mmjwswlbgqy4ay5vaxrw7cxmhsflnv36"))))
|
||||
(build-system meson-build-system)
|
||||
(home-page "https://github.com/videolabs/libmicrodns")
|
||||
(synopsis "Minimal mDNS resolver library")
|
||||
(description "@code{libmicrodns} provides a minimal implementation of a
|
||||
@ -1006,3 +1002,34 @@ known public suffixes.")
|
||||
consists of a UDP-only authoritative DNS server for hosting domains, and a UDP
|
||||
and TCP-capable recursive DNS server for finding domains on the internet.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public openresolv
|
||||
(package
|
||||
(name "openresolv")
|
||||
(version "3.10.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://roy.marples.name/downloads/openresolv/"
|
||||
"openresolv-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"01ms6c087la4hk0f0w6n2vpsb7dg4kklah2rqyhz88p0vr9bqy20"))
|
||||
(patches
|
||||
(search-patches "openresolv-restartcmd-guix.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; No test suite
|
||||
#:configure-flags
|
||||
(list (string-append "--sysconfdir=/etc"))
|
||||
#:make-flags
|
||||
(list (string-append "SYSCONFDIR=/" (assoc-ref %outputs "out") "/etc"))))
|
||||
(home-page "https://roy.marples.name/projects/openresolv/")
|
||||
(synopsis "Resolvconf POSIX compliant implementation, a middleman for resolv.conf")
|
||||
(description "openresolv is an implementation of @command{resolvconf}, the
|
||||
middleman between the network configuration services and
|
||||
@file{/etc/resolv.conf}. @command{resolvconf} itself is just a script that
|
||||
stores, removes and lists a full @file{resolv.conf} generated for the
|
||||
interface. It then calls all the helper scripts it knows about so it can
|
||||
configure the real @file{/etc/resolv.conf} and optionally any local
|
||||
nameservers other than libc.")
|
||||
(license license:bsd-2)))
|
||||
|
@ -183,7 +183,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
|
||||
(define-public dblatex
|
||||
(package
|
||||
(name "dblatex")
|
||||
(version "0.3.10")
|
||||
(version "0.3.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/dblatex/dblatex/"
|
||||
@ -191,7 +191,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yicd861rqz78i2khl35j7nvc0ccv4jx4hzqrbhll17082vrdmkg"))))
|
||||
"0rp1bc2lgisigscq1i7zxfd2qdaxxxld6khbcxss4pq7fpi9fzkv"))))
|
||||
(build-system python-build-system)
|
||||
;; TODO: Add xfig/transfig for fig2dev utility
|
||||
(inputs
|
||||
|
@ -7,6 +7,7 @@
|
||||
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -33,6 +34,7 @@
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages bison)
|
||||
@ -148,7 +150,7 @@ markup) can be customized and extended by the user.")
|
||||
(define-public doxygen
|
||||
(package
|
||||
(name "doxygen")
|
||||
(version "1.8.15")
|
||||
(version "1.8.17")
|
||||
(home-page "http://www.doxygen.nl/")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
@ -159,8 +161,9 @@ markup) can be customized and extended by the user.")
|
||||
".src.tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0p94b4yb6bk2dxzs5kyl82xxgq2qakgbx5yy3ssbbadncb20x75x"))
|
||||
(patches (search-patches "doxygen-test.patch"))))
|
||||
"16dmv0gm1x8rvbm82fmjvi213q8fxqxinm75pcf595flya59ific"))
|
||||
(patches (search-patches "doxygen-test.patch"
|
||||
"doxygen-1.8.17-runtests.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
@ -170,7 +173,15 @@ markup) can be customized and extended by the user.")
|
||||
(inputs
|
||||
`(("bash" ,bash-minimal)))
|
||||
(arguments
|
||||
`(#:test-target "tests"
|
||||
;; Force cmake to use iconv header from cross-libc instead of the one
|
||||
;; from native libc.
|
||||
`(,@(if (%current-target-system)
|
||||
'(#:configure-flags
|
||||
(list (string-append "-DICONV_INCLUDE_DIR="
|
||||
(assoc-ref %build-inputs "cross-libc")
|
||||
"/include")))
|
||||
'())
|
||||
#:test-target "tests"
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-sh
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
@ -5,6 +5,7 @@
|
||||
;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot>
|
||||
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -291,13 +292,13 @@ designed to be used in a generic text renderer.")
|
||||
("fribidi" ,fribidi)
|
||||
("glib" ,glib)
|
||||
("gtk+-2" ,gtk+-2)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("liblinebreak" ,liblinebreak)
|
||||
("libxft" ,libxft)
|
||||
("sqlite" ,sqlite)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("gcc" ,gcc-5)
|
||||
`(("gcc@5" ,gcc-5)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(arguments
|
||||
`(#:tests? #f ; No tests exist.
|
||||
@ -309,6 +310,18 @@ designed to be used in a generic text renderer.")
|
||||
(assoc-ref %outputs "out") "/lib"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Hide the default GCC from CPLUS_INCLUDE_PATH to prevent a header
|
||||
;; conflict with the GCC provided in native-inputs.
|
||||
(let ((gcc (assoc-ref inputs "gcc")))
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-join
|
||||
(delete (string-append gcc "/include/c++")
|
||||
(string-split (getenv "CPLUS_INCLUDE_PATH")
|
||||
#\:))
|
||||
":"))
|
||||
#t)))
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'fix-install-locations
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
|
@ -28,14 +28,14 @@
|
||||
(define-public ed
|
||||
(package
|
||||
(name "ed")
|
||||
(version "1.15")
|
||||
(version "1.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ed/ed-"
|
||||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x6ivy5k0d7dy5z9g8q8nipr89m4qbk2ink2898qq43smp08ji5d"))))
|
||||
"0b4b1lwizvng9bvpcjnmpj2i80xz9xw2w8nfff27b2h4mca7mh6g"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("lzip" ,lzip)))
|
||||
(arguments
|
||||
|
@ -606,14 +606,14 @@ Portuguese, Spanish and Italian.")
|
||||
(define-public fet
|
||||
(package
|
||||
(name "fet")
|
||||
(version "5.44.0")
|
||||
(version "5.44.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.lalescu.ro/liviu/fet/download/"
|
||||
"fet-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "13q3b0g1zz885g15gir8fbalvix8sy42v1p429h0751490wq5c3h"))))
|
||||
(base32 "1bji4910v6adhngdh5ajz5bxam9z3yqnh8d1h1xajy6npm6qq3nx"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -632,14 +632,14 @@ Portuguese, Spanish and Italian.")
|
||||
`(("qtbase" ,qtbase)))
|
||||
(home-page "https://www.lalescu.ro/liviu/fet/")
|
||||
(synopsis "Timetabling software")
|
||||
(description "FET is a program for automatically scheduling the
|
||||
timetable of a school, high-school or university. It uses a fast and
|
||||
efficient timetabling algorithm.
|
||||
(description
|
||||
"FET is a program for automatically scheduling the timetable of a school,
|
||||
high-school or university. It uses a fast and efficient timetabling
|
||||
algorithm.
|
||||
|
||||
Usually, FET is able to solve a complicated timetable in maximum 5-20
|
||||
minutes. For simpler timetables, it may take a shorter time, under
|
||||
5 minutes (in some cases, a matter of seconds). For extremely
|
||||
difficult timetables, it may take a longer time, a matter of hours.")
|
||||
Usually, FET is able to solve a complicated timetable in maximum 5-20 minutes.
|
||||
For extremely difficult timetables, it may take a longer time, a matter of
|
||||
hours.")
|
||||
(license license:agpl3+)))
|
||||
|
||||
(define-public klavaro
|
||||
|
@ -112,6 +112,7 @@ environment presented by Intel's EFI.")
|
||||
("util-linux" ,util-linux))) ; getopt
|
||||
(inputs
|
||||
`(("gnu-efi" ,gnu-efi)
|
||||
("libuuid" ,util-linux "lib")
|
||||
("openssl" ,openssl)))
|
||||
(synopsis "EFI signing tools")
|
||||
(description "This package provides tools for signing EFI binaries.")
|
||||
|
@ -4,7 +4,7 @@
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017 nee <nee.git@cock.li>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2018 Nikita <nikita@n0.is>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -1,10 +1,10 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
|
||||
@ -12,7 +12,7 @@
|
||||
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
|
||||
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
@ -68,6 +68,8 @@
|
||||
;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
|
||||
;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
|
||||
;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -1001,13 +1003,13 @@ in certain cases. It also enables recursion for anonymous functions.")
|
||||
(define-public emacs-xr
|
||||
(package
|
||||
(name "emacs-xr")
|
||||
(version "1.18")
|
||||
(version "1.19")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
|
||||
(sha256
|
||||
(base32 "1nq9pj47sxgpkw97c2xrkhgcwh3zsfd2a22qiqbl4i9zf2l9yy91"))))
|
||||
(base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://elpa.gnu.org/packages/xr.html")
|
||||
(synopsis "Convert string regexp to rx notation")
|
||||
@ -1105,14 +1107,14 @@ optional minor mode which can apply this command automatically on save.")
|
||||
(define-public emacs-relint
|
||||
(package
|
||||
(name "emacs-relint")
|
||||
(version "1.15")
|
||||
(version "1.17")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://elpa.gnu.org/packages/relint-" version ".tar"))
|
||||
(sha256
|
||||
(base32 "0sxmdsacj8my942k8j76m2y68nzab7190acv7cwgflc5n4f07yxa"))))
|
||||
(base32 "1nv13dqdhf72c1jgk1ml4k6jqb8wsyphcx2vhsyhig5198lg4kd7"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs `(("emacs-xr" ,emacs-xr)))
|
||||
(home-page "https://github.com/mattiase/relint")
|
||||
@ -1321,33 +1323,32 @@ incrementally confined in Isearch manner.")
|
||||
(define-public emacs-emms
|
||||
(package
|
||||
(name "emacs-emms")
|
||||
(version "5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/emms/emms-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00hnv7jjgb2simgrf7gf2y1cyg2syk7kj1hkbac146hlgxk8ngj1"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(substitute* "Makefile"
|
||||
(("/usr/bin/install-info")
|
||||
;; No need to use 'install-info' since it would create a
|
||||
;; useless 'dir' file.
|
||||
"true")
|
||||
(("^INFODIR=.*")
|
||||
;; Install Info files to $out/share/info, not $out/info.
|
||||
"INFODIR := $(PREFIX)/share/info\n")
|
||||
(("/site-lisp/emms")
|
||||
;; Install directly in share/emacs/site-lisp, not in a
|
||||
;; sub-directory.
|
||||
"/site-lisp")
|
||||
(("^all: (.*)\n" _ rest)
|
||||
;; Build 'emms-print-metadata'.
|
||||
(string-append "all: " rest " emms-print-metadata\n")))
|
||||
#t))))
|
||||
(version "5.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(substitute* "Makefile"
|
||||
(("/usr/bin/install-info")
|
||||
;; No need to use 'install-info' since it would create a
|
||||
;; useless 'dir' file.
|
||||
"true")
|
||||
(("^INFODIR=.*")
|
||||
;; Install Info files to $out/share/info, not $out/info.
|
||||
"INFODIR := $(PREFIX)/share/info\n")
|
||||
(("/site-lisp/emms")
|
||||
;; Install directly in share/emacs/site-lisp, not in a
|
||||
;; sub-directory.
|
||||
"/site-lisp")
|
||||
(("^all: (.*)\n" _ rest)
|
||||
;; Build 'emms-print-metadata'.
|
||||
(string-append "all: " rest " emms-print-metadata\n")))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
@ -1516,6 +1517,29 @@ This package turns this into an O(1) operation. It does so by assigning a
|
||||
letter to each link using avy.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-auto-sudoedit
|
||||
(package
|
||||
(name "emacs-auto-sudoedit")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ncaq/auto-sudoedit.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
|
||||
(propagated-inputs
|
||||
`(("emacs-f" ,emacs-f)))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/ncaq/auto-sudoedit")
|
||||
(synopsis "Automatically re-open read-only files with sudo")
|
||||
(description
|
||||
"This package automatically reopens a file or directory with
|
||||
@command{sudo} if it cannot write to it.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public emacs-bbdb
|
||||
(package
|
||||
(name "emacs-bbdb")
|
||||
@ -2179,7 +2203,7 @@ window).")
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("emacs" ,emacs-minimal)
|
||||
("texinfo" ,texinfo)))
|
||||
("texinfo" ,texinfo-5))) ;fails to build with Texinfo 6.7
|
||||
(home-page "https://github.com/purcell/mmm-mode")
|
||||
(synopsis "Allow multiple major modes in an Emacs buffer")
|
||||
(description
|
||||
@ -2250,6 +2274,30 @@ programs @command{djvused}, @command{djview}, @command{ddjvu}, and
|
||||
@command{djvm} installed.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-pabbrev
|
||||
(package
|
||||
(name "emacs-pabbrev")
|
||||
(version "4.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/"
|
||||
"pabbrev-" version ".el"))
|
||||
(sha256
|
||||
(base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://elpa.gnu.org/packages/pabbrev.html")
|
||||
(synopsis "Predictive abbreviation expansion")
|
||||
(description
|
||||
"The code provides a abbreviation expansion for Emacs. It is
|
||||
fairly similar to Dabbrev expansion, which works based on the contents
|
||||
of the current buffer (or other buffers).
|
||||
|
||||
Predictive abbreviation expansion works based on the previously
|
||||
written text. Unlike dynamic abbreviation, the text is analysed
|
||||
during idle time, while Emacs is doing nothing else.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-pdf-tools
|
||||
(package
|
||||
(name "emacs-pdf-tools")
|
||||
@ -2380,13 +2428,21 @@ type, for example: packages, buffers, files, etc.")
|
||||
"releases/emacs-guix-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yz64c0z4ygi2k4af18k4r1ncgys18jb8icywkp2g5pgmpn5l7ps"))))
|
||||
"0yz64c0z4ygi2k4af18k4r1ncgys18jb8icywkp2g5pgmpn5l7ps"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Add support for Guile 3.0. Remove for versions > 0.5.2.
|
||||
(substitute* "configure"
|
||||
(("\"2\\.2 2\\.0\"")
|
||||
"\"3.0 2.2 2.0\""))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("emacs" ,emacs-minimal)))
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
`(("guile" ,guile-3.0)
|
||||
("guix" ,guix)))
|
||||
(propagated-inputs
|
||||
`(("geiser" ,emacs-geiser)
|
||||
@ -2455,7 +2511,7 @@ work with Emacs 24 and 25.")
|
||||
|
||||
(define-public emacs-extempore-mode
|
||||
;; Use the latest commit at time of packaging. There are no releases or tags.
|
||||
(let ((commit "848ad0084f27b92d1cf98dabffbad29f959a642d")
|
||||
(let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-extempore-mode")
|
||||
@ -2468,7 +2524,7 @@ work with Emacs 24 and 25.")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "00wr025php7nl33x541s9rjm99hj0jbdcmnw9ljx5hqpm04aqm7c"))))
|
||||
(base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/extemporelang/extempore-emacs-mode")
|
||||
(synopsis "Emacs major mode for Extempore source files")
|
||||
@ -2478,6 +2534,37 @@ create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
|
||||
running Extempore process, and more.")
|
||||
(license license:bsd-2))))
|
||||
|
||||
(define-public emacs-kakoune
|
||||
;; Package has no release. Version is extracted from "Version:" keyword in
|
||||
;; main file.
|
||||
(let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "emacs-kakoune")
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jmorag/kakoune.el.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-expand-region" ,emacs-expand-region)
|
||||
("emacs-multiple-cursors" ,emacs-multiple-cursors)
|
||||
("emacs-ryo-modal" ,emacs-ryo-modal)))
|
||||
(home-page "https://github.com/jmorag/kakoune.el")
|
||||
(synopsis "Emacs simple simulation, but not emulation, of Kakoune")
|
||||
(description "This package provides many, but not all of the editing
|
||||
primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
|
||||
shallow emulation, which seeks to do as little work as possible, leveraging
|
||||
Emacs native editing commmands and the work of other packages wherever
|
||||
possible.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public emacs-keyfreq
|
||||
(package
|
||||
(name "emacs-keyfreq")
|
||||
@ -2628,10 +2715,34 @@ Stack Overflow, Super User, and other StackExchange sites.")
|
||||
(home-page "https://github.com/dryman/toml-mode.el")
|
||||
(synopsis "Emacs major mode for editing TOML files")
|
||||
(description
|
||||
"This package provides a major mode for editing files in @acronym{TOML,
|
||||
Tom's Obvious, Minimal Language} data format.")
|
||||
;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
|
||||
;; parser does not currently support @comma{}, making it impossible
|
||||
;; to use commas in the @acronym arguments.
|
||||
"This package provides a major mode for editing files in @dfn{TOML}
|
||||
(Tom's Obvious, Minimal Language) data format.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-twittering-mode
|
||||
(package
|
||||
(name "emacs-twittering-mode")
|
||||
(version "3.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/twmode"
|
||||
"/twittering-mode-" version
|
||||
"/twittering-mode-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://twmode.sourceforge.net")
|
||||
(synopsis "Emacs major mode for Twitter")
|
||||
(description
|
||||
"Twittering mode is an Emacs major mode for Twitter.
|
||||
You can check timelines, tweet, mark posts as favorites and so on with
|
||||
Emacs.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-f
|
||||
(package
|
||||
(name "emacs-f")
|
||||
@ -4295,6 +4406,28 @@ completion backends according to mode, and integrates with
|
||||
@code{use-package}.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-icomplete-vertical
|
||||
(package
|
||||
(name "emacs-icomplete-vertical")
|
||||
(version "0.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/oantolin/icomplete-vertical.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/oantolin/icomplete-vertical")
|
||||
(synopsis "Display icomplete candidates vertically")
|
||||
(description
|
||||
"This package defines a global minor mode to display Icomplete
|
||||
completion candidates vertically.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-handle
|
||||
(let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
|
||||
(revision "2"))
|
||||
@ -7291,6 +7424,30 @@ of its name.")
|
||||
names, e.g. #0000ff is displayed in white with a blue background.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-ryo-modal
|
||||
;; Package has no release. Version is extracted from "Version:" keyword in
|
||||
;; main file.
|
||||
(let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "emacs-ryo-modal")
|
||||
(version (git-version "0.4" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Kungsgeten/ryo-modal.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://github.com/Kungsgeten/ryo-modal")
|
||||
(synopsis "Emacs minor mode for defining modal editing environments")
|
||||
(description "RYO modal provides a convenient way of defining modal
|
||||
keybindings in Emacs, and does not come with any predefined bindings.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public emacs-visual-fill-column
|
||||
(package
|
||||
(name "emacs-visual-fill-column")
|
||||
@ -7436,24 +7593,47 @@ special variables. An interface to GitLab’s CI file linter is also provided
|
||||
via @code{gitlab-ci-lint}.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-web-mode
|
||||
(define-public emacs-gitlab-snip-helm
|
||||
(package
|
||||
(name "emacs-web-mode")
|
||||
(version "16")
|
||||
(name "emacs-gitlab-snip-helm")
|
||||
(version "0.0.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fxbois/web-mode.git")
|
||||
(commit (string-append "v" version))))
|
||||
(url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"17dw6a8d0p304f2sa4f9zwd8r48w2wbkc3fvbmxwlg4w12h7cwf0"))))
|
||||
"1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)
|
||||
("emacs-helm" ,emacs-helm)))
|
||||
(home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
|
||||
(synopsis "GitLab snippet API interaction for Emacs")
|
||||
(description "This package provides GitLab snippet API interaction for
|
||||
Emacs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-web-mode
|
||||
(package
|
||||
(name "emacs-web-mode")
|
||||
(version "17")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fxbois/web-mode.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
|
||||
(build-system emacs-build-system)
|
||||
(synopsis "Major mode for editing web templates")
|
||||
(description "Web-mode is an Emacs major mode for editing web templates
|
||||
(description "Web mode is an Emacs major mode for editing web templates
|
||||
aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
|
||||
client/server side engines). Web-mode is compatible with many template
|
||||
client/server side engines). Web mode is compatible with many template
|
||||
engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
|
||||
Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
|
||||
Dust.js, React/JSX, Angularjs, ejs, etc.")
|
||||
@ -8092,8 +8272,8 @@ extensions.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-evil-collection
|
||||
(let ((commit "a478a95a8a3665e40bdae3bab2a0519db6c1f29c")
|
||||
(revision "13"))
|
||||
(let ((commit "d062cc206d671fb5aefb1e0e679a9cb1d6c73e33")
|
||||
(revision "14"))
|
||||
(package
|
||||
(name "emacs-evil-collection")
|
||||
(version (git-version "0.0.3" revision commit))
|
||||
@ -8105,7 +8285,7 @@ extensions.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"15ii5lw6hs4yyl22yyzfwzagdma2sman4rm5gq4m9773g4ava515"))))
|
||||
"1zizfqmfrxx3shgggwa74rg2qqbrs8704wf94ajx0k11dbm1dbrp"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-evil" ,emacs-evil)
|
||||
@ -10185,15 +10365,12 @@ It should enable you to implement low-level X11 applications.")
|
||||
;; Add a .desktop file to xsessions
|
||||
(mkdir-p xsessions)
|
||||
(mkdir-p bin)
|
||||
(with-output-to-file
|
||||
(string-append xsessions "/exwm.desktop")
|
||||
(lambda _
|
||||
(format #t "[Desktop Entry]~@
|
||||
Name=~a~@
|
||||
Comment=~a~@
|
||||
Exec=~a~@
|
||||
TryExec=~:*~a~@
|
||||
Type=Application~%" ,name ,synopsis exwm-executable)))
|
||||
(make-desktop-entry-file
|
||||
(string-append xsessions "/exwm.desktop")
|
||||
#:name ,name
|
||||
#:comment ,synopsis
|
||||
#:exec exwm-executable
|
||||
#:try-exec exwm-executable)
|
||||
;; Add a shell wrapper to bin
|
||||
(with-output-to-file exwm-executable
|
||||
(lambda _
|
||||
@ -10520,6 +10697,29 @@ as bold, underscore or italic.")
|
||||
Emacs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-eglot
|
||||
(package
|
||||
(name "emacs-eglot")
|
||||
(version "1.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/"
|
||||
"eglot-" version ".tar"))
|
||||
(sha256
|
||||
(base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-jsonrpc" ,emacs-jsonrpc)))
|
||||
(home-page "https://github.com/joaotavora/eglot")
|
||||
(synopsis "Client for Language Server Protocol (LSP) servers")
|
||||
(description
|
||||
"Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
|
||||
LSP} client that stays out of the way. It guesses the LSP program to start
|
||||
for the current file, using the major mode as a hint. It prompts you to enter
|
||||
one if it fails.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
;; Tests for ert-runner have a circular dependency with ecukes, and therefore
|
||||
;; cannot be run
|
||||
(define-public emacs-ert-runner
|
||||
@ -10704,10 +10904,31 @@ a @url{http://json.org/, JSON} file.")
|
||||
highlighting.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-jsonrpc
|
||||
(package
|
||||
(name "emacs-jsonrpc")
|
||||
(version "1.0.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/"
|
||||
"jsonrpc-" version ".el"))
|
||||
(sha256
|
||||
(base32 "04cy1mqd6y8k5lcpg076szjk9av9345mmsnzzh6vgbcw3dcgbr23"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://elpa.gnu.org/packages/jsonrpc.html")
|
||||
(synopsis "JSON-RPC library")
|
||||
(description
|
||||
"This library implements the JSONRPC 2.0 specification as
|
||||
described in @url{http://www.jsonrpc.org/}. As the name suggests,
|
||||
JSONRPC is a generic Remote Procedure Call protocol designed around
|
||||
JSON objects.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-restclient
|
||||
(let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
|
||||
(version "0")
|
||||
(revision "2")) ;Guix package revision,
|
||||
(revision "2")) ;Guix package revision,
|
||||
;upstream doesn't have official releases
|
||||
(package
|
||||
(name "emacs-restclient")
|
||||
@ -13176,7 +13397,7 @@ files to be expanded upon opening them.")
|
||||
(define-public emacs-parsebib
|
||||
(package
|
||||
(name "emacs-parsebib")
|
||||
(version "2.3.1")
|
||||
(version "2.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -13185,45 +13406,43 @@ files to be expanded upon opening them.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"))))
|
||||
(base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/joostkremers/parsebib")
|
||||
(synopsis "Library for parsing bib files")
|
||||
(synopsis "Library for parsing @file{.bib} files")
|
||||
(description
|
||||
"This package provides an Emacs library for parsing bib files.")
|
||||
"This package provides an Emacs library for parsing @file{.bib} files.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-ebib
|
||||
(let ((commit "99bd909f47f71e024ce324981109b73a50e82fba"))
|
||||
(package
|
||||
(name "emacs-ebib")
|
||||
(version "2.21")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/joostkremers/ebib.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"131vgl4d1j9s4055x88409w19q52x2m0x08b961hylp7yb5ljzgh"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-parsebib" ,emacs-parsebib)))
|
||||
(home-page "https://joostkremers.github.io/ebib/")
|
||||
(synopsis "BibTeX database manager for Emacs")
|
||||
(description
|
||||
"Ebib is a BibTeX database manager that runs in GNU Emacs.
|
||||
With Ebib you can create, sort and manage your .bib database files,
|
||||
all within Emacs. It supports searching, multi-line field values and
|
||||
@@String and @@Preamble definitions. Ebib integrates with (La)TeX
|
||||
mode, Org mode and other Emacs editing modes.")
|
||||
;; The Ebib source files are released under a BSD license with
|
||||
;; the exception of org-ebib.el, which is released under the GNU
|
||||
;; GPL.
|
||||
(license (list license:bsd-3
|
||||
license:gpl3+)))))
|
||||
(package
|
||||
(name "emacs-ebib")
|
||||
(version "2.22.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/joostkremers/ebib.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-parsebib" ,emacs-parsebib)))
|
||||
(home-page "https://joostkremers.github.io/ebib/")
|
||||
(synopsis "BibTeX database manager for Emacs")
|
||||
(description
|
||||
"Ebib is a BibTeX database manager that runs in GNU Emacs.
|
||||
With Ebib you can create, sort and manage your @file{.bib} database files, all
|
||||
within Emacs. It supports searching, multi-line field values and
|
||||
@samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
|
||||
with (La)TeX mode, Org mode and other Emacs editing modes.")
|
||||
;; The Ebib source files are released under a BSD license with
|
||||
;; the exception of org-ebib.el, which is released under the GNU
|
||||
;; GPL.
|
||||
(license (list license:bsd-3
|
||||
license:gpl3+))))
|
||||
|
||||
(define-public emacs-biblio
|
||||
(package
|
||||
@ -14370,7 +14589,7 @@ powerful Org contents.")
|
||||
(define-public emacs-org-re-reveal
|
||||
(package
|
||||
(name "emacs-org-re-reveal")
|
||||
(version "2.5.1")
|
||||
(version "2.12.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@ -14379,7 +14598,7 @@ powerful Org contents.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zbz6hbddxbb264ibmhc04cmnpk17kb50jpn5l8878q4hxw5wwy2"))))
|
||||
"19nz77f2r49hqavz50ri222prhrd5890vhvc7jfazbascbcdjbqv"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-htmlize" ,emacs-htmlize)
|
||||
@ -18164,7 +18383,7 @@ stored playlists.")
|
||||
(define-public emacs-vterm
|
||||
(let ((version "0")
|
||||
(revision "1")
|
||||
(commit "7d7381fa8104b55b70148cf147523d9ab7f01fcd"))
|
||||
(commit "e63bd65eece7c5de3a534b7e2fdbe58256ec2da0"))
|
||||
(package
|
||||
(name "emacs-vterm")
|
||||
(version (git-version version revision commit))
|
||||
@ -18176,7 +18395,7 @@ stored playlists.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"04a2jlhmr20ipgzpnba3yryw3ly7qdxjgaw10dwn9wxy1yqmapz1"))))
|
||||
"0iq857w54qmazxh23fipz85fb9i6dav3f63g0ghpmi6mybfp6i5v"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build emacs-build-system)
|
||||
@ -18187,14 +18406,11 @@ stored playlists.")
|
||||
(guix build cmake-build-system))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'add-source-to-load-path 'remove-vterm-module-make
|
||||
(add-before 'add-source-to-load-path 'substitute-vterm-module-path
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Remove the Emacs Lisp file.
|
||||
(delete-file "vterm-module-make.el")
|
||||
;; Remove references to the removed file.
|
||||
(make-file-writable "vterm.el")
|
||||
(chmod "vterm.el" #o644)
|
||||
(emacs-substitute-sexps "vterm.el"
|
||||
("(or (require 'vterm-module nil t)"
|
||||
("(require 'vterm-module nil t)"
|
||||
`(module-load
|
||||
,(string-append (assoc-ref outputs "out")
|
||||
"/lib/vterm-module.so"))))
|
||||
@ -18618,7 +18834,7 @@ the standard @code{Dockerfile} file format.")
|
||||
(define-public emacs-lsp-mode
|
||||
(package
|
||||
(name "emacs-lsp-mode")
|
||||
(version "6.2.1")
|
||||
(version "6.3.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@ -18627,7 +18843,7 @@ the standard @code{Dockerfile} file format.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0f9d0zhblcjzrpggqclww2g7fyjky5rzpp7zj424005ahv0zd3xf"))))
|
||||
"125rpmhlyd6wmq7p71j54x3rzmk07vn1hdcvvdjjip5481raxcwx"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)
|
||||
@ -19446,9 +19662,9 @@ be used in @code{dired-mode}.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-exwm-edit
|
||||
(let ((commit "961c0f3ea45766b888c73d7353da13d329538034")
|
||||
(let ((commit "bc25ba094b383be3c650ca0b7e1534efe2bb154f")
|
||||
(version "0.0.1")
|
||||
(revision "1"))
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-exwm-edit")
|
||||
(version (git-version version revision commit))
|
||||
@ -19461,7 +19677,7 @@ be used in @code{dired-mode}.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw"))))
|
||||
"1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-exwm" ,emacs-exwm)))
|
||||
@ -20005,6 +20221,43 @@ well as an option for visually flashing evaluated s-expressions.")
|
||||
SSH servers.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-tramp
|
||||
(package
|
||||
(name "emacs-tramp")
|
||||
(version "2.4.3.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/"
|
||||
"tramp-" version ".tar"))
|
||||
(sha256
|
||||
(base32 "01il42xb6s38qnb7bhn9d7gscc5p5y4da5a4dp1i1cyi823sfp8f"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:emacs ,emacs ;need D-Bus
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; All but one "/bin/" directory refer to remote
|
||||
;; environments, which may not be Guix. Do not patch them
|
||||
;; blindly. However, local encoding shell has to be patched.
|
||||
(replace 'patch-el-files
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((sh (assoc-ref inputs "bash"))
|
||||
(file "tramp.el"))
|
||||
(emacs-substitute-variables file
|
||||
("tramp-encoding-shell" (string-append sh "/bin/sh"))))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("bash" ,bash)))
|
||||
(home-page "https://savannah.gnu.org/projects/tramp")
|
||||
(synopsis "Remote file editing package for Emacs")
|
||||
(description
|
||||
"Tramp stands for ``Transparent Remote (file) Access, Multiple
|
||||
Protocol''. This package provides remote file editing, using
|
||||
a combination of @command{rsh} and @command{rcp} or other work-alike
|
||||
programs, such as @command{ssh} and @command{scp}.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-tramp-auto-auth
|
||||
(let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
|
||||
(package
|
||||
@ -21039,14 +21292,14 @@ Emacs that integrate with major modes like Org-mode.")
|
||||
(define-public emacs-modus-operandi-theme
|
||||
(package
|
||||
(name "emacs-modus-operandi-theme")
|
||||
(version "0.7.0")
|
||||
(version "0.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/"
|
||||
"modus-operandi-theme-" version ".el"))
|
||||
(sha256
|
||||
(base32 "17zvcqplbl3rk39k61v43ganzv06j49rlyickanwll5m1a3iibw2"))))
|
||||
(base32 "0i8s6blkhx53m1jk1bblqs7fwlbn57xkxxhsp9famcj5m0xyfimb"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://gitlab.com/protesilaos/modus-themes")
|
||||
(synopsis "Accessible light theme (WCAG AAA)")
|
||||
@ -21060,14 +21313,14 @@ standard. This is the highest standard of its kind.")
|
||||
(define-public emacs-modus-vivendi-theme
|
||||
(package
|
||||
(name "emacs-modus-vivendi-theme")
|
||||
(version "0.7.0")
|
||||
(version "0.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/"
|
||||
"modus-vivendi-theme-" version ".el"))
|
||||
(sha256
|
||||
(base32 "1w4vrg39dghghkvll3h4kmzykc3zpp6pbychb39gcc13z2b06v8g"))))
|
||||
(base32 "121nlr5w58j4q47rh9xjjf9wzb97yl2m1n2l6g58ck4vnarwndl1"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://gitlab.com/protesilaos/modus-themes")
|
||||
(synopsis "Accessible dark theme (WCAG AAA)")
|
||||
@ -21337,7 +21590,7 @@ Google guidelines.")
|
||||
(define-public emacs-helm-fish-completion
|
||||
(package
|
||||
(name "emacs-helm-fish-completion")
|
||||
(version "0.2")
|
||||
(version "0.3")
|
||||
(home-page "https://github.com/emacs-helm/helm-fish-completion")
|
||||
(source
|
||||
(origin
|
||||
@ -21347,7 +21600,7 @@ Google guidelines.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "089gp2k22xwn33z8brpyb7r18vpyralq2cwxj1xsc8b2sj9s4896"))))
|
||||
(base32 "1iv0hwr74hzgrvrr31nlnswvi87lvpg24rd1rhkr5kjicr2295fq"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("helm" ,emacs-helm)
|
||||
@ -21676,6 +21929,32 @@ interface.")
|
||||
(home-page "https://github.com/akirak/ivy-omni-org")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-ivy-posframe
|
||||
(let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
|
||||
(package
|
||||
(name "emacs-ivy-posframe")
|
||||
(version (git-version "0.1.0" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tumashu/ivy-posframe.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-posframe" ,emacs-posframe)
|
||||
("emacs-ivy" ,emacs-ivy)))
|
||||
(home-page "https://github.com/tumashu/ivy-posframe")
|
||||
(synopsis "Pop a posframe (a child frame) to show Ivy candidates")
|
||||
(description
|
||||
"This package provides an Emacs Ivy extension, which let Ivy use
|
||||
posframe to show its candidate menu.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-shackle
|
||||
(let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
|
||||
(revision "1"))
|
||||
|
@ -7,7 +7,7 @@
|
||||
;;; Copyright © 2016, 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
|
||||
;;; Copyright © 2016 David Thompson <dthompson2@worcester.edu>
|
||||
;;; Copyright © 2016 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2016 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
|
||||
@ -20,6 +20,7 @@
|
||||
;;; Copyright © 2019 Valentin Ignatev <valentignatev@gmail.com>
|
||||
;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
|
||||
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
|
||||
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -139,7 +140,7 @@
|
||||
"lisp/textmodes/artist.el"
|
||||
"lisp/progmodes/sh-script.el")
|
||||
(("\"/bin/sh\"")
|
||||
(format "~s" (which "sh"))))
|
||||
(format #f "~s" (which "sh"))))
|
||||
#t))
|
||||
(add-before 'configure 'fix-/bin/pwd
|
||||
(lambda _
|
||||
@ -163,7 +164,7 @@
|
||||
(byte-recompile-directory
|
||||
(file-name-as-directory ,dir) 0 1))))
|
||||
(invoke emacs "--quick" "--batch"
|
||||
(format "--eval=~s" expr))))
|
||||
(format #f "--eval=~s" expr))))
|
||||
|
||||
(copy-file (assoc-ref inputs "guix-emacs.el")
|
||||
(string-append lisp-dir "/guix-emacs.el"))
|
||||
@ -193,7 +194,7 @@
|
||||
("libxft" ,libxft)
|
||||
("libtiff" ,libtiff)
|
||||
("giflib" ,giflib)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("imagemagick" ,imagemagick)
|
||||
("acl" ,acl)
|
||||
|
||||
@ -242,9 +243,9 @@ languages.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-next
|
||||
(let ((commit "36abf6864604b3061c2e070f8997491fa2bce44c")
|
||||
(let ((commit "c36c5a3dedbb2e0349be1b6c3b7567ea7b594f1c")
|
||||
(revision "0")
|
||||
(emacs-version "27.0.50"))
|
||||
(emacs-version "27.0.91"))
|
||||
(package
|
||||
(inherit emacs)
|
||||
(name "emacs-next")
|
||||
@ -256,7 +257,7 @@ languages.")
|
||||
(url "https://git.savannah.gnu.org/git/emacs.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32 "1ckn607p0clz0dhhlizvv7l03p4nminy48h53xrpz55w4rcrcm2l"))
|
||||
(base32 "0mlrg2npy1r79laahkgzhxd1qassfcdz8qk1cpw7mqgf6y5x505h"))
|
||||
(file-name (git-file-name name version))
|
||||
(patches (search-patches "emacs27-exec-path.patch"
|
||||
"emacs-fix-scheme-indent-function.patch"
|
||||
@ -321,7 +322,9 @@ languages.")
|
||||
(inputs
|
||||
`(("jansson" ,jansson)
|
||||
("harfbuzz" ,harfbuzz)
|
||||
,@(package-inputs emacs)))
|
||||
;; Emacs no longer uses ImageMagick by default
|
||||
;; https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-27.0.91&id=c36c5a3dedbb2e0349be1b6c3b7567ea7b594f1c#n102
|
||||
,@(alist-delete "imagemagick" (package-inputs emacs))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf) ; needed when building from trunk
|
||||
,@(package-native-inputs emacs)))
|
||||
|
@ -5,6 +5,8 @@
|
||||
;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -87,12 +89,27 @@
|
||||
(origin-patches (package-source xgcc))))))
|
||||
(native-inputs
|
||||
`(("flex" ,flex)
|
||||
("gcc" ,gcc-5)
|
||||
("gcc@5" ,gcc-5)
|
||||
,@(package-native-inputs xgcc)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments xgcc)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gcc (assoc-ref inputs "gcc")))
|
||||
;; Remove the default compiler from CPLUS_INCLUDE_PATH to
|
||||
;; prevent header conflict with the GCC from native-inputs.
|
||||
(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"))
|
||||
#t)))
|
||||
(add-after 'unpack 'fix-genmultilib
|
||||
(lambda _
|
||||
(substitute* "gcc/genmultilib"
|
||||
@ -234,7 +251,7 @@ usable on embedded products.")
|
||||
(origin-patches (package-source gcc-7))
|
||||
(search-patches "gcc-7-cross-environment-variables.patch")))))
|
||||
(native-inputs
|
||||
`(("gcc" ,gcc-5)
|
||||
`(("gcc@5" ,gcc-5)
|
||||
("flex" ,flex)
|
||||
("isl" ,isl-0.18)
|
||||
,@(alist-delete "isl" (package-native-inputs xgcc))))
|
||||
@ -253,7 +270,22 @@ usable on embedded products.")
|
||||
(lambda _
|
||||
(substitute* "gcc/genmultilib"
|
||||
(("#!/bin/sh") (string-append "#!" (which "sh"))))
|
||||
#t))))
|
||||
#t))
|
||||
(add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gcc (assoc-ref inputs "gcc")))
|
||||
;; Remove the default compiler from CPLUS_INCLUDE_PATH to
|
||||
;; prevent header conflict with the GCC from native-inputs.
|
||||
(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"))
|
||||
#t)))))
|
||||
((#:configure-flags flags)
|
||||
;; The configure flags are largely identical to the flags used by the
|
||||
;; "GCC ARM embedded" project.
|
||||
|
@ -1204,14 +1204,14 @@ multi-system game/emulator system.")
|
||||
(define-public scummvm
|
||||
(package
|
||||
(name "scummvm")
|
||||
(version "2.1.1")
|
||||
(version "2.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.scummvm.org/frs/scummvm/" version
|
||||
"/scummvm-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1a6waf1ybp91nwva8g650cljlfb1di4l0jv13vg6yfgkas9pclsp"))))
|
||||
(base32 "1c4fz1nfg0nqnqx9iipayhzcsiqdmfxm2i95nw9dbhshhsdnrhf4"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ;require "git"
|
||||
|
@ -16,6 +16,7 @@
|
||||
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
|
||||
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -770,7 +771,8 @@ fonts to gEDA.")
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-append (assoc-ref inputs "catch")
|
||||
"/include/catch"))
|
||||
"/include/catch:"
|
||||
(or (getenv "CPLUS_INCLUDE_PATH") "")))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
@ -1690,7 +1692,19 @@ parallel computing platforms. It also supports serial execution.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"117dqs0d4pcgbzvr3jn5ppra7n7x2m6c161ywh6laa934pw7h2bz"))))
|
||||
"117dqs0d4pcgbzvr3jn5ppra7n7x2m6c161ywh6laa934pw7h2bz"))
|
||||
(patches
|
||||
(list (origin
|
||||
;; Fix build with GCC 7. Patch taken from Arch Linux:
|
||||
;; https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/freehdl
|
||||
(method url-fetch)
|
||||
(uri "https://git.archlinux.org/svntogit/community.git\
|
||||
/plain/trunk/build-fix.patch?h=packages/freehdl\
|
||||
&id=3bb90d64dfe6883e26083cd1fa96226d0d59175a")
|
||||
(file-name "freehdl-c++-namespace.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"09df3c70rx81rnhlhry1wpdhji274nx9jb74rfprk06l4739zm08")))))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -1766,7 +1780,6 @@ parallel computing platforms. It also supports serial execution.")
|
||||
("libtool" ,libtool)))
|
||||
(native-inputs
|
||||
`(("pkg-config-native" ,pkg-config)
|
||||
("gcc" ,gcc-5)
|
||||
("libtool-native" ,libtool)))
|
||||
(home-page "http://www.freehdl.seul.org/")
|
||||
(synopsis "VHDL simulator")
|
||||
@ -2216,7 +2229,7 @@ engineers for reverse engineers.")
|
||||
(native-inputs
|
||||
`(("googletest-source" ,(package-source googletest))))
|
||||
(inputs
|
||||
`(("libuuid" ,util-linux)))
|
||||
`(("libuuid" ,util-linux "lib")))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
@ -2311,6 +2324,15 @@ full programmatic control over your models.")
|
||||
(uri (git-reference
|
||||
(url "https://github.com/FreeCAD/FreeCAD.git")
|
||||
(commit version)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Fix build with Python 3.8, see
|
||||
;; <https://tracker.freecadweb.org/view.php?id=4143>.
|
||||
(substitute* "src/Base/swigpyrun.inl"
|
||||
(("PyObject \\*modules = interp->modules;")
|
||||
"PyObject *modules = PyEval_GetBuiltins();"))
|
||||
#t))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -2,7 +2,7 @@
|
||||
;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
|
||||
;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
|
||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
|
||||
;;;
|
||||
@ -124,7 +124,7 @@
|
||||
("harfbuzz" ,harfbuzz)
|
||||
("luajit" ,luajit)
|
||||
("libinput" ,libinput-minimal)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libpng" ,libpng)
|
||||
("libsndfile" ,libsndfile)
|
||||
("libtiff" ,libtiff)
|
||||
@ -134,7 +134,7 @@
|
||||
("lz4" ,lz4)
|
||||
("openssl" ,openssl)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("util-linux" ,util-linux)
|
||||
("util-linux" ,util-linux "lib")
|
||||
("wayland" ,wayland)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
@ -194,7 +194,7 @@ removable devices or support for multimedia.")
|
||||
(define-public terminology
|
||||
(package
|
||||
(name "terminology")
|
||||
(version "1.6.0")
|
||||
(version "1.7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
@ -202,7 +202,7 @@ removable devices or support for multimedia.")
|
||||
"terminology/terminology-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xxx4xyhis6fy3frgb34ip0aj0kc4zashf60gzbxmq5gadbb0p5r"))
|
||||
"11qan2k6w94cglysh95yxkbv6hw9x15ri927hkiy3k0hbmpbrxc8"))
|
||||
(modules '((guix build utils)))
|
||||
;; Remove the bundled fonts.
|
||||
(snippet
|
||||
@ -336,8 +336,8 @@ Libraries with some extra bells and whistles.")
|
||||
(substitute* "src/modules/everything/evry_plug_calc.c"
|
||||
(("bc -l") (string-append bc "/bin/bc -l")))
|
||||
(substitute* "data/etc/meson.build"
|
||||
(("/bin/mount") (string-append utils "/bin/mount"))
|
||||
(("/bin/umount") (string-append utils "/bin/umount"))
|
||||
(("/bin/mount") "/run/setuid-programs/mount")
|
||||
(("/bin/umount") "/run/setuid-programs/umount")
|
||||
(("/usr/bin/eject") (string-append utils "/bin/eject"))
|
||||
(("/usr/bin/l2ping") (string-append bluez "/bin/l2ling"))
|
||||
(("/bin/rfkill") (string-append utils "/sbin/rfkill"))
|
||||
@ -449,25 +449,32 @@ Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
|
||||
(define-public edi
|
||||
(package
|
||||
(name "edi")
|
||||
(version "0.6.0")
|
||||
(version "0.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.enlightenment.org/rel/apps/edi/"
|
||||
name "-" version ".tar.xz"))
|
||||
(uri (string-append "https://github.com/Enlightenment/edi/releases/"
|
||||
"download/v" version "/edi-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0iqkah327ms5m7k054hcik2l9v68i4mg9yy52brprfqpd5jk7pw8"))))
|
||||
(build-system gnu-build-system)
|
||||
"01k8gp8r2wa6pyg3dkbm35m6hdsbss06hybghg0qjmd4mzswcd3a"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-clang-header
|
||||
(lambda _
|
||||
(substitute* "scripts/clang_include_dir.sh"
|
||||
(("grep clang") "grep clang | head -n1"))
|
||||
#t))
|
||||
(add-after 'unpack 'set-home-directory
|
||||
;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
|
||||
(lambda _ (setenv "HOME" "/tmp") #t)))
|
||||
#:tests? #f)) ; tests require running dbus service
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
`(("check" ,check)
|
||||
("gettext" ,gettext-minimal)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("clang" ,clang)
|
||||
("efl" ,efl)))
|
||||
@ -478,7 +485,8 @@ the EFL. It's aim is to create a new, native development environment for Linux
|
||||
that tries to lower the barrier to getting involved in Enlightenment development
|
||||
and in creating applications based on the Enlightenment Foundation Library suite.")
|
||||
(license (list license:public-domain ; data/extra/skeleton
|
||||
license:gpl2)))) ; edi
|
||||
license:gpl2 ; edi
|
||||
license:gpl3)))) ; data/extra/examples/images/mono-runtime.png
|
||||
|
||||
(define-public lekha
|
||||
(package
|
||||
@ -560,7 +568,7 @@ directories.
|
||||
(define-public evisum
|
||||
(package
|
||||
(name "evisum")
|
||||
(version "0.2.6")
|
||||
(version "0.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -568,22 +576,14 @@ directories.
|
||||
"evisum/evisum-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rg3kri6j8nmab0kdljnmcc096c8ibgwzvbhqr0b25xpmrq8bcac"))))
|
||||
(build-system gnu-build-system)
|
||||
"0c3sgz6g8agig1i6fwn1jv318zsm556l9f3f0dm1jll146dlk2iv"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no tests
|
||||
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure phase
|
||||
(add-after 'unpack 'set-environmental-variables
|
||||
(lambda _ (setenv "CC" (which "gcc")) #t)))))
|
||||
'(#:tests? #f)) ; no tests
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("efl" ,efl)
|
||||
("perl" ,perl)))
|
||||
`(("efl" ,efl)))
|
||||
(home-page "https://www.enlightenment.org")
|
||||
(synopsis "EFL process viewer")
|
||||
(description
|
||||
|
@ -3,7 +3,7 @@
|
||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2018 Nikita <nikita@n0.is>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -3,7 +3,8 @@
|
||||
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
|
||||
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -44,10 +45,12 @@
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages nfs)
|
||||
#:use-module (gnu packages onc-rpc)
|
||||
#:use-module (gnu packages photo)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages readline)
|
||||
@ -56,6 +59,77 @@
|
||||
#:use-module (gnu packages valgrind)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public fsarchiver
|
||||
(package
|
||||
(name "fsarchiver")
|
||||
(version "0.8.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/fdupoux/fsarchiver.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1rvwq5v3rl14bqxjm1ibfapyicf0sa44nw7451v10kx39lp56ylp"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("bzip2" ,bzip2)
|
||||
("e2fsprogs" ,e2fsprogs)
|
||||
("libgcrypt" ,libgcrypt)
|
||||
("lz4" ,lz4)
|
||||
("lzo" ,lzo)
|
||||
("util-linux" ,util-linux "lib")
|
||||
("xz" ,xz)
|
||||
("zlib" ,zlib)
|
||||
("zstd:lib" ,zstd "lib")))
|
||||
(synopsis "File system back-up, deployment, and migration tool")
|
||||
(description
|
||||
"FSArchiver saves the contents of a file system to a compressed archive
|
||||
file, and restores it to a different file system and/or partition. This
|
||||
partition can be of a different size than the original and FSArchiver will
|
||||
create a new file system if none exists.
|
||||
|
||||
All standard file attributes supported by the kernel are preserved, including
|
||||
file permissions, timestamps, symbolic and hard links, and extended attributes.
|
||||
|
||||
Each file in the archive is protected by a checksum. If part of the archive
|
||||
is corrupted you'll lose the affected file(s) but not the whole back-up.")
|
||||
(home-page "http://www.fsarchiver.org/")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public gphotofs
|
||||
(package
|
||||
(name "gphotofs")
|
||||
(version "0.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "mirror://sourceforge/gphoto/gphotofs/" version
|
||||
"/gphotofs-0.5.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04slwhr6ap9xcc27wphk22ad8yn79ngyy5z10lxams3k5liahvc2"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("fuse" ,fuse)
|
||||
("glib" ,glib)
|
||||
("libgphoto2" ,libgphoto2)))
|
||||
(synopsis "Virtual filesystem for libgphoto2 using FUSE")
|
||||
(description "GPhotoFS is a FUSE filesystem module to mount your camera as
|
||||
a filesystem on Linux. This allow using your camera with any tool able to read
|
||||
from a mounted filesystem.")
|
||||
(home-page "http://www.gphoto.org/proj/gphotofs/")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public bcachefs-tools
|
||||
(let ((commit "ab2f1ec24f5307b0cf1e3c4ad19bf350d9f54d9f")
|
||||
(revision "0"))
|
||||
@ -94,7 +168,7 @@
|
||||
("libscrypt" ,libscrypt)
|
||||
("libsodium" ,libsodium)
|
||||
("liburcu" ,liburcu)
|
||||
("util-linux" ,util-linux) ; lib{blkid,uuid}
|
||||
("util-linux" ,util-linux "lib") ; lib{blkid,uuid}
|
||||
("lz4" ,lz4)
|
||||
("zlib" ,zlib)
|
||||
("zstd:lib" ,zstd "lib")))
|
||||
@ -186,7 +260,7 @@ single file can be mounted.")
|
||||
"jfsutils-include-systypes.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("util-linux" ,util-linux)))
|
||||
`(("util-linux" ,util-linux "lib")))
|
||||
(home-page "http://jfs.sourceforge.net/home.html")
|
||||
(synopsis "Utilities for managing JFS file systems")
|
||||
(description
|
||||
@ -330,7 +404,7 @@ non-determinism in the build process.")
|
||||
("fuse", fuse)
|
||||
("openssl" ,openssl)
|
||||
("liburcu" ,liburcu)
|
||||
("libuuid" ,util-linux)
|
||||
("libuuid" ,util-linux "lib")
|
||||
("libxml2" ,libxml2)
|
||||
("readline" ,readline)
|
||||
("zlib" ,zlib)
|
||||
@ -553,6 +627,7 @@ APFS.")
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("attr" ,attr)
|
||||
("kmod" ,kmod)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("eudev" ,eudev)
|
||||
@ -562,7 +637,7 @@ APFS.")
|
||||
("openssl" ,openssl)
|
||||
("python" ,python)
|
||||
("python-cffi" ,python-cffi)
|
||||
("util-linux" ,util-linux)
|
||||
("util-linux" ,util-linux "lib")
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://zfsonlinux.org/")
|
||||
(synopsis "Native ZFS on Linux")
|
||||
|
@ -30,15 +30,14 @@
|
||||
(define-public file
|
||||
(package
|
||||
(name "file")
|
||||
(version "5.33")
|
||||
(version "5.38")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp.astron.com/pub/file/file-"
|
||||
version ".tar.gz"))
|
||||
(patches (search-patches "file-CVE-2018-10360.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1iipnwjkag7q04zjkaqic41r9nlw0ml6mhqian6qkkbisb1whlhw"))))
|
||||
"0d7s376b4xqymnrsjxi3nsv3f5v89pzfspzml2pcajdk5by2yg2r"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
;; When cross-compiling, this package depends upon a native install of
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user