Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2019-08-04 13:41:27 +02:00
commit f35d313265
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
66 changed files with 3001 additions and 836 deletions

View file

@ -249,6 +249,7 @@ MODULES = \
guix/scripts/describe.scm \
guix/scripts/system.scm \
guix/scripts/system/search.scm \
guix/scripts/system/reconfigure.scm \
guix/scripts/lint.scm \
guix/scripts/challenge.scm \
guix/scripts/import/crate.scm \

View file

@ -5854,8 +5854,11 @@ should be added to the package definition via the
In its @code{configure} phase, this build system will make any source inputs
specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs}
parameters available to cargo. The @code{install} phase installs any crate
the binaries if they are defined by the crate.
parameters available to cargo. The @code{update-cargo-lock} phase will,
when there is a @code{Cargo.lock} file, update the @code{Cargo.lock} file
with the inputs and their versions available at build time. The
@code{install} phase installs any crate the binaries if they are defined by
the crate.
@end defvr
@cindex Clojure (programming language)
@ -7439,7 +7442,8 @@ This is the declarative counterpart of @code{gexp->derivation}.
@end deffn
@deffn {Monadic Procedure} gexp->script @var{name} @var{exp} @
[#:guile (default-guile)] [#:module-path %load-path]
[#:guile (default-guile)] [#:module-path %load-path] @
[#:system (%current-system)] [#:target #f]
Return an executable script @var{name} that runs @var{exp} using
@var{guile}, with @var{exp}'s imported modules in its search path.
Look up @var{exp}'s modules in @var{module-path}.
@ -8048,7 +8052,7 @@ guix build --with-branch=guile-sqlite3=master cuirass
@item --with-commit=@var{package}=@var{commit}
This is similar to @code{--with-branch}, except that it builds from
@var{commit} rather than the tip of a branch. @var{commit} must be a valid
Git commit SHA1 identifier.
Git commit SHA1 identifier or a tag.
@end table
@node Additional Build Options

View file

@ -597,6 +597,7 @@ GNU_SYSTEM_MODULES = \
%D%/tests/mail.scm \
%D%/tests/messaging.scm \
%D%/tests/networking.scm \
%D%/tests/reconfigure.scm \
%D%/tests/rsync.scm \
%D%/tests/security-token.scm \
%D%/tests/singularity.scm \
@ -756,6 +757,7 @@ dist_patch_DATA = \
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
%D%/packages/patches/diffutils-gets-undeclared.patch \
%D%/packages/patches/diffutils-getopt.patch \
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
%D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \
%D%/packages/patches/doc++-include-directives.patch \
%D%/packages/patches/doc++-segfault-fix.patch \
@ -1042,6 +1044,7 @@ dist_patch_DATA = \
%D%/packages/patches/libutils-add-includes.patch \
%D%/packages/patches/libutils-remove-damaging-includes.patch \
%D%/packages/patches/libvdpau-va-gl-unbundle.patch \
%D%/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch \
%D%/packages/patches/libvpx-CVE-2016-2818.patch \
%D%/packages/patches/libvpx-use-after-free-in-postproc.patch \
%D%/packages/patches/libxslt-generated-ids.patch \
@ -1162,6 +1165,7 @@ dist_patch_DATA = \
%D%/packages/patches/patchelf-rework-for-arm.patch \
%D%/packages/patches/patchutils-test-perms.patch \
%D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/pcre2-fix-jit_match-crash.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-deterministic-ordering.patch \
%D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \

View file

@ -17,23 +17,21 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu machine ssh)
#:use-module (gnu bootloader)
#:use-module (gnu machine)
#:autoload (gnu packages gnupg) (guile-gcrypt)
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:use-module (gnu system)
#:use-module (guix derivations)
#:use-module (guix gexp)
#:use-module (guix i18n)
#:use-module (guix modules)
#:use-module (guix monads)
#:use-module (guix records)
#:use-module (guix remote)
#:use-module (guix scripts system reconfigure)
#:use-module (guix ssh)
#:use-module (guix store)
#:use-module (ice-9 match)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-35)
#:export (managed-host-environment-type
@ -105,118 +103,6 @@ (define (managed-host-remote-eval machine exp)
;;; System deployment.
;;;
(define (switch-to-system machine)
"Monadic procedure creating a new generation on MACHINE and execute the
activation script for the new system configuration."
(define (remote-exp drv script)
(with-extensions (list guile-gcrypt)
(with-imported-modules (source-module-closure '((guix config)
(guix profiles)
(guix utils)))
#~(begin
(use-modules (guix config)
(guix profiles)
(guix utils))
(define %system-profile
(string-append %state-directory "/profiles/system"))
(let* ((system #$drv)
(number (1+ (generation-number %system-profile)))
(generation (generation-file-name %system-profile number)))
(switch-symlinks generation system)
(switch-symlinks %system-profile generation)
;; The implementation of 'guix system reconfigure' saves the
;; load path and environment here. This is unnecessary here
;; because each invocation of 'remote-eval' runs in a distinct
;; Guile REPL.
(setenv "GUIX_NEW_SYSTEM" system)
;; The activation script may write to stdout, which confuses
;; 'remote-eval' when it attempts to read a result from the
;; remote REPL. We work around this by forcing the output to a
;; string.
(with-output-to-string
(lambda ()
(primitive-load #$script))))))))
(let* ((os (machine-system machine))
(script (operating-system-activation-script os)))
(mlet* %store-monad ((drv (operating-system-derivation os)))
(machine-remote-eval machine (remote-exp drv script)))))
;; XXX: Currently, this does NOT attempt to restart running services. This is
;; also the case with 'guix system reconfigure'.
;;
;; See <https://issues.guix.info/issue/33508>.
(define (upgrade-shepherd-services machine)
"Monadic procedure unloading and starting services on the remote as needed
to realize the MACHINE's system configuration."
(define target-services
;; Monadic expression evaluating to a list of (name output-path) pairs for
;; all of MACHINE's services.
(mapm %store-monad
(lambda (service)
(mlet %store-monad ((file ((compose lower-object
shepherd-service-file)
service)))
(return (list (shepherd-service-canonical-name service)
(derivation->output-path file)))))
(service-value
(fold-services (operating-system-services (machine-system machine))
#:target-type shepherd-root-service-type))))
(define (remote-exp target-services)
(with-imported-modules '((gnu services herd))
#~(begin
(use-modules (gnu services herd)
(srfi srfi-1))
(define running
(filter live-service-running (current-services)))
(define (essential? service)
;; Return #t if SERVICE is essential and should not be unloaded
;; under any circumstance.
(memq (first (live-service-provision service))
'(root shepherd)))
(define (obsolete? service)
;; Return #t if SERVICE can be safely unloaded.
(and (not (essential? service))
(every (lambda (requirements)
(not (memq (first (live-service-provision service))
requirements)))
(map live-service-requirement running))))
(define to-unload
(filter obsolete?
(remove (lambda (service)
(memq (first (live-service-provision service))
(map first '#$target-services)))
running)))
(define to-start
(remove (lambda (service-pair)
(memq (first service-pair)
(map (compose first live-service-provision)
running)))
'#$target-services))
;; Unload obsolete services.
(for-each (lambda (service)
(false-if-exception
(unload-service service)))
to-unload)
;; Load the service files for any new services and start them.
(load-services/safe (map second to-start))
(for-each start-service (map first to-start))
#t)))
(mlet %store-monad ((target-services target-services))
(machine-remote-eval machine (remote-exp target-services))))
(define (machine-boot-parameters machine)
"Monadic procedure returning a list of 'boot-parameters' for the generations
of MACHINE's system profile, ordered from most recent to oldest."
@ -275,71 +161,20 @@ (define (read-file path)
(boot-parameters-kernel-arguments params))))))))
generations))))
(define (install-bootloader machine)
"Create a bootloader entry for the new system generation on MACHINE, and
configure the bootloader to boot that generation by default."
(define bootloader-installer-script
(@@ (guix scripts system) bootloader-installer-script))
(define (remote-exp installer bootcfg bootcfg-file)
(with-extensions (list guile-gcrypt)
(with-imported-modules (source-module-closure '((gnu build install)
(guix store)
(guix utils)))
#~(begin
(use-modules (gnu build install)
(guix store)
(guix utils))
(let* ((gc-root (string-append "/" %gc-roots-directory "/bootcfg"))
(temp-gc-root (string-append gc-root ".new")))
(switch-symlinks temp-gc-root gc-root)
(unless (false-if-exception
(begin
;; The implementation of 'guix system reconfigure'
;; saves the load path here. This is unnecessary here
;; because each invocation of 'remote-eval' runs in a
;; distinct Guile REPL.
(install-boot-config #$bootcfg #$bootcfg-file "/")
;; The installation script may write to stdout, which
;; confuses 'remote-eval' when it attempts to read a
;; result from the remote REPL. We work around this
;; by forcing the output to a string.
(with-output-to-string
(lambda ()
(primitive-load #$installer)))))
(delete-file temp-gc-root)
(error "failed to install bootloader"))
(rename-file temp-gc-root gc-root)
#t)))))
(mlet* %store-monad ((boot-parameters (machine-boot-parameters machine)))
(let* ((os (machine-system machine))
(bootloader ((compose bootloader-configuration-bootloader
operating-system-bootloader)
os))
(bootloader-target (bootloader-configuration-target
(operating-system-bootloader os)))
(installer (bootloader-installer-script
(bootloader-installer bootloader)
(bootloader-package bootloader)
bootloader-target
"/"))
(menu-entries (map boot-parameters->menu-entry boot-parameters))
(bootcfg (operating-system-bootcfg os menu-entries))
(bootcfg-file (bootloader-configuration-file bootloader)))
(machine-remote-eval machine (remote-exp installer bootcfg bootcfg-file)))))
(define (deploy-managed-host machine)
"Internal implementation of 'deploy-machine' for MACHINE instances with an
environment type of 'managed-host."
(maybe-raise-unsupported-configuration-error machine)
(mbegin %store-monad
(switch-to-system machine)
(upgrade-shepherd-services machine)
(install-bootloader machine)))
(mlet %store-monad ((boot-parameters (machine-boot-parameters machine)))
(let* ((os (machine-system machine))
(eval (cut machine-remote-eval machine <>))
(menu-entries (map boot-parameters->menu-entry boot-parameters))
(bootloader-configuration (operating-system-bootloader os))
(bootcfg (operating-system-bootcfg os menu-entries)))
(mbegin %store-monad
(switch-to-system eval os)
(upgrade-shepherd-services eval os)
(install-bootloader eval bootloader-configuration bootcfg)))))
;;;

View file

@ -913,6 +913,51 @@ (define-public clusterssh
(base32
"0rmk2p3f2wz1h092anidjclh212rv3gxyk0c641qk3frlrjnw6mp"))))
(build-system perl-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'refer-to-inputs
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (list "lib/App/ClusterSSH/Config.pm"
"t/15config.t")
(("xterm")
(which "xterm")))
#t))
(add-before 'check 'delete-failing-tests
(lambda _
;; This checks whether all code is nicely formatted. The above
;; refer-to-inputs phase breaks this pedantry, so disable it.
(delete-file "t/perltidy.t")
;; Update the manifest so t/manifest.t happily passes.
(substitute* "MANIFEST"
(("t/perltidy.t\n") ""))
#t))
(add-after 'install 'augment-library-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(with-directory-excursion bin
(for-each
(lambda (program)
(wrap-program program
`("PERL5LIB" ":" prefix
,(map (lambda (file-name)
(string-append file-name
"/lib/perl5/site_perl"))
(cons out
(map (lambda (input)
(assoc-ref inputs input))
;; These may be propagated and hence
;; not explicitly listed as inputs.
(list "perl-class-data-inheritable"
"perl-devel-stacktrace"
"perl-exception-class"
"perl-tk"
"perl-try-tiny"
"perl-x11-protocol"
"perl-x11-protocol-other")))))))
(find-files "." ".*")))
#t))))))
(native-inputs
`(("perl-cpan-changes" ,perl-cpan-changes)
("perl-file-slurp" ,perl-file-slurp)
@ -926,13 +971,14 @@ (define-public clusterssh
("perl-test-pod-coverage" ,perl-test-pod-coverage)
("perl-test-trap" ,perl-test-trap)
("perltidy" ,perltidy)))
(propagated-inputs
`(("xterm" ,xterm)
("perl-exception-class" ,perl-exception-class)
(inputs
`(("perl-exception-class" ,perl-exception-class)
("perl-sort-naturally" ,perl-sort-naturally)
("perl-tk" ,perl-tk)
("perl-try-tiny" ,perl-try-tiny)
("perl-x11-protocol" ,perl-x11-protocol)
("perl-x11-protocol-other" ,perl-x11-protocol-other)))
("perl-x11-protocol-other" ,perl-x11-protocol-other)
("xterm" ,xterm)))
;; The clusterssh.sourceforge.net address requires login to view
(home-page "https://sourceforge.net/projects/clusterssh/")
(synopsis "Secure concurrent multi-server terminal control")

View file

@ -345,7 +345,7 @@ (define-public cmh
(define-public giac
(package
(name "giac")
(version "1.5.0-61")
(version "1.5.0-63")
(source (origin
(method url-fetch)
;; "~parisse/giac" is not used because the maintainer regularly
@ -357,7 +357,7 @@ (define-public giac
"source/giac_" version ".tar.gz"))
(sha256
(base32
"050vzpqq77fhky32sbisc0ysimgp60xjv39q7y45jkaabdkmclwh"))))
"1jp7awyp8j8w6fhn802z8ddbq1fxhkyk9xdf0mq0mm0chpkylwqk"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)

View file

@ -22,6 +22,7 @@ (define-module (gnu packages bioconductor)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system r)
#:use-module (gnu packages)
#:use-module (gnu packages base)
@ -37,7 +38,8 @@ (define-module (gnu packages bioconductor)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages statistics)
#:use-module (gnu packages web))
#:use-module (gnu packages web)
#:use-module (srfi srfi-1))
;;; Annotations
@ -2263,6 +2265,68 @@ (define-public r-monocle
qPCR data, but could be used with other types as well.")
(license license:artistic2.0)))
(define-public r-monocle3
(package
(name "r-monocle3")
(version "0.1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cole-trapnell-lab/monocle3.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1cjxqfw3qvy269hsf5v80d4kshl932wrl949iayas02saj6f70ls"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biobase" ,r-biobase)
("r-biocgenerics" ,r-biocgenerics)
("r-delayedmatrixstats" ,r-delayedmatrixstats)
("r-dplyr" ,r-dplyr)
("r-ggplot2" ,r-ggplot2)
("r-ggrepel" ,r-ggrepel)
("r-grr" ,r-grr)
("r-htmlwidgets" ,r-htmlwidgets)
("r-igraph" ,r-igraph)
("r-irlba" ,r-irlba)
("r-limma" ,r-limma)
("r-lmtest" ,r-lmtest)
("r-mass" ,r-mass)
("r-matrix" ,r-matrix)
("r-matrix-utils" ,r-matrix-utils)
("r-pbapply" ,r-pbapply)
("r-pbmcapply" ,r-pbmcapply)
("r-pheatmap" ,r-pheatmap)
("r-plotly" ,r-plotly)
("r-pryr" ,r-pryr)
("r-proxy" ,r-proxy)
("r-pscl" ,r-pscl)
("r-purrr" ,r-purrr)
("r-rann" ,r-rann)
("r-rcpp" ,r-rcpp)
("r-rcppparallel" ,r-rcppparallel)
("r-reshape2" ,r-reshape2)
("r-reticulate" ,r-reticulate)
("r-rhpcblasctl" ,r-rhpcblasctl)
("r-rtsne" ,r-rtsne)
("r-shiny" ,r-shiny)
("r-slam" ,r-slam)
("r-spdep" ,r-spdep)
("r-speedglm" ,r-speedglm)
("r-stringr" ,r-stringr)
("r-singlecellexperiment" ,r-singlecellexperiment)
("r-tibble" ,r-tibble)
("r-tidyr" ,r-tidyr)
("r-uwot" ,r-uwot)
("r-viridis" ,r-viridis)))
(home-page "https://github.com/cole-trapnell-lab/monocle3")
(synopsis "Analysis toolkit for single-cell RNA-Seq data")
(description
"Monocle 3 is an analysis toolkit for single-cell RNA-Seq experiments.")
(license license:expat)))
(define-public r-noiseq
(package
(name "r-noiseq")
@ -5024,3 +5088,66 @@ (define-public r-depecher
by a sparse number of variables, this method can reduce the complexity of
data, to only emphasize the data that actually matters.")
(license license:expat)))
(define-public r-cicero
(package
(name "r-cicero")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "cicero" version))
(sha256
(base32
"0f15l8zrh7l7nnvznb66116hvfk15djb9q240vbscm2w0y5fvkcr"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
("r-biobase" ,r-biobase)
("r-biocgenerics" ,r-biocgenerics)
("r-data-table" ,r-data-table)
("r-dplyr" ,r-dplyr)
("r-fnn" ,r-fnn)
("r-genomicranges" ,r-genomicranges)
("r-ggplot2" ,r-ggplot2)
("r-glasso" ,r-glasso)
("r-gviz" ,r-gviz)
("r-igraph" ,r-igraph)
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-monocle" ,r-monocle)
("r-plyr" ,r-plyr)
("r-reshape2" ,r-reshape2)
("r-s4vectors" ,r-s4vectors)
("r-stringr" ,r-stringr)
("r-tibble" ,r-tibble)
("r-vgam" ,r-vgam)))
(home-page "https://bioconductor.org/packages/cicero/")
(synopsis "Predict cis-co-accessibility from single-cell data")
(description
"Cicero computes putative cis-regulatory maps from single-cell chromatin
accessibility data. It also extends the monocle package for use in chromatin
accessibility data.")
(license license:expat)))
;; This is the latest commit on the "monocle3" branch.
(define-public r-cicero-monocle3
(let ((commit "fa2fb6515857a8cfc88bc9af044f34de1bcd2b7b")
(revision "1"))
(package (inherit r-cicero)
(name "r-cicero-monocle3")
(version (git-version "1.3.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cole-trapnell-lab/cicero-release.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"077yza93wdhi08n40md20jwk55k9lw1f3y0063qkk90cpz60wi0c"))))
(propagated-inputs
`(("r-monocle3" ,r-monocle3)
,@(alist-delete "r-monocle"
(package-propagated-inputs r-cicero)))))))

View file

@ -73,7 +73,8 @@ (define-module (gnu packages chromium)
#:use-module (srfi srfi-1))
(define %preserved-third-party-files
'("base/third_party/dmg_fp" ;X11-style
'("base/third_party/cityhash" ;Expat
"base/third_party/dmg_fp" ;X11-style
"base/third_party/dynamic_annotations" ;BSD-2
"base/third_party/icu" ;Unicode, X11-style
"base/third_party/superfasthash" ;BSD-3
@ -85,7 +86,7 @@ (define %preserved-third-party-files
"courgette/third_party/divsufsort" ;Expat
"net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"net/third_party/nss" ;MPL-2.0
"net/third_party/quic" ;BSD-3
"net/third_party/quiche" ;BSD-3
"net/third_party/uri_template" ;ASL2.0
"third_party/abseil-cpp" ;ASL2.0
"third_party/adobe/flash/flapper_version.h" ;no license, trivial
@ -105,6 +106,10 @@ (define %preserved-third-party-files
"third_party/blink" ;BSD-3, LGPL2+
"third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
"third_party/boringssl/src/third_party/fiat" ;Expat
"third_party/boringssl/src/third_party/sike" ;Expat
;; XXX: these files are generated by fp-$arch.pl in the above directory.
"third_party/boringssl/linux-aarch64/crypto/third_party/sike/asm/fp-armv8.S"
"third_party/boringssl/linux-x86_64/crypto/third_party/sike/asm/fp-x86_64.S"
"third_party/breakpad" ;BSD-3
"third_party/brotli" ;Expat
"third_party/cacheinvalidation" ;ASL2.0
@ -164,6 +169,7 @@ (define %preserved-third-party-files
"third_party/nasm" ;BSD-2
"third_party/node" ;Expat
"third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2" ;BSD-2
"third_party/openscreen" ;BSD-3
"third_party/ots" ;BSD-3
"third_party/pdfium" ;BSD-3
"third_party/pdfium/third_party/agg23" ;Expat
@ -182,9 +188,10 @@ (define %preserved-third-party-files
"third_party/s2cellid" ;ASL2.0
"third_party/sfntly" ;ASL2.0
"third_party/skia" ;BSD-3
"third_party/skia/include/third_party/skcms" ;BSD-3
"third_party/skia/third_party/gif" ;MPL1.1/GPL2+/LGPL2.1+
"third_party/skia/third_party/skcms" ;BSD-3
"third_party/skia/third_party/vulkan" ;BSD-3
"third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat
"third_party/smhasher" ;Expat, public domain
"third_party/speech-dispatcher" ;GPL2+
"third_party/spirv-headers" ;ASL2.0
@ -231,9 +238,9 @@ (define* (computed-origin-method gexp-promise hash-algo hash
#:system system
#:guile-for-build guile)))
(define %chromium-version "75.0.3770.142")
(define %ungoogled-revision "5d8abc38b43a62f379615a0dc972b29d9aebb4b4")
(define %debian-revision "debian/75.0.3770.90-1")
(define %chromium-version "76.0.3809.87")
(define %ungoogled-revision "6ea939002bae43a27910e03569d43519d07842e7")
(define %debian-revision "debian/76.0.3809.87-2")
(define package-revision "0")
(define %package-version (string-append %chromium-version "-"
package-revision "."
@ -247,7 +254,7 @@ (define %chromium-origin
%chromium-version ".tar.xz"))
(sha256
(base32
"1b550hc9sav0qdnh4hiin2bb3jmfyrb3dhbmnc0v8662rjknq3ji"))))
"1521vh38mfgy7aj1lw1vpbdm8m6wyh52d5p7bz4x6kvvxsnacp11"))))
(define %ungoogled-origin
(origin
@ -258,7 +265,7 @@ (define %ungoogled-origin
(string-take %ungoogled-revision 7)))
(sha256
(base32
"1vk8jzzsn20ysn4nlz84mwwhfa9nnywzd1lrahlhcky9pf6xzpwa"))))
"1nhrh9fn1appbxf8d3dg49jrqjvha721s89i60s4m63d037cifzr"))))
(define %debian-origin
(origin
@ -272,7 +279,29 @@ (define %debian-origin
(string-take %debian-revision 7))))
(sha256
(base32
"0sh6z2lx44zb31qrpa29vm0sw09dxi7i9h6fsq3ivfxjs7v98bbx"))))
"1fjhpzrxmgjr7i31li1vsfmp0qkbi0cpyc7p1zjwvf2x4da0v907"))))
(define (gentoo-patch name hash revision)
(origin
(method url-fetch)
(uri (string-append "https://gitweb.gentoo.org/repo/gentoo.git/plain"
"/www-client/chromium/files/" name "?id=" revision))
(file-name name)
(sha256 (base32 hash))))
(define-syntax-rule (gentoo-patches (name hash) ...)
(list (gentoo-patch name hash "9fd80e7d75aa63843ec33c9d44fee32596ae8f25")
...))
(define %auxiliary-patches
;; XXX: Debians "gcc/wrong-namespace.patch" and "fixes/inspector.patch" does
;; not work for us, so we take these upstream fixes via Gentoo instead.
(gentoo-patches
("chromium-76-quiche.patch" "1cs0y16jn7r1nxh0j36vqcsdvigl902kdcqfmyivnxgblrx66l2i")
("chromium-76-gcc-blink-namespace1.patch"
"0k7nrn0dhvqxj4sg2gndzxih0l1f77h6pv7jhcdz7h69sm4xci2z")
("chromium-76-gcc-blink-namespace2.patch"
"014y2d8ii9sr340sjbv1fhsjd5s3dl0vbmq5wzlkdjsp91dcn9ch")))
;; This is a "computed" origin that does the following:
;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
@ -314,6 +343,12 @@ (define ungoogled-chromium-source
(force-output)
(invoke "tar" "xf" #+chromium-source)
;; Ungoogled-Chromium contains a forked subset of the Debian
;; patches. Disable those, as we apply newer versions later.
(substitute* "patches/series"
((".*/debian_buster/.*")
""))
(format #t "Ungooglifying...~%")
(force-output)
(invoke "python3" "utils/prune_binaries.py" chromium-dir
@ -330,16 +365,7 @@ (define ungoogled-chromium-source
(force-output)
(let* ((debian #+debian-source)
(patches (string-append debian "/debian/patches"))
(series (string-append patches "/series"))
(grep-q (lambda (query file)
(with-input-from-file file
(lambda ()
(let loop ((line (read-line))
(match #f))
(if (or match (eof-object? line))
(if match #t #f)
(loop (read-line)
(string-contains line query)))))))))
(series (string-append patches "/series")))
(with-input-from-file series
(lambda ()
(let loop ((line (read-line)))
@ -347,19 +373,35 @@ (define ungoogled-chromium-source
(when (and (> (string-length line) 1)
;; Skip the Debian-specific ones.
(not (string-prefix? "debianization/" line))
(not (string-prefix? "buster/" line))
;; And those that conflict with Ungoogled.
(not (any (cute string-suffix? <> line)
'("widevine-buildflag.patch"
"signin.patch"
"third-party-cookies.patch")))
;; Ungoogled includes a subset of the Debian
;; patches. Exclude those already present.
(not (grep-q line "../patches/series")))
"third-party-cookies.patch"
;; XXX: 'fixes/inspector.patch'
;; makes v8 reuse the top-level
;; third_party/inspector_protocol
;; instead of its own bundled copy,
;; but that does not work here for
;; some reason. Ignore that patch
;; and those that depend on it.
"wrong-namespace.patch"
"explicit-specialization.patch"
"inspector.patch"))))
(invoke "patch" "--force" "-p1" "--input"
(string-append patches "/" line)
"--no-backup-if-mismatch"))
(loop (read-line)))))))
(format #t "Applying Guix-specific patches...~%")
(force-output)
(for-each (lambda (patch)
(invoke "patch" "--force" "-p1" "--input"
patch "--no-backup-if-mismatch"))
'#+%auxiliary-patches)
(format #t "Pruning third party files...~%")
(force-output)
(apply invoke "python"
@ -458,7 +500,6 @@ (define-public ungoogled-chromium
"is_clang=false"
;; Disable debugging features to save space. These are normally
;; pulled in by "is_official_build", but that requires "is_clang".
"blink_symbol_level=0"
"enable_iterator_debugging=false"
"exclude_unwind_tables=true"
;; Optimize for building everything at once, as opposed to
@ -488,7 +529,7 @@ (define-public ungoogled-chromium
'("use_vaapi=true")
'())
;; Don't arbitrarily restrict formats supported by system ffmpeg.
;; Do not artifically restrict formats supported by system ffmpeg.
"proprietary_codecs=true"
"ffmpeg_branding=\"Chrome\""
@ -561,12 +602,12 @@ (define-public ungoogled-chromium
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
(("#include \"third_party/jsoncpp/") "#include \"json/"))
(substitute* '("ui/gfx/skia_util.h"
(substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
"components/viz/common/resources/resource_format_utils.h")
(("third_party/vulkan/include/") ""))
(substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
(("\\.\\./\\.\\./include/third_party/vulkan/") ""))
(("include/third_party/vulkan/") ""))
;; Building chromedriver embeds some files using the ZIP
;; format which doesn't support timestamps before
@ -587,6 +628,9 @@ (define-public ungoogled-chromium
(setenv "AR" "ar") (setenv "NM" "nm")
(setenv "CC" "gcc") (setenv "CXX" "g++")
;; Prevent GCC from optimizing away null pointer safety checks.
(setenv "CXXFLAGS" "-fno-delete-null-pointer-checks")
;; Work around <https://bugs.gnu.org/30756>.
(unsetenv "C_INCLUDE_PATH")
(unsetenv "CPLUS_INCLUDE_PATH")

View file

@ -1363,14 +1363,14 @@ (define-public unshield
(define-public zstd
(package
(name "zstd")
(version "1.4.1")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/facebook/zstd/releases/download/"
"v" version "/zstd-" version ".tar.gz"))
(sha256
(base32 "180sfl0iz5hy43xcr0gh8kz2vxgpb8rh5d7wmpxn3bxkgs320l2k"))))
(base32 "1ja3nrjynmiwwdjrf6crraizkbagp7y414bqqq2ady91nn1hjwqj"))))
(build-system gnu-build-system)
(outputs '("out" ;1.1MiB executables and documentation
"lib" ;1MiB shared library and headers

View file

@ -118,6 +118,51 @@ (define-public r-ellipsis
are not used.")
(license license:gpl3)))
(define-public r-grr
(package
(name "r-grr")
(version "0.9.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "grr" version))
(sha256
(base32
"0arbcgrvhkwb5xk4nry1ffg2qj0v8ivhjghdr505ib4357g0c9i9"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/grr")
(synopsis "Alternative implementations of base R functions")
(description
"This package provides alternative implementations of some base R
functions, including @code{sort}, @code{order}, and @code{match}. The
functions are simplified but can be faster or have other advantages.")
(license license:gpl3)))
(define-public r-matrix-utils
(package
(name "r-matrix-utils")
(version "0.9.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "Matrix.utils" version))
(sha256
(base32
"1x64r4aj3gy1dzjjysyrk1j9jq3qsnyrqws8i6bs7q8pf6gvr7va"))))
(properties `((upstream-name . "Matrix.utils")))
(build-system r-build-system)
(propagated-inputs
`(("r-grr" ,r-grr)
("r-matrix" ,r-matrix)))
(home-page "https://github.com/cvarrichio/Matrix.utils")
(synopsis
"Data.frame-Like Operations on Sparse and Dense Matrix Objects")
(description
"This package implements data manipulation methods such as @code{cast},
@code{aggregate}, and @code{merge}/@code{join} for Matrix and Matrix-like
objects.")
(license license:gpl3)))
(define-public r-sys
(package
(name "r-sys")
@ -822,6 +867,121 @@ (define-public r-shinyfiles
well as file saving is available.")
(license license:gpl2+)))
;; The package sources include minified variants of d3.js and non-minified
;; source code of d3-jetpack.
(define-public r-d3r
(package
(name "r-d3r")
(version "0.8.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "d3r" version))
(sha256
(base32
"0vcmiyhd000xyl28k6rm7ba50x5sz5b2cpllxnq36q13qhdnqw6k"))))
(build-system r-build-system)
(arguments
`(#:modules ((guix build utils)
(guix build r-build-system)
(srfi srfi-1)
(ice-9 popen))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'process-javascript
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "inst/www/d3/"
(call-with-values
(lambda ()
(unzip2
`((,(assoc-ref inputs "d3.v3.js")
"v3/dist/d3.min.js")
(,(assoc-ref inputs "d3.v4.js")
"v4/dist/d3.min.js")
(,(assoc-ref inputs "d3.v5.js")
"v5/dist/d3.min.js"))))
(lambda (sources targets)
(for-each (lambda (source target)
(format #t "Processing ~a --> ~a~%"
source target)
(delete-file target)
(let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
(call-with-output-file target
(lambda (port)
(dump-port minified port)))))
sources targets))))
#t)))))
(propagated-inputs
`(("r-dplyr" ,r-dplyr)
("r-htmltools" ,r-htmltools)
("r-tidyr" ,r-tidyr)))
(native-inputs
`(("uglify-js" ,uglify-js)
("d3.v3.js"
,(origin
(method url-fetch)
(uri "https://d3js.org/d3.v3.js")
(sha256
(base32
"1arr7sr08vy7wh0nvip2mi7dpyjw4576vf3bm45rp4g5lc1k1x41"))))
("d3.v4.js"
,(origin
(method url-fetch)
(uri "https://d3js.org/d3.v4.js")
(sha256
(base32
"0y7byf6kcinfz9ac59jxc4v6kppdazmnyqfav0dm4h550fzfqqlg"))))
("d3.v5.js"
,(origin
(method url-fetch)
(uri "https://d3js.org/d3.v5.js")
(sha256
(base32
"0kxvx5pfagxn6nhavdwsdnzyd26g0z5dsfi1pi5dvcmb0c8ipcdn"))))))
(home-page "https://github.com/timelyportfolio/d3r")
(synopsis "d3.js utilities for R")
(description
"This package provides a suite of functions to help ease the use of the
d3.js visualization library in R. These helpers include
@code{htmltools::htmlDependency} functions, hierarchy builders, and conversion
tools for @code{partykit}, @code{igraph}, @code{table}, and @code{data.frame}
R objects into the JSON format that the d3.js library expects.")
(license license:bsd-3)))
;; We use the latest commit here because the last release was in 2016 while
;; the latest commit was in 2018.
(define-public r-sankeyd3
(let ((commit "fd50a74e29056e0d67d75b4d04de47afb2f932bc")
(revision "1"))
(package
(name "r-sankeyd3")
(version (git-version "0.3.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fbreitwieser/sankeyD3.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0jrcnfax321pszbpjdifnkbrgbjr43bjzvlzv1p5a8wskksqwiyx"))))
(build-system r-build-system)
(propagated-inputs
`(("r-d3r" ,r-d3r)
("r-htmlwidgets" ,r-htmlwidgets)
("r-shiny" ,r-shiny)
("r-magrittr" ,r-magrittr)))
(home-page "https://github.com/fbreitwieser/sankeyD3")
(synopsis "Sankey network graphs from R")
(description
"This package provides an R library to generate Sankey network graphs
in R and Shiny via the D3 visualization library.")
;; The R code is licensed under GPLv3+. It includes the non-minified
;; JavaScript source code of d3-sankey, which is released under the
;; 3-clause BSD license.
(license (list license:gpl3+ license:bsd-3)))))
(define-public r-crosstalk
(package
(name "r-crosstalk")
@ -8675,6 +8835,29 @@ (define-public r-rcpphnsw
;; hnswlib is released under Version 2.0 of the Apache License.
(license (list license:gpl3 license:asl2.0))))
(define-public r-rcppparallel
(package
(name "r-rcppparallel")
(version "4.4.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppParallel" version))
(sha256
(base32
"1ym0bzs9g6bsg2lz24fisxxa3gypr6xcvrczn304czmrrag9413s"))))
(properties `((upstream-name . "RcppParallel")))
(build-system r-build-system)
(home-page "http://rcppcore.github.io/RcppParallel")
(synopsis "Parallel programming tools for Rcpp")
(description
"This package provides high level functions for parallel programming with
Rcpp. For example, the @code{parallelFor()} function can be used to convert
the work of a standard serial @code{for} loop into a parallel one and the
@code{parallelReduce()} function can be used for accumulating aggregates or
other values.")
(license license:gpl2)))
(define-public r-ncdf4
(package
(name "r-ncdf4")
@ -9279,6 +9462,29 @@ (define-public r-sparsesvd
;; BSD-3.
(license (list license:bsd-3 license:bsd-2))))
(define-public r-speedglm
(package
(name "r-speedglm")
(version "0.3-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "speedglm" version))
(sha256
(base32
"1b25zimk0z7ad62yacqdg0zk0qs0jja4i918ym942xfw4j1z3jjz"))))
(build-system r-build-system)
(propagated-inputs
`(("r-mass" ,r-mass)
("r-matrix" ,r-matrix)))
(home-page "https://cran.r-project.org/web/packages/speedglm")
(synopsis "Fit linear and generalized linear models to large data sets")
(description
"This package provides tools for fitting linear models and generalized
linear models to large data sets by updating algorithms.")
;; Any version of the GPL
(license license:gpl2+)))
(define-public r-densityclust
(package
(name "r-densityclust")
@ -14199,6 +14405,25 @@ (define-public r-scrime
the functions can also be applied to other types of categorical data.")
(license license:gpl2)))
(define-public r-pbmcapply
(package
(name "r-pbmcapply")
(version "1.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "pbmcapply" version))
(sha256
(base32
"0i58gcqpnbyvc448qfgm45b7rpbmrnagsvk1h1hsqchbbicfslnz"))))
(build-system r-build-system)
(home-page "https://github.com/kvnkuang/pbmcapply")
(synopsis "Track the progress of apply procedures with a progress bar")
(description
"This light-weight package helps you track and visualize the progress of
parallel versions of vectorized R functions of the @code{mc*apply} family.")
(license license:expat)))
(define-public r-blme
(package
(name "r-blme")
@ -14555,6 +14780,38 @@ (define-public r-umap
in R, including a translation of the original algorithm into R.")
(license license:expat)))
(define-public r-uwot
(package
(name "r-uwot")
(version "0.1.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "uwot" version))
(sha256
(base32
"1mq6qi8q9xslh1b99srj480s2a08pfv4bs9m2ykyijj44j9fcdj9"))))
(build-system r-build-system)
(propagated-inputs
`(("r-dqrng" ,r-dqrng)
("r-fnn" ,r-fnn)
("r-irlba" ,r-irlba)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)
("r-rcppannoy" ,r-rcppannoy)
("r-rcppparallel" ,r-rcppparallel)
("r-rcppprogress" ,r-rcppprogress)
("r-rspectra" ,r-rspectra)))
(home-page "https://github.com/jlmelville/uwot")
(synopsis "Uniform manifold approximation and projection")
(description
"This package provides an implementation of the Uniform Manifold
Approximation and Projection dimensionality reduction by McInnes et
al. (2018). It also provides means to transform new data and to carry out
supervised dimensionality reduction. An implementation of the related
LargeVis method of Tang et al. (2016) is also provided.")
(license license:gpl3)))
(define-public r-kableextra
(package
(name "r-kableextra")
@ -14593,3 +14850,45 @@ (define-public r-kableextra
generated by @code{kable()} and allows users to construct complex tables and
customize styles using a readable syntax.")
(license license:expat)))
(define-public r-glasso
(package
(name "r-glasso")
(version "1.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "glasso" version))
(sha256
(base32
"0nshpx14v2yny7lr8ll6nnz71n0f02sddh2c2dglfprbk89p9yp6"))))
(build-system r-build-system)
(native-inputs `(("gfortran" ,gfortran)))
(home-page "http://www-stat.stanford.edu/~tibs/glasso")
(synopsis "Graphical Lasso: estimation of Gaussian graphical models")
(description
"This is a package for estimation of a sparse inverse covariance matrix
using a lasso (L1) penalty. Facilities are provided for estimates along a
path of values for the regularization parameter.")
(license license:gpl2)))
(define-public r-rhpcblasctl
(package
(name "r-rhpcblasctl")
(version "0.18-205")
(source
(origin
(method url-fetch)
(uri (cran-uri "RhpcBLASctl" version))
(sha256
(base32
"1ls2286fvrp1g7p8v4l6axznychh3qndranfpzqz806cm9ml1cdp"))))
(properties `((upstream-name . "RhpcBLASctl")))
(build-system r-build-system)
(home-page "http://prs.ism.ac.jp/~nakama/Rhpc/")
(synopsis "Control the number of threads on BLAS")
(description
"This package allows you to control the number of threads the BLAS
library uses. It is also possible to control the number of threads in
OpenMP.")
(license license:agpl3+)))

View file

@ -131,16 +131,15 @@ (define-public libmd
(define-public signify
(package
(name "signify")
(version "25")
(version "26")
(home-page "https://github.com/aperezdc/signify")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "https://github.com/aperezdc/signify/releases"
"/download/v" version "/signify-" version ".tar.xz"))
(sha256
(base32
"0zg0rffxwj2a71s1bllhrn491xsmirg9sshpq8f3vl25lv4c2cnq"))))
"16sl1yq5bbsads5q4a0fbrf31b0x8r1hi4wagl90nbrhrca98baw"))))
(build-system gnu-build-system)
;; TODO Build with libwaive (described in README.md), to implement something
;; like OpenBSD's pledge().

View file

@ -218,7 +218,7 @@ (define-public ding
(define-public grammalecte
(package
(name "grammalecte")
(version "1.2")
(version "1.2.1")
(source
(origin
(method url-fetch/zipbomb)
@ -226,7 +226,7 @@ (define-public grammalecte
"Grammalecte-fr-v" version ".zip"))
(sha256
(base32
"0dwizai6w9yn617y7cnqdiwv77vn22p18s9sypypbl1bl695cnma"))))
"1j2avdk8hcgcv0lahp029qzpdb2rnys38hc64jy30awzx64fa6i4"))))
(build-system python-build-system)
(home-page "https://grammalecte.net")
(synopsis "French spelling and grammar checker")

View file

@ -12,6 +12,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -372,14 +373,14 @@ (define-public nsd
(define-public unbound
(package
(name "unbound")
(version "1.9.1")
(version "1.9.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.unbound.net/downloads/unbound-"
version ".tar.gz"))
(sha256
(base32 "1iarvk0i92asvrkpla9z55aan20k6pklzpck9yk4rfnchsdvzh63"))))
(base32 "15bbrczibap30db8a1pmqhvjbmkxms39hwiivby7f4j5rz2wwykg"))))
(build-system gnu-build-system)
(outputs '("out" "python"))
(native-inputs

View file

@ -586,6 +586,9 @@ (define-public docker-cli
;; information, and the DWARF symbol table.
(setenv "LDFLAGS" "-s -w")
;; Make sure "docker -v" prints a usable version string.
(setenv "VERSION" ,%docker-version)
;; Make build reproducible.
(setenv "BUILDTIME" "1970-01-01 00:00:01.000000000+00:00")
(symlink "src/github.com/docker/cli/scripts" "./scripts")

View file

@ -250,7 +250,7 @@ (define-public tipp10
(define-public snap
(package
(name "snap")
(version "5.0.4")
(version "5.0.8")
(source
(origin
(method git-fetch)
@ -260,7 +260,7 @@ (define-public snap
(file-name (git-file-name name version))
(sha256
(base32
"1zdypxifvxjkzhi4n9mkck8l419wc0pg103339yzhsbb9kkd3jlr"))))
"0fwfssdgv3mfzyv8hw1a1z5ky1yn0p59kyl6l9fxsm4w2ckgyizd"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))

View file

@ -50,6 +50,7 @@
;;; Copyright © 2019 Amar Singh <nly@disroot.org>
;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autitici.org>
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
;;;
;;; This file is part of GNU Guix.
;;;
@ -948,6 +949,33 @@ (define-public emacs-relint
@code{skip-chars-backward}.")
(license license:gpl3+)))
(define-public emacs-bug-hunter
(let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
(revision "1"))
(package
(name "emacs-bug-hunter")
(version (git-version "1.3.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Malabarba/elisp-bug-hunter.git")
(commit commit)))
(file-name (git-file-name name commit))
(sha256
(base32
"134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-seq" ,emacs-seq)))
(home-page "https://github.com/Malabarba/elisp-bug-hunter")
(synopsis "Hunt down errors by bisecting elisp files")
(description
"The Bug Hunter is an Emacs library that finds the source of an error
or unexpected behavior inside an elisp configuration file (typically
@file{init.el} or @file{.emacs}).")
(license license:gpl3+))))
;;;
;;; Web browsing.
@ -10454,30 +10482,27 @@ (define-public emacs-org-make-toc
(license license:gpl3+)))
(define-public emacs-org-ql
(let ((commit "0aec8ec60395197b2ef2b885c216cf84286efed9")
(version "0.1-pre")
(revision "1"))
(package
(name "emacs-org-ql")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alphapapa/org-ql")
(commit commit)))
(sha256
(base32
"0bj85hxhym7rvkaddcxybxdm7g7w439wij9f2w5ljz1hmvp55991"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-s" ,emacs-s)
("emacs-dash" ,emacs-dash)))
(home-page "https://github.com/alphapapa/org-ql")
(synopsis "Query language for Org buffers")
(description "This package provides a Lispy query language for Org
(package
(name "emacs-org-ql")
(version "0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alphapapa/org-ql")
(commit version)))
(sha256
(base32
"1nvzirn1lmgmgl7irbsc1n391a2cw8gmvwm3pa228l2c1gcx8kd8"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-s" ,emacs-s)
("emacs-dash" ,emacs-dash)))
(home-page "https://github.com/alphapapa/org-ql/")
(synopsis "Query language for Org buffers")
(description "This package provides a Lispy query language for Org
files, allowing for actions to be performed based on search criteria.")
(license license:gpl3+))))
(license license:gpl3+)))
(define-public emacs-parsebib
(package
@ -16656,6 +16681,26 @@ (define-public emacs-org-noter
acting like notes that are made @emph{in} the document.")
(license license:gpl3+)))
(define-public emacs-org-redmine
(let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
(package
(name "emacs-org-redmine")
(version (git-version "0.1" "1" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gongo/org-redmine.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
(build-system emacs-build-system)
(home-page "https://github.com/gongo/org-redmine/")
(synopsis "Redmine tools using Emacs")
(description "This program provides an Emacs client for Redmine.")
(license license:gpl3+))))
(define-public emacs-multi-term
(let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4"))
(package
@ -16747,3 +16792,137 @@ (define-public emacs-zerodark-theme
"Zerodark is a dark theme inspired from One Dark and Niflheim.
An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
(license license:gpl3+)))
(define-public emacs-gnus-alias
(package
(name "emacs-gnus-alias")
(version "20150316")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hexmode/gnus-alias.git")
(commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
(file-name (git-file-name name version))
(sha256
(base32
"1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
(build-system emacs-build-system)
(home-page "https://melpa.org/#/gnus-alias")
(synopsis "Alternative to @code{gnus-posting-styles}")
(description "This Emacs add-on provides a simple mechanism to switch
Identities when using a @code{message-mode} or a @code{message-mode} derived
mode. Identities can include @code{From} and @code{Organisation} headers,
extra headers, body and signature. Other features include:
@itemize
@item Switch Identities in a message buffer.
@item Access original message to help determine Identity of the followup/reply
message.
@item Act on a forwarded message as if it were a message being replied to.
@item Start a new message with a given Identity pre-selected.
@end itemize")
(license license:gpl2+)))
(define-public emacs-ox-epub
(package
(name "emacs-ox-epub")
(version "0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ofosos/ox-epub.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
(build-system emacs-build-system)
(home-page "https://github.com/ofosos/ox-epub")
(synopsis "Export org mode projects to EPUB")
(description "@code{ox-epub} extends the (X)HTML exporter to generate
@code{.epub} files directly from OrgMode. This will export EPUB version 2,
which should give broad compatibility. It should also be relatiely easy to
convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
zip utility (default is @code{zip}).")
(license license:gpl3+)))
(define-public emacs-ox-pandoc
(package
(name "emacs-ox-pandoc")
(version "20180510")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kawabata/ox-pandoc.git")
(commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
(file-name (git-file-name name version))
(sha256
(base32
"0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
(build-system emacs-build-system)
(inputs
`(("pandoc" ,ghc-pandoc)))
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-ht" ,emacs-ht)))
(home-page "https://github.com/kawabata/ox-pandoc")
(synopsis "Org exporter for Pandoc")
(description "@code{ox-pandoc} is an exporter for converting Org-mode
files to numerous other formats via Pandoc.")
(license license:gpl3+)))
(define-public emacs-wc-mode
(package
(name "emacs-wc-mode")
(version "1.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bnbeckwith/wc-mode.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
(build-system emacs-build-system)
(home-page "https://github.com/bnbeckwith/wc-mode")
(synopsis "Running word count with goals (minor mode)")
(description "@code{wc-mode} is a minor mode, providing a wc function
for Emacs buffers as well as a modeline addition with live word, line and
character counts. Additionally, a user can set specific goals for adding or
deleting words. These goals were partly inspired by 750words.com where the
goal of the site is to encourage writing by setting a goal of 750 words at a
time.")
(license license:gpl3+)))
(define-public emacs-mastodon
(package
(name "emacs-mastodon")
(version "0.9.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jdenen/mastodon.el.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
(build-system emacs-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; Move the source files to the top level, which is included in
;; the EMACSLOADPATH.
(add-after 'unpack 'move-source-files
(lambda _
(let ((el-files (find-files "./lisp" ".*\\.el$")))
(for-each (lambda (f)
(rename-file f (basename f)))
el-files))
#t)))))
(home-page "https://github.com/jdenen/mastodon.el")
(synopsis "Emacs client for Mastodon")
(description "@code{mastodon.el} is an Emacs client for Mastodon, the
federated microblogging social network.")
(license license:gpl3+)))

View file

@ -13,6 +13,7 @@
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -38,6 +39,7 @@ (define-module (gnu packages finance)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system go)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages base)
@ -712,9 +714,6 @@ (define-public python-trezor-agent
Ledger Nano as a hardware SSH/GPG agent.")
(license license:lgpl3)))
(define-public python2-trezor-agent
(package-with-python2 python-trezor-agent))
(define-public python-mnemonic
(package
(name "python-mnemonic")
@ -810,9 +809,6 @@ (define-public python-trezor
TREZOR Hardware Wallet.")
(license license:lgpl3)))
(define-public python2-trezor
(package-with-python2 python-trezor))
(define-public python-keepkey
(package
(name "python-keepkey")
@ -962,7 +958,7 @@ (define-public python2-stdnum
(define-public python-duniterpy
(package
(name "python-duniterpy")
(version "0.54.3")
(version "0.55.1")
(source
(origin
(method git-fetch)
@ -973,7 +969,7 @@ (define-public python-duniterpy
(file-name (git-file-name name version))
(sha256
(base32
"1k3rpfc9zxj9z50cr4zjfyzdla9ap5mj1v1rlcriqmflgb5cmiba"))))
"07zsbbkzmnvyv5v0vw2d42vw3ar4iqhlidy9376ysk4ldlj1igf7"))))
(build-system python-build-system)
(arguments
;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".
@ -1020,7 +1016,7 @@ (define-public python-duniterpy
(define-public silkaj
(package
(name "silkaj")
(version "0.7.2")
(version "0.7.3")
(source
(origin
(method git-fetch)
@ -1030,7 +1026,7 @@ (define-public silkaj
(file-name (git-file-name name version))
(sha256
(base32
"059k2kil2l8jcm4wp86w1z7y8p26rww7d3l5fzds0qq2dzvkvzgs"))))
"0yk2574yb0d0k0rg7qf0pkmjidblsad04x8hhqpy9k80rvgjcr5w"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;no test
@ -1092,3 +1088,26 @@ (define-public grisbi
information.")
(home-page "http://grisbi.org")
(license license:gpl2+)))
(define-public trezord
(package
(name "trezord")
(version "2.0.17")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/trezor/trezord-go.git")
(commit (string-append "v" version))))
(sha256
(base32
"0nqzpq0i3crh0i4r1cppja5sn3rwi1fv9afxzwzv63096x5l30a7"))
(file-name (git-file-name name version))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/trezor/trezord-go"))
(home-page "https://trezor.io")
(synopsis "Trezor Communication Daemon aka Trezor Bridge (written in Go)")
(description "This allows a Trezor hardware wallet to communicate to the
Trezor wallet.")
(license license:lgpl3+)))

View file

@ -616,7 +616,7 @@ (define-public fontforge
opentype fonts. You can save fonts in many different outline formats, and
generate bitmaps.")
(license license:gpl3+)
(home-page "https://fontforge.github.io/en-US/")))
(home-page "https://fontforge.github.io")))
(define-public python2-ufolib
(package

View file

@ -6756,7 +6756,7 @@ (define-public openclonk
(define-public flare-engine
(package
(name "flare-engine")
(version "1.10")
(version "1.11")
(source (origin
(method git-fetch)
(uri (git-reference
@ -6765,7 +6765,7 @@ (define-public flare-engine
(file-name (git-file-name name version))
(sha256
(base32
"19l83145ya1wk666acr91b6917a63ak7l77d10i5im8xfhv29ml4"))))
"1mqr1s72p5bdh4kq2a8hg72dk8lwnddicjnd2cdp1sbfa9lmjym8"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test
@ -6784,7 +6784,7 @@ (define-public flare-engine
(define-public flare-game
(package
(name "flare-game")
(version "1.10")
(version "1.11")
(source (origin
(method git-fetch)
(uri (git-reference
@ -6793,7 +6793,7 @@ (define-public flare-game
(file-name (git-file-name name version))
(sha256
(base32
"0dx4f1j1n3p4q3h0r0fb89f0llvhg9lia0s247pacff3r88ljihk"))))
"0bd5g7sd89a9176ilr408hdqzdfv4j7wj0idd685c1n6s01c3h6p"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test

View file

@ -48,6 +48,8 @@ (define-module (gnu packages golang)
#:use-module (gnu packages pcre)
#:use-module (gnu packages lua)
#:use-module (gnu packages mp3)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
@ -220,7 +222,7 @@ (define-public go-1.11
(package
(inherit go-1.4)
(name "go")
(version "1.11.10")
(version "1.11.12")
(source
(origin
(method url-fetch)
@ -228,7 +230,7 @@ (define-public go-1.11
name version ".src.tar.gz"))
(sha256
(base32
"06rw962xigbrxblp942jbh7k133blpxg2xfrxi32qdhxkmmfj9yz"))))
"09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases)
@ -401,7 +403,7 @@ (define-public go-1.12
(package
(inherit go-1.4)
(name "go")
(version "1.12.1")
(version "1.12.7")
(source
(origin
(method url-fetch)
@ -409,7 +411,7 @@ (define-public go-1.12
name version ".src.tar.gz"))
(sha256
(base32
"12l12mmgqvy3nbscy7sz83qj4m6iz5a322aq9sk45f7l9ml2gq8b"))))
"04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases)
@ -582,7 +584,7 @@ (define-public go-1.12
,@(package-native-inputs go-1.4)))
(supported-systems %supported-systems)))
(define-public go go-1.11)
(define-public go go-1.12)
(define-public go-github-com-alsm-ioprogress
(let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
@ -768,6 +770,79 @@ (define-public go-github-com-hashicorp-hcl
(home-page "https://github.com/hashicorp/hcl")
(license license:mpl2.0))))
(define-public go-golang-org-x-tools
(let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8")
(revision "0"))
(package
(name "go-golang-org-x-tools")
(version (git-version "0.1.3" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/tools")
(commit commit)))
(file-name (string-append "go.googlesource.com-tools-"
version "-checkout"))
(sha256
(base32
"0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/tools"
;; Source-only package
#:tests? #f
#:phases
(modify-phases %standard-phases
;; Source-only package
(delete 'build))))
(synopsis "Tools that support the Go programming language")
(description "This package provides miscellaneous tools that support the
Go programming language.")
(home-page "https://go.googlesource.com/tools/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto
(let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
(revision "3"))
(package
(name "go-golang-org-x-crypto")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
(build-system go-build-system)
(arguments
'(#:import-path "golang.org/x/crypto"
;; Source-only package
#:tests? #f
#:phases
(modify-phases %standard-phases
;; Source-only package
(delete 'build)
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(propagated-inputs
`(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
(synopsis "Supplementary cryptographic libraries in Go")
(description "This package provides supplementary cryptographic libraries
for the Go language.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-bcrypt
(let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
(revision "3"))
@ -933,8 +1008,8 @@ (define-public go-golang-org-x-crypto-sha3
functions defined by FIPS-202.")))
(define-public go-golang-org-x-net-ipv4
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
(revision "2"))
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
(revision "3"))
(package
(name "go-golang-org-x-net-ipv4")
(version (git-version "0.0.0" revision commit))
@ -946,11 +1021,13 @@ (define-public go-golang-org-x-net-ipv4
(file-name (git-file-name name version))
(sha256
(base32
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/ipv4"
#:unpack-path "golang.org/x/net"))
(propagated-inputs
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
(synopsis "Go IPv4 support")
(description "This package provides @code{ipv4}, which implements IP-level
socket options for the Internet Protocol version 4.")
@ -958,8 +1035,8 @@ (define-public go-golang-org-x-net-ipv4
(license license:bsd-3))))
(define-public go-golang-org-x-net-bpf
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
(revision "2"))
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
(revision "3"))
(package
(name "go-golang-org-x-net-bpf")
(version (git-version "0.0.0" revision commit))
@ -972,11 +1049,13 @@ (define-public go-golang-org-x-net-bpf
version "-checkout"))
(sha256
(base32
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/bpf"
#:unpack-path "golang.org/x/net"))
(propagated-inputs
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
(synopsis "Berkeley Packet Filters (BPF) in Go")
(description "This package provides a Go implementation of the Berkeley
Packet Filter (BPF) virtual machine.")
@ -984,8 +1063,8 @@ (define-public go-golang-org-x-net-bpf
(license license:bsd-3))))
(define-public go-golang-org-x-net-context
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
(revision "2"))
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
(revision "3"))
(package
(name "go-golang-org-x-net-context")
(version (git-version "0.0.0" revision commit))
@ -998,7 +1077,7 @@ (define-public go-golang-org-x-net-context
version "-checkout"))
(sha256
(base32
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/context"
@ -1011,8 +1090,8 @@ (define-public go-golang-org-x-net-context
(license license:bsd-3))))
(define-public go-golang-org-x-net-internal-socks
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
(revision "2"))
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
(revision "3"))
(package
(name "go-golang-org-x-net-internal-socks")
(version (git-version "0.0.0" revision commit))
@ -1025,7 +1104,7 @@ (define-public go-golang-org-x-net-internal-socks
version "-checkout"))
(sha256
(base32
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/internal/socks"
@ -1036,8 +1115,8 @@ (define-public go-golang-org-x-net-internal-socks
(license license:bsd-3))))
(define-public go-golang-org-x-net-internal-socket
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
(revision "2"))
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
(revision "3"))
(package
(name "go-golang-org-x-net-internal-socket")
(version (git-version "0.0.0" revision commit))
@ -1050,19 +1129,21 @@ (define-public go-golang-org-x-net-internal-socket
version "-checkout"))
(sha256
(base32
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/internal/socket"
#:unpack-path "golang.org/x/net"))
(propagated-inputs
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
(synopsis "")
(description "")
(home-page "https://go.googlesource.com/net/")
(license license:bsd-3))))
(define-public go-golang-org-x-net-internal-iana
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
(revision "2"))
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
(revision "3"))
(package
(name "go-golang-org-x-net-internal-iana")
(version (git-version "0.0.0" revision commit))
@ -1075,7 +1156,7 @@ (define-public go-golang-org-x-net-internal-iana
version "-checkout"))
(sha256
(base32
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/internal/iana"
@ -1087,8 +1168,8 @@ (define-public go-golang-org-x-net-internal-iana
(license license:bsd-3))))
(define-public go-golang-org-x-net-ipv6
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
(revision "2"))
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
(revision "3"))
(package
(name "go-golang-org-x-net-ipv6")
(version (git-version "0.0.0" revision commit))
@ -1101,11 +1182,13 @@ (define-public go-golang-org-x-net-ipv6
version "-checkout"))
(sha256
(base32
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/ipv6"
#:unpack-path "golang.org/x/net"))
(propagated-inputs
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
(synopsis "Go IPv6 support")
(description "This package provides @code{ipv6}, which implements
IP-level socket options for the Internet Protocol version 6.")
@ -1113,8 +1196,8 @@ (define-public go-golang-org-x-net-ipv6
(license license:bsd-3))))
(define-public go-golang-org-x-net-proxy
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
(revision "2"))
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
(revision "3"))
(package
(name "go-golang-org-x-net-proxy")
(version (git-version "0.0.0" revision commit))
@ -1127,7 +1210,7 @@ (define-public go-golang-org-x-net-proxy
version "-checkout"))
(sha256
(base32
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/proxy"
@ -1139,8 +1222,8 @@ (define-public go-golang-org-x-net-proxy
(license license:bsd-3))))
(define-public go-golang-org-x-sys-unix
(let ((commit "4d1cda033e0619309c606fc686de3adcf599539e")
(revision "2"))
(let ((commit "5ed2794edfdc1c54dfb61d619c5944285f35d444")
(revision "3"))
(package
(name "go-golang-org-x-sys-unix")
(version (git-version "0.0.0" revision commit))
@ -1152,7 +1235,7 @@ (define-public go-golang-org-x-sys-unix
(file-name (git-file-name name version))
(sha256
(base32
"1wgaldbnkmh568v8kkgvnmkskaj96fqrbzhx23yji2kh1432q6gh"))))
"1qy8hmv5nwpcywk7sh1pg0s32jwpd4ykh492xzl4mmxy8galwsr5"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/sys/unix"
@ -1174,59 +1257,55 @@ (define-public go-golang-org-x-sys-cpu
(description "Thi spackage provides @code{cpu}, which offers tools for CPU
feature detection in Go.")))
(define-public go-golang-org-x-text-encoding
(package
(name "go-golang-org-x-text-encoding")
(version "0.3.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/text")
(commit (string-append "v" version))))
(file-name (string-append "go.googlesource.com-text-"
version "-checkout"))
(sha256
(base32
"0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/text/encoding"
#:unpack-path "golang.org/x/text"))
(synopsis "Interface for character encodings for conversion to and from
UTF-8")
(description "This package defines an interface for character encodings.
Specific implementations of encoding for CJK text as well as simple character
encodings are provided in subpackages.")
(home-page "https://go.googlesource.com/text")
(license license:bsd-3)))
(define-public go-golang-org-x-text-transform
(let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
(revision "1"))
(package
(name "go-golang-org-x-text-transform")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/text")
(commit commit)))
(file-name (string-append "go.googlesource.com-text-"
version "-checkout"))
(sha256
(base32
"1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/text/transform"
#:unpack-path "golang.org/x/text"))
(synopsis "Go text transformation")
(description "This package provides @code{transform}, which provides
(package
(inherit go-golang-org-x-text-encoding)
(name "go-golang-org-x-text-transform")
(arguments
`(#:import-path "golang.org/x/text/transform"
#:unpack-path "golang.org/x/text"))
(synopsis "Go text transformation")
(description "This package provides @code{transform}, which provides
reader and writer wrappers that transform the bytes passing through. Example
transformations provided by other packages include normalization and conversion
between character sets.")
(home-page "https://go.googlesource.com/text")
(license license:bsd-3))))
between character sets.")))
(define-public go-golang-org-x-text-unicode-norm
(let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
(revision "1"))
(package
(name "go-golang-org-x-text-unicode-norm")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/text")
(commit commit)))
(file-name (string-append "go.googlesource.com-text-"
version "-checkout"))
(sha256
(base32
"1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/text/unicode/norm"
#:unpack-path "golang.org/x/text"))
(synopsis "Unicode normalization in Go")
(description "This package provides @code{norm}, which contains types and
functions for normalizing Unicode strings.")
(home-page "https://go.googlesource.com/text")
(license license:bsd-3))))
(package
(inherit go-golang-org-x-text-encoding)
(name "go-golang-org-x-text-unicode-norm")
(arguments
`(#:import-path "golang.org/x/text/unicode/norm"
#:unpack-path "golang.org/x/text"))
(synopsis "Unicode normalization in Go")
(description "This package provides @code{norm}, which contains types and
functions for normalizing Unicode strings.")))
(define-public go-golang-org-x-time-rate
(let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
@ -1292,12 +1371,11 @@ (define-public go-github-com-burntsushi-toml
(license license:expat)))
(define-public go-github-com-getsentry-raven-go
(let ((commit
"dffeb57df75d6a911f00232155194e43d79d38d7")
(let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
(revision "0"))
(package
(name "go-github-com-getsentry-raven-go")
(version (git-version "0.0.0" revision commit))
(version (git-version "0.2.0" revision commit))
(source
(origin
(method git-fetch)
@ -1307,14 +1385,16 @@ (define-public go-github-com-getsentry-raven-go
(file-name (git-file-name name version))
(sha256
(base32
"13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"))))
"0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/getsentry/raven-go"))
(home-page
"https://github.com/getsentry/raven-go")
(propagated-inputs
`(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
(home-page "https://github.com/getsentry/raven-go")
(synopsis "Sentry client in Go")
(description "This package is Go client API for the Sentry event/error
(description "This package is a Go client API for the Sentry event/error
logging system.")
(license license:bsd-3))))
@ -1859,11 +1939,11 @@ (define-public go-github-com-gorhill-cronexpr
license:asl2.0)))))
(define-public go-gopkg-in-check-v1
(let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
(revision "0"))
(let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
(revision "1"))
(package
(name "go-gopkg-in-check-v1")
(version (git-version "0.0.0" revision commit))
(version (git-version "1.0.0" revision commit))
(source
(origin
(method git-fetch)
@ -1873,43 +1953,42 @@ (define-public go-gopkg-in-check-v1
(file-name (git-file-name name version))
(sha256
(base32
"0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
"0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
(build-system go-build-system)
(arguments
'(#:import-path "gopkg.in/check.v1"))
(propagated-inputs
`(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
(home-page "https://gopkg.in/check.v1")
(synopsis "Test framework for the Go language")
(description
"This package provides a test library for the Go language.")
(description "This package provides a test library for the Go language.")
(license license:asl2.0))))
(define-public go-gopkg-in-yaml-v2
(let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
(revision "0"))
(package
(name "go-gopkg-in-yaml-v2")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gopkg.in/yaml.v2.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
(build-system go-build-system)
(arguments
'(#:import-path "gopkg.in/yaml.v2"))
(native-inputs
`(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
(home-page "https://gopkg.in/yaml.v2")
(synopsis "YAML reader and writer for the Go language")
(description
"This package provides a Go library for encode and decode YAML
(package
(name "go-gopkg-in-yaml-v2")
(version "2.2.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gopkg.in/yaml.v2.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
(build-system go-build-system)
(arguments
'(#:import-path "gopkg.in/yaml.v2"))
(native-inputs
`(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
(home-page "https://gopkg.in/yaml.v2")
(synopsis "YAML reader and writer for the Go language")
(description
"This package provides a Go library for encode and decode YAML
values.")
(license license:asl2.0))))
(license license:asl2.0)))
(define-public go-github-com-mattn-go-isatty
(package
@ -3238,6 +3317,171 @@ (define-public go-github-com-kr-text
(home-page "https://github.com/kr/text")
(license license:expat)))
(define-public go-golang-org-sql-mock
(let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
(version "1.3.3")
(revision "1"))
(package
(name "go-golang-org-sql-mock")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/DATA-DOG/go-sqlmock")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/DATA-DOG/go-sqlmock"))
(synopsis "Mock library implementing @code{sql/driver}")
(description "This library simulates SQL-driver behavior in tests
without requiring a real database connection.")
(home-page "https://github.com/DATA-DOG/go-sqlmock")
(license license:expat))))
(define-public go-golang-org-colorful
(package
(name "go-golang-org-colorful")
(version "1.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lucasb-eyer/go-colorful")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/lucasb-eyer/go-colorful"))
(native-inputs
`(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
(synopsis "Convert between colorspaces and generate colors")
(description "This package implements Go's @code{color.Color} interface
and provides a means of converting colors stored as RGB to various
colorspaces.")
(home-page "https://github.com/lucasb-eyer/go-colorful")
(license license:expat)))
(define-public go-github-com-gdamore-encoding
(package
(name "go-github-com-gdamore-encoding")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gdamore/encoding")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/gdamore/encoding"))
(inputs
`(("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)))
(home-page "https://github.com/gdamore/encoding")
(synopsis "Provide encodings missing from Go")
(description "This package provides useful encodings not included in the
standard @code{Text} package, including some for dealing with I/O streams from
non-UTF-friendly sources.")
(license license:expat)))
(define-public go-github-com-gdamore-tcell
(let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
(version "1.1.2")
(revision "1"))
(package
(name "go-github-com-gdamore-tcell")
(version (git-version version revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gdamore/tcell")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/gdamore/tcell"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-files-writable
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure .gz files are writable so that the
;; 'reset-gzip-timestamps' phase can do its work.
(let ((out (assoc-ref outputs "out")))
(for-each make-file-writable
(find-files out "\\.gz$"))
#t))))))
(inputs
`(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
("go-golang-org-colorful" ,go-golang-org-colorful)
("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
(home-page "https://github.com/gdamore/tcell")
(synopsis "Provide a cell-based view for text terminals")
(description "This package includes a full parser and expander for
terminfo capability strings to avoid hard-coding escape strings for
formatting. It also favors portability, and includes support for all POSIX
systems.")
(license license:expat))))
(define-public go-github-com-mattn-go-shellwords
(let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
(version "1.0.5")
(revision "1"))
(package
(name "go-github-com-mattn-go-shellwords")
(version (git-version version revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattn/go-shellwords")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/mattn/go-shellwords"
;; TODO: can't make homeless-shelter:
;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
;; initialization failure: mkdir /homeless-shelter: permission denied
;; This doesn't seem to work:
;; #:phases
;; (modify-phases %standard-phases
;; (replace 'check
;; (lambda* (#:key import-path #:allow-other-keys)
;; (setenv "HOME" "/tmp")
;; (invoke "go" "test" import-path))))
;; TODO: There are also a couple of tests that have stymied Debian in
;; the past. They seem to work when run locally.
#:tests? #f
))
(home-page "https://github.com/mattn/go-shellwords")
(synopsis "Parse lines into shell words")
(description "This package parses text into shell arguments. Based on
the @code{cpan} module @code{Parse::CommandLine}.")
(license license:expat))))
(define-public go-github-com-burntsushi-locker
(let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
(revision "0"))
@ -3271,3 +3515,128 @@ (define-public go-github-com-burntsushi-locker
All locks are implemented with read-write mutexes. To use them like a regular
mutex, simply ignore the RLock/RUnlock functions.")
(license license:unlicense))))
(define-public go-github-com-marten-seemann-qtls
(package
(name "go-github-com-marten-seemann-qtls")
(version "0.2.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/marten-seemann/qtls")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/marten-seemann/qtls"
;; The test suite requires networking.
#:tests? #f))
(propagated-inputs
`(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
(synopsis "TLS 1.3 with QUIC in Go")
(description "This package provides @code{qtls}, a QUIC-capable variant of
the Go standard library's TLS 1.3 implementation.")
(home-page "https://github.com/marten-seemann/qtls")
(license license:bsd-3)))
(define-public go-github-com-cheekybits-genny
(package
(name "go-github-com-cheekybits-genny")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cheekybits/genny")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/cheekybits/genny"))
(propagated-inputs
`(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
(synopsis "Generics for Go")
(description "This package provides @code{genny}, a Go language
implementation of generics.")
(home-page "https://github.com/cheekybits/genny/")
(license license:expat)))
(define-public go-github-com-lucas-clemente-quic-go
(package
(name "go-github-com-lucas-clemente-quic-go")
(version "0.11.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lucas-clemente/quic-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/lucas-clemente/quic-go"
;; XXX More packages required...
#:tests? #f))
(propagated-inputs
`(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)))
(synopsis "QUIC in Go")
(description "This package provides a Go language implementation of the QUIC
network protocol.")
(home-page "https://github.com/lucas-clemente/quic-go")
(license license:expat)))
(define-public go-github-com-pkg-errors
(let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7")
(revision "0"))
(package
(name "go-github-com-pkg-errors")
(version (git-version "0.8.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pkg/errors.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/pkg/errors"))
(synopsis "Go error handling primitives")
(description "This package provides @code{error}, which offers simple
error handling primitives in Go.")
(home-page "https://github.com/pkg/errors")
(license license:bsd-2))))
(define-public go-github-com-maruel-panicparse
(package
(name "go-github-com-maruel-panicparse")
(version "1.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/maruel/panicparse")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"05hf68ifb7ww4rpmxyywbj9r0kyap45p1273ncq4qy2ydv042l8j"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/maruel/panicparse"))
(synopsis "Toolkit for parsing Go stack traces")
(description "This package provides a toolkit for parsing Go language panic
stack traces. It simplifies the traces to make salient information more visible
and aid debugging.")
(home-page "https://github.com/maruel/panicparse")
(license license:asl2.0)))

View file

@ -80,16 +80,14 @@ (define-module (gnu packages graphics)
(define-public blender
(package
(name "blender")
(version "v2.80-rc1")
(version "2.80")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.blender.org/blender.git")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "https://download.blender.org/source/"
"blender-" version ".tar.gz"))
(sha256
(base32
"11dcf0rjq42mpphk8r8cy7gvhzzl1cj1vslp98ibh8sdjzaz2mdq"))))
"1h550jisdbis50hxwk5kxrvrk1a6sh2fsri3yyj66vhzbi87x7fd"))))
(build-system cmake-build-system)
(arguments
(let ((python-version (version-major+minor (package-version python))))
@ -162,9 +160,7 @@ (define-public blender
"Blender is a 3D graphics creation suite. It supports the entirety of
the 3D pipelinemodeling, rigging, animation, simulation, rendering,
compositing and motion tracking, even video editing and game creation. The
application can be customized via its API for Python scripting.
WARNING: This is a release candidate build of Blender.")
application can be customized via its API for Python scripting.")
(license license:gpl2+)))
(define-public blender-2.79

View file

@ -300,29 +300,27 @@ (define-public guile-2.2.6
(define-public guile-next
;; This is the upcoming Guile 3.0, with JIT support.
(let ((commit "6f3357b0df64c4be17e72079864c09a542f1c779")
(revision "1"))
(package
(inherit guile-2.2)
(name "guile-next")
(version "2.9.2")
(source (origin
(inherit (package-source guile-2.2))
(uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-"
version ".tar.xz"))
(sha256
(base32
"1w358df2wmcyzk2ziqrj2zhwqisaqraqfa3008ay23nf1a7bw0z4"))))
(native-search-paths
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
(files '("share/guile/site/3.0")))
(search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH")
(files '("lib/guile/3.0/site-ccache"
"share/guile/site/3.0")))))
(properties '((ftp-server . "alpha.gnu.org")
(upstream-name . "guile"))))))
(package
(inherit guile-2.2)
(name "guile-next")
(version "2.9.3")
(source (origin
(inherit (package-source guile-2.2))
(uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-"
version ".tar.xz"))
(sha256
(base32
"14990wcpysgw58kij03wbgiggmi5z94jmy7wdcqnn6ny7cimkkgr"))))
(native-search-paths
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
(files '("share/guile/site/3.0")))
(search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH")
(files '("lib/guile/3.0/site-ccache"
"share/guile/site/3.0")))))
(properties '((ftp-server . "alpha.gnu.org")
(upstream-name . "guile")))))
(define (make-guile-readline guile)
(package

View file

@ -64,7 +64,7 @@ (define-module (gnu packages image-viewers)
(define-public feh
(package
(name "feh")
(version "3.1.3")
(version "3.2.1")
(home-page "https://feh.finalrewind.org/")
(source (origin
(method url-fetch)
@ -72,7 +72,7 @@ (define-public feh
name "-" version ".tar.bz2"))
(sha256
(base32
"1vsnxf4as3vyzjfhd8frzb1a8i7wnq7ck5ljx7qxqrnfqvxl1s4z"))))
"070axq8jpibcabmjfv4fmjmpk3k349vzvh4qhsi4n62bkcwl35wg"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases (delete 'configure))

View file

@ -250,8 +250,8 @@ (define-public pngcrush
("zlib" , zlib)))
(home-page "https://pmt.sourceforge.io/pngcrush")
(synopsis "Utility to compress PNG files")
(description "pngcrusqh is an optimizer for PNG (Portable Network Graphics)
files. It can compress them as much as 40% losslessly.")
(description "Pngcrush optimizes @acronym{PNG, Portable Network Graphics}
images. It can further losslessly compress them by as much as 40%.")
(license license:zlib)))
(define-public pngcrunch

View file

@ -320,7 +320,7 @@ (define-public kdevplatform
(define-public krita
(package
(name "krita")
(version "4.2.2")
(version "4.2.5")
(source (origin
(method url-fetch)
(uri (string-append
@ -329,7 +329,7 @@ (define-public krita
"/krita-" version ".tar.gz"))
(sha256
(base32
"1pzk5bqp3kh22djhvsvmsc7ybirs4hsnkpg1y9677m2gxwbqnnps"))))
"1f14r2mrqasl6nr3sss0xy2h8xlxd5wdcjcd64m9nz2gwlm39r7w"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f

View file

@ -271,7 +271,7 @@ (define-public fstrcmp
(define-public kodi
(package
(name "kodi")
(version "18.2")
(version "18.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -280,7 +280,7 @@ (define-public kodi
(file-name (git-file-name name version))
(sha256
(base32
"1yzi8171p1mnszyf80lqkl05ql25n73s5gn8pcgvv4jph4yvasnq"))
"18fbl5hs3aqccrn0m3x7hp95wlafjav0yvrwmb5q3gj24mwf6jld"))
(patches (search-patches "kodi-skip-test-449.patch"
"kodi-set-libcurl-ssl-parameters.patch"))
(snippet

View file

@ -182,31 +182,31 @@ (define (linux-libre-deblob-scripts version
(define deblob-scripts-5.2
(linux-libre-deblob-scripts
"5.2.1"
"5.2.3"
(base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa")
(base32 "030cccchli7vnzvxcw261spyzsgnq0m113bjsz8y4vglf6gaz4n9")))
(base32 "0d3pp1bqchqc7vnxr1a56km5r0hzjiiipzz2xc3wgjwfi51k9kxc")))
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
"4.19.59"
"4.19.61"
(base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
(base32 "07z1bsyny8lldncfh27lb16mgx9r38nswx4vmd24c7n4xva12k2s")))
(base32 "1fyacg28aym6virxyn7wk99qil2fjbks3iwm7p3hxy51pccn34za")))
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
"4.14.133"
"4.14.134"
(base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
(base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n")))
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
"4.9.185"
"4.9.186"
(base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
(base32 "1gmjn5cwxydg6qb47wcmahwkv37npsjx4papynzkkdxyidmrccya")))
(define deblob-scripts-4.4
(linux-libre-deblob-scripts
"4.4.185"
"4.4.186"
(base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
(base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10")))
@ -312,7 +312,7 @@ (define (make-linux-libre-source version
(format #t "~%Packing new Linux-libre tarball...~%")
(force-output)
(invoke "tar" "cfa" #$output
(invoke "tar" "cvfa" #$output
;; Avoid non-determinism in the archive.
"--mtime=@0"
"--owner=root:0"
@ -350,26 +350,26 @@ (define (%upstream-linux-source version hash)
"linux-" version ".tar.xz"))
(sha256 hash)))
(define-public linux-libre-5.2-version "5.2.2")
(define-public linux-libre-5.2-version "5.2.5")
(define-public linux-libre-5.2-pristine-source
(let ((version linux-libre-5.2-version)
(hash (base32 "173da67d51qcjwrczqsfd6g9phzazqzr11xfxwlf54ckd6117ng5")))
(hash (base32 "15ndscsp3yqgas901g6inpmyvinz4cwr5y3md516j2pr8cl40if6")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.2)))
(define-public linux-libre-4.19-version "4.19.60")
(define-public linux-libre-4.19-version "4.19.63")
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
(hash (base32 "0ibayrvrnw2lw7si78vdqnr20mm1d3z0g6a0ykndvgn5vdax5x9a")))
(hash (base32 "0pfjwpa6szvdr941y13806hlsgsbslfsvkrd5534p1iip5h8g63m")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.134")
(define-public linux-libre-4.14-version "4.14.135")
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
(hash (base32 "0b9xj1rwr5fpw2giirfghzxxc0wp1hwf4nqvalx314pxxysyf88b")))
(hash (base32 "0x2v0pj4hjb71qkxbqn4ymg6zmyabp91kylyzd270nbig7i234a2")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
@ -561,7 +561,9 @@ (define* (kernel-config-veyron arch #:key variant)
(search-auxiliary-file file)))
(define %default-extra-linux-options
`(;; Modules required for initrd:
`(;; Some very mild hardening.
("CONFIG_SECURITY_DMESG_RESTRICT" . #t)
;; Modules required for initrd:
("CONFIG_NET_9P" . m)
("CONFIG_NET_9P_VIRTIO" . m)
("CONFIG_VIRTIO_BLK" . m)
@ -3820,7 +3822,7 @@ (define-public gpm
(define-public btrfs-progs
(package
(name "btrfs-progs")
(version "5.1.1")
(version "5.2.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
@ -3828,7 +3830,7 @@ (define-public btrfs-progs
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
"06xybs7rglxjqkbzl2409acb3rgmnc5zc0xhyaxsc2p1x5yipfcw"))))
"0crjv3i20nyj2dagfw6q7byshscpn6j7wlqch3apkzzzk00lmb1n"))))
(build-system gnu-build-system)
(outputs '("out"
"static")) ; static versions of the binaries in "out"
@ -4611,7 +4613,7 @@ (define-public mcelog
(define-public mtd-utils
(package
(name "mtd-utils")
(version "2.0.2")
(version "2.1.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -4619,17 +4621,19 @@ (define-public mtd-utils
"mtd-utils-" version ".tar.bz2"))
(sha256
(base32
"1f30jszknc5v6ykmil8ajxgksmcg54q3rsp84jsancp9x0dycggv"))))
"1lijl89l7hljx8xx70vrz9srd3h41v5gh4b0lvqnlv831yvyh5cd"))))
(arguments
'(#:configure-flags '("--enable-unit-tests")))
(native-inputs
`(("cmocka" ,cmocka)
("pkg-config" ,pkg-config)))
(inputs
`(("acl" ,acl) ; for XATTR
`(("acl" ,acl) ; extended attributes (xattr)
("libuuid" ,util-linux)
("lzo" ,lzo)
("zlib" ,zlib)))
("openssl" ,openssl) ; optional crypto support
("zlib" ,zlib)
("zstd" ,zstd "lib")))
(build-system gnu-build-system)
(synopsis "MTD Flash Storage Utilities")
(description "This package provides utilities for testing, partitioning, etc

View file

@ -6563,7 +6563,90 @@ (define-public sbcl-trivia
("trivia.cffi" ,sbcl-trivia.cffi)
("optima" ,sbcl-optima)))
(arguments
`(#:test-asd-file "trivia.test.asd"))
`(#:test-asd-file "trivia.test.asd"
#:phases
(modify-phases %standard-phases
(add-after 'create-asd 'remove-component
;; XXX: The original .asd has no components, but our build system
;; creates an entry nonetheless. We need to remove it for the
;; generated .asd to load properly. See trivia.trivial for a
;; similar problem.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
(substitute* asd
((" :components
")
""))
(substitute* asd
((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
""))))))))
(description "Trivia is a pattern matching compiler that is compatible
with Optima, another pattern matching library for Common Lisp. It is meant to
be faster and more extensible than Optima.")))
(define-public sbcl-mk-string-metrics
(package
(name "sbcl-mk-string-metrics")
(version "0.1.2")
(home-page "https://github.com/cbaggers/mk-string-metrics/")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(sha256
(base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
(file-name (git-file-name name version))))
(build-system asdf-build-system/sbcl)
(synopsis "Calculate various string metrics efficiently in Common Lisp")
(description "This library implements efficient algorithms that calculate
various string metrics in Common Lisp:
@itemize
@item Damerau-Levenshtein distance
@item Hamming distance
@item Jaccard similarity coefficient
@item Jaro distance
@item Jaro-Winkler distance
@item Levenshtein distance
@item Normalized Damerau-Levenshtein distance
@item Normalized Levenshtein distance
@item Overlap coefficient
@end itemize\n")
(license license:x11)))
(define-public sbcl-cl-str
(let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
(package
(name "sbcl-cl-str")
(version (git-version "0.8" "1" commit))
(home-page "https://github.com/vindarel/cl-str")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
(file-name (git-file-name name version))))
(build-system asdf-build-system/sbcl)
(inputs
`(("cl-ppcre" ,sbcl-cl-ppcre)
("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
(native-inputs
`(("prove" ,sbcl-prove)
("prove-asdf" ,sbcl-prove-asdf)))
(arguments
`(#:asd-file "str.asd"
#:asd-system-name "str"
#:test-asd-file "str.test.asd"))
(synopsis "Modern, consistent and terse Common Lisp string manipulation library")
(description "A modern and consistent Common Lisp string manipulation
library that focuses on modernity, simplicity and discoverability:
@code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
@code{str:concat strings} instead of an unusual format construct; one
discoverable library instead of many; consistency and composability, where
@code{s} is always the last argument, which makes it easier to feed pipes and
arrows.")
(license license:expat))))

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2014, 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
@ -95,6 +95,7 @@ (define-module (gnu packages mail)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@ -116,6 +117,7 @@ (define-module (gnu packages mail)
#:use-module (gnu packages w3m)
#:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xml)
#:use-module ((guix licenses)
@ -1119,7 +1121,8 @@ (define-public claws-mail
("libxml2" ,libxml2)
("perl" ,perl)
("python-2" ,python-2)
("mime-info" ,shared-mime-info)))
("mime-info" ,shared-mime-info)
("startup-notification" ,startup-notification)))
(arguments
'(#:configure-flags
'("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant"
@ -1195,7 +1198,7 @@ (define-public msmtp
(define-public exim
(package
(name "exim")
(version "4.92")
(version "4.92.1")
(source
(origin
(method url-fetch)
@ -1204,7 +1207,7 @@ (define-public exim
(string-append "https://ftp.exim.org/pub/exim/exim4/old/exim-"
version ".tar.bz2")))
(sha256
(base32 "127spqn009wa6irp6r1k7a24r8vdwb6mf0raamxn8lbxsnrwy7sl"))))
(base32 "132zmxgzz35xwi89g3crw6hd3y74rxj5zcpamakvrnlcn256amdp"))))
(build-system gnu-build-system)
(inputs
`(("bdb" ,bdb-5.3) ; #error Version 6 and later BDB API is not supported
@ -1900,6 +1903,136 @@ (define-public perl-mail-spf
in Perl.")
(license bsd-3)))
(define-public perl-mail-authenticationresults
(package
(name "perl-mail-authenticationresults")
(version "1.20180923")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/M/MB/MBRADSHAW/"
"Mail-AuthenticationResults-" version ".tar.gz"))
(sha256
(base32
"1g1wym9vcbhldwvi4w5pl0fhd4jh2icj975awf4wr5xmkli9mxbz"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-exception" ,perl-test-exception)))
(home-page "https://metacpan.org/release/Mail-AuthenticationResults")
(synopsis "Object Oriented Authentication-Results Headers")
(description "Mail::AuthenticationResults parses the message header field
that indicates the message authentication status as per RFC7601. This module
is not fully compliant with the RFC but it tries to implement most styles of
Authentication-Results header seen in the wild.")
(license perl-license)))
(define-public perl-mail-dkim
(package
(name "perl-mail-dkim")
(version "0.55")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-"
version
".tar.gz"))
(sha256
(base32
"18nsh1ff6fkns4xk3y2ixmzmadgggydj11qkzj6nlnq2hzqxsafz"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
("perl-mailtools" ,perl-mailtools)
("perl-net-dns" ,perl-net-dns)))
(native-inputs
`(("perl-net-dns-resolver-mock" ,perl-net-dns-resolver-mock)
("perl-test-requiresinternet" ,perl-test-requiresinternet)
("perl-yaml-libyaml" ,perl-yaml-libyaml)))
(home-page "https://metacpan.org/release/Mail-DKIM")
(synopsis "Signs/verifies Internet mail with DKIM/DomainKey signatures")
(description "Mail::DKIM is a Perl module that implements the new Domain
Keys Identified Mail (DKIM) standard, and the older Yahoo! DomainKeys standard,
both of which sign and verify emails using digital signatures and DNS records.
Mail-DKIM can be used by any Perl program that wants to provide support for
DKIM and/or DomainKeys.")
(license gpl3+)))
(define-public dkimproxy
(package
(name "dkimproxy")
(version "1.4.1")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/dkimproxy/dkimproxy/"
version "/dkimproxy-" version ".tar.gz"))
(sha256
(base32
"1gc5c7lg2qrlck7b0lvjfqr824ch6jkrzkpsn0gjvlzg7hfmld75"))
(patches
(search-patches "dkimproxy-add-ipv6-support.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'make-wrapper
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(wrap.pl (lambda (scripts keys)
(for-each
(lambda (script)
(wrap-program (string-append out script)
`("PERL5LIB" ":" prefix
,(map (λ (input)
(string-append
(assoc-ref inputs input)
"/lib/perl5/site_perl"))
keys))))
scripts))))
(wrap.pl (list "/bin/dkimproxy.in"
"/bin/dkimproxy.out")
(list "perl-crypt-openssl-rsa"
"perl-io-socket-inet6"
"perl-mailtools"
"perl-mail-authenticationresults"
"perl-mail-dkim"
"perl-net-dns"
"perl-net-server"
"perl-socket6"))
(wrap.pl (list "/bin/dkim_responder.pl")
(list "perl-crypt-openssl-rsa"
"perl-mail-dkim"
"perl-mailtools"
"perl-mime-tools"
"perl-net-dns"
"perl-timedate"))
#t))))))
(inputs
`(("perl" ,perl)
("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
("perl-io-socket-inet6" ,perl-io-socket-inet6)
("perl-mailtools" ,perl-mailtools)
("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
("perl-mail-dkim" ,perl-mail-dkim)
("perl-mime-tools" ,perl-mime-tools)
("perl-net-dns" ,perl-net-dns)
("perl-net-server" ,perl-net-server)
("perl-socket6" ,perl-socket6)
("perl-timedate" ,perl-timedate)))
(home-page "http://dkimproxy.sourceforge.net/")
(synopsis "SMTP proxy to sign and verify Internet mail with DKIM headers")
(description
"DKIMproxy is an SMTP proxy that signs and verifies Internet mail using the
@code{Mail::DKIM} Perl module. It comprises two separate proxies: an outbound
proxy for signing outgoing email, and an inbound proxy for verifying signatures
of incoming messages.
It was designed for Postfix, but can be used to add DKIM support to nearly any
existing mail server. With Postfix, the proxies can operate as either
@code{Before-Queue} or @code{After-Queue} content filters.")
(license gpl2+)))
(define-public mb2md
(package
(name "mb2md")

View file

@ -162,7 +162,7 @@ (define-public man-db
(define-public man-pages
(package
(name "man-pages")
(version "5.01")
(version "5.02")
(source
(origin
(method url-fetch)
@ -172,7 +172,7 @@ (define-public man-pages
(string-append "mirror://kernel.org/linux/docs/man-pages/Archive/"
"man-pages-" version ".tar.xz")))
(sha256
(base32 "09xn8d8xxwgms6h1bvjlgn3mxz51vxf3ra0ry9f5dqi29qry3z3x"))))
(base32 "1s4pdz2pwf0kvhdwx2s6lqn3xxzi38yz5jfyq5ymdmswc9gaiyn2"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases (delete 'configure))

View file

@ -64,12 +64,11 @@ (define-public gmp
(else '())))))
(synopsis "Multiple-precision arithmetic library")
(description
"@dfn{GMP} (the GNU Multiple Precision Arithmetic Library) is a library for
arbitrary-precision arithmetic, operating on signed integers, rational numbers
and floating point numbers. The precision is only limited by the available
memory. The library is highly optimized, with a design focus on execution
speed. It is aimed at use in, for example, cryptography and computational
algebra.")
"The @acronym{GMP, the GNU Multiple Precision Arithmetic} library performs
arbitrary-precision arithmetic on signed integers, rational numbers and floating
point numbers. The precision is only limited by the available memory.
The library is highly optimized, with a design focus on execution speed.
It is aimed at use in, for example, cryptography and computational algebra.")
(license lgpl3+)
(home-page "https://gmplib.org/")))
@ -105,7 +104,7 @@ (define-public mpfr
(propagated-inputs `(("gmp" ,gmp))) ; <mpfr.h> refers to <gmp.h>
(synopsis "C library for arbitrary-precision floating-point arithmetic")
(description
"GNU@tie{}@dfn{MPFR} (Multiple Precision Floating-Point Reliably) is a C
"GNU@tie{}@acronym{MPFR, Multiple Precision Floating-Point Reliably} is a C
library for performing multiple-precision, floating-point computations with
correct rounding.")
(license lgpl3+)
@ -128,8 +127,8 @@ (define-public mpc
("mpfr" ,mpfr)))
(synopsis "C library for arbitrary-precision complex arithmetic")
(description
"GNU@tie{}@dfn{MPC} (Multiple Precision Complex library) is a C library for
performing arithmetic on complex numbers. It supports arbitrarily high
"GNU@tie{}@acronym{MPC, Multiple Precision Complex library} is a C library
for performing arithmetic on complex numbers. It supports arbitrarily high
precision and correctly rounds the results.")
(license lgpl3+)
(home-page "http://multiprecision.org/mpc/")))
@ -150,11 +149,11 @@ (define-public mpfi
("mpfr" ,mpfr)))
(synopsis "C library for arbitrary-precision interval arithmetic")
(description
"@dfn{MPFI} (Multiple Precision Floating-point Interval) is a portable C
"@acronym{MPFI, Multiple Precision Floating-point Interval} is a portable C
library for arbitrary-precision interval arithmetic, with intervals represented
using MPFR reliable floating-point numbers. It's based on the @dfn{GMP} (GNU
Multiple Precision Arithmetic) and GNU@tie{}@dfn{MPFR} (Multiple Precision
Floating-Point Reliably) libraries.
using MPFR reliable floating-point numbers. It's based on the @acronym{GMP, GNU
Multiple Precision Arithmetic} and GNU@tie{}@acronym{MPFR, Multiple Precision
Floating-Point Reliably} libraries.
The purpose of arbitrary-precision interval arithmetic is to get results that
are both guaranteed, thanks to interval computation, and accurate, thanks to

View file

@ -28,6 +28,7 @@
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@ -593,14 +594,14 @@ (define-public whois
(define-public wireshark
(package
(name "wireshark")
(version "3.0.2")
(version "3.0.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.wireshark.org/download/src/wireshark-"
version ".tar.xz"))
(sha256
(base32 "0fz5lbyiw4a27fqc4ndi1w20bpcb6wi9k7vjv29l9fhd99kca7ky"))))
(base32 "0711jilp9sbgi46d105m3galw8n4wk5yncawi08031qxg2f754mg"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@ -1081,6 +1082,29 @@ (define-public perl-net-dns-resolver-programmable
offline emulation of DNS.")
(license license:perl-license)))
(define-public perl-net-dns-resolver-mock
(package
(name "perl-net-dns-resolver-mock")
(version "1.20171219")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/M/MB/MBRADSHAW/"
"Net-DNS-Resolver-Mock-" version ".tar.gz"))
(sha256
(base32
"0m3rxpkv1b9121srvbqkrgzg4m8mnydiydqv34in1i1ixwrl6jn9"))))
(build-system perl-build-system)
(inputs
`(("perl-net-dns" ,perl-net-dns)))
(home-page "https://metacpan.org/release/Net-DNS-Resolver-Mock")
(synopsis "Mock DNS Resolver object for testing")
(description
"Net::DNS::Resolver::Mock is a subclass of Net::DNS::Resolver, but returns
static data from any provided DNS zone file instead of querying the network.
It is intended primarily for use in testing.")
(license license:perl-license)))
(define-public perl-netaddr-ip
(package
(name "perl-netaddr-ip")

View file

@ -0,0 +1,75 @@
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Fri, 01 Mar 2019 20:51:32 +0100
Subject: [PATCH] dkimproxy: Add IPv6 support.
The following patch was copied verbatim from Debian[0].
[0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656041
---
--- dkimproxy-1.4.1.orig/lib/MSDW/SMTP/Server.pm
+++ dkimproxy-1.4.1/lib/MSDW/SMTP/Server.pm
@@ -11,7 +11,7 @@
# Written by Bennett Todd <bet@rahul.net>
package MSDW::SMTP::Server;
-use IO::Socket;
+use IO::Socket::INET6;
use IO::File;
=head1 NAME
@@ -88,14 +88,14 @@
=item new(interface => $interface, port => $port);
The interface and port to listen on must be specified. The interface
-must be a valid numeric IP address (0.0.0.0 to listen on all
-interfaces, as usual); the port must be numeric. If this call
-succeeds, it returns a server structure with an open
-IO::Socket::INET in it, ready to listen on. If it fails it dies, so
-if you want anything other than an exit with an explanatory error
-message, wrap the constructor call in an eval block and pull the
-error out of $@ as usual. This is also the case for all other
-methods; they succeed or they die.
+must be a valid numeric IPv4 or IPv6 address (0.0.0.0 or :: to listen
+on all interfaces, as usual); the port must be numeric. If this call
+succeeds, it returns a server structure with an open IO::Socket::INET6
+in it, ready to listen on. If it fails it dies, so if you want
+anything other than an exit with an explanatory error message, wrap
+the constructor call in an eval block and pull the error out of $@ as
+usual. This is also the case for all other methods; they succeed or
+they die.
=item accept([debug => FD]);
@@ -154,7 +154,7 @@
my ($this, @opts) = @_;
my $class = ref($this) || $this;
my $self = bless { @opts }, $class;
- $self->{sock} = IO::Socket::INET->new(
+ $self->{sock} = IO::Socket::INET6->new(
LocalAddr => $self->{interface},
LocalPort => $self->{port},
Proto => 'tcp',
only in patch2:
unchanged:
--- dkimproxy-1.4.1.orig/scripts/dkimproxy.out
+++ dkimproxy-1.4.1/scripts/dkimproxy.out
@@ -314,17 +314,11 @@
{
my $self = shift;
- # try to determine peer's address
- use Socket;
- my $peersockaddr = getpeername(STDOUT);
- my ($port, $iaddr) = sockaddr_in($peersockaddr);
- $ENV{REMOTE_ADDR} = inet_ntoa($iaddr);
-
# initialize syslog
eval
{
openlog("dkimproxy.out", "perror,pid,ndelay", "mail");
- syslog("debug", '%s', "connect from $ENV{REMOTE_ADDR}");
+ syslog("debug", '%s', "connect from $self->{server}->{peeraddr}");
};
if (my $E = $@)
{

View file

@ -0,0 +1,34 @@
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Thu, 25 Jul 2019 21:48:25 +0200
Subject: [PATCH]: libvirt: remove ATTRIBUTE_UNUSED
This should fix the error reported here[0]. Patch taken verbatim from
upstream[1].
[0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36634#28
[1]: https://github.com/libvirt/libvirt/commit/759bf903a6c24a8efa25c7cf4b099d952eda9bd3
From 759bf903a6c24a8efa25c7cf4b099d952eda9bd3 Mon Sep 17 00:00:00 2001
From: Pavel Hrdina <phrdina@redhat.com>
Date: Mon, 22 Jul 2019 14:46:34 +0200
Subject: [PATCH] vircgroupv2: remove ATTRIBUTE_UNUSED for used attribute
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
---
src/util/vircgroupv2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c
index af3192c99c..e36c36685b 100644
--- a/src/util/vircgroupv2.c
+++ b/src/util/vircgroupv2.c
@@ -399,7 +399,7 @@ virCgroupV2EnableController(virCgroupPtr group,
static int
-virCgroupV2MakeGroup(virCgroupPtr parent ATTRIBUTE_UNUSED,
+virCgroupV2MakeGroup(virCgroupPtr parent,
virCgroupPtr group,
bool create,
unsigned int flags)

View file

@ -0,0 +1,25 @@
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Thu, 01 Aug 2019 21:12:52 +0200
Subject: [PATCH] gnu: pcre2: Fix jit_match crash.
Fixes <https://bugs.exim.org/show_bug.cgi?id=2421>, reported as a secrity
problem.
Copied verbatim from upstream[0].
[0]: https://vcs.pcre.org/pcre2/code/trunk/src/pcre2_jit_compile.c?view=patch&r1=1089&r2=1092&pathrev=1092
--- trunk/src/pcre2_jit_compile.c 2019/05/10 13:15:20 1089
+++ trunk/src/pcre2_jit_compile.c 2019/05/13 16:38:18 1092
@@ -8571,7 +8571,10 @@
PCRE2_SPTR bptr;
uint32_t c;
-GETCHARINC(c, cc);
+/* Patch by PH */
+/* GETCHARINC(c, cc); */
+
+c = *cc++;
#if PCRE2_CODE_UNIT_WIDTH == 32
if (c >= 0x110000)
return NULL;

View file

@ -89,6 +89,7 @@ (define-public pcre
(define-public pcre2
(package
(name "pcre2")
(replacement pcre2/fixed)
(version "10.33")
(source (origin
(method url-fetch)
@ -125,3 +126,14 @@ (define-public pcre2
POSIX regular expression API.")
(license license:bsd-3)
(home-page "https://www.pcre.org/")))
(define-public pcre2/fixed
;; PHP >= 7.3.8 requires a fixed version at build time, so make it public
;; and hide it in the UI.
(package
(inherit pcre2)
(source
(origin
(inherit (package-source pcre2))
(patches (search-patches "pcre2-fix-jit_match-crash.patch"))))
(properties '((hidden? . #t)))))

View file

@ -58,15 +58,15 @@ (define-module (gnu packages php)
(define-public php
(package
(name "php")
(version "7.3.6")
(version "7.3.8")
(home-page "https://secure.php.net/")
(source (origin
(method url-fetch)
(uri (string-append home-page "distributions/"
name "-" version ".tar.xz"))
"php-" version ".tar.xz"))
(sha256
(base32
"0r51aiff2abbr3d2swhvja0wm56sjxzqbciabcvvq3m3v9kqkz7y"))
"19fm990yl97fq538lkp0m1imbp30qrx7785x211w1n15wqm6n17n"))
(modules '((guix build utils)))
(snippet
'(with-directory-excursion "ext"
@ -76,7 +76,7 @@ (define-public php
;;"mbstring/libmbfl"
;;"date/lib"
;;"bcmath/libbcmath"
;;"fileinfo/libmagic" ; This is a patched version of libmagic.
;;"fileinfo/libmagic" ; a patched version of libmagic
'("gd/libgd"
"mbstring/oniguruma"
"pcre/pcre2lib"
@ -367,7 +367,7 @@ (define-public php
("oniguruma" ,oniguruma-5)
("openldap" ,openldap)
("openssl" ,openssl)
("pcre" ,pcre2)
("pcre" ,pcre2/fixed) ; must be /fixed for tests
("postgresql" ,postgresql)
("readline" ,readline)
("sqlite" ,sqlite)
@ -378,7 +378,7 @@ (define-public php
`(("pkg-config" ,pkg-config)
("bison" ,bison)
("intltool" ,intltool)
("procps" ,procps))) ; For tests.
("procps" ,procps))) ; for tests
(synopsis "PHP programming language")
(description
"PHP (PHP Hypertext Processor) is a server-side (CGI) scripting

View file

@ -10945,25 +10945,36 @@ (define-public python2-natsort
(define-public python-glances
(package
(name "python-glances")
(version "3.0.2")
(version "3.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Glances" version))
(sha256
(base32
"09fxysfp1n16csqvzvawy74qm6a94nvwjf3vcf5gkqp4i6k4vjjy"))))
"07j1ggzsqiskyz1i4mrnyr9i95v0dqi0i0hibnv1l188km8shmi8"))
(modules '((guix build utils)))
(snippet
'(begin
;; Glances phones PyPI for weekly update checks by default.
;; Disable these. The user can re-enable them if desired.
(substitute* "glances/outdated.py"
(("^(.*)self\\.load_config\\(config\\)\n" line indentation)
(string-append indentation
"self.args.disable_check_update = True\n"
line)))
#t))))
(build-system python-build-system)
(propagated-inputs
`(("python-psutil" ,python-psutil)))
`(("python-future" ,python-future)
("python-psutil" ,python-psutil)))
(home-page
"https://github.com/nicolargo/glances")
(synopsis
"A cross-platform curses-based monitoring tool")
(synopsis "Cross-platform curses-based monitoring tool")
(description
"Glances is a curses-based monitoring tool for a wide variety of platforms.
Glances uses the PsUtil library to get information from your system. It monitors
CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
Glances uses the PsUtil library to get information from your system. It
monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
(license license:lgpl3+)))
(define-public python2-glances

View file

@ -30,7 +30,7 @@ (define-module (gnu packages regex)
(define-public re2
(package
(name "re2")
(version "2019-07-01")
(version "2019-08-01")
(home-page "https://github.com/google/re2")
(source (origin
(method git-fetch)
@ -38,7 +38,7 @@ (define-public re2
(file-name (git-file-name name version))
(sha256
(base32
"1ric6gdnf5mqj5iy5f81al49mr3mmjqj3nqi3mw2hjdbbgwkdn71"))))
"11w9x16y26nfgliis28ivrh9b1x6pxawdwxfwxfjh34h57c0dkzg"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)

View file

@ -34,15 +34,16 @@ (define-module (gnu packages scanner)
(define-public sane-backends-minimal
(package
(name "sane-backends-minimal")
(version "1.0.27")
(version "1.0.28")
(source (origin
(method url-fetch)
(uri (string-append
"https://alioth.debian.org/frs/download.php/latestfile/176/"
"https://gitlab.com/sane-project/backends/uploads/"
"9e718daff347826f4cfe21126c8d5091/"
"sane-backends-" version ".tar.gz"))
(sha256
(base32
"1j9nbqspaj0rlgalafb5z6r606k0i22kz0rcpd744p176yzlfdr9"))
"00yy8q9hqdf0zjxxl4d8njr9zf0hhi3a9ib23ikc2anqf8zhy9ii"))
(modules '((guix build utils)))
(snippet
;; Generated HTML files and udev rules normally embed a
@ -63,6 +64,10 @@ (define-public sane-backends-minimal
(add-before 'configure 'disable-backends
(lambda _
(setenv "BACKENDS" " ")
;; Disable tests that may require back ends to be built.
(substitute* "testsuite/Makefile.in"
((" backend ") " "))
#t))
(add-after 'unpack 'disable-failing-tests
(lambda _
@ -113,6 +118,7 @@ (define-public sane-backends
(name "sane-backends")
(inputs
`(("hplip" ,(@ (gnu packages cups) hplip-minimal))
("libjpeg" ,libjpeg) ; wanted by pixma, epsonds, others
("libpng" ,libpng) ; support scanimage --format=png
,@(package-inputs sane-backends-minimal)))
(arguments

View file

@ -107,7 +107,7 @@ (define-public sdl
(define-public sdl2
(package (inherit sdl)
(name "sdl2")
(version "2.0.9")
(version "2.0.10")
(source (origin
(method url-fetch)
(uri
@ -115,7 +115,7 @@ (define-public sdl2
version ".tar.gz"))
(sha256
(base32
"1c94ndagzkdfqaa838yqg589p1nnqln8mv0hpwfhrkbfczf8cl95"))))
"0mqxp6w5jhbq6y1j690g9r3gpzwjxh4czaglw8x05l7hl49nqrdl"))))
(arguments
(substitute-keyword-arguments (package-arguments sdl)
((#:configure-flags flags)

View file

@ -709,18 +709,17 @@ (define-public loksh
(define-public mksh
(package
(name "mksh")
(version "56")
(version "57")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R"
version ".tgz"))
(sha256
(base32
"1x4zjj9259ijpf8jw0nyh1fnr1pbm5fwvylclpvcrlb45xrglf5d"))))
(base32 "0xdykm1z710wriwd6nc8s8lwk2dwjl63dq96xxaawlid31a1241x"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; tests require access to /dev/tty
`(#:tests? #f ; tests require access to /dev/tty
#:phases
(modify-phases %standard-phases
(delete 'configure)
@ -744,7 +743,7 @@ (define-public mksh
Korn Shell programming language and a successor to the Public Domain Korn
Shell (pdksh).")
(license (list miros
isc)))) ; strlcpy.c
isc)))) ; strlcpy.c
(define-public oil-shell
(package

View file

@ -30,7 +30,7 @@ (define-module (gnu packages syncthing)
(define-public syncthing
(package
(name "syncthing")
(version "1.1.4")
(version "1.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/syncthing/syncthing"
@ -38,7 +38,7 @@ (define-public syncthing
"/syncthing-source-v" version ".tar.gz"))
(sha256
(base32
"0pkb9vdb10lnlk6sgg6hxgkdjnvxx90cfdf8vgrc5sljzm5qhr6l"))
"1l7crhggg2vq4y7pgzsj8wp7k4l9hw5yblflly5bzwywzxz8ff83"))
(modules '((guix build utils)))
;; Delete bundled ("vendored") free software source code.
(snippet '(begin
@ -102,10 +102,14 @@ (define-public syncthing
("go-github-com-vitrun-qart-coding" ,go-github-com-vitrun-qart-coding)
("go-github-com-vitrun-qart-gf256" ,go-github-com-vitrun-qart-gf256)
("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
("go-golang-org-x-crypto-bcrypt" ,go-golang-org-x-crypto-bcrypt)
("go-golang-org-x-crypto-blowfish" ,go-golang-org-x-crypto-blowfish)
("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
("go-github-com-flynn-archive-go-shlex"
,go-github-com-flynn-archive-go-shlex)
("go-github-com-getsentry-raven-go" ,go-github-com-getsentry-raven-go)
("go-github-com-maruel-panicparse" ,go-github-com-maruel-panicparse)
("go-github-com-ccding-go-stun" ,go-github-com-ccding-go-stun)
("go-github-com-audriusbutkevicius-pfilter" ,go-github-com-audriusbutkevicius-pfilter)
("go-github-com-lucas-clemente-quic-go" ,go-github-com-lucas-clemente-quic-go)
;; For tests
("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
@ -569,11 +573,11 @@ (define-public go-github-com-sasha-s-go-deadlock
(license asl2.0)))
(define-public go-github-com-syndtr-goleveldb
(let ((commit "34011bf325bce385408353a30b101fe5e923eb6e")
(revision "2"))
(let ((commit "c3a204f8e96543bb0cc090385c001078f184fc46")
(revision "3"))
(package
(name "go-github-com-syndtr-goleveldb")
(version (git-version "0.0.0" revision commit))
(version (git-version "1.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@ -582,7 +586,7 @@ (define-public go-github-com-syndtr-goleveldb
(file-name (git-file-name name version))
(sha256
(base32
"097ja0vyj6p27zrxha9nhk09fj977xsvhmd3bk2hbyvnbw4znnhd"))))
"18cac90dim2z5g28vazzibxa058q2ynihsmf0vbscwzba6l5s5ms"))))
(build-system go-build-system)
(propagated-inputs
`(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
@ -739,28 +743,6 @@ (define-public go-github-com-chmduquesne-rollinghash
(home-page "https://github.com/chmduquesne/rollinghash")
(license expat))))
(define-public go-github-com-pkg-errors
(package
(name "go-github-com-pkg-errors")
(version "0.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pkg/errors.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/pkg/errors"))
(synopsis "Go error handling primitives")
(description "This package provides @code{error}, which offers simple
error handling primitives in Go.")
(home-page "https://github.com/pkg/errors")
(license bsd-2)))
(define-public go-github-com-petermattis-goid
(let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
(revision "0"))
@ -863,20 +845,18 @@ (define-public go-github-com-beorn7-perks-quantile
(license expat))))
(define-public go-github-com-golang-protobuf-proto
(let ((commit "1e59b77b52bf8e4b449a57e6f79f21226d571845")
(revision "0"))
(package
(name "go-github-com-golang-protobuf-proto")
(version (git-version "0.0.0" revision commit))
(version "1.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/golang/protobuf.git")
(commit commit)))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8"))))
"15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/golang/protobuf/proto"
@ -887,11 +867,11 @@ (define-public go-github-com-golang-protobuf-proto
(description "This package provides Go support for the Protocol Buffers
data serialization format.")
(home-page "https://github.com/golang/protobuf")
(license bsd-3))))
(license bsd-3)))
(define-public go-github-com-prometheus-client-model-go
(let ((commit "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c")
(revision "0"))
(let ((commit "fd36f4220a901265f90734c3183c5f0c91daa0b8")
(revision "1"))
(package
(name "go-github-com-prometheus-client-model-go")
(version (git-version "0.0.2" revision commit))
@ -903,7 +883,7 @@ (define-public go-github-com-prometheus-client-model-go
(file-name (git-file-name name version))
(sha256
(base32
"19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998"))))
"1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/client_model/go"
@ -948,20 +928,18 @@ (define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
(license asl2.0))))
(define-public go-github-com-prometheus-common-expfmt
(let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca")
(revision "0"))
(package
(name "go-github-com-prometheus-common-expfmt")
(version (git-version "0.0.0" revision commit))
(version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/prometheus/common.git")
(commit commit)))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j"))))
"0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/common/expfmt"
@ -995,23 +973,21 @@ (define-public go-github-com-prometheus-common-expfmt
(description "This package provides tools for reading and writing
Prometheus metrics.")
(home-page "https://github.com/prometheus/common")
(license asl2.0))))
(license asl2.0)))
(define-public go-github-com-prometheus-common-model
(let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca")
(revision "0"))
(package
(name "go-github-com-prometheus-common-model")
(version (git-version "0.0.0" revision commit))
(version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/prometheus/common.git")
(commit commit)))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j"))))
"0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/common/model"
@ -1020,36 +996,37 @@ (define-public go-github-com-prometheus-common-model
(description "This package provides a component of the Go Prometheus
implementation.")
(home-page "https://github.com/prometheus/common")
(license asl2.0))))
(license asl2.0)))
(define-public go-github-com-prometheus-procfs
(let ((commit "b15cd069a83443be3154b719d0cc9fe8117f09fb")
(revision "0"))
(package
(name "go-github-com-prometheus-procfs")
(version (git-version "0.0.0" revision commit))
(version "0.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/prometheus/procfs.git")
(commit commit)))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1cr45wg2m40bj2za8f32mq09rjlcnk5kfam0h0hr8wcb015k4wxj"))))
"18c4m795fwng8f8qa395f3crvamlbk5y5afk8b5rzyisnmjq774y"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/procfs"))
'(#:import-path "github.com/prometheus/procfs"
;; The tests require Go modules, which are not yet supported in Guix's
;; Go build system.
#:tests? #f))
(synopsis "Go library for reading @file{/proc}")
(description "The @code{procfs} Go package provides functions to retrieve
system, kernel, and process metrics from the @file{/proc} pseudo file system.")
(home-page "https://github.com/prometheus/procfs")
(license asl2.0))))
(license asl2.0)))
(define-public go-github-com-client-golang-prometheus-promhttp
(package
(name "go-github-com-client-golang-prometheus-promhttp")
(version "0.9.2")
(version "0.9.4")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1058,7 +1035,7 @@ (define-public go-github-com-client-golang-prometheus-promhttp
(file-name (git-file-name name version))
(sha256
(base32
"02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs"))))
"0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"))))
(build-system go-build-system)
(arguments
'(#:tests? #f ; The tests require internet access
@ -1087,7 +1064,7 @@ (define-public go-github-com-client-golang-prometheus-promhttp
(define-public go-github-com-prometheus-client-golang-prometheus
(package
(name "go-github-com-prometheus-client-golang-prometheus")
(version "0.9.2")
(version "0.9.4")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1096,7 +1073,7 @@ (define-public go-github-com-prometheus-client-golang-prometheus
(file-name (git-file-name name version))
(sha256
(base32
"02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs"))))
"0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/client_golang/prometheus"
@ -1204,7 +1181,7 @@ (define-public go-github-com-flynn-archive-go-shlex
(define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg
(package
(name "go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg")
(version "0.2.0")
(version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1213,7 +1190,7 @@ (define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goauton
(file-name (git-file-name name version))
(sha256
(base32
"02kym6lcfnlq23qbv277jr0q1n7jj0r14gqg93c7wn7gc44jv3vp"))))
"0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg"
@ -1222,3 +1199,53 @@ (define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goauton
(description "This package is an internal component of Prometheus.")
(home-page "https://github.com/prometheus/common")
(license asl2.0)))
(define-public go-github-com-audriusbutkevicius-pfilter
(let ((commit "c55ef6137fc6f075801eac099cc2687ede0f101d")
(revision "3"))
(package
(name "go-github-com-audriusbutkevicius-pfilter")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AudriusButkevicius/pfilter.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0xzhwyd0w21bhvzl5pinn22hp0y6h44rh3s2ppql69rafc6zd3c6"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/AudriusButkevicius/pfilter"))
(synopsis "Filter packets into mulitple virtual connections")
(description "Pfilter is a Go package for filtering packets into multiple
virtual connections from a single physical connection.")
(home-page "https://github.com/AudriusButkevicius/pfilter")
(license expat))))
(define-public go-github-com-ccding-go-stun
(let ((commit "be486d185f3dfcb2dbf8429332da50a0da7f95a6")
(revision "2"))
(package
(name "go-github-com-ccding-go-stun")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ccding/go-stun.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1gr0rw1c1y7wh6913lyn5k4ig023by27i36bly6am8dwgrgp34ww"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/ccding/go-stun"))
(synopsis "STUN client implementation")
(description "Go-stun is a go implementation of the STUN client (RFC 3489
and RFC 5389).")
(home-page "https://github.com/ccding/go-stun")
(license asl2.0))))

View file

@ -847,10 +847,10 @@ (define-public libringclient
(home-page "https://jami.net")
(license license:gpl3+)))
(define-public jami-client-gnome
(define-public jami
(package
(inherit libring)
(name "jami-client-gnome")
(name "jami")
(build-system cmake-build-system)
(inputs
`(("libringclient" ,libringclient)
@ -906,3 +906,6 @@ (define-public jami-client-gnome
This package provides the Jami client for the GNOME desktop.")
(home-page "https://jami.net")
(license license:gpl3+)))
(define-public jami-client-gnome
(deprecated-package "jami-client-gnome" jami))

View file

@ -54,6 +54,7 @@ (define-module (gnu packages terminals)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libevent)
@ -754,6 +755,35 @@ (define-public go-golang.org-x-crypto-ssh-terminal
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-github-com-junegunn-fzf
(package
(name "go-github-com-junegunn-fzf")
(version "0.18.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/junegunn/fzf")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0pwpr4fpw56yzzkcabzzgbgwraaxmp7xzzmap7w1xsrkbj7dl2xl"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/junegunn/fzf"))
(inputs
`(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
("go-github-com-mattn-go-shellwords" ,go-github-com-mattn-go-shellwords)
("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
("go-github-com-gdamore-tcell" ,go-github-com-gdamore-tcell)
("go-golang-org-x-crypto-ssh-terminal" ,go-golang-org-x-crypto-ssh-terminal)))
(home-page "https://github.com/junegunn/fzf")
(synopsis "Command-line fuzzy-finder")
(description "This package provides an interactive command-line filter
usable with any list--including files, command history, processes and more.")
(license license:expat)))
(define-public go-github.com-howeyc-gopass
(let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
(revision "0"))

View file

@ -8,6 +8,7 @@
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -35,6 +36,7 @@ (define-module (gnu packages text-editors)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages assembly)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
@ -50,6 +52,7 @@ (define-module (gnu packages text-editors)
#: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 regex)
#:use-module (gnu packages ruby)
@ -397,15 +400,14 @@ (define-public editorconfig-core-c
(define-public texmacs
(package
(name "texmacs")
(version "1.99.9")
(version "1.99.11")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.texmacs.org/Download/ftp/tmftp/"
"source/TeXmacs-" version "-src.tar.gz"))
(sha256
(base32
"0i95sf9y8qpgxd8f39cprbp3s200nm9lml0xdpyn46n838acvw19"))
(base32 "12bp0f34izzqimz49lfpgf4lyz3h45s9xbmk8v6zsawdjki76alg"))
(modules '((guix build utils)))
(snippet
'(begin
@ -421,7 +423,7 @@ (define-public texmacs
("python" ,python-wrapper)
("qt" ,qt-4)))
(arguments
`(#:tests? #f ;no check target
`(#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
(add-before 'configure 'gzip-flags
@ -437,3 +439,131 @@ (define-public texmacs
and Octave. TeXmacs is completely extensible via Guile.")
(license license:gpl3+)
(home-page "https://www.texmacs.org/tmweb/home/welcome.en.html")))
(define-public scintilla
(package
(name "scintilla")
(version "4.2.0")
(source (origin
(method url-fetch)
(uri (let ((v (apply string-append (string-split version #\.))))
(string-append
"https://www.scintilla.org/scintilla" v ".tgz")))
(sha256
(base32
"02ymi86fpcypg6423vfr54lbkxbks046q02v3m3dypawcf3bqy42"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")
#:tests? #f ;require un-packaged Pyside
#:phases
(modify-phases %standard-phases
(delete 'configure) ;no configure script
(add-after 'unpack 'build-shared-library
(lambda _
(substitute* "gtk/makefile"
(("scintilla\\.a") "libscintilla.so")
(("\\$\\(AR\\) \\$\\(ARFLAGS\\) \\$@ \\$\\^")
"$(CC) -shared $^ -o $@")
(("\\$\\(RANLIB\\) \\$@") ""))
#t))
(add-before 'build 'expand-C++-include-path
(lambda* (#:key inputs #:allow-other-keys)
;; Make <gcc>/include/c++/ext/string_conversions.h find
;; <stdlib.h>.
(let* ((path "CPLUS_INCLUDE_PATH")
(gcc (assoc-ref inputs "gcc"))
(c++ (string-append gcc "/include/c++")))
(setenv path (string-append c++ ":" (getenv path))))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(include (string-append out "/include")))
(install-file "bin/libscintilla.so" lib)
(for-each (lambda (f) (install-file f include))
(find-files "include/" "."))
#t))))))
(native-inputs
`(("gcc" ,gcc-7) ;require GCC 7.1+
("pkg-config" ,pkg-config)))
(inputs
`(("gtk+" ,gtk+)))
(home-page "https://www.scintilla.org/")
(synopsis "Code editor for GTK+")
(description "Scintilla is a source code editing component for
GTK+. It has the usual features found in text editing components, as
well as some that are especially useful for editing and debugging
source code; these include support for syntax styling, error
indicators, code completion and call tips. Styling choices are more
open than with many editors: Scintilla lets you use proportional
fonts, bold and italics, multiple foreground and background colours,
and multiple fonts.")
(license license:hpnd)))
(define-public geany
(package
(name "geany")
(version "1.35")
(source (origin
(method url-fetch)
(uri (string-append "https://download.geany.org/"
"geany-" version ".tar.bz2"))
(sha256
(base32
"179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim"))
(modules '((guix build utils)))
(snippet '(begin
(delete-file-recursively "scintilla")
#t))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("doxygen" ,doxygen)
("glib" ,glib "bin")
("intltool" ,intltool)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("python-docutils" ,python-docutils))) ;for rst2html
(inputs
`(("gtk+" ,gtk+)
("scintilla" ,scintilla)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'use-scintilla-shared-library
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "configure.ac"
(("scintilla/Makefile") "")
(("scintilla/include/Makefile") ""))
(substitute* "Makefile.am"
(("scintilla ") ""))
(substitute* "src/Makefile.am"
(("\\$\\(top_builddir\\)/scintilla/libscintilla.la") "")
(("geany_LDFLAGS =" all) (string-append all " -lscintilla")))
(substitute* "doc/Makefile.am"
(("\\$\\(INSTALL_DATA\\) \\$\\(top_srcdir\\)/scintilla/License.txt \\$\\(DOCDIR\\)/ScintillaLicense.txt") ""))
(for-each delete-file (list "autogen.sh" "configure" "Makefile.in"))
#t)))))
(home-page "https://www.geany.org")
(synopsis "Fast and lightweight IDE")
(description "Geany is a small and fast Integrated Development
Environment (IDE) that only has a few dependencies on other packages and is as
independent as possible from special desktop environments like KDE or GNOME.
The basic features of Geany are:
@itemize
@item syntax highlighting
@item code completion
@item auto completion of often constructed constructs like if, for and while
@item auto completion of XML and HTML tags
@item call tips
@item folding
@item many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
@item symbol lists
@item embedded terminal emulation
@item extensibility through plugins
@end itemize")
(license license:gpl2+)))

View file

@ -693,27 +693,32 @@ (define-public python-editdistance
(license license:expat))))
(define-public go-github.com-mattn-go-runewidth
(package
(name "go-github.com-mattn-go-runewidth")
(version "0.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattn/go-runewidth")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mattn/go-runewidth"))
(synopsis "@code{runewidth} provides Go functions to work with string widths")
(description
"The @code{runewidth} library provides Go functions for padding,
measuring and checking the width of strings, with support east asian text.")
(home-page "https://github.com/jessevdk/go-flags")
(license license:expat)))
(let ((commit "703b5e6b11ae25aeb2af9ebb5d5fdf8fa2575211")
(version "0.0.4")
(revision "1"))
(package
(name "go-github.com-mattn-go-runewidth")
(version (git-version version revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattn/runewidth")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0znpyz71gajx3g0j2zp63nhjj2c07g16885vxv4ykwnrfmzbgk4w"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mattn/go-runewidth"))
(synopsis "@code{runewidth} provides Go functions to work with string widths")
(description
"The @code{runewidth} library provides Go functions for padding,
measuring and checking the width of strings, with support for East Asian
text.")
(home-page "https://github.com/mattn/runewidth")
(license license:expat))))
(define-public docx2txt
(package

View file

@ -4,7 +4,7 @@
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
@ -33,8 +33,10 @@ (define-module (gnu packages tls)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system cmake)
@ -951,3 +953,27 @@ (define-public dehydrated
ACME-server (currently only provided by Let's Encrypt) implemented as a
relatively simple Bash script.")
(license license:expat)))
(define-public go-github-com-certifi-gocertifi
(let ((commit "d2eda712971317d7dd278bc2a52acda7e945f97e")
(revision "0"))
(package
(name "go-github-com-certifi-gocertifi")
(version (git-version "2018.01.18" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/certifi/gocertifi")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0f3v26xps7gadw4qfmh1kxbpgp0cgqdd61a257xnnvnd7ll6k8dh"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/certifi/gocertifi"))
(synopsis "X.509 TLS root certificate bundle for Go")
(description "This package is a Go language X.509 TLS root certificate bundle,
derived from Mozilla's collection.")
(home-page "https://certifi.io")
(license license:mpl2.0))))

View file

@ -753,6 +753,40 @@ (define-public libva
standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(license license:expat)))
(define-public libva-utils
(package
(name "libva-utils")
(version "2.5.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/intel/libva-utils/releases/download/"
version "/libva-utils-" version ".tar.bz2"))
(sha256
(base32 "05rasyqnsg522zqxak1q8rrm1hys7wwbi41kd0szjq0d27awjf4j"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--enable-wayland"
"--enable-x11")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("libdrm" ,libdrm)
("libva" ,libva)
("libx11" ,libx11)
("mesa" ,mesa)
("wayland" ,wayland)))
(home-page "https://01.org/linuxmedia/vaapi")
(synopsis "Collection of testing utilities for VA-API")
(description
"This is a collection of utilities to query and test the @acronym{VA-API,
Video Acceleration API} implemented by the libva library.
These tools require a supported graphics chip, driver, and VA-API back end to
operate properly.")
(license license:expat)))
(define-public ffmpeg
(package
(name "ffmpeg")
@ -1013,7 +1047,7 @@ (define-public ffmpegthumbnailer
(define-public vlc
(package
(name "vlc")
(version "3.0.7")
(version "3.0.7.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -1022,7 +1056,7 @@ (define-public vlc
"/vlc-" version ".tar.xz"))
(sha256
(base32
"05irswyg9acflxzy4vfyvgi643r72vsvagv118zawjqg1wagxdaw"))))
"1xb4c8n0hkwijzfdlbwadhxnx9z8rlhmrdq4c7q74rq9f51q0m86"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
@ -1446,7 +1480,7 @@ (define-public libvpx-1.7
(define-public youtube-dl
(package
(name "youtube-dl")
(version "2019.06.21")
(version "2019.08.02")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rg3/youtube-dl/releases/"
@ -1454,7 +1488,7 @@ (define-public youtube-dl
version ".tar.gz"))
(sha256
(base32
"03a729198zzhixbn7xixi9bprmk3qqh5dsyh3dqhji6lmlijx1w5"))))
"101b6jrf6ckbxrn76ppvgdyrb25p7d247kn8qgq7n476sfnkfg2p"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@ -1585,7 +1619,7 @@ (define-public youtube-dl-gui
(define-public you-get
(package
(name "you-get")
(version "0.4.1302")
(version "0.4.1328")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1594,7 +1628,7 @@ (define-public you-get
(file-name (git-file-name name version))
(sha256
(base32
"1fwwzslv1vpjr8q0fq10dbngr8zai1n3d6na700cgpky4j9y0y99"))))
"1r9qffwvxmp74byva12h2jsn3n33vyim052sx9lykv5dygibbp65"))))
(build-system python-build-system)
(inputs
`(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos
@ -2695,6 +2729,51 @@ (define-public handbrake
;; Combination under GPLv2. See LICENSE.
(license license:gpl2)))
(define-public intel-vaapi-driver
(package
(name "intel-vaapi-driver")
(version "2.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/intel/intel-vaapi-driver/"
"releases/download/" version "/intel-vaapi-driver-"
version ".tar.bz2"))
(sha256
(base32 "1qyzxh3p8cw4fv8bz9zd4kc8hajlaps7xryzh6pad814n3m5sbjw"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("libdrm" ,libdrm)
("libva" ,libva)
("libx11" ,libx11)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(setenv "LIBVA_DRIVERS_PATH" (string-append out "/lib/dri"))
#t))))))
;; XXX Because of <https://issues.guix.gnu.org/issue/22138>, we need to add
;; this to all VA-API back ends instead of once to libva.
(native-search-paths
(list (search-path-specification
(variable "LIBVA_DRIVERS_PATH")
(files '("lib/dri")))))
(supported-systems '("i686-linux" "x86_64-linux"))
(home-page "https://01.org/linuxmedia/vaapi")
(synopsis "VA-API video acceleration driver for Intel GEN Graphics devices")
(description
"This is the @acronym{VA-API, Video Acceleration API} back end required for
hardware-accelerated video processing on Intel GEN Graphics devices supported by
the i915 driver, such as integrated Intel HD Graphics. It provides access to
both hardware and shader functionality for faster encoding, decoding, and
post-processing of video formats like MPEG2, H.264/AVC, and VC-1.")
(license (list license:bsd-2 ; src/gen9_vp9_const_def.c
license:expat)))) ; the rest, excluding the test suite
(define-public openh264
(package
(name "openh264")

View file

@ -391,13 +391,15 @@ (define-public libvirt
(package
(name "libvirt")
(version "5.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
(sha256
(base32
"1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3"))))
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
(sha256
(base32 "1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3"))
(patches
(search-patches "libvirt-remove-ATTRIBUTE_UNUSED.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

View file

@ -6,7 +6,7 @@
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
@ -127,6 +127,7 @@ (define-module (gnu packages web)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
#:use-module (gnu packages vim)
#:use-module (gnu packages xml))
(define-public httpd
@ -205,14 +206,14 @@ (define-public nginx
;; stable and recommends that “in general you deploy the NGINX mainline
;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
;; Consider updating the nginx-documentation package together with this one.
(version "1.17.1")
(version "1.17.2")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
"0gp7cy2bbn8yi1wapjzssf4bhmn4d4vphdb0k1wiaq2fa6s2a63g"))))
"1v39gslwbvpfhqqv74q0lkfrhrwsp59xc8pwhvxns7af8s3kccsy"))))
(build-system gnu-build-system)
(inputs `(("openssl" ,openssl)
("pcre" ,pcre)
@ -4239,15 +4240,15 @@ (define-public libparserutils
(define-public hubbub
(package
(name "hubbub")
(version "0.3.5")
(version "0.3.6")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
"lib" name "-" version "-src.tar.gz"))
"libhubbub-" version "-src.tar.gz"))
(sha256
(base32
"13yq1k96a7972x4r71i9bcsz9yiglj0yx7lj0ziq5r94w5my70ma"))
"1x3v7xvagx85v9h3pypzc86rcxs4mij87mmcqkp8pq50q6awfmnp"))
(patches (search-patches "hubbub-sort-entities.patch"))))
(build-system gnu-build-system)
(native-inputs
@ -4345,15 +4346,15 @@ (define-public ikiwiki
(define-public libwapcaplet
(package
(name "libwapcaplet")
(version "0.4.1")
(version "0.4.2")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
name "-" version "-src.tar.gz"))
"libwapcaplet-" version "-src.tar.gz"))
(sha256
(base32
"134pljlm8kby1yy49826f0ixnpig8iqak6xpyl3aivagnsjnxzy8"))))
"1fjwzbn7j8bi1b9bvwxsy3i2cr6byq2s2d29866801pjnf528g86"))))
(build-system gnu-build-system)
(native-inputs
`(("netsurf-buildsystem" ,netsurf-buildsystem)
@ -4371,15 +4372,15 @@ (define-public libwapcaplet
(define-public libcss
(package
(name "libcss")
(version "0.8.0")
(version "0.9.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
name "-" version "-src.tar.gz"))
"libcss-" version "-src.tar.gz"))
(sha256
(base32
"0pxdqbxn6brj03nv57bsvac5n70k4scn3r5msaw0jgn2k06lk81m"))))
"1vw9j3d2mr4wbvs8fyqmgslkbxknvac10456775hflxxcivbm3xr"))))
(build-system gnu-build-system)
(native-inputs
`(("netsurf-buildsystem" ,netsurf-buildsystem)
@ -4399,15 +4400,15 @@ (define-public libcss
(define-public libdom
(package
(name "libdom")
(version "0.3.3")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
name "-" version "-src.tar.gz"))
"libdom-" version "-src.tar.gz"))
(sha256
(base32
"1919757mdl3gii2pl6kzm8b1cal0h06r5nqd2y0kny6hc5yrhsp0"))))
"1ixkqsl3f7dl1kajksm0c231w1v5xy8z6hm3v67hgm9nh4qcvfcy"))))
(build-system gnu-build-system)
(native-inputs
`(("netsurf-buildsystem" ,netsurf-buildsystem)
@ -4509,6 +4510,34 @@ (define-public libnsgif
C. It is developed as part of the NetSurf project.")
(license license:expat)))
(define-public libnslog
(package
(name "libnslog")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
"libnslog-" version "-src.tar.gz"))
(sha256
(base32
"1ggs6xvxp8fbg5w8pifalipm458ygr9ab6j2yvj8fnnmxwvdh4jd"))))
(build-system gnu-build-system)
(native-inputs
`(("netsurf-buildsystem" ,netsurf-buildsystem)
("pkg-config" ,pkg-config)
("check" ,check) ;for tests
("bison" ,bison)
("flex" ,flex)))
(arguments netsurf-buildsystem-arguments)
(home-page "http://www.netsurf-browser.org/")
(synopsis "Logging library")
(description
"Libnslog provides a category-based logging library which supports
complex logging filters, multiple log levels, and provides context through to
client applications. It is developed as part of the NetSurf project.")
(license license:expat)))
(define-public libnsutils
(package
(name "libnsutils")
@ -4535,15 +4564,15 @@ (define-public libnsutils
(define-public libnspsl
(package
(name "libnspsl")
(version "0.1.3")
(version "0.1.5")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
name "-" version "-src.tar.gz"))
"libnspsl-" version "-src.tar.gz"))
(sha256
(base32
"1rsk1k2a495axxgv8060s0p1phhhcxrv75252kllbkvr8id5kqld"))))
"0siq8zjfxv75i9fw6q5hkaijpdm1w3zskd5qk6vsvz8cqan4vifd"))))
(build-system gnu-build-system)
(native-inputs
`(("netsurf-buildsystem" ,netsurf-buildsystem)))
@ -4558,15 +4587,15 @@ (define-public libnspsl
(define-public nsgenbind
(package
(name "nsgenbind")
(version "0.6")
(version "0.7")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
name "-" version "-src.tar.gz"))
"nsgenbind-" version "-src.tar.gz"))
(sha256
(base32
"0v1cb1rz5fix9ql31nzmglj7sybya6d12b2fkaypm1avcca59xwj"))))
"0rplmky4afsjwiwh7grkmcdmzg86zksa55j93dvq92f91yljwqqq"))))
(build-system gnu-build-system)
(native-inputs
`(("netsurf-buildsystem" ,netsurf-buildsystem)
@ -4586,7 +4615,7 @@ (define-public nsgenbind
(define-public netsurf
(package
(name "netsurf")
(version "3.8")
(version "3.9")
(source
(origin
(method url-fetch)
@ -4594,7 +4623,7 @@ (define-public netsurf
"releases/source/netsurf-" version "-src.tar.gz"))
(sha256
(base32
"0hjm1h4m1i913y4mhkl7yqdifn8k70fwi58zdh6faypawzryc3m0"))
"1hzcm2s2wh5sapgr000lg63hcdbj6hyajxl43xa1x80kc5piqbyp"))
(patches (search-patches "netsurf-system-utf8proc.patch"
"netsurf-y2038-tests.patch"
"netsurf-longer-test-timeout.patch"
@ -4607,7 +4636,8 @@ (define-public netsurf
("check" ,check)
("perl" ,perl)
("perl-html-parser" ,perl-html-parser)
("pkg-config" ,pkg-config)))
("pkg-config" ,pkg-config)
("xxd" ,xxd)))
(inputs
`(("curl" ,curl)
("gtk+" ,gtk+-2)
@ -4619,6 +4649,7 @@ (define-public netsurf
("libdom" ,libdom)
("libnsbmp" ,libnsbmp)
("libnsgif" ,libnsgif)
("libnslog" ,libnslog)
("libnspsl" ,libnspsl)
("libnsutils" ,libnsutils)
("libsvgtiny" ,libsvgtiny)
@ -6436,8 +6467,8 @@ (define-public nghttp2
(license license:expat)))
(define-public hpcguix-web
(let ((commit "53e09ea59ec0380b41a4cbda32df8bdb9a10004d")
(revision "3"))
(let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508")
(revision "4"))
(package
(name "hpcguix-web")
(version (git-version "0.0.1" revision commit))
@ -6449,7 +6480,7 @@ (define-public hpcguix-web
(file-name (git-file-name name version))
(sha256
(base32
"1ah4pn9697vazhbvd45n4b1rrkx2nbhnw384cr0b941q3sz1dfyc"))))
"0idzzlwnaymk6hm5q9nh146h5m6vd8acp32vlmzp6qq08mimfkq7"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@ -6509,7 +6540,7 @@ (define-public hpcguix-web
(propagated-inputs
`(("guile" ,guile-2.2)
("guile-commonmark" ,guile-commonmark)
("guile-json" ,guile-json-1)))
("guile-json" ,guile-json-3)))
(home-page "https://github.com/UMCUGenetics/hpcguix-web")
(synopsis "Web interface for cluster deployments of Guix")
(description "Hpcguix-web provides a web interface to the list of packages

View file

@ -310,7 +310,7 @@ (define-public wine-minimal
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
(version "4.12.1")
(version "4.13")
(source
(origin
(method git-fetch)
@ -320,7 +320,7 @@ (define-public wine-staging-patchset-data
(file-name (git-file-name name version))
(sha256
(base32
"1bvpvj6vcw2p6vcjm6mw5maarbs4lfw1ix3pj020w4n3kg4nmmc4"))))
"0bbwsd2qpjilxpjscqbp78p0gl0awj1yj62g0wvybh4x89fzy8zj"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
@ -366,7 +366,7 @@ (define-public wine-staging
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
"09yjfb2k14y11k19lm8dqmb8qwxyhh67d5q1gqv480y64mljvkx0"))))
"0rqx8g394aj5q913cd18zsi60sldvxarrp178w6ja0y4rd8l25vr"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf
("faudio" ,faudio)
("ffmpeg" ,ffmpeg)
@ -407,10 +407,7 @@ (define-public wine-staging
(script (string-append (assoc-ref %build-inputs
"wine-staging-patchset-data")
"/share/wine-staging/patches/patchinstall.sh")))
;; Exclude specific patches that conflict with FAudio.
(invoke script (string-append "DESTDIR=" ".") "--all" "-W"
"xaudio2-revert" "-W" "xaudio2_CommitChanges" "-W"
"xaudio2_7-WMA_support" "-W" "xaudio2_7-CreateFX-FXEcho")
(invoke script (string-append "DESTDIR=" ".") "--all")
#t)))
(add-after 'configure 'patch-dlopen-paths
;; Hardcode dlopened sonames to absolute paths.
@ -487,9 +484,7 @@ (define-public wine64-staging
"wine-staging-patchset-data")
"/share/wine-staging/patches/patchinstall.sh")))
;; Exclude specific patches that conflict with FAudio.
(invoke script (string-append "DESTDIR=" ".") "--all" "-W"
"xaudio2-revert" "-W" "xaudio2_CommitChanges" "-W"
"xaudio2_7-WMA_support" "-W" "xaudio2_7-CreateFX-FXEcho")
(invoke script (string-append "DESTDIR=" ".") "--all")
#t)))
(add-after 'install 'copy-wine32-binaries
(lambda* (#:key outputs #:allow-other-keys)

View file

@ -5988,7 +5988,7 @@ (define-public xcompmgr
(define-public xpra
(package
(name "xpra")
(version "2.5.2")
(version "2.5.3")
(source
(origin
(method url-fetch)
@ -5996,7 +5996,7 @@ (define-public xpra
version ".tar.xz"))
(sha256
(base32
"1zbh2990crrxp02c554yh30f0s9znm6iiiklkw8vpxrlmdv1z8ks"))))
"1ys35lj28903alccks9p055psy1fsk1nxi8ncchvw8bfxkkkvbys"))))
(build-system python-build-system)
(inputs `(("ffmpeg" ,ffmpeg)
("flac" ,flac)

View file

@ -40,10 +40,12 @@ (define-module (gnu services herd)
unknown-shepherd-error?
unknown-shepherd-error-sexp
live-service
live-service?
live-service-provision
live-service-requirement
live-service-running
live-service-canonical-name
with-shepherd-action
current-services
@ -192,6 +194,10 @@ (define-record-type <live-service>
(requirement live-service-requirement) ;list of symbols
(running live-service-running)) ;#f | object
(define (live-service-canonical-name service)
"Return the 'canonical name' of SERVICE."
(first (live-service-provision service)))
(define (current-services)
"Return the list of currently defined Shepherd services, represented as
<live-service> objects. Return #f if the list of services could not be

262
gnu/tests/reconfigure.scm Normal file
View file

@ -0,0 +1,262 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.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/>.
(define-module (gnu tests reconfigure)
#:use-module (gnu bootloader)
#:use-module (gnu services shepherd)
#:use-module (gnu system vm)
#:use-module (gnu system)
#:use-module (gnu tests)
#:use-module (guix derivations)
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix scripts system reconfigure)
#:use-module (guix store)
#:export (%test-switch-to-system
%test-upgrade-services
%test-install-bootloader))
;;; Commentary:
;;;
;;; Test in-place system reconfiguration: advancing the system generation on a
;;; running instance of the Guix System.
;;;
;;; Code:
(define* (run-switch-to-system-test)
"Run a test of an OS running SWITCH-SYSTEM-PROGRAM, which creates a new
generation of the system profile."
(define os
(marionette-operating-system
(simple-operating-system)
#:imported-modules '((gnu services herd)
(guix combinators))))
(define vm (virtual-machine os))
(define (test script)
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (gnu build marionette)
(srfi srfi-64))
(define marionette
(make-marionette (list #$vm)))
;; Return the names of the generation symlinks on MARIONETTE.
(define (system-generations marionette)
(marionette-eval
'(begin
(use-modules (ice-9 ftw)
(srfi srfi-1))
(let* ((profile-dir "/var/guix/profiles/")
(entries (map first (cddr (file-system-tree profile-dir)))))
(remove (lambda (entry)
(member entry '("per-user" "system")))
entries)))
marionette))
(mkdir #$output)
(chdir #$output)
(test-begin "switch-to-system")
(let ((generations-prior (system-generations marionette)))
(test-assert "script successfully evaluated"
(marionette-eval
'(primitive-load #$script)
marionette))
(test-equal "script created new generation"
(length (system-generations marionette))
(1+ (length generations-prior))))
(test-end)
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
(gexp->derivation "switch-to-system" (test (switch-system-program os))))
(define* (run-upgrade-services-test)
"Run a test of an OS running UPGRADE-SERVICES-PROGRAM, which upgrades the
Shepherd (PID 1) by unloading obsolete services and loading new services."
(define os
(marionette-operating-system
(simple-operating-system)
#:imported-modules '((gnu services herd)
(guix combinators))))
(define vm (virtual-machine os))
(define dummy-service
;; Shepherd service that does nothing, for the sole purpose of ensuring
;; that it is properly installed and started by the script.
(shepherd-service (provision '(dummy))
(start #~(const #t))
(stop #~(const #t))
(respawn? #f)))
;; Return the Shepherd service file for SERVICE, after ensuring that it
;; exists in the store.
(define (ensure-service-file service)
(let ((file (shepherd-service-file service)))
(mlet* %store-monad ((store-object (lower-object file))
(_ (built-derivations (list store-object))))
(return file))))
(define (test enable-dummy disable-dummy)
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (gnu build marionette)
(srfi srfi-64))
(define marionette
(make-marionette (list #$vm)))
;; Return the names of the running services on MARIONETTE.
(define (running-services marionette)
(marionette-eval
'(begin
(use-modules (gnu services herd))
(map live-service-canonical-name (current-services)))
marionette))
(mkdir #$output)
(chdir #$output)
(test-begin "upgrade-services")
(let ((services-prior (running-services marionette)))
(test-assert "script successfully evaluated"
(marionette-eval
'(primitive-load #$enable-dummy)
marionette))
(test-assert "script started new service"
(and (not (memq 'dummy services-prior))
(memq 'dummy (running-services marionette))))
(test-assert "script successfully evaluated"
(marionette-eval
'(primitive-load #$disable-dummy)
marionette))
(test-assert "script stopped obsolete service"
(not (memq 'dummy (running-services marionette)))))
(test-end)
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
(mlet* %store-monad ((file (ensure-service-file dummy-service)))
(let ((enable (upgrade-services-program (list file) '(dummy) '() '()))
(disable (upgrade-services-program '() '() '(dummy) '())))
(gexp->derivation "upgrade-services" (test enable disable)))))
(define* (run-install-bootloader-test)
"Run a test of an OS running INSTALL-BOOTLOADER-PROGRAM, which installs a
bootloader's configuration file."
(define os
(marionette-operating-system
(simple-operating-system)
#:imported-modules '((gnu services herd)
(guix combinators))))
(define vm (virtual-machine os))
(define (test script)
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (gnu build marionette)
(ice-9 regex)
(srfi srfi-1)
(srfi srfi-64))
(define marionette
(make-marionette (list #$vm)))
;; Return the system generation paths that have GRUB menu entries.
(define (generations-in-grub-cfg marionette)
(let ((grub-cfg (marionette-eval
'(begin
(call-with-input-file "/boot/grub/grub.cfg"
(lambda (port)
(get-string-all port))))
marionette)))
(map (lambda (parameter)
(second (string-split (match:substring parameter) #\=)))
(list-matches "system=[^ ]*" grub-cfg))))
(mkdir #$output)
(chdir #$output)
(test-begin "install-bootloader")
(test-assert "no prior menu entry for system generation"
(not (member #$os (generations-in-grub-cfg marionette))))
(test-assert "script successfully evaluated"
(marionette-eval
'(primitive-load #$script)
marionette))
(test-assert "menu entry created for system generation"
(member #$os (generations-in-grub-cfg marionette)))
(test-end)
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
(let* ((bootloader ((compose bootloader-configuration-bootloader
operating-system-bootloader)
os))
;; The typical use-case for 'install-bootloader-program' is to read
;; the boot parameters for the existing menu entries on the system,
;; parse them with 'boot-parameters->menu-entry', and pass the
;; results to 'operating-system-bootcfg'. However, to obtain boot
;; parameters, we would need to start the marionette, which we should
;; ideally avoid doing outside of the 'test' G-Expression. Thus, we
;; generate a bootloader configuration for the script as if there
;; were no existing menu entries. In the grand scheme of things, this
;; matters little -- these tests should not make assertions about the
;; behavior of 'operating-system-bootcfg'.
(bootcfg (operating-system-bootcfg os '()))
(bootcfg-file (bootloader-configuration-file bootloader)))
(gexp->derivation
"install-bootloader"
;; Due to the read-only nature of the virtual machines used in the system
;; test suite, the bootloader installer script is omitted. 'grub-install'
;; would attempt to write directly to the virtual disk if the
;; installation script were run.
(test (install-bootloader-program #f #f bootcfg bootcfg-file #f "/")))))
(define %test-switch-to-system
(system-test
(name "switch-to-system")
(description "Create a new generation of the system profile.")
(value (run-switch-to-system-test))))
(define %test-upgrade-services
(system-test
(name "upgrade-services")
(description "Upgrade the Shepherd by unloading obsolete services and
loading new services.")
(value (run-upgrade-services-test))))
(define %test-install-bootloader
(system-test
(name "install-bootloader")
(description "Install a bootloader and its configuration file.")
(value (run-install-bootloader-test))))

View file

@ -2,6 +2,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -39,6 +40,21 @@ (define-module (guix build cargo-build-system)
;;
;; Code:
;; TODO: Move this to (guix build cargo-utils). Will cause a full rebuild
;; of all rust compilers.
(define (generate-all-checksums dir-name)
(for-each
(lambda (filename)
(let* ((dir (dirname filename))
(checksum-file (string-append dir "/.cargo-checksum.json")))
(when (file-exists? checksum-file) (delete-file checksum-file))
(display (string-append
"patch-cargo-checksums: generate-checksums for "
dir "\n"))
(generate-checksums dir)))
(find-files dir-name "Cargo.toml$")))
(define (manifest-targets)
"Extract all targets from the Cargo.toml manifest"
(let* ((port (open-input-pipe "cargo read-manifest"))
@ -94,8 +110,7 @@ (define* (configure #:key inputs
;; so that we can generate any cargo checksums.
;; The --strip-components argument is needed to prevent creating
;; an extra directory within `crate-dir`.
(invoke "tar" "xvf" path "-C" crate-dir "--strip-components" "1")
(generate-checksums crate-dir)))))
(invoke "tar" "xvf" path "-C" crate-dir "--strip-components" "1")))))
inputs)
;; Configure cargo to actually use this new directory.
@ -121,6 +136,31 @@ (define* (configure #:key inputs
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
#t)
;; The Cargo.lock file tells the build system which crates are required for
;; building and hardcodes their version and checksum. In order to build with
;; the inputs we provide, we need to recreate the file with our inputs.
(define* (update-cargo-lock #:key
(vendor-dir "guix-vendor")
#:allow-other-keys)
"Regenerate the Cargo.lock file with the current build inputs."
(when (file-exists? "Cargo.lock")
(begin
;; Unfortunately we can't generate a Cargo.lock file until the checksums
;; are generated, so we have an extra round of generate-all-checksums here.
(generate-all-checksums vendor-dir)
(delete-file "Cargo.lock")
(invoke "cargo" "generate-lockfile")))
#t)
;; After the 'patch-generated-file-shebangs phase any vendored crates who have
;; their shebangs patched will have a mismatch on their checksum.
(define* (patch-cargo-checksums #:key
(vendor-dir "guix-vendor")
#:allow-other-keys)
"Patch the checksums of the vendored crates after patching their shebangs."
(generate-all-checksums vendor-dir)
#t)
(define* (build #:key
skip-build?
(cargo-build-flags '("--release"))
@ -162,7 +202,9 @@ (define %standard-phases
(replace 'configure configure)
(replace 'build build)
(replace 'check check)
(replace 'install install)))
(replace 'install install)
(add-after 'configure 'update-cargo-lock update-cargo-lock)
(add-after 'patch-generated-file-shebangs 'patch-cargo-checksums patch-cargo-checksums)))
(define* (cargo-build #:key inputs (phases %standard-phases)
#:allow-other-keys #:rest args)

View file

@ -135,6 +135,9 @@ (define* (setup-go-environment #:key inputs outputs #:allow-other-keys)
where executables (\"commands\") are installed to. This phase is sometimes used
by packages that use (guix build-system gnu) but have a handful of Go
dependencies, so it should be self-contained."
;; The Go cache is required starting in Go 1.12. We don't actually use it but
;; we need it to be a writable directory.
(setenv "GOCACHE" "/tmp/go-cache")
;; Using the current working directory as GOPATH makes it easier for packagers
;; who need to manipulate the unpacked source code.
(setenv "GOPATH" (getcwd))

View file

@ -51,13 +51,15 @@ (define (entry-type name properties)
((? symbol? type)
type)))
(define (dot-prefixed? file)
(string-prefix? "." file))
;; Use 'scandir*' so we can avoid an extra 'lstat' for each entry, as
;; opposed to Guile's 'scandir' or 'file-system-fold'.
(fold-right (lambda (entry result)
(match entry
(("." . _)
result)
((".." . _)
(((? dot-prefixed?) . _)
;; Exclude ".", "..", and hidden files such as backups.
result)
((name . properties)
(let ((absolute (string-append directory "/" name)))

View file

@ -427,7 +427,9 @@ (define-gexp-compiler (program-file-compiler (file <program-file>)
(($ <program-file> name gexp guile module-path)
(gexp->script name gexp
#:module-path module-path
#:guile (or guile (default-guile))))))
#:guile (or guile (default-guile))
#:system system
#:target target))))
(define-record-type <scheme-file>
(%scheme-file name gexp splice?)
@ -1345,6 +1347,7 @@ (define* (imported-modules modules
(define* (compiled-modules modules
#:key (name "module-import-compiled")
(system (%current-system))
target
(guile (%guile-for-build))
(module-path %load-path)
(extensions '())
@ -1355,7 +1358,8 @@ (define* (compiled-modules modules
(pre-load-modules? #t))
"Return a derivation that builds a tree containing the `.go' files
corresponding to MODULES. All the MODULES are built in a context where
they can refer to each other."
they can refer to each other. When TARGET is true, cross-compile MODULES for
TARGET, a GNU triplet."
(define total (length modules))
(mlet %store-monad ((modules (imported-modules modules
@ -1374,6 +1378,12 @@ (define build
(srfi srfi-26)
(system base compile))
;; TODO: Inline this on the next rebuild cycle.
(ungexp-splicing
(if target
(gexp ((use-modules (system base target))))
(gexp ())))
(define (regular? file)
(not (member file '("." ".."))))
@ -1391,9 +1401,19 @@ (define (process-entry entry output processed)
(gexp ()))))
(ungexp (* total (if pre-load-modules? 2 1)))
entry)
(compile-file entry
#:output-file output
#:opts %auto-compilation-options)
(ungexp-splicing
(if target
(gexp ((with-target (ungexp target)
(lambda ()
(compile-file entry
#:output-file output
#:opts
%auto-compilation-options)))))
(gexp ((compile-file entry
#:output-file output
#:opts %auto-compilation-options)))))
(+ 1 processed))))
(define (process-directory directory output processed)
@ -1494,7 +1514,7 @@ (define (default-guile)
'guile-2.2))
(define* (load-path-expression modules #:optional (path %load-path)
#:key (extensions '()))
#:key (extensions '()) system target)
"Return as a monadic value a gexp that sets '%load-path' and
'%load-compiled-path' to point to MODULES, a list of module names. MODULES
are searched for in PATH. Return #f when MODULES and EXTENSIONS are empty."
@ -1502,10 +1522,13 @@ (define* (load-path-expression modules #:optional (path %load-path)
(with-monad %store-monad
(return #f))
(mlet %store-monad ((modules (imported-modules modules
#:module-path path))
#:module-path path
#:system system))
(compiled (compiled-modules modules
#:extensions extensions
#:module-path path)))
#:module-path path
#:system system
#:target target)))
(return (gexp (eval-when (expand load eval)
(set! %load-path
(cons (ungexp modules)
@ -1527,14 +1550,18 @@ (define* (load-path-expression modules #:optional (path %load-path)
(define* (gexp->script name exp
#:key (guile (default-guile))
(module-path %load-path))
(module-path %load-path)
(system (%current-system))
target)
"Return an executable script NAME that runs EXP using GUILE, with EXP's
imported modules in its search path. Look up EXP's modules in MODULE-PATH."
(mlet %store-monad ((set-load-path
(load-path-expression (gexp-modules exp)
module-path
#:extensions
(gexp-extensions exp))))
(gexp-extensions exp)
#:system system
#:target target)))
(gexp->derivation name
(gexp
(call-with-output-file (ungexp output)
@ -1554,6 +1581,8 @@ (define* (gexp->script name exp
(write '(ungexp exp) port)
(chmod port #o555))))
#:system system
#:target target
#:module-path module-path)))
(define* (gexp->file name exp #:key

View file

@ -139,29 +139,44 @@ (define (switch-to-ref repository ref)
"Switch to REPOSITORY's branch, commit or tag specified by REF. Return the
OID (roughly the commit hash) corresponding to REF."
(define obj
(match ref
(('branch . branch)
(let ((oid (reference-target
(branch-lookup repository branch BRANCH-REMOTE))))
(object-lookup repository oid)))
(('commit . commit)
(let ((len (string-length commit)))
;; 'object-lookup-prefix' appeared in Guile-Git in Mar. 2018, so we
;; can't be sure it's available. Furthermore, 'string->oid' used to
;; read out-of-bounds when passed a string shorter than 40 chars,
;; which is why we delay calls to it below.
(if (< len 40)
(if (module-defined? (resolve-interface '(git object))
'object-lookup-prefix)
(object-lookup-prefix repository (string->oid commit) len)
(raise (condition
(&message
(message "long Git object ID is required")))))
(object-lookup repository (string->oid commit)))))
(('tag . tag)
(let ((oid (reference-name->oid repository
(string-append "refs/tags/" tag))))
(object-lookup repository oid)))))
(let resolve ((ref ref))
(match ref
(('branch . branch)
(let ((oid (reference-target
(branch-lookup repository branch BRANCH-REMOTE))))
(object-lookup repository oid)))
(('commit . commit)
(let ((len (string-length commit)))
;; 'object-lookup-prefix' appeared in Guile-Git in Mar. 2018, so we
;; can't be sure it's available. Furthermore, 'string->oid' used to
;; read out-of-bounds when passed a string shorter than 40 chars,
;; which is why we delay calls to it below.
(if (< len 40)
(if (module-defined? (resolve-interface '(git object))
'object-lookup-prefix)
(object-lookup-prefix repository (string->oid commit) len)
(raise (condition
(&message
(message "long Git object ID is required")))))
(object-lookup repository (string->oid commit)))))
(('tag-or-commit . str)
(if (or (> (string-length str) 40)
(not (string-every char-set:hex-digit str)))
(resolve `(tag . ,str)) ;definitely a tag
(catch 'git-error
(lambda ()
(resolve `(tag . ,str)))
(lambda _
;; There's no such tag, so it must be a commit ID.
(resolve `(commit . ,str))))))
(('tag . tag)
(let ((oid (reference-name->oid repository
(string-append "refs/tags/" tag))))
;; Get the commit that the tag at OID refers to. This is not
;; strictly needed, but it's more consistent to always return the
;; OID of a commit.
(object-lookup repository
(tag-target-id (tag-lookup repository oid))))))))
(reset repository obj RESET_HARD)
(object-id obj))
@ -218,8 +233,8 @@ (define* (update-cached-checkout url
values: the cache directory name, and the SHA1 commit (a string) corresponding
to REF.
REF is pair whose key is [branch | commit | tag] and value the associated
data, respectively [<branch name> | <sha1> | <tag name>].
REF is pair whose key is [branch | commit | tag | tag-or-commit ] and value
the associated data: [<branch name> | <sha1> | <tag name> | <string>].
When RECURSIVE? is true, check out submodules as well, if any."
(define canonical-ref
@ -319,7 +334,7 @@ (define-record-type* <git-checkout>
git-checkout?
(url git-checkout-url)
(branch git-checkout-branch (default "master"))
(commit git-checkout-commit (default #f))
(commit git-checkout-commit (default #f)) ;#f | tag | commit
(recursive? git-checkout-recursive? (default #f)))
(define* (latest-repository-commit* url #:key ref recursive? log-port)
@ -358,7 +373,7 @@ (define-gexp-compiler (git-checkout-compiler (checkout <git-checkout>)
(($ <git-checkout> url branch commit recursive?)
(latest-repository-commit* url
#:ref (if commit
`(commit . ,commit)
`(tag-or-commit . ,commit)
`(branch . ,branch))
#:recursive? recursive?
#:log-port (current-error-port)))))

View file

@ -341,10 +341,15 @@ (define (transform-package-source-commit replacement-specs)
(define (replace old url commit)
(package
(inherit old)
(version (string-append "git."
(if (< (string-length commit) 7)
commit
(string-take commit 7))))
(version (if (and (> (string-length commit) 1)
(string-prefix? "v" commit)
(char-set-contains? char-set:digit
(string-ref commit 1)))
(string-drop commit 1) ;looks like a tag like "v1.0"
(string-append "git."
(if (< (string-length commit) 7)
commit
(string-take commit 7)))))
(source (git-checkout (url url) (commit commit)
(recursive? #t)))))

View file

@ -41,6 +41,7 @@ (define-module (guix scripts system)
delete-matching-generations)
#:use-module (guix graph)
#:use-module (guix scripts graph)
#:use-module (guix scripts system reconfigure)
#:use-module (guix build utils)
#:use-module (guix progress)
#:use-module ((guix build syscalls) #:select (terminal-columns))
@ -178,43 +179,9 @@ (define progress-bar
(return *unspecified*)))
(define* (install-bootloader installer
#:key
bootcfg bootcfg-file
target)
"Run INSTALLER, a bootloader installation script, with error handling, in
%STORE-MONAD."
(mlet %store-monad ((installer-drv (if installer
(lower-object installer)
(return #f)))
(bootcfg (lower-object bootcfg)))
(let* ((gc-root (string-append target %gc-roots-directory
"/bootcfg"))
(temp-gc-root (string-append gc-root ".new"))
(install (and installer-drv
(derivation->output-path installer-drv)))
(bootcfg (derivation->output-path bootcfg)))
;; Prepare the symlink to bootloader config file to make sure that it's
;; a GC root when 'installer-drv' completes (being a bit paranoid.)
(switch-symlinks temp-gc-root bootcfg)
(unless (false-if-exception
(begin
(install-boot-config bootcfg bootcfg-file target)
(when install
(save-load-path-excursion (primitive-load install)))))
(delete-file temp-gc-root)
(leave (G_ "failed to install bootloader ~a~%") install))
;; Register bootloader config file as a GC root so that its dependencies
;; (background image, font, etc.) are not reclaimed.
(rename-file temp-gc-root gc-root)
(return #t))))
(define* (install os-drv target
#:key (log-port (current-output-port))
bootloader-installer install-bootloader?
bootcfg bootcfg-file)
install-bootloader? bootloader bootcfg)
"Copy the closure of BOOTCFG, which includes the output of OS-DRV, to
directory TARGET. TARGET must be an absolute directory name since that's what
'register-path' expects.
@ -265,10 +232,11 @@ (define (maybe-copy to-copy)
(populate os-dir target)
(mwhen install-bootloader?
(install-bootloader bootloader-installer
#:bootcfg bootcfg
#:bootcfg-file bootcfg-file
#:target target))))))
(install-bootloader local-eval bootloader bootcfg
#:target target)
(return
(info (G_ "bootloader successfully installed on '~a'~%")
(bootloader-configuration-target bootloader))))))))
;;;
@ -335,82 +303,6 @@ (define (call-with-service-upgrade-info new-services mproc)
(warning (G_ "failed to obtain list of shepherd services~%"))
(return #f)))))
(define (upgrade-shepherd-services os)
"Upgrade the Shepherd (PID 1) by unloading obsolete services and loading new
services specified in OS and not currently running.
This is currently very conservative in that it does not stop or unload any
running service. Unloading or stopping the wrong service ('udev', say) could
bring the system down."
(define new-services
(service-value
(fold-services (operating-system-services os)
#:target-type shepherd-root-service-type)))
;; Arrange to simply emit a warning if the service upgrade fails.
(with-shepherd-error-handling
(call-with-service-upgrade-info new-services
(lambda (to-restart to-unload)
(for-each (lambda (unload)
(info (G_ "unloading service '~a'...~%") unload)
(unload-service unload))
to-unload)
(with-monad %store-monad
(munless (null? new-services)
(let ((new-service-names (map shepherd-service-canonical-name new-services))
(to-restart-names (map shepherd-service-canonical-name to-restart))
(to-start (filter shepherd-service-auto-start? new-services)))
(info (G_ "loading new services:~{ ~a~}...~%") new-service-names)
(unless (null? to-restart-names)
;; Listing TO-RESTART-NAMES in the message below wouldn't help
;; because many essential services cannot be meaningfully
;; restarted. See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22039#30>.
(format #t (G_ "To complete the upgrade, run 'herd restart SERVICE' to stop,
upgrade, and restart each service that was not automatically restarted.\n")))
(mlet %store-monad ((files (mapm %store-monad
(compose lower-object
shepherd-service-file)
new-services)))
;; Here we assume that FILES are exactly those that were computed
;; as part of the derivation that built OS, which is normally the
;; case.
(load-services/safe (map derivation->output-path files))
(for-each start-service
(map shepherd-service-canonical-name to-start))
(return #t)))))))))
(define* (switch-to-system os
#:optional (profile %system-profile))
"Make a new generation of PROFILE pointing to the directory of OS, switch to
it atomically, and then run OS's activation script."
(mlet* %store-monad ((drv (operating-system-derivation os))
(script (lower-object (operating-system-activation-script os))))
(let* ((system (derivation->output-path drv))
(number (+ 1 (generation-number profile)))
(generation (generation-file-name profile number)))
(switch-symlinks generation system)
(switch-symlinks profile generation)
(format #t (G_ "activating system...~%"))
;; The activation script may change $PATH, among others, so protect
;; against that.
(save-environment-excursion
;; Tell 'activate-current-system' what the new system is.
(setenv "GUIX_NEW_SYSTEM" system)
;; The activation script may modify '%load-path' & co., so protect
;; against that. This is necessary to ensure that
;; 'upgrade-shepherd-services' gets to see the right modules when it
;; computes derivations with 'gexp->derivation'.
(save-load-path-excursion
(primitive-load (derivation->output-path script))))
;; Finally, try to update system services.
(upgrade-shepherd-services os))))
(define-syntax-rule (unless-file-not-found exp)
(catch 'system-error
(lambda ()
@ -505,18 +397,13 @@ (define (reinstall-bootloader store number)
((bootloader-configuration-file-generator bootloader)
bootloader-config entries
#:old-entries old-entries)))
(bootcfg-file -> (bootloader-configuration-file bootloader))
(target -> "/")
(drvs -> (list bootcfg)))
(mbegin %store-monad
(show-what-to-build* drvs)
(built-derivations drvs)
;; Only install bootloader configuration file. Thus, no installer is
;; provided here.
(install-bootloader #f
#:bootcfg bootcfg
#:bootcfg-file bootcfg-file
#:target target))))))
;; Only install bootloader configuration file.
(install-bootloader local-eval bootloader-config bootcfg
#:run-installer? #f))))))
;;;
@ -820,8 +707,17 @@ (define (bootloader-installer-script installer
(condition-message c))
(exit 1)))
(#$installer #$bootloader #$device #$target)
(format #t "bootloader successfully installed on '~a'~%"
#$device))))))
(info (G_ "bootloader successfully installed on '~a'~%")
#$device))))))
(define (local-eval exp)
"Evaluate EXP, a G-Expression, in-place."
(mlet* %store-monad ((lowered (lower-gexp exp))
(_ (built-derivations (lowered-gexp-inputs lowered))))
(save-load-path-excursion
(set! %load-path (lowered-gexp-load-path lowered))
(set! %load-compiled-path (lowered-gexp-load-compiled-path lowered))
(return (primitive-eval (lowered-gexp-sexp lowered))))))
(define* (perform-action action os
#:key skip-safety-checks?
@ -858,19 +754,12 @@ (define menu-entries
(map boot-parameters->menu-entry (profile-boot-parameters))))
(define bootloader
(bootloader-configuration-bootloader (operating-system-bootloader os)))
(operating-system-bootloader os))
(define bootcfg
(and (memq action '(init reconfigure))
(operating-system-bootcfg os menu-entries)))
(define bootloader-script
(let ((installer (bootloader-installer bootloader))
(target (or target "/")))
(bootloader-installer-script installer
(bootloader-package bootloader)
bootloader-target target)))
(when (eq? action 'reconfigure)
(maybe-suggest-running-guix-pull))
@ -897,9 +786,7 @@ (define bootloader-script
;; See <http://bugs.gnu.org/21068>.
(drvs (mapm %store-monad lower-object
(if (memq action '(init reconfigure))
(if install-bootloader?
(list sys bootcfg bootloader-script)
(list sys bootcfg))
(list sys bootcfg)
(list sys))))
(% (if derivations-only?
(return (for-each (compose println derivation-file-name)
@ -909,28 +796,32 @@ (define bootloader-script
(if (or dry-run? derivations-only?)
(return #f)
(let ((bootcfg-file (bootloader-configuration-file bootloader)))
(begin
(for-each (compose println derivation->output-path)
drvs)
(case action
((reconfigure)
(newline)
(format #t (G_ "activating system...~%"))
(mbegin %store-monad
(switch-to-system os)
(switch-to-system local-eval os)
(mwhen install-bootloader?
(install-bootloader bootloader-script
#:bootcfg bootcfg
#:bootcfg-file bootcfg-file
#:target "/"))))
(install-bootloader local-eval bootloader bootcfg
#:target (or target "/"))
(return
(info (G_ "bootloader successfully installed on '~a'~%")
(bootloader-configuration-target bootloader))))
(with-shepherd-error-handling
(upgrade-shepherd-services local-eval os))))
((init)
(newline)
(format #t (G_ "initializing operating system under '~a'...~%")
target)
(install sys (canonicalize-path target)
#:install-bootloader? install-bootloader?
#:bootcfg bootcfg
#:bootcfg-file bootcfg-file
#:bootloader-installer bootloader-script))
#:bootloader bootloader
#:bootcfg bootcfg))
(else
;; All we had to do was to build SYS and maybe register an
;; indirect GC root.

View file

@ -0,0 +1,232 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.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/>.
(define-module (guix scripts system reconfigure)
#:autoload (gnu packages gnupg) (guile-gcrypt)
#:use-module (gnu bootloader)
#:use-module (gnu services)
#:use-module (gnu services herd)
#:use-module (gnu services shepherd)
#:use-module (gnu system)
#:use-module (guix gexp)
#:use-module (guix modules)
#:use-module (guix monads)
#:use-module (guix store)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:export (switch-system-program
switch-to-system
upgrade-services-program
upgrade-shepherd-services
install-bootloader-program
install-bootloader))
;;; Commentary:
;;;
;;; This module implements the "effectful" parts of system
;;; reconfiguration. Although building a system derivation is a pure
;;; operation, a number of impure operations must be carried out for the
;;; system configuration to be realized -- chiefly, creation of generation
;;; symlinks and invocation of activation scripts.
;;;
;;; Code:
;;;
;;; Profile creation.
;;;
(define* (switch-system-program os #:optional profile)
"Return an executable store item that, upon being evaluated, will create a
new generation of PROFILE pointing to the directory of OS, switch to it
atomically, and run OS's activation script."
(program-file
"switch-to-system.scm"
(with-extensions (list guile-gcrypt)
(with-imported-modules (source-module-closure '((guix config)
(guix profiles)
(guix utils)))
#~(begin
(use-modules (guix config)
(guix profiles)
(guix utils))
(define profile
(or #$profile (string-append %state-directory "/profiles/system")))
(let* ((number (1+ (generation-number profile)))
(generation (generation-file-name profile number)))
(switch-symlinks generation #$os)
(switch-symlinks profile generation)
(setenv "GUIX_NEW_SYSTEM" #$os)
(primitive-load #$(operating-system-activation-script os))))))))
(define* (switch-to-system eval os #:optional profile)
"Using EVAL, a monadic procedure taking a single G-Expression as an argument,
create a new generation of PROFILE pointing to the directory of OS, switch to
it atomically, and run OS's activation script."
(eval #~(primitive-load #$(switch-system-program os profile))))
;;;
;;; Services.
;;;
(define (running-services eval)
"Using EVAL, a monadic procedure taking a single G-Expression as an argument,
return the <live-service> objects that are currently running on MACHINE."
(define exp
(with-imported-modules '((gnu services herd))
#~(begin
(use-modules (gnu services herd))
(let ((services (current-services)))
(and services
;; 'live-service-running' is ignored, as we can't necessarily
;; serialize arbitrary objects. This should be fine for now,
;; since 'machine-current-services' is not exposed publicly,
;; and the resultant <live-service> objects are only used for
;; resolving service dependencies.
(map (lambda (service)
(list (live-service-provision service)
(live-service-requirement service)))
services))))))
(mlet %store-monad ((services (eval exp)))
(return (map (match-lambda
((provision requirement)
(live-service provision requirement #f)))
services))))
;; XXX: Currently, this does NOT attempt to restart running services. See
;; <https://issues.guix.info/issue/33508> for details.
(define (upgrade-services-program service-files to-start to-unload to-restart)
"Return an executable store item that, upon being evaluated, will upgrade
the Shepherd (PID 1) by unloading obsolete services and loading new
services. SERVICE-FILES is a list of Shepherd service files to load, and
TO-START, TO-UNLOAD, and TO-RESTART are lists of the Shepherd services'
canonical names (symbols)."
(program-file
"upgrade-shepherd-services.scm"
(with-imported-modules '((gnu services herd))
#~(begin
(use-modules (gnu services herd)
(srfi srfi-1))
;; Load the service files for any new services.
(load-services/safe '#$service-files)
;; Unload obsolete services and start new services.
(for-each unload-service '#$to-unload)
(for-each start-service '#$to-start)))))
(define* (upgrade-shepherd-services eval os)
"Using EVAL, a monadic procedure taking a single G-Expression as an argument,
upgrade the Shepherd (PID 1) by unloading obsolete services and loading new
services as defined by OS."
(define target-services
(service-value
(fold-services (operating-system-services os)
#:target-type shepherd-root-service-type)))
(mlet* %store-monad ((live-services (running-services eval)))
(let*-values (((to-unload to-restart)
(shepherd-service-upgrade live-services target-services)))
(let* ((to-unload (map live-service-canonical-name to-unload))
(to-restart (map shepherd-service-canonical-name to-restart))
(to-start (lset-difference eqv?
(map shepherd-service-canonical-name
target-services)
(map live-service-canonical-name
live-services)))
(service-files (map shepherd-service-file target-services)))
(eval #~(primitive-load #$(upgrade-services-program service-files
to-start
to-unload
to-restart)))))))
;;;
;;; Bootloader configuration.
;;;
(define (install-bootloader-program installer bootloader-package bootcfg
bootcfg-file device target)
"Return an executable store item that, upon being evaluated, will install
BOOTCFG to BOOTCFG-FILE, a target file name, on DEVICE, a file system device,
at TARGET, a mount point, and subsequently run INSTALLER from
BOOTLOADER-PACKAGE."
(program-file
"install-bootloader.scm"
(with-extensions (list guile-gcrypt)
(with-imported-modules (source-module-closure '((gnu build bootloader)
(gnu build install)
(guix store)
(guix utils)))
#~(begin
(use-modules (gnu build bootloader)
(gnu build install)
(guix build utils)
(guix store)
(guix utils)
(ice-9 binary-ports)
(srfi srfi-34)
(srfi srfi-35))
(let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg"))
(temp-gc-root (string-append gc-root ".new")))
(switch-symlinks temp-gc-root gc-root)
(install-boot-config #$bootcfg #$bootcfg-file #$target)
;; Preserve the previous activation's garbage collector root
;; until the bootloader installer has run, so that a failure in
;; the bootloader's installer script doesn't leave the user with
;; a broken installation.
(when #$installer
(catch #t
(lambda ()
(#$installer #$bootloader-package #$device #$target))
(lambda args
(delete-file temp-gc-root)
(apply throw args))))
(rename-file temp-gc-root gc-root)))))))
(define* (install-bootloader eval configuration bootcfg
#:key
(run-installer? #t)
(target "/"))
"Using EVAL, a monadic procedure taking a single G-Expression as an argument,
configure the bootloader on TARGET such that OS will be booted by default and
additional configurations specified by MENU-ENTRIES can be selected."
(let* ((bootloader (bootloader-configuration-bootloader configuration))
(installer (and run-installer?
(bootloader-installer bootloader)))
(package (bootloader-package bootloader))
(device (bootloader-configuration-target configuration))
(bootcfg-file (bootloader-configuration-file bootloader)))
(eval #~(primitive-load #$(install-bootloader-program installer
package
bootcfg
bootcfg-file
device
target)))))

View file

@ -1104,6 +1104,25 @@ (define-public %stupid-thing ,text))
(return (and (zero? (close-pipe pipe))
(= 42 (string->number str)))))))))
(test-assertm "program-file #:system"
(let* ((exp (with-imported-modules '((guix build utils))
(gexp (begin
(use-modules (guix build utils))
(display "hi!")))))
(system (if (string=? (%current-system) "x86_64-linux")
"armhf-linux"
"x86_64-linux"))
(file (program-file "program" exp)))
(mlet %store-monad ((drv (lower-object file system)))
(return (and (string=? (derivation-system drv) system)
(find (lambda (input)
(let ((drv (pk (derivation-input-derivation input))))
(and (string=? (derivation-name drv)
"module-import-compiled")
(string=? (derivation-system drv)
system))))
(derivation-inputs drv)))))))
(test-assertm "scheme-file"
(let* ((text (plain-file "foo" "Hello, world!"))
(scheme (scheme-file "bar" #~(list "foo" #$text))))

View file

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@ -52,5 +52,11 @@ guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-git.9e3eacd
test "$v0_1_0_drv" != "$latest_drv"
test "$v0_1_0_drv" != "$orig_drv"
v0_1_0_drv="`guix build guix --with-commit=guile-gcrypt=v0.1.0 -d`"
guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-git.v0.1.0
guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-9e3eacd
test "$v0_1_0_drv" != "$latest_drv"
test "$v0_1_0_drv" != "$orig_drv"
if guix build guix --with-commit=guile-gcrypt=000 -d
then false; else true; fi

View file

@ -26,10 +26,6 @@ (define-module (test-services)
#:use-module (srfi srfi-64)
#:use-module (ice-9 match))
(define live-service
(@@ (gnu services herd) live-service))
(test-begin "services")
(test-equal "services, default value"