Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2020-05-26 22:30:51 +02:00
commit 9edb3f66fd
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
524 changed files with 47138 additions and 26626 deletions

157
.guix-authorizations Normal file
View 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"))))

View File

@ -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>

View File

@ -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 \

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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!

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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.
#

View File

@ -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")

View File

@ -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"

View File

@ -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)

View File

@ -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)))

View File

@ -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.

View File

@ -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
View 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)))
'()))))

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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
View 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)))

View File

@ -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)))))

View File

@ -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

View File

@ -95,7 +95,7 @@
("libchamplain" ,libchamplain)
("libglade" ,libglade)
("libgsf" ,libgsf)
("libjpeg" ,libjpeg)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("librsvg" ,librsvg)
("libxml2" ,libxml2)

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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)))

View File

@ -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

View File

@ -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

View File

@ -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)))

View File

@ -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)

View File

@ -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"

View File

@ -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)

View File

@ -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+)))

View File

@ -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

View File

@ -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")))

View 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;
}

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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))))

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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)))

View File

@ -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)

View File

@ -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)

View File

@ -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. Its
@ -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")

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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, ObjectiveC, 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

View File

@ -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+)))

View File

@ -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)))

View File

@ -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

View File

@ -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))))))

View File

@ -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

View File

@ -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)")))

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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))))

View File

@ -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)

View File

@ -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/")

View File

@ -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)

View File

@ -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>

View File

@ -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)))

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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.")

View File

@ -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.
;;;

View File

@ -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 GitLabs 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"))

View File

@ -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)))

View File

@ -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.

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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.
;;;

View File

@ -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")

View File

@ -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