Merge branch 'master' into staging
commit
69ecd666d7
|
@ -34,6 +34,8 @@
|
|||
|
||||
(eval . (put 'modify-services 'scheme-indent-function 1))
|
||||
(eval . (put 'with-directory-excursion 'scheme-indent-function 1))
|
||||
(eval . (put 'with-file-lock 'scheme-indent-function 1))
|
||||
|
||||
(eval . (put 'package 'scheme-indent-function 0))
|
||||
(eval . (put 'origin 'scheme-indent-function 0))
|
||||
(eval . (put 'build-system 'scheme-indent-function 0))
|
||||
|
|
|
@ -4866,6 +4866,29 @@ advantage to work without requiring special kernel support, but it incurs
|
|||
run-time overhead every time a system call is made.
|
||||
@end quotation
|
||||
|
||||
@cindex entry point, for Docker images
|
||||
@item --entry-point=@var{command}
|
||||
Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack
|
||||
format supports it---currently @code{docker} and @code{squashfs} (Singularity)
|
||||
support it. @var{command} must be relative to the profile contained in the
|
||||
pack.
|
||||
|
||||
The entry point specifies the command that tools like @code{docker run} or
|
||||
@code{singularity run} automatically start by default. For example, you can
|
||||
do:
|
||||
|
||||
@example
|
||||
guix pack -f docker --entry-point=bin/guile guile
|
||||
@end example
|
||||
|
||||
The resulting pack can easily be loaded and @code{docker run} with no extra
|
||||
arguments will spawn @code{bin/guile}:
|
||||
|
||||
@example
|
||||
docker load -i pack.tar.gz
|
||||
docker run @var{image-id}
|
||||
@end example
|
||||
|
||||
@item --expression=@var{expr}
|
||||
@itemx -e @var{expr}
|
||||
Consider the package @var{expr} evaluates to.
|
||||
|
@ -24090,7 +24113,7 @@ The following is an example @code{dicod-service} configuration.
|
|||
@cindex Docker
|
||||
@subsubheading Docker Service
|
||||
|
||||
The @code{(gnu services docker)} module provides the following service.
|
||||
The @code{(gnu services docker)} module provides the following services.
|
||||
|
||||
@defvr {Scheme Variable} docker-service-type
|
||||
|
||||
|
@ -24114,6 +24137,66 @@ The Containerd package to use.
|
|||
@end table
|
||||
@end deftp
|
||||
|
||||
@cindex Audit
|
||||
@subsubheading Auditd Service
|
||||
|
||||
The @code{(gnu services auditd)} module provides the following service.
|
||||
|
||||
@defvr {Scheme Variable} auditd-service-type
|
||||
|
||||
This is the type of the service that runs
|
||||
@url{https://people.redhat.com/sgrubb/audit/,auditd},
|
||||
a daemon that tracks security-relevant information on your system.
|
||||
|
||||
Examples of things that can be tracked:
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
File accesses
|
||||
@item
|
||||
System calls
|
||||
@item
|
||||
Invoked commands
|
||||
@item
|
||||
Failed login attempts
|
||||
@item
|
||||
Firewall filtering
|
||||
@item
|
||||
Network access
|
||||
@end enumerate
|
||||
|
||||
@command{auditctl} from the @code{audit} package can be used in order
|
||||
to add or remove events to be tracked (until the next reboot).
|
||||
In order to permanently track events, put the command line arguments
|
||||
of auditctl into @file{/etc/audit/audit.rules}.
|
||||
@command{aureport} from the @code{audit} package can be used in order
|
||||
to view a report of all recorded events.
|
||||
The audit daemon usually logs into the directory @file{/var/log/audit}.
|
||||
|
||||
@end defvr
|
||||
|
||||
@deftp {Data Type} auditd-configuration
|
||||
This is the data type representing the configuration of auditd.
|
||||
|
||||
@table @asis
|
||||
|
||||
@item @code{audit} (default: @code{audit})
|
||||
The audit package to use.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@defvr {Scheme Variable} singularity-service-type
|
||||
This is the type of the service that allows you to run
|
||||
@url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to
|
||||
create and run application bundles (aka. ``containers''). The value for this
|
||||
service is the Singularity package to use.
|
||||
|
||||
The service does not install a daemon; instead, it installs helper programs as
|
||||
setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke
|
||||
@command{singularity run} and similar commands.
|
||||
@end defvr
|
||||
|
||||
@node Setuid Programs
|
||||
@section Setuid Programs
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
(define-module (gnu build accounts)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix combinators)
|
||||
#:use-module ((guix build syscalls) #:select (fdatasync))
|
||||
#:use-module (gnu system accounts)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
|
@ -51,6 +52,7 @@
|
|||
group-entry-gid
|
||||
group-entry-members
|
||||
|
||||
%password-lock-file
|
||||
write-group
|
||||
write-passwd
|
||||
write-shadow
|
||||
|
@ -224,6 +226,19 @@ each field."
|
|||
(serialization list->comma-separated comma-separated->list)
|
||||
(default '())))
|
||||
|
||||
(define %password-lock-file
|
||||
;; The password database lock file used by libc's 'lckpwdf'. Users should
|
||||
;; grab this lock with 'with-file-lock' when they access the databases.
|
||||
"/etc/.pwd.lock")
|
||||
|
||||
(define-syntax-rule (catch-ENOSYS exp)
|
||||
(catch 'system-error
|
||||
(lambda () exp)
|
||||
(lambda args
|
||||
(if (= ENOSYS (system-error-errno args))
|
||||
#f
|
||||
(apply throw args)))))
|
||||
|
||||
(define (database-writer file mode entry->string)
|
||||
(lambda* (entries #:optional (file-or-port file))
|
||||
"Write ENTRIES to FILE-OR-PORT. When FILE-OR-PORT is a file name, write
|
||||
|
@ -243,9 +258,16 @@ to it atomically and set the appropriate permissions."
|
|||
(lambda ()
|
||||
(chmod port mode)
|
||||
(write-entries port)
|
||||
|
||||
;; XXX: When booting with the statically-linked Guile,
|
||||
;; 'fdatasync' is unavailable.
|
||||
(catch-ENOSYS (fdatasync port))
|
||||
|
||||
(close-port port)
|
||||
(rename-file template file-or-port))
|
||||
(lambda ()
|
||||
(close-port port)
|
||||
(unless (port-closed? port)
|
||||
(close-port port))
|
||||
(when (file-exists? template)
|
||||
(delete-file template))))))))
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#:use-module (gnu build accounts)
|
||||
#:use-module (gnu build linux-boot)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module ((guix build syscalls) #:select (with-file-lock))
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 vlist)
|
||||
|
@ -129,22 +130,26 @@ group records) are all available."
|
|||
;; Allow home directories to be created under /var/lib.
|
||||
(mkdir-p "/var/lib")
|
||||
|
||||
(let-values (((groups passwd shadow)
|
||||
(user+group-databases users groups)))
|
||||
(write-group groups)
|
||||
(write-passwd passwd)
|
||||
(write-shadow shadow)
|
||||
;; Take same lock as libc's 'lckpwdf' (but without a timeout) while we read
|
||||
;; and write the databases. This ensures there's no race condition with
|
||||
;; other tools that might be accessing it at the same time.
|
||||
(with-file-lock %password-lock-file
|
||||
(let-values (((groups passwd shadow)
|
||||
(user+group-databases users groups)))
|
||||
(write-group groups)
|
||||
(write-passwd passwd)
|
||||
(write-shadow shadow)))
|
||||
|
||||
;; Home directories of non-system accounts are created by
|
||||
;; 'activate-user-home'.
|
||||
(for-each make-home-directory system-accounts)
|
||||
;; Home directories of non-system accounts are created by
|
||||
;; 'activate-user-home'.
|
||||
(for-each make-home-directory system-accounts)
|
||||
|
||||
;; Turn shared home directories, such as /var/empty, into root-owned,
|
||||
;; read-only places.
|
||||
(for-each (lambda (directory)
|
||||
(chown directory 0 0)
|
||||
(chmod directory #o555))
|
||||
(duplicates (map user-account-home-directory system-accounts)))))
|
||||
;; Turn shared home directories, such as /var/empty, into root-owned,
|
||||
;; read-only places.
|
||||
(for-each (lambda (directory)
|
||||
(chown directory 0 0)
|
||||
(chmod directory #o555))
|
||||
(duplicates (map user-account-home-directory system-accounts))))
|
||||
|
||||
(define (activate-user-home users)
|
||||
"Create and populate the home directory of USERS, a list of tuples, unless
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu build locale)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
#:export (build-locale
|
||||
normalize-codeset
|
||||
locale->name+codeset
|
||||
read-supported-locales))
|
||||
|
||||
(define locale-rx
|
||||
;; Regexp matching a locale line in 'localedata/SUPPORTED'.
|
||||
(make-regexp
|
||||
"^[[:space:]]*([[:graph:]]+)/([[:graph:]]+)[[:space:]]*\\\\$"))
|
||||
|
||||
(define (read-supported-locales port)
|
||||
"Read the 'localedata/SUPPORTED' file from PORT. That file is actually a
|
||||
makefile snippet, with one locale per line, and a header that can be
|
||||
discarded."
|
||||
(let loop ((locales '()))
|
||||
(define line
|
||||
(read-line port))
|
||||
|
||||
(cond ((eof-object? line)
|
||||
(reverse locales))
|
||||
((string-prefix? "#" (string-trim line)) ;comment
|
||||
(loop locales))
|
||||
((string-contains line "=") ;makefile variable assignment
|
||||
(loop locales))
|
||||
(else
|
||||
(match (regexp-exec locale-rx line)
|
||||
(#f
|
||||
(loop locales))
|
||||
(m
|
||||
(loop (alist-cons (match:substring m 1)
|
||||
(match:substring m 2)
|
||||
locales))))))))
|
||||
|
||||
(define (normalize-codeset codeset)
|
||||
"Compute the \"normalized\" variant of CODESET."
|
||||
;; info "(libc) Using gettextized software", for the algorithm used to
|
||||
;; compute the normalized codeset.
|
||||
(letrec-syntax ((-> (syntax-rules ()
|
||||
((_ proc value)
|
||||
(proc value))
|
||||
((_ proc rest ...)
|
||||
(proc (-> rest ...))))))
|
||||
(-> (lambda (str)
|
||||
(if (string-every char-set:digit str)
|
||||
(string-append "iso" str)
|
||||
str))
|
||||
string-downcase
|
||||
(lambda (str)
|
||||
(string-filter char-set:letter+digit str))
|
||||
codeset)))
|
||||
|
||||
(define* (build-locale locale
|
||||
#:key
|
||||
(localedef "localedef")
|
||||
(directory ".")
|
||||
(codeset "UTF-8")
|
||||
(name (string-append locale "." codeset)))
|
||||
"Compute locale data for LOCALE and CODESET--e.g., \"en_US\" and
|
||||
\"UTF-8\"--with LOCALEDEF, and store it in DIRECTORY under NAME."
|
||||
(format #t "building locale '~a'...~%" name)
|
||||
(invoke localedef "--no-archive" "--prefix" directory
|
||||
"-i" locale "-f" codeset
|
||||
(string-append directory "/" name)))
|
||||
|
||||
(define (locale->name+codeset locale)
|
||||
"Split a locale name such as \"aa_ER@saaho.UTF-8\" into two values: the
|
||||
language/territory/modifier part, and the codeset."
|
||||
(match (string-rindex locale #\.)
|
||||
(#f (values locale #f))
|
||||
(dot (values (string-take locale dot)
|
||||
(string-drop locale (+ dot 1))))))
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
(define-module (gnu installer locale)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module ((gnu build locale) #:select (normalize-codeset))
|
||||
#:use-module (guix records)
|
||||
#:use-module (json)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -71,24 +72,6 @@ optionally, CODESET."
|
|||
(codeset . ,(or codeset (match:substring matches 5)))
|
||||
(modifier . ,(match:substring matches 7)))))
|
||||
|
||||
(define (normalize-codeset codeset)
|
||||
"Compute the \"normalized\" variant of CODESET."
|
||||
;; info "(libc) Using gettextized software", for the algorithm used to
|
||||
;; compute the normalized codeset.
|
||||
(letrec-syntax ((-> (syntax-rules ()
|
||||
((_ proc value)
|
||||
(proc value))
|
||||
((_ proc rest ...)
|
||||
(proc (-> rest ...))))))
|
||||
(-> (lambda (str)
|
||||
(if (string-every char-set:digit str)
|
||||
(string-append "iso" str)
|
||||
str))
|
||||
string-downcase
|
||||
(lambda (str)
|
||||
(string-filter char-set:letter+digit str))
|
||||
codeset)))
|
||||
|
||||
(define (locale->locale-string locale)
|
||||
"Reverse operation of locale-string->locale."
|
||||
(let ((language (locale-language locale))
|
||||
|
|
|
@ -62,7 +62,7 @@ Internet and return the selected technology. For now, only technologies with
|
|||
(G_ "Continue")
|
||||
(G_ "Exit")
|
||||
(G_ "The install process requires Internet access but no \
|
||||
network device were found. Do you want to continue anyway?"))
|
||||
network devices were found. Do you want to continue anyway?"))
|
||||
((1) (raise
|
||||
(condition
|
||||
(&installer-step-break))))
|
||||
|
|
|
@ -75,10 +75,13 @@
|
|||
(packages '((specification->package "awesome"))))
|
||||
(desktop-environment
|
||||
(name "i3")
|
||||
(packages '((specification->package "i3-wm"))))
|
||||
(packages (map (lambda (package)
|
||||
`(specification->package ,package))
|
||||
'("i3-wm" "i3status" "dmenu" "st"))))
|
||||
(desktop-environment
|
||||
(name "ratpoison")
|
||||
(packages '((specification->package "ratpoison"))))
|
||||
(packages '((specification->package "ratpoison")
|
||||
(specification->package "xterm"))))
|
||||
|
||||
;; Networking.
|
||||
(system-service
|
||||
|
|
|
@ -501,6 +501,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/services.scm \
|
||||
%D%/services/admin.scm \
|
||||
%D%/services/audio.scm \
|
||||
%D%/services/auditd.scm \
|
||||
%D%/services/avahi.scm \
|
||||
%D%/services/base.scm \
|
||||
%D%/services/certbot.scm \
|
||||
|
@ -586,6 +587,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/tests/networking.scm \
|
||||
%D%/tests/rsync.scm \
|
||||
%D%/tests/security-token.scm \
|
||||
%D%/tests/singularity.scm \
|
||||
%D%/tests/ssh.scm \
|
||||
%D%/tests/version-control.scm \
|
||||
%D%/tests/virtualization.scm \
|
||||
|
@ -637,6 +639,7 @@ dist_installer_DATA = \
|
|||
|
||||
# Modules that do not need to be compiled.
|
||||
MODULES_NOT_COMPILED += \
|
||||
%D%/build/locale.scm \
|
||||
%D%/build/shepherd.scm \
|
||||
%D%/build/svg.scm
|
||||
|
||||
|
@ -659,7 +662,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/aegisub-icu59-include-unistr.patch \
|
||||
%D%/packages/patches/aegisub-boost68.patch \
|
||||
%D%/packages/patches/agg-am_c_prototype.patch \
|
||||
%D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \
|
||||
%D%/packages/patches/amule-crypto-6.patch \
|
||||
%D%/packages/patches/antiword-CVE-2014-8123.patch \
|
||||
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
|
||||
|
|
|
@ -115,14 +115,14 @@
|
|||
(define-public aide
|
||||
(package
|
||||
(name "aide")
|
||||
(version "0.16.1")
|
||||
(version "0.16.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/aide/aide/releases/download/v"
|
||||
version "/aide-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1dqhc0c24wa4zid06pfy61k357yvzh28ij86bk9jf6hcqzn7qaqg"))))
|
||||
(base32 "15xp47sz7kk1ciffw3f5xw2jg2mb2lqrbr3q6p4bkbz5dap9iy8p"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
|
@ -1734,13 +1734,13 @@ of supported upstream metrics systems simultaneously.")
|
|||
(define-public ansible
|
||||
(package
|
||||
(name "ansible")
|
||||
(version "2.7.10")
|
||||
(version "2.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "ansible" version))
|
||||
(sha256
|
||||
(base32 "15721d0bxymghxnlnknq43lszlxg3ybbcp2p5v424hhw6wg2v944"))))
|
||||
(base32 "1bpk5r5x6vdgn839n74yv2chd2ja10yfrhav0fzwa38mi5yxsd3j"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-bcrypt" ,python-bcrypt)
|
||||
|
@ -2124,16 +2124,16 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
|
|||
(define-public dstat
|
||||
(package
|
||||
(name "dstat")
|
||||
(version "0.7.3")
|
||||
(version "0.7.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dagwieers/dstat.git")
|
||||
(commit version)))
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "dstat" version))
|
||||
(sha256
|
||||
(base32 "0sbpna531034gr40w4g9cwz35s2fpf9h654paznsxw9fih91rfa5"))))
|
||||
(base32 "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no make check
|
||||
|
@ -2160,7 +2160,7 @@ throughput (in the same interval).")
|
|||
(define-public thefuck
|
||||
(package
|
||||
(name "thefuck")
|
||||
(version "3.28")
|
||||
(version "3.29")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -2169,7 +2169,7 @@ throughput (in the same interval).")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "070b2sx8r0b4hry6xg97psxlikxghmz91zicg2cm6kc1yhgz4agc"))
|
||||
(base32 "1qhxwjjgrzpqrqjv7l2847ywpln76lyd6j8bl9gz2r6kl0fx2fqs"))
|
||||
(patches (search-patches "thefuck-test-environ.patch"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
|
@ -2849,7 +2849,7 @@ Python loading in HPC environments.")
|
|||
(let ((real-name "inxi"))
|
||||
(package
|
||||
(name "inxi-minimal")
|
||||
(version "3.0.33-1")
|
||||
(version "3.0.34-1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -2858,7 +2858,7 @@ Python loading in HPC environments.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name real-name version))
|
||||
(sha256
|
||||
(base32 "19bfdid4zp39irsdq3m6yyqf2336c30da35qgslrzcr2vh815g8c"))))
|
||||
(base32 "0x2s40lwsan2pk292nspjgyw00f9f5fdfmwfvl50924pxhyxn2fh"))))
|
||||
(build-system trivial-build-system)
|
||||
(inputs
|
||||
`(("bash" ,bash-minimal)
|
||||
|
|
|
@ -264,7 +264,7 @@ waveform until they line up with the proper sounds.")
|
|||
(define-public pencil2d
|
||||
(package
|
||||
(name "pencil2d")
|
||||
(version "0.6.3")
|
||||
(version "0.6.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -273,7 +273,7 @@ waveform until they line up with the proper sounds.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"097xwvhw7vl9pgknhb40zs6adf7mb1xxfc73h4kiqgp6z59prjl3"))))
|
||||
"0zi8x0w8n817zds2lyw9l8j33c03kiybkrcyy3s5fg66mchmrwnr"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
|
|
|
@ -32,7 +32,8 @@
|
|||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages perl))
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public aspell
|
||||
(package
|
||||
|
@ -102,7 +103,14 @@ dictionaries, including personal ones.")
|
|||
(define* (aspell-dictionary dict-name full-name
|
||||
#:key version sha256 (prefix "aspell6-"))
|
||||
(package
|
||||
(name (string-append "aspell-dict-" dict-name))
|
||||
(name (string-append
|
||||
"aspell-dict-"
|
||||
;; Downcase and replace underscore in package names
|
||||
;; to follow Guix naming conventions.
|
||||
(string-map (match-lambda
|
||||
(#\_ #\-)
|
||||
(chr chr))
|
||||
(string-downcase dict-name))))
|
||||
(version version)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -281,7 +289,7 @@ dictionaries, including personal ones.")
|
|||
"0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc")))
|
||||
|
||||
(define-public aspell-dict-pt-br
|
||||
(aspell-dictionary "pt-br" "Brazilian Portuguese"
|
||||
(aspell-dictionary "pt_BR" "Brazilian Portuguese"
|
||||
#:version "20090702-0"
|
||||
#:prefix "aspell6-"
|
||||
#:sha256
|
||||
|
@ -289,7 +297,7 @@ dictionaries, including personal ones.")
|
|||
"1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p")))
|
||||
|
||||
(define-public aspell-dict-pt-pt
|
||||
(aspell-dictionary "pt-pt" "Portuguese"
|
||||
(aspell-dictionary "pt_PT" "Portuguese"
|
||||
#:version "20070510-0"
|
||||
#:prefix "aspell6-"
|
||||
#:sha256
|
||||
|
|
|
@ -2120,14 +2120,14 @@ different audio devices such as ALSA or PulseAudio.")
|
|||
(define-public qjackctl
|
||||
(package
|
||||
(name "qjackctl")
|
||||
(version "0.5.7")
|
||||
(version "0.5.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
|
||||
version "/qjackctl-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1g6a5j74p45yisl28bw4fcc9nr6b710ikk459p4mp6djh9gs8v95"))))
|
||||
"1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no check target
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
|
||||
|
@ -1050,12 +1050,47 @@ to the @code{share/locale} sub-directory of this package.")
|
|||
(let ((args `(#:tests? #f #:strip-binaries? #f
|
||||
,@(package-arguments glibc))))
|
||||
(substitute-keyword-arguments args
|
||||
((#:modules modules '((guix build utils)
|
||||
(guix build gnu-build-system)))
|
||||
`((srfi srfi-11)
|
||||
(gnu build locale)
|
||||
,@modules))
|
||||
((#:imported-modules modules '())
|
||||
`((gnu build locale)
|
||||
,@%gnu-build-system-modules))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(invoke "make" "localedata/install-locales"
|
||||
"-j" (number->string (parallel-job-count)))))
|
||||
(add-after 'build 'symlink-normalized-codesets
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; The above phase does not install locales with names using
|
||||
;; the "normalized codeset." Thus, create symlinks like:
|
||||
;; en_US.utf8 -> en_US.UTF-8
|
||||
(define (locale-directory? file stat)
|
||||
(and (file-is-directory? file)
|
||||
(string-index (basename file) #\_)
|
||||
(string-rindex (basename file) #\.)))
|
||||
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(locales (find-files out locale-directory?
|
||||
#:directories? #t)))
|
||||
(for-each (lambda (directory)
|
||||
(let*-values (((base)
|
||||
(basename directory))
|
||||
((name codeset)
|
||||
(locale->name+codeset base))
|
||||
((normalized)
|
||||
(normalize-codeset codeset)))
|
||||
(unless (string=? codeset normalized)
|
||||
(symlink base
|
||||
(string-append (dirname directory)
|
||||
"/" name "."
|
||||
normalized)))))
|
||||
locales)
|
||||
#t)))
|
||||
(delete 'install)
|
||||
(delete 'move-static-libs)))
|
||||
((#:configure-flags flags)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
|
@ -38,14 +38,14 @@
|
|||
(define-public fio
|
||||
(package
|
||||
(name "fio")
|
||||
(version "3.13")
|
||||
(version "3.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://brick.kernel.dk/snaps/"
|
||||
"fio-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ddj7zm04jqlna3w61qyp4qvwnv0r2lc1hzpwrgbvv4fq581w7d2"))))
|
||||
"047y53nyhnmnxcrsfbsf0gcpxw7bli3n19ycscpxy9974j0fck0v"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:test-target "test"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
|
||||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
|
@ -242,7 +242,7 @@ other lower-level build files.")
|
|||
(define-public osc
|
||||
(package
|
||||
(name "osc")
|
||||
(version "0.165.0")
|
||||
(version "0.165.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -251,8 +251,7 @@ other lower-level build files.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0l6iw8a040l60ixxdms9rxajm38vqfdwgij2bm7ahgv1akza64jk"))))
|
||||
(base32 "16p4z34ziy4z2w7mfpclk13x1w2p69wivkdwp0224x18r2fwj67v"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -269,7 +268,7 @@ other lower-level build files.")
|
|||
(inputs
|
||||
`(("python-m2crypto" ,python-m2crypto)
|
||||
("python-pycurl" ,python-pycurl)
|
||||
("rpm" ,rpm))) ; for python-rpm
|
||||
("rpm" ,rpm))) ; for python-rpm
|
||||
(home-page "https://github.com/openSUSE/osc")
|
||||
(synopsis "Open Build Service command line tool")
|
||||
(description "@command{osc} is a command line interface to the Open Build
|
||||
|
|
|
@ -108,7 +108,7 @@ any small or embedded system.")
|
|||
(define-public toybox
|
||||
(package
|
||||
(name "toybox")
|
||||
(version "0.8.0")
|
||||
(version "0.8.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -116,7 +116,7 @@ any small or embedded system.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mirj977zxsxnfaiqndwgsn9calgg312d817fi1hkfbd8kcyrk73"))))
|
||||
"1czxzvyggm157z8wgxbk8k0n675p1gig9xvrcijsplh9p1i1xi0s"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
|
@ -128,7 +128,16 @@ in compression.")
|
|||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'enter-source
|
||||
(lambda _ (chdir "contrib/minizip") #t)))))
|
||||
(lambda _ (chdir "contrib/minizip") #t))
|
||||
(add-after 'install 'remove-crypt-h
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Remove <minizip/crypt.h> because it interferes with libc's
|
||||
;; <crypt.h> given that 'minizip.pc' says "-I…/include/minizip".
|
||||
;; Fedora does the same:
|
||||
;; <https://src.fedoraproject.org/rpms/zlib/c/4d2785ec3116947872f6f32dc4104e6d36d8a7a4?branch=master>.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(delete-file (string-append out "/include/minizip/crypt.h"))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -43,7 +43,7 @@
|
|||
(define-public coq
|
||||
(package
|
||||
(name "coq")
|
||||
(version "8.9.0")
|
||||
(version "8.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -52,7 +52,7 @@
|
|||
(commit (string-append "V" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "01ad7az6f95w16xya7979lk32agy22lf4bqgqf5qpnarpkpxhbw8"))))
|
||||
(base32 "1p4z967s18wkblayv12ygqsrqlyk5ax1pz40yf4kag8pva6gblhk"))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "COQPATH")
|
||||
|
|
|
@ -108,17 +108,19 @@ operating system functions.")
|
|||
(package
|
||||
(name "dashel")
|
||||
(version "1.3.3")
|
||||
(home-page "https://github.com/aseba-community/dashel")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "/archive/" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ckzac1rsw3cxmpdpwcqv46jyp7risk5ybq6jjiizbqn7labf6dw"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/aseba-community/dashel.git")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "0anks2l2i2qp0wlzqck1qgpq15a3l6dg8lw2h8s4nsj7f61lffwy"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments '(#:tests? #f)) ;no tests
|
||||
(arguments '(#:tests? #f)) ; no tests
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://github.com/aseba-community/dashel")
|
||||
(synopsis "Data stream helper encapsulation library")
|
||||
(description
|
||||
"Dashel is a data stream helper encapsulation C++ library. It provides a
|
||||
|
@ -130,22 +132,23 @@ combination of these streams.")
|
|||
(define-public xsimd
|
||||
(package
|
||||
(name "xsimd")
|
||||
(version "4.1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/QuantStack/xsimd/archive/"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x05l4xpqr9b66sm6lkf48n6x7999ks921x6k2hzkkg6mh3gqd46"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(home-page "https://github.com/QuantStack/xsimd")
|
||||
(version "7.2.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/QuantStack/xsimd.git")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "1ny2qin1j4h35mljivh8z52kwdyjxf4yxlzb8j52ji91v2ccc88j"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:test-target "xtest"))
|
||||
`(#:configure-flags (list "-DBUILD_TESTS=ON")
|
||||
#:test-target "xtest"))
|
||||
(native-inputs
|
||||
`(("googletest" ,googletest)))
|
||||
(home-page "https://github.com/QuantStack/xsimd")
|
||||
(synopsis "C++ wrappers for SIMD intrinsics and math implementations")
|
||||
(description "xsimd provides a unified means for using SIMD features for
|
||||
library authors. Namely, it enables manipulation of batches of numbers with
|
||||
|
|
|
@ -124,14 +124,14 @@ in between these sequences may be different in both content and length.")
|
|||
(define-public liburcu
|
||||
(package
|
||||
(name "liburcu")
|
||||
(version "0.11.0")
|
||||
(version "0.11.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.lttng.org/files/urcu/"
|
||||
"userspace-rcu-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rxk5vbkbmqlsnjnvkjz0pkx2076mqnq6jzblpmz8rk29x66kx8s"))))
|
||||
"0l1kxgzch4m8fxiz2hc8fwg56hrvzzspp7n0svnl7i7iycdrgfcj"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("perl" ,perl))) ; for tests
|
||||
|
|
|
@ -11931,7 +11931,7 @@ Emacs minor mode to escape sequences in code.")
|
|||
(define-public emacs-dashboard
|
||||
(package
|
||||
(name "emacs-dashboard")
|
||||
(version "1.2.4")
|
||||
(version "1.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -11940,11 +11940,22 @@ Emacs minor mode to escape sequences in code.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1hhh1kfsz87qfmh45wjf2r93rz79rq0vbyxlfrsl02092zjbl1zr"))))
|
||||
(base32 "0ihpcagwgc9qy70lf2y3dvx2bm5h9lnqh4sx6643cr8pp06ysbvq"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-page-break-lines" ,emacs-page-break-lines)))
|
||||
(arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
|
||||
(arguments
|
||||
'(#:include '("\\.el$" "\\.txt$" "\\.png$")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-dashboard-widgets
|
||||
;; This phase fixes compilation error.
|
||||
(lambda _
|
||||
(chmod "dashboard-widgets.el" #o666)
|
||||
(emacs-substitute-variables "dashboard-widgets.el"
|
||||
("dashboard-init-info"
|
||||
'(format "Loaded in %s" (emacs-init-time))))
|
||||
#t)))))
|
||||
(home-page "https://github.com/rakanalh/emacs-dashboard")
|
||||
(synopsis "Startup screen extracted from Spacemacs")
|
||||
(description "This package provides an extensible Emacs dashboard, with
|
||||
|
@ -15796,3 +15807,26 @@ verb commands which would are normally destructive (such as deletion) are
|
|||
provided. Those alternative commands are and bound by default to their
|
||||
corresponding Evil keys.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public emacs-xterm-color
|
||||
(let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6")
|
||||
(version "1.8")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-xterm-color")
|
||||
(version (git-version version revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/atomontage/xterm-color.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"02kpajb993yshhjhsizpfcbrcndyzkf4dqfipifhxxng50dhp95i"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/atomontage/xterm-color")
|
||||
(synopsis "ANSI & xterm-256 color text property translator for Emacs")
|
||||
(description "@code{xterm-color.el} is an ANSI control sequence to
|
||||
text-property translator.")
|
||||
(license license:bsd-2))))
|
||||
|
|
|
@ -1191,7 +1191,7 @@ play them on systems for which they were never designed!")
|
|||
(define-public mame
|
||||
(package
|
||||
(name "mame")
|
||||
(version "0.209")
|
||||
(version "0.210")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1201,7 +1201,7 @@ play them on systems for which they were never designed!")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"08qvwmx8wbfkqxiccmcff86dsrlq6wjxf6blnhhrsbzic1ji99bh"))
|
||||
"08c62mc8aajzh44q36qvmrcq404hdzh3i8wwdfnvn0c4w8dbf486"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Remove bundled libraries.
|
||||
|
@ -1350,6 +1350,7 @@ play them on systems for which they were never designed!")
|
|||
("fontconfig" ,fontconfig)
|
||||
("glm" ,glm)
|
||||
("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9
|
||||
("libxi" ,libxi)
|
||||
("libxinerama" ,libxinerama)
|
||||
("lua" ,lua)
|
||||
("portaudio" ,portaudio)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
|
||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -184,7 +184,7 @@ removable devices or support for multimedia.")
|
|||
(define-public terminology
|
||||
(package
|
||||
(name "terminology")
|
||||
(version "1.4.0")
|
||||
(version "1.4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -192,7 +192,7 @@ removable devices or support for multimedia.")
|
|||
"terminology/terminology-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0q1y7fadj42n23aspx9y8hm4w4xlc316wc3415wnf75ibsx08ngd"))
|
||||
"0mm9v5a94369is3kaarnr3a28wy42wslzi1mcisaidlcldgv7f6p"))
|
||||
(modules '((guix build utils)))
|
||||
;; Remove the bundled fonts.
|
||||
(snippet
|
||||
|
|
|
@ -345,7 +345,7 @@ do so.")
|
|||
(define-public electrum
|
||||
(package
|
||||
(name "electrum")
|
||||
(version "3.3.5")
|
||||
(version "3.3.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -353,7 +353,7 @@ do so.")
|
|||
version "/Electrum-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1csj0n96zlajnrs39wsazfj5lmy7v7n77cdz56lr8nkmchh6k9z1"))
|
||||
(base32 "0am5ki3z0yvhrz16vp2jjy5fkxxqph0mj9qqpbw3kpql65shykwz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -742,14 +742,14 @@ Ledger Blue/Nano S.")
|
|||
(define-public python-trezor
|
||||
(package
|
||||
(name "python-trezor")
|
||||
(version "0.11.2")
|
||||
(version "0.11.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "trezor" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1f0zfki12mnhidkfxpx2lpq1xim8f35i2d64bx9lf4m26xxv9x56"))))
|
||||
"0211m027vlvyqy83kwbjjjxalb04xgf1klv0h0y0f0yhj07516n7"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -770,12 +770,13 @@ Ledger Blue/Nano S.")
|
|||
("python-requests" ,python-requests)
|
||||
("python-typing-extensions" ,python-typing-extensions)))
|
||||
(native-inputs
|
||||
`(("protobuf" ,protobuf) ; Tests
|
||||
("python-black" ,python-black) ; Tests
|
||||
("python-protobuf" ,python-protobuf) ; Tests
|
||||
("python-isort" ,python-isort) ; Tests
|
||||
("python-pyqt" ,python-pyqt) ; Tests
|
||||
("python-pytest" ,python-pytest))) ; Tests
|
||||
;; For tests.
|
||||
`(("protobuf" ,protobuf)
|
||||
("python-black" ,python-black)
|
||||
("python-protobuf" ,python-protobuf)
|
||||
("python-isort" ,python-isort)
|
||||
("python-pyqt" ,python-pyqt)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(home-page "https://github.com/trezor/python-trezor")
|
||||
(synopsis "Python library for communicating with TREZOR Hardware Wallet")
|
||||
(description "@code{trezor} is a Python library for communicating with
|
||||
|
|
|
@ -616,15 +616,17 @@ languages, plus Greek and Cyrillic.")
|
|||
(define-public font-gnu-unifont
|
||||
(package
|
||||
(name "font-gnu-unifont")
|
||||
(version "12.0.01")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/unifont/unifont-" version "/unifont-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"059j82z6z4wqyy3261ns0zg2b2vh2wvxxfbsa9hra9xasism49vb"))))
|
||||
(version "12.1.02")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (list
|
||||
(string-append "http://unifoundry.com/pub/unifont/unifont-"
|
||||
version "/unifont-" version ".tar.gz")
|
||||
(string-append "mirror://gnu/unifont/unifont-"
|
||||
version "/unifont-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32 "12wdxnlyz5gl5d7h6pazcz8d7h81fwkng1xrayxsgrzh6bqdq4p8"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" ; TrueType version
|
||||
"pcf" ; PCF (bitmap) version
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -301,14 +301,14 @@ Includes the actual FTDI connector.")
|
|||
(define-public gtkwave
|
||||
(package
|
||||
(name "gtkwave")
|
||||
(version "3.3.100")
|
||||
(version "3.3.101")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://gtkwave.sourceforge.net/"
|
||||
"gtkwave-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1z60i5nh8dz8j9ii63fwaw7k0p3x0scp91478cxmdv4xhp4njlxa"))))
|
||||
"1j6capxwgi8aj3sgqg1r7161icni9y8y93g1rl3bzd3s40jcyhsz"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("gperf" ,gperf)
|
||||
|
|
|
@ -435,7 +435,7 @@ support.")
|
|||
(define-public tiled
|
||||
(package
|
||||
(name "tiled")
|
||||
(version "1.2.3")
|
||||
(version "1.2.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -444,7 +444,7 @@ support.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1nfyigfkl10n9r82p1qxhpr09jn2kwalh9n5r209bcaj8dxspph8"))))
|
||||
"04v738h298pvcwb70mwd1r2yj7578f6gkfzs0165j9fqy7avwm18"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
|
@ -465,7 +465,7 @@ support.")
|
|||
(let ((out (assoc-ref outputs "out")))
|
||||
(invoke "qmake"
|
||||
(string-append "PREFIX=" out))))))))
|
||||
(home-page "http://www.mapeditor.org/")
|
||||
(home-page "https://www.mapeditor.org/")
|
||||
(synopsis "Tile map editor")
|
||||
(description
|
||||
"Tiled is a general purpose tile map editor. It is meant to be used for
|
||||
|
@ -684,19 +684,17 @@ etc.")
|
|||
(define-public allegro
|
||||
(package
|
||||
(name "allegro")
|
||||
(version "5.2.4.0")
|
||||
(version "5.2.5.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/liballeg/allegro5/releases"
|
||||
"/download/" version "/allegro-"
|
||||
version ".tar.gz"))
|
||||
(patches (search-patches
|
||||
"allegro-mesa-18.2.5-and-later.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1w9a5yqi5q03b2qvmx5ff90paz0xbr9cy7i7f0xiqa65ava66q9l"))))
|
||||
"06dpkfnac8w3pq36834nn2iij3ajz6prladqd0w92lq39aiqv5jr"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments `(#:tests? #f)) ; there are no tests
|
||||
(arguments `(#:tests? #f)) ; there are no tests
|
||||
(inputs
|
||||
;; FIXME: Add the following optional inputs: xinput2, opensl, dumb
|
||||
`(("flac" ,flac)
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -7336,3 +7337,51 @@ Unfortunately, Hacker is not aware of Drascula's real ambitions: DOMINATING
|
|||
the World and demonstrating that he is even more evil than his brother Vlad.")
|
||||
;; Drascula uses a BSD-like license.
|
||||
(license (license:non-copyleft "file:///readme.txt"))))
|
||||
|
||||
(define-public gnurobots
|
||||
(package
|
||||
(name "gnurobots")
|
||||
(version "1.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gnurobots/gnurobots-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"07gi3lsmbzzsjambgixj6xy79lh22km84z7bnzgwzxdy806lyvwb"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("gtk+" ,gtk+-2)
|
||||
("vte" ,vte/gtk+-2)
|
||||
("readline" ,readline)
|
||||
("guile" ,guile-1.8)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list
|
||||
;; Do not abort build on "deprecated-declarations" warnings.
|
||||
"CFLAGS=-Wno-error=deprecated-declarations"
|
||||
;; Find readline headers in sub-directory.
|
||||
(string-append "READLINE_CFLAGS=-I"
|
||||
(assoc-ref %build-inputs "readline")
|
||||
"/include/readline/"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(install-file "doc/Robots-HOWTO"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/share/doc/gnurobots-"
|
||||
,version))
|
||||
#t)))))
|
||||
(home-page "https://www.gnu.org/software/gnurobots/")
|
||||
(synopsis "Program a little robot and watch it explore a world")
|
||||
(description
|
||||
"GNU Robots is a game in which you program a robot to explore a world
|
||||
full of enemies that can hurt it, obstacles and food to be eaten. The goal of
|
||||
the game is to stay alive and collect prizes. The robot program conveniently
|
||||
may be written in a plain text file in the Scheme programming language.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -176,14 +176,14 @@ color, font attributes (weight, posture), or underlining.")
|
|||
(define-public po4a
|
||||
(package
|
||||
(name "po4a")
|
||||
(version "0.55")
|
||||
(version "0.56")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mquinson/po4a/releases/download/v"
|
||||
version "/po4a-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qss4q5df3nsydsbggb7gg50bn0kdxq5wn8riqm9zwkiq6a4bifg"))))
|
||||
"0kyhww0yw4q0m4vj8vil2wsf6sn4hidh8mqz2gjrq7gpdf83cmnr"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
(define-public babl
|
||||
(package
|
||||
(name "babl")
|
||||
(version "0.1.62")
|
||||
(version "0.1.64")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "https://download.gimp.org/pub/babl/"
|
||||
|
@ -63,7 +63,7 @@
|
|||
"/babl-" version ".tar.bz2")))
|
||||
(sha256
|
||||
(base32
|
||||
"047msfzj8v4sfl61a2xhd69r9rh2pjq4lzpk3j10ijyv9qbry9yw"))))
|
||||
"1gsqs5spgla86y9g11riryvw7015asik7y22maainl83nhq4sxxv"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://gegl.org/babl/")
|
||||
(synopsis "Image pixel format conversion library")
|
||||
|
|
|
@ -3941,26 +3941,15 @@ which can read a large number of file formats.")
|
|||
(define-public rhythmbox
|
||||
(package
|
||||
(name "rhythmbox")
|
||||
(version "3.4.2")
|
||||
(version "3.4.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(patches
|
||||
(list
|
||||
;; fmradio: Fix build with GStreamer master
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://gitlab.gnome.org/GNOME/rhythmbox/commit/"
|
||||
"b182c6b9e1d09e601bac0b703cc5f8b159ebbc3a.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"06n87xgf927djmv1vshal84nqx7g8nwgljza3g2vydhy7g2n1csq")))))
|
||||
(sha256
|
||||
(base32
|
||||
"0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2"))))
|
||||
"1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
|
||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -118,7 +119,7 @@ requests, and the library is intended for implementing Ajax APIs.")
|
|||
(define-public ghc-http-types
|
||||
(package
|
||||
(name "ghc-http-types")
|
||||
(version "0.12.1")
|
||||
(version "0.12.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -126,7 +127,7 @@ requests, and the library is intended for implementing Ajax APIs.")
|
|||
"http-types-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wv9k6nlvkdsxwlr7gaynphvzmvi5211gvwq96mbcxgk51a739rz"))))
|
||||
"05j00b9nqmwh9zaq9y9x50k81v2pd3j7a71kd91zlnbl8xk4m2jf"))))
|
||||
(build-system haskell-build-system)
|
||||
(native-inputs
|
||||
`(("ghc-doctest" ,ghc-doctest)
|
||||
|
@ -136,7 +137,6 @@ requests, and the library is intended for implementing Ajax APIs.")
|
|||
("hspec-discover" ,hspec-discover)))
|
||||
(inputs
|
||||
`(("ghc-case-insensitive" ,ghc-case-insensitive)
|
||||
("ghc-blaze-builder" ,ghc-blaze-builder)
|
||||
("ghc-text" ,ghc-text)))
|
||||
(home-page "https://github.com/aristidb/http-types")
|
||||
(synopsis "Generic HTTP types for Haskell")
|
||||
|
@ -550,7 +550,7 @@ transfers.")
|
|||
(define-public ghc-warp
|
||||
(package
|
||||
(name "ghc-warp")
|
||||
(version "3.2.23")
|
||||
(version "3.2.27")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -558,8 +558,7 @@ transfers.")
|
|||
"warp-" version "/" "warp-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12v9qhi4hyp0sb90yddsax16jj7x47nmqwn53sv7b5nszcxgzam0"))))
|
||||
(base32 "0p2w88q0zd55ms20qylipbi0qzbf324i9r8b9qqxyds5yc1anq76"))))
|
||||
(build-system haskell-build-system)
|
||||
(inputs
|
||||
`(("ghc-async" ,ghc-async)
|
||||
|
|
|
@ -1805,7 +1805,7 @@ version 1.3).")
|
|||
(define-public ghc-streaming-commons
|
||||
(package
|
||||
(name "ghc-streaming-commons")
|
||||
(version "0.2.1.0")
|
||||
(version "0.2.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1814,7 +1814,7 @@ version 1.3).")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
|
||||
"1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
|
||||
(build-system haskell-build-system)
|
||||
(inputs
|
||||
`(("ghc-async" ,ghc-async)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -429,3 +430,50 @@ imaging. It supports several HDR and LDR image formats, and it can:
|
|||
a comic and manga reader. It supports a variety of container formats
|
||||
including CBZ, CB7, CBT, LHA.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public qview
|
||||
(package
|
||||
(name "qview")
|
||||
(version "2.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jurplel/qView.git")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"1s29hz44rb5dwzq8d4i4bfg77dr0v3ywpvidpa6xzg7hnnv3mhi5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda _
|
||||
(invoke "qmake")))
|
||||
;; Installation process hard-codes "/usr/bin", possibly
|
||||
;; prefixed.
|
||||
(add-after 'configure 'fix-install-directory
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "Makefile"
|
||||
(("\\$\\(INSTALL_ROOT\\)/usr") out))
|
||||
#t)))
|
||||
;; Don't phone home or show "Checking for updates..." in the
|
||||
;; About menu.
|
||||
(add-before 'build 'disable-auto-update
|
||||
(lambda _
|
||||
(substitute* "src/qvaboutdialog.cpp"
|
||||
(("ui->updateLabel->setText\\(updateText\\);") "")
|
||||
(("requestUpdates\\(\\);") ""))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
("qtsvg" ,qtsvg)
|
||||
("qtimageformats" ,qtimageformats)))
|
||||
(home-page "https://interversehq.com/qview/")
|
||||
(synopsis "Convenient and minimal image viewer")
|
||||
(description "qView is a Qt image viewer designed with visually
|
||||
minimalism and usability in mind. Its features include animated GIF
|
||||
controls, file history, rotation/mirroring, and multithreaded
|
||||
preloading.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -2559,7 +2559,7 @@ compliance.")
|
|||
(define-public wireless-regdb
|
||||
(package
|
||||
(name "wireless-regdb")
|
||||
(version "2017.03.07")
|
||||
(version "2019.06.03")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -2567,7 +2567,7 @@ compliance.")
|
|||
"wireless-regdb-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1f9mcp78sdd4sci6v32vxfcl1rfjpv205jisz1p93kkfnaisy7ip"))
|
||||
"1gslvh0aqdkv48jyr2ddq153mw28i7qz2ybrjj9qvkk3dgc7x4fd"))
|
||||
|
||||
;; We're building 'regulatory.bin' by ourselves.
|
||||
(snippet '(begin
|
||||
|
@ -2575,13 +2575,25 @@ compliance.")
|
|||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'gzip-determinism
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("gzip") "gzip --no-name"))
|
||||
#t))
|
||||
(delete 'configure))
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'gzip-determinism
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("gzip") "gzip --no-name"))
|
||||
#t))
|
||||
(add-after 'unpack 'omit-signature
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
;; Signing requires a REGDB_PUBCERT and REGDB_PRIVKEY which we
|
||||
;; don't provide (see below). Disable it.
|
||||
((" regulatory\\.db\\.p7s") "")
|
||||
;; regulatory.db is built as a dependency of regulatory.db.p7s,
|
||||
;; but ‘make install’ depends only on the latter while installing
|
||||
;; both (and failing). Depend on it explicitly.
|
||||
(("^install: " all) (string-append all "regulatory.db ")))
|
||||
#t))
|
||||
(delete 'configure)) ; no configure script
|
||||
|
||||
;; The 'all' target of the makefile depends on $(REGDB_CHANGED), which
|
||||
;; is computed and can be equal to 'maintainer-clean'; when that
|
||||
|
@ -2589,19 +2601,22 @@ compliance.")
|
|||
;; just built. Thus, build things sequentially.
|
||||
#:parallel-build? #f
|
||||
|
||||
#:tests? #f ;no tests
|
||||
#:make-flags (let ((out (assoc-ref %outputs "out")))
|
||||
(list (string-append "PREFIX=" out)
|
||||
(string-append "LSB_ID=Guix")
|
||||
(string-append "DISTRO_PUBKEY=/dev/null")
|
||||
(string-append "DISTRO_PRIVKEY=/dev/null")
|
||||
(string-append "REGDB_PUBKEY=/dev/null")
|
||||
#:tests? #f ; no tests
|
||||
#:make-flags
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(list (string-append "PREFIX=" out)
|
||||
(string-append "FIRMWARE_PATH=$(PREFIX)/lib/firmware")
|
||||
|
||||
;; Leave that empty so that db2bin.py doesn't try
|
||||
;; to sign 'regulatory.bin'. This allows us to
|
||||
;; avoid managing a key pair for the whole distro.
|
||||
(string-append "REGDB_PRIVKEY=")))))
|
||||
(native-inputs `(("python" ,python-2)))
|
||||
;; Leave this empty so that db2bin.py doesn't try to sign
|
||||
;; ‘regulatory.bin’. This allows us to avoid managing a key
|
||||
;; pair for the whole distribution.
|
||||
(string-append "REGDB_PRIVKEY=")
|
||||
;; Don't generate a public key for the same reason. These are
|
||||
;; used as Makefile targets and can't be the empty string.
|
||||
(string-append "REGDB_PUBCERT=/dev/null")
|
||||
(string-append "REGDB_PUBKEY=/dev/null")))))
|
||||
(native-inputs
|
||||
`(("python" ,python-wrapper)))
|
||||
(home-page
|
||||
"https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb")
|
||||
(synopsis "Wireless regulatory database")
|
||||
|
@ -2884,12 +2899,16 @@ thanks to the use of namespaces.")
|
|||
(substitute* "bin/singularity.in"
|
||||
(("^PATH=.*" all)
|
||||
(string-append "#" all "\n")))
|
||||
|
||||
(substitute* (find-files "libexec/cli" "\\.exec$")
|
||||
(("\\$SINGULARITY_libexecdir/singularity/bin/([a-z]+)-suid"
|
||||
_ program)
|
||||
(string-append "/run/setuid-programs/singularity-"
|
||||
program "-helper")))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--disable-suid"
|
||||
"--localstatedir=/var")
|
||||
`(#:configure-flags '("--localstatedir=/var")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-reference-to-squashfs-tools
|
||||
|
|
|
@ -847,14 +847,14 @@ invoking @command{notifymuch} from the post-new hook.")
|
|||
(define-public notmuch
|
||||
(package
|
||||
(name "notmuch")
|
||||
(version "0.28.4")
|
||||
(version "0.29")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jjnhs4xs4gksvg0a9qn68rxrj41im5bh58snka2pkj20nxwmcds"))))
|
||||
"0rg4jp0wlsham76rx9fmlpmcbv3n9vsd81vrzqvh6jrwlnmjds88"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
|
|
|
@ -1315,16 +1315,16 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
|
|||
(define-public jalv-select
|
||||
(package
|
||||
(name "jalv-select")
|
||||
(version "0.8")
|
||||
(version "1.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/brummer10/jalv_select.git")
|
||||
(commit (string-append "V" version))))
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gqh768sbvn9ffyx1vqg9i57py9x9v4l65bk6wjsvgga4d7m83k1"))))
|
||||
"15yanq1wra0hyh6x72ji7pk562iddg476g3vksj495x91zhnl6vm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
|
@ -1337,8 +1337,6 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
|
|||
(substitute* "jalv.select.cpp"
|
||||
(("echo \\$PATH.*tr ':'.*xargs ls")
|
||||
(string-append "ls -1 " (assoc-ref inputs "jalv") "/bin")))
|
||||
(substitute* "jalv.select.h"
|
||||
(("gtkmm.h") "gtkmm-2.4/gtkmm.h"))
|
||||
#t))
|
||||
(add-before 'reset-gzip-timestamps 'make-manpages-writable
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
|
|
|
@ -697,7 +697,8 @@ written in Objective Caml.")
|
|||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(format #t "~a~%" (find-files "." ".*.so"))
|
||||
(let ((stubdir (string-append (assoc-ref outputs "out")
|
||||
"/lib/ocaml/site-lib")))
|
||||
"/lib/ocaml/site-lib/stublibs")))
|
||||
(delete-file stubdir)
|
||||
(mkdir-p stubdir)
|
||||
(install-file "src/dllnums.so" stubdir))
|
||||
#t)))))
|
||||
|
@ -1626,7 +1627,13 @@ spans without being subject to operating system calendar time adjustments.")
|
|||
"/lib/ocaml/site-lib/cmdliner"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
(delete 'configure)
|
||||
(add-before 'build 'fix-source-file-order
|
||||
(lambda _
|
||||
(substitute* "build.ml"
|
||||
(("Sys.readdir dir")
|
||||
"let a = Sys.readdir dir in Array.sort String.compare a; a"))
|
||||
#t)))))
|
||||
(home-page "http://erratique.ch/software/cmdliner")
|
||||
(synopsis "Declarative definition of command line interfaces for OCaml")
|
||||
(description "Cmdliner is a module for the declarative definition of command
|
||||
|
@ -2290,6 +2297,12 @@ many additional enhancements, including:
|
|||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'check) ; tests are run by the build phase
|
||||
(add-before 'build 'fix-nondeterminism
|
||||
(lambda _
|
||||
(substitute* "setup.ml"
|
||||
(("Sys.readdir dirname")
|
||||
"let a = Sys.readdir dirname in Array.sort String.compare a; a"))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((files
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
Fixes compilation with Mesa >= 18.2.5.
|
||||
|
||||
Taken from upstream:
|
||||
|
||||
https://github.com/liballeg/allegro5/commit/a40d30e21802ecf5c9382cf34af9b01bd3781e47
|
||||
|
||||
diff --git a/include/allegro5/allegro_opengl.h b/include/allegro5/allegro_opengl.h
|
||||
index 0f86a6768..652dd024e 100644
|
||||
--- a/include/allegro5/allegro_opengl.h
|
||||
+++ b/include/allegro5/allegro_opengl.h
|
||||
@@ -103,10 +103,14 @@
|
||||
|
||||
/* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
|
||||
#define __glext_h_
|
||||
+#define __gl_glext_h_
|
||||
#define __glxext_h_
|
||||
+#define __glx_glxext_h_
|
||||
#include <GL/gl.h>
|
||||
#undef __glext_h_
|
||||
+#undef __gl_glext_h_
|
||||
#undef __glxext_h_
|
||||
+#undef __glx_glxext_h_
|
||||
|
||||
#endif /* ALLEGRO_MACOSX */
|
||||
|
||||
diff --git a/include/allegro5/opengl/GLext/glx_ext_defs.h b/include/allegro5/opengl/GLext/glx_ext_defs.h
|
||||
index 49c502091..fba8aea5d 100644
|
||||
--- a/include/allegro5/opengl/GLext/glx_ext_defs.h
|
||||
+++ b/include/allegro5/opengl/GLext/glx_ext_defs.h
|
||||
@@ -1,7 +1,9 @@
|
||||
/* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
|
||||
#define __glxext_h_
|
||||
+#define __glx_glxext_h_
|
||||
#include <GL/glx.h>
|
||||
#undef __glxext_h_
|
||||
+#undef __glx_glxext_h_
|
||||
|
||||
#ifndef GLX_VERSION_1_3
|
||||
#define _ALLEGRO_GLX_VERSION_1_3
|
||||
--
|
||||
2.20.0
|
|
@ -802,7 +802,18 @@ is commonly written.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00m3lif64zyxd41cnk208kc81nl6qz659676qgiaqgwrw0brzrid"))))
|
||||
"00m3lif64zyxd41cnk208kc81nl6qz659676qgiaqgwrw0brzrid"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(substitute* "Makefile.in"
|
||||
(("^moddir = (.*)/guile/(.*)" _ before after)
|
||||
(string-append "moddir = " before "/guile/site/"
|
||||
after))
|
||||
(("^ccachedir = (.*)/ccache/(.*)" _ before after)
|
||||
(string-append "ccachedir = " before
|
||||
"/site-ccache/" after)))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 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.
|
||||
;;;
|
||||
|
@ -87,14 +87,14 @@ slsh, which is part of the S-Lang distribution.")
|
|||
(define-public newt
|
||||
(package
|
||||
(name "newt")
|
||||
(version "0.52.20")
|
||||
(version "0.52.21")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pagure.io/releases/"
|
||||
name "/" name "-" version ".tar.gz"))
|
||||
(uri (string-append "https://pagure.io/releases/newt/"
|
||||
"newt-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1g3dpfnvaw7vljbr7nzq1rl88d6r8cmrvvng9inphgzwxxmvlrld"))))
|
||||
"0cdvbancr7y4nrj8257y5n45hmhizr8isynagy4fpsnpammv8pi6"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "python"))
|
||||
(inputs
|
||||
|
|
|
@ -55,14 +55,14 @@
|
|||
(define-public ceph
|
||||
(package
|
||||
(name "ceph")
|
||||
(version "13.2.5")
|
||||
(version "13.2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.ceph.com/tarballs/ceph-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jbs6l763clbqnq2s5jksn44yf71rhcnk85cw64fqvmv0r4ch71n"))
|
||||
"13f5qs7jpxprplk4irwlx90mc9gvm48fvd3q471xcqc3n6z1qywz"))
|
||||
(patches
|
||||
(search-patches "ceph-skip-unittest_blockdev.patch"
|
||||
"ceph-skip-collect-sys-info-test.patch"
|
||||
|
|
|
@ -140,7 +140,7 @@ windows.")
|
|||
(define-public tmux-xpanes
|
||||
(package
|
||||
(name "tmux-xpanes")
|
||||
(version "4.1.0")
|
||||
(version "4.1.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -149,7 +149,7 @@ windows.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"11yz6rh2ckd1z8q80n8giv2gcz2i22fgf3pnfxq96qrzflb0d96a"))))
|
||||
"13q02vdk229chgbn547wwv29cj4njvz02lmw840g8qmwh73qb2pi"))))
|
||||
(build-system trivial-build-system)
|
||||
(inputs
|
||||
`(("bash" ,bash)))
|
||||
|
|
|
@ -146,14 +146,14 @@ as well as the classic centralized workflow.")
|
|||
(name "git")
|
||||
;; XXX When updating Git, check if the special 'git-source' input to cgit
|
||||
;; needs to be updated as well.
|
||||
(version "2.21.0")
|
||||
(version "2.22.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a0d0b07rmvs985zpndxxy0vzr0vq53kq5kyd68iv6gf8gkirjwc"))))
|
||||
"17zj6jwx3s6bybd290f1mj5iym1r64560rmnf0p63x4akxclp7hm"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("native-perl" ,perl)
|
||||
|
@ -166,7 +166,7 @@ as well as the classic centralized workflow.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lgcynqbjmfsvhfk14jvqyvb1xiyqgkgznb707vha38wjcjdqs1g"))))
|
||||
"0fpfqw0h4g4v478fscic8z714i0ls5w7946vzhmq31lf7nizsb2f"))))
|
||||
;; For subtree documentation.
|
||||
("asciidoc" ,asciidoc)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
|
|
|
@ -671,14 +671,14 @@ SMPTE 314M.")
|
|||
(define-public libmatroska
|
||||
(package
|
||||
(name "libmatroska")
|
||||
(version "1.5.0")
|
||||
(version "1.5.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dl.matroska.org/downloads/"
|
||||
"libmatroska/libmatroska-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "07md2gvy3x92ym2k449740mdji6mhknlajkndnhi507s4wcdrvzh"))))
|
||||
(base32 "0qn9lfs0877wbv581yxw2gywxywxpvwslc5q07q4f7bqpyzxxiha"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("libebml" ,libebml)))
|
||||
|
@ -1013,7 +1013,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
|||
(define-public vlc
|
||||
(package
|
||||
(name "vlc")
|
||||
(version "3.0.6")
|
||||
(version "3.0.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1022,7 +1022,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
|||
"/vlc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lvyyahv6g9zv7m5g5qinyrwmw47zdsd5ysimb862j7kw15nvh8q"))))
|
||||
"05irswyg9acflxzy4vfyvgi643r72vsvagv118zawjqg1wagxdaw"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("flex" ,flex)
|
||||
|
@ -2192,14 +2192,14 @@ tools, XML authoring components, and an extensible plug-in based API.")
|
|||
(define-public v4l-utils
|
||||
(package
|
||||
(name "v4l-utils")
|
||||
(version "1.12.5")
|
||||
(version "1.16.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://linuxtv.org/downloads/v4l-utils"
|
||||
"/v4l-utils-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"03g2b4rivrilimcp57mwrlsa3qvrxmk4sza08mygwmqbvcnic606"))))
|
||||
"1bkqlrizx0j2rd6ybam2x17bjrpwzl4v4szmnzm3cmixis3w3npr"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
@ -2858,7 +2858,7 @@ many codecs and formats supported by libmediainfo.")
|
|||
(define-public livemedia-utils
|
||||
(package
|
||||
(name "livemedia-utils")
|
||||
(version "2019.03.06")
|
||||
(version "2019.05.29")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -2866,10 +2866,10 @@ many codecs and formats supported by libmediainfo.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gasdl95yjabv811knkmy5laj21a54z1jdfq36jdj984k1nw5l0b"))))
|
||||
"08i63jr8ihn1xiq5z5n3yls3yz6li5sg0s454l56p5bcvbrw81my"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no tests
|
||||
'(#:tests? #f ; no tests
|
||||
#:make-flags (list "CC=gcc"
|
||||
(string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib")
|
||||
|
|
|
@ -271,7 +271,7 @@ API.")
|
|||
(define-public shaderc
|
||||
(package
|
||||
(name "shaderc")
|
||||
(version "2018.0")
|
||||
(version "2019.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -281,7 +281,7 @@ API.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qigmj0riw43pgjn5f6kpvk72fajssz1lc2aiqib5qvmj9rqq3hl"))))
|
||||
"1l5mmyxhzsbp0a6y2d86i8jmf46c6bjgjkdgkr5l8hmhflmm7gi2"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; FIXME: Tests fail.
|
||||
|
|
|
@ -1140,7 +1140,7 @@ functionality to display information about the most commonly used services.")
|
|||
(define-public wlroots
|
||||
(package
|
||||
(name "wlroots")
|
||||
(version "0.5.0")
|
||||
(version "0.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1149,7 +1149,7 @@ functionality to display information about the most commonly used services.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1phiidyddzgaxy4gbqwmykxn0y8za6y5mp66l9dpd9i6fml153yq"))))
|
||||
(base32 "1rdcmll5b8w242n6yfjpsaprq280ck2jmbz46dxndhignxgda7k4"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-Dlogind-provider=elogind")
|
||||
|
@ -1185,7 +1185,7 @@ modules for building a Wayland compositor.")
|
|||
(define-public sway
|
||||
(package
|
||||
(name "sway")
|
||||
(version "1.0")
|
||||
(version "1.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1194,7 +1194,7 @@ modules for building a Wayland compositor.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "09cndc2nl39d3l7g5634xp0pxcz60pvc5277mfw89r22mh0j78rx"))))
|
||||
(base32 "0yhn9zdg9mzfhn97c440lk3pw6122nrhx0is5sqmvgr6p814f776"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -1231,7 +1231,7 @@ modules for building a Wayland compositor.")
|
|||
(define-public swayidle
|
||||
(package
|
||||
(name "swayidle")
|
||||
(version "1.2")
|
||||
(version "1.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1240,7 +1240,7 @@ modules for building a Wayland compositor.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0b65flajwn2i6k2kdxxgw25w7ikzzmm595f4j5x1wac1rb0yah9w"))))
|
||||
(base32 "04agcbhc473jkk7npb40i94ny8naykxzpjcw2lvl05kxv65y5d9v"))))
|
||||
(build-system meson-build-system)
|
||||
(inputs `(("wayland" ,wayland)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)
|
||||
|
@ -1254,7 +1254,7 @@ modules for building a Wayland compositor.")
|
|||
(define-public swaylock
|
||||
(package
|
||||
(name "swaylock")
|
||||
(version "1.3")
|
||||
(version "1.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1263,7 +1263,7 @@ modules for building a Wayland compositor.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "093nv1y9wyg48rfxhd36qdljjry57v1vkzrlc38mkf6zvsq8j7wb"))))
|
||||
(base32 "1ii9ql1mxkk2z69dv6bg1x22nl3a46iww764wqjiv78x08xpk982"))))
|
||||
(build-system meson-build-system)
|
||||
(inputs `(("cairo" ,cairo)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
|
@ -1279,3 +1279,29 @@ modules for building a Wayland compositor.")
|
|||
(synopsis "Screen locking utility for Wayland compositors")
|
||||
(description "Swaylock is a screen locking utility for Wayland compositors.")
|
||||
(license license:expat))) ; MIT license
|
||||
|
||||
(define-public swaybg
|
||||
(package
|
||||
(name "swaybg")
|
||||
(version "1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/swaywm/swaybg.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1lmqz5bmig90gq2m7lwf02d2g7z4hzf8fhqz78c8vk92c6p4xwbc"))))
|
||||
(build-system meson-build-system)
|
||||
(inputs `(("cairo" ,cairo)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("wayland" ,wayland)))
|
||||
(native-inputs `(("git" ,git)
|
||||
("pkg-config" ,pkg-config)
|
||||
("scdoc" ,scdoc)
|
||||
("wayland-protocols" ,wayland-protocols)))
|
||||
(home-page "https://github.com/swaywm/sway")
|
||||
(synopsis "Screen wallpaper utility for Wayland compositors")
|
||||
(description "Swaybg is a wallpaper utility for Wayland compositors.")
|
||||
(license license:expat))) ; MIT license
|
||||
|
|
|
@ -85,14 +85,14 @@ things the parser might find in the XML document (like start tags).")
|
|||
(define-public libebml
|
||||
(package
|
||||
(name "libebml")
|
||||
(version "1.3.7")
|
||||
(version "1.3.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dl.matroska.org/downloads/libebml/"
|
||||
"libebml-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1x79b35dj5d2x7xf7ql83w2cr0v5n2vsd08q6y6grmw4yn3lq973"))))
|
||||
(base32 "0j65r6i7s2k67c8f9wa653mqpxmfhdl67kjxrc1n5910ig6wddn6"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -1080,7 +1080,7 @@ C++ programming language.")
|
|||
(define-public tinyxml2
|
||||
(package
|
||||
(name "tinyxml2")
|
||||
(version "4.0.1")
|
||||
(version "7.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1089,10 +1089,8 @@ C++ programming language.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1a0skfi8rzk53qcxbv88qlvhlqzvsvg4hm20dnx4zw7vrn6anr9y"))))
|
||||
(base32 "1sf6sch1kawrna2f9dc8f4xl836acqcddkghzdib0s7dl48m9r7m"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ; no tests
|
||||
(synopsis "Small XML parser for C++")
|
||||
(description "TinyXML2 is a small and simple XML parsing library for the
|
||||
C++ programming language.")
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu services auditd)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services configuration)
|
||||
#:use-module (gnu services base)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:export (auditd-configuration
|
||||
auditd-service-type))
|
||||
|
||||
; /etc/audit/audit.rules
|
||||
|
||||
(define-configuration auditd-configuration
|
||||
(audit
|
||||
(package audit)
|
||||
"Audit package."))
|
||||
|
||||
(define (auditd-shepherd-service config)
|
||||
(let* ((audit (auditd-configuration-audit config)))
|
||||
(list (shepherd-service
|
||||
(documentation "Auditd allows you to audit file system accesses.")
|
||||
(provision '(auditd))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list (string-append #$audit "/sbin/auditd"))))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define auditd-service-type
|
||||
(service-type (name 'auditd)
|
||||
(description "Allows auditing file system accesses.")
|
||||
(extensions
|
||||
(list
|
||||
(service-extension shepherd-root-service-type
|
||||
auditd-shepherd-service)))
|
||||
(default-value (auditd-configuration))))
|
|
@ -24,12 +24,14 @@
|
|||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (gnu packages docker)
|
||||
#:use-module (gnu packages linux) ;singularity
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
|
||||
#:export (docker-configuration
|
||||
docker-service-type))
|
||||
docker-service-type
|
||||
singularity-service-type))
|
||||
|
||||
;;; We're not using serialize-configuration, but we must define this because
|
||||
;;; the define-configuration macro validates it exists.
|
||||
|
@ -120,3 +122,60 @@ bundles in Docker containers.")
|
|||
(service-extension account-service-type
|
||||
(const %docker-accounts))))
|
||||
(default-value (docker-configuration))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Singularity.
|
||||
;;;
|
||||
|
||||
(define %singularity-activation
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(define %mount-directory
|
||||
"/var/singularity/mnt/")
|
||||
|
||||
;; Create the directories that Singularity 2.6 expects to find. Make
|
||||
;; them #o755 like the 'install-data-hook' rule in 'Makefile.am' of
|
||||
;; Singularity 2.6.1.
|
||||
(for-each (lambda (directory)
|
||||
(let ((directory (string-append %mount-directory
|
||||
directory)))
|
||||
(mkdir-p directory)
|
||||
(chmod directory #o755)))
|
||||
'("container" "final" "overlay" "session"))
|
||||
(chmod %mount-directory #o755))))
|
||||
|
||||
(define (singularity-setuid-programs singularity)
|
||||
"Return the setuid-root programs that SINGULARITY needs."
|
||||
(define helpers
|
||||
;; The helpers, under a meaningful name.
|
||||
(computed-file "singularity-setuid-helpers"
|
||||
#~(begin
|
||||
(mkdir #$output)
|
||||
(for-each (lambda (program)
|
||||
(symlink (string-append #$singularity
|
||||
"/libexec/singularity"
|
||||
"/bin/"
|
||||
program "-suid")
|
||||
(string-append #$output
|
||||
"/singularity-"
|
||||
program
|
||||
"-helper")))
|
||||
'("action" "mount" "start")))))
|
||||
|
||||
(list (file-append helpers "/singularity-action-helper")
|
||||
(file-append helpers "/singularity-mount-helper")
|
||||
(file-append helpers "/singularity-start-helper")))
|
||||
|
||||
(define singularity-service-type
|
||||
(service-type (name 'singularity)
|
||||
(description
|
||||
"Install the Singularity application bundle tool.")
|
||||
(extensions
|
||||
(list (service-extension setuid-program-service-type
|
||||
singularity-setuid-programs)
|
||||
(service-extension activation-service-type
|
||||
(const %singularity-activation))))
|
||||
(default-value singularity)))
|
||||
|
|
|
@ -85,20 +85,6 @@ or #f on failure."
|
|||
(_
|
||||
#f)))
|
||||
|
||||
(define* (localedef-command locale
|
||||
#:key (libc (canonical-package glibc)))
|
||||
"Return a gexp that runs 'localedef' from LIBC to build LOCALE."
|
||||
#~(begin
|
||||
(format #t "building locale '~a'...~%"
|
||||
#$(locale-definition-name locale))
|
||||
(zero? (system* (string-append #+libc "/bin/localedef")
|
||||
"--no-archive" "--prefix" #$output
|
||||
"-i" #$(locale-definition-source locale)
|
||||
"-f" #$(locale-definition-charset locale)
|
||||
(string-append #$output "/" #$(version-major+minor
|
||||
(package-version libc))
|
||||
"/" #$(locale-definition-name locale))))))
|
||||
|
||||
(define* (single-locale-directory locales
|
||||
#:key (libc (canonical-package glibc)))
|
||||
"Return a directory containing all of LOCALES for LIBC compiled.
|
||||
|
@ -110,17 +96,29 @@ of LIBC."
|
|||
(version-major+minor (package-version libc)))
|
||||
|
||||
(define build
|
||||
#~(begin
|
||||
(mkdir #$output)
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build locale)))
|
||||
#~(begin
|
||||
(use-modules (gnu build locale))
|
||||
|
||||
(mkdir (string-append #$output "/" #$version))
|
||||
(mkdir #$output)
|
||||
(mkdir (string-append #$output "/" #$version))
|
||||
|
||||
;; 'localedef' executes 'gzip' to access compressed locale sources.
|
||||
(setenv "PATH" (string-append #$gzip "/bin"))
|
||||
;; 'localedef' executes 'gzip' to access compressed locale sources.
|
||||
(setenv "PATH"
|
||||
(string-append #$gzip "/bin:" #$libc "/bin"))
|
||||
|
||||
(exit
|
||||
(and #$@(map (cut localedef-command <> #:libc libc)
|
||||
locales)))))
|
||||
(setvbuf (current-output-port) 'line)
|
||||
(setvbuf (current-error-port) 'line)
|
||||
(for-each (lambda (locale codeset name)
|
||||
(build-locale locale
|
||||
#:codeset codeset
|
||||
#:name name
|
||||
#:directory
|
||||
(string-append #$output "/" #$version)))
|
||||
'#$(map locale-definition-source locales)
|
||||
'#$(map locale-definition-charset locales)
|
||||
'#$(map locale-definition-name locales)))))
|
||||
|
||||
(computed-file (string-append "locale-" version) build))
|
||||
|
||||
|
@ -216,45 +214,16 @@ pairs such as (\"oc_FR.UTF-8\" . \"UTF-8\"). Each pair corresponds to a
|
|||
locale supported by GLIBC."
|
||||
(define build
|
||||
(with-imported-modules (source-module-closure
|
||||
'((guix build gnu-build-system)))
|
||||
'((guix build gnu-build-system)
|
||||
(gnu build locale)))
|
||||
#~(begin
|
||||
(use-modules (guix build gnu-build-system)
|
||||
(srfi srfi-1)
|
||||
(ice-9 rdelim)
|
||||
(ice-9 match)
|
||||
(ice-9 regex)
|
||||
(gnu build locale)
|
||||
(ice-9 pretty-print))
|
||||
|
||||
(define unpack
|
||||
(assq-ref %standard-phases 'unpack))
|
||||
|
||||
(define locale-rx
|
||||
;; Regexp matching a locale line in 'localedata/SUPPORTED'.
|
||||
(make-regexp
|
||||
"^[[:space:]]*([[:graph:]]+)/([[:graph:]]+)[[:space:]]*\\\\$"))
|
||||
|
||||
(define (read-supported-locales port)
|
||||
;; Read the 'localedata/SUPPORTED' file from PORT. That file is
|
||||
;; actually a makefile snippet, with one locale per line, and a
|
||||
;; header that can be discarded.
|
||||
(let loop ((locales '()))
|
||||
(define line
|
||||
(read-line port))
|
||||
|
||||
(cond ((eof-object? line)
|
||||
(reverse locales))
|
||||
((string-prefix? "#" (string-trim line)) ;comment
|
||||
(loop locales))
|
||||
((string-contains line "=") ;makefile variable assignment
|
||||
(loop locales))
|
||||
(else
|
||||
(match (regexp-exec locale-rx line)
|
||||
(#f
|
||||
(loop locales))
|
||||
(m
|
||||
(loop (alist-cons (match:substring m 1)
|
||||
(match:substring m 2)
|
||||
locales))))))))
|
||||
|
||||
(setenv "PATH"
|
||||
(string-append #+(file-append tar "/bin") ":"
|
||||
|
|
|
@ -101,7 +101,7 @@ inside %DOCKER-OS."
|
|||
marionette))
|
||||
|
||||
(test-equal "Load docker image and run it"
|
||||
"hello world"
|
||||
'("hello world" "hi!")
|
||||
(marionette-eval
|
||||
`(begin
|
||||
(define slurp
|
||||
|
@ -117,12 +117,16 @@ inside %DOCKER-OS."
|
|||
(repository&tag (string-drop raw-line
|
||||
(string-length
|
||||
"Loaded image: ")))
|
||||
(response (slurp
|
||||
,(string-append #$docker-cli "/bin/docker")
|
||||
"run" "--entrypoint" "bin/Guile"
|
||||
repository&tag
|
||||
"/aa.scm")))
|
||||
response))
|
||||
(response1 (slurp
|
||||
,(string-append #$docker-cli "/bin/docker")
|
||||
"run" "--entrypoint" "bin/Guile"
|
||||
repository&tag
|
||||
"/aa.scm"))
|
||||
(response2 (slurp ;default entry point
|
||||
,(string-append #$docker-cli "/bin/docker")
|
||||
"run" repository&tag
|
||||
"-c" "(display \"hi!\")")))
|
||||
(list response1 response2)))
|
||||
marionette))
|
||||
|
||||
(test-end)
|
||||
|
@ -161,6 +165,7 @@ standard output device and then enters a new line.")
|
|||
(tarball (docker-image "docker-pack" profile
|
||||
#:symlinks '(("/bin/Guile" -> "bin/guile")
|
||||
("aa.scm" -> "a.scm"))
|
||||
#:entry-point "bin/guile"
|
||||
#:localstatedir? #t)))
|
||||
(run-docker-test tarball)))
|
||||
|
||||
|
|
|
@ -0,0 +1,137 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu tests singularity)
|
||||
#:use-module (gnu tests)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system vm)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services docker)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages linux) ;singularity
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix grafts)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix profiles)
|
||||
#:use-module (guix scripts pack)
|
||||
#:export (%test-singularity))
|
||||
|
||||
(define %singularity-os
|
||||
(simple-operating-system
|
||||
(service singularity-service-type)
|
||||
(simple-service 'guest-account
|
||||
account-service-type
|
||||
(list (user-account (name "guest") (uid 1000) (group "guest"))
|
||||
(user-group (name "guest") (id 1000))))))
|
||||
|
||||
(define (run-singularity-test image)
|
||||
"Load IMAGE, a Squashfs image, as a Singularity image and run it inside
|
||||
%SINGULARITY-OS."
|
||||
(define os
|
||||
(marionette-operating-system %singularity-os))
|
||||
|
||||
(define singularity-exec
|
||||
#~(begin
|
||||
(use-modules (ice-9 popen) (rnrs io ports))
|
||||
|
||||
(let* ((pipe (open-pipe* OPEN_READ
|
||||
#$(file-append singularity
|
||||
"/bin/singularity")
|
||||
"exec" #$image "/bin/guile"
|
||||
"-c" "(display \"hello, world\")"))
|
||||
(str (get-string-all pipe))
|
||||
(status (close-pipe pipe)))
|
||||
(and (zero? status)
|
||||
(string=? str "hello, world")))))
|
||||
|
||||
(define test
|
||||
(with-imported-modules '((gnu build marionette))
|
||||
#~(begin
|
||||
(use-modules (srfi srfi-11) (srfi srfi-64)
|
||||
(gnu build marionette))
|
||||
|
||||
(define marionette
|
||||
(make-marionette (list #$(virtual-machine os))))
|
||||
|
||||
(mkdir #$output)
|
||||
(chdir #$output)
|
||||
|
||||
(test-begin "singularity")
|
||||
|
||||
(test-assert "singularity exec /bin/guile (as root)"
|
||||
(marionette-eval '#$singularity-exec
|
||||
marionette))
|
||||
|
||||
(test-equal "singularity exec /bin/guile (unprivileged)"
|
||||
0
|
||||
(marionette-eval
|
||||
`(begin
|
||||
(use-modules (ice-9 match))
|
||||
|
||||
(match (primitive-fork)
|
||||
(0
|
||||
(dynamic-wind
|
||||
(const #f)
|
||||
(lambda ()
|
||||
(setgid 1000)
|
||||
(setuid 1000)
|
||||
(execl #$(program-file "singularity-exec-test"
|
||||
#~(exit #$singularity-exec))
|
||||
"test"))
|
||||
(lambda ()
|
||||
(primitive-exit 127))))
|
||||
(pid
|
||||
(cdr (waitpid pid)))))
|
||||
marionette))
|
||||
|
||||
(test-equal "singularity run" ;test the entry point
|
||||
42
|
||||
(marionette-eval
|
||||
`(status:exit-val
|
||||
(system* #$(file-append singularity "/bin/singularity")
|
||||
"run" #$image "-c" "(exit 42)"))
|
||||
marionette))
|
||||
|
||||
(test-end)
|
||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||
|
||||
(gexp->derivation "singularity-test" test))
|
||||
|
||||
(define (build-tarball&run-singularity-test)
|
||||
(mlet* %store-monad
|
||||
((_ (set-grafting #f))
|
||||
(guile (set-guile-for-build (default-guile)))
|
||||
;; 'singularity exec' insists on having /bin/sh in the image.
|
||||
(profile (profile-derivation (packages->manifest
|
||||
(list bash-minimal guile-2.2))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(tarball (squashfs-image "singularity-pack" profile
|
||||
#:entry-point "bin/guile"
|
||||
#:symlinks '(("/bin" -> "bin")))))
|
||||
(run-singularity-test tarball)))
|
||||
|
||||
(define %test-singularity
|
||||
(system-test
|
||||
(name "singularity")
|
||||
(description "Test Singularity container of Guix.")
|
||||
(value (build-tarball&run-singularity-test))))
|
|
@ -81,7 +81,11 @@
|
|||
fdatasync
|
||||
pivot-root
|
||||
scandir*
|
||||
|
||||
fcntl-flock
|
||||
lock-file
|
||||
unlock-file
|
||||
with-file-lock
|
||||
|
||||
set-thread-name
|
||||
thread-name
|
||||
|
@ -1067,6 +1071,42 @@ exception if it's already taken."
|
|||
;; Presumably we got EAGAIN or so.
|
||||
(throw 'flock-error err))))))
|
||||
|
||||
(define (lock-file file)
|
||||
"Wait and acquire an exclusive lock on FILE. Return an open port."
|
||||
(let ((port (open-file file "w0")))
|
||||
(fcntl-flock port 'write-lock)
|
||||
port))
|
||||
|
||||
(define (unlock-file port)
|
||||
"Unlock PORT, a port returned by 'lock-file'."
|
||||
(fcntl-flock port 'unlock)
|
||||
(close-port port)
|
||||
#t)
|
||||
|
||||
(define (call-with-file-lock file thunk)
|
||||
(let ((port (catch 'system-error
|
||||
(lambda ()
|
||||
(lock-file file))
|
||||
(lambda args
|
||||
;; When using the statically-linked Guile in the initrd,
|
||||
;; 'fcntl-flock' returns ENOSYS unconditionally. Ignore
|
||||
;; that error since we're typically the only process running
|
||||
;; at this point.
|
||||
(if (= ENOSYS (system-error-errno args))
|
||||
#f
|
||||
(apply throw args))))))
|
||||
(dynamic-wind
|
||||
(lambda ()
|
||||
#t)
|
||||
thunk
|
||||
(lambda ()
|
||||
(when port
|
||||
(unlock-file port))))))
|
||||
|
||||
(define-syntax-rule (with-file-lock file exp ...)
|
||||
"Wait to acquire a lock on FILE and evaluate EXP in that context."
|
||||
(call-with-file-lock file (lambda () exp ...)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Miscellaneous, aka. 'prctl'.
|
||||
|
|
|
@ -185,9 +185,7 @@ are relative to DIRECTORY, which is not necessarily the root of the checkout."
|
|||
(directory (string-append (canonicalize-path directory) "/"))
|
||||
(dot-git (repository-discover directory))
|
||||
(repository (repository-open dot-git))
|
||||
;; XXX: This procedure is mistakenly private in Guile-Git 0.1.0.
|
||||
(workdir ((@@ (git repository) repository-working-directory)
|
||||
repository))
|
||||
(workdir (repository-working-directory repository))
|
||||
(head (repository-head repository))
|
||||
(oid (reference-target head))
|
||||
(commit (commit-lookup repository oid))
|
||||
|
|
|
@ -94,12 +94,13 @@ when evaluated."
|
|||
(map (match-lambda
|
||||
((label pkg . out)
|
||||
(let ((mod (package-module-name pkg)))
|
||||
(list label
|
||||
;; FIXME: using '@ certainly isn't pretty, but it
|
||||
;; avoids having to import the individual package
|
||||
;; modules.
|
||||
(list 'unquote
|
||||
(list '@ mod (variable-name pkg mod)))))))
|
||||
(cons* label
|
||||
;; FIXME: using '@ certainly isn't pretty, but it
|
||||
;; avoids having to import the individual package
|
||||
;; modules.
|
||||
(list 'unquote
|
||||
(list '@ mod (variable-name pkg mod)))
|
||||
out))))
|
||||
lsts)))
|
||||
|
||||
(let ((name (package-name package))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2018 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 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -287,7 +287,7 @@ package value."
|
|||
(map (lambda (spec)
|
||||
(let-values (((pkg out) (specification->package+output spec)))
|
||||
(match out
|
||||
(("out") (list (package-name pkg) pkg))
|
||||
("out" (list (package-name pkg) pkg))
|
||||
(_ (list (package-name pkg) pkg out)))))
|
||||
specs))
|
||||
|
||||
|
|
42
guix/nar.scm
42
guix/nar.scm
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -76,16 +76,6 @@
|
|||
;; most of the daemon is in Scheme :-)). But note that we do use a couple of
|
||||
;; RPCs for functionality not available otherwise, like 'valid-path?'.
|
||||
|
||||
(define (lock-store-file file)
|
||||
"Acquire exclusive access to FILE, a store file."
|
||||
(call-with-output-file (string-append file ".lock")
|
||||
(cut fcntl-flock <> 'write-lock)))
|
||||
|
||||
(define (unlock-store-file file)
|
||||
"Release access to FILE."
|
||||
(call-with-input-file (string-append file ".lock")
|
||||
(cut fcntl-flock <> 'unlock)))
|
||||
|
||||
(define* (finalize-store-file source target
|
||||
#:key (references '()) deriver (lock? #t))
|
||||
"Rename SOURCE to TARGET and register TARGET as a valid store item, with
|
||||
|
@ -94,25 +84,25 @@ before attempting to register it; otherwise, assume TARGET's locks are already
|
|||
held."
|
||||
(with-database %default-database-file db
|
||||
(unless (path-id db target)
|
||||
(when lock?
|
||||
(lock-store-file target))
|
||||
(let ((lock (and lock?
|
||||
(lock-file (string-append target ".lock")))))
|
||||
|
||||
(unless (path-id db target)
|
||||
;; If FILE already exists, delete it (it's invalid anyway.)
|
||||
(when (file-exists? target)
|
||||
(delete-file-recursively target))
|
||||
(unless (path-id db target)
|
||||
;; If FILE already exists, delete it (it's invalid anyway.)
|
||||
(when (file-exists? target)
|
||||
(delete-file-recursively target))
|
||||
|
||||
;; Install the new TARGET.
|
||||
(rename-file source target)
|
||||
;; Install the new TARGET.
|
||||
(rename-file source target)
|
||||
|
||||
;; Register TARGET. As a side effect, it resets the timestamps of all
|
||||
;; its files, recursively, and runs a deduplication pass.
|
||||
(register-path target
|
||||
#:references references
|
||||
#:deriver deriver))
|
||||
;; Register TARGET. As a side effect, it resets the timestamps of all
|
||||
;; its files, recursively, and runs a deduplication pass.
|
||||
(register-path target
|
||||
#:references references
|
||||
#:deriver deriver))
|
||||
|
||||
(when lock?
|
||||
(unlock-store-file target)))))
|
||||
(when lock?
|
||||
(unlock-file lock))))))
|
||||
|
||||
(define (temporary-store-file)
|
||||
"Return the file name of a temporary file created in the store."
|
||||
|
|
|
@ -236,30 +236,6 @@ instead of '~a' of type '~a'~%")
|
|||
;;; Synchronization.
|
||||
;;;
|
||||
|
||||
(define (lock-file file)
|
||||
"Wait and acquire an exclusive lock on FILE. Return an open port."
|
||||
(mkdir-p (dirname file))
|
||||
(let ((port (open-file file "w0")))
|
||||
(fcntl-flock port 'write-lock)
|
||||
port))
|
||||
|
||||
(define (unlock-file lock)
|
||||
"Unlock LOCK."
|
||||
(fcntl-flock lock 'unlock)
|
||||
(close-port lock)
|
||||
#t)
|
||||
|
||||
(define-syntax-rule (with-file-lock file exp ...)
|
||||
"Wait to acquire a lock on FILE and evaluate EXP in that context."
|
||||
(let ((port (lock-file file)))
|
||||
(dynamic-wind
|
||||
(lambda ()
|
||||
#t)
|
||||
(lambda ()
|
||||
exp ...)
|
||||
(lambda ()
|
||||
(unlock-file port)))))
|
||||
|
||||
(define (machine-slot-file machine slot)
|
||||
"Return the file name of MACHINE's file for SLOT."
|
||||
;; For each machine we have a bunch of files representing each build slot.
|
||||
|
@ -829,7 +805,6 @@ This tool is meant to be used internally by 'guix-daemon'.\n"))
|
|||
(leave (G_ "invalid arguments: ~{~s ~}~%") x))))
|
||||
|
||||
;;; Local Variables:
|
||||
;;; eval: (put 'with-file-lock 'scheme-indent-function 1)
|
||||
;;; eval: (put 'with-error-to-port 'scheme-indent-function 1)
|
||||
;;; eval: (put 'with-timeout 'scheme-indent-function 2)
|
||||
;;; End:
|
||||
|
|
|
@ -152,6 +152,7 @@ dependencies are registered."
|
|||
#:key target
|
||||
(profile-name "guix-profile")
|
||||
deduplicate?
|
||||
entry-point
|
||||
(compressor (first %compressors))
|
||||
localstatedir?
|
||||
(symlinks '())
|
||||
|
@ -275,6 +276,10 @@ added to the pack."
|
|||
(_ #f))
|
||||
directives)))))))))
|
||||
|
||||
(when entry-point
|
||||
(warning (G_ "entry point not supported in the '~a' format~%")
|
||||
'tarball))
|
||||
|
||||
(gexp->derivation (string-append name ".tar"
|
||||
(compressor-extension compressor))
|
||||
build
|
||||
|
@ -284,6 +289,7 @@ added to the pack."
|
|||
#:key target
|
||||
(profile-name "guix-profile")
|
||||
(compressor (first %compressors))
|
||||
entry-point
|
||||
localstatedir?
|
||||
(symlinks '())
|
||||
(archiver squashfs-tools-next))
|
||||
|
@ -315,6 +321,7 @@ added to the pack."
|
|||
(ice-9 match))
|
||||
|
||||
(define database #+database)
|
||||
(define entry-point #$entry-point)
|
||||
|
||||
(setenv "PATH" (string-append #$archiver "/bin"))
|
||||
|
||||
|
@ -371,6 +378,28 @@ added to the pack."
|
|||
target)))))))
|
||||
'#$symlinks)
|
||||
|
||||
;; Create /.singularity.d/actions, and optionally the 'run'
|
||||
;; script, used by 'singularity run'.
|
||||
"-p" "/.singularity.d d 555 0 0"
|
||||
"-p" "/.singularity.d/actions d 555 0 0"
|
||||
,@(if entry-point
|
||||
`(;; This one if for Singularity 2.x.
|
||||
"-p"
|
||||
,(string-append
|
||||
"/.singularity.d/actions/run s 777 0 0 "
|
||||
(relative-file-name "/.singularity.d/actions"
|
||||
(string-append #$profile "/"
|
||||
entry-point)))
|
||||
|
||||
;; This one is for Singularity 3.x.
|
||||
"-p"
|
||||
,(string-append
|
||||
"/.singularity.d/runscript s 777 0 0 "
|
||||
(relative-file-name "/.singularity.d"
|
||||
(string-append #$profile "/"
|
||||
entry-point))))
|
||||
'())
|
||||
|
||||
;; Create empty mount points.
|
||||
"-p" "/proc d 555 0 0"
|
||||
"-p" "/sys d 555 0 0"
|
||||
|
@ -392,6 +421,7 @@ added to the pack."
|
|||
#:key target
|
||||
(profile-name "guix-profile")
|
||||
(compressor (first %compressors))
|
||||
entry-point
|
||||
localstatedir?
|
||||
(symlinks '())
|
||||
(archiver tar))
|
||||
|
@ -425,6 +455,8 @@ the image."
|
|||
#$profile
|
||||
#:database #+database
|
||||
#:system (or #$target (utsname:machine (uname)))
|
||||
#:entry-point (string-append #$profile "/"
|
||||
#$entry-point)
|
||||
#:symlinks '#$symlinks
|
||||
#:compressor '#$(compressor-command compressor)
|
||||
#:creation-time (make-time time-utc 0 1))))))
|
||||
|
@ -689,6 +721,9 @@ please email '~a'~%")
|
|||
(lambda (opt name arg result)
|
||||
(alist-cons 'system arg
|
||||
(alist-delete 'system result eq?))))
|
||||
(option '("entry-point") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'entry-point arg result)))
|
||||
(option '("target") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'target arg
|
||||
|
@ -765,6 +800,9 @@ Create a bundle of PACKAGE.\n"))
|
|||
-S, --symlink=SPEC create symlinks to the profile according to SPEC"))
|
||||
(display (G_ "
|
||||
-m, --manifest=FILE create a pack with the manifest from FILE"))
|
||||
(display (G_ "
|
||||
--entry-point=PROGRAM
|
||||
use PROGRAM as the entry point of the pack"))
|
||||
(display (G_ "
|
||||
--save-provenance save provenance information"))
|
||||
(display (G_ "
|
||||
|
@ -889,6 +927,7 @@ Create a bundle of PACKAGE.\n"))
|
|||
(leave (G_ "~a: unknown pack format~%")
|
||||
pack-format))))
|
||||
(localstatedir? (assoc-ref opts 'localstatedir?))
|
||||
(entry-point (assoc-ref opts 'entry-point))
|
||||
(profile-name (assoc-ref opts 'profile-name))
|
||||
(gc-root (assoc-ref opts 'gc-root)))
|
||||
(when (null? (manifest-entries manifest))
|
||||
|
@ -919,6 +958,8 @@ Create a bundle of PACKAGE.\n"))
|
|||
symlinks
|
||||
#:localstatedir?
|
||||
localstatedir?
|
||||
#:entry-point
|
||||
entry-point
|
||||
#:profile-name
|
||||
profile-name
|
||||
#:archiver
|
||||
|
|
|
@ -57,7 +57,6 @@
|
|||
#:export (build-and-use-profile
|
||||
delete-generations
|
||||
delete-matching-generations
|
||||
display-search-paths
|
||||
guix-package
|
||||
|
||||
(%options . %package-options)
|
||||
|
@ -169,8 +168,7 @@ hooks\" run when building the profile."
|
|||
"~a packages in profile~%"
|
||||
count)
|
||||
count)
|
||||
(display-search-paths entries (list profile)
|
||||
#:kind 'prefix)))
|
||||
(display-search-path-hint entries profile)))
|
||||
|
||||
(warn-about-disk-space profile))))))
|
||||
|
||||
|
@ -289,17 +287,23 @@ symlinks like 'canonicalize-path' would do."
|
|||
file
|
||||
(string-append (getcwd) "/" file)))
|
||||
|
||||
(define* (display-search-paths entries profiles
|
||||
#:key (kind 'exact))
|
||||
"Display the search path environment variables that may need to be set for
|
||||
ENTRIES, a list of manifest entries, in the context of PROFILE."
|
||||
(let* ((profiles (map (compose user-friendly-profile absolutize)
|
||||
profiles))
|
||||
(settings (search-path-environment-variables entries profiles
|
||||
#:kind kind)))
|
||||
(define (display-search-path-hint entries profile)
|
||||
"Display a hint on how to set environment variables to use ENTRIES, a list
|
||||
of manifest entries, in the context of PROFILE."
|
||||
(let* ((profile (user-friendly-profile (absolutize profile)))
|
||||
(settings (search-path-environment-variables entries (list profile)
|
||||
#:kind 'prefix)))
|
||||
(unless (null? settings)
|
||||
(format #t (G_ "The following environment variable definitions may be needed:~%"))
|
||||
(format #t "~{ ~a~%~}" settings))))
|
||||
(display-hint (format #f (G_ "Consider setting the necessary environment
|
||||
variables by running:
|
||||
|
||||
@example
|
||||
GUIX_PROFILE=\"~a\"
|
||||
. \"$GUIX_PROFILE/etc/profile\"
|
||||
@end example
|
||||
|
||||
Alternately, see @command{guix package --search-paths -p ~s}.")
|
||||
profile profile)))))
|
||||
|
||||
|
||||
;;;
|
||||
|
|
17583
po/doc/guix-manual.de.po
17583
po/doc/guix-manual.de.po
File diff suppressed because it is too large
Load Diff
|
@ -24,9 +24,14 @@
|
|||
#:use-module (guix licenses)
|
||||
#:use-module (srfi srfi-64))
|
||||
|
||||
(define-syntax-rule (define-with-source object source expr)
|
||||
(begin
|
||||
(define object expr)
|
||||
(define source 'expr)))
|
||||
|
||||
(test-begin "print")
|
||||
|
||||
(define pkg
|
||||
(define-with-source pkg pkg-source
|
||||
(package
|
||||
(name "test")
|
||||
(version "1.2.3")
|
||||
|
@ -43,22 +48,31 @@
|
|||
(description "This is a dummy package.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-with-source pkg-with-inputs pkg-with-inputs-source
|
||||
(package
|
||||
(name "test")
|
||||
(version "1.2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "file:///tmp/test-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("coreutils" ,(@ (gnu packages base) coreutils))
|
||||
("glibc" ,(@ (gnu packages base) glibc) "debug")))
|
||||
(home-page "http://gnu.org")
|
||||
(synopsis "Dummy")
|
||||
(description "This is a dummy package.")
|
||||
(license gpl3+)))
|
||||
|
||||
(test-equal "simple package"
|
||||
(package->code pkg)
|
||||
'(package
|
||||
(name "test")
|
||||
(version "1.2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "file:///tmp/test-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://gnu.org")
|
||||
(synopsis "Dummy")
|
||||
(description "This is a dummy package.")
|
||||
(license gpl3+)))
|
||||
pkg-source
|
||||
(package->code pkg))
|
||||
|
||||
(test-equal "package with inputs"
|
||||
pkg-with-inputs-source
|
||||
(package->code pkg-with-inputs))
|
||||
|
||||
(test-end "print")
|
||||
|
|
Reference in New Issue