Merge branch 'master' into core-updates

This commit is contained in:
Mark H Weaver 2019-08-29 17:19:18 -04:00
commit 0481289cbc
No known key found for this signature in database
GPG Key ID: 7CEF29847562C516
100 changed files with 8227 additions and 3206 deletions

View File

@ -851,6 +851,39 @@ cuirass-jobs.scm: $(GOBJECTS)
.PHONY: clean-go make-go as-derivation .PHONY: clean-go make-go as-derivation
.PHONY: update-guix-package update-NEWS release .PHONY: update-guix-package update-NEWS release
# Downloading up-to-date PO files.
# make-download-po-rule DOMAIN DIRECTORY [FILE-NAME-PREFIX]
define make-download-po-rule
download-po.$(1):
if [ -f "$(top_srcdir)/$(2)/LINGUAS" ]; then \
LINGUAS="`grep -v '^[[:blank:]]*#' < $(top_srcdir)/$(2)/LINGUAS`" ; \
else \
LINGUAS="`(cd $(top_srcdir)/$(2); \
for i in *.po; do echo $$$$i; done) | cut -d . -f 2`" ; \
fi ; \
for lang in $$$$LINGUAS; do \
if wget -nv -O "$(top_srcdir)/$(2)/$(3)$$$$lang.po.tmp" \
"https://translationproject.org/latest/$(1)/$$$$lang.po" ; \
then \
mv "$(top_srcdir)/$(2)/$(3)$$$$lang.po"{.tmp,} ; \
else \
rm "$(top_srcdir)/$(2)/$(3)$$$$lang.po.tmp" ; \
fi ; \
done
.PHONY: download-po.$(1)
endef
$(eval $(call make-download-po-rule,guix,po/guix))
$(eval $(call make-download-po-rule,guix-packages,po/packages))
$(eval $(call make-download-po-rule,guix-manual,po/doc,guix-manual.))
download-po: $(foreach domain,guix guix-packages guix-manual,download-po.$(domain))
.PHONY: download-po
## -------------- ## ## -------------- ##
## Silent rules. ## ## Silent rules. ##
## -------------- ## ## -------------- ##

View File

@ -49,7 +49,7 @@ Copyright @copyright{} 2017 Christopher Allan Webber@*
Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017, 2018 Marius Bakke@*
Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Hartmut Goebel@*
Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017 Maxim Cournoyer@*
Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017, 2018, 2019 Tobias Geerinckx-Rice@*
Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 George Clemmer@*
Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017 Andy Wingo@*
Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@*
@ -5854,11 +5854,10 @@ should be added to the package definition via the
In its @code{configure} phase, this build system will make any source inputs In its @code{configure} phase, this build system will make any source inputs
specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs}
parameters available to cargo. The @code{update-cargo-lock} phase will, parameters available to cargo. It will also remove an included
when there is a @code{Cargo.lock} file, update the @code{Cargo.lock} file @code{Cargo.lock} file to be recreated by @code{cargo} during the
with the inputs and their versions available at build time. The @code{build} phase. The @code{install} phase installs any crate the binaries
@code{install} phase installs any crate the binaries if they are defined by if they are defined by the crate.
the crate.
@end defvr @end defvr
@cindex Clojure (programming language) @cindex Clojure (programming language)
@ -6112,7 +6111,7 @@ interpreter version.
By default guix calls @code{setup.py} under control of By default guix calls @code{setup.py} under control of
@code{setuptools}, much like @command{pip} does. Some packages are not @code{setuptools}, much like @command{pip} does. Some packages are not
compatible with setuptools (and pip), thus you can disable this by compatible with setuptools (and pip), thus you can disable this by
setting the @code{#:use-setuptools} parameter to @code{#f}. setting the @code{#:use-setuptools?} parameter to @code{#f}.
@end defvr @end defvr
@defvr {Scheme Variable} perl-build-system @defvr {Scheme Variable} perl-build-system
@ -8629,8 +8628,8 @@ When @code{--archive=bioconductor} is added, metadata is imported from
packages for for the analysis and comprehension of high-throughput packages for for the analysis and comprehension of high-throughput
genomic data in bioinformatics. genomic data in bioinformatics.
Information is extracted from the @code{DESCRIPTION} file of a package Information is extracted from the @code{DESCRIPTION} file contained in the
published on the web interface of the Bioconductor SVN repository. package archive.
The command below imports metadata for the @code{GenomicRanges} The command below imports metadata for the @code{GenomicRanges}
R package: R package:
@ -8639,6 +8638,14 @@ R package:
guix import cran --archive=bioconductor GenomicRanges guix import cran --archive=bioconductor GenomicRanges
@end example @end example
Finally, you can also import R packages that have not yet been published on
CRAN or Bioconductor as long as they are in a git repository. Use
@code{--archive=git} followed by the URL of the git repository:
@example
guix import cran --archive=git https://github.com/immunogenomics/harmony
@end example
@item texlive @item texlive
@cindex TeX Live @cindex TeX Live
@cindex CTAN @cindex CTAN
@ -12442,6 +12449,40 @@ gexps to introduce job definitions that are passed to mcron
%base-services))) %base-services)))
@end lisp @end lisp
For more complex jobs defined in Scheme where you need control over the top
level, for instance to introduce a @code{use-modules} form, you can move your
code to a separate program using the @code{program-file} procedure of the
@code{(guix gexp)} module (@pxref{G-Expressions}). The example below
illustrates that.
@lisp
(define %battery-alert-job
;; Beep when the battery percentage falls below %MIN-LEVEL.
#~(job
'(next-minute (range 0 60 1))
#$(program-file
"battery-alert.scm"
(with-imported-modules (source-module-closure
'((guix build utils)))
#~(begin
(define %min-level 20)
(use-modules (guix build utils)
(ice-9 popen)
(ice-9 regex)
(ice-9 textual-ports)
(srfi srfi-2))
(setenv "LC_ALL" "C") ;ensure English output
(and-let* ((input-pipe (open-pipe*
OPEN_READ
#$(file-append acpi "/bin/acpi")))
(output (get-string-all input-pipe))
(m (string-match "Discharging, ([0-9]+)%" output))
(level (string->number (match:substring m 1)))
((< level %min-level)))
(format #t "warning: Battery level is low (~a%)~%" level)
(invoke #$(file-append beep "/bin/beep") "-r5")))))))
@end lisp
@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, @xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron},
for more information on mcron job specifications. Below is the for more information on mcron job specifications. Below is the
reference of the mcron service. reference of the mcron service.
@ -14723,11 +14764,14 @@ Defaults to @samp{()}.
@deftypevr {@code{cups-configuration} parameter} ssl-options ssl-options @deftypevr {@code{cups-configuration} parameter} ssl-options ssl-options
Sets encryption options. By default, CUPS only supports encryption Sets encryption options. By default, CUPS only supports encryption
using TLS v1.0 or higher using known secure cipher suites. The using TLS v1.0 or higher using known secure cipher suites. Security is
@code{AllowRC4} option enables the 128-bit RC4 cipher suites, which are reduced when @code{Allow} options are used, and enhanced when @code{Deny}
required for some older clients that do not implement newer ones. The options are used. The @code{AllowRC4} option enables the 128-bit RC4 cipher
@code{AllowSSL3} option enables SSL v3.0, which is required for some suites, which are required for some older clients. The @code{AllowSSL3} option
older clients that do not support TLS v1.0. enables SSL v3.0, which is required for some older clients that do not support
TLS v1.0. The @code{DenyCBC} option disables all CBC cipher suites. The
@code{DenyTLS1.0} option disables TLS v1.0 support - this sets the minimum
protocol version to TLS v1.1.
Defaults to @samp{()}. Defaults to @samp{()}.
@end deftypevr @end deftypevr
@ -21351,6 +21395,9 @@ Data type representing the configuration of Cuirass.
@item @code{log-file} (default: @code{"/var/log/cuirass.log"}) @item @code{log-file} (default: @code{"/var/log/cuirass.log"})
Location of the log file. Location of the log file.
@item @code{web-log-file} (default: @code{"/var/log/cuirass-web.log"})
Location of the log file used by the web interface.
@item @code{cache-directory} (default: @code{"/var/cache/cuirass"}) @item @code{cache-directory} (default: @code{"/var/cache/cuirass"})
Location of the repository cache. Location of the repository cache.

View File

@ -238,7 +238,7 @@ to it atomically and set the appropriate permissions."
(for-each (lambda (entry) (for-each (lambda (entry)
(display (entry->string entry) port) (display (entry->string entry) port)
(newline port)) (newline port))
entries)) (delete-duplicates entries)))
(if (port? file-or-port) (if (port? file-or-port)
(write-entries file-or-port) (write-entries file-or-port)

View File

@ -128,7 +128,11 @@ C_*INCLUDE_PATH."
(substitute* (string-append mingw-headers "/crt/_mingw.h") (substitute* (string-append mingw-headers "/crt/_mingw.h")
(("@MINGW_HAS_SECURE_API@") (("@MINGW_HAS_SECURE_API@")
"#define MINGW_HAS_SECURE_API 1")) "#define MINGW_HAS_SECURE_API 1")
(("@DEFAULT_WIN32_WINNT@")
"0x502")
(("@DEFAULT_MSVCRT_VERSION@")
"0x700"))
(let ((cpath (string-append mingw-headers "/include" (let ((cpath (string-append mingw-headers "/include"
":" mingw-headers "/crt" ":" mingw-headers "/crt"

View File

@ -331,8 +331,12 @@ valid."
"Return the list of packages to build." "Return the list of packages to build."
(define (adjust package result) (define (adjust package result)
(cond ((package-replacement package) (cond ((package-replacement package)
(cons* package ;build both ;; XXX: If PACKAGE and its replacement have the same name/version,
(package-replacement package) ;; then both Cuirass jobs will have the same name, which
;; effectively means that the second one will be ignored. Thus,
;; return the replacement first.
(cons* (package-replacement package) ;build both
package
result)) result))
((package-superseded package) ((package-superseded package)
result) ;don't build it result) ;don't build it

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -226,15 +227,6 @@ selected keymap."
(#$keymap-step current-installer))) (#$keymap-step current-installer)))
(configuration-formatter keyboard-layout->configuration)) (configuration-formatter keyboard-layout->configuration))
;; Run a partitioning tool allowing the user to modify
;; partition tables, partitions and their mount points.
(installer-step
(id 'partition)
(description (G_ "Partitioning"))
(compute (lambda _
((installer-partition-page current-installer))))
(configuration-formatter user-partitions->configuration))
;; Ask the user to input a hostname for the system. ;; Ask the user to input a hostname for the system.
(installer-step (installer-step
(id 'hostname) (id 'hostname)
@ -267,6 +259,17 @@ selected keymap."
((installer-services-page current-installer)))) ((installer-services-page current-installer))))
(configuration-formatter system-services->configuration)) (configuration-formatter system-services->configuration))
;; Run a partitioning tool allowing the user to modify
;; partition tables, partitions and their mount points.
;; Do this last so the user has something to boot if any
;; of the previous steps didn't go as expected.
(installer-step
(id 'partition)
(description (G_ "Partitioning"))
(compute (lambda _
((installer-partition-page current-installer))))
(configuration-formatter user-partitions->configuration))
(installer-step (installer-step
(id 'final) (id 'final)
(description (G_ "Configuration file")) (description (G_ "Configuration file"))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -75,7 +76,7 @@ this page to TITLE."
#:key #:key
(allow-empty-input? #f) (allow-empty-input? #f)
(default-text #f) (default-text #f)
(input-hide-checkbox? #f) (input-visibility-checkbox? #f)
(input-field-width 40) (input-field-width 40)
(input-flags 0)) (input-flags 0))
"Run a page to prompt user for an input. The given TEXT will be displayed "Run a page to prompt user for an input. The given TEXT will be displayed
@ -88,8 +89,8 @@ input box, such as FLAG-PASSWORD."
input-field-width input-field-width
#:flags FLAG-BORDER)) #:flags FLAG-BORDER))
(input-visible-cb (input-visible-cb
(make-checkbox -1 -1 (G_ "Hide") #\x "x ")) (make-checkbox -1 -1 (G_ "Show") #\space "x "))
(input-flags* (if input-hide-checkbox? (input-flags* (if input-visibility-checkbox?
(logior FLAG-PASSWORD FLAG-SCROLL (logior FLAG-PASSWORD FLAG-SCROLL
input-flags) input-flags)
input-flags)) input-flags))
@ -102,7 +103,7 @@ input box, such as FLAG-PASSWORD."
(apply (apply
horizontal-stacked-grid horizontal-stacked-grid
GRID-ELEMENT-COMPONENT input-entry GRID-ELEMENT-COMPONENT input-entry
`(,@(if input-hide-checkbox? `(,@(if input-visibility-checkbox?
(list GRID-ELEMENT-COMPONENT input-visible-cb) (list GRID-ELEMENT-COMPONENT input-visible-cb)
'()))) '())))
GRID-ELEMENT-COMPONENT ok-button)) GRID-ELEMENT-COMPONENT ok-button))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -55,7 +56,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
(entry-home-directory (make-entry -1 -1 entry-width (entry-home-directory (make-entry -1 -1 entry-width
#:initial-value home-directory)) #:initial-value home-directory))
(password-visible-cb (password-visible-cb
(make-checkbox -1 -1 (G_ "Hide") #\x "x ")) (make-checkbox -1 -1 (G_ "Show") #\space "x "))
(entry-password (make-entry -1 -1 entry-width (entry-password (make-entry -1 -1 entry-width
#:flags (logior FLAG-PASSWORD #:flags (logior FLAG-PASSWORD
FLAG-SCROLL))) FLAG-SCROLL)))
@ -156,7 +157,7 @@ a thunk, if the confirmation doesn't match PASSWORD, and return its result."
(run-input-page (G_ "Please confirm the password.") (run-input-page (G_ "Please confirm the password.")
(G_ "Password confirmation required") (G_ "Password confirmation required")
#:allow-empty-input? #t #:allow-empty-input? #t
#:input-hide-checkbox? #t)) #:input-visibility-checkbox? #t))
(if (string=? password confirmation) (if (string=? password confirmation)
password password
@ -173,7 +174,7 @@ a thunk, if the confirmation doesn't match PASSWORD, and return its result."
(run-input-page (G_ "Please choose a password for the system \ (run-input-page (G_ "Please choose a password for the system \
administrator (\"root\").") administrator (\"root\").")
(G_ "System administrator password") (G_ "System administrator password")
#:input-hide-checkbox? #t)) #:input-visibility-checkbox? #t))
(confirm-password password run-root-password-page)) (confirm-password password run-root-password-page))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net> ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -88,7 +89,8 @@ nmc_wifi_strength_bars."
(define (run-wifi-password-page) (define (run-wifi-password-page)
"Run a page prompting user for a password and return it." "Run a page prompting user for a password and return it."
(run-input-page (G_ "Please enter the wifi password.") (run-input-page (G_ "Please enter the wifi password.")
(G_ "Password required"))) (G_ "Password required")
#:input-visibility-checkbox? #t))
(define (run-wrong-password-page service-name) (define (run-wrong-password-page service-name)
"Run a page to inform user of a wrong password input." "Run a page to inform user of a wrong password input."

View File

@ -21,6 +21,7 @@
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com> # Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
# Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> # Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
# Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> # Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019 John Soo <jsoo1@asu.edu>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -99,6 +100,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/calcurse.scm \ %D%/packages/calcurse.scm \
%D%/packages/ccache.scm \ %D%/packages/ccache.scm \
%D%/packages/cdrom.scm \ %D%/packages/cdrom.scm \
%D%/packages/cedille.scm \
%D%/packages/certs.scm \ %D%/packages/certs.scm \
%D%/packages/check.scm \ %D%/packages/check.scm \
%D%/packages/chemistry.scm \ %D%/packages/chemistry.scm \
@ -128,6 +130,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/cryptsetup.scm \ %D%/packages/cryptsetup.scm \
%D%/packages/cups.scm \ %D%/packages/cups.scm \
%D%/packages/curl.scm \ %D%/packages/curl.scm \
%D%/packages/cvassistant.scm \
%D%/packages/cyrus-sasl.scm \ %D%/packages/cyrus-sasl.scm \
%D%/packages/databases.scm \ %D%/packages/databases.scm \
%D%/packages/datamash.scm \ %D%/packages/datamash.scm \
@ -410,6 +413,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/rdf.scm \ %D%/packages/rdf.scm \
%D%/packages/re2c.scm \ %D%/packages/re2c.scm \
%D%/packages/readline.scm \ %D%/packages/readline.scm \
%D%/packages/rednotebook.scm \
%D%/packages/regex.scm \ %D%/packages/regex.scm \
%D%/packages/robotics.scm \ %D%/packages/robotics.scm \
%D%/packages/rrdtool.scm \ %D%/packages/rrdtool.scm \
@ -697,6 +701,7 @@ dist_patch_DATA = \
%D%/packages/patches/avidemux-install-to-lib.patch \ %D%/packages/patches/avidemux-install-to-lib.patch \
%D%/packages/patches/awesome-reproducible-png.patch \ %D%/packages/patches/awesome-reproducible-png.patch \
%D%/packages/patches/azr3.patch \ %D%/packages/patches/azr3.patch \
%D%/packages/patches/bash-4.4-linux-pgrp-pipe.patch \
%D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bastet-change-source-of-unordered_set.patch \ %D%/packages/patches/bastet-change-source-of-unordered_set.patch \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \
@ -1021,6 +1026,7 @@ dist_patch_DATA = \
%D%/packages/patches/libexif-CVE-2016-6328.patch \ %D%/packages/patches/libexif-CVE-2016-6328.patch \
%D%/packages/patches/libexif-CVE-2017-7544.patch \ %D%/packages/patches/libexif-CVE-2017-7544.patch \
%D%/packages/patches/libexif-CVE-2018-20030.patch \ %D%/packages/patches/libexif-CVE-2018-20030.patch \
%D%/packages/patches/libextractor-exiv2.patch \
%D%/packages/patches/libgit2-avoid-python.patch \ %D%/packages/patches/libgit2-avoid-python.patch \
%D%/packages/patches/libgit2-mtime-0.patch \ %D%/packages/patches/libgit2-mtime-0.patch \
%D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnome-encoding.patch \
@ -1099,7 +1105,7 @@ dist_patch_DATA = \
%D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/meson-for-build-rpath.patch \
%D%/packages/patches/metabat-fix-compilation.patch \ %D%/packages/patches/metabat-fix-compilation.patch \
%D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \ %D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \ %D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \
%D%/packages/patches/monero-use-system-miniupnpc.patch \ %D%/packages/patches/monero-use-system-miniupnpc.patch \

View File

@ -3,6 +3,8 @@
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 John Soo <jsoo1@asu.edu>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -24,9 +26,11 @@
#:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-web) #:use-module (gnu packages haskell-web)
#:use-module (guix build-system emacs) #:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell) #:use-module (guix build-system haskell)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)) #:use-module (guix packages))
@ -154,3 +158,45 @@ such as Coq, Epigram and NuPRL.")
(synopsis "Emacs mode for Agda") (synopsis "Emacs mode for Agda")
(description "This Emacs mode enables interactive development with (description "This Emacs mode enables interactive development with
Agda. It also aids the input of Unicode characters."))) Agda. It also aids the input of Unicode characters.")))
(define-public agda-ial
(package
(name "agda-ial")
(version "1.5.0")
(home-page "https://github.com/cedille/ial")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0dlis6v6nzbscf713cmwlx8h9n2gxghci8y21qak3hp18gkxdp0g"))))
(build-system gnu-build-system)
(inputs
`(("agda" ,agda)))
(arguments
`(#:parallel-build? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'patch-dependencies
(lambda _ (patch-shebang "find-deps.sh") #t))
(delete 'check)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(include (string-append out "/include/agda/ial")))
(for-each (lambda (file)
(make-file-writable file)
(install-file file include))
(find-files "." "\\.agdai?(-lib)?$"))
#t))))))
(synopsis "The Iowa Agda Library")
(description
"The goal is to provide a concrete library focused on verification
examples, as opposed to mathematics. The library has a good number
of theorems for booleans, natural numbers, and lists. It also has
trees, tries, vectors, and rudimentary IO. A number of good ideas
come from Agda's standard library.")
(license license:expat)))

View File

@ -120,7 +120,7 @@ header.")
(define-public gnuastro (define-public gnuastro
(package (package
(name "gnuastro") (name "gnuastro")
(version "0.9") (version "0.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -128,7 +128,7 @@ header.")
version ".tar.lz")) version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"1c1894ixz3l8p1nmzkysgl9lz8vpqbfw1dd404kh6lvrpml7jzig")))) "0gmhmh0yddb2aql4hd5ffrr0d4hrmh4pa3yln0n186hslqinp81b"))))
(inputs (inputs
`(("cfitsio" ,cfitsio) `(("cfitsio" ,cfitsio)
("gsl" ,gsl) ("gsl" ,gsl)

View File

@ -3374,21 +3374,22 @@ on the ALSA software PCM plugin.")
(define-public snd (define-public snd
(package (package
(name "snd") (name "snd")
(version "19.5") (version "19.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/" (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz")) "snd-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0sk6iyykwi2mm3f1g4r0iqbsrwk3zmyagp6jjqkh8njbq42cjr1y")))) "0s2qv8sznvw6559bi39qj9p072azh9qcb2b86w6w8clz2azjaa76"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:out-of-source? #f ; for the 'install-doc' phase #:out-of-source? #f ; for the 'install-doc' phase
#:configure-flags #:configure-flags
(let* ((out (assoc-ref %outputs "out")) (let* ((out (assoc-ref %outputs "out"))
(docdir (string-append out "/share/doc/snd"))) (docdir (string-append out "/share/doc/"
,name "-" ,version)))
(list "--with-alsa" "--with-jack" "--with-gmp" (list "--with-alsa" "--with-jack" "--with-gmp"
(string-append "--with-doc-dir=" docdir))) (string-append "--with-doc-dir=" docdir)))
#:phases #:phases
@ -3401,7 +3402,7 @@ on the ALSA software PCM plugin.")
(for-each (for-each
(lambda (f) (lambda (f)
(install-file f doc)) (install-file f doc))
(find-files "." "\\.html$|COPYING")) (find-files "." "\\.html$"))
(copy-recursively "pix" (string-append doc "/pix")) (copy-recursively "pix" (string-append doc "/pix"))
#t)))))) #t))))))
(native-inputs (native-inputs

View File

@ -131,7 +131,7 @@ DHT, µTP, PEX and Magnet Links.")
(define-public libtorrent (define-public libtorrent
(package (package
(name "libtorrent") (name "libtorrent")
(version "0.13.6") (version "0.13.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -139,7 +139,7 @@ DHT, µTP, PEX and Magnet Links.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"012s1nwcvz5m5r4d2z9klgy2n34kpgn9kgwgzxm97zgdjs6a0f18")))) "10z9i1rc41cmmi7nx8k7k1agsx6afv09g9cl7g9zr35fyhl5l4gd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("openssl" ,openssl) (inputs `(("openssl" ,openssl)
("zlib" ,zlib))) ("zlib" ,zlib)))
@ -156,7 +156,7 @@ speed and efficiency.")
(define-public rtorrent (define-public rtorrent
(package (package
(name "rtorrent") (name "rtorrent")
(version "0.9.6") (version "0.9.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -164,7 +164,7 @@ speed and efficiency.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"03jvzw9pi2mhcm913h8qg0qw9gwjqc6lhwynb1yz1y163x7w4s8y")))) "1bs2fnf4q7mlhkhzp3i1v052v9xn8qa7g845pk9ia8hlpw207pwy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("libtorrent" ,libtorrent) (inputs `(("libtorrent" ,libtorrent)
("ncurses" ,ncurses) ("ncurses" ,ncurses)

124
gnu/packages/cedille.scm Normal file
View File

@ -0,0 +1,124 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cedille)
#:use-module (gnu packages)
#:use-module (gnu packages agda)
#:use-module (gnu packages emacs-xyz)
#:use-module (gnu packages haskell)
#:use-module (guix build-system emacs)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public cedille
(package
(name "cedille")
(version "1.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cedille/cedille")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"07kv9wncyipfjf5w4ax8h2p35g70zb1qw6zc4afd7c225xia55wp"))))
(inputs
`(("agda" ,agda)
("agda-ial" ,agda-ial)
("ghc" ,ghc-8.4)
("ghc-alex" ,ghc-alex)
("ghc-happy" ,ghc-happy)))
(build-system emacs-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-cedille-path-el
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "cedille-mode.el"
(("/usr/share/emacs/site-lisp/cedille-mode")
(string-append
out "/share/emacs/site-lisp/guix.d/cedille-"
,version)))
#t)))
(add-after 'unpack 'copy-cedille-mode
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lisp
(string-append
out "/share/emacs/site-lisp/guix.d/cedille-"
,version "/")))
(mkdir-p (string-append lisp "cedille-mode"))
(copy-recursively
"cedille-mode"
(string-append lisp "cedille-mode"))
(mkdir-p (string-append lisp "se-mode"))
(copy-recursively
"se-mode"
(string-append lisp "se-mode"))
#t)))
;; FIXME: Byte compilation fails
(delete 'build)
(replace 'check
(lambda _
(with-directory-excursion "cedille-tests"
(invoke "sh" "run-tests.sh"))))
(add-after 'unpack 'patch-libraries
(lambda _ (patch-shebang "create-libraries.sh") #t))
(add-after 'unpack 'copy-ial
(lambda* (#:key inputs #:allow-other-keys)
(copy-recursively
(string-append (assoc-ref inputs "agda-ial")
"/include/agda/ial")
"ial")
;; Ambiguous module if main is included from ial
(delete-file "ial/main.agda")
#t))
(add-after 'check 'build-cedille
;; Agda has a hard time with parallel compilation
(lambda _
(invoke "touch" "src/Templates.hs")
(make-file-writable "src/Templates.hs")
(invoke "touch" "src/templates.agda")
(make-file-writable "src/templates.agda")
(invoke "make" "--jobs=1")))
(add-after 'install 'install-cedille
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(copy-recursively
"lib" (string-append out "/lib/cedille"))
(install-file "cedille" (string-append out "/bin"))
(install-file "core/cedille-core"
(string-append out "/bin"))
#t))))))
(home-page "https://cedille.github.io/")
(synopsis
"Language based on Calculus of Dependent Lambda Eliminations")
(description
"Cedille is an interactive theorem-prover and dependently typed
programming language, based on extrinsic (aka Curry-style) type theory. This
makes it rather different from type theories like Coq and Agda, which are
intrinsic (aka Church-style). In Cedille, terms are nothing more than
annotated versions of terms of pure untyped lambda calculus. In contrast, in
Coq or Agda, the typing annotations are intrinsic parts of terms. The typing
annotations can only be erased as an optimization under certain conditions,
not by virtue of the definition of the type theory.")
(license license:expat)))

View File

@ -238,7 +238,7 @@ from forcing GEXP-PROMISE."
#:system system #:system system
#:guile-for-build guile))) #:guile-for-build guile)))
(define %chromium-version "76.0.3809.100") (define %chromium-version "76.0.3809.132")
(define %ungoogled-revision "8eba5c0df1a318012e3deab39a9add252a0d56a3") (define %ungoogled-revision "8eba5c0df1a318012e3deab39a9add252a0d56a3")
(define %debian-revision "debian/76.0.3809.87-2") (define %debian-revision "debian/76.0.3809.87-2")
(define package-revision "0") (define package-revision "0")
@ -254,7 +254,7 @@ from forcing GEXP-PROMISE."
%chromium-version ".tar.xz")) %chromium-version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0vfjfxsqf8jrmd7y08ln1lpbilwi150875zn2bawwdq87vd3mncc")))) "0hajwjf7swlgh1flpf8ljfrb2zhmcpzvrigvvxqd36g3nm04cknm"))))
(define %ungoogled-origin (define %ungoogled-origin
(origin (origin

View File

@ -47,8 +47,8 @@
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
(define-public cuirass (define-public cuirass
(let ((commit "858b6b8c8f2ae7b1ddaf4ae363147121be1f1fe8") (let ((commit "1cd2f9334dde13542732c22753c4ebde61bc95e0")
(revision "22")) (revision "23"))
(package (package
(name "cuirass") (name "cuirass")
(version (string-append "0.0.1-" revision "." (string-take commit 7))) (version (string-append "0.0.1-" revision "." (string-take commit 7)))
@ -60,7 +60,7 @@
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32
"049hg0yaakmfp27950cn0yn43r0v7bqva75xi082n8cxzi6vadgc")))) "0r3x8gv0v89brjqi8r31p6c0mblbaf2kdk2fz99jiab4pir16w87"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:modules ((guix build utils) '(#:modules ((guix build utils)

View File

@ -15097,3 +15097,42 @@ datasets, developed and maintained by the Macosko lab. It relies on
integrative non-negative matrix factorization to identify shared and integrative non-negative matrix factorization to identify shared and
dataset-specific factors.") dataset-specific factors.")
(license license:gpl3))) (license license:gpl3)))
(define-public r-harmony
;; There are no tagged commits
(let ((commit "4d1653870d4dd70fff1807c182882db1fbf9af5a")
(revision "1"))
(package
(name "r-harmony")
(version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/immunogenomics/harmony")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1gasdldr4aalr9h2q9kmm3y4i7azkgnhdn4bmvsszs7lg9xacw85"))))
(build-system r-build-system)
(propagated-inputs
`(("r-cowplot" ,r-cowplot)
("r-dplyr" ,r-dplyr)
("r-ggplot2" ,r-ggplot2)
("r-irlba" ,r-irlba)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)
("r-rcpparmadillo" ,r-rcpparmadillo)
("r-rcppprogress" ,r-rcppprogress)
("r-rlang" ,r-rlang)
("r-tibble" ,r-tibble)
("r-tidyr" ,r-tidyr)))
(home-page "https://github.com/immunogenomics/harmony")
(synopsis "Integration of single cell sequencing data")
(description
"This package provides an implementation of the Harmony algorithm for
single cell integration, described in Korsunsky et al
@url{doi.org/10.1101/461954}. The package includes a standalone Harmony
function and interfaces to external frameworks.")
(license license:gpl3))))

File diff suppressed because it is too large Load Diff

View File

@ -594,7 +594,7 @@ should only be used as part of the Guix cups-pk-helper service.")
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://www.openprinting.org/download/foomatic/" "http://www.openprinting.org/download/foomatic/"
name "-" version ".tar.gz")) "foomatic-filters-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1qrkgbm5jay2r7sh9qbyf0aiyrsl1mdc844hxf7fhw95a0zfbqm2")) "1qrkgbm5jay2r7sh9qbyf0aiyrsl1mdc844hxf7fhw95a0zfbqm2"))
@ -639,14 +639,14 @@ printer/driver specific, but spooler-independent PPD file.")
(define-public foo2zjs (define-public foo2zjs
(package (package
(name "foo2zjs") (name "foo2zjs")
(version "20190413") (version "20190517")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; XXX: This is an unversioned URL! ;; XXX: This is an unversioned URL!
(uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz") (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
(sha256 (sha256
(base32 (base32
"0djzp3ddslmzyxkjhzkhkg6qqqm02whjfnfvh5glprkshcskzlg9")))) "13gzsd26nq4brx1xzpwmg1qnr4nk7ykgi94qr1hbjqfi561prki4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases

View File

@ -0,0 +1,90 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cvassistant)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages qt)
#:use-module (gnu packages compression))
(define-public cvassistant
(package
(name "cvassistant")
(version "3.1.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/cvassistant/"
"cvassistant-" version "-src.tar.bz2"))
(sha256
(base32
"1y2680bazyiwm50gdhdd4982ckbjscrkbw2mngyk7yw708iadvr7"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-donation-banner
;; Remove dialog box with a donation link, as suggested by
;; the INSTALL file.
(lambda _
(substitute* "controllers/mainwindow.cpp"
(("//(#define NO_DONATION_PROMPT)" _ line) line))
#t))
(add-after 'unpack 'fix-quazip-directory
(lambda _
(substitute* "models/resumedocument.h"
(("quazip(/quazipfile\\.h)" _ suffix)
(string-append "quazip5" suffix)))
#t))
(add-after 'fix-quazip-directory 'fix-quazip-link
(lambda _
(substitute* "CVAssistant.pro"
(("lquazip-qt5")
"lquazip5"))
#t))
(add-after 'fix-quazip-directory 'fix-install-root
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "CVAssistant.pro"
(("/usr/(bin|share/)" _ suffix)
(string-append out "/" suffix)))
#t)))
(replace 'configure
(lambda _ (invoke "qmake"))))))
(inputs
`(("qtbase" ,qtbase)
("quazip" ,quazip)
("zlib" ,zlib)))
(home-page "https://cvassistant.sourceforge.io/")
(synopsis "Job application organizer")
(description "Whether you're looking for a job or trying to help
a friend to find one, CVAssistant is a tool for you. It helps you by
preparing resumes and cover letters and organizing your job
application process. It:
@itemize
@item Stores all your skills and experiences.
@item Creates resumes tailored for each job you apply.
@item Creates cover letters summarized to match each job
advertisement.
@item Keeps a history of job applications so you are ready when you
receive a phone call.
@item Writes resumes in your language. All languages are supported!
@end itemize")
(license license:gpl3+)))

View File

@ -2101,20 +2101,19 @@ for ODBC.")
(define-public python-pyodbc (define-public python-pyodbc
(package (package
(name "python-pyodbc") (name "python-pyodbc")
(version "4.0.26") (version "4.0.27")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyodbc" version)) (uri (pypi-uri "pyodbc" version))
(sha256 (sha256
(base32 "1qrxnf7ji5hml7z4y669k4wmk3iz2pcsr05bnn1n912asash09z5")) (base32 "1kd2i7hc1330cli72vawzby17c3039cqn1aba4i0zrjnpghjhmib"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("unixodbc" ,unixodbc))) `(("unixodbc" ,unixodbc)))
(arguments (arguments
`(;; No unit tests exist. `(#:tests? #f)) ; no unit tests exist
#:tests? #f))
(home-page "https://github.com/mkleehammer/pyodbc") (home-page "https://github.com/mkleehammer/pyodbc")
(synopsis "Python ODBC Library") (synopsis "Python ODBC Library")
(description "@code{python-pyodbc} provides a Python DB-API driver (description "@code{python-pyodbc} provides a Python DB-API driver
@ -2431,14 +2430,14 @@ You might also want to install the following optional dependencies:
(define-public python-alembic (define-public python-alembic
(package (package
(name "python-alembic") (name "python-alembic")
(version "1.0.10") (version "1.0.11")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "alembic" version)) (uri (pypi-uri "alembic" version))
(sha256 (sha256
(base32 (base32
"1dwl0264r6ri2jyrjr68am04x538ab26xwy4crqjnnhm4alwm3c2")))) "1k5hag0vahd5vrf9abx8fdj2whrwaw2iq2yp736mmxnbsn5xkdyd"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-mock" ,python-mock) `(("python-mock" ,python-mock)
@ -2449,8 +2448,7 @@ You might also want to install the following optional dependencies:
("python-mako" ,python-mako) ("python-mako" ,python-mako)
("python-editor" ,python-editor))) ("python-editor" ,python-editor)))
(home-page "https://bitbucket.org/zzzeek/alembic") (home-page "https://bitbucket.org/zzzeek/alembic")
(synopsis (synopsis "Database migration tool for SQLAlchemy")
"Database migration tool for SQLAlchemy")
(description (description
"Alembic is a lightweight database migration tool for usage with the "Alembic is a lightweight database migration tool for usage with the
SQLAlchemy Database Toolkit for Python.") SQLAlchemy Database Toolkit for Python.")

View File

@ -760,7 +760,7 @@ LVM D-Bus API).")
(define-public rmlint (define-public rmlint
(package (package
(name "rmlint") (name "rmlint")
(version "2.8.0") (version "2.9.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -769,7 +769,7 @@ LVM D-Bus API).")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1gc7gbnh0qg1kl151cv1ld87vhpm1v3pnkn7prhscdcc21jrg8nz")))) "1b5cziam14h80xrfb285fmfrzz2rligxcpsq1xsig14xf4l2875i"))))
(build-system scons-build-system) (build-system scons-build-system)
(arguments (arguments
`(#:scons ,scons-python2 `(#:scons ,scons-python2

View File

@ -481,3 +481,43 @@ use the computer and at the same time teach them a little math,
letters of the alphabet, spelling, eye-hand coordination, etc.") letters of the alphabet, spelling, eye-hand coordination, etc.")
(home-page "http://www.schoolsplay.org") (home-page "http://www.schoolsplay.org")
(license license:gpl3+))) (license license:gpl3+)))
(define-public fet
(package
(name "fet")
(version "5.39.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.lalescu.ro/liviu/fet/download/"
"fet-" version ".tar.bz2"))
(sha256
(base32
"100bmggkychqs2cavqxy7015lr4icw6k99qb03im0v4jasqqmyix"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-hardcoded-directories
(lambda* (#:key outputs #:allow-other-keys)
(substitute* (list "fet.pro"
"src/src.pro"
"src/src-cl.pro"
"src/interface/fet.cpp")
(("/usr") (assoc-ref outputs "out")))
#t))
(replace 'configure
(lambda _ (invoke "qmake" "fet.pro"))))))
(inputs
`(("qtbase" ,qtbase)))
(home-page "https://www.lalescu.ro/liviu/fet/")
(synopsis "Timetabling software")
(description "FET is a program for automatically scheduling the
timetable of a school, high-school or university. It uses a fast and
efficient timetabling algorithm.
Usually, FET is able to solve a complicated timetable in maximum 5-20
minutes. For simpler timetables, it may take a shorter time, under
5 minutes (in some cases, a matter of seconds). For extremely
difficult timetables, it may take a longer time, a matter of hours.")
(license license:agpl3+)))

View File

@ -905,6 +905,35 @@ skip set strings, which are arguments to @code{skip-chars-forward} and
@code{skip-chars-backward}.") @code{skip-chars-backward}.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-ample-regexps
(let ((commit "cbe91e148cac1ee8e223874dc956ed4cf607f046")
(revision "1"))
(package
(name "emacs-ample-regexps")
(version (git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/immerrr/ample-regexps.el")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"))))
(build-system emacs-build-system)
(native-inputs
`(("ert-runner" ,emacs-ert-runner)))
(arguments
`(#:tests? #t
#:test-command '("ert-runner" "-l" "ample-regexps")))
(home-page "https://github.com/immerrr/ample-regexps.el")
(synopsis "Compose and reuse Emacs regexps")
(description
"This package allows common parts of regexps to be easily picked out
and reused.")
(license license:gpl3+))))
(define-public emacs-reformatter (define-public emacs-reformatter
(package (package
(name "emacs-reformatter") (name "emacs-reformatter")
@ -3048,22 +3077,19 @@ for Flow files.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-elisp-demos (define-public emacs-elisp-demos
(let ((commit "4c1fbc392668662890b685ab297e950259227e06")
(version "0.1")
(revision "1"))
(package (package
(name "emacs-elisp-demos") (name "emacs-elisp-demos")
(version (git-version version revision commit)) (version "2019.08.16")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/xuchunyang/elisp-demos") (url "https://github.com/xuchunyang/elisp-demos")
(commit commit))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"01cbkmjgmzxdf02w9xgbf4bhnx1mh53vvpkri13yxfksym5zizp4")))) "0lybadq66bl4snkwph9i1y0qxln29wyfjn222ii3nfwany28cj66"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments '(#:include '("\\.el$" "\\.org$"))) (arguments '(#:include '("\\.el$" "\\.org$")))
(home-page "https://github.com/xuchunyang/elisp-demos/") (home-page "https://github.com/xuchunyang/elisp-demos/")
@ -3071,7 +3097,7 @@ for Flow files.")
(description (description
"This package injects example uses of Elisp functions into their "This package injects example uses of Elisp functions into their
respective @code{*Help*} buffers.") respective @code{*Help*} buffers.")
(license license:gpl3+)))) (license license:gpl3+)))
(define-public emacs-docker-compose-mode (define-public emacs-docker-compose-mode
(package (package
@ -3876,7 +3902,7 @@ in @code{html-mode}.")
(define-public emacs-slime (define-public emacs-slime
(package (package
(name "emacs-slime") (name "emacs-slime")
(version "2.23") (version "2.24")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3885,7 +3911,7 @@ in @code{html-mode}.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0i637n0ragpbj39hqx65nx5k99xf0464c4w6w1qpzykm6z42grky")))) (base32 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(native-inputs (native-inputs
`(("texinfo" ,texinfo))) `(("texinfo" ,texinfo)))
@ -6246,20 +6272,20 @@ not tied in the trap of backward compatibility.")
(define-public emacs-helm-swoop (define-public emacs-helm-swoop
(package (package
(name "emacs-helm-swoop") (name "emacs-helm-swoop")
(version "1.7.4") (version "2.0.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/ShingoFukuyama/helm-swoop.git") (url "https://github.com/emacsorphanage/helm-swoop.git")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0b23j1bkpg4pm310hqdhgnl4mxsj05gpl08b6kb2ja4fzrg6adsk")))) (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-helm" ,emacs-helm))) `(("emacs-helm" ,emacs-helm)))
(home-page "https://github.com/ShingoFukuyama/helm-swoop") (home-page "https://github.com/emacsorphanage/helm-swoop")
(synopsis "Filter and jump to lines in an Emacs buffer using Helm") (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
(description (description
"This package builds on the Helm interface to provide several commands "This package builds on the Helm interface to provide several commands
@ -6555,8 +6581,8 @@ end of a line and increment or decrement it.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-evil-owl (define-public emacs-evil-owl
(let ((commit "36a5fe057f44d48e377e3ef4f04b4eb30e1af309") (let ((commit "e8fe5b2f745e36db04cb71eb689bf91c5409614f")
(revision "1")) (revision "2"))
(package (package
(name "emacs-evil-owl") (name "emacs-evil-owl")
(version (git-version "0.0.1" revision commit)) (version (git-version "0.0.1" revision commit))
@ -6569,11 +6595,10 @@ end of a line and increment or decrement it.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"07a6n0gqss1qx9a50dqzqqq0gj6n7a4ykbcv1a0c9qd4fnfnm90m")))) "1g7kplna62f271135mnjdbvxk2ayx7m4gvd6l86d2394alx16nhq"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-evil" ,emacs-evil) `(("emacs-evil" ,emacs-evil)))
("emacs-posframe" ,emacs-posframe)))
(home-page "https://github.com/mamapanda/evil-owl") (home-page "https://github.com/mamapanda/evil-owl")
(synopsis "Preview candidates when using Evil registers and marks") (synopsis "Preview candidates when using Evil registers and marks")
(description (description
@ -13617,6 +13642,32 @@ integrating @code{iedit-mode} into Evil mode with an attempt at sensible
defaults.") defaults.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-evil-mc
(let ((commit "5205fe671803465149e578849bbbe803c23a8e4e")
(revision "1"))
(package
(name "emacs-evil-mc")
(version (git-version "0.0.3" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gabesoft/evil-mc.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "03pxpjjxbai4dwp84bgxh52ahh0f6ac58xi2mds1kl4v93nm7v42"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-evil" ,emacs-evil)))
(native-inputs
`(("emacs-espuds" ,emacs-espuds)))
(home-page "https://github.com/gabesoft/evil-mc")
(synopsis "Interactive search compatible with @code{multiple-cursors}")
(description "This package can be used with @code{multiple-cursors} to
provide an incremental search that moves all fake cursors in sync.")
(license license:expat))))
(define-public emacs-evil-org (define-public emacs-evil-org
(let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6")) (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
(package (package
@ -16129,12 +16180,11 @@ packages with a consistent way to use them.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-undo-propose-el (define-public emacs-undo-propose-el
(let ((commit "5f1fa99a04369a959aad01b476fe4f34229f28cd") (let ((commit "21a5cdc8ebfe8113f7039867c4abb0197c0fe71c")
(version "1.0.0")
(revision "1")) (revision "1"))
(package (package
(name "emacs-undo-propose-el") (name "emacs-undo-propose-el")
(version (git-version version revision commit)) (version (git-version "3.0.0" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -16144,7 +16194,7 @@ packages with a consistent way to use them.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1p9h1fqmva07mcs46rqrg9vqn537b615as84s9b7xh76k1r8h1c0")))) "035hav4lfxwgikg3zpb4cz1nf08qfp27awl87dqbm2ly6d74lpny"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/jackkamm/undo-propose-el") (home-page "https://github.com/jackkamm/undo-propose-el")
(synopsis "Simple and safe navigation of @code{undo} history") (synopsis "Simple and safe navigation of @code{undo} history")
@ -17364,7 +17414,8 @@ connections using TLS encryption.")
"0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m")))) "0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-all-the-icons" ,emacs-all-the-icons))) `(("emacs-flycheck" ,emacs-flycheck)
("emacs-all-the-icons" ,emacs-all-the-icons)))
(home-page (home-page
"https://gitlab.petton.fr/nico/zerodark-theme") "https://gitlab.petton.fr/nico/zerodark-theme")
(synopsis (synopsis

View File

@ -479,16 +479,17 @@ and Game Boy Color games.")
(delete 'configure) (delete 'configure)
;; Makefile is in a subdirectory. ;; Makefile is in a subdirectory.
(add-before (add-before
'build 'cd-to-project-dir 'build 'chdir-to-project-directory
(lambda _ (lambda _
(chdir "projects/unix")))) (chdir "projects/unix")
#t)))
#:make-flags (let ((out (assoc-ref %outputs "out"))) #:make-flags (let ((out (assoc-ref %outputs "out")))
(list "all" (string-append "PREFIX=" out))) (list "all" (string-append "PREFIX=" out)))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
;; As per the Makefile (in projects/unix/Makefile): ;; As per the Makefile (in projects/unix/Makefile):
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Nintendo 64 emulator core library") (synopsis "Nintendo 64 emulator core library")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -534,7 +535,7 @@ core library.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus SDL input plugin") (synopsis "Mupen64Plus SDL input plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -579,7 +580,7 @@ SDL audio plugin.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus SDL input plugin") (synopsis "Mupen64Plus SDL input plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -621,7 +622,7 @@ SDL input plugin.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus SDL input plugin") (synopsis "Mupen64Plus SDL input plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -663,7 +664,7 @@ high-level emulation (HLE) RSP processor plugin.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus SDL input plugin") (synopsis "Mupen64Plus SDL input plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -709,7 +710,7 @@ Z64 RSP processor plugin.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus Rice Video plugin") (synopsis "Mupen64Plus Rice Video plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -763,7 +764,7 @@ Arachnoid video plugin.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus Rice Video plugin") (synopsis "Mupen64Plus Rice Video plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -813,7 +814,7 @@ Glide64 video plugin.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus Rice Video plugin") (synopsis "Mupen64Plus Rice Video plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -861,7 +862,7 @@ Glide64MK2 video plugin.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus Rice Video plugin") (synopsis "Mupen64Plus Rice Video plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -916,7 +917,7 @@ Rice Video plugin.")
(string-append "APIDIR=" m64p "/include/mupen64plus"))) (string-append "APIDIR=" m64p "/include/mupen64plus")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus Z64 video plugin") (synopsis "Mupen64Plus Z64 video plugin")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
@ -1043,7 +1044,7 @@ emulation community. It provides highly accurate emulation.")
(define-public retroarch (define-public retroarch
(package (package
(name "retroarch") (name "retroarch")
(version "1.7.7") (version "1.7.8")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1052,7 +1053,7 @@ emulation community. It provides highly accurate emulation.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "026720z0vpiwr4da7l2x2yinns09fmg6yxsib203xwnixj399azi")))) (base32 "0xxd9nhqiclpkdd9crymvba37fl0xs5mikwhya68nfzcgar7w480"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
@ -1074,8 +1075,7 @@ emulation community. It provides highly accurate emulation.")
(("/bin/true") (which "true"))) (("/bin/true") (which "true")))
;; Use shared zlib. ;; Use shared zlib.
(substitute* '("libretro-common/file/archive_file_zlib.c" (substitute* '("libretro-common/file/archive_file_zlib.c"
"libretro-common/streams/trans_stream_zlib.c" "libretro-common/streams/trans_stream_zlib.c")
"network/httpserver/httpserver.c")
(("<compat/zlib.h>") "<zlib.h>")) (("<compat/zlib.h>") "<zlib.h>"))
;; The configure script does not yet accept the extra arguments ;; The configure script does not yet accept the extra arguments
;; (like CONFIG_SHELL=) passed by the default configure phase. ;; (like CONFIG_SHELL=) passed by the default configure phase.

View File

@ -65,7 +65,7 @@
(define-public efl (define-public efl
(package (package
(name "efl") (name "efl")
(version "1.22.2") (version "1.22.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -73,7 +73,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1l0wdgzxqm2y919277b1p9d37xzg808zwxxaw0nn44arh8gqk68n")))) "1j1i8cwq4ym9z34ikv35mdmv5q7q69hdp494mc6l03g9n6cl2yky"))))
(outputs '("out" ; 53 MB (outputs '("out" ; 53 MB
"include")) ; 21 MB "include")) ; 21 MB
(build-system gnu-build-system) (build-system gnu-build-system)
@ -242,7 +242,7 @@ contents and more.")
(define-public rage (define-public rage
(package (package
(name "rage") (name "rage")
(version "0.3.0") (version "0.3.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -251,7 +251,7 @@ contents and more.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0gfzdd4jg78bkmj61yg49w7bzspl5m1nh6agqgs8k7qrq9q26xqy")))) "04fdk23bbgvni212zrfy4ndg7vmshbsjgicrhckdvhay87pk9i75"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -273,20 +273,22 @@ Libraries with some extra bells and whistles.")
(define-public enlightenment (define-public enlightenment
(package (package
(name "enlightenment") (name "enlightenment")
(version "0.22.4") (version "0.23.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://download.enlightenment.org/rel/apps/" (string-append "https://download.enlightenment.org/rel/apps/"
name "/" name "-" version ".tar.xz")) "enlightenment/enlightenment-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0ygy891rrw5c7lhk539nhif77j88phvz2h0fhx172iaridy9kx2r")) "1y7x594gvyvl5zbb1rnf3clj2pm6j97n8wl5mp9x6xjmhx0d1idq"))
(patches (search-patches "enlightenment-fix-setuid-path.patch")))) (patches (search-patches "enlightenment-fix-setuid-path.patch"))))
(build-system gnu-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:phases `(#:configure-flags '("-Dsystemd=false")
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'bootstrap) ; We don't want to run the autogen script.
(add-before 'configure 'set-system-actions (add-before 'configure 'set-system-actions
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
@ -294,6 +296,7 @@ Libraries with some extra bells and whistles.")
(setxkbmap (assoc-ref inputs "setxkbmap")) (setxkbmap (assoc-ref inputs "setxkbmap"))
(utils (assoc-ref inputs "util-linux")) (utils (assoc-ref inputs "util-linux"))
(libc (assoc-ref inputs "libc")) (libc (assoc-ref inputs "libc"))
(bluez (assoc-ref inputs "bluez"))
(efl (assoc-ref inputs "efl"))) (efl (assoc-ref inputs "efl")))
;; We need to patch the path to 'base.lst' to be able ;; We need to patch the path to 'base.lst' to be able
;; to switch the keyboard layout in E. ;; to switch the keyboard layout in E.
@ -314,12 +317,14 @@ Libraries with some extra bells and whistles.")
(string-append efl "/bin/edje_cc -v %s %s %s\""))) (string-append efl "/bin/edje_cc -v %s %s %s\"")))
(substitute* "src/modules/everything/evry_plug_apps.c" (substitute* "src/modules/everything/evry_plug_apps.c"
(("/usr/bin/") "")) (("/usr/bin/") ""))
(substitute* "configure" (substitute* "data/etc/meson.build"
(("/bin/mount") (string-append utils "/bin/mount")) (("/bin/mount") (string-append utils "/bin/mount"))
(("/bin/umount") (string-append utils "/bin/umount")) (("/bin/umount") (string-append utils "/bin/umount"))
(("/usr/bin/eject") (string-append utils "/bin/eject")) (("/usr/bin/eject") (string-append utils "/bin/eject"))
(("/etc/acpi/sleep.sh force") "/run/current-system/profile/bin/loginctl suspend") (("/usr/bin/l2ping") (string-append bluez "/bin/l2ling"))
(("/etc/acpi/hibernate.sh force") "/run/current-system/profile/bin/loginctl hibernate") (("/bin/rfkill") (string-append utils "/sbin/rfkill"))
(("SUSPEND = ''") "SUSPEND = '/run/current-system/profile/bin/loginctl suspend'")
(("HIBERNATE = ''") "HIBERNATE = '/run/current-system/profile/bin/loginctl hibernate'")
(("/sbin/shutdown -h now") "/run/current-system/profile/bin/loginctl poweroff now") (("/sbin/shutdown -h now") "/run/current-system/profile/bin/loginctl poweroff now")
(("/sbin/shutdown -r now") "/run/current-system/profile/bin/loginctl reboot now")) (("/sbin/shutdown -r now") "/run/current-system/profile/bin/loginctl reboot now"))
#t)))))) #t))))))
@ -329,12 +334,14 @@ Libraries with some extra bells and whistles.")
("util-linux" ,util-linux))) ("util-linux" ,util-linux)))
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
("bluez" ,bluez)
("dbus" ,dbus) ("dbus" ,dbus)
("efl" ,efl) ("efl" ,efl)
("freetype" ,freetype) ("freetype" ,freetype)
("libxcb" ,libxcb) ("libxcb" ,libxcb)
("libxext" ,libxext) ("libxext" ,libxext)
("linux-pam" ,linux-pam) ("linux-pam" ,linux-pam)
("puleseaudio" ,pulseaudio)
("setxkbmap" ,setxkbmap) ("setxkbmap" ,setxkbmap)
("xcb-util-keysyms" ,xcb-util-keysyms) ("xcb-util-keysyms" ,xcb-util-keysyms)
("xkeyboard-config" ,xkeyboard-config))) ("xkeyboard-config" ,xkeyboard-config)))

View File

@ -85,7 +85,7 @@ formal verification.")
(define-public iverilog (define-public iverilog
(package (package
(name "iverilog") (name "iverilog")
(version "10.2") (version "10.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -93,7 +93,7 @@ formal verification.")
"verilog-" version ".tar.gz")) "verilog-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0075x5nsxwkrgn7b3635il9kw7mslckaji518pdmwdrdn7fxppln")))) "1vv88ckvfwq7mrysyjnilsrcrzm9d173kp9w5ivwh6rdw7klbgc6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("flex" ,flex) `(("flex" ,flex)

View File

@ -2,7 +2,7 @@
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2013, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
@ -138,6 +138,12 @@ printing, and psresize, for adjusting page sizes.")
(package (package
(name "ghostscript") (name "ghostscript")
(version "9.27") (version "9.27")
;; The problems addressed by GHOSTSCRIPT/FIXED are not security-related,
;; but they have a significant impact on usability, hence this graft.
;; TODO: Ungraft on next update cycle.
(replacement ghostscript/fixed)
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -269,6 +275,25 @@ output file formats and printers.")
(home-page "https://www.ghostscript.com/") (home-page "https://www.ghostscript.com/")
(license license:agpl3+))) (license license:agpl3+)))
(define-public ghostscript/fixed
;; This adds the Freetype dependency (among other things), which fixes the
;; rendering issues described in <https://issues.guix.gnu.org/issue/34877>.
(package/inherit
ghostscript
(arguments
(substitute-keyword-arguments (package-arguments ghostscript)
((#:configure-flags flags ''())
`(append (list "--disable-compile-inits"
(string-append "--with-fontpath="
(assoc-ref %build-inputs "gs-fonts")
"/share/fonts/type1/ghostscript"))
,flags))))
(native-inputs `(("pkg-config" ,pkg-config) ;needed for freetype
,@(package-native-inputs ghostscript)))
(inputs `(("gs-fonts" ,gs-fonts)
("fontconfig" ,fontconfig)
,@(package-inputs ghostscript)))))
(define-public ghostscript/x (define-public ghostscript/x
(package/inherit ghostscript (package/inherit ghostscript
(name (string-append (package-name ghostscript) "-with-x")) (name (string-append (package-name ghostscript) "-with-x"))

View File

@ -10,6 +10,7 @@
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -925,3 +926,40 @@ main loop, simply get a connection to the bus via the methods in
@code{Net::DBus::GLib} rather than the usual @code{Net::DBus} module. Every @code{Net::DBus::GLib} rather than the usual @code{Net::DBus} module. Every
other API remains the same.") other API remains the same.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public template-glib
(package
(name "template-glib")
(version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1g0zx0sxpw8kqp7p3sgl9kngaqrg9xl6cir24nrahks0vgsk98rr"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-D" "enable_gtk_doc=true")))
(inputs
`(("gettext" ,gettext-minimal)
("glib" ,glib)
("gobject-introspection" ,gobject-introspection)))
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
("glib:bin" ,glib "bin") ;; For glib-mkenums
("gtk-doc" ,gtk-doc)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(home-page "https://gitlab.gnome.org/GNOME/template-glib")
(synopsis "Library for template expansion")
(description
"Template-GLib is a library to help you generate text based on a template and
user defined state. Template-GLib does not use a language runtime, so it is
safe to use from any GObject-Introspectable language.
Template-GLib allows you to access properties on GObjects as well as call
simple methods via GObject-Introspection.")
(license license:lgpl2.1+)))

View File

@ -8053,7 +8053,7 @@ hexadecimal or ASCII. It is useful for editing binary files in general.")
(define-public libdazzle (define-public libdazzle
(package (package
(name "libdazzle") (name "libdazzle")
(version "3.30.2") (version "3.33.90")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/libdazzle/" (uri (string-append "mirror://gnome/sources/libdazzle/"
@ -8061,17 +8061,11 @@ hexadecimal or ASCII. It is useful for editing binary files in general.")
"libdazzle-" version ".tar.xz")) "libdazzle-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1m9n1gcxndly24rjkxzvmx02a2rkb6ad4cy7p6ncanm1kyp0wxvq")))) "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'disable-failing-test
(lambda _
;; Disable failing test.
(substitute* "tests/meson.build"
(("test\\('test-application") "#"))
#t))
(add-before 'check 'pre-check (add-before 'check 'pre-check
(lambda _ (lambda _
;; Tests require a running X server. ;; Tests require a running X server.

View File

@ -75,7 +75,8 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1zz2zvikvfibxnk1va3kgzs7djsmiqy7bmk8y01vbsf54ryjb3zh")))) "1zz2zvikvfibxnk1va3kgzs7djsmiqy7bmk8y01vbsf54ryjb3zh"))
(patches (search-patches "libextractor-exiv2.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; WARNING: Checks require /dev/shm to be in the build chroot, especially ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
;; not to be a symbolic link to /run/shm. ;; not to be a symbolic link to /run/shm.
@ -146,14 +147,14 @@ tool to extract metadata from a file and print the results.")
(define-public libmicrohttpd (define-public libmicrohttpd
(package (package
(name "libmicrohttpd") (name "libmicrohttpd")
(version "0.9.65") (version "0.9.66")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-" (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1jdk6wigvnkh5bi9if4rik8i9sbvdql61lm8ipgpypyxqmcpjipj")))) "06xblz77bnn29y7sl43avxbcrjbw486x3416plpr3x3l2pdx8rjf"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("curl" ,curl) `(("curl" ,curl)

View File

@ -15,6 +15,7 @@
;;; Copyright @ 2018, 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright @ 2018, 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu> ;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
;;; Copyright @ 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright @ 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -3636,3 +3637,26 @@ stack traces. It simplifies the traces to make salient information more visible
and aid debugging.") and aid debugging.")
(home-page "https://github.com/maruel/panicparse") (home-page "https://github.com/maruel/panicparse")
(license license:asl2.0))) (license license:asl2.0)))
(define-public go-github-com-robfig-cron
(package
(name "go-github-com-robfig-cron")
(version "3.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/robfig/cron")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0bvq5gxkhyj21lq32nma23i4dpwp7bswnp2yks6372ilkcyisx2z"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/robfig/cron"))
(home-page "https://godoc.org/github.com/robfig/cron")
(synopsis "Cron library for Go")
(description "This package provides a cron library for Go. It implements
a cron spec parser and job runner.")
(license license:expat)))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;

View File

@ -21,6 +21,7 @@
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net> ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1597,7 +1598,8 @@ glass artworks done by Venicians glass blowers.")
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs (inputs
`(("gobject-introspection" ,gobject-introspection) `(("gobject-introspection" ,gobject-introspection)
("gtk+" ,gtk+) ("gtk+" ,gtk+)

View File

@ -21,6 +21,7 @@
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019 swedebugia <swedebugia@riseup.net> ;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
;;; Copyright © 2019 Amar Singh <nly@disroot.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -55,6 +56,7 @@
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gperf) #:use-module (gnu packages gperf)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
@ -70,6 +72,7 @@
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
#:use-module (gnu packages noweb) #:use-module (gnu packages noweb)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -2350,22 +2353,52 @@ more expressive and flexible than the traditional @code{format} procedure.")
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("texinfo" ,texinfo) ("texinfo" ,texinfo)
("texlive" ,(texlive-union (list texlive-generic-epsf))))) ("texlive" ,(texlive-union (list texlive-generic-epsf)))))
(propagated-inputs (inputs
`(("dbus-glib" ,dbus-glib) `(("dbus-glib" ,dbus-glib)
("guile" ,guile-2.2) ("guile" ,guile-2.2)
("guile-lib" ,guile-lib) ("guile-lib" ,guile-lib)
("guile-readline" ,guile-readline) ("guile-readline" ,guile-readline)
("glib-networking" ,glib-networking)
("freeglut" ,freeglut) ("freeglut" ,freeglut)
("gssettings-desktop-schemas" ,gsettings-desktop-schemas)
("webkitgtk" ,webkitgtk))) ("webkitgtk" ,webkitgtk)))
(propagated-inputs
`(("glib-networking" ,glib-networking)
("gssettings-desktop-schemas" ,gsettings-desktop-schemas)))
(arguments (arguments
`(#:phases `(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 popen)
(ice-9 rdelim)
(ice-9 regex)
(ice-9 ftw)
(srfi srfi-26))
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'setenv (add-before 'configure 'setenv
(lambda _ (lambda _
(setenv "GUILE_AUTO_COMPILE" "0") (setenv "GUILE_AUTO_COMPILE" "0")
#t))))) #t))
(add-after 'install 'wrap-binaries
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(effective (read-line
(open-pipe* OPEN_READ
"guile" "-c"
"(display (effective-version))")))
(deps (map (cut assoc-ref inputs <>)
'("guile-lib" "guile-readline")))
(scm-path (map (cut string-append <> "/share/guile/site/"
effective) `(,out ,@deps)))
(go-path (map (cut string-append <> "/lib/guile/" effective
"/site-ccache/") `(,out ,@deps)))
(examples (filter (cut string-match "emacsy" <>)
(scandir (string-append out "/bin/"))))
(progs (map (cut string-append out "/bin/" <>)
examples)))
(map (cut wrap-program <>
`("GUILE_LOAD_PATH" ":" prefix ,scm-path)
`("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path))
progs)
#t))))))
(home-page "https://savannah.nongnu.org/projects/emacsy") (home-page "https://savannah.nongnu.org/projects/emacsy")
(synopsis "Embeddable GNU Emacs-like library using Guile") (synopsis "Embeddable GNU Emacs-like library using Guile")
(description (description
@ -2377,6 +2410,36 @@ comes with a simple counter example using FreeGLUT and browser examples
in C using Gtk+-3 and WebKitGtk.") in C using Gtk+-3 and WebKitGtk.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacsy-minimal
(let ((commit "f3bf0dbd803d7805b6ae8303253507ad13922293"))
(package
(inherit emacsy)
(name "emacsy-minimal")
(version (git-version "v0.4.1" "19" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/emacsy.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0ivy28km1p7nlrf63xx3hvrpxf5ld5amk1wcan3k7sqv1kq9mqdb"))))
(build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.2)
("guile-lib" ,guile-lib)
("guile-readline" ,guile-readline)))
(propagated-inputs '())
(arguments
`(#:configure-flags '("--without-examples")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'setenv
(lambda _
(setenv "GUILE_AUTO_COMPILE" "0")
#t))))))))
(define-public guile-jpeg (define-public guile-jpeg
(let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046") (let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046")
(revision "0")) (revision "0"))
@ -2410,3 +2473,95 @@ in C using Gtk+-3 and WebKitGtk.")
"Guile-JPEG is a Scheme library to parse JPEG image files and to "Guile-JPEG is a Scheme library to parse JPEG image files and to
perform geometrical transforms on JPEG images.") perform geometrical transforms on JPEG images.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public nomad
(package
(name "nomad")
(version "0.1.1-alpha")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/nomad.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0abz07hl5dh802ciy71xzkvkhyryypq1i94wna40a2wndbd73f7z"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("bash" ,bash)
("pkg-config" ,pkg-config)
("libtool" ,libtool)
("guile" ,guile-2.2)
("glib:bin" ,glib "bin")))
(inputs
`(("guile" ,guile-2.2)
("guile-lib" ,guile-lib)
("guile-gcrypt" ,guile-gcrypt)
("guile-readline" ,guile-readline)
("gnutls" ,gnutls)
("shroud" ,shroud)
("emacsy" ,emacsy-minimal)
("glib" ,glib)
("dbus-glib" ,dbus-glib)
("gtk+" ,gtk+)
("gtksourceview" ,gtksourceview)
("webkitgtk" ,webkitgtk)
("xorg-server" ,xorg-server)))
(propagated-inputs
`(("glib" ,glib)
("glib-networking" ,glib-networking)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 popen)
(ice-9 rdelim)
(srfi srfi-26))
#:phases
(modify-phases %standard-phases
(add-before 'check 'start-xorg-server
(lambda* (#:key inputs #:allow-other-keys)
;; The test suite requires a running X server.
(system (format #f "~a/bin/Xvfb :1 &"
(assoc-ref inputs "xorg-server")))
(setenv "DISPLAY" ":1")
#t))
(add-after 'install 'wrap-binaries
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(gio-deps (map (cut assoc-ref inputs <>) '("glib-networking"
"glib")))
(gio-mod-path (map (cut string-append <> "/lib/gio/modules")
gio-deps))
(effective (read-line (open-pipe*
OPEN_READ
"guile" "-c"
"(display (effective-version))")))
(deps (map (cut assoc-ref inputs <>)
'("emacsy" "guile-lib" "guile-readline"
"shroud")))
(scm-path (map (cut string-append <>
"/share/guile/site/" effective)
`(,out ,@deps)))
(go-path (map (cut string-append <>
"/lib/guile/" effective "/site-ccache")
`(,out ,@deps)))
(progs (map (cut string-append out "/bin/" <>)
'("nomad"))))
(map (cut wrap-program <>
`("GIO_EXTRA_MODULES" ":" prefix ,gio-mod-path)
`("GUILE_LOAD_PATH" ":" prefix ,scm-path)
`("GUILE_LOAD_COMPILED_PATH" ":"
prefix ,go-path))
progs)
#t))))))
(home-page "https://savannah.nongnu.org/projects/nomad/")
(synopsis "Extensible Web Browser in Guile Scheme")
(description "Nomad is an Emacs-like Web Browser built using Webkitgtk and
Emacsy. It has a small C layer and most browser features are fully
programmable in Guile. It has hooks, keymaps, and self documentation
features.")
(license license:gpl3+)))

View File

@ -264,14 +264,14 @@ without requiring the source code to be rewritten.")
(package (package
(inherit guile-2.2) (inherit guile-2.2)
(name "guile-next") (name "guile-next")
(version "2.9.3") (version "2.9.4")
(source (origin (source (origin
(inherit (package-source guile-2.2)) (inherit (package-source guile-2.2))
(uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-" (uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"14990wcpysgw58kij03wbgiggmi5z94jmy7wdcqnn6ny7cimkkgr")))) "1milviqhipyfx400pqhngxpxyajalzwmp597dxn5514pkk0g7v0p"))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "GUILE_LOAD_PATH") (variable "GUILE_LOAD_PATH")
@ -541,7 +541,7 @@ Guile's foreign function interface.")
(define-public guile-bytestructures (define-public guile-bytestructures
(package (package
(name "guile-bytestructures") (name "guile-bytestructures")
(version "1.0.5") (version "1.0.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/TaylanUB/scheme-bytestructures" (uri (string-append "https://github.com/TaylanUB/scheme-bytestructures"
@ -549,7 +549,7 @@ Guile's foreign function interface.")
"/bytestructures-" version ".tar.gz")) "/bytestructures-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ibk7fjwpb450lnrva4bx45sgln3pbyb645az4ansvh1spgani43")))) "07dffrmc6cnw9mmw0pdrqlkbhzzpz0hm8p26z738l2j5i84dypnk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -563,7 +563,8 @@ of the C programming language, to be used on bytevectors. C's type
system works on raw memory, and Guile works on bytevectors which are system works on raw memory, and Guile works on bytevectors which are
an abstraction over raw memory. It's also more powerful than the C an abstraction over raw memory. It's also more powerful than the C
type system, elevating types to first-class status.") type system, elevating types to first-class status.")
(license license:gpl3+))) (license license:gpl3+)
(properties '((upstream-name . "bytestructures")))))
(define-public guile2.0-bytestructures (define-public guile2.0-bytestructures
(package-for-guile-2.0 guile-bytestructures)) (package-for-guile-2.0 guile-bytestructures))

View File

@ -219,7 +219,7 @@ written in Go.")
(define-public go-ipfs (define-public go-ipfs
(package (package
(name "go-ipfs") (name "go-ipfs")
(version "0.4.19") (version "0.4.22")
(source (source
(origin (origin
(method url-fetch/tarbomb) (method url-fetch/tarbomb)
@ -227,7 +227,7 @@ written in Go.")
"https://dist.ipfs.io/go-ipfs/v" version "https://dist.ipfs.io/go-ipfs/v" version
"/go-ipfs-source.tar.gz")) "/go-ipfs-source.tar.gz"))
(sha256 (sha256
(base32 "0s04ap14p6hnipjm27nm5k8s28zv9k5g9mziyh3ibgwn7dzb1kpx")) (base32 "1gyz9yqb4y7p6vdjbcm66nvm6gjs4mdrjygdn79z3misv1pb5nkg"))
(file-name (string-append name "-" version "-source")))) (file-name (string-append name "-" version "-source"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments

View File

@ -181,31 +181,31 @@ defconfig. Return the appropriate make target if applicable, otherwise return
(define deblob-scripts-5.2 (define deblob-scripts-5.2
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
"5.2.3" "5.2.10"
(base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa") (base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa")
(base32 "0d3pp1bqchqc7vnxr1a56km5r0hzjiiipzz2xc3wgjwfi51k9kxc"))) (base32 "0d3pp1bqchqc7vnxr1a56km5r0hzjiiipzz2xc3wgjwfi51k9kxc")))
(define deblob-scripts-4.19 (define deblob-scripts-4.19
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
"4.19.61" "4.19.68"
(base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy") (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
(base32 "1fyacg28aym6virxyn7wk99qil2fjbks3iwm7p3hxy51pccn34za"))) (base32 "1fyacg28aym6virxyn7wk99qil2fjbks3iwm7p3hxy51pccn34za")))
(define deblob-scripts-4.14 (define deblob-scripts-4.14
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
"4.14.134" "4.14.140"
(base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6") (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
(base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n"))) (base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n")))
(define deblob-scripts-4.9 (define deblob-scripts-4.9
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
"4.9.186" "4.9.190"
(base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg") (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
(base32 "1gmjn5cwxydg6qb47wcmahwkv37npsjx4papynzkkdxyidmrccya"))) (base32 "0is8gn4qdd7h5l6lacvhqdch26lmrbgxfm8ab7fx8n85ha7y358w")))
(define deblob-scripts-4.4 (define deblob-scripts-4.4
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
"4.4.186" "4.4.190"
(base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw") (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
(base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10"))) (base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10")))
@ -349,42 +349,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
"linux-" version ".tar.xz")) "linux-" version ".tar.xz"))
(sha256 hash))) (sha256 hash)))
(define-public linux-libre-5.2-version "5.2.9") (define-public linux-libre-5.2-version "5.2.11")
(define-public linux-libre-5.2-pristine-source (define-public linux-libre-5.2-pristine-source
(let ((version linux-libre-5.2-version) (let ((version linux-libre-5.2-version)
(hash (base32 "1rnlnphw9rih4qhdld9ic5lnj5jh4vy5nqbj9lqwv9bc615jmw5n"))) (hash (base32 "1y9kn1zny3xpmbi5an3g7hbzywnycys8chfaw6laij1xk4gq6ahc")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.2))) deblob-scripts-5.2)))
(define-public linux-libre-4.19-version "4.19.67") (define-public linux-libre-4.19-version "4.19.69")
(define-public linux-libre-4.19-pristine-source (define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version) (let ((version linux-libre-4.19-version)
(hash (base32 "00m5k0nfcvgff70686rbhn3w8c9wc3jxqvyddw40lylaqdh3s72s"))) (hash (base32 "11yrw8ixd5ni9rlpndqsz2ihx6k8qaf35a1lf164lkhaa85pd4f0")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.19))) deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.139") (define-public linux-libre-4.14-version "4.14.141")
(define-public linux-libre-4.14-pristine-source (define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version) (let ((version linux-libre-4.14-version)
(hash (base32 "0hkhwcbxg6bry13w9kspx48b10274w6pgv200wh91fjd8jax8qlc"))) (hash (base32 "05rs411rw10hhnfzvaxmcik3pq20i1i05shvvra4bv164f0z1f8b")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.14))) deblob-scripts-4.14)))
(define-public linux-libre-4.9-version "4.9.189") (define-public linux-libre-4.9-version "4.9.190")
(define-public linux-libre-4.9-pristine-source (define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version) (let ((version linux-libre-4.9-version)
(hash (base32 "1cyhwnxkjd0qa5d48657yppjnzbi830q0p25jjv2dxs629k4bnck"))) (hash (base32 "05ha3snfk0vdqk9i27icwpq2if0h2jvshavn69ldwqm4h2h1r2py")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.9))) deblob-scripts-4.9)))
(define-public linux-libre-4.4-version "4.4.189") (define-public linux-libre-4.4-version "4.4.190")
(define-public linux-libre-4.4-pristine-source (define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version) (let ((version linux-libre-4.4-version)
(hash (base32 "0nc8v62gw89m3ykqg6nqf749fzm8y1n481ns8vny4gbinyikjhlp"))) (hash (base32 "1rf28cjrrmj7mm8xqlfld6k20ddk15j4mmyarqibjx9pk9acij7y")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.4))) deblob-scripts-4.4)))
@ -4854,14 +4854,14 @@ running boot option, and more.")
(define-public sysstat (define-public sysstat
(package (package
(name "sysstat") (name "sysstat")
(version "11.4.3") (version "12.1.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://perso.orange.fr/sebastien.godard/" (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/"
"sysstat-" version ".tar.xz")) "sysstat-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1ryf9myjzpa2279i3rvsh6fr5psm6qvr5r9kbm1sxyspapxcms82")))) "0agi17n82k363mf9f7cky3isq195hw112vs98v26yfhm0v2g6lpp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; No test suite. `(#:tests? #f ; No test suite.

View File

@ -327,14 +327,14 @@ an interpreter, a compiler, a debugger, and much more.")
(define-public sbcl (define-public sbcl
(package (package
(name "sbcl") (name "sbcl")
(version "1.5.1") (version "1.5.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2")) version "-source.tar.bz2"))
(sha256 (sha256
(base32 "08z62qba0kmm15k93s2rq7ipi769895g8iwigcp20qjh6amwnwph")) (base32 "1qmapk2hyxxqd3ajiqacz4isij0ibx7gn10n8dbmq33gm3kgliyb"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Add sbcl-bundle-systems to 'default-system-source-registry'. ;; Add sbcl-bundle-systems to 'default-system-source-registry'.
@ -364,7 +364,8 @@ an interpreter, a compiler, a debugger, and much more.")
("inetutils" ,inetutils) ;for hostname(1) ("inetutils" ,inetutils) ;for hostname(1)
("ed" ,ed) ("ed" ,ed)
("texlive" ,(texlive-union (list texlive-tex-texinfo))) ("texlive" ,(texlive-union (list texlive-tex-texinfo)))
("texinfo" ,texinfo))) ("texinfo" ,texinfo)
("zlib" ,zlib)))
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)
(guix build utils) (guix build utils)
@ -431,7 +432,9 @@ an interpreter, a compiler, a debugger, and much more.")
(_ (_
`("clisp"))) `("clisp")))
(string-append "--prefix=" (string-append "--prefix="
(assoc-ref outputs "out"))))) (assoc-ref outputs "out"))
"--with-sb-core-compression"
"--with-sb-xref-for-internals")))
(replace 'install (replace 'install
(lambda _ (lambda _
(invoke "sh" "install.sh"))) (invoke "sh" "install.sh")))
@ -440,6 +443,21 @@ an interpreter, a compiler, a debugger, and much more.")
(with-directory-excursion "doc/manual" (with-directory-excursion "doc/manual"
(and (invoke "make" "info") (and (invoke "make" "info")
(invoke "make" "dist"))))) (invoke "make" "dist")))))
(add-after 'build 'build-source
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(rc (string-append out "/lib/sbcl/sbclrc"))
(source-dir (string-append out "/share/sbcl")))
(for-each (lambda (p)
(copy-recursively p (string-append source-dir "/" p)))
'("src" "contrib"))
(mkdir-p (dirname rc))
(with-output-to-file rc
(lambda ()
(display
(string-append "(sb-ext:set-sbcl-source-location \""
source-dir "\")") )))
#t)))
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -6650,3 +6668,75 @@ discoverable library instead of many; consistency and composability, where
@code{s} is always the last argument, which makes it easier to feed pipes and @code{s} is always the last argument, which makes it easier to feed pipes and
arrows.") arrows.")
(license license:expat)))) (license license:expat))))
(define-public sbcl-cl-xmlspam
(let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
(package
(name "sbcl-cl-xmlspam")
(build-system asdf-build-system/sbcl)
(version (git-version "0.0.0" "1" commit))
(home-page "https://github.com/rogpeppe/cl-xmlspam")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(file-name (string-append name "-" version))
(sha256
(base32
"0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
(inputs
`(("cxml" ,sbcl-cxml)
("cl-ppcre" ,sbcl-cl-ppcre)))
(synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
(description "CXML does an excellent job at parsing XML elements, but what
do you do when you have a XML file that's larger than you want to fit in
memory, and you want to extract some information from it? Writing code to deal
with SAX events, or even using Klacks, quickly becomes tedious.
@code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
to write code that mirrors the structure of the XML that it's parsing. It
also makes it easy to shift paradigms when necessary - the usual Lisp control
constructs can be used interchangeably with pattern matching, and the full
power of CXML is available when necessary.")
(license license:bsd-3))))
;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
;; asdf-build-system/sbcl as of 2019-08-02. We should fix
;; asdf-build-system/sbcl.
(define-public cl-dbus
(let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
(revision "1"))
(package
(name "cl-dbus")
(build-system asdf-build-system/source)
(version (git-version "20190408" revision commit))
(home-page "https://github.com/death/dbus")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
(propagated-inputs
`(("alexandria" ,sbcl-alexandria)
("trivial-garbage" ,sbcl-trivial-garbage)
("babel" ,sbcl-babel)
("iolib" ,sbcl-iolib)
("iolib+multiplex" ,(@@ (gnu packages lisp) sbcl-iolib+multiplex))
("iolib+syscalls" ,(@@ (gnu packages lisp) sbcl-iolib+syscalls))
("iolib+streams" ,(@@ (gnu packages lisp) sbcl-iolib+streams))
("iolib+sockets" ,(@@ (gnu packages lisp) sbcl-iolib+sockets))
("ieee-floats" ,sbcl-ieee-floats)
("flexi-streams" ,sbcl-flexi-streams)
("cl-xmlspam" ,sbcl-cl-xmlspam)
("ironclad" ,sbcl-ironclad)))
(synopsis "D-Bus client library for Common Lisp")
(description "This is a Common Lisp library that allows to publish D-Bus
objects as well as send and notify other objects connected to a bus.")
(license license:bsd-2))))

View File

@ -1285,7 +1285,7 @@ facilities for checking incoming mail.")
(define-public dovecot (define-public dovecot
(package (package
(name "dovecot") (name "dovecot")
(version "2.3.6") (version "2.3.7.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1293,7 +1293,8 @@ facilities for checking incoming mail.")
(version-major+minor version) "/" (version-major+minor version) "/"
"dovecot-" version ".tar.gz")) "dovecot-" version ".tar.gz"))
(sha256 (sha256
(base32 "1irnalplb47nlc26dn7zzdi95zhrxxi3miza7p3wdsgapv0qs7gd")))) (base32
"0q0jgcv3ni2znkgyhc966ffphj1wk73y76wssh0yciqafs2f0v36"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))

View File

@ -2,8 +2,8 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2018, 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018, 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -158,6 +158,15 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(current-source-location) (current-source-location)
#:native-inputs native-inputs)) #:native-inputs native-inputs))
(define static-bash-for-bootstrap
(package
(inherit static-bash)
(source (origin
(inherit (package-source static-bash))
(patches
(cons (search-patch "bash-4.4-linux-pgrp-pipe.patch")
(origin-patches (package-source static-bash))))))))
(define %static-inputs (define %static-inputs
;; Packages that are to be used as %BOOTSTRAP-INPUTS. ;; Packages that are to be used as %BOOTSTRAP-INPUTS.
(let ((coreutils (package (inherit coreutils) (let ((coreutils (package (inherit coreutils)
@ -234,7 +243,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(("-Wl,-export-dynamic") "")) (("-Wl,-export-dynamic") ""))
#t))))))) #t)))))))
(inputs (if (%current-target-system) (inputs (if (%current-target-system)
`(("bash" ,static-bash)) `(("bash" ,static-bash-for-bootstrap))
'())))) '()))))
(tar (package (inherit tar) (tar (package (inherit tar)
(arguments (arguments
@ -280,7 +289,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
("sed" ,sed) ("sed" ,sed)
("grep" ,grep) ("grep" ,grep)
("gawk" ,gawk))) ("gawk" ,gawk)))
("bash" ,static-bash)))) ("bash" ,static-bash-for-bootstrap))))
(define %static-binaries (define %static-binaries
(package (package
@ -585,8 +594,32 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
#t)))) #t))))
(inputs `(("gcc" ,%gcc-static))))) (inputs `(("gcc" ,%gcc-static)))))
;; One package: build + remove store references
;; (define %mescc-tools-static-stripped
;; ;; A statically linked Mescc Tools with store references removed, for
;; ;; bootstrap.
;; (package
;; (inherit mescc-tools)
;; (name "mescc-tools-static-stripped")
;; (arguments
;; `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
;; "CC=gcc -static")
;; #:test-target "test"
;; #:phases (modify-phases %standard-phases
;; (delete 'configure)
;; (add-after 'install 'strip-store-references
;; (lambda _
;; (let* ((out (assoc-ref %outputs "out"))
;; (bin (string-append out "/bin")))
;; (for-each (lambda (file)
;; (let ((target (string-append bin "/" file)))
;; (format #t "strippingg `~a'...~%" target)
;; (remove-store-references target)))
;; '( "M1" "blood-elf" "hex2"))))))))))
;; Two packages: first build static, bare minimum content.
(define %mescc-tools-static (define %mescc-tools-static
;; A statically linked MesCC Tools for bootstrap. ;; A statically linked MesCC Tools.
(package (package
(inherit mescc-tools) (inherit mescc-tools)
(name "mescc-tools-static") (name "mescc-tools-static")
@ -596,12 +629,73 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
((#:make-flags flags) ((#:make-flags flags)
`(cons "CC=gcc -static" ,flags))))))) `(cons "CC=gcc -static" ,flags)))))))
(define-public %mes-minimal-stripped ;; ... next remove store references.
;; A minimal Mes without documentation dependencies, for bootstrap. (define %mescc-tools-static-stripped
;; A statically linked Mescc Tools with store references removed, for
;; bootstrap.
(package
(inherit %mescc-tools-static)
(name (string-append (package-name %mescc-tools-static) "-stripped"))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((in (assoc-ref %build-inputs "mescc-tools"))
(out (assoc-ref %outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(for-each (lambda (file)
(let ((target (string-append bin "/" file)))
(format #t "copying `~a'...~%" file)
(copy-file (string-append in "/bin/" file)
target)
(remove-store-references target)))
'( "M1" "blood-elf" "hex2"))
#t))))
(inputs `(("mescc-tools" ,%mescc-tools-static)))))
;; (define-public %mes-minimal-stripped
;; ;; A minimal Mes without documentation dependencies, for bootstrap.
;; (let ((triplet "i686-unknown-linux-gnu"))
;; (package
;; (inherit mes)
;; (name "mes-minimal-stripped")
;; (native-inputs
;; `(("guile" ,guile-2.2)))
;; (arguments
;; `(#:system "i686-linux"
;; #:strip-binaries? #f
;; #:configure-flags '("--mes")
;; #:phases
;; (modify-phases %standard-phases
;; (delete 'patch-shebangs)
;; (add-after 'install 'strip-install
;; (lambda _
;; (let* ((out (assoc-ref %outputs "out"))
;; (share (string-append out "/share")))
;; (delete-file-recursively (string-append out "/lib/guile"))
;; (delete-file-recursively (string-append share "/guile"))
;; (delete-file-recursively (string-append share "/mes/scaffold"))
;; (for-each delete-file
;; (find-files
;; (string-append share "/mes/lib") "\\.(h|c)"))
;; (for-each (lambda (dir)
;; (for-each remove-store-references
;; (find-files (string-append out "/" dir)
;; ".*")))
;; '("bin" "share/mes")))))))))))
;; Two packages: first build static, bare minimum content.
(define-public %mes-minimal
;; A minimal Mes without documentation.
(let ((triplet "i686-unknown-linux-gnu")) (let ((triplet "i686-unknown-linux-gnu"))
(package (package
(inherit mes) (inherit mes)
(name "mes-minimal-stripped") (name "mes-minimal")
(native-inputs (native-inputs
`(("guile" ,guile-2.2))) `(("guile" ,guile-2.2)))
(arguments (arguments
@ -610,6 +704,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
#:configure-flags '("--mes") #:configure-flags '("--mes")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'patch-shebangs)
(add-after 'install 'strip-install (add-after 'install 'strip-install
(lambda _ (lambda _
(let* ((out (assoc-ref %outputs "out")) (let* ((out (assoc-ref %outputs "out"))
@ -617,11 +712,36 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(delete-file-recursively (string-append out "/lib/guile")) (delete-file-recursively (string-append out "/lib/guile"))
(delete-file-recursively (string-append share "/guile")) (delete-file-recursively (string-append share "/guile"))
(delete-file-recursively (string-append share "/mes/scaffold")) (delete-file-recursively (string-append share "/mes/scaffold"))
(for-each
delete-file (for-each delete-file
(find-files (string-append share "/mes/lib") (find-files
(string-append share "/mes/lib")
"\\.(h|c)"))))))))))) "\\.(h|c)")))))))))))
;; next remove store references.
(define %mes-minimal-stripped
;; A minimal Mes with store references removed, for bootstrap.
(package
(inherit %mes-minimal)
(name (string-append (package-name %mes-minimal) "-stripped"))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((in (assoc-ref %build-inputs "mes"))
(out (assoc-ref %outputs "out")))
(copy-recursively in out)
(for-each (lambda (dir)
(for-each remove-store-references
(find-files (string-append out "/" dir)
".*")))
'("bin" "share/mes"))
#t))))
(inputs `(("mes" ,%mes-minimal)))))
(define %guile-static (define %guile-static
;; A statically-linked Guile that is relocatable--i.e., it can search ;; A statically-linked Guile that is relocatable--i.e., it can search
;; .scm and .go files relative to its installation directory, rather ;; .scm and .go files relative to its installation directory, rather
@ -680,6 +800,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
((#:tests? _ #f) ((#:tests? _ #f)
;; There are uses of `dynamic-link' in ;; There are uses of `dynamic-link' in
;; {foreign,coverage}.test that don't fly here. ;; {foreign,coverage}.test that don't fly here.
#f)
((#:parallel-build? _ #f)
;; Work around the fact that the Guile build system is
;; not deterministic when parallel-build is enabled.
#f)))))) #f))))))
(package-with-relocatable-glibc (static-package guile)))) (package-with-relocatable-glibc (static-package guile))))
@ -790,11 +914,11 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(tarball-package %guile-static-stripped)) (tarball-package %guile-static-stripped))
(define %mescc-tools-bootstrap-tarball (define %mescc-tools-bootstrap-tarball
;; A tarball with MesCC binary seed. ;; A tarball with statically-linked MesCC binary seed.
(tarball-package %mescc-tools-static)) (tarball-package %mescc-tools-static-stripped))
(define %mes-bootstrap-tarball (define %mes-bootstrap-tarball
;; A tarball with Mes ASCII Seed and binary Mes C Library. ;; A tarball with Mes binary seed.
(tarball-package %mes-minimal-stripped)) (tarball-package %mes-minimal-stripped))
(define %bootstrap-tarballs (define %bootstrap-tarballs

View File

@ -246,7 +246,7 @@ triangulations.")
(define-public python-cvxopt (define-public python-cvxopt
(package (package
(name "python-cvxopt") (name "python-cvxopt")
(version "1.2.1") (version "1.2.3")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -255,7 +255,7 @@ triangulations.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"05mnjil9palaa48xafdfh4f5pr4z7aqjr995rwl08qfyxs8y0crf")))) "1kiy2m62xgs2d5id6dnnwy4vap85cd70p7pgkb9nh23qf9xnak7b"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -36,15 +36,15 @@
(let ((triplet (string-append machine "-" "w64-mingw32"))) (let ((triplet (string-append machine "-" "w64-mingw32")))
(package (package
(name (string-append "mingw-w64" "-" machine)) (name (string-append "mingw-w64" "-" machine))
(version "5.0.4") (version "6.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://sourceforge.net/projects/mingw-w64/files/mingw-w64/" "https://sourceforge.net/projects/mingw-w64/files/mingw-w64/"
"mingw-w64-release/mingw-w64-v" version ".tar.bz2")) "mingw-w64-release/mingw-w64-v" version ".tar.bz2"))
(sha256 (sha256
(base32 "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm")) (base32 "1w28mynv500y03h92nh87rgw3fnp82qwnjbxrrzqkmr63q812pl0"))
(patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch")))) (patches (search-patches "mingw-w64-6.0.0-gcc.patch"))))
(native-inputs `(("xgcc-core" ,(cross-gcc triplet)) (native-inputs `(("xgcc-core" ,(cross-gcc triplet))
("xbinutils" ,(cross-binutils triplet)))) ("xbinutils" ,(cross-binutils triplet))))
(build-system gnu-build-system) (build-system gnu-build-system)

View File

@ -30,13 +30,13 @@
(define-public nano (define-public nano
(package (package
(name "nano") (name "nano")
(version "4.3") (version "4.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz")) (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
(sha256 (sha256
(base32 "108dzj6azqmini9bvgl26r0q1y59s3nnrw75hfzv91bs50davlq0")))) (base32 "1iw2ypq34g1gfqyhgka2fz5yj5vrlz85q6zk7amgyj286ph25wia"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)

View File

@ -465,32 +465,17 @@ sub-directory.")
(define-public stow (define-public stow
(package (package
(name "stow") (name "stow")
(version "2.3.0") (version "2.3.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/stow/stow-" (uri (string-append "mirror://gnu/stow/stow-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0h8qr2rxsrkg6d8jxjk68r23jgn1dxdxyp4bnzzinpa8sjhfl905")))) "0jrxy12ywn7smdzdnvwzjw77l6knx6jkj2rckgykg1dpf6bdkm89"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-stow
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/stow")
`("PERL5LIB" ":" prefix
,(map (lambda (i) (string-append (assoc-ref inputs i)
"/lib/perl5/site_perl"))
'("perl-clone-choose" "perl-clone" "perl-hash-merge"))))
#t))))))
(inputs (inputs
`(("perl" ,perl) `(("perl" ,perl)))
("perl-clone" ,perl-clone)
("perl-clone-choose" ,perl-clone-choose)
("perl-hash-merge" ,perl-hash-merge)))
(native-inputs (native-inputs
`(("perl-test-simple" ,perl-test-simple) `(("perl-test-simple" ,perl-test-simple)
("perl-test-output" ,perl-test-output) ("perl-test-output" ,perl-test-output)
@ -559,18 +544,19 @@ transactions from C or Python.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public diffoscope (define-public diffoscope
(let ((version "121"))
(package (package
(name "diffoscope") (name "diffoscope")
(version "120") (version version)
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://salsa.debian.org/reproducible-builds/diffoscope.git") (url "https://salsa.debian.org/reproducible-builds/diffoscope.git")
(commit "120"))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"07z9yclvfkw4326739l2ywzzihax5vdijiaqqpfix9rz1rb923aa")))) "1bw7s8qs1vnr93vhifl6pj6h6w6r6nrpc5anzhh9wx2gcaipkb3m"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
@ -604,6 +590,13 @@ transactions from C or Python.")
(("\\['getfacl',") (("\\['getfacl',")
(string-append "['" (which "getfacl") "',"))) (string-append "['" (which "getfacl") "',")))
#t)) #t))
(add-before 'check 'writable-test-data
(lambda _
;; tests/comparators/test_elf.py needs write access to
;; test data
(make-file-writable
"tests/data/ignore_readelf_errors_expected_diff")
#t))
(add-before 'check 'delete-failing-test (add-before 'check 'delete-failing-test
(lambda _ (lambda _
;; this requires /sbin to be on the path ;; this requires /sbin to be on the path
@ -627,7 +620,7 @@ transactions from C or Python.")
different. It recursively unpacks archives of many kinds and transforms different. It recursively unpacks archives of many kinds and transforms
various binary formats into more human readable forms to compare them. It can various binary formats into more human readable forms to compare them. It can
compare two tarballs, ISO images, or PDFs just as easily.") compare two tarballs, ISO images, or PDFs just as easily.")
(license license:gpl3+))) (license license:gpl3+))))
(define-public trydiffoscope (define-public trydiffoscope
(package (package

View File

@ -52,14 +52,14 @@
(define-public parallel (define-public parallel
(package (package
(name "parallel") (name "parallel")
(version "20190522") (version "20190822")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-" (uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 "0y3z9wybs3gak3zwgsby8r5gg6dwd3qlrkch0q4fn0i1j1jhmijv")))) (base32 "1mi3a18fdwcx50jg51pw1ks1fkmc2slyinff0yb3xhihi2szbskp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -236,28 +236,40 @@ platforms.")
(define-public shroud (define-public shroud
(package (package
(name "shroud") (name "shroud")
(version "0.1.1") (version "0.1.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://files.dthompson.us/shroud/shroud-" (uri (string-append "https://files.dthompson.us/shroud/shroud-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1y43yhgy2zbrk5bqj3qyx9rkcz2bma9sinlrg7dip3jqms9gq4lr")))) "1l2shrhvcwfzkar9qiwb75nhcqmx25iz55lzmz0c187nbjhqzi9p"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(arguments (arguments
'(#:phases `(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 popen)
(ice-9 rdelim))
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'wrap-shroud (add-after 'install 'wrap-shroud
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(ccachedir (string-append out "/lib/guile/2.0/ccache")) (guile (assoc-ref inputs "guile"))
(effective (read-line
(open-pipe* OPEN_READ
(string-append guile "/bin/guile")
"-c" "(display (effective-version))")))
(ccachedir (string-append out
"/lib/guile/" effective "/site-ccache"))
(prog (string-append out "/bin/shroud"))) (prog (string-append out "/bin/shroud")))
(wrap-program prog (wrap-program prog
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,ccachedir))) `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,ccachedir)))
#t)))))) #t))))))
(inputs (inputs
`(("guile" ,guile-2.0) `(("guile" ,guile-2.2)
("gnupg" ,gnupg) ("gnupg" ,gnupg)
("xclip" ,xclip))) ("xclip" ,xclip)))
(synopsis "GnuPG-based secret manager") (synopsis "GnuPG-based secret manager")

View File

@ -0,0 +1,30 @@
Unconditionally enable PGRP_PIPE on Linux (the kernel), regardless of
the kernel version in use on the build machine.
--- configure.ac.orig 1969-12-31 19:00:00.000000000 -0500
+++ configure.ac 2019-08-11 22:28:26.038841961 -0400
@@ -1092,9 +1092,7 @@
solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
- case "`uname -r`" in
- 2.[[456789]]*|[[34]]*) AC_DEFINE(PGRP_PIPE) ;;
- esac ;;
+ AC_DEFINE(PGRP_PIPE) ;;
*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
powerux*) LOCAL_LIBS="-lgen" ;;
--- configure.orig 1969-12-31 19:00:00.000000000 -0500
+++ configure 2019-08-11 22:28:10.166763255 -0400
@@ -16064,10 +16064,7 @@
solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
- case "`uname -r`" in
- 2.[456789]*|[34]*) $as_echo "#define PGRP_PIPE 1" >>confdefs.h
- ;;
- esac ;;
+ $as_echo "#define PGRP_PIPE 1" >>confdefs.h ;;
*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
powerux*) LOCAL_LIBS="-lgen" ;;

View File

@ -28,7 +28,7 @@ index 2bced6766..208e583ba 100644
} }
#endif // HAVE_EEZE || __FreeBSD_kernel__ #endif // HAVE_EEZE || __FreeBSD_kernel__
diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
index b7d9e3eba..d8a9eb82c 100644 index 0fcffa249..c1921121d 100644
--- a/src/bin/e_fm/e_fm_main_eeze.c --- a/src/bin/e_fm/e_fm_main_eeze.c
+++ b/src/bin/e_fm/e_fm_main_eeze.c +++ b/src/bin/e_fm/e_fm_main_eeze.c
@@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v) @@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v)
@ -59,10 +59,10 @@ index b7d9e3eba..d8a9eb82c 100644
} }
v->guard = ecore_timer_loop_add(E_FM_MOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_mount_timeout, v); v->guard = ecore_timer_loop_add(E_FM_MOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_mount_timeout, v);
diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c
index 6781a9b5a..8cd140f1b 100644 index 671fbcd9a..90ee04cf1 100644
--- a/src/bin/e_sys.c --- a/src/bin/e_sys.c
+++ b/src/bin/e_sys.c +++ b/src/bin/e_sys.c
@@ -653,20 +653,16 @@ _e_sys_cb_timer(void *data EINA_UNUSED) @@ -702,20 +702,16 @@ _e_sys_cb_timer(void *data EINA_UNUSED)
e_init_status_set(_("Checking System Permissions")); e_init_status_set(_("Checking System Permissions"));
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
@ -87,9 +87,9 @@ index 6781a9b5a..8cd140f1b 100644
_e_sys_hibernate_check_exe = ecore_exe_run(buf, NULL); _e_sys_hibernate_check_exe = ecore_exe_run(buf, NULL);
return ECORE_CALLBACK_CANCEL; return ECORE_CALLBACK_CANCEL;
} }
@@ -1079,8 +1075,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) @@ -1134,8 +1130,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
/* shutdown -h now */
if (e_util_immortal_check()) return 0; if (e_util_immortal_check()) return 0;
e_fm2_die();
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_sys halt", - "%s/enlightenment/utils/enlightenment_sys halt",
- e_prefix_lib_get()); - e_prefix_lib_get());
@ -97,9 +97,9 @@ index 6781a9b5a..8cd140f1b 100644
if (_e_sys_exe) if (_e_sys_exe)
{ {
if ((ecore_time_get() - _e_sys_begin_time) > 2.0) if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
@@ -1114,8 +1109,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) @@ -1170,8 +1165,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
/* shutdown -r now */
if (e_util_immortal_check()) return 0; if (e_util_immortal_check()) return 0;
e_fm2_die();
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_sys reboot", - "%s/enlightenment/utils/enlightenment_sys reboot",
- e_prefix_lib_get()); - e_prefix_lib_get());
@ -107,7 +107,7 @@ index 6781a9b5a..8cd140f1b 100644
if (_e_sys_exe) if (_e_sys_exe)
{ {
if ((ecore_time_get() - _e_sys_begin_time) > 2.0) if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
@@ -1148,8 +1142,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) @@ -1204,8 +1198,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
case E_SYS_SUSPEND: case E_SYS_SUSPEND:
/* /etc/acpi/sleep.sh force */ /* /etc/acpi/sleep.sh force */
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
@ -117,7 +117,7 @@ index 6781a9b5a..8cd140f1b 100644
if (_e_sys_exe) if (_e_sys_exe)
{ {
if ((ecore_time_get() - _e_sys_begin_time) > 2.0) if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
@@ -1208,8 +1201,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) @@ -1265,8 +1258,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
case E_SYS_HIBERNATE: case E_SYS_HIBERNATE:
/* /etc/acpi/hibernate.sh force */ /* /etc/acpi/hibernate.sh force */
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
@ -152,11 +152,26 @@ index 4b5148634..47d34b07f 100644
autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL); autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL);
eina_strbuf_free(buf); eina_strbuf_free(buf);
diff --git a/src/modules/bluez5/e_mod_main.c b/src/modules/bluez5/e_mod_main.c
index a581c466c..095d8f360 100644
--- a/src/modules/bluez5/e_mod_main.c
+++ b/src/modules/bluez5/e_mod_main.c
@@ -321,8 +321,8 @@ ebluez5_rfkill_unblock(const char *name)
if (buf)
{
eina_strbuf_append_printf
- (buf, "%s/enlightenment/utils/enlightenment_sys rfkill-unblock %s",
- e_prefix_lib_get(), name);
+ (buf, "/run/setuid-programs/enlightenment_sys rfkill-unblock %s",
+ name);
_rfkill_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL);
eina_strbuf_free(buf);
}
diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c
index f4ba259b6..ae228bae3 100644 index b66b365d8..bab0802cc 100644
--- a/src/modules/cpufreq/e_mod_main.c --- a/src/modules/cpufreq/e_mod_main.c
+++ b/src/modules/cpufreq/e_mod_main.c +++ b/src/modules/cpufreq/e_mod_main.c
@@ -1450,8 +1450,7 @@ e_modapi_init(E_Module *m) @@ -1452,8 +1452,7 @@ e_modapi_init(E_Module *m)
} }
E_CONFIG_LIMIT(cpufreq_config->poll_interval, 1, 1024); E_CONFIG_LIMIT(cpufreq_config->poll_interval, 1, 1024);
@ -166,3 +181,40 @@ index f4ba259b6..ae228bae3 100644
cpufreq_config->set_exe_path = strdup(buf); cpufreq_config->set_exe_path = strdup(buf);
if (stat(buf, &st) < 0) if (stat(buf, &st) < 0)
diff --git a/src/modules/sysinfo/cpuclock/cpuclock.c b/src/modules/sysinfo/cpuclock/cpuclock.c
index 938916e53..00d5067d0 100644
--- a/src/modules/sysinfo/cpuclock/cpuclock.c
+++ b/src/modules/sysinfo/cpuclock/cpuclock.c
@@ -80,8 +80,7 @@ _cpuclock_set_governor(const char *governor)
char buf[4096 + 100], exe[4096];
struct stat st;
- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
if (stat(exe, &st) < 0) return;
snprintf(buf, sizeof(buf),
@@ -108,8 +107,7 @@ _cpuclock_set_frequency(int frequency)
if (system(buf) != 0)
ERR("Error code from trying to run \"%s\"", buf);
#else
- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
if (stat(exe, &st) < 0) return;
snprintf(buf, sizeof(buf),
"%s %s %i", exe, "frequency", frequency);
@@ -127,8 +125,7 @@ _cpuclock_set_pstate(int min, int max, int turbo)
char buf[4096 + 100], exe[4096];
struct stat st;
- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
if (stat(exe, &st) < 0) return;
snprintf(buf, sizeof(buf),
"%s %s %i %i %i", exe, "pstate", min, max, turbo);
--
2.23.0

View File

@ -0,0 +1,124 @@
This patch allows us to build libextractor against exiv2 0.27.x.
Adapted from this upstream commit:
commit 1ecee9a47717e36cb8a3925d011d1a6de11d631c
Author: Christian Grothoff <christian@grothoff.org>
Date: Mon Jul 29 17:58:18 2019 +0200
importing patch from Gentoo/AS to address exiv2 build issue (#5820)
diff --git a/src/plugins/exiv2_extractor.cc b/src/plugins/exiv2_extractor.cc
index 8741d40..ef402a8 100644
--- a/src/plugins/exiv2_extractor.cc
+++ b/src/plugins/exiv2_extractor.cc
@@ -27,10 +27,7 @@
#include <cassert>
#include <cstring>
#include <math.h>
-#include <exiv2/exif.hpp>
-#include <exiv2/error.hpp>
-#include <exiv2/image.hpp>
-#include <exiv2/futils.hpp>
+#include <exiv2/exiv2.hpp>
/**
* Enable debugging to get error messages.
@@ -180,7 +177,7 @@ public:
*
* @return -1 on error
*/
-#if EXIV2_VERSION >= EXIV2_MAKE_VERSION(0,26,0)
+#if EXIV2_TEST_VERSION(0,26,0)
virtual size_t size (void) const;
#else
virtual long int size (void) const;
@@ -316,7 +313,11 @@ ExtractorIO::getb ()
const unsigned char *r;
if (1 != ec->read (ec->cls, &data, 1))
+#if EXIV2_TEST_VERSION(0,27,0)
+ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
+#else
throw Exiv2::BasicError<char> (42 /* error code */);
+#endif
r = (const unsigned char *) data;
return *r;
}
@@ -371,7 +372,11 @@ ExtractorIO::putb (Exiv2::byte data)
void
ExtractorIO::transfer (Exiv2::BasicIo& src)
{
+#if EXIV2_TEST_VERSION(0,27,0)
+ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
+#else
throw Exiv2::BasicError<char> (42 /* error code */);
+#endif
}
@@ -416,7 +421,11 @@ ExtractorIO::seek (long offset,
Exiv2::byte *
ExtractorIO::mmap (bool isWritable)
{
+#if EXIV2_TEST_VERSION(0,27,0)
+ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
+#else
throw Exiv2::BasicError<char> (42 /* error code */);
+#endif
}
@@ -449,7 +458,7 @@ ExtractorIO::tell (void) const
*
* @return -1 on error
*/
-#if EXIV2_VERSION >= EXIV2_MAKE_VERSION(0,26,0)
+#if EXIV2_TEST_VERSION(0,26,0)
size_t
#else
long int
@@ -504,7 +513,11 @@ ExtractorIO::eof () const
std::string
ExtractorIO::path () const
{
+#if EXIV2_TEST_VERSION(0,27,0)
+ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
+#else
throw Exiv2::BasicError<char> (42 /* error code */);
+#endif
}
@@ -517,7 +530,11 @@ ExtractorIO::path () const
std::wstring
ExtractorIO::wpath () const
{
+#if EXIV2_TEST_VERSION(0,27,0)
+ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
+#else
throw Exiv2::BasicError<char> (42 /* error code */);
+#endif
}
#endif
@@ -531,7 +548,11 @@ Exiv2::BasicIo::AutoPtr
ExtractorIO::temporary () const
{
fprintf (stderr, "throwing temporary error\n");
+#if EXIV2_TEST_VERSION(0,27,0)
+ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
+#else
throw Exiv2::BasicError<char> (42 /* error code */);
+#endif
}
@@ -697,7 +718,7 @@ EXTRACTOR_exiv2_extract_method (struct EXTRACTOR_ExtractContext *ec)
{
try
{
-#if EXIV2_MAKE_VERSION(0,23,0) <= EXIV2_VERSION
+#if !EXIV2_TEST_VERSION(0,24,0)
Exiv2::LogMsg::setLevel (Exiv2::LogMsg::mute);
#endif
std::auto_ptr<Exiv2::BasicIo> eio(new ExtractorIO (ec));

View File

@ -1,218 +0,0 @@
This patch includes
* mingw-w64-headers/include/winnt.h: compile fixes for1 gcc-4.9.3
* mingw-w64-headers/crt/math.h: Likewise
* mingw-w64-headers/crt/float.h (FLT_EPSILON,DBL_EPSILON,LDBL_EPSILON): Add
symbols.
* mingw-w64-headers/crt/stat.h (S_ISLNK,S_ISSOCK,S_ISUID,S_ISGID,S_ISLINK):
Add symbols.
(lstat): Add function.
* mingw-w64-headers/crt/_mingw_stat64.h: Likewise
* mingw-w64-headers/crt/stdlib.h (realpath): Add function.
Needed for building with gcc-4.9.3 and using with cross-libtool-2.4.6.
Upstream status: not yet presented upstream.
index 9c5cf87..74a8541 100644
--- a/mingw-w64-crt/misc/dirname.c
+++ b/mingw-w64-crt/misc/dirname.c
@@ -29,6 +29,12 @@
#define __cdecl /* this may not be defined. */
#endif
+char *__cdecl
+realpath(const char *name, char *resolved)
+{
+ return resolved ? strcpy (resolved, name) : strdup (name);
+}
+
char * __cdecl
dirname(char *path)
{
diff --git a/mingw-w64-headers/crt/_mingw_stat64.h b/mingw-w64-headers/crt/_mingw_stat64.h
index 17e754c..7d2339b 100644
--- a/mingw-w64-headers/crt/_mingw_stat64.h
+++ b/mingw-w64-headers/crt/_mingw_stat64.h
@@ -2,13 +2,17 @@
#ifdef _USE_32BIT_TIME_T
#define _fstat32 _fstat
+#define _lstat32 _lstat
#define _stat32 _stat
#define _wstat32 _wstat
#define _fstat32i64 _fstati64
+#define _lstat32i64 _lstati64
#define _stat32i64 _stati64
#define _wstat32i64 _wstati64
#else
#define _fstat _fstat64i32
+#define _lstat _lstat64i32
+#define _lstati64 _lstat64
#define _fstati64 _fstat64
#define _stat _stat64i32
#define _stati64 _stat64
diff --git a/mingw-w64-headers/crt/float.h b/mingw-w64-headers/crt/float.h
index 5874f4e..bdf4ead 100644
--- a/mingw-w64-headers/crt/float.h
+++ b/mingw-w64-headers/crt/float.h
@@ -22,6 +22,15 @@
#if (__GNUC__ < 4)
#error Corrupt install of gcc-s internal headers, or search order was changed.
#else
+
+ /* From gcc-4.9.3 float.h. */
+ #undef FLT_EPSILON
+ #undef DBL_EPSILON
+ #undef LDBL_EPSILON
+ #define FLT_EPSILON __FLT_EPSILON__
+ #define DBL_EPSILON __DBL_EPSILON__
+ #define LDBL_EPSILON __LDBL_EPSILON__
+
/* #include_next <float_ginclude.h> */
/* Number of decimal digits, q, such that any floating-point number with q
diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
index 1e970f4..99a332f 100644
--- a/mingw-w64-headers/crt/math.h
+++ b/mingw-w64-headers/crt/math.h
@@ -216,6 +216,7 @@ extern "C" {
#endif
}
+#if 0
__CRT_INLINE long double __cdecl fabsl (long double x)
{
#ifdef __arm__
@@ -226,6 +227,7 @@ extern "C" {
return res;
#endif
}
+#endif
__CRT_INLINE double __cdecl fabs (double x)
{
@@ -905,7 +907,7 @@ __mingw_choose_expr ( \
/* 7.12.7.3 */
extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
extern float __cdecl hypotf (float x, float y);
-#ifndef __CRT__NO_INLINE
+#if 0 //ndef __CRT__NO_INLINE
__CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot ((double)x, (double)y);}
#endif
extern long double __cdecl hypotl (long double, long double);
diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h
index dfc5ae4..6f0fee3 100644
--- a/mingw-w64-headers/crt/stdlib.h
+++ b/mingw-w64-headers/crt/stdlib.h
@@ -8,6 +8,7 @@
#include <crtdefs.h>
#include <limits.h>
+#include <string.h>
#if defined (__USE_MINGW_ANSI_STDIO) && ((__USE_MINGW_ANSI_STDIO + 0) != 0) && !defined (__USE_MINGW_STRTOX)
#define __USE_MINGW_STRTOX 1
@@ -676,6 +677,8 @@ unsigned long __cdecl _lrotr(unsigned long,int);
#endif /* !__NO_ISOCEXT */
+char *__cdecl realpath (const char *name, char *resolved);
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/crt/sys/stat.h b/mingw-w64-headers/crt/sys/stat.h
index ed60219..d88b4f1 100644
--- a/mingw-w64-headers/crt/sys/stat.h
+++ b/mingw-w64-headers/crt/sys/stat.h
@@ -58,16 +58,21 @@ extern "C" {
#include <_mingw_stat64.h>
#define _S_IFMT 0xF000
+#define _S_IFLNK 0xA000
+#define _S_IFSOCK 0xC000
#define _S_IFDIR 0x4000
#define _S_IFCHR 0x2000
#define _S_IFIFO 0x1000
#define _S_IFREG 0x8000
+#define _S_ISUID 0x0400
+#define _S_ISGID 0x0200
#define _S_IREAD 0x0100
#define _S_IWRITE 0x0080
#define _S_IEXEC 0x0040
_CRTIMP int __cdecl _fstat32(int _FileDes,struct _stat32 *_Stat);
_CRTIMP int __cdecl _stat32(const char *_Name,struct _stat32 *_Stat);
+ static inline int __cdecl _lstat32(const char *_Name,struct _stat32 *_Stat) {return _stat32(_Name, _Stat);}
_CRTIMP int __cdecl _fstat64(int _FileDes,struct _stat64 *_Stat);
_CRTIMP int __cdecl _fstat32i64(int _FileDes,struct _stat32i64 *_Stat);
int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat);
@@ -97,6 +102,9 @@ extern "C" {
_CRTIMP int __cdecl _stat64(const char *_Name,struct _stat64 *_Stat);
_CRTIMP int __cdecl _stat32i64(const char *_Name,struct _stat32i64 *_Stat);
int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat);
+ static inline int __cdecl _lstat64(const char *_Name,struct _stat64 *_Stat) {return _stat64(_Name, _Stat);}
+ static inline int __cdecl _lstat32i64(const char *_Name,struct _stat32i64 *_Stat) {return _stat32i64(_Name, _Stat);}
+ static inline int __cdecl _lstat64i32(const char *_Name,struct _stat64i32 *_Stat) {return _stat64i32(_Name, _Stat);}
#ifndef __CRT__NO_INLINE
__CRT_INLINE int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat)
{
@@ -132,6 +140,8 @@ extern "C" {
#ifndef NO_OLDNAMES
#define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */
+#define S_IFLNK _S_IFLNK
+#define S_IFSOCK _S_IFSOCK
#define S_IFMT _S_IFMT
#define S_IFDIR _S_IFDIR
#define S_IFCHR _S_IFCHR
@@ -162,6 +172,11 @@ extern "C" {
#define S_IXOTH (S_IXGRP >> 3)
#define S_IRWXO (S_IRWXG >> 3)
+#define S_ISUID _S_ISUID
+#define S_ISGID _S_ISGID
+
+#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
+#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
@@ -174,6 +189,7 @@ extern "C" {
int __cdecl stat(const char *_Filename,struct stat *_Stat);
int __cdecl fstat(int _Desc,struct stat *_Stat);
int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat);
+static inline int __cdecl lstat(const char *_Filename,struct stat *_Stat){return stat(_Filename, _Stat);}
#ifndef __CRT__NO_INLINE
#ifdef _USE_32BIT_TIME_T
@@ -262,9 +278,11 @@ __CRT_INLINE int __cdecl
#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
#ifdef _USE_32BIT_TIME_T
+#define lstat _lstat32i64
#define stat _stat32i64
#define fstat _fstat32i64
#else
+#define lstat _lstat64
#define stat _stat64
#define fstat _fstat64
#endif
diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
index 52af29b..8626396 100644
--- a/mingw-w64-headers/include/winnt.h
+++ b/mingw-w64-headers/include/winnt.h
@@ -6895,7 +6895,12 @@ __buildmemorybarrier()
DWORD Reg : 3;
DWORD R : 1;
DWORD L : 1;
+/* C is used as a const specifier */
+#define save_C C
+#undef C
DWORD C : 1;
+#define C save_C
+#undef save_C
DWORD StackAdjust : 10;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;

View File

@ -0,0 +1,65 @@
This patch includes
* mingw-w64-headers/include/winnt.h: compile fixes for1 gcc-4.9.3
* mingw-w64-headers/crt/math.h: Likewise
* mingw-w64-headers/crt/float.h (FLT_EPSILON,DBL_EPSILON,LDBL_EPSILON): Add
symbols.
* mingw-w64-headers/crt/stat.h (S_ISLNK,S_ISSOCK,S_ISUID,S_ISGID,S_ISLINK):
Add symbols.
(lstat): Add function.
* mingw-w64-headers/crt/_mingw_stat64.h: Likewise
* mingw-w64-headers/crt/stdlib.h (realpath): Add function.
Needed for building with gcc-4.9.3 and using with cross-libtool-2.4.6.
Upstream status: not yet presented upstream.
diff --git a/mingw-w64-headers/crt/float.h b/mingw-w64-headers/crt/float.h
index 5874f4e..bdf4ead 100644
--- a/mingw-w64-headers/crt/float.h
+++ b/mingw-w64-headers/crt/float.h
@@ -22,6 +22,15 @@
#if (__GNUC__ < 4)
#error Corrupt install of gcc-s internal headers, or search order was changed.
#else
+
+ /* From gcc-4.9.3 float.h. */
+ #undef FLT_EPSILON
+ #undef DBL_EPSILON
+ #undef LDBL_EPSILON
+ #define FLT_EPSILON __FLT_EPSILON__
+ #define DBL_EPSILON __DBL_EPSILON__
+ #define LDBL_EPSILON __LDBL_EPSILON__
+
/* #include_next <float_ginclude.h> */
/* Number of decimal digits, q, such that any floating-point number with q
diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
index 1e970f4..99a332f 100644
--- a/mingw-w64-headers/crt/math.h
+++ b/mingw-w64-headers/crt/math.h
@@ -216,6 +216,7 @@ extern "C" {
#endif
}
+#if 0
__CRT_INLINE long double __cdecl fabsl (long double x)
{
#ifdef __arm__
@@ -226,6 +227,7 @@ extern "C" {
return res;
#endif
}
+#endif
__CRT_INLINE double __cdecl fabs (double x)
{
@@ -905,7 +907,7 @@ __mingw_choose_expr ( \
/* 7.12.7.3 */
extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
extern float __cdecl hypotf (float x, float y);
-#ifndef __CRT__NO_INLINE
+#if 0 //ndef __CRT__NO_INLINE
__CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot ((double)x, (double)y);}
#endif
extern long double __cdecl hypotl (long double, long double);

View File

@ -6495,19 +6495,18 @@ Perl (back to 5.6.0).")
(define-public perl-namespace-autoclean (define-public perl-namespace-autoclean
(package (package
(name "perl-namespace-autoclean") (name "perl-namespace-autoclean")
(version "0.28") (version "0.29")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
"namespace-autoclean-" version ".tar.gz")) "namespace-autoclean-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "012qqs561xyyhm082znmzsl8lz4n299fa6p0v246za2l9bkdiss5"))))
"0fbcq99yaix1aa99jl3v811dbw24il9jxnh5i2i23mddh4b0lhfd"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-module-build" ,perl-module-build) `(("perl-module-build" ,perl-module-build)
("perl-test-requires" ,perl-test-requires))) ("perl-test-needs" ,perl-test-needs)))
(propagated-inputs (propagated-inputs
`(("perl-b-hooks-endofscope" ,perl-b-hooks-endofscope) `(("perl-b-hooks-endofscope" ,perl-b-hooks-endofscope)
("perl-namespace-clean" ,perl-namespace-clean) ("perl-namespace-clean" ,perl-namespace-clean)

View File

@ -2218,22 +2218,19 @@ applications.")
(define-public python-flask-sqlalchemy (define-public python-flask-sqlalchemy
(package (package
(name "python-flask-sqlalchemy") (name "python-flask-sqlalchemy")
(version "2.1") (version "2.4.0")
(source (source (origin
(origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "Flask-SQLAlchemy" version)) (uri (pypi-uri "Flask-SQLAlchemy" version))
(sha256 (sha256
(base32 (base32
"1i9ps5d5snih9xlqhrvmi3qfiygkmqzxh92n25kj4pf89kj4s965")))) "0nnllf0ddbh9jlhngnyjj98lbxgxr1csaplllx0caw98syq0k5hc"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-flask" ,python-flask) `(("python-flask" ,python-flask)
("python-sqlalchemy" ,python-sqlalchemy))) ("python-sqlalchemy" ,python-sqlalchemy)))
(home-page (home-page "https://github.com/mitsuhiko/flask-sqlalchemy")
"https://github.com/mitsuhiko/flask-sqlalchemy") (synopsis "Module adding SQLAlchemy support to your Flask application")
(synopsis
"Module adding SQLAlchemy support to your Flask application")
(description (description
"This package adds SQLAlchemy support to your Flask application.") "This package adds SQLAlchemy support to your Flask application.")
(license license:bsd-3))) (license license:bsd-3)))

View File

@ -64,6 +64,7 @@
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com> ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -6999,14 +7000,14 @@ Supported netlink families and protocols include:
(define-public python-wrapt (define-public python-wrapt
(package (package
(name "python-wrapt") (name "python-wrapt")
(version "1.11.1") (version "1.11.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "wrapt" version)) (uri (pypi-uri "wrapt" version))
(sha256 (sha256
(base32 (base32
"0cqmysny1pz01jw26q48q5zasvns6507rwhgm6wcw743f0r01sja")))) "1q81762dgsgrd12f8qc39zk8s5wll3m5xc32jdmlf6cls4gh4njn"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; Tests are not included in the tarball, they are only available in the ;; Tests are not included in the tarball, they are only available in the
@ -7322,14 +7323,14 @@ responses, rather than doing any computation.")
(define-public python-pip (define-public python-pip
(package (package
(name "python-pip") (name "python-pip")
(version "18.1") (version "19.2.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pip" version)) (uri (pypi-uri "pip" version))
(sha256 (sha256
(base32 (base32
"188fclay154s520n43s7cxxlhdaiysvxf19zk8vr1xbyjyyr58n0")))) "100sd12ss4mbdj5lf3wawad29cm573b27765mq098x6xhcj71395"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:tests? #f)) ; there are no tests in the pypi archive. '(#:tests? #f)) ; there are no tests in the pypi archive.
@ -9990,13 +9991,13 @@ format.")
(define-public python-twisted (define-public python-twisted
(package (package
(name "python-twisted") (name "python-twisted")
(version "19.2.1") (version "19.7.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "Twisted" version ".tar.bz2")) (uri (pypi-uri "Twisted" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0liymyd4pzphizjlpwkncxjpm9akyr3lkfkm77yfg6wasv108b7s")))) "17d3hnxv9qndagzz63mdpyk99xj63p9gq586vjn0rxk8cl197nym"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:tests? #f)) ; FIXME: some tests fail '(#:tests? #f)) ; FIXME: some tests fail
@ -16088,3 +16089,72 @@ The library has a number of built-in tilesets from OpenStreetMap, Mapbox, and
Stamen, and supports custom tilesets with Mapbox or Cloudmade API keys. It Stamen, and supports custom tilesets with Mapbox or Cloudmade API keys. It
supports Image, Video, GeoJSON and TopoJSON overlays.") supports Image, Video, GeoJSON and TopoJSON overlays.")
(license license:expat))) (license license:expat)))
(define-public jube
(package
;; This is a command-line tool, so no "python-" prefix.
(name "jube")
(version "2.2.2")
(source (origin
(method url-fetch)
(uri (string-append
"http://apps.fz-juelich.de/jsc/jube/jube2/download.php?version="
version))
(sha256
(base32
"0xq4k1q63s1p6swgyp61vahlrd1fqmgbm0gm5kpj8ikwy0yc0nqk"))
(file-name (string-append "jube-" version ".tar.gz"))))
(build-system python-build-system)
(home-page "https://apps.fz-juelich.de/jsc/jube/jube2/docu/index.html")
(synopsis "Benchmarking environment")
(description
"JUBE helps perform and analyze benchmarks in a systematic way. For each
benchmarked application, benchmark data is stored in a format that allows JUBE
to deduct the desired information. This data can be parsed by automatic pre-
and post-processing scripts that draw information and store it more densely
for manual interpretation.")
(license license:gpl3+)))
(define-public python-pyroutelib3
(package
(name "python-pyroutelib3")
(version "1.3.post1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyroutelib3" version))
(sha256
(base32
"1hpbydpn2alyswiajfbvhzq4c7f36vdmvxy91hgv8l1lb2g2vfrj"))))
(build-system python-build-system)
(propagated-inputs
`(("python-dateutil" ,python-dateutil)))
(home-page "https://github.com/MKuranowski/pyroutelib3")
(synopsis "Library for simple routing on OSM data")
(description "Library for simple routing on OSM data")
(license license:gpl3+)))
(define-public python-elementpath
(package
(name "python-elementpath")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "elementpath" version))
(sha256
(base32
"1syn2z543brab23dskh3fjd9pqvz6npqbcicrs2d88dbg26xl08p"))))
(build-system python-build-system)
(home-page
"https://github.com/sissaschool/elementpath")
(synopsis
"XPath 1.0/2.0 parsers and selectors for ElementTree and lxml")
(description
"The proposal of this package is to provide XPath 1.0 and 2.0 selectors
for Python's ElementTree XML data structures, both for the standard
ElementTree library and for the @uref{http://lxml.de, lxml.etree} library.
For lxml.etree this package can be useful for providing XPath 2.0 selectors,
because lxml.etree already has it's own implementation of XPath 1.0.")
(license license:expat)))

View File

@ -2216,6 +2216,9 @@ content")
(description "QtWebKit provides a Web browser engine that makes it easy to (description "QtWebKit provides a Web browser engine that makes it easy to
embed content from the World Wide Web into your Qt application. At the same embed content from the World Wide Web into your Qt application. At the same
time Web content can be enhanced with native controls.") time Web content can be enhanced with native controls.")
;; Building QtWebKit takes around 13 hours on an AArch64 machine. Give some
;; room for slower or busy hardware.
(properties '((timeout . 64800))) ;18 hours
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public dotherside (define-public dotherside

View File

@ -0,0 +1,91 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages rednotebook)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system python)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages python)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages webkit)
#:use-module (gnu packages python-xyz))
(define-public rednotebook
(package
(name "rednotebook")
(version "2.11.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jendrikseipp/rednotebook.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "04c7a0wgmdl88v9386y1052c38ajbkryiwhqps5lx34d4g7r6hm1"))))
(build-system python-build-system)
(arguments
;; Tests fail to find the "_" function.
;; It should be defined in rednotebook/info.py if '_' is not a member of
;; 'builtins'. It is either not defined or not exported during the check
;; phase. The program does not have this problem after it is installed.
;; TODO: Fix tests.
`(#:tests? #f
#:imported-modules ((guix build glib-or-gtk-build-system)
,@%python-build-system-modules)
#:modules ((ice-9 match)
(guix build python-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build utils))
#:phases
(modify-phases %standard-phases
;; Make sure rednotebook can find the typelibs and webkitgtk shared
;; libraries.
(add-before 'wrap 'wrap-with-library-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(gi-typelib-path (getenv "GI_TYPELIB_PATH"))
(webkitgtk-path (string-append
(assoc-ref inputs "webkitgtk")
"/lib")))
(wrap-program (string-append out "/bin/rednotebook")
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
`("LD_LIBRARY_PATH" ":" prefix (,webkitgtk-path)))
#t))))))
(inputs
`(("gtk+" ,gtk+)
("gtksourceview" ,gtksourceview-3)
("python-pyyaml" ,python-pyyaml)
("python-pygobject" ,python-pygobject)
("webkitgtk" ,webkitgtk)))
;; TODO: package the following for python3 (if possible), add them as
;; dependencies, and remove them from rednotebook source:
;; pygtkspellcheck, elib.intl, msgfmt, txt2tags
;; TODO: package and add pyenchant for python3 and add it as a dependency.
(home-page "https://www.rednotebook.app")
(synopsis "Daily journal with calendar, templates and keyword searching")
(description
"RedNotebook is a modern desktop journal. It lets you format, tag and
search your entries. You can also add pictures, links and customizable
templates, spell check your notes, and export to plain text, HTML, Latex or
PDF.")
(license (list license:gpl2+ ; rednotebook, txt2tags
license:lgpl3+ ; elib.intl
license:gpl3+)))) ; pygtkspellcheck

View File

@ -16,6 +16,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com> ;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2035,13 +2036,13 @@ the SimpleCov code coverage tool for Ruby version 1.9 and above.")
(define-public ruby-simplecov (define-public ruby-simplecov
(package (package
(name "ruby-simplecov") (name "ruby-simplecov")
(version "0.12.0") (version "0.17.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "simplecov" version)) (uri (rubygems-uri "simplecov" version))
(sha256 (sha256
(base32 (base32
"0ffhyrfnq2zm2mc1742a4hqy475g3qa1zf6yfldwg1ldh5sn3qbx")))) "0dq0nkaxvbsnl70hkimy35g4yjfs3blx4s7nbpzbvgqx72hxgv5v"))))
(build-system ruby-build-system) (build-system ruby-build-system)
;; Simplecov depends on rubocop for code style checking at build time. ;; Simplecov depends on rubocop for code style checking at build time.
;; Rubocop needs simplecov at build time. ;; Rubocop needs simplecov at build time.
@ -3638,24 +3639,24 @@ to reproduce user environments.")
(define-public ruby-mini-portile-2 (define-public ruby-mini-portile-2
(package (inherit ruby-mini-portile) (package (inherit ruby-mini-portile)
(version "2.2.0") (version "2.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "mini_portile2" version)) (uri (rubygems-uri "mini_portile2" version))
(sha256 (sha256
(base32 (base32
"0g5bpgy08q0nc0anisg3yvwc1gc3inl854fcrg48wvg7glqd6dpm")))))) "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"))))))
(define-public ruby-nokogiri (define-public ruby-nokogiri
(package (package
(name "ruby-nokogiri") (name "ruby-nokogiri")
(version "1.8.0") (version "1.10.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "nokogiri" version)) (uri (rubygems-uri "nokogiri" version))
(sha256 (sha256
(base32 (base32
"1nffsyx1xjg6v5n9rrbi8y1arrcx2i5f21cp6clgh9iwiqkr7rnn")))) "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(arguments (arguments
;; Tests fail because Nokogiri can only test with an installed extension, ;; Tests fail because Nokogiri can only test with an installed extension,
@ -8571,6 +8572,33 @@ characteristics.")
(home-page "https://github.com/sinatra/mustermann") (home-page "https://github.com/sinatra/mustermann")
(license license:expat))) (license license:expat)))
(define-public ruby-htmlentities
(package
(name "ruby-htmlentities")
(version "4.3.4")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "htmlentities" version))
(sha256
(base32
"1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"))))
(build-system ruby-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(map (lambda (file)
(invoke "ruby" "-Itest" file))
(find-files "./test" ".*_test\\.rb")))))))
(synopsis "Encode and decode (X)HTML entities")
(description
"This package provides a module for encoding and decoding (X)HTML
entities.")
(home-page "https://github.com/threedaymonk/htmlentities")
(license license:expat)))
(define-public ruby-sinatra (define-public ruby-sinatra
(package (package
(name "ruby-sinatra") (name "ruby-sinatra")
@ -8807,3 +8835,92 @@ It is intended to determine whether a newer API specification is
backwards-compatible with an older API specification.") backwards-compatible with an older API specification.")
(home-page "https://github.com/civisanalytics/swagger-diff") (home-page "https://github.com/civisanalytics/swagger-diff")
(license license:bsd-3))) (license license:bsd-3)))
(define-public ruby-reverse-markdown
(package
(name "ruby-reverse-markdown")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "reverse_markdown" version))
(sha256
(base32
"0w7y5n74daajvl9gixr91nh8670d7mkgspkk3ql71m8azq3nffbg"))))
(build-system ruby-build-system)
(propagated-inputs
`(("ruby-nokogiri" ,ruby-nokogiri)))
(native-inputs
`(("bundler" ,bundler)
("ruby-rspec" ,ruby-rspec)
("ruby-kramdown" ,ruby-kramdown)
("ruby-simplecov" ,ruby-simplecov)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "rspec"))
#t)))))
(synopsis "Convert HTML into Markdown")
(description
"This Ruby module allows you to map simple HTML back into
Markdown---e.g., if you want to import existing HTML data in your
application.")
(home-page "https://github.com/xijo/reverse_markdown")
(license license:wtfpl2)))
(define-public ruby-solargraph
(package
(name "ruby-solargraph")
(version "0.36.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "solargraph" version))
(sha256
(base32
"0b93xzkgd1h06da9gdnwivj1mzbil8lc072y2838dy6i7bxgpy9i"))))
(build-system ruby-build-system)
(propagated-inputs
`(("ruby-backport" ,ruby-backport)
("bundler" ,bundler)
("ruby-htmlentities" ,ruby-htmlentities)
("ruby-jaro-winkler" ,ruby-jaro-winkler)
("ruby-maruku" ,ruby-maruku)
("ruby-nokogiri" ,ruby-nokogiri)
("ruby-parser" ,ruby-parser)
("ruby-reverse-markdown" ,ruby-reverse-markdown)
("ruby-rubocop" ,ruby-rubocop)
("ruby-thor" ,ruby-thor)
("ruby-tilt" ,ruby-tilt)
("ruby-yard" ,ruby-yard)))
(native-inputs
`(("ruby-rspec" ,ruby-rspec)
("ruby-pry" ,ruby-pry)
("ruby-simplecov" ,ruby-simplecov)
("ruby-webmock" ,ruby-webmock-2)))
;; FIXME: can't figure out how to run the tests properly:
;; An error occurred while loading spec_helper.
;; Failure/Error: return gem_original_require(path)
;; LoadError:
;; cannot load such file -- spec_helper
(arguments
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "rspec"))
#t)))))
(synopsis
"IDE tools for code completion, inline documentation, and static analysis")
(description
"Solargraph provides a comprehensive suite of tools for Ruby
programming: intellisense, diagnostics, inline documentation, and type
checking.")
(home-page "https://solargraph.org/")
(license license:expat)))

View File

@ -353,7 +353,7 @@ retrieve a YubiKey's serial number, and so forth.")
(define-public python-pyscard (define-public python-pyscard
(package (package
(name "python-pyscard") (name "python-pyscard")
(version "1.9.8") (version "1.9.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; The maintainer publishes releases on various sites, but ;; The maintainer publishes releases on various sites, but
@ -363,7 +363,7 @@ retrieve a YubiKey's serial number, and so forth.")
version "/pyscard-" version ".tar.gz")) version "/pyscard-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"15fh00z1an6r5j7hrz3jlq0rb3jygwf3x4jcwsa008bv8vpcg7gm")))) "082cjkbxadaz2jb4rbhr0mkrirzlqyqhcf3r823qb0q1k50ybgg6"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -1106,3 +1106,59 @@ and IP roaming. ET provides the same core functionality as @command{mosh},
while also supporting native scrolling and @command{tmux} control mode while also supporting native scrolling and @command{tmux} control mode
(@code{tmux -CC}).") (@code{tmux -CC}).")
(license license:asl2.0))) (license license:asl2.0)))
(define-public wterm
(package
(name "wterm")
(version "0.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/majestrate/wterm.git")
(commit "0ae42717c08a85a6509214e881422c7fbe7ecc45")))
(sha256
(base32
"0g4lzmc1w6na81i6hny32xds4xfig4xzswzfijyi6p93a1226dv0"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("fontconfig" ,fontconfig)
("freetype" ,freetype)
("libdrm" ,libdrm)
("libxkbcommon" ,libxkbcommon)
("ncurses" ,ncurses)
("pixman" ,pixman)
("wayland" ,wayland)))
(arguments
'(#:tests? #f
;; Without -j1 it fails to find file libwld.a.
#:parallel-build? #f
#:make-flags (list "CC=gcc"
(string-append "PREFIX=" %output)
(string-append "TERMINFO="
(assoc-ref %outputs "out")
"/share/terminfo"))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'terminfo-fix
(lambda _
(substitute* "Makefile"
(("\ttic .*") "\tmkdir -p $(SHARE_PREFIX)/share/terminfo
\ttic -o $(SHARE_PREFIX)/share/terminfo -s wterm.info\n"))
#t)))))
(native-search-paths
(list (search-path-specification
(variable "TERMINFO_DIRS")
(files '("share/terminfo")))))
(home-page "https://github.com/majestrate/wterm")
(synopsis "Terminal emulator for Wayland")
(description "wterm is a native Wayland terminal emulator based on
an st fork using wld. st is a simple terminal emulator for X originally
made by suckless.")
(license license:x11)))

View File

@ -41,6 +41,7 @@
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
@ -567,3 +568,55 @@ The basic features of Geany are:
@item extensibility through plugins @item extensibility through plugins
@end itemize") @end itemize")
(license license:gpl2+))) (license license:gpl2+)))
(define-public fe
(package
(name "fe")
;; Stable release is 1.8. However, this development version
;; introduces support for UTF-8.
(version "2.0")
(source (origin
(method url-fetch)
(uri (string-append "http://www.moria.de/~michael/fe/"
"fe-" version ".tar.gz"))
(sha256
(base32
"1hwws7si1752z6hp61zxznvgsb6846lp8zl1hn5ddhsbafwalwb9"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test
;; Sendmail is only used to send a crash log. Disable the
;; feature since it is (1) undocumented (2) not very useful.
#:configure-flags (list "--disable-sendmail")
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/" ,name "-" ,version)))
(for-each (lambda (f) (install-file f doc))
'("fe.doc" "fe.html" "fe.ps" "feref.ps" "README"))
#t))))))
(native-inputs
`(("gettext" ,gettext-minimal)))
(inputs
`(("ncurses" ,ncurses)))
(home-page "http://www.moria.de/~michael/fe/")
(synopsis "Small folding editor")
(description "Fe is a small folding editor. It allows to fold
arbitrary text regions; it is not bound to syntactic units.
Fe has no configuration or extension language and requires no setup.
Its user interface is emacs-like and it has menues for the very most
important functions to help beginners. Further there is a reference
card. It offers:
@itemize
@item Regions and Emacs-like kill ring
@item Incremental search
@item Keyboard macros
@item Editing binary files
@item Multiple windows and views
@item Compose function for Latin 1 characters
@end itemize")
(license license:gpl2+)))

View File

@ -10,7 +10,7 @@
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017,2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -45,6 +45,7 @@
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages java) #:use-module (gnu packages java)
@ -321,6 +322,112 @@ input bits thoroughly but are not suitable for cryptography.")
;; entails." ;; entails."
(license license:public-domain))) (license license:public-domain)))
(define-public ascii2binary
(package
(name "ascii2binary")
(version "2.14")
(source
(origin
(method url-fetch)
(uri (string-append "http://billposer.org/Software/Downloads/"
"ascii2binary-" version ".tar.bz2"))
(sha256
(base32 "0dc9fxcdmppbs9s06jvq61zbk552laxps0xyk098gj41697ihd96"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)))
(home-page "https://billposer.org/Software/a2b.html")
(synopsis "Convert between ASCII, hexadecimal and binary representations")
(description "The two programs are useful for generating test data, for
inspecting binary files, and for interfacing programs that generate textual
output to programs that require binary input and conversely. They can also be
useful when it is desired to reformat numbers.
@itemize
@item @command{ascii2binary} reads input consisting of ascii or hexadecimal
representation numbers separated by whitespace and produces as output
the binary equivalents. The type and precision of the binary output
is selected using command line flags.
@item @command{binary2ascii} reads input consisting of binary numbers
and converts them to their ascii or hexadecimal representation.
Command line flags specify the type and size of the binary numbers
and provide control over the format of the output.
Unsigned integers may be written out in binary, octal, decimal,
or hexadecimal.
Signed integers may be written out only in binary or decimal. Floating
point numbers may be written out only decimal, either in standard or
scientific notation. (If you want to examine the binary representation
of floating point numbers, just treat the input as a sequence of unsigned
characters.)
@end itemize")
(license license:gpl3)))
(define-public uniutils
(package
(name "uniutils")
(version "2.27")
(source
(origin
(method url-fetch)
(uri (string-append "http://billposer.org/Software/Downloads/"
"uniutils-" version ".tar.bz2"))
(sha256
(base32 "19w1510w87gx7n4qy3zsb0m467a4rn5scvh4ajajg7jh6x5xri08"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-dependency-tracking")
#:phases
(modify-phases %standard-phases
(add-after 'build 'fix-paths
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(a2b (assoc-ref inputs "ascii2binary"))
(iconv (assoc-ref inputs "libiconv")))
(substitute* "utf8lookup"
(("^ascii2binary ") (string-append a2b "/bin/ascii2binary "))
(("^uniname ") (string-append out "/bin/uniname "))
(("^iconv ") (string-append iconv "/bin/iconv ")))
#t))))))
(inputs
`(("ascii2binary" ,ascii2binary)
("libiconv" ,libiconv)))
(home-page "https://billposer.org/Software/unidesc.html")
(synopsis "Find out what is in a Unicode file")
(description "Useful tools when working with Unicode files when one
doesn't know the writing system, doesn't have the necessary font, needs to
inspect invisible characters, needs to find out whether characters have been
combined or in what order they occur, or needs statistics on which characters
occur.
@itemize
@item @command{uniname} defaults to printing the character offset of each
character, its byte offset, its hex code value, its encoding, the glyph
itself, and its name. It may also be used to validate UTF-8 input.
@item @command{unidesc} reports the character ranges to which different
portions of the text belong. It can also be used to identify Unicode encodings
(e.g. UTF-16be) flagged by magic numbers.
@item @command{unihist} generates a histogram of the characters in its input.
@item @command{ExplicateUTF8} is intended for debugging or for learning about
Unicode. It determines and explains the validity of a sequence of bytes as a
UTF8 encoding.
@item @command{utf8lookup} provides a handy way to look up Unicode characters
from the command line.
@item @command{unireverse} reverse each line of UTF-8 input
character-by-character.
@end itemize")
(license license:gpl3)))
(define-public libconfig (define-public libconfig
(package (package
(name "libconfig") (name "libconfig")

View File

@ -505,13 +505,13 @@ netcat implementation that supports TLS.")
(package (package
(name "python-acme") (name "python-acme")
;; Remember to update the hash of certbot when updating python-acme. ;; Remember to update the hash of certbot when updating python-acme.
(version "0.35.1") (version "0.37.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "acme" version)) (uri (pypi-uri "acme" version))
(sha256 (sha256
(base32 (base32
"08y4ankn0di34c9d1c3pqd9by9n0ckzz7b5ld1g0fx6c32sbi259")))) "0p3zqhna9p8iy5i9mfhzdf5bmjigs05r6rlwnxykk4n67fp8yyc8"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -559,10 +559,10 @@ netcat implementation that supports TLS.")
(version (package-version python-acme)) (version (package-version python-acme))
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri name version)) (uri (pypi-uri "certbot" version))
(sha256 (sha256
(base32 (base32
"0q0855qvsvs4mgglss5iim7f1p22rv4rn1n6j731vv869v0yrs6p")))) "1xbfv4fwkgfp9qqzlk8wxbhchc61349m26q9fg35j9fnm253cm74"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme) `(,@(substitute-keyword-arguments (package-arguments python-acme)

View File

@ -357,15 +357,14 @@ H.264 (MPEG-4 AVC) video streams.")
(define-public mkvtoolnix (define-public mkvtoolnix
(package (package
(name "mkvtoolnix") (name "mkvtoolnix")
(version "31.0.0") (version "37.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://mkvtoolnix.download/sources/" (uri (string-append "https://mkvtoolnix.download/sources/"
name "-" version ".tar.xz")) "mkvtoolnix-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32 "0r4d9318ymb9a0mkc0shi9p4kjy3m70s49v4f8dmjhvj63silhix"))
"0d8va2iamzc7y3wi71z8mk2vnqvnkgwb2p7casdfp37400x8r2pr"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
;; Delete bundled libraries. ;; Delete bundled libraries.
@ -419,6 +418,13 @@ H.264 (MPEG-4 AVC) video streams.")
"--enable-precompiled-headers=no") "--enable-precompiled-headers=no")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-relative-file-names
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "src/mkvtoolnix-gui/util/settings.cpp"
(("mkvmerge" match)
(string-append out "/bin/" match)))
#t)))
(add-before 'configure 'add-googletest (add-before 'configure 'add-googletest
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(symlink (symlink
@ -466,8 +472,9 @@ H.264 (MPEG-4 AVC) video streams.")
(synopsis "Tools to create, alter and inspect Matroska files") (synopsis "Tools to create, alter and inspect Matroska files")
(description (description
"MKVToolNix provides tools for getting information about Matroska files "MKVToolNix provides tools for getting information about Matroska files
(@code{mkvinfo}), extracting tracks/data from Matroska files (@code{mkvextract}) (@command{mkvinfo}), extracting tracks/data from Matroska files
and creating Matroska files from other media files (@code{mkvmerge}).") (@command{mkvextract}), and creating Matroska files from other media files
(@command{mkvmerge}).")
(license license:gpl2))) (license license:gpl2)))
(define-public x265 (define-public x265
@ -1485,7 +1492,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl (define-public youtube-dl
(package (package
(name "youtube-dl") (name "youtube-dl")
(version "2019.08.02") (version "2019.08.13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/rg3/youtube-dl/releases/" (uri (string-append "https://github.com/rg3/youtube-dl/releases/"
@ -1493,7 +1500,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"101b6jrf6ckbxrn76ppvgdyrb25p7d247kn8qgq7n476sfnkfg2p")))) "0b94hrhbqa7jhn91pxsbphg2ylwkpkknb2y4v4sczp7rjvgmjgdj"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; The problem here is that the directory for the man page and completion ;; The problem here is that the directory for the man page and completion

View File

@ -365,10 +365,10 @@ vim editor and also easily configurable during runtime. Vimb is mostly keyboard
driven and does not detract you from your daily work.") driven and does not detract you from your daily work.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public next-gtk-webkit (define next-gtk-webkit
(package (package
(name "next-gtk-webkit") (name "next-gtk-webkit")
(version "1.2.2") (version "1.3.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -377,7 +377,7 @@ driven and does not detract you from your daily work.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"1bif1k738knhifxhkn0d2x1m521zkx40pri44vyjqncp9r95hkbk")) "0ibq30xrf871pkpasi8p9krn0pmd86rsdzb3jqvz3wnp4wa3hl9d"))
(file-name (git-file-name "next" version)))) (file-name (git-file-name "next" version))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
@ -405,21 +405,59 @@ key-bindings, is fully configurable and extensible in Lisp, and has powerful
features for productive professionals.") features for productive professionals.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public sbcl-next (define sbcl-next-download-manager
(package (package
(inherit next-gtk-webkit) (inherit next-gtk-webkit)
(name "sbcl-next") (name "sbcl-next-download-manager")
(build-system asdf-build-system/sbcl)
(arguments
`(#:tests? #f ; Need online access.
#:asd-file "next.asd"
#:asd-system-name "download-manager"))
(inputs
`(;; ASD libraries:
("trivial-features" ,sbcl-trivial-features)
;; Lisp libraries:
("cl-ppcre" ,sbcl-cl-ppcre)
("dexador" ,sbcl-dexador)
("log4cl" ,sbcl-log4cl)
("lparallel" ,sbcl-lparallel)
("quri" ,sbcl-quri)
("str" ,sbcl-cl-str)))
(native-inputs
`(("prove-asdf" ,sbcl-prove-asdf)))
(synopsis "Infinitely extensible web-browser (download manager)")))
(define-public next
(let ((version (package-version next-gtk-webkit)))
(package
(inherit next-gtk-webkit)
(name "next")
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(outputs '("out" "lib")) (outputs '("out" "lib"))
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:asd-system-name "next"
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-platform-port-path (add-after 'unpack 'patch-platform-port-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "source/ports/gtk-webkit.lisp" (substitute* "source/ports/gtk-webkit.lisp"
(("\"next-gtk-webkit\"") (("\"next-gtk-webkit\"")
(string-append "\"" (assoc-ref inputs "next-gtk-webkit") (string-append "\"" (assoc-ref inputs "next-gtk-webkit")
"/bin/next-gtk-webkit\""))))) "/bin/next-gtk-webkit\"")))
#t))
(add-after 'patch-platform-port-path 'patch-version
;; When the version is not just dot-separated numerals
;; (e.g. a git-commit version), Guix modifies the .asd with
;; an illegal version number, and then Next fails to query
;; it. So we hard-code it here.
(lambda* (#:key inputs #:allow-other-keys)
(let ((version (format #f "~a" ,version)))
(substitute* "source/global.lisp"
(("version\\)\\)\\)")
(string-append "version)))
(setf +version+ \"" version "\")"))))
#t))
(add-before 'cleanup 'move-bundle (add-before 'cleanup 'move-bundle
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(define lib (assoc-ref outputs "lib")) (define lib (assoc-ref outputs "lib"))
@ -436,7 +474,7 @@ features for productive professionals.")
(build-program (build-program
(string-append (assoc-ref outputs "out") "/bin/next") (string-append (assoc-ref outputs "out") "/bin/next")
outputs outputs
#:entry-program '((next:start-with-port) 0)))) #:entry-program '((next:entry-point) 0))))
(add-before 'build 'install-assets (add-before 'build 'install-assets
;; Since the ASDF build system generates a new .asd with a ;; Since the ASDF build system generates a new .asd with a
;; possibly suffixed and thus illegal version number, assets ;; possibly suffixed and thus illegal version number, assets
@ -452,24 +490,39 @@ features for productive professionals.")
(assoc-ref outputs "out")))))))) (assoc-ref outputs "out"))))))))
(inputs (inputs
`(("next-gtk-webkit" ,next-gtk-webkit) `(("next-gtk-webkit" ,next-gtk-webkit)
;; Lisp libraries: ;; ASD libraries:
("trivial-features" ,sbcl-trivial-features) ("trivial-features" ,sbcl-trivial-features)
("trivial-garbage" ,sbcl-trivial-garbage)
;; Lisp libraries:
("alexandria" ,sbcl-alexandria) ("alexandria" ,sbcl-alexandria)
("anaphora" ,sbcl-anaphora)
("closer-mop" ,sbcl-closer-mop)
("log4cl" ,sbcl-log4cl)
("find-port" ,sbcl-find-port)
("cl-strings" ,sbcl-cl-strings)
("cl-string-match" ,sbcl-cl-string-match)
("puri" ,sbcl-puri)
("sqlite" ,sbcl-cl-sqlite)
("parenscript" ,sbcl-parenscript)
("cl-json" ,sbcl-cl-json)
("swank" ,sbcl-slime-swank)
("cl-markup" ,sbcl-cl-markup)
("cl-css" ,sbcl-cl-css)
("bordeaux-threads" ,sbcl-bordeaux-threads) ("bordeaux-threads" ,sbcl-bordeaux-threads)
("s-xml-rpc" ,sbcl-s-xml-rpc) ("cl-css" ,sbcl-cl-css)
("cl-json" ,sbcl-cl-json)
("cl-markup" ,sbcl-cl-markup)
("cl-ppcre" ,sbcl-cl-ppcre)
("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
("cl-string-match" ,sbcl-cl-string-match)
("cl-strings" ,sbcl-cl-strings)
("closer-mop" ,sbcl-closer-mop)
("dbus" ,cl-dbus)
("dexador" ,sbcl-dexador)
("ironclad" ,sbcl-ironclad)
("log4cl" ,sbcl-log4cl)
("lparallel" ,sbcl-lparallel)
("mk-string-metrics" ,sbcl-mk-string-metrics)
("parenscript" ,sbcl-parenscript)
("quri" ,sbcl-quri)
("sqlite" ,sbcl-cl-sqlite)
("str" ,sbcl-cl-str)
("swank" ,sbcl-slime-swank)
("trivia" ,sbcl-trivia)
("trivial-clipboard" ,sbcl-trivial-clipboard)
("unix-opts" ,sbcl-unix-opts) ("unix-opts" ,sbcl-unix-opts)
("trivial-clipboard" ,sbcl-trivial-clipboard))) ;; Local deps
(synopsis "Infinitely extensible web-browser (with Lisp development files)"))) ("next-download-manager" ,sbcl-next-download-manager)))
(native-inputs
`(("prove-asdf" ,sbcl-prove-asdf)))
(synopsis "Infinitely extensible web-browser (with Lisp development files)"))))
(define-public sbcl-next
(deprecated-package "sbcl-next" next))

View File

@ -68,6 +68,7 @@
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system ant) #:use-module (guix build-system ant)
#:use-module (guix build-system scons) #:use-module (guix build-system scons)
#:use-module (guix build-system go)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages adns) #:use-module (gnu packages adns)
@ -92,6 +93,7 @@
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnu-doc) #:use-module (gnu packages gnu-doc)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gperf) #:use-module (gnu packages gperf)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
@ -6596,3 +6598,35 @@ It's also possible to rewrite existing log files.
Anonip can also be uses as a Python module in your own Python application.") Anonip can also be uses as a Python module in your own Python application.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public poussetaches
(package
(name "poussetaches")
(version "0.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tsileo/poussetaches")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"07106kfcz3a39jvrv3mlqqxlihsmdhgkrjnqznyjsij9absgvdv6"))))
(build-system go-build-system)
(propagated-inputs
`(("go-github-com-robfig-cron" ,go-github-com-robfig-cron)
("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)))
(arguments
`(#:import-path "github.com/tsileo/poussetaches"))
(home-page "https://github.com/tsileo/poussetaches")
(synopsis "Lightweight asynchronous task execution service")
(description "Poussetaches (which literally means \"push tasks\" in
French) is a lightweight asynchronous task execution service that aims to
replace Celery and RabbitMQ for small Python applications.
The app posts base64-encoded payload to poussetaches and specifies the
endpoint that will be used to trigger the task. Poussetaches makes HTTP
requests with the registered payload until the right status code is
returned.")
(license license:isc)))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; ;;;
@ -59,14 +59,14 @@
(define-public webkitgtk (define-public webkitgtk
(package (package
(name "webkitgtk") (name "webkitgtk")
(version "2.24.3") (version "2.24.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/" (uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0lbcrw5axwrbrajxq7fqywfyh0djqi23ynzb5wi5ghw2grnp83cl")))) "1n3x5g1z6rg9n1ssna7wi0z6zlprjm4wzk544v14wqi6q0lv2s46"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(arguments (arguments

View File

@ -72,7 +72,7 @@
(define-public wine (define-public wine
(package (package
(name "wine") (name "wine")
(version "4.0.1") (version "4.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dl.winehq.org/wine/source/" (uri (string-append "https://dl.winehq.org/wine/source/"
@ -80,7 +80,7 @@
"/wine-" version ".tar.xz")) "/wine-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0j29df0px6dzin4j0cbxgza4msvf9spmwranv25krq1g9kq959nk")))) "0x5x9pvhryzhq1m7i8gx5wwwj341zz05zymadlhfw5w45xlm0h4r"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal) ("gettext" ,gettext-minimal)

View File

@ -1183,7 +1183,7 @@ modules for building a Wayland compositor.")
(define-public sway (define-public sway
(package (package
(name "sway") (name "sway")
(version "1.1.1") (version "1.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1192,7 +1192,7 @@ modules for building a Wayland compositor.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0yhn9zdg9mzfhn97c440lk3pw6122nrhx0is5sqmvgr6p814f776")))) (base32 "0vch2zm5afc76ia78p3vg71zr2fyda67l9hd2h0x1jq3mnvfbxnd"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -3,7 +3,7 @@
;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -52,6 +52,8 @@
(default cuirass)) (default cuirass))
(log-file cuirass-configuration-log-file ;string (log-file cuirass-configuration-log-file ;string
(default "/var/log/cuirass.log")) (default "/var/log/cuirass.log"))
(web-log-file cuirass-configuration-web-log-file ;string
(default "/var/log/cuirass-web.log"))
(cache-directory cuirass-configuration-cache-directory ;string (dir-name) (cache-directory cuirass-configuration-cache-directory ;string (dir-name)
(default "/var/cache/cuirass")) (default "/var/cache/cuirass"))
(ttl cuirass-configuration-ttl ;integer (ttl cuirass-configuration-ttl ;integer
@ -83,6 +85,7 @@
(cuirass-configuration? config) (cuirass-configuration? config)
(let ((cuirass (cuirass-configuration-cuirass config)) (let ((cuirass (cuirass-configuration-cuirass config))
(cache-directory (cuirass-configuration-cache-directory config)) (cache-directory (cuirass-configuration-cache-directory config))
(web-log-file (cuirass-configuration-web-log-file config))
(log-file (cuirass-configuration-log-file config)) (log-file (cuirass-configuration-log-file config))
(user (cuirass-configuration-user config)) (user (cuirass-configuration-user config))
(group (cuirass-configuration-group config)) (group (cuirass-configuration-group config))
@ -106,8 +109,6 @@
#$(scheme-file "cuirass-specs.scm" specs) #$(scheme-file "cuirass-specs.scm" specs)
"--database" #$database "--database" #$database
"--ttl" #$(string-append (number->string ttl) "s") "--ttl" #$(string-append (number->string ttl) "s")
"--port" #$(number->string port)
"--listen" #$host
"--interval" #$(number->string interval) "--interval" #$(number->string interval)
#$@(if use-substitutes? '("--use-substitutes") '()) #$@(if use-substitutes? '("--use-substitutes") '())
#$@(if one-shot? '("--one-shot") '()) #$@(if one-shot? '("--one-shot") '())
@ -121,6 +122,28 @@
#:user #$user #:user #$user
#:group #$group #:group #$group
#:log-file #$log-file)) #:log-file #$log-file))
(stop #~(make-kill-destructor)))
(shepherd-service
(documentation "Run Cuirass web interface.")
(provision '(cuirass-web))
(requirement '(guix-daemon networking))
(start #~(make-forkexec-constructor
(list (string-append #$cuirass "/bin/cuirass")
"--cache-directory" #$cache-directory
"--specifications"
#$(scheme-file "cuirass-specs.scm" specs)
"--database" #$database
"--ttl" #$(string-append (number->string ttl) "s")
"--web"
"--port" #$(number->string port)
"--listen" #$host
"--interval" #$(number->string interval)
#$@(if use-substitutes? '("--use-substitutes") '())
#$@(if fallback? '("--fallback") '()))
#:user #$user
#:group #$group
#:log-file #$web-log-file))
(stop #~(make-kill-destructor))))))) (stop #~(make-kill-destructor)))))))
(define (cuirass-account config) (define (cuirass-account config)

View File

@ -3,6 +3,7 @@
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -170,7 +171,10 @@
(define (ssl-options? x) (define (ssl-options? x)
(and (list? x) (and (list? x)
(and-map (lambda (elt) (memq elt '(AllowRC4 AllowSSL3))) x))) (and-map (lambda (elt) (memq elt '(AllowRC4
AllowSSL3
DenyCBC
DenyTLS1.0))) x)))
(define (serialize-ssl-options field-name val) (define (serialize-ssl-options field-name val)
(serialize-field field-name (serialize-field field-name
(match val (match val
@ -805,12 +809,15 @@ an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate
all addresses.") all addresses.")
(ssl-options (ssl-options
(ssl-options '()) (ssl-options '())
"Sets encryption options. "Sets encryption options. By default, CUPS only supports encryption
By default, CUPS only supports encryption using TLS v1.0 or higher using known using TLS v1.0 or higher using known secure cipher suites. Security is
secure cipher suites. The @code{AllowRC4} option enables the 128-bit RC4 reduced when @code{Allow} options are used, and enhanced when @code{Deny}
cipher suites, which are required for some older clients that do not implement options are used. The @code{AllowRC4} option enables the 128-bit RC4 cipher
newer ones. The @code{AllowSSL3} option enables SSL v3.0, which is required suites, which are required for some older clients. The @code{AllowSSL3} option
for some older clients that do not support TLS v1.0.") enables SSL v3.0, which is required for some older clients that do not support
TLS v1.0. The @code{DenyCBC} option disables all CBC cipher suites. The
@code{DenyTLS1.0} option disables TLS v1.0 support - this sets the minimum
protocol version to TLS v1.1.")
#; #;
(ssl-port (ssl-port
(non-negative-integer 631) (non-negative-integer 631)

View File

@ -963,6 +963,10 @@ with the administrator's password."
(match-record enlightenment-desktop-configuration (match-record enlightenment-desktop-configuration
<enlightenment-desktop-configuration> <enlightenment-desktop-configuration>
(enlightenment) (enlightenment)
(let ((module-arch (match (string-tokenize (%current-system)
(char-set-complement (char-set #\-)))
((arch "linux") (string-append "linux-gnu-" arch))
((arch "gnu") (string-append "gnu-" arch)))))
(list (file-append enlightenment (list (file-append enlightenment
"/lib/enlightenment/utils/enlightenment_sys") "/lib/enlightenment/utils/enlightenment_sys")
(file-append enlightenment (file-append enlightenment
@ -973,13 +977,15 @@ with the administrator's password."
(file-append enlightenment (file-append enlightenment
(string-append (string-append
"/lib/enlightenment/modules/cpufreq/" "/lib/enlightenment/modules/cpufreq/"
(match (string-tokenize (%current-system) module-arch "-"
(char-set-complement (char-set #\-))) (package-version enlightenment)
((arch "linux") (string-append "linux-gnu-" arch)) "/freqset"))
((arch "gnu") (string-append "gnu-" arch))) (file-append enlightenment
"-" (string-append
(version-major+minor (package-version enlightenment)) "/lib/enlightenment/modules/sysinfo/"
"/freqset"))))) module-arch "-"
(package-version enlightenment)
"/cpuclock_sysfs"))))))
(define enlightenment-desktop-service-type (define enlightenment-desktop-service-type
(service-type (service-type

View File

@ -401,7 +401,8 @@ shutdown on system startup."))
(compose list tlp-configuration-tlp)) (compose list tlp-configuration-tlp))
(service-extension activation-service-type (service-extension activation-service-type
tlp-activation))) tlp-activation)))
(default-value (tlp-configuration)))) (default-value (tlp-configuration))
(description "Run TLP, a power management tool.")))
(define (generate-tlp-documentation) (define (generate-tlp-documentation)
(generate-documentation (generate-documentation
@ -441,4 +442,6 @@ shutdown on system startup."))
(name 'thermald) (name 'thermald)
(extensions (list (service-extension shepherd-root-service-type (extensions (list (service-extension shepherd-root-service-type
thermald-shepherd-service))) thermald-shepherd-service)))
(default-value (thermald-configuration)))) (default-value (thermald-configuration))
(description "Run thermald, a CPU frequency scaling service that helps
prevent overheating.")))

View File

@ -100,7 +100,7 @@ inside %DOCKER-OS."
marionette)) marionette))
(test-equal "Load docker image and run it" (test-equal "Load docker image and run it"
'("hello world" "hi!" "JSON!") '("hello world" "hi!" "JSON!" #o1777)
(marionette-eval (marionette-eval
`(begin `(begin
(define slurp (define slurp
@ -131,8 +131,15 @@ inside %DOCKER-OS."
,(string-append #$docker-cli "/bin/docker") ,(string-append #$docker-cli "/bin/docker")
"run" repository&tag "run" repository&tag
"-c" "(use-modules (json)) "-c" "(use-modules (json))
(display (json-string->scm (scm->json-string \"JSON!\")))"))) (display (json-string->scm (scm->json-string \"JSON!\")))"))
(list response1 response2 response3)))
;; Check whether /tmp exists.
(response4 (slurp
,(string-append #$docker-cli "/bin/docker")
"run" repository&tag "-c"
"(display (stat:perms (lstat \"/tmp\")))")))
(list response1 response2 response3
(string->number response4))))
marionette)) marionette))
(test-end) (test-end)

View File

@ -134,22 +134,12 @@ directory = '" port)
;; upgrading the compiler for example. ;; upgrading the compiler for example.
(setenv "RUSTFLAGS" "--cap-lints allow") (setenv "RUSTFLAGS" "--cap-lints allow")
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
#t)
;; The Cargo.lock file tells the build system which crates are required for ;; We don't use the Cargo.lock file to determine the package versions we use
;; building and hardcodes their version and checksum. In order to build with ;; during building, and in any case if one is not present it is created
;; the inputs we provide, we need to recreate the file with our inputs. ;; during the 'build phase by cargo.
(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") (when (file-exists? "Cargo.lock")
(begin (delete-file "Cargo.lock"))
;; 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) #t)
;; After the 'patch-generated-file-shebangs phase any vendored crates who have ;; After the 'patch-generated-file-shebangs phase any vendored crates who have
@ -203,7 +193,6 @@ directory = '" port)
(replace 'build build) (replace 'build build)
(replace 'check check) (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))) (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums patch-cargo-checksums)))
(define* (cargo-build #:key inputs (phases %standard-phases) (define* (cargo-build #:key inputs (phases %standard-phases)

View File

@ -47,6 +47,7 @@ bootstrap libc."
(install-file (pk 'src (string-append kernel-headers "/include/linux/" file)) (install-file (pk 'src (string-append kernel-headers "/include/linux/" file))
(pk 'dest (string-append incdir "/linux")))) (pk 'dest (string-append incdir "/linux"))))
'( '(
"a.out.h" ; for 2.2.5
"atalk.h" ; for 2.2.5 "atalk.h" ; for 2.2.5
"errno.h" "errno.h"
"falloc.h" "falloc.h"

View File

@ -71,7 +71,12 @@ is a trivial format string."
(define* (%highlight-argument arg #:optional (port (guix-warning-port))) (define* (%highlight-argument arg #:optional (port (guix-warning-port)))
"Highlight ARG, a format string argument, if PORT supports colors." "Highlight ARG, a format string argument, if PORT supports colors."
(cond ((string? arg) (cond ((string? arg)
(highlight arg port)) ;; If ARG contains white space, don't highlight it, on the grounds
;; that it may be a complete message in its own, like those produced
;; by 'guix lint.
(if (string-any char-set:whitespace arg)
arg
(highlight arg port)))
((symbol? arg) ((symbol? arg)
(highlight (symbol->string arg) port)) (highlight (symbol->string arg) port))
(else arg))) (else arg)))

View File

@ -28,11 +28,13 @@
invoke)) invoke))
#:use-module (gnu build install) #:use-module (gnu build install)
#:use-module (json) ;guile-json #:use-module (json) ;guile-json
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19) #:use-module (srfi srfi-19)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module ((texinfo string-utils) #:use-module ((texinfo string-utils)
#:select (escape-special-chars)) #:select (escape-special-chars))
#:use-module (rnrs bytevectors) #:use-module (rnrs bytevectors)
#:use-module (ice-9 ftw)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:export (build-docker-image)) #:export (build-docker-image))
@ -99,21 +101,18 @@
'("--sort=name" "--mtime=@1" '("--sort=name" "--mtime=@1"
"--owner=root:0" "--group=root:0")) "--owner=root:0" "--group=root:0"))
(define symlink-source (define directive-file
;; Return the file or directory created by a 'evaluate-populate-directive'
;; directive.
(match-lambda (match-lambda
((source '-> target) ((source '-> target)
(string-trim source #\/)))) (string-trim source #\/))
(('directory name _ ...)
(define (topmost-component file) (string-trim name #\/))))
"Return the topmost component of FILE. For instance, if FILE is \"/a/b/c\",
return \"a\"."
(match (string-tokenize file (char-set-complement (char-set #\/)))
((first rest ...)
first)))
(define* (build-docker-image image paths prefix (define* (build-docker-image image paths prefix
#:key #:key
(symlinks '()) (extra-files '())
(transformations '()) (transformations '())
(system (utsname:machine (uname))) (system (utsname:machine (uname)))
database database
@ -133,8 +132,9 @@ entry point in the Docker image JSON structure.
ENVIRONMENT must be a list of name/value pairs. It specifies the environment ENVIRONMENT must be a list of name/value pairs. It specifies the environment
variables that must be defined in the resulting image. variables that must be defined in the resulting image.
SYMLINKS must be a list of (SOURCE -> TARGET) tuples describing symlinks to be EXTRA-FILES must be a list of directives for 'evaluate-populate-directive'
created in the image, where each TARGET is relative to PREFIX. describing non-store files that must be created in the image.
TRANSFORMATIONS must be a list of (OLD -> NEW) tuples describing how to TRANSFORMATIONS must be a list of (OLD -> NEW) tuples describing how to
transform the PATHS. Any path in PATHS that begins with OLD will be rewritten transform the PATHS. Any path in PATHS that begins with OLD will be rewritten
in the Docker image so that it begins with NEW instead. If a path is a in the Docker image so that it begins with NEW instead. If a path is a
@ -199,25 +199,27 @@ SRFI-19 time-utc object, as the creation time in metadata."
(with-output-to-file "json" (with-output-to-file "json"
(lambda () (scm->json (image-description id time)))) (lambda () (scm->json (image-description id time))))
;; Create SYMLINKS. ;; Create a directory for the non-store files that need to go into the
(for-each (match-lambda ;; archive.
((source '-> target) (mkdir "extra")
(let ((source (string-trim source #\/)))
(mkdir-p (dirname source)) (with-directory-excursion "extra"
(symlink (string-append prefix "/" target) ;; Create non-store files.
source)))) (for-each (cut evaluate-populate-directive <> "./")
symlinks) extra-files)
(when database (when database
;; Initialize /var/guix, assuming PREFIX points to a profile. ;; Initialize /var/guix, assuming PREFIX points to a profile.
(install-database-and-gc-roots "." database prefix)) (install-database-and-gc-roots "." database prefix))
(apply invoke "tar" "-cf" "layer.tar" (apply invoke "tar" "-cf" "../layer.tar"
`(,@transformation-options `(,@transformation-options
,@%tar-determinism-options ,@%tar-determinism-options
,@paths ,@paths
,@(if database '("var") '()) ,@(scandir "."
,@(map symlink-source symlinks))) (lambda (file)
(not (member file '("." ".."))))))))
;; It is possible for "/" to show up in the archive, especially when ;; It is possible for "/" to show up in the archive, especially when
;; applying transformations. For example, the transformation ;; applying transformations. For example, the transformation
;; "s,^/a,," will (perhaps surprisingly) cause GNU tar to transform ;; "s,^/a,," will (perhaps surprisingly) cause GNU tar to transform
@ -231,13 +233,7 @@ SRFI-19 time-utc object, as the creation time in metadata."
(lambda () (lambda ()
(system* "tar" "--delete" "/" "-f" "layer.tar"))) (system* "tar" "--delete" "/" "-f" "layer.tar")))
(for-each delete-file-recursively (delete-file-recursively "extra"))
(map (compose topmost-component symlink-source)
symlinks))
;; Delete /var/guix.
(when database
(delete-file-recursively "var")))
(with-output-to-file "config.json" (with-output-to-file "config.json"
(lambda () (lambda ()

View File

@ -139,8 +139,11 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
;; As a last resort, attempt to download from Software Heritage. ;; As a last resort, attempt to download from Software Heritage.
;; XXX: Currently recursive checkouts are not supported. ;; XXX: Currently recursive checkouts are not supported.
(and (not recursive?) (and (not recursive?)
(begin
(format (current-error-port)
"Trying to download from Software Heritage...~%")
(swh-download (getenv "git url") (getenv "git commit") (swh-download (getenv "git url") (getenv "git commit")
#$output))))))) #$output))))))))
(mlet %store-monad ((guile (package->derivation guile system))) (mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "git-checkout") build (gexp->derivation (or name "git-checkout") build

View File

@ -24,6 +24,7 @@
#:use-module ((ice-9 rdelim) #:select (read-string read-line)) #:use-module ((ice-9 rdelim) #:select (read-string read-line))
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-2) #:use-module (srfi srfi-2)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (ice-9 receive) #:use-module (ice-9 receive)
@ -32,11 +33,13 @@
#:use-module (guix http-client) #:use-module (guix http-client)
#:use-module (gcrypt hash) #:use-module (gcrypt hash)
#:use-module (guix store) #:use-module (guix store)
#:use-module ((guix serialization) #:select (write-file))
#:use-module (guix base32) #:use-module (guix base32)
#:use-module ((guix download) #:select (download-to-store)) #:use-module ((guix download) #:select (download-to-store))
#:use-module (guix import utils) #:use-module (guix import utils)
#:use-module ((guix build utils) #:select (find-files)) #:use-module ((guix build utils) #:select (find-files))
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix git)
#:use-module ((guix build-system r) #:select (cran-uri bioconductor-uri)) #:use-module ((guix build-system r) #:select (cran-uri bioconductor-uri))
#:use-module (guix upstream) #:use-module (guix upstream)
#:use-module (guix packages) #:use-module (guix packages)
@ -166,11 +169,25 @@ bioconductor package NAME, or #F if the package is unknown."
(bioconductor-packages-list type)) (bioconductor-packages-list type))
(cut assoc-ref <> "Version"))) (cut assoc-ref <> "Version")))
;; XXX taken from (guix scripts hash)
(define (vcs-file? file stat)
(case (stat:type stat)
((directory)
(member (basename file) '(".bzr" ".git" ".hg" ".svn" "CVS")))
((regular)
;; Git sub-modules have a '.git' file that is a regular text file.
(string=? (basename file) ".git"))
(else
#f)))
;; Little helper to download URLs only once. ;; Little helper to download URLs only once.
(define download (define download
(memoize (memoize
(lambda (url) (lambda* (url #:optional git)
(with-store store (download-to-store store url))))) (with-store store
(if git
(latest-repository-commit store url)
(download-to-store store url))))))
(define (fetch-description repository name) (define (fetch-description repository name)
"Return an alist of the contents of the DESCRIPTION file for the R package "Return an alist of the contents of the DESCRIPTION file for the R package
@ -211,7 +228,18 @@ from ~s: ~a (~s)~%"
(string-append dir "/DESCRIPTION") read-string)) (string-append dir "/DESCRIPTION") read-string))
(lambda (meta) (lambda (meta)
(if (boolean? type) meta (if (boolean? type) meta
(cons `(bioconductor-type . ,type) meta)))))))))))) (cons `(bioconductor-type . ,type) meta))))))))))
((git)
;; Download the git repository at "NAME"
(call-with-values
(lambda () (download name #t))
(lambda (dir commit)
(and=> (description->alist (with-input-from-file
(string-append dir "/DESCRIPTION") read-string))
(lambda (meta)
(cons* `(git . ,name)
`(git-commit . ,commit)
meta))))))))
(define (listify meta field) (define (listify meta field)
"Look up FIELD in the alist META. If FIELD contains a comma-separated "Look up FIELD in the alist META. If FIELD contains a comma-separated
@ -256,7 +284,7 @@ empty list when the FIELD cannot be found."
(define cran-guix-name (cut guix-name "r-" <>)) (define cran-guix-name (cut guix-name "r-" <>))
(define (needs-fortran? tarball) (define (tarball-needs-fortran? tarball)
"Check if the TARBALL contains Fortran source files." "Check if the TARBALL contains Fortran source files."
(define (check pattern) (define (check pattern)
(parameterize ((current-error-port (%make-void-port "rw+")) (parameterize ((current-error-port (%make-void-port "rw+"))
@ -266,16 +294,22 @@ empty list when the FIELD cannot be found."
(check "*.f95") (check "*.f95")
(check "*.f"))) (check "*.f")))
(define (tarball-files-match-pattern? tarball regexp . file-patterns) (define (directory-needs-fortran? dir)
"Return #T if any of the files represented by FILE-PATTERNS in the TARBALL "Check if the directory DIR contains Fortran source files."
match the given REGEXP." (match (find-files dir "\\.f(90|95)?")
(call-with-temporary-directory (() #f)
(lambda (dir) (_ #t)))
(define (needs-fortran? thing tarball?)
"Check if the THING contains Fortran source files."
(if tarball?
(tarball-needs-fortran? thing)
(directory-needs-fortran? thing)))
(define (files-match-pattern? directory regexp . file-patterns)
"Return #T if any of the files matching FILE-PATTERNS in the DIRECTORY match
the given REGEXP."
(let ((pattern (make-regexp regexp))) (let ((pattern (make-regexp regexp)))
(parameterize ((current-error-port (%make-void-port "rw+")))
(apply system* "tar"
"xf" tarball "-C" dir
`("--wildcards" ,@file-patterns)))
(any (lambda (file) (any (lambda (file)
(call-with-input-file file (call-with-input-file file
(lambda (port) (lambda (port)
@ -285,50 +319,102 @@ match the given REGEXP."
((eof-object? line) #f) ((eof-object? line) #f)
((regexp-exec pattern line) #t) ((regexp-exec pattern line) #t)
(else (loop)))))))) (else (loop))))))))
(find-files dir)))))) (apply find-files directory file-patterns))))
(define (needs-zlib? tarball) (define (tarball-files-match-pattern? tarball regexp . file-patterns)
"Return #T if any of the files represented by FILE-PATTERNS in the TARBALL
match the given REGEXP."
(call-with-temporary-directory
(lambda (dir)
(parameterize ((current-error-port (%make-void-port "rw+")))
(apply system* "tar"
"xf" tarball "-C" dir
`("--wildcards" ,@file-patterns)))
(files-match-pattern? dir regexp))))
(define (directory-needs-zlib? dir)
"Return #T if any of the Makevars files in the src directory DIR contain a
zlib linker flag."
(files-match-pattern? dir "-lz" "(Makevars.*|configure.*)"))
(define (tarball-needs-zlib? tarball)
"Return #T if any of the Makevars files in the src directory of the TARBALL "Return #T if any of the Makevars files in the src directory of the TARBALL
contain a zlib linker flag." contain a zlib linker flag."
(tarball-files-match-pattern? (tarball-files-match-pattern?
tarball "-lz" tarball "-lz"
"*/src/Makevars*" "*/src/configure*" "*/configure*")) "*/src/Makevars*" "*/src/configure*" "*/configure*"))
(define (needs-pkg-config? tarball) (define (needs-zlib? thing tarball?)
"Check if the THING contains files indicating a dependency on zlib."
(if tarball?
(tarball-needs-zlib? thing)
(directory-needs-zlib? thing)))
(define (directory-needs-pkg-config? dir)
"Return #T if any of the Makevars files in the src directory DIR reference
the pkg-config tool."
(files-match-pattern? dir "pkg-config"
"(Makevars.*|configure.*)"))
(define (tarball-needs-pkg-config? tarball)
"Return #T if any of the Makevars files in the src directory of the TARBALL "Return #T if any of the Makevars files in the src directory of the TARBALL
reference the pkg-config tool." reference the pkg-config tool."
(tarball-files-match-pattern? (tarball-files-match-pattern?
tarball "pkg-config" tarball "pkg-config"
"*/src/Makevars*" "*/src/configure*" "*/configure*")) "*/src/Makevars*" "*/src/configure*" "*/configure*"))
(define (needs-pkg-config? thing tarball?)
"Check if the THING contains files indicating a dependency on pkg-config."
(if tarball?
(tarball-needs-pkg-config? thing)
(directory-needs-pkg-config? thing)))
;; XXX adapted from (guix scripts hash)
(define (file-hash file select? recursive?)
;; Compute the hash of FILE.
(if recursive?
(let-values (((port get-hash) (open-sha256-port)))
(write-file file port #:select? select?)
(force-output port)
(get-hash))
(call-with-input-file file port-sha256)))
(define (description->package repository meta) (define (description->package repository meta)
"Return the `package' s-expression for an R package published on REPOSITORY "Return the `package' s-expression for an R package published on REPOSITORY
from the alist META, which was derived from the R package's DESCRIPTION file." from the alist META, which was derived from the R package's DESCRIPTION file."
(let* ((base-url (case repository (let* ((base-url (case repository
((cran) %cran-url) ((cran) %cran-url)
((bioconductor) %bioconductor-url))) ((bioconductor) %bioconductor-url)
((git) #f)))
(uri-helper (case repository (uri-helper (case repository
((cran) cran-uri) ((cran) cran-uri)
((bioconductor) bioconductor-uri))) ((bioconductor) bioconductor-uri)
((git) #f)))
(name (assoc-ref meta "Package")) (name (assoc-ref meta "Package"))
(synopsis (assoc-ref meta "Title")) (synopsis (assoc-ref meta "Title"))
(version (assoc-ref meta "Version")) (version (assoc-ref meta "Version"))
(license (string->license (assoc-ref meta "License"))) (license (string->license (assoc-ref meta "License")))
;; Some packages have multiple home pages. Some have none. ;; Some packages have multiple home pages. Some have none.
(home-page (match (listify meta "URL") (home-page (case repository
((git) (assoc-ref meta 'git))
(else (match (listify meta "URL")
((url rest ...) url) ((url rest ...) url)
(_ (string-append base-url name)))) (_ (string-append base-url name))))))
(source-url (match (apply uri-helper name version (source-url (case repository
((git) (assoc-ref meta 'git))
(else
(match (apply uri-helper name version
(case repository (case repository
((bioconductor) ((bioconductor)
(list (assoc-ref meta 'bioconductor-type))) (list (assoc-ref meta 'bioconductor-type)))
(else '()))) (else '())))
((url rest ...) url) ((url rest ...) url)
((? string? url) url) ((? string? url) url)
(_ #f))) (_ #f)))))
(tarball (download source-url)) (git? (assoc-ref meta 'git))
(source (download source-url git?))
(sysdepends (append (sysdepends (append
(if (needs-zlib? tarball) '("zlib") '()) (if (needs-zlib? source (not git?)) '("zlib") '())
(filter (lambda (name) (filter (lambda (name)
(not (member name invalid-packages))) (not (member name invalid-packages)))
(map string-downcase (listify meta "SystemRequirements"))))) (map string-downcase (listify meta "SystemRequirements")))))
@ -339,32 +425,51 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
(listify meta "Imports") (listify meta "Imports")
(listify meta "LinkingTo") (listify meta "LinkingTo")
(delete "R" (delete "R"
(listify meta "Depends")))))) (listify meta "Depends")))))
(values (package
`(package `(package
(name ,(cran-guix-name name)) (name ,(cran-guix-name name))
(version ,version) (version ,(case repository
((git)
`(git-version ,version revision commit))
(else version)))
(source (origin (source (origin
(method url-fetch) (method ,(if git?
(uri (,(procedure-name uri-helper) ,name version 'git-fetch
'url-fetch))
(uri ,(case repository
((git)
`(git-reference
(url ,(assoc-ref meta 'git))
(commit commit)))
(else
`(,(procedure-name uri-helper) ,name version
,@(or (and=> (assoc-ref meta 'bioconductor-type) ,@(or (and=> (assoc-ref meta 'bioconductor-type)
(lambda (type) (lambda (type)
(list (list 'quote type)))) (list (list 'quote type))))
'()))) '())))))
,@(if git?
'((file-name (git-file-name name version)))
'())
(sha256 (sha256
(base32 (base32
,(bytevector->nix-base32-string (file-sha256 tarball)))))) ,(bytevector->nix-base32-string
,@(if (not (equal? (string-append "r-" name) (case repository
(cran-guix-name name))) ((git)
(file-hash source (negate vcs-file?) #t))
(else (file-sha256 source))))))))
,@(if (not (and git?
(equal? (string-append "r-" name)
(cran-guix-name name))))
`((properties ,`(,'quasiquote ((,'upstream-name . ,name))))) `((properties ,`(,'quasiquote ((,'upstream-name . ,name)))))
'()) '())
(build-system r-build-system) (build-system r-build-system)
,@(maybe-inputs sysdepends) ,@(maybe-inputs sysdepends)
,@(maybe-inputs (map cran-guix-name propagate) 'propagated-inputs) ,@(maybe-inputs (map cran-guix-name propagate) 'propagated-inputs)
,@(maybe-inputs ,@(maybe-inputs
`(,@(if (needs-fortran? tarball) `(,@(if (needs-fortran? source (not git?))
'("gfortran") '()) '("gfortran") '())
,@(if (needs-pkg-config? tarball) ,@(if (needs-pkg-config? source (not git?))
'("pkg-config") '())) '("pkg-config") '()))
'native-inputs) 'native-inputs)
(home-page ,(if (string-null? home-page) (home-page ,(if (string-null? home-page)
@ -373,7 +478,14 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
(synopsis ,synopsis) (synopsis ,synopsis)
(description ,(beautify-description (or (assoc-ref meta "Description") (description ,(beautify-description (or (assoc-ref meta "Description")
""))) "")))
(license ,license)) (license ,license))))
(values
(case repository
((git)
`(let ((commit ,(assoc-ref meta 'git-commit))
(revision "1"))
,package))
(else package))
propagate))) propagate)))
(define cran->guix-package (define cran->guix-package

View File

@ -49,7 +49,7 @@ false if none is recognized"
(define (updated-url url) (define (updated-url url)
(if (string-prefix? "https://github.com/" url) (if (string-prefix? "https://github.com/" url)
(let ((ext (or (find-extension url) "")) (let ((ext (or (find-extension url) ""))
(name (package-name old-package)) (name (package-upstream-name old-package))
(version (package-version old-package)) (version (package-version old-package))
(prefix (string-append "https://github.com/" (prefix (string-append "https://github.com/"
(github-user-slash-repository url))) (github-user-slash-repository url)))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;; ;;;
@ -251,6 +251,9 @@ package definition."
(define (package->definition guix-package) (define (package->definition guix-package)
(match guix-package (match guix-package
(('package ('name (? string? name)) _ ...) (('package ('name (? string? name)) _ ...)
`(define-public ,(string->symbol name)
,guix-package))
(('let anything ('package ('name (? string? name)) _ ...))
`(define-public ,(string->symbol name) `(define-public ,(string->symbol name)
,guix-package)))) ,guix-package))))

View File

@ -1008,8 +1008,8 @@ the NIST server non-fatal."
(define (check-for-updates package) (define (check-for-updates package)
"Check if there is an update available for PACKAGE." "Check if there is an update available for PACKAGE."
(match (with-networking-fail-safe (match (with-networking-fail-safe
(G_ "while retrieving upstream info for '~a'") (format #f (G_ "while retrieving upstream info for '~a'")
(list (package-name package)) (package-name package))
#f #f
(package-latest-release* package (force %updaters))) (package-latest-release* package (force %updaters)))
((? upstream-source? source) ((? upstream-source? source)

View File

@ -801,7 +801,8 @@ dependencies are known to build on SYSTEM."
(define (bag-transitive-host-inputs bag) (define (bag-transitive-host-inputs bag)
"Same as 'package-transitive-target-inputs', but applied to a bag." "Same as 'package-transitive-target-inputs', but applied to a bag."
(transitive-inputs (bag-host-inputs bag))) (parameterize ((%current-target-system (bag-target bag)))
(transitive-inputs (bag-host-inputs bag))))
(define (bag-transitive-target-inputs bag) (define (bag-transitive-target-inputs bag)
"Return the \"target inputs\" of BAG, recursively." "Return the \"target inputs\" of BAG, recursively."

View File

@ -27,6 +27,7 @@
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (ssh popen) #:use-module (ssh popen)
#:use-module (ssh channel)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
@ -68,10 +69,13 @@ BECOME-COMMAND is given, use that to invoke the remote Guile REPL."
(let ((pipe (apply open-remote-pipe* session OPEN_READ repl-command))) (let ((pipe (apply open-remote-pipe* session OPEN_READ repl-command)))
(when (eof-object? (peek-char pipe)) (when (eof-object? (peek-char pipe))
(let ((status (channel-get-exit-status pipe)))
(close-port pipe)
(raise (condition (raise (condition
(&message (&message
(message (format #f (G_ "failed to run '~{~a~^ ~}'") (message (format #f (G_ "remote command '~{~a~^ ~}' failed \
repl-command)))))) with status ~a")
repl-command status)))))))
pipe)) pipe))
(define* (%remote-eval lowered session #:optional become-command) (define* (%remote-eval lowered session #:optional become-command)

View File

@ -94,7 +94,7 @@ Perform the deployment specified by FILE.\n"))
(machine-display-name machine)) (machine-display-name machine))
(parameterize ((%graft? (assq-ref opts 'graft?))) (parameterize ((%graft? (assq-ref opts 'graft?)))
(guard (c ((message-condition? c) (guard (c ((message-condition? c)
(report-error (G_ "failed to deploy ~a: '~a'~%") (report-error (G_ "failed to deploy ~a: ~a~%")
(machine-display-name machine) (machine-display-name machine)
(condition-message c))) (condition-message c)))
((deploy-error? c) ((deploy-error? c)

View File

@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 David Thompson <davet@gnu.org> ;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -113,7 +114,8 @@ Run IMPORTER with ARGS.\n"))
(pretty-print expr (newline-rewriting-port (pretty-print expr (newline-rewriting-port
(current-output-port)))))) (current-output-port))))))
(match (apply (resolve-importer importer) args) (match (apply (resolve-importer importer) args)
((and expr ('package _ ...)) ((and expr (or ('package _ ...)
('let _ ...)))
(print expr)) (print expr))
((? list? expressions) ((? list? expressions)
(for-each (lambda (expr) (for-each (lambda (expr)

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,6 +22,7 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix scripts) #:use-module (guix scripts)
#:use-module (guix import cran) #:use-module (guix import cran)
#:use-module (guix import utils)
#:use-module (guix scripts import) #:use-module (guix scripts import)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
@ -96,11 +97,7 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
((package-name) ((package-name)
(if (assoc-ref opts 'recursive) (if (assoc-ref opts 'recursive)
;; Recursive import ;; Recursive import
(map (match-lambda (map package->definition
((and ('package ('name name) . rest) pkg)
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
(reverse (reverse
(stream->list (stream->list
(cran-recursive-import package-name (cran-recursive-import package-name

View File

@ -46,7 +46,7 @@
(lambda (lint-warning) (lambda (lint-warning)
(let ((package (lint-warning-package lint-warning)) (let ((package (lint-warning-package lint-warning))
(loc (lint-warning-location lint-warning))) (loc (lint-warning-location lint-warning)))
(warning loc (G_ "~a@~a: ~a~%") (info loc (G_ "~a@~a: ~a~%")
(package-name package) (package-version package) (package-name package) (package-version package)
(lint-warning-message lint-warning)))) (lint-warning-message lint-warning))))
warnings)) warnings))

View File

@ -490,7 +490,8 @@ the image."
#~(begin #~(begin
(use-modules (guix docker) (guix build store-copy) (use-modules (guix docker) (guix build store-copy)
(guix profiles) (guix search-paths) (guix profiles) (guix search-paths)
(srfi srfi-19) (ice-9 match)) (srfi srfi-1) (srfi srfi-19)
(ice-9 match))
(define environment (define environment
(map (match-lambda (map (match-lambda
@ -499,6 +500,23 @@ the image."
value))) value)))
(profile-search-paths #$profile))) (profile-search-paths #$profile)))
(define symlink->directives
;; Return "populate directives" to make the given symlink and its
;; parent directories.
(match-lambda
((source '-> target)
(let ((target (string-append #$profile "/" target))
(parent (dirname source)))
`((directory ,parent)
(,source -> ,target))))))
(define directives
;; Create a /tmp directory, as some programs expect it, and
;; create SYMLINKS.
`((directory "/tmp" ,(getuid) ,(getgid) #o1777)
,@(append-map symlink->directives '#$symlinks)))
(setenv "PATH" (string-append #$archiver "/bin")) (setenv "PATH" (string-append #$archiver "/bin"))
(build-docker-image #$output (build-docker-image #$output
@ -513,7 +531,7 @@ the image."
#$(and entry-point #$(and entry-point
#~(list (string-append #$profile "/" #~(list (string-append #$profile "/"
#$entry-point))) #$entry-point)))
#:symlinks '#$symlinks #:extra-files directives
#:compressor '#$(compressor-command compressor) #:compressor '#$(compressor-command compressor)
#:creation-time (make-time time-utc 0 1)))))) #:creation-time (make-time time-utc 0 1))))))
@ -611,8 +629,13 @@ please email '~a'~%")
;;; ;;;
(define* (wrapped-package package (define* (wrapped-package package
#:optional (compiler (c-compiler)) #:optional
(output* "out")
(compiler (c-compiler))
#:key proot?) #:key proot?)
"Return the OUTPUT of PACKAGE with its binaries wrapped such that they are
relocatable. When PROOT? is true, include PRoot in the result and use it as a
last resort for relocation."
(define runner (define runner
(local-file (search-auxiliary-file "run-in-namespace.c"))) (local-file (search-auxiliary-file "run-in-namespace.c")))
@ -629,6 +652,14 @@ please email '~a'~%")
(ice-9 ftw) (ice-9 ftw)
(ice-9 match)) (ice-9 match))
(define input
;; The OUTPUT* output of PACKAGE.
(ungexp package output*))
(define target
;; The output we are producing.
(ungexp output output*))
(define (strip-store-prefix file) (define (strip-store-prefix file)
;; Given a file name like "/gnu/store/…-foo-1.2/bin/foo", return ;; Given a file name like "/gnu/store/…-foo-1.2/bin/foo", return
;; "/bin/foo". ;; "/bin/foo".
@ -648,7 +679,7 @@ please email '~a'~%")
(("@STORE_DIRECTORY@") (%store-directory))) (("@STORE_DIRECTORY@") (%store-directory)))
(let* ((base (strip-store-prefix program)) (let* ((base (strip-store-prefix program))
(result (string-append #$output "/" base)) (result (string-append target "/" base))
(proot #$(and proot? (proot #$(and proot?
#~(string-drop #~(string-drop
#$(file-append (proot) "/bin/proot") #$(file-append (proot) "/bin/proot")
@ -667,18 +698,18 @@ please email '~a'~%")
;; Link the top-level files of PACKAGE so that search paths are ;; Link the top-level files of PACKAGE so that search paths are
;; properly defined in PROFILE/etc/profile. ;; properly defined in PROFILE/etc/profile.
(mkdir #$output) (mkdir target)
(for-each (lambda (file) (for-each (lambda (file)
(unless (member file '("." ".." "bin" "sbin" "libexec")) (unless (member file '("." ".." "bin" "sbin" "libexec"))
(let ((file* (string-append #$package "/" file))) (let ((file* (string-append input "/" file)))
(symlink (relative-file-name #$output file*) (symlink (relative-file-name target file*)
(string-append #$output "/" file))))) (string-append target "/" file)))))
(scandir #$package)) (scandir input))
(for-each build-wrapper (for-each build-wrapper
(append (find-files #$(file-append package "/bin")) (append (find-files (string-append input "/bin"))
(find-files #$(file-append package "/sbin")) (find-files (string-append input "/sbin"))
(find-files #$(file-append package "/libexec"))))))) (find-files (string-append input "/libexec")))))))
(computed-file (string-append (computed-file (string-append
(cond ((package? package) (cond ((package? package)
@ -691,14 +722,18 @@ please email '~a'~%")
"R") "R")
build)) build))
(define (wrapped-manifest-entry entry . args)
(manifest-entry
(inherit entry)
(item (apply wrapped-package
(manifest-entry-item entry)
(manifest-entry-output entry)
args))))
(define (map-manifest-entries proc manifest) (define (map-manifest-entries proc manifest)
"Apply PROC to all the entries of MANIFEST and return a new manifest." "Apply PROC to all the entries of MANIFEST and return a new manifest."
(make-manifest (make-manifest
(map (lambda (entry) (map proc (manifest-entries manifest))))
(manifest-entry
(inherit entry)
(item (proc (manifest-entry-item entry)))))
(manifest-entries manifest))))
;;; ;;;
@ -960,7 +995,7 @@ Create a bundle of PACKAGE.\n"))
;; 'glibc-bootstrap' lacks 'libc.a'. ;; 'glibc-bootstrap' lacks 'libc.a'.
(if relocatable? (if relocatable?
(map-manifest-entries (map-manifest-entries
(cut wrapped-package <> #:proot? proot?) (cut wrapped-manifest-entry <> #:proot? proot?)
manifest) manifest)
manifest))) manifest)))
(pack-format (assoc-ref opts 'format)) (pack-format (assoc-ref opts 'format))

View File

@ -106,14 +106,14 @@ given, use that to invoke the remote Guile REPL."
(let* ((repl-command (append (or become-command '()) (let* ((repl-command (append (or become-command '())
'("guix" "repl" "-t" "machine"))) '("guix" "repl" "-t" "machine")))
(pipe (apply open-remote-pipe* session OPEN_BOTH repl-command))) (pipe (apply open-remote-pipe* session OPEN_BOTH repl-command)))
;; XXX: 'channel-get-exit-status' would be better here, but hangs if the
;; process does succeed. This doesn't reflect the documentation, so it's
;; possible that it's a bug in guile-ssh.
(when (eof-object? (peek-char pipe)) (when (eof-object? (peek-char pipe))
(let ((status (channel-get-exit-status pipe)))
(close-port pipe)
(raise (condition (raise (condition
(&message (&message
(message (format #f (G_ "failed to run '~{~a~^ ~}'") (message (format #f (G_ "remote command '~{~a~^ ~}' failed \
repl-command)))))) with status ~a")
repl-command status)))))))
(port->inferior pipe))) (port->inferior pipe)))
(define* (inferior-remote-eval exp session #:optional become-command) (define* (inferior-remote-eval exp session #:optional become-command)

View File

@ -190,6 +190,12 @@ Software Heritage."
(ref 10)))))) (ref 10))))))
str)) ;oops! str)) ;oops!
(define string*
;; Converts "string or #nil" coming from JSON to "string or #f".
(match-lambda
((? string? str) str)
((? null?) #f)))
(define* (call url decode #:optional (method http-get) (define* (call url decode #:optional (method http-get)
#:key (false-if-404? #t)) #:key (false-if-404? #t))
"Invoke the endpoint at URL using METHOD. Decode the resulting JSON body "Invoke the endpoint at URL using METHOD. Decode the resulting JSON body
@ -239,8 +245,8 @@ FALSE-IF-404? is true, return #f upon 404 responses."
(date visit-date "date" string->date*) (date visit-date "date" string->date*)
(origin visit-origin) (origin visit-origin)
(url visit-url "origin_visit_url") (url visit-url "origin_visit_url")
(snapshot-url visit-snapshot-url "snapshot_url") (snapshot-url visit-snapshot-url "snapshot_url" string*) ;string | #f
(status visit-status) (status visit-status "status" string->symbol) ;'full | 'partial | 'ongoing
(number visit-number "visit")) (number visit-number "visit"))
;; <https://archive.softwareheritage.org/api/1/snapshot/4334c3ed4bb208604ed780d8687fe523837f1bd1/> ;; <https://archive.softwareheritage.org/api/1/snapshot/4334c3ed4bb208604ed780d8687fe523837f1bd1/>
@ -378,9 +384,11 @@ FALSE-IF-404? is true, return #f upon 404 responses."
(map json->visit (vector->list (json->scm port)))))) (map json->visit (vector->list (json->scm port))))))
(define (visit-snapshot visit) (define (visit-snapshot visit)
"Return the snapshot corresponding to VISIT." "Return the snapshot corresponding to VISIT or #f if no snapshot is
available."
(and (visit-snapshot-url visit)
(call (swh-url (visit-snapshot-url visit)) (call (swh-url (visit-snapshot-url visit))
json->snapshot)) json->snapshot)))
(define (branch-target branch) (define (branch-target branch)
"Return the target of BRANCH, either a <revision> or a <release>." "Return the target of BRANCH, either a <revision> or a <release>."
@ -396,7 +404,7 @@ FALSE-IF-404? is true, return #f upon 404 responses."
"Return a <revision> corresponding to the given TAG for the repository "Return a <revision> corresponding to the given TAG for the repository
coming from URL. Example: coming from URL. Example:
(lookup-origin-release \"https://github.com/guix-mirror/guix/\" \"v0.8\") (lookup-origin-revision \"https://github.com/guix-mirror/guix/\" \"v0.8\")
=> #<<revision> id: \"44941…\" > => #<<revision> id: \"44941…\" >
The information is based on the latest visit of URL available. Return #f if The information is based on the latest visit of URL available. Return #f if
@ -404,7 +412,7 @@ URL could not be found."
(match (lookup-origin url) (match (lookup-origin url)
(#f #f) (#f #f)
(origin (origin
(match (origin-visits origin) (match (filter visit-snapshot-url (origin-visits origin))
((visit . _) ((visit . _)
(let ((snapshot (visit-snapshot visit))) (let ((snapshot (visit-snapshot visit)))
(match (and=> (find (lambda (branch) (match (and=> (find (lambda (branch)
@ -533,7 +541,8 @@ delete it when leaving the dynamic extent of this call."
(lambda () (lambda ()
(false-if-exception (delete-file-recursively tmp-dir)))))) (false-if-exception (delete-file-recursively tmp-dir))))))
(define (swh-download url reference output) (define* (swh-download url reference output
#:key (log-port (current-error-port)))
"Download from Software Heritage a checkout of the Git tag or commit "Download from Software Heritage a checkout of the Git tag or commit
REFERENCE originating from URL, and unpack it in OUTPUT. Return #t on success REFERENCE originating from URL, and unpack it in OUTPUT. Return #t on success
and #f on failure. and #f on failure.
@ -545,10 +554,20 @@ wait until it becomes available, which could take several minutes."
(lookup-revision reference) (lookup-revision reference)
(lookup-origin-revision url reference)) (lookup-origin-revision url reference))
((? revision? revision) ((? revision? revision)
(format log-port "SWH: found revision ~a with directory at '~a'~%"
(revision-id revision)
(swh-url (revision-directory-url revision)))
(call-with-temporary-directory (call-with-temporary-directory
(lambda (directory) (lambda (directory)
(let ((input (vault-fetch (revision-directory revision) 'directory)) (match (vault-fetch (revision-directory revision) 'directory
(tar (open-pipe* OPEN_WRITE "tar" "-C" directory "-xzvf" "-"))) #:log-port log-port)
(#f
(format log-port
"SWH: directory ~a could not be fetched from the vault~%"
(revision-directory revision))
#f)
((? port? input)
(let ((tar (open-pipe* OPEN_WRITE "tar" "-C" directory "-xzvf" "-")))
(dump-port input tar) (dump-port input tar)
(close-port input) (close-port input)
(let ((status (close-pipe tar))) (let ((status (close-pipe tar)))
@ -560,6 +579,6 @@ wait until it becomes available, which could take several minutes."
(copy-recursively (string-append directory "/" sub-directory) (copy-recursively (string-append directory "/" sub-directory)
output output
#:log (%make-void-port "w")) #:log (%make-void-port "w"))
#t)))))) #t))))))))
(#f (#f
#f))) #f)))

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.0.1-pre1\n" "Project-Id-Version: guix-manual 1.0.1-pre1\n"
"Report-Msgid-Bugs-To: ludo@gnu.org\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n"
"POT-Creation-Date: 2019-05-10 20:53+0200\n" "POT-Creation-Date: 2019-05-10 20:53+0200\n"
"PO-Revision-Date: 2019-05-12 11:55+0200\n" "PO-Revision-Date: 2019-07-20 11:50+0200\n"
"Last-Translator: Julien Lepiller <julien@lepiller.eu>\n" "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
"Language-Team: French <traduc@traduc.org>\n" "Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n" "Language: fr\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n" "X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Offlate 0.1\n" "X-Generator: Poedit 2.2.1\n"
#. #-#-#-#-# contributing.pot (guix 1.0.1-pre1) #-#-#-#-# #. #-#-#-#-# contributing.pot (guix 1.0.1-pre1) #-#-#-#-#
#. type: chapter #. type: chapter
@ -1432,6 +1432,8 @@ msgstr "version-fr.texi"
#. type: copying #. type: copying
#: doc/guix.texi:66 #: doc/guix.texi:66
#, fuzzy
#| msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@*"
msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Gábor Boskovits@* Copyright @copyright{} 2018 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@*" msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Gábor Boskovits@* Copyright @copyright{} 2018 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@*"
msgstr "" msgstr ""
"Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@*\n" "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@*\n"
@ -1449,7 +1451,7 @@ msgstr ""
"Copyright @copyright{} 2016 John Darrington@*\n" "Copyright @copyright{} 2016 John Darrington@*\n"
"Copyright @copyright{} 2016, 2017 ng0@*\n" "Copyright @copyright{} 2016, 2017 ng0@*\n"
"Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@*\n" "Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@*\n"
"Copyright @copyright{} 2016, 2018, 2019 Julien Lepiller@*\n" "Copyright @copyright{} 2016 Julien Lepiller@*\n"
"Copyright @copyright{} 2016 Alex ter Weele@*\n" "Copyright @copyright{} 2016 Alex ter Weele@*\n"
"Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@*\n" "Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@*\n"
"Copyright @copyright{} 2017, 2018 Clément Lassieur@*\n" "Copyright @copyright{} 2017, 2018 Clément Lassieur@*\n"
@ -1472,10 +1474,11 @@ msgstr ""
"Copyright @copyright{} 2018 Mike Gerwitz@*\n" "Copyright @copyright{} 2018 Mike Gerwitz@*\n"
"Copyright @copyright{} 2018 Pierre-Antoine Rouby@*\n" "Copyright @copyright{} 2018 Pierre-Antoine Rouby@*\n"
"Copyright @copyright{} 2018 Gábor Boskovits@*\n" "Copyright @copyright{} 2018 Gábor Boskovits@*\n"
"Copyright @copyright{} 2018 Florian Pelz@*\n" "Copyright @copyright{} 2018, 2019 Florian Pelz@*\n"
"Copyright @copyright{} 2018 Laura Lazzati@*\n" "Copyright @copyright{} 2018 Laura Lazzati@*\n"
"Copyright @copyright{} 2018 Alex Vong@*\n" "Copyright @copyright{} 2018 Alex Vong@*\n"
"Copyright @copyright{} 2019 Josh Holland@*" "Copyright @copyright{} 2019 Josh Holland@*\n"
"Copyright @copyright{} 2019 Diego Nicola Barbato@*"
#. type: copying #. type: copying
#: doc/guix.texi:73 #: doc/guix.texi:73
@ -1610,8 +1613,10 @@ msgstr "Cette documentation décrit GNU Guix version @value{VERSION}, un outil d
#. type: Plain text #. type: Plain text
#: doc/guix.texi:123 #: doc/guix.texi:123
#, fuzzy
#| msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}). If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), and Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}). If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}." msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), and Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}). If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
msgstr "Ce manuel est aussi disponible en anglais (@pxref{Top,,, guix, GNU Guix Reference Manual}), en allemand (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), en chinois simplifié (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}) et en espagnol (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}). Si vous souhaitez nous aider à traduire ce manuel en français, vous pouvez nous rejoindre sur le @uref{https://translationproject.org/domain/guix-manual.html, projet de traduction} et sur la liste de diffusion @uref{https://listes.traduc.org/mailman/listinfo/traduc/, traduc@@traduc.org}." msgstr "Ce manuel est aussi disponible en anglais (@pxref{Top,,, guix, GNU Guix Reference Manual}), en allemand (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), en chinois simplifié (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), en espagnol (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}) et en russe (@pxref{Top,,, guix.ru, Руководство GNU Guix}). Si vous souhaitez nous aider à traduire ce manuel en français, vous pouvez nous rejoindre sur le @uref{https://translationproject.org/domain/guix-manual.html, projet de traduction} et sur la liste de diffusion @uref{https://listes.traduc.org/mailman/listinfo/traduc/, traduc@@traduc.org}."
#. type: chapter #. type: chapter
#: doc/guix.texi:139 doc/guix.texi:149 doc/guix.texi:312 doc/guix.texi:313 #: doc/guix.texi:139 doc/guix.texi:149 doc/guix.texi:312 doc/guix.texi:313
@ -3280,7 +3285,7 @@ msgstr "i686-linux"
#. type: table #. type: table
#: doc/guix.texi:434 #: doc/guix.texi:434
msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;" msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
msgstr "l'architecture Intel 32-bits (IA32) avec le noyau Linux-libre ;" msgstr "l'architecture Intel 32 bits (IA32) avec le noyau Linux-libre ;"
#. type: item #. type: item
#: doc/guix.texi:435 #: doc/guix.texi:435
@ -3312,8 +3317,10 @@ msgstr "mips64el-linux"
#. type: table #. type: table
#: doc/guix.texi:448 #: doc/guix.texi:448
#, fuzzy
#| msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel."
msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel." msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
msgstr "les processeurs MIPS 64-bits little-endian, spécifiquement la série Loongson, ABI n32, avec le noyau Linux-libre." msgstr "les processeurs 64 bits ARMv8-A en little-endian, avec le noyau Linux-libre."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:458 #: doc/guix.texi:458
@ -4086,7 +4093,7 @@ msgstr "crochet de construction"
#. type: Plain text #. type: Plain text
#: doc/guix.texi:1020 #: doc/guix.texi:1020
msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}. When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system type---e.g., @file{x86_64-linux}. Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine." msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}. When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system type---e.g., @file{x86_64-linux}. Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine."
msgstr "Si vous le souhaitez, le démon de construction peut @dfn{décharger} des constructions de dérivations sur d'autres machines Guix avec le @dfn{crochet de construction} @code{offload}@footnote{Cette fonctionnalité n'est disponible que si @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} est présent.}. Lorsque cette fonctionnalité est activée, Guix lit une liste de machines de constructions spécifiée par l'utilisateur dans @file{/etc/guix/machines.scm} ; à chaque fois qu'une construction est demandée, par exemple par @code{guix build}, le démon essaie de la décharger sur une des machines qui satisfont les contraintes de la dérivation, en particulier le type de système, p.@: ex.@: @file{x86_64-linux}. Les prérequis manquants pour la construction sont copiés par SSH sur la machine de construction qui procède ensuite à la construction ; si elle réussi, les sorties de la construction sont copiés vers la machine de départ." msgstr "Si vous le souhaitez, le démon de construction peut @dfn{décharger} des constructions de dérivations sur d'autres machines Guix avec le @dfn{crochet de construction} @code{offload}@footnote{Cette fonctionnalité n'est disponible que si @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} est présent.}. Lorsque cette fonctionnalité est activée, Guix lit une liste de machines de constructions spécifiée par l'utilisateur dans @file{/etc/guix/machines.scm} ; à chaque fois qu'une construction est demandée, par exemple par @code{guix build}, le démon essaie de la décharger sur une des machines qui satisfont les contraintes de la dérivation, en particulier le type de système, p.@: ex.@: @file{x86_64-linux}. Les prérequis manquants pour la construction sont copiés par SSH sur la machine de construction qui procède ensuite à la construction ; si elle réussit, les sorties de la construction sont copiés vers la machine de départ."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:1022 #: doc/guix.texi:1022
@ -6289,7 +6296,7 @@ msgstr "transactions"
#. type: Plain text #. type: Plain text
#: doc/guix.texi:2544 #: doc/guix.texi:2544
msgid "The command provides the obvious install, remove, and upgrade operations. Each invocation is actually a @emph{transaction}: either the specified operation succeeds, or nothing happens. Thus, if the @command{guix package} process is terminated during the transaction, or if a power outage occurs during the transaction, then the user's profile remains in its previous state, and remains usable." msgid "The command provides the obvious install, remove, and upgrade operations. Each invocation is actually a @emph{transaction}: either the specified operation succeeds, or nothing happens. Thus, if the @command{guix package} process is terminated during the transaction, or if a power outage occurs during the transaction, then the user's profile remains in its previous state, and remains usable."
msgstr "La commande fournit les opérations évidentes d'installation, de suppression et de mise à jour. Chaque invocation est en fait une @emph{transaction} : soit l'opération demandée réussi, soit rien ne se passe. Ainsi, si le processus @command{guix package} est terminé pendant la transaction ou si une panne de courant arrive pendant la transaction, le profil de l'utilisateur reste dans son état précédent et reste utilisable." msgstr "La commande fournit les opérations évidentes d'installation, de suppression et de mise à jour. Chaque invocation est en fait une @emph{transaction} : soit l'opération demandée réussit, soit rien ne se passe. Ainsi, si le processus @command{guix package} est terminé pendant la transaction ou si une panne de courant arrive pendant la transaction, le profil de l'utilisateur reste dans son état précédent et reste utilisable."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:2552 #: doc/guix.texi:2552
@ -6299,7 +6306,7 @@ msgstr "En plus, il est possible @emph{d'annuler} toute transaction sur les paqu
#. type: Plain text #. type: Plain text
#: doc/guix.texi:2559 #: doc/guix.texi:2559
msgid "All packages in the package store may be @emph{garbage-collected}. Guix can determine which packages are still referenced by user profiles, and remove those that are provably no longer referenced (@pxref{Invoking guix gc}). Users may also explicitly remove old generations of their profile so that the packages they refer to can be collected." msgid "All packages in the package store may be @emph{garbage-collected}. Guix can determine which packages are still referenced by user profiles, and remove those that are provably no longer referenced (@pxref{Invoking guix gc}). Users may also explicitly remove old generations of their profile so that the packages they refer to can be collected."
msgstr "Tous les paquets du dépôt des paquets peut être @emph{glané}. Guix peut déterminer quels paquets sont toujours référencés par les profils des utilisateurs et supprimer ceux qui ne sont plus référencés de manière prouvable (@pxref{Invoking guix gc}). Les utilisateurs peuvent toujours explicitement supprimer les anciennes générations de leur profil pour que les paquets auxquels elles faisaient référence puissent être glanés." msgstr "Tout paquet du dépôt des paquets peut être @emph{glané}. Guix peut déterminer quels paquets sont toujours référencés par les profils des utilisateurs et supprimer ceux qui ne sont plus référencés de manière prouvable (@pxref{Invoking guix gc}). Les utilisateurs peuvent toujours explicitement supprimer les anciennes générations de leur profil pour que les paquets auxquels elles faisaient référence puissent être glanés."
#. type: cindex #. type: cindex
#: doc/guix.texi:2560 doc/guix.texi:4087 #: doc/guix.texi:2560 doc/guix.texi:4087
@ -6310,7 +6317,7 @@ msgstr "reproductibilité"
#. type: Plain text #. type: Plain text
#: doc/guix.texi:2572 #: doc/guix.texi:2572
msgid "Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}). Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build scripts, etc. This direct correspondence allows users to make sure a given package installation matches the current state of their distribution. It also helps maximize @dfn{build reproducibility}: thanks to the isolated build environments that are used, a given build is likely to yield bit-identical files when performed on different machines (@pxref{Invoking guix-daemon, container})." msgid "Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}). Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build scripts, etc. This direct correspondence allows users to make sure a given package installation matches the current state of their distribution. It also helps maximize @dfn{build reproducibility}: thanks to the isolated build environments that are used, a given build is likely to yield bit-identical files when performed on different machines (@pxref{Invoking guix-daemon, container})."
msgstr "Guix prend une approche @dfn{purement fonctionnelle} de la gestion de paquets, telle que décrite dans l'introduction (@pxref{Introduction}). Chaque nom de répertoire de paquet dans @file{/gnu/store} contient un hash de toutes les entrées qui ont été utilisées pendant la construction de ce paquet — le compilateur, les bibliothèques, les scripts de construction, etc. Cette correspondance directe permet aux utilisateurs de s'assurer que l'installation d'un paquet donné correspond à l'état actuel de leur distribution. Elle aide aussi à maximiser la @dfn{reproductibilité} : grâce aux environnements de construction utilisés, une construction donnée à de forte chances de donner des fichiers identiques bit-à-bit lorsqu'elle est effectuée sur des machines différents (@pxref{Invoking guix-daemon, container})." msgstr "Guix prend une approche @dfn{purement fonctionnelle} de la gestion de paquets, telle que décrite dans l'introduction (@pxref{Introduction}). Chaque nom de répertoire de paquet dans @file{/gnu/store} contient un hash de toutes les entrées qui ont été utilisées pendant la construction de ce paquet — le compilateur, les bibliothèques, les scripts de construction, etc. Cette correspondance directe permet aux utilisateurs de s'assurer que l'installation d'un paquet donné correspond à l'état actuel de leur distribution. Elle aide aussi à maximiser la @dfn{reproductibilité} : grâce aux environnements de construction utilisés, une construction donnée a de forte chances de donner des fichiers identiques bit-à-bit lorsqu'elle est effectuée sur des machines différentes (@pxref{Invoking guix-daemon, container})."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:2583 #: doc/guix.texi:2583
@ -6472,7 +6479,7 @@ msgstr ""
#. type: Plain text #. type: Plain text
#: doc/guix.texi:2678 #: doc/guix.texi:2678
msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}). That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @code{--localstatedir}, and @var{user} is the user name. The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}." msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}). That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @code{--localstatedir}, and @var{user} is the user name. The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
msgstr "Dans un environnement multi-utilisateur, les profils utilisateurs sont stockés comme une @dfn{racine du ramasse-miettes}, vers laquelle pointe @file{$HOME/.guix-profile} (@pxref{Invoking guix gc}). Ce répertoire est normalement @code{@var{localstatedir}/guix/profiles/per-user/@var{utilisateur}}, où @var{localstatedir} est la valeur passée à @code{configure} avec @code{--localstatedir} et @var{utilisateur} le nom d'utilisateur. Le répertoire @file{per-user} est créé lorsque @command{guix-daemon} est démarré et sous-répertoire @var{utilisateur} est créé par @command{guix package}." msgstr "Dans un environnement multi-utilisateur, les profils utilisateurs sont stockés comme une @dfn{racine du ramasse-miettes}, vers laquelle pointe @file{$HOME/.guix-profile} (@pxref{Invoking guix gc}). Ce répertoire est normalement @code{@var{localstatedir}/guix/profiles/per-user/@var{utilisateur}}, où @var{localstatedir} est la valeur passée à @code{configure} avec @code{--localstatedir} et @var{utilisateur} le nom d'utilisateur. Le répertoire @file{per-user} est créé lorsque @command{guix-daemon} est démarré et le sous-répertoire @var{user} est créé par @command{guix package}."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:2680 #: doc/guix.texi:2680
@ -7243,7 +7250,7 @@ msgstr "@emph{Des intervalles}. @code{--list-generations=2..9} affiche les"
#. type: itemize #. type: itemize
#: doc/guix.texi:3061 #: doc/guix.texi:3061
msgid "specified generations and everything in between. Note that the start of a range must be smaller than its end." msgid "specified generations and everything in between. Note that the start of a range must be smaller than its end."
msgstr "générations demandées et tout ce qui se trouvent entre elles. Remarquez que le début d'un intervalle doit être plus petit que sa fin." msgstr "générations demandées et tout ce qui se trouve entre elles. Remarquez que le début d'un intervalle doit être plus petit que sa fin."
#. type: itemize #. type: itemize
#: doc/guix.texi:3065 #: doc/guix.texi:3065
@ -7455,7 +7462,7 @@ msgstr "signatures numériques"
#. type: Plain text #. type: Plain text
#: doc/guix.texi:3230 #: doc/guix.texi:3230
msgid "Guix detects and raises an error when attempting to use a substitute that has been tampered with. Likewise, it ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL." msgid "Guix detects and raises an error when attempting to use a substitute that has been tampered with. Likewise, it ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL."
msgstr "Guix détecte et lève une erreur lorsqu'il essaye d'utiliser un substituts qui a été modifié. De même, il ignore les substituts qui ne sont pas signés ou qui ne sont pas signés par l'une des clefs listés dans l'ACL." msgstr "Guix détecte et lève une erreur lorsqu'il essaye d'utiliser un substitut qui a été modifié. De même, il ignore les substituts qui ne sont pas signés ou qui ne sont pas signés par l'une des clefs listées dans l'ACL."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:3236 #: doc/guix.texi:3236
@ -7654,7 +7661,7 @@ msgstr "Ramasse les miettes — c.-à-d.@: les fichiers inaccessibles de @file{/
#. type: table #. type: table
#: doc/guix.texi:3443 #: doc/guix.texi:3443
msgid "When @var{min} is given, stop once @var{min} bytes have been collected. @var{min} may be a number of bytes, or it may include a unit as a suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})." msgid "When @var{min} is given, stop once @var{min} bytes have been collected. @var{min} may be a number of bytes, or it may include a unit as a suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
msgstr "Lorsque @var{min} est donné, s'arrêter une fois que @var{min} octets ont été collectés. @var{min} pour être un nombre d'octets ou inclure un suffixe d'unité, comme @code{MiB} pour mébioctet et @code{GB} pour gigaoctet (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})." msgstr "Lorsque @var{min} est donné, s'arrêter une fois que @var{min} octets ont été collectés. @var{min} peut être un nombre d'octets ou inclure un suffixe d'unité, comme @code{MiB} pour mébioctet et @code{GB} pour gigaoctet (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
#. type: table #. type: table
#: doc/guix.texi:3445 #: doc/guix.texi:3445
@ -8006,7 +8013,7 @@ msgstr "À la fin, @command{guix package} utilisera les paquets et les versions
#. type: Plain text #. type: Plain text
#: doc/guix.texi:3614 #: doc/guix.texi:3614
msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who run @command{guix pull}. For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa." msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who run @command{guix pull}. For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa."
msgstr "Chaque utilisateur peut mettre à jour sa copie de Guix avec @command{guix pull} et l'effet est limité à l'utilisateur qui a lancé @command{guix pull}. Par exemple, lorsque l'utilisateur @code{root} lance @command{guix pull}, cela n'a pas d'effet sur la version de Guix que vois @code{alice} et vice-versa." msgstr "Chaque utilisateur peut mettre à jour sa copie de Guix avec @command{guix pull} et l'effet est limité à l'utilisateur qui a lancé @command{guix pull}. Par exemple, lorsque l'utilisateur @code{root} lance @command{guix pull}, cela n'a pas d'effet sur la version de Guix que voit @code{alice} et vice-versa."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:3620 #: doc/guix.texi:3620
@ -8102,7 +8109,7 @@ msgstr "@xref{Invoking guix describe, @command{guix describe}}, pour d'autres ma
#. type: Plain text #. type: Plain text
#: doc/guix.texi:3663 #: doc/guix.texi:3663
msgid "This @code{~/.config/guix/current} profile works like any other profile created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:" msgid "This @code{~/.config/guix/current} profile works like any other profile created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:"
msgstr "Ce profil @code{~/.config/guix/current} fonctionne comme les autres profils créés par @command{guix package} (@pxref{Invoking guix package}). C'est-à-dire que vous pouvez lister les générations, revenir en arrière à une génération précédente — c.-à-d.@: la version de Guix précédente — etc :" msgstr "Ce profil @code{~/.config/guix/current} fonctionne comme les autres profils créés par @command{guix package} (@pxref{Invoking guix package}). C'est-à-dire que vous pouvez lister les générations, revenir en arrière à une génération précédente — c.-à-d.@: la version de Guix précédente — etc.@: :"
#. type: example #. type: example
#: doc/guix.texi:3669 #: doc/guix.texi:3669
@ -8121,7 +8128,7 @@ msgstr ""
#. type: Plain text #. type: Plain text
#: doc/guix.texi:3673 #: doc/guix.texi:3673
msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:" msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:"
msgstr "La commande @command{guix pull} est typiquement invoquée sans arguments mais il supporte les options suivantes :" msgstr "La commande @command{guix pull} est typiquement invoquée sans arguments mais elle prend en charge les options suivantes :"
#. type: item #. type: item
#: doc/guix.texi:3675 #: doc/guix.texi:3675
@ -9095,7 +9102,7 @@ msgstr ""
#. type: Plain text #. type: Plain text
#: doc/guix.texi:4226 #: doc/guix.texi:4226
msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @code{-r}), regardless of what is already available in the store on the target machine. The @code{--missing} option can help figure out which items are missing from the target store. The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})." msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @code{-r}), regardless of what is already available in the store on the target machine. The @code{--missing} option can help figure out which items are missing from the target store. The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
msgstr "Cependant, remarquez que, dans les deux exemples, le paquet @code{emacs}, le profil ainsi que toutes leurs dépendances sont transférées (à cause de @code{-r}), indépendamment du fait qu'ils soient disponibles dans le dépôt de la machine cible. L'option @code{--missing} peut vous aider à comprendre les éléments qui manquent dans le dépôt de la machine cible. La commande @command{guix copy} simplifie et optimise ce processus, c'est donc ce que vous devriez utiliser dans ce cas (@pxref{Invoking guix copy})." msgstr "Cependant, remarquez que, dans les deux exemples, le paquet @code{emacs}, le profil ainsi que toutes leurs dépendances sont transférés (à cause de @code{-r}), indépendamment du fait qu'ils soient ou non disponibles dans le dépôt de la machine cible. L'option @code{--missing} peut vous aider à comprendre les éléments qui manquent dans le dépôt de la machine cible. La commande @command{guix copy} simplifie et optimise ce processus, c'est donc ce que vous devriez utiliser dans ce cas (@pxref{Invoking guix copy})."
#. type: cindex #. type: cindex
#: doc/guix.texi:4227 #: doc/guix.texi:4227
@ -9388,7 +9395,7 @@ msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
#. type: Plain text #. type: Plain text
#: doc/guix.texi:4417 #: doc/guix.texi:4417
msgid "Additionally, more than one package may be specified, in which case the union of the inputs for the given packages are used. For example, the command below spawns a shell where all of the dependencies of both Guile and Emacs are available:" msgid "Additionally, more than one package may be specified, in which case the union of the inputs for the given packages are used. For example, the command below spawns a shell where all of the dependencies of both Guile and Emacs are available:"
msgstr "En plus, plus d'un paquet peut être spécifié, auquel cas l'union des entrées des paquets données est utilisée. Par exemple, la commande ci-dessous crée un shell où toutes les dépendances de Guile et Emacs sont disponibles :" msgstr "De surcroît, plus d'un paquet peut être spécifié, auquel cas l'union des entrées des paquets données est utilisée. Par exemple, la commande ci-dessous crée un shell où toutes les dépendances de Guile et Emacs sont disponibles :"
#. type: example #. type: example
#: doc/guix.texi:4420 #: doc/guix.texi:4420
@ -9662,7 +9669,7 @@ msgstr ""
#. type: table #. type: table
#: doc/guix.texi:4585 #: doc/guix.texi:4585
msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @code{PATH}, environment variables whose name starts with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, @code{USER}, etc.)" msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @code{PATH}, environment variables whose name starts with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, @code{USER}, etc.)"
msgstr "Cet exemple exécute @command{mpirun} dans un contexte où les seules variables d'environnement défines sont @code{PATH}, les variables d'environnement dont le nom commence par @code{SLURM}, ainsi que les variables « importante » habituelles (@code{HOME}, @code{USER}, etc)." msgstr "Cet exemple exécute @command{mpirun} dans un contexte où les seules variables d'environnement défines sont @code{PATH}, les variables d'environnement dont le nom commence par @code{SLURM}, ainsi que les variables « importante » habituelles (@code{HOME}, @code{USER}, etc.)."
#. type: item #. type: item
#: doc/guix.texi:4586 #: doc/guix.texi:4586
@ -9925,7 +9932,7 @@ msgstr "binaires repositionnables, avec @command{guix pack}"
#. type: Plain text #. type: Plain text
#: doc/guix.texi:4752 #: doc/guix.texi:4752
msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @code{--relocatable} option (see below). This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}." msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @code{--relocatable} option (see below). This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
msgstr "Et si le destinataire de votre pack n'a pas les privilèges root sur sa machine, et ne peut donc pas le décompresser dans le système de fichiers racine ? Dans ce cas, vous pourriez utiliser l'option @code{--relocatable} (voir plus bas). Cette option produite des @dfn{binaire repositionnables}, ce qui signifie qu'ils peuvent être placés n'importe où dans l'arborescence du système de fichiers : dans l'exemple au-dessus, les utilisateurs peuvent décompresser votre archive dans leur répertoire personnel et lancer directement @file{./opt/gnu/bin/guile}." msgstr "Et si le destinataire de votre pack n'a pas les privilèges root sur sa machine, et ne peut donc pas le décompresser dans le système de fichiers racine ? Dans ce cas, vous pourriez utiliser l'option @code{--relocatable} (voir plus bas). Cette option produit des @dfn{binaire repositionnables}, ce qui signifie qu'ils peuvent être placés n'importe où dans l'arborescence du système de fichiers : dans l'exemple au-dessus, les utilisateurs peuvent décompresser votre archive dans leur répertoire personnel et lancer directement @file{./opt/gnu/bin/guile}."
#. type: cindex #. type: cindex
#: doc/guix.texi:4753 #: doc/guix.texi:4753
@ -13248,7 +13255,7 @@ msgstr "strate de code"
#. type: Plain text #. type: Plain text
#: doc/guix.texi:6979 #: doc/guix.texi:6979
msgid "It should come as no surprise that we like to write these build actions in Scheme. When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop. Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, etc." msgid "It should come as no surprise that we like to write these build actions in Scheme. When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop. Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, etc."
msgstr "Ça ne devrait pas vous surprendre, mais nous aimons écrire ces actions de construction en Scheme. Lorsqu'on fait ça, on fini avec deux @dfn{strates} de code Scheme@footnote{Le terme @dfn{strate} dans ce contexte a été inventé par Manuel Serrano et ses collaborateurs dans le contexte de leur travaux sur Hop. Oleg Kiselyov, qui a écrit des @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essais perspicaces et du code sur le sujet}, utilise le terme de « mise en scène » pour ce genre de génération de code.} : le « code hôte » — le code qui défini les paquets, parle au démon, etc — et le « code côté construction » — le code qui effectue effectivement les actions de construction, comme créer des répertoires, invoquer @code{make}, etc." msgstr "Ça ne devrait pas vous surprendre, mais nous aimons écrire ces actions de construction en Scheme. Lorsqu'on fait ça, on fini avec deux @dfn{strates} de code Scheme@footnote{Le terme @dfn{strate} dans ce contexte a été inventé par Manuel Serrano et ses collaborateurs dans le contexte de leur travaux sur Hop. Oleg Kiselyov, qui a écrit des @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essais perspicaces et du code sur le sujet}, utilise le terme de « mise en scène » pour ce genre de génération de code.} : le « code hôte » — le code qui définit les paquets, parle au démon, etc.@: — et le « code côté construction » — le code qui effectue effectivement les actions de construction, comme créer des répertoires, invoquer @code{make}, etc."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:6986 #: doc/guix.texi:6986
@ -15250,7 +15257,7 @@ msgstr "Maintenant, vous pouvez invoquer les commandes comme si vous étiez le d
#. type: Plain text #. type: Plain text
#: doc/guix.texi:8217 #: doc/guix.texi:8217
msgid "Sometimes it happens that, for example, a package's tests pass when you run them manually but they fail when the daemon runs them. This can happen because the daemon runs builds in containers where, unlike in our environment above, network access is missing, @file{/bin/sh} does not exist, etc. (@pxref{Build Environment Setup})." msgid "Sometimes it happens that, for example, a package's tests pass when you run them manually but they fail when the daemon runs them. This can happen because the daemon runs builds in containers where, unlike in our environment above, network access is missing, @file{/bin/sh} does not exist, etc. (@pxref{Build Environment Setup})."
msgstr "Parfois il arrive que, par exemple, les tests d'un paquet réussissent lorsque vous les lancez manuellement mais échouent quand ils sont lancés par le démon. Cela peut arriver parce que le démon tourne dans un conteneur où, contrairement à notre environnement au-dessus, l'accès réseau est indisponible, @file{/bin/sh} n'existe pas, etc (@pxref{Build Environment Setup})." msgstr "Parfois il arrive que, par exemple, les tests d'un paquet réussissent lorsque vous les lancez manuellement mais échouent quand ils sont lancés par le démon. Cela peut arriver parce que le démon tourne dans un conteneur où, contrairement à notre environnement au-dessus, l'accès réseau est indisponible, @file{/bin/sh} n'existe pas, etc.@: (@pxref{Build Environment Setup})."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:8220 #: doc/guix.texi:8220
@ -15512,7 +15519,7 @@ msgstr "-x"
#. type: table #. type: table
#: doc/guix.texi:8388 #: doc/guix.texi:8388
msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)" msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
msgstr "Lorsqu'elle est combinée à @option{--recursive}, exclut les répertoires de système de contrôle de version (@file{.bzr}, @file{.git}, @file{.hg}, etc)." msgstr "Lorsqu'elle est combinée à @option{--recursive}, exclut les répertoires de système de contrôle de version (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
#. type: table #. type: table
#: doc/guix.texi:8393 #: doc/guix.texi:8393
@ -20082,7 +20089,7 @@ msgstr "disposition clavier"
#. type: Plain text #. type: Plain text
#: doc/guix.texi:11134 #: doc/guix.texi:11134
msgid "To specify what each key of your keyboard does, you need to tell the operating system what @dfn{keyboard layout} you want to use. The default, when nothing is specified, is the US English QWERTY layout for 105-key PC keyboards. However, German speakers will usually prefer the German QWERTZ layout, French speakers will want the AZERTY layout, and so on; hackers might prefer Dvorak or bépo, and they might even want to further customize the effect of some of the keys. This section explains how to get that done." msgid "To specify what each key of your keyboard does, you need to tell the operating system what @dfn{keyboard layout} you want to use. The default, when nothing is specified, is the US English QWERTY layout for 105-key PC keyboards. However, German speakers will usually prefer the German QWERTZ layout, French speakers will want the AZERTY layout, and so on; hackers might prefer Dvorak or bépo, and they might even want to further customize the effect of some of the keys. This section explains how to get that done."
msgstr "Pour spécifier ce que fait chaque touche de votre clavier, vous devez dire au système d'exploitation quel @dfn{disposition du clavier} vous voulez utiliser. Par défaut, lorsque rien n'est spécifié, la disposition QWERTY pour l'anglais américain pour les claviers 105 touches est utilisée. Cependant, les germanophones préfèrent généralement la disposition QWERTZ, les francophones la disposition AZERTY etc ; les hackers peuvent préférer Dvorak ou bépo, et peuvent même vouloir personnaliser plus en détails l'effet de certaines touches. Cette section explique comment faire cela." msgstr "Pour spécifier ce que fait chaque touche de votre clavier, vous devez dire au système d'exploitation quel @dfn{disposition du clavier} vous voulez utiliser. Par défaut, lorsque rien n'est spécifié, la disposition QWERTY pour l'anglais américain pour les claviers 105 touches est utilisée. Cependant, les germanophones préfèrent généralement la disposition QWERTZ, les francophones la disposition AZERTY etc.@: ; les hackers peuvent préférer Dvorak ou bépo, et peuvent même vouloir personnaliser plus en détails l'effet de certaines touches. Cette section explique comment faire cela."
#. type: cindex #. type: cindex
#: doc/guix.texi:11135 #: doc/guix.texi:11135
@ -20892,7 +20899,7 @@ msgstr "Sinon et s'il y a une valeur pour une option @code{console} avec un tty
#. type: table #. type: table
#: doc/guix.texi:11633 #: doc/guix.texi:11633
msgid "In both cases, agetty will leave the other serial device settings (baud rate etc.)@: alone---in the hope that Linux pinned them to the correct values." msgid "In both cases, agetty will leave the other serial device settings (baud rate etc.)@: alone---in the hope that Linux pinned them to the correct values."
msgstr "Dans les deux cas, agetty laissera les autres paramètres du périphérique série (baud, etc) sans y toucher — dans l'espoir que Linux leur a assigné les bonnes valeurs." msgstr "Dans les deux cas, agetty laissera les autres paramètres du périphérique série (baud, etc.) sans y toucher — dans l'espoir que Linux leur a assigné les bonnes valeurs."
#. type: item #. type: item
#: doc/guix.texi:11634 #: doc/guix.texi:11634
@ -25673,7 +25680,7 @@ msgstr "{Procédure Scheme} xorg-start-command [@var{config}]"
#. type: deffn #. type: deffn
#: doc/guix.texi:13744 #: doc/guix.texi:13744
msgid "Return a @code{startx} script in which the modules, fonts, etc. specified in @var{config}, are available. The result should be used in place of @code{startx}." msgid "Return a @code{startx} script in which the modules, fonts, etc. specified in @var{config}, are available. The result should be used in place of @code{startx}."
msgstr "Renvoie un script @code{startx} dans lequel les modules, les polices, etc, spécifiés dans @var{config} sont disponibles. Le résultat devrait être utilisé à la place de @code{startx}." msgstr "Renvoie un script @code{startx} dans lequel les modules, les polices, etc., spécifiés dans @var{config} sont disponibles. Le résultat devrait être utilisé à la place de @code{startx}."
#. type: deffn #. type: deffn
#: doc/guix.texi:13746 #: doc/guix.texi:13746
@ -27321,8 +27328,10 @@ msgstr "C'est la liste des services qui étend @var{%base-services} en ajoutant
#. type: defvr #. type: defvr
#: doc/guix.texi:14629 #: doc/guix.texi:14629
#, fuzzy
#| msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}) with modem support (@pxref{Networking Services, @code{modem-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})." msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
msgstr "En particulier, il ajoute un gestionnaire de connexion graphique (@pxref{X Window, @code{gdm-service-type}}), des verrouilleurs d'écran, un outil de gestion réseau (@pxref{Networking Services, @code{network-manager-service-type}}), des services de gestion de l'énergie et des couleurs, le gestionnaire de connexion et de session @code{elogind}, le service de privilèges Polkit, le service de géolocalisation GeoClue, le démon Accounts Service qui permet aux utilisateurs autorisés de changer les mots de passe du système, un client NTP (@pxref{Networking Services}), le démon Avahi, et le service name service switch est configuré pour pouvoir utiliser @code{nss-mdns} (@pxref{Name Service Switch, mDNS})." msgstr "En particulier, elle ajoute un gestionnaire de connexion graphique (@pxref{X Window, @code{gdm-service-type}}), des verrouilleurs d'écran, un outil de gestion réseau (@pxref{Networking Services, @code{network-manager-service-type}}) avec la prise en charge des modems (@pxref{Networking Services, @code{modem-manager-service-type}}), des services de gestion de l'énergie et des couleurs, le gestionnaire de connexion et de session @code{elogind}, le service de privilèges Polkit, le service de géolocalisation GeoClue, le démon Accounts Service qui permet aux utilisateurs autorisés de changer les mots de passe du système, un client NTP (@pxref{Networking Services}), le démon Avahi, et le service name service switch est configuré pour pouvoir utiliser @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:14634 #: doc/guix.texi:14634
@ -30216,7 +30225,7 @@ msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list
#. type: deftypevr #. type: deftypevr
#: doc/guix.texi:16152 #: doc/guix.texi:16152
msgid "List of plugins to load for all services. Plugins specific to IMAP, LDA, etc.@: are added to this list in their own .conf files. Defaults to @samp{()}." msgid "List of plugins to load for all services. Plugins specific to IMAP, LDA, etc.@: are added to this list in their own .conf files. Defaults to @samp{()}."
msgstr "Liste des greffons à charger pour tous les services. Les greffons spécifiques à IMAP, LDA, etc sont ajoutés à cette liste dans leur propre fichiers .conf. La valeur par défaut est @samp{()}." msgstr "Liste des greffons à charger pour tous les services. Les greffons spécifiques à IMAP, LDA, etc.@: sont ajoutés à cette liste dans leur propre fichiers .conf. La valeur par défaut est @samp{()}."
#. type: deftypevr #. type: deftypevr
#: doc/guix.texi:16154 #: doc/guix.texi:16154
@ -35832,7 +35841,7 @@ msgstr "Des améliorations à FastCGI, comme fastcgi_finish_request() -"
#. type: itemize #. type: itemize
#: doc/guix.texi:19139 #: doc/guix.texi:19139
msgid "a special function to finish request & flush all data while continuing to do something time-consuming (video converting, stats processing, etc.)" msgid "a special function to finish request & flush all data while continuing to do something time-consuming (video converting, stats processing, etc.)"
msgstr "une fonction spéciale pour terminer la requête et nettoyer toutes les données tout en continuant à faire d'autres choses qui prennent du temps (conversion vidéo, gestion des stats, etc)." msgstr "une fonction spéciale pour terminer la requête et nettoyer toutes les données tout en continuant à faire d'autres choses qui prennent du temps (conversion vidéo, gestion des stats, etc.)."
#. type: Plain text #. type: Plain text
#: doc/guix.texi:19141 #: doc/guix.texi:19141
@ -45339,8 +45348,10 @@ msgstr ""
#. type: table #. type: table
#: doc/guix.texi:24514 #: doc/guix.texi:24514
#, fuzzy
#| msgid "Depending on what you run in the Docker container, it may be necessary to give the container additional permissions. For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker create}."
msgid "This command starts a new Docker container from the specified image. It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration. Depending on what you run in the Docker container, it may be necessary to give the container additional permissions. For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker run}." msgid "This command starts a new Docker container from the specified image. It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration. Depending on what you run in the Docker container, it may be necessary to give the container additional permissions. For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker run}."
msgstr "Cette commande démarre un nouveau conteneur Docker à partir de l'image spécifiée. Il démarrera le système Guix de la manière habituelle, ce qui signifie qu'il démarrera tous les services que vous avez définis dans la configuration du système d'exploitation. En fonction de ce que vous lancez dans le conteneur Docker, il peut être nécessaire de donner des permissions supplémentaires au conteneur. Par exemple, si vous voulez construire des paquets avec Guix dans le conteneur Docker, vous devriez passer @option{--privileged} à @code{docker run}." msgstr "En fonction de ce que vous lancez dans le conteneur Docker, il peut être nécessaire de donner des permissions supplémentaires au conteneur. Par exemple, si vous voulez construire des paquets avec Guix dans le conteneur Docker, vous devriez passer @option{--privileged} à @code{docker create}."
#. type: table #. type: table
#: doc/guix.texi:24522 #: doc/guix.texi:24522
@ -46565,9 +46576,10 @@ msgstr "Ce sont les noms qui peuvent être passés à @command{herd start}, @com
#. type: item #. type: item
#: doc/guix.texi:25282 #: doc/guix.texi:25282
#, no-wrap #, fuzzy, no-wrap
#| msgid "@code{requirement} (default: @code{'()})"
msgid "@code{requirements} (default: @code{'()})" msgid "@code{requirements} (default: @code{'()})"
msgstr "@code{requirements} (par défaut : @code{'()})" msgstr "@code{requirement} (par défaut : @code{'()})"
#. type: table #. type: table
#: doc/guix.texi:25284 #: doc/guix.texi:25284
@ -47350,6 +47362,33 @@ msgstr "license, GNU Free Documentation License"
msgid "fdl-1.3.texi" msgid "fdl-1.3.texi"
msgstr "fdl-1.3.texi" msgstr "fdl-1.3.texi"
#~ msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel. This configuration is no longer fully supported; in particular, the project's build farms no longer provide substitutes for this architecture."
#~ msgstr "les processeurs 64 bits MIPS en little-endian, spécifiquement la série Loongson, ABI n32, avec le noyau Linux-libre. Cette configuration n'est plus totalement prise en charge ; en particulier, les fermes de construction du projet de fournissent plus de substituts pour cette architecture."
#~ msgid ""
#~ "image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
#~ "container_id=\"`docker create $image_id`\"\n"
#~ "docker start $container_id\n"
#~ msgstr ""
#~ "image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
#~ "container_id=\"`docker create $image_id`\"\n"
#~ "docker start $container_id\n"
#~ msgid "This command starts a new Docker container from the specified image. It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration. You can get an interactive shell running in the container using @command{docker exec}:"
#~ msgstr "Cette commande démarre un nouveau conteneur Docker à partir de l'image spécifiée. Il démarrera le système Guix de la manière habituelle, ce qui signifie qu'il démarrera tous les services que vous avez définis dans la configuration du système d'exploitation. Vous pouvez obtenir un shell interactif dans le conteneur en utilisant @command{docker exec} :"
#~ msgid "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
#~ msgstr "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
#~ msgid "For the @code{container} action, allow containers to access the host network, that is, do not create a network namespace."
#~ msgstr "Pour l'action @code{container}, permet aux conteneurs d'accéder au réseau de l'hôte, c'est-à-dire, ne crée pas pas d'espace de nom réseau."
#~ msgid "@code{auto-start?} (default: @code{#t})"
#~ msgstr "@code{auto-start?} (par défaut : @code{#t})"
#~ msgid "Whether this service should be started automatically by the Shepherd. If it is @code{#f} the service has to be started manually with @code{herd start}."
#~ msgstr "Indique si ce service doit être démarré automatiquement par le Shepherd. Si la valeur est @code{#f}, le service doit être démarré manuellement avec @code{herd start}."
#~ msgid "The @code{guix} package must remain available in @code{root}'s profile, or it would become subject to garbage collection---in which case you would find yourself badly handicapped by the lack of the @command{guix} command. In other words, do not remove @code{guix} by running @code{guix package -r guix}." #~ msgid "The @code{guix} package must remain available in @code{root}'s profile, or it would become subject to garbage collection---in which case you would find yourself badly handicapped by the lack of the @command{guix} command. In other words, do not remove @code{guix} by running @code{guix package -r guix}."
#~ msgstr "Le paquet @code{guix} doit rester disponible dans le profil de @code{root} ou il pourrait être sujet au ramassage de miettes — dans ce cas vous vous retrouveriez gravement handicapé par l'absence de la commande @command{guix}. En d'autres termes, ne supprimez pas @code{guix} en lançant @code{guix package -r guix}." #~ msgstr "Le paquet @code{guix} doit rester disponible dans le profil de @code{root} ou il pourrait être sujet au ramassage de miettes — dans ce cas vous vous retrouveriez gravement handicapé par l'absence de la commande @command{guix}. En d'autres termes, ne supprimez pas @code{guix} en lançant @code{guix package -r guix}."

View File

@ -19,7 +19,7 @@ msgstr ""
"Project-Id-Version: guix 1.0.1-pre1\n" "Project-Id-Version: guix 1.0.1-pre1\n"
"Report-Msgid-Bugs-To: ludo@gnu.org\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n"
"POT-Creation-Date: 2019-05-10 20:54+0200\n" "POT-Creation-Date: 2019-05-10 20:54+0200\n"
"PO-Revision-Date: 2019-05-12 17:38+0200\n" "PO-Revision-Date: 2019-07-27 09:07+0200\n"
"Last-Translator: Julien Lepiller <julien@lepiller.eu>\n" "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
"Language-Team: French <traduc@traduc.org>\n" "Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n" "Language: fr\n"
@ -28,7 +28,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n" "X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Offlate 0.1\n" "X-Generator: Poedit 2.2.1\n"
#: gnu.scm:83 #: gnu.scm:83
#, scheme-format #, scheme-format
@ -1393,7 +1393,7 @@ msgid ""
" -v, --verbosity=LEVEL use the given verbosity LEVEL" " -v, --verbosity=LEVEL use the given verbosity LEVEL"
msgstr "" msgstr ""
"\n" "\n"
" --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné" " -v, --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné"
#: guix/scripts/build.scm:676 #: guix/scripts/build.scm:676
msgid "" msgid ""

File diff suppressed because it is too large Load Diff

View File

@ -62,6 +62,25 @@ nobody:!:0::::::\n"))
(shell "/bin/sh"))) (shell "/bin/sh")))
port)))) port))))
(test-equal "write-passwd with duplicate entry"
%passwd-sample
(call-with-output-string
(lambda (port)
(let ((charlie (password-entry
(name "charlie")
(uid 1000) (gid 998)
(real-name "Charlie")
(directory "/home/charlie")
(shell "/bin/sh"))))
(write-passwd (list (password-entry
(name "root")
(uid 0) (gid 0)
(real-name "Admin")
(directory "/root")
(shell "/bin/sh"))
charlie charlie)
port)))))
(test-equal "read-passwd + write-passwd" (test-equal "read-passwd + write-passwd"
%passwd-sample %passwd-sample
(call-with-output-string (call-with-output-string

View File

@ -78,3 +78,9 @@ else
"$test_directory/Bin/sed" --version > "$test_directory/output" "$test_directory/Bin/sed" --version > "$test_directory/output"
fi fi
grep 'GNU sed' "$test_directory/output" grep 'GNU sed' "$test_directory/output"
chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
# Ensure '-R' works with outputs other than "out".
tarball="`guix pack -R -S /share=share groff:doc`"
(cd "$test_directory"; tar xvf "$tarball")
test -d "$test_directory/share/doc/groff/html"

View File

@ -169,6 +169,7 @@
(when (when
(and (file-exists? (string-append bin "/guile")) (and (file-exists? (string-append bin "/guile"))
(file-exists? "var/guix/db/db.sqlite") (file-exists? "var/guix/db/db.sqlite")
(file-is-directory? "tmp")
(string=? (string-append #$%bootstrap-guile "/bin") (string=? (string-append #$%bootstrap-guile "/bin")
(pk 'binlink (readlink bin))) (pk 'binlink (readlink bin)))
(string=? (string-append #$profile "/bin/guile") (string=? (string-append #$profile "/bin/guile")