Merge branch 'master' into staging
This commit is contained in:
commit
69ecd666d7
@ -34,6 +34,8 @@
|
|||||||
|
|
||||||
(eval . (put 'modify-services 'scheme-indent-function 1))
|
(eval . (put 'modify-services 'scheme-indent-function 1))
|
||||||
(eval . (put 'with-directory-excursion '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 'package 'scheme-indent-function 0))
|
||||||
(eval . (put 'origin 'scheme-indent-function 0))
|
(eval . (put 'origin 'scheme-indent-function 0))
|
||||||
(eval . (put 'build-system '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.
|
run-time overhead every time a system call is made.
|
||||||
@end quotation
|
@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}
|
@item --expression=@var{expr}
|
||||||
@itemx -e @var{expr}
|
@itemx -e @var{expr}
|
||||||
Consider the package @var{expr} evaluates to.
|
Consider the package @var{expr} evaluates to.
|
||||||
@ -24090,7 +24113,7 @@ The following is an example @code{dicod-service} configuration.
|
|||||||
@cindex Docker
|
@cindex Docker
|
||||||
@subsubheading Docker Service
|
@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
|
@defvr {Scheme Variable} docker-service-type
|
||||||
|
|
||||||
@ -24114,6 +24137,66 @@ The Containerd package to use.
|
|||||||
@end table
|
@end table
|
||||||
@end deftp
|
@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
|
@node Setuid Programs
|
||||||
@section Setuid Programs
|
@section Setuid Programs
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
(define-module (gnu build accounts)
|
(define-module (gnu build accounts)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix combinators)
|
#:use-module (guix combinators)
|
||||||
|
#:use-module ((guix build syscalls) #:select (fdatasync))
|
||||||
#:use-module (gnu system accounts)
|
#:use-module (gnu system accounts)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
@ -51,6 +52,7 @@
|
|||||||
group-entry-gid
|
group-entry-gid
|
||||||
group-entry-members
|
group-entry-members
|
||||||
|
|
||||||
|
%password-lock-file
|
||||||
write-group
|
write-group
|
||||||
write-passwd
|
write-passwd
|
||||||
write-shadow
|
write-shadow
|
||||||
@ -224,6 +226,19 @@ each field."
|
|||||||
(serialization list->comma-separated comma-separated->list)
|
(serialization list->comma-separated comma-separated->list)
|
||||||
(default '())))
|
(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)
|
(define (database-writer file mode entry->string)
|
||||||
(lambda* (entries #:optional (file-or-port file))
|
(lambda* (entries #:optional (file-or-port file))
|
||||||
"Write ENTRIES to FILE-OR-PORT. When FILE-OR-PORT is a file name, write
|
"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 ()
|
(lambda ()
|
||||||
(chmod port mode)
|
(chmod port mode)
|
||||||
(write-entries port)
|
(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))
|
(rename-file template file-or-port))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(close-port port)
|
(unless (port-closed? port)
|
||||||
|
(close-port port))
|
||||||
(when (file-exists? template)
|
(when (file-exists? template)
|
||||||
(delete-file template))))))))
|
(delete-file template))))))))
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#:use-module (gnu build accounts)
|
#:use-module (gnu build accounts)
|
||||||
#:use-module (gnu build linux-boot)
|
#:use-module (gnu build linux-boot)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
|
#:use-module ((guix build syscalls) #:select (with-file-lock))
|
||||||
#:use-module (ice-9 ftw)
|
#:use-module (ice-9 ftw)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 vlist)
|
#:use-module (ice-9 vlist)
|
||||||
@ -129,22 +130,26 @@ group records) are all available."
|
|||||||
;; Allow home directories to be created under /var/lib.
|
;; Allow home directories to be created under /var/lib.
|
||||||
(mkdir-p "/var/lib")
|
(mkdir-p "/var/lib")
|
||||||
|
|
||||||
(let-values (((groups passwd shadow)
|
;; Take same lock as libc's 'lckpwdf' (but without a timeout) while we read
|
||||||
(user+group-databases users groups)))
|
;; and write the databases. This ensures there's no race condition with
|
||||||
(write-group groups)
|
;; other tools that might be accessing it at the same time.
|
||||||
(write-passwd passwd)
|
(with-file-lock %password-lock-file
|
||||||
(write-shadow shadow)
|
(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
|
;; Home directories of non-system accounts are created by
|
||||||
;; 'activate-user-home'.
|
;; 'activate-user-home'.
|
||||||
(for-each make-home-directory system-accounts)
|
(for-each make-home-directory system-accounts)
|
||||||
|
|
||||||
;; Turn shared home directories, such as /var/empty, into root-owned,
|
;; Turn shared home directories, such as /var/empty, into root-owned,
|
||||||
;; read-only places.
|
;; read-only places.
|
||||||
(for-each (lambda (directory)
|
(for-each (lambda (directory)
|
||||||
(chown directory 0 0)
|
(chown directory 0 0)
|
||||||
(chmod directory #o555))
|
(chmod directory #o555))
|
||||||
(duplicates (map user-account-home-directory system-accounts)))))
|
(duplicates (map user-account-home-directory system-accounts))))
|
||||||
|
|
||||||
(define (activate-user-home users)
|
(define (activate-user-home users)
|
||||||
"Create and populate the home directory of USERS, a list of tuples, unless
|
"Create and populate the home directory of USERS, a list of tuples, unless
|
||||||
|
95
gnu/build/locale.scm
Normal file
95
gnu/build/locale.scm
Normal file
@ -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)
|
(define-module (gnu installer locale)
|
||||||
#:use-module (gnu installer utils)
|
#:use-module (gnu installer utils)
|
||||||
|
#:use-module ((gnu build locale) #:select (normalize-codeset))
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (json)
|
#:use-module (json)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
@ -71,24 +72,6 @@ optionally, CODESET."
|
|||||||
(codeset . ,(or codeset (match:substring matches 5)))
|
(codeset . ,(or codeset (match:substring matches 5)))
|
||||||
(modifier . ,(match:substring matches 7)))))
|
(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)
|
(define (locale->locale-string locale)
|
||||||
"Reverse operation of locale-string->locale."
|
"Reverse operation of locale-string->locale."
|
||||||
(let ((language (locale-language locale))
|
(let ((language (locale-language locale))
|
||||||
|
@ -62,7 +62,7 @@ Internet and return the selected technology. For now, only technologies with
|
|||||||
(G_ "Continue")
|
(G_ "Continue")
|
||||||
(G_ "Exit")
|
(G_ "Exit")
|
||||||
(G_ "The install process requires Internet access but no \
|
(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
|
((1) (raise
|
||||||
(condition
|
(condition
|
||||||
(&installer-step-break))))
|
(&installer-step-break))))
|
||||||
|
@ -75,10 +75,13 @@
|
|||||||
(packages '((specification->package "awesome"))))
|
(packages '((specification->package "awesome"))))
|
||||||
(desktop-environment
|
(desktop-environment
|
||||||
(name "i3")
|
(name "i3")
|
||||||
(packages '((specification->package "i3-wm"))))
|
(packages (map (lambda (package)
|
||||||
|
`(specification->package ,package))
|
||||||
|
'("i3-wm" "i3status" "dmenu" "st"))))
|
||||||
(desktop-environment
|
(desktop-environment
|
||||||
(name "ratpoison")
|
(name "ratpoison")
|
||||||
(packages '((specification->package "ratpoison"))))
|
(packages '((specification->package "ratpoison")
|
||||||
|
(specification->package "xterm"))))
|
||||||
|
|
||||||
;; Networking.
|
;; Networking.
|
||||||
(system-service
|
(system-service
|
||||||
|
@ -501,6 +501,7 @@ GNU_SYSTEM_MODULES = \
|
|||||||
%D%/services.scm \
|
%D%/services.scm \
|
||||||
%D%/services/admin.scm \
|
%D%/services/admin.scm \
|
||||||
%D%/services/audio.scm \
|
%D%/services/audio.scm \
|
||||||
|
%D%/services/auditd.scm \
|
||||||
%D%/services/avahi.scm \
|
%D%/services/avahi.scm \
|
||||||
%D%/services/base.scm \
|
%D%/services/base.scm \
|
||||||
%D%/services/certbot.scm \
|
%D%/services/certbot.scm \
|
||||||
@ -586,6 +587,7 @@ GNU_SYSTEM_MODULES = \
|
|||||||
%D%/tests/networking.scm \
|
%D%/tests/networking.scm \
|
||||||
%D%/tests/rsync.scm \
|
%D%/tests/rsync.scm \
|
||||||
%D%/tests/security-token.scm \
|
%D%/tests/security-token.scm \
|
||||||
|
%D%/tests/singularity.scm \
|
||||||
%D%/tests/ssh.scm \
|
%D%/tests/ssh.scm \
|
||||||
%D%/tests/version-control.scm \
|
%D%/tests/version-control.scm \
|
||||||
%D%/tests/virtualization.scm \
|
%D%/tests/virtualization.scm \
|
||||||
@ -637,6 +639,7 @@ dist_installer_DATA = \
|
|||||||
|
|
||||||
# Modules that do not need to be compiled.
|
# Modules that do not need to be compiled.
|
||||||
MODULES_NOT_COMPILED += \
|
MODULES_NOT_COMPILED += \
|
||||||
|
%D%/build/locale.scm \
|
||||||
%D%/build/shepherd.scm \
|
%D%/build/shepherd.scm \
|
||||||
%D%/build/svg.scm
|
%D%/build/svg.scm
|
||||||
|
|
||||||
@ -659,7 +662,6 @@ dist_patch_DATA = \
|
|||||||
%D%/packages/patches/aegisub-icu59-include-unistr.patch \
|
%D%/packages/patches/aegisub-icu59-include-unistr.patch \
|
||||||
%D%/packages/patches/aegisub-boost68.patch \
|
%D%/packages/patches/aegisub-boost68.patch \
|
||||||
%D%/packages/patches/agg-am_c_prototype.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/amule-crypto-6.patch \
|
||||||
%D%/packages/patches/antiword-CVE-2014-8123.patch \
|
%D%/packages/patches/antiword-CVE-2014-8123.patch \
|
||||||
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
|
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
|
||||||
|
@ -115,14 +115,14 @@
|
|||||||
(define-public aide
|
(define-public aide
|
||||||
(package
|
(package
|
||||||
(name "aide")
|
(name "aide")
|
||||||
(version "0.16.1")
|
(version "0.16.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/aide/aide/releases/download/v"
|
(uri (string-append "https://github.com/aide/aide/releases/download/v"
|
||||||
version "/aide-" version ".tar.gz"))
|
version "/aide-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1dqhc0c24wa4zid06pfy61k357yvzh28ij86bk9jf6hcqzn7qaqg"))))
|
(base32 "15xp47sz7kk1ciffw3f5xw2jg2mb2lqrbr3q6p4bkbz5dap9iy8p"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("bison" ,bison)
|
`(("bison" ,bison)
|
||||||
@ -1734,13 +1734,13 @@ of supported upstream metrics systems simultaneously.")
|
|||||||
(define-public ansible
|
(define-public ansible
|
||||||
(package
|
(package
|
||||||
(name "ansible")
|
(name "ansible")
|
||||||
(version "2.7.10")
|
(version "2.8.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "ansible" version))
|
(uri (pypi-uri "ansible" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "15721d0bxymghxnlnknq43lszlxg3ybbcp2p5v424hhw6wg2v944"))))
|
(base32 "1bpk5r5x6vdgn839n74yv2chd2ja10yfrhav0fzwa38mi5yxsd3j"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-bcrypt" ,python-bcrypt)
|
`(("python-bcrypt" ,python-bcrypt)
|
||||||
@ -2124,16 +2124,16 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
|
|||||||
(define-public dstat
|
(define-public dstat
|
||||||
(package
|
(package
|
||||||
(name "dstat")
|
(name "dstat")
|
||||||
(version "0.7.3")
|
(version "0.7.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/dagwieers/dstat.git")
|
(url "https://github.com/dagwieers/dstat.git")
|
||||||
(commit version)))
|
(commit (string-append "v" version))))
|
||||||
(file-name (git-file-name "dstat" version))
|
(file-name (git-file-name "dstat" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0sbpna531034gr40w4g9cwz35s2fpf9h654paznsxw9fih91rfa5"))))
|
(base32 "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no make check
|
`(#:tests? #f ; no make check
|
||||||
@ -2160,7 +2160,7 @@ throughput (in the same interval).")
|
|||||||
(define-public thefuck
|
(define-public thefuck
|
||||||
(package
|
(package
|
||||||
(name "thefuck")
|
(name "thefuck")
|
||||||
(version "3.28")
|
(version "3.29")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -2169,7 +2169,7 @@ throughput (in the same interval).")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "070b2sx8r0b4hry6xg97psxlikxghmz91zicg2cm6kc1yhgz4agc"))
|
(base32 "1qhxwjjgrzpqrqjv7l2847ywpln76lyd6j8bl9gz2r6kl0fx2fqs"))
|
||||||
(patches (search-patches "thefuck-test-environ.patch"))))
|
(patches (search-patches "thefuck-test-environ.patch"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
@ -2849,7 +2849,7 @@ Python loading in HPC environments.")
|
|||||||
(let ((real-name "inxi"))
|
(let ((real-name "inxi"))
|
||||||
(package
|
(package
|
||||||
(name "inxi-minimal")
|
(name "inxi-minimal")
|
||||||
(version "3.0.33-1")
|
(version "3.0.34-1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -2858,7 +2858,7 @@ Python loading in HPC environments.")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name real-name version))
|
(file-name (git-file-name real-name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "19bfdid4zp39irsdq3m6yyqf2336c30da35qgslrzcr2vh815g8c"))))
|
(base32 "0x2s40lwsan2pk292nspjgyw00f9f5fdfmwfvl50924pxhyxn2fh"))))
|
||||||
(build-system trivial-build-system)
|
(build-system trivial-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("bash" ,bash-minimal)
|
`(("bash" ,bash-minimal)
|
||||||
|
@ -264,7 +264,7 @@ waveform until they line up with the proper sounds.")
|
|||||||
(define-public pencil2d
|
(define-public pencil2d
|
||||||
(package
|
(package
|
||||||
(name "pencil2d")
|
(name "pencil2d")
|
||||||
(version "0.6.3")
|
(version "0.6.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
@ -273,7 +273,7 @@ waveform until they line up with the proper sounds.")
|
|||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"097xwvhw7vl9pgknhb40zs6adf7mb1xxfc73h4kiqgp6z59prjl3"))))
|
"0zi8x0w8n817zds2lyw9l8j33c03kiybkrcyy3s5fg66mchmrwnr"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("qtbase" ,qtbase)
|
`(("qtbase" ,qtbase)
|
||||||
|
@ -32,7 +32,8 @@
|
|||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages perl))
|
#:use-module (gnu packages perl)
|
||||||
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define-public aspell
|
(define-public aspell
|
||||||
(package
|
(package
|
||||||
@ -102,7 +103,14 @@ dictionaries, including personal ones.")
|
|||||||
(define* (aspell-dictionary dict-name full-name
|
(define* (aspell-dictionary dict-name full-name
|
||||||
#:key version sha256 (prefix "aspell6-"))
|
#:key version sha256 (prefix "aspell6-"))
|
||||||
(package
|
(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)
|
(version version)
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
@ -281,7 +289,7 @@ dictionaries, including personal ones.")
|
|||||||
"0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc")))
|
"0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc")))
|
||||||
|
|
||||||
(define-public aspell-dict-pt-br
|
(define-public aspell-dict-pt-br
|
||||||
(aspell-dictionary "pt-br" "Brazilian Portuguese"
|
(aspell-dictionary "pt_BR" "Brazilian Portuguese"
|
||||||
#:version "20090702-0"
|
#:version "20090702-0"
|
||||||
#:prefix "aspell6-"
|
#:prefix "aspell6-"
|
||||||
#:sha256
|
#:sha256
|
||||||
@ -289,7 +297,7 @@ dictionaries, including personal ones.")
|
|||||||
"1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p")))
|
"1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p")))
|
||||||
|
|
||||||
(define-public aspell-dict-pt-pt
|
(define-public aspell-dict-pt-pt
|
||||||
(aspell-dictionary "pt-pt" "Portuguese"
|
(aspell-dictionary "pt_PT" "Portuguese"
|
||||||
#:version "20070510-0"
|
#:version "20070510-0"
|
||||||
#:prefix "aspell6-"
|
#:prefix "aspell6-"
|
||||||
#:sha256
|
#:sha256
|
||||||
|
@ -2120,14 +2120,14 @@ different audio devices such as ALSA or PulseAudio.")
|
|||||||
(define-public qjackctl
|
(define-public qjackctl
|
||||||
(package
|
(package
|
||||||
(name "qjackctl")
|
(name "qjackctl")
|
||||||
(version "0.5.7")
|
(version "0.5.8")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
|
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
|
||||||
version "/qjackctl-" version ".tar.gz"))
|
version "/qjackctl-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1g6a5j74p45yisl28bw4fcc9nr6b710ikk459p4mp6djh9gs8v95"))))
|
"1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f)) ; no check target
|
'(#:tests? #f)) ; no check target
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; 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 © 2014, 2019 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||||
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.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
|
(let ((args `(#:tests? #f #:strip-binaries? #f
|
||||||
,@(package-arguments glibc))))
|
,@(package-arguments glibc))))
|
||||||
(substitute-keyword-arguments args
|
(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)
|
((#:phases phases)
|
||||||
`(modify-phases ,phases
|
`(modify-phases ,phases
|
||||||
(replace 'build
|
(replace 'build
|
||||||
(lambda _
|
(lambda _
|
||||||
(invoke "make" "localedata/install-locales"
|
(invoke "make" "localedata/install-locales"
|
||||||
"-j" (number->string (parallel-job-count)))))
|
"-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 'install)
|
||||||
(delete 'move-static-libs)))
|
(delete 'move-static-libs)))
|
||||||
((#:configure-flags flags)
|
((#:configure-flags flags)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
;;; 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 © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;;
|
;;;
|
||||||
@ -38,14 +38,14 @@
|
|||||||
(define-public fio
|
(define-public fio
|
||||||
(package
|
(package
|
||||||
(name "fio")
|
(name "fio")
|
||||||
(version "3.13")
|
(version "3.14")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://brick.kernel.dk/snaps/"
|
(uri (string-append "http://brick.kernel.dk/snaps/"
|
||||||
"fio-" version ".tar.bz2"))
|
"fio-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0ddj7zm04jqlna3w61qyp4qvwnv0r2lc1hzpwrgbvv4fq581w7d2"))))
|
"047y53nyhnmnxcrsfbsf0gcpxw7bli3n19ycscpxy9974j0fck0v"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:test-target "test"
|
'(#:test-target "test"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
|
;;; 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 Fis Trivial <ybbs.daans@hotmail.com>
|
||||||
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
|
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
|
||||||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
||||||
@ -242,7 +242,7 @@ other lower-level build files.")
|
|||||||
(define-public osc
|
(define-public osc
|
||||||
(package
|
(package
|
||||||
(name "osc")
|
(name "osc")
|
||||||
(version "0.165.0")
|
(version "0.165.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -251,8 +251,7 @@ other lower-level build files.")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "16p4z34ziy4z2w7mfpclk13x1w2p69wivkdwp0224x18r2fwj67v"))))
|
||||||
"0l6iw8a040l60ixxdms9rxajm38vqfdwgij2bm7ahgv1akza64jk"))))
|
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
@ -269,7 +268,7 @@ other lower-level build files.")
|
|||||||
(inputs
|
(inputs
|
||||||
`(("python-m2crypto" ,python-m2crypto)
|
`(("python-m2crypto" ,python-m2crypto)
|
||||||
("python-pycurl" ,python-pycurl)
|
("python-pycurl" ,python-pycurl)
|
||||||
("rpm" ,rpm))) ; for python-rpm
|
("rpm" ,rpm))) ; for python-rpm
|
||||||
(home-page "https://github.com/openSUSE/osc")
|
(home-page "https://github.com/openSUSE/osc")
|
||||||
(synopsis "Open Build Service command line tool")
|
(synopsis "Open Build Service command line tool")
|
||||||
(description "@command{osc} is a command line interface to the Open Build
|
(description "@command{osc} is a command line interface to the Open Build
|
||||||
|
@ -108,7 +108,7 @@ any small or embedded system.")
|
|||||||
(define-public toybox
|
(define-public toybox
|
||||||
(package
|
(package
|
||||||
(name "toybox")
|
(name "toybox")
|
||||||
(version "0.8.0")
|
(version "0.8.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
@ -116,7 +116,7 @@ any small or embedded system.")
|
|||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0mirj977zxsxnfaiqndwgsn9calgg312d817fi1hkfbd8kcyrk73"))))
|
"1czxzvyggm157z8wgxbk8k0n675p1gig9xvrcijsplh9p1i1xi0s"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
'(#:phases
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; 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 © 2013 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
@ -128,7 +128,16 @@ in compression.")
|
|||||||
`(#:phases
|
`(#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'enter-source
|
(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
|
(native-inputs
|
||||||
`(("autoconf" ,autoconf)
|
`(("autoconf" ,autoconf)
|
||||||
("automake" ,automake)
|
("automake" ,automake)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
|
;;; 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>
|
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
@ -43,7 +43,7 @@
|
|||||||
(define-public coq
|
(define-public coq
|
||||||
(package
|
(package
|
||||||
(name "coq")
|
(name "coq")
|
||||||
(version "8.9.0")
|
(version "8.9.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -52,7 +52,7 @@
|
|||||||
(commit (string-append "V" version))))
|
(commit (string-append "V" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "01ad7az6f95w16xya7979lk32agy22lf4bqgqf5qpnarpkpxhbw8"))))
|
(base32 "1p4z967s18wkblayv12ygqsrqlyk5ax1pz40yf4kag8pva6gblhk"))))
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
(list (search-path-specification
|
(list (search-path-specification
|
||||||
(variable "COQPATH")
|
(variable "COQPATH")
|
||||||
|
@ -108,17 +108,19 @@ operating system functions.")
|
|||||||
(package
|
(package
|
||||||
(name "dashel")
|
(name "dashel")
|
||||||
(version "1.3.3")
|
(version "1.3.3")
|
||||||
(home-page "https://github.com/aseba-community/dashel")
|
(source
|
||||||
(source (origin
|
(origin
|
||||||
(method url-fetch)
|
(method git-fetch)
|
||||||
(uri (string-append home-page "/archive/" version ".tar.gz"))
|
(uri (git-reference
|
||||||
(sha256
|
(url "https://github.com/aseba-community/dashel.git")
|
||||||
(base32
|
(commit version)))
|
||||||
"1ckzac1rsw3cxmpdpwcqv46jyp7risk5ybq6jjiizbqn7labf6dw"))
|
(sha256
|
||||||
(file-name (string-append name "-" version ".tar.gz"))))
|
(base32 "0anks2l2i2qp0wlzqck1qgpq15a3l6dg8lw2h8s4nsj7f61lffwy"))
|
||||||
|
(file-name (git-file-name name version))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments '(#:tests? #f)) ;no tests
|
(arguments '(#:tests? #f)) ; no tests
|
||||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||||
|
(home-page "https://github.com/aseba-community/dashel")
|
||||||
(synopsis "Data stream helper encapsulation library")
|
(synopsis "Data stream helper encapsulation library")
|
||||||
(description
|
(description
|
||||||
"Dashel is a data stream helper encapsulation C++ library. It provides a
|
"Dashel is a data stream helper encapsulation C++ library. It provides a
|
||||||
@ -130,22 +132,23 @@ combination of these streams.")
|
|||||||
(define-public xsimd
|
(define-public xsimd
|
||||||
(package
|
(package
|
||||||
(name "xsimd")
|
(name "xsimd")
|
||||||
(version "4.1.2")
|
(version "7.2.3")
|
||||||
(source (origin
|
(source
|
||||||
(method url-fetch)
|
(origin
|
||||||
(uri (string-append
|
(method git-fetch)
|
||||||
"https://github.com/QuantStack/xsimd/archive/"
|
(uri (git-reference
|
||||||
version ".tar.gz"))
|
(url "https://github.com/QuantStack/xsimd.git")
|
||||||
(sha256
|
(commit version)))
|
||||||
(base32
|
(sha256
|
||||||
"0x05l4xpqr9b66sm6lkf48n6x7999ks921x6k2hzkkg6mh3gqd46"))
|
(base32 "1ny2qin1j4h35mljivh8z52kwdyjxf4yxlzb8j52ji91v2ccc88j"))
|
||||||
(file-name (string-append name "-" version ".tar.gz"))))
|
(file-name (git-file-name name version))))
|
||||||
(home-page "https://github.com/QuantStack/xsimd")
|
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:test-target "xtest"))
|
`(#:configure-flags (list "-DBUILD_TESTS=ON")
|
||||||
|
#:test-target "xtest"))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("googletest" ,googletest)))
|
`(("googletest" ,googletest)))
|
||||||
|
(home-page "https://github.com/QuantStack/xsimd")
|
||||||
(synopsis "C++ wrappers for SIMD intrinsics and math implementations")
|
(synopsis "C++ wrappers for SIMD intrinsics and math implementations")
|
||||||
(description "xsimd provides a unified means for using SIMD features for
|
(description "xsimd provides a unified means for using SIMD features for
|
||||||
library authors. Namely, it enables manipulation of batches of numbers with
|
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
|
(define-public liburcu
|
||||||
(package
|
(package
|
||||||
(name "liburcu")
|
(name "liburcu")
|
||||||
(version "0.11.0")
|
(version "0.11.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://www.lttng.org/files/urcu/"
|
(uri (string-append "https://www.lttng.org/files/urcu/"
|
||||||
"userspace-rcu-" version ".tar.bz2"))
|
"userspace-rcu-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1rxk5vbkbmqlsnjnvkjz0pkx2076mqnq6jzblpmz8rk29x66kx8s"))))
|
"0l1kxgzch4m8fxiz2hc8fwg56hrvzzspp7n0svnl7i7iycdrgfcj"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("perl" ,perl))) ; for tests
|
`(("perl" ,perl))) ; for tests
|
||||||
|
@ -11931,7 +11931,7 @@ Emacs minor mode to escape sequences in code.")
|
|||||||
(define-public emacs-dashboard
|
(define-public emacs-dashboard
|
||||||
(package
|
(package
|
||||||
(name "emacs-dashboard")
|
(name "emacs-dashboard")
|
||||||
(version "1.2.4")
|
(version "1.5.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -11940,11 +11940,22 @@ Emacs minor mode to escape sequences in code.")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1hhh1kfsz87qfmh45wjf2r93rz79rq0vbyxlfrsl02092zjbl1zr"))))
|
(base32 "0ihpcagwgc9qy70lf2y3dvx2bm5h9lnqh4sx6643cr8pp06ysbvq"))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("emacs-page-break-lines" ,emacs-page-break-lines)))
|
`(("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")
|
(home-page "https://github.com/rakanalh/emacs-dashboard")
|
||||||
(synopsis "Startup screen extracted from Spacemacs")
|
(synopsis "Startup screen extracted from Spacemacs")
|
||||||
(description "This package provides an extensible Emacs dashboard, with
|
(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
|
provided. Those alternative commands are and bound by default to their
|
||||||
corresponding Evil keys.")
|
corresponding Evil keys.")
|
||||||
(license license:expat))))
|
(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
|
(define-public mame
|
||||||
(package
|
(package
|
||||||
(name "mame")
|
(name "mame")
|
||||||
(version "0.209")
|
(version "0.210")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -1201,7 +1201,7 @@ play them on systems for which they were never designed!")
|
|||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"08qvwmx8wbfkqxiccmcff86dsrlq6wjxf6blnhhrsbzic1ji99bh"))
|
"08c62mc8aajzh44q36qvmrcq404hdzh3i8wwdfnvn0c4w8dbf486"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
;; Remove bundled libraries.
|
;; Remove bundled libraries.
|
||||||
@ -1350,6 +1350,7 @@ play them on systems for which they were never designed!")
|
|||||||
("fontconfig" ,fontconfig)
|
("fontconfig" ,fontconfig)
|
||||||
("glm" ,glm)
|
("glm" ,glm)
|
||||||
("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9
|
("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9
|
||||||
|
("libxi" ,libxi)
|
||||||
("libxinerama" ,libxinerama)
|
("libxinerama" ,libxinerama)
|
||||||
("lua" ,lua)
|
("lua" ,lua)
|
||||||
("portaudio" ,portaudio)
|
("portaudio" ,portaudio)
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
|
;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
|
||||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
;;; 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>
|
;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
@ -184,7 +184,7 @@ removable devices or support for multimedia.")
|
|||||||
(define-public terminology
|
(define-public terminology
|
||||||
(package
|
(package
|
||||||
(name "terminology")
|
(name "terminology")
|
||||||
(version "1.4.0")
|
(version "1.4.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
@ -192,7 +192,7 @@ removable devices or support for multimedia.")
|
|||||||
"terminology/terminology-" version ".tar.xz"))
|
"terminology/terminology-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0q1y7fadj42n23aspx9y8hm4w4xlc316wc3415wnf75ibsx08ngd"))
|
"0mm9v5a94369is3kaarnr3a28wy42wslzi1mcisaidlcldgv7f6p"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
;; Remove the bundled fonts.
|
;; Remove the bundled fonts.
|
||||||
(snippet
|
(snippet
|
||||||
|
@ -345,7 +345,7 @@ do so.")
|
|||||||
(define-public electrum
|
(define-public electrum
|
||||||
(package
|
(package
|
||||||
(name "electrum")
|
(name "electrum")
|
||||||
(version "3.3.5")
|
(version "3.3.6")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
@ -353,7 +353,7 @@ do so.")
|
|||||||
version "/Electrum-"
|
version "/Electrum-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1csj0n96zlajnrs39wsazfj5lmy7v7n77cdz56lr8nkmchh6k9z1"))
|
(base32 "0am5ki3z0yvhrz16vp2jjy5fkxxqph0mj9qqpbw3kpql65shykwz"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
@ -742,14 +742,14 @@ Ledger Blue/Nano S.")
|
|||||||
(define-public python-trezor
|
(define-public python-trezor
|
||||||
(package
|
(package
|
||||||
(name "python-trezor")
|
(name "python-trezor")
|
||||||
(version "0.11.2")
|
(version "0.11.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "trezor" version))
|
(uri (pypi-uri "trezor" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1f0zfki12mnhidkfxpx2lpq1xim8f35i2d64bx9lf4m26xxv9x56"))))
|
"0211m027vlvyqy83kwbjjjxalb04xgf1klv0h0y0f0yhj07516n7"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
@ -770,12 +770,13 @@ Ledger Blue/Nano S.")
|
|||||||
("python-requests" ,python-requests)
|
("python-requests" ,python-requests)
|
||||||
("python-typing-extensions" ,python-typing-extensions)))
|
("python-typing-extensions" ,python-typing-extensions)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("protobuf" ,protobuf) ; Tests
|
;; For tests.
|
||||||
("python-black" ,python-black) ; Tests
|
`(("protobuf" ,protobuf)
|
||||||
("python-protobuf" ,python-protobuf) ; Tests
|
("python-black" ,python-black)
|
||||||
("python-isort" ,python-isort) ; Tests
|
("python-protobuf" ,python-protobuf)
|
||||||
("python-pyqt" ,python-pyqt) ; Tests
|
("python-isort" ,python-isort)
|
||||||
("python-pytest" ,python-pytest))) ; Tests
|
("python-pyqt" ,python-pyqt)
|
||||||
|
("python-pytest" ,python-pytest)))
|
||||||
(home-page "https://github.com/trezor/python-trezor")
|
(home-page "https://github.com/trezor/python-trezor")
|
||||||
(synopsis "Python library for communicating with TREZOR Hardware Wallet")
|
(synopsis "Python library for communicating with TREZOR Hardware Wallet")
|
||||||
(description "@code{trezor} is a Python library for communicating with
|
(description "@code{trezor} is a Python library for communicating with
|
||||||
|
@ -616,15 +616,17 @@ languages, plus Greek and Cyrillic.")
|
|||||||
(define-public font-gnu-unifont
|
(define-public font-gnu-unifont
|
||||||
(package
|
(package
|
||||||
(name "font-gnu-unifont")
|
(name "font-gnu-unifont")
|
||||||
(version "12.0.01")
|
(version "12.1.02")
|
||||||
(source (origin
|
(source
|
||||||
(method url-fetch)
|
(origin
|
||||||
(uri (string-append
|
(method url-fetch)
|
||||||
"mirror://gnu/unifont/unifont-" version "/unifont-"
|
(uri (list
|
||||||
version ".tar.gz"))
|
(string-append "http://unifoundry.com/pub/unifont/unifont-"
|
||||||
(sha256
|
version "/unifont-" version ".tar.gz")
|
||||||
(base32
|
(string-append "mirror://gnu/unifont/unifont-"
|
||||||
"059j82z6z4wqyy3261ns0zg2b2vh2wvxxfbsa9hra9xasism49vb"))))
|
version "/unifont-" version ".tar.gz")))
|
||||||
|
(sha256
|
||||||
|
(base32 "12wdxnlyz5gl5d7h6pazcz8d7h81fwkng1xrayxsgrzh6bqdq4p8"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out" ; TrueType version
|
(outputs '("out" ; TrueType version
|
||||||
"pcf" ; PCF (bitmap) version
|
"pcf" ; PCF (bitmap) version
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
||||||
;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.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>
|
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
@ -301,14 +301,14 @@ Includes the actual FTDI connector.")
|
|||||||
(define-public gtkwave
|
(define-public gtkwave
|
||||||
(package
|
(package
|
||||||
(name "gtkwave")
|
(name "gtkwave")
|
||||||
(version "3.3.100")
|
(version "3.3.101")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://gtkwave.sourceforge.net/"
|
(uri (string-append "http://gtkwave.sourceforge.net/"
|
||||||
"gtkwave-" version ".tar.gz"))
|
"gtkwave-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1z60i5nh8dz8j9ii63fwaw7k0p3x0scp91478cxmdv4xhp4njlxa"))))
|
"1j6capxwgi8aj3sgqg1r7161icni9y8y93g1rl3bzd3s40jcyhsz"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("gperf" ,gperf)
|
`(("gperf" ,gperf)
|
||||||
|
@ -435,7 +435,7 @@ support.")
|
|||||||
(define-public tiled
|
(define-public tiled
|
||||||
(package
|
(package
|
||||||
(name "tiled")
|
(name "tiled")
|
||||||
(version "1.2.3")
|
(version "1.2.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
@ -444,7 +444,7 @@ support.")
|
|||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1nfyigfkl10n9r82p1qxhpr09jn2kwalh9n5r209bcaj8dxspph8"))))
|
"04v738h298pvcwb70mwd1r2yj7578f6gkfzs0165j9fqy7avwm18"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("qtbase" ,qtbase)
|
`(("qtbase" ,qtbase)
|
||||||
@ -465,7 +465,7 @@ support.")
|
|||||||
(let ((out (assoc-ref outputs "out")))
|
(let ((out (assoc-ref outputs "out")))
|
||||||
(invoke "qmake"
|
(invoke "qmake"
|
||||||
(string-append "PREFIX=" out))))))))
|
(string-append "PREFIX=" out))))))))
|
||||||
(home-page "http://www.mapeditor.org/")
|
(home-page "https://www.mapeditor.org/")
|
||||||
(synopsis "Tile map editor")
|
(synopsis "Tile map editor")
|
||||||
(description
|
(description
|
||||||
"Tiled is a general purpose tile map editor. It is meant to be used for
|
"Tiled is a general purpose tile map editor. It is meant to be used for
|
||||||
@ -684,19 +684,17 @@ etc.")
|
|||||||
(define-public allegro
|
(define-public allegro
|
||||||
(package
|
(package
|
||||||
(name "allegro")
|
(name "allegro")
|
||||||
(version "5.2.4.0")
|
(version "5.2.5.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/liballeg/allegro5/releases"
|
(uri (string-append "https://github.com/liballeg/allegro5/releases"
|
||||||
"/download/" version "/allegro-"
|
"/download/" version "/allegro-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(patches (search-patches
|
|
||||||
"allegro-mesa-18.2.5-and-later.patch"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1w9a5yqi5q03b2qvmx5ff90paz0xbr9cy7i7f0xiqa65ava66q9l"))))
|
"06dpkfnac8w3pq36834nn2iij3ajz6prladqd0w92lq39aiqv5jr"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments `(#:tests? #f)) ; there are no tests
|
(arguments `(#:tests? #f)) ; there are no tests
|
||||||
(inputs
|
(inputs
|
||||||
;; FIXME: Add the following optional inputs: xinput2, opensl, dumb
|
;; FIXME: Add the following optional inputs: xinput2, opensl, dumb
|
||||||
`(("flac" ,flac)
|
`(("flac" ,flac)
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||||
|
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; 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.")
|
the World and demonstrating that he is even more evil than his brother Vlad.")
|
||||||
;; Drascula uses a BSD-like license.
|
;; Drascula uses a BSD-like license.
|
||||||
(license (license:non-copyleft "file:///readme.txt"))))
|
(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
|
(define-public po4a
|
||||||
(package
|
(package
|
||||||
(name "po4a")
|
(name "po4a")
|
||||||
(version "0.55")
|
(version "0.56")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/mquinson/po4a/releases/download/v"
|
(uri (string-append "https://github.com/mquinson/po4a/releases/download/v"
|
||||||
version "/po4a-" version ".tar.gz"))
|
version "/po4a-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1qss4q5df3nsydsbggb7gg50bn0kdxq5wn8riqm9zwkiq6a4bifg"))))
|
"0kyhww0yw4q0m4vj8vil2wsf6sn4hidh8mqz2gjrq7gpdf83cmnr"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
(define-public babl
|
(define-public babl
|
||||||
(package
|
(package
|
||||||
(name "babl")
|
(name "babl")
|
||||||
(version "0.1.62")
|
(version "0.1.64")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (list (string-append "https://download.gimp.org/pub/babl/"
|
(uri (list (string-append "https://download.gimp.org/pub/babl/"
|
||||||
@ -63,7 +63,7 @@
|
|||||||
"/babl-" version ".tar.bz2")))
|
"/babl-" version ".tar.bz2")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"047msfzj8v4sfl61a2xhd69r9rh2pjq4lzpk3j10ijyv9qbry9yw"))))
|
"1gsqs5spgla86y9g11riryvw7015asik7y22maainl83nhq4sxxv"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(home-page "http://gegl.org/babl/")
|
(home-page "http://gegl.org/babl/")
|
||||||
(synopsis "Image pixel format conversion library")
|
(synopsis "Image pixel format conversion library")
|
||||||
|
@ -3941,26 +3941,15 @@ which can read a large number of file formats.")
|
|||||||
(define-public rhythmbox
|
(define-public rhythmbox
|
||||||
(package
|
(package
|
||||||
(name "rhythmbox")
|
(name "rhythmbox")
|
||||||
(version "3.4.2")
|
(version "3.4.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
(version-major+minor version) "/"
|
(version-major+minor version) "/"
|
||||||
name "-" version ".tar.xz"))
|
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
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2"))))
|
"1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
|
||||||
(build-system glib-or-gtk-build-system)
|
(build-system glib-or-gtk-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
|
;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
|
||||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; 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
|
(define-public ghc-http-types
|
||||||
(package
|
(package
|
||||||
(name "ghc-http-types")
|
(name "ghc-http-types")
|
||||||
(version "0.12.1")
|
(version "0.12.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
@ -126,7 +127,7 @@ requests, and the library is intended for implementing Ajax APIs.")
|
|||||||
"http-types-" version ".tar.gz"))
|
"http-types-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1wv9k6nlvkdsxwlr7gaynphvzmvi5211gvwq96mbcxgk51a739rz"))))
|
"05j00b9nqmwh9zaq9y9x50k81v2pd3j7a71kd91zlnbl8xk4m2jf"))))
|
||||||
(build-system haskell-build-system)
|
(build-system haskell-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("ghc-doctest" ,ghc-doctest)
|
`(("ghc-doctest" ,ghc-doctest)
|
||||||
@ -136,7 +137,6 @@ requests, and the library is intended for implementing Ajax APIs.")
|
|||||||
("hspec-discover" ,hspec-discover)))
|
("hspec-discover" ,hspec-discover)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("ghc-case-insensitive" ,ghc-case-insensitive)
|
`(("ghc-case-insensitive" ,ghc-case-insensitive)
|
||||||
("ghc-blaze-builder" ,ghc-blaze-builder)
|
|
||||||
("ghc-text" ,ghc-text)))
|
("ghc-text" ,ghc-text)))
|
||||||
(home-page "https://github.com/aristidb/http-types")
|
(home-page "https://github.com/aristidb/http-types")
|
||||||
(synopsis "Generic HTTP types for Haskell")
|
(synopsis "Generic HTTP types for Haskell")
|
||||||
@ -550,7 +550,7 @@ transfers.")
|
|||||||
(define-public ghc-warp
|
(define-public ghc-warp
|
||||||
(package
|
(package
|
||||||
(name "ghc-warp")
|
(name "ghc-warp")
|
||||||
(version "3.2.23")
|
(version "3.2.27")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
@ -558,8 +558,7 @@ transfers.")
|
|||||||
"warp-" version "/" "warp-" version
|
"warp-" version "/" "warp-" version
|
||||||
".tar.gz"))
|
".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "0p2w88q0zd55ms20qylipbi0qzbf324i9r8b9qqxyds5yc1anq76"))))
|
||||||
"12v9qhi4hyp0sb90yddsax16jj7x47nmqwn53sv7b5nszcxgzam0"))))
|
|
||||||
(build-system haskell-build-system)
|
(build-system haskell-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("ghc-async" ,ghc-async)
|
`(("ghc-async" ,ghc-async)
|
||||||
|
@ -1805,7 +1805,7 @@ version 1.3).")
|
|||||||
(define-public ghc-streaming-commons
|
(define-public ghc-streaming-commons
|
||||||
(package
|
(package
|
||||||
(name "ghc-streaming-commons")
|
(name "ghc-streaming-commons")
|
||||||
(version "0.2.1.0")
|
(version "0.2.1.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
@ -1814,7 +1814,7 @@ version 1.3).")
|
|||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
|
"1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
|
||||||
(build-system haskell-build-system)
|
(build-system haskell-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("ghc-async" ,ghc-async)
|
`(("ghc-async" ,ghc-async)
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
|
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
|
||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; 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
|
a comic and manga reader. It supports a variety of container formats
|
||||||
including CBZ, CB7, CBT, LHA.")
|
including CBZ, CB7, CBT, LHA.")
|
||||||
(license license:gpl2+)))
|
(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
|
(define-public wireless-regdb
|
||||||
(package
|
(package
|
||||||
(name "wireless-regdb")
|
(name "wireless-regdb")
|
||||||
(version "2017.03.07")
|
(version "2019.06.03")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
@ -2567,7 +2567,7 @@ compliance.")
|
|||||||
"wireless-regdb-" version ".tar.xz"))
|
"wireless-regdb-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1f9mcp78sdd4sci6v32vxfcl1rfjpv205jisz1p93kkfnaisy7ip"))
|
"1gslvh0aqdkv48jyr2ddq153mw28i7qz2ybrjj9qvkk3dgc7x4fd"))
|
||||||
|
|
||||||
;; We're building 'regulatory.bin' by ourselves.
|
;; We're building 'regulatory.bin' by ourselves.
|
||||||
(snippet '(begin
|
(snippet '(begin
|
||||||
@ -2575,13 +2575,25 @@ compliance.")
|
|||||||
#t))))
|
#t))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases (modify-phases %standard-phases
|
'(#:phases
|
||||||
(add-after 'unpack 'gzip-determinism
|
(modify-phases %standard-phases
|
||||||
(lambda _
|
(add-after 'unpack 'gzip-determinism
|
||||||
(substitute* "Makefile"
|
(lambda _
|
||||||
(("gzip") "gzip --no-name"))
|
(substitute* "Makefile"
|
||||||
#t))
|
(("gzip") "gzip --no-name"))
|
||||||
(delete 'configure))
|
#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
|
;; The 'all' target of the makefile depends on $(REGDB_CHANGED), which
|
||||||
;; is computed and can be equal to 'maintainer-clean'; when that
|
;; is computed and can be equal to 'maintainer-clean'; when that
|
||||||
@ -2589,19 +2601,22 @@ compliance.")
|
|||||||
;; just built. Thus, build things sequentially.
|
;; just built. Thus, build things sequentially.
|
||||||
#:parallel-build? #f
|
#:parallel-build? #f
|
||||||
|
|
||||||
#:tests? #f ;no tests
|
#:tests? #f ; no tests
|
||||||
#:make-flags (let ((out (assoc-ref %outputs "out")))
|
#:make-flags
|
||||||
(list (string-append "PREFIX=" out)
|
(let ((out (assoc-ref %outputs "out")))
|
||||||
(string-append "LSB_ID=Guix")
|
(list (string-append "PREFIX=" out)
|
||||||
(string-append "DISTRO_PUBKEY=/dev/null")
|
(string-append "FIRMWARE_PATH=$(PREFIX)/lib/firmware")
|
||||||
(string-append "DISTRO_PRIVKEY=/dev/null")
|
|
||||||
(string-append "REGDB_PUBKEY=/dev/null")
|
|
||||||
|
|
||||||
;; Leave that empty so that db2bin.py doesn't try
|
;; Leave this empty so that db2bin.py doesn't try to sign
|
||||||
;; to sign 'regulatory.bin'. This allows us to
|
;; ‘regulatory.bin’. This allows us to avoid managing a key
|
||||||
;; avoid managing a key pair for the whole distro.
|
;; pair for the whole distribution.
|
||||||
(string-append "REGDB_PRIVKEY=")))))
|
(string-append "REGDB_PRIVKEY=")
|
||||||
(native-inputs `(("python" ,python-2)))
|
;; 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
|
(home-page
|
||||||
"https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb")
|
"https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb")
|
||||||
(synopsis "Wireless regulatory database")
|
(synopsis "Wireless regulatory database")
|
||||||
@ -2884,12 +2899,16 @@ thanks to the use of namespaces.")
|
|||||||
(substitute* "bin/singularity.in"
|
(substitute* "bin/singularity.in"
|
||||||
(("^PATH=.*" all)
|
(("^PATH=.*" all)
|
||||||
(string-append "#" all "\n")))
|
(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))))
|
#t))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags '("--localstatedir=/var")
|
||||||
(list "--disable-suid"
|
|
||||||
"--localstatedir=/var")
|
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'patch-reference-to-squashfs-tools
|
(add-after 'unpack 'patch-reference-to-squashfs-tools
|
||||||
|
@ -847,14 +847,14 @@ invoking @command{notifymuch} from the post-new hook.")
|
|||||||
(define-public notmuch
|
(define-public notmuch
|
||||||
(package
|
(package
|
||||||
(name "notmuch")
|
(name "notmuch")
|
||||||
(version "0.28.4")
|
(version "0.29")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
|
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
|
||||||
version ".tar.gz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1jjnhs4xs4gksvg0a9qn68rxrj41im5bh58snka2pkj20nxwmcds"))))
|
"0rg4jp0wlsham76rx9fmlpmcbv3n9vsd81vrzqvh6jrwlnmjds88"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:modules ((guix build gnu-build-system)
|
`(#: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
|
(define-public jalv-select
|
||||||
(package
|
(package
|
||||||
(name "jalv-select")
|
(name "jalv-select")
|
||||||
(version "0.8")
|
(version "1.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/brummer10/jalv_select.git")
|
(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))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0gqh768sbvn9ffyx1vqg9i57py9x9v4l65bk6wjsvgga4d7m83k1"))))
|
"15yanq1wra0hyh6x72ji7pk562iddg476g3vksj495x91zhnl6vm"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags
|
`(#:make-flags
|
||||||
@ -1337,8 +1337,6 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
|
|||||||
(substitute* "jalv.select.cpp"
|
(substitute* "jalv.select.cpp"
|
||||||
(("echo \\$PATH.*tr ':'.*xargs ls")
|
(("echo \\$PATH.*tr ':'.*xargs ls")
|
||||||
(string-append "ls -1 " (assoc-ref inputs "jalv") "/bin")))
|
(string-append "ls -1 " (assoc-ref inputs "jalv") "/bin")))
|
||||||
(substitute* "jalv.select.h"
|
|
||||||
(("gtkmm.h") "gtkmm-2.4/gtkmm.h"))
|
|
||||||
#t))
|
#t))
|
||||||
(add-before 'reset-gzip-timestamps 'make-manpages-writable
|
(add-before 'reset-gzip-timestamps 'make-manpages-writable
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
@ -697,7 +697,8 @@ written in Objective Caml.")
|
|||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(format #t "~a~%" (find-files "." ".*.so"))
|
(format #t "~a~%" (find-files "." ".*.so"))
|
||||||
(let ((stubdir (string-append (assoc-ref outputs "out")
|
(let ((stubdir (string-append (assoc-ref outputs "out")
|
||||||
"/lib/ocaml/site-lib")))
|
"/lib/ocaml/site-lib/stublibs")))
|
||||||
|
(delete-file stubdir)
|
||||||
(mkdir-p stubdir)
|
(mkdir-p stubdir)
|
||||||
(install-file "src/dllnums.so" stubdir))
|
(install-file "src/dllnums.so" stubdir))
|
||||||
#t)))))
|
#t)))))
|
||||||
@ -1626,7 +1627,13 @@ spans without being subject to operating system calendar time adjustments.")
|
|||||||
"/lib/ocaml/site-lib/cmdliner"))
|
"/lib/ocaml/site-lib/cmdliner"))
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-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")
|
(home-page "http://erratique.ch/software/cmdliner")
|
||||||
(synopsis "Declarative definition of command line interfaces for OCaml")
|
(synopsis "Declarative definition of command line interfaces for OCaml")
|
||||||
(description "Cmdliner is a module for the declarative definition of command
|
(description "Cmdliner is a module for the declarative definition of command
|
||||||
@ -2290,6 +2297,12 @@ many additional enhancements, including:
|
|||||||
`(#:phases
|
`(#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(delete 'check) ; tests are run by the build phase
|
(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
|
(replace 'build
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let ((files
|
(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"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(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)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.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.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
@ -87,14 +87,14 @@ slsh, which is part of the S-Lang distribution.")
|
|||||||
(define-public newt
|
(define-public newt
|
||||||
(package
|
(package
|
||||||
(name "newt")
|
(name "newt")
|
||||||
(version "0.52.20")
|
(version "0.52.21")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://pagure.io/releases/"
|
(uri (string-append "https://pagure.io/releases/newt/"
|
||||||
name "/" name "-" version ".tar.gz"))
|
"newt-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1g3dpfnvaw7vljbr7nzq1rl88d6r8cmrvvng9inphgzwxxmvlrld"))))
|
"0cdvbancr7y4nrj8257y5n45hmhizr8isynagy4fpsnpammv8pi6"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out" "python"))
|
(outputs '("out" "python"))
|
||||||
(inputs
|
(inputs
|
||||||
|
@ -55,14 +55,14 @@
|
|||||||
(define-public ceph
|
(define-public ceph
|
||||||
(package
|
(package
|
||||||
(name "ceph")
|
(name "ceph")
|
||||||
(version "13.2.5")
|
(version "13.2.6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://download.ceph.com/tarballs/ceph-"
|
(uri (string-append "https://download.ceph.com/tarballs/ceph-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0jbs6l763clbqnq2s5jksn44yf71rhcnk85cw64fqvmv0r4ch71n"))
|
"13f5qs7jpxprplk4irwlx90mc9gvm48fvd3q471xcqc3n6z1qywz"))
|
||||||
(patches
|
(patches
|
||||||
(search-patches "ceph-skip-unittest_blockdev.patch"
|
(search-patches "ceph-skip-unittest_blockdev.patch"
|
||||||
"ceph-skip-collect-sys-info-test.patch"
|
"ceph-skip-collect-sys-info-test.patch"
|
||||||
|
@ -140,7 +140,7 @@ windows.")
|
|||||||
(define-public tmux-xpanes
|
(define-public tmux-xpanes
|
||||||
(package
|
(package
|
||||||
(name "tmux-xpanes")
|
(name "tmux-xpanes")
|
||||||
(version "4.1.0")
|
(version "4.1.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
@ -149,7 +149,7 @@ windows.")
|
|||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"11yz6rh2ckd1z8q80n8giv2gcz2i22fgf3pnfxq96qrzflb0d96a"))))
|
"13q02vdk229chgbn547wwv29cj4njvz02lmw840g8qmwh73qb2pi"))))
|
||||||
(build-system trivial-build-system)
|
(build-system trivial-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("bash" ,bash)))
|
`(("bash" ,bash)))
|
||||||
|
@ -146,14 +146,14 @@ as well as the classic centralized workflow.")
|
|||||||
(name "git")
|
(name "git")
|
||||||
;; XXX When updating Git, check if the special 'git-source' input to cgit
|
;; XXX When updating Git, check if the special 'git-source' input to cgit
|
||||||
;; needs to be updated as well.
|
;; needs to be updated as well.
|
||||||
(version "2.21.0")
|
(version "2.22.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0a0d0b07rmvs985zpndxxy0vzr0vq53kq5kyd68iv6gf8gkirjwc"))))
|
"17zj6jwx3s6bybd290f1mj5iym1r64560rmnf0p63x4akxclp7hm"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("native-perl" ,perl)
|
`(("native-perl" ,perl)
|
||||||
@ -166,7 +166,7 @@ as well as the classic centralized workflow.")
|
|||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0lgcynqbjmfsvhfk14jvqyvb1xiyqgkgznb707vha38wjcjdqs1g"))))
|
"0fpfqw0h4g4v478fscic8z714i0ls5w7946vzhmq31lf7nizsb2f"))))
|
||||||
;; For subtree documentation.
|
;; For subtree documentation.
|
||||||
("asciidoc" ,asciidoc)
|
("asciidoc" ,asciidoc)
|
||||||
("docbook-xsl" ,docbook-xsl)
|
("docbook-xsl" ,docbook-xsl)
|
||||||
|
@ -671,14 +671,14 @@ SMPTE 314M.")
|
|||||||
(define-public libmatroska
|
(define-public libmatroska
|
||||||
(package
|
(package
|
||||||
(name "libmatroska")
|
(name "libmatroska")
|
||||||
(version "1.5.0")
|
(version "1.5.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://dl.matroska.org/downloads/"
|
(uri (string-append "https://dl.matroska.org/downloads/"
|
||||||
"libmatroska/libmatroska-" version ".tar.xz"))
|
"libmatroska/libmatroska-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "07md2gvy3x92ym2k449740mdji6mhknlajkndnhi507s4wcdrvzh"))))
|
(base32 "0qn9lfs0877wbv581yxw2gywxywxpvwslc5q07q4f7bqpyzxxiha"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("libebml" ,libebml)))
|
`(("libebml" ,libebml)))
|
||||||
@ -1013,7 +1013,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
|||||||
(define-public vlc
|
(define-public vlc
|
||||||
(package
|
(package
|
||||||
(name "vlc")
|
(name "vlc")
|
||||||
(version "3.0.6")
|
(version "3.0.7")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
@ -1022,7 +1022,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
|||||||
"/vlc-" version ".tar.xz"))
|
"/vlc-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1lvyyahv6g9zv7m5g5qinyrwmw47zdsd5ysimb862j7kw15nvh8q"))))
|
"05irswyg9acflxzy4vfyvgi643r72vsvagv118zawjqg1wagxdaw"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("flex" ,flex)
|
`(("flex" ,flex)
|
||||||
@ -2192,14 +2192,14 @@ tools, XML authoring components, and an extensible plug-in based API.")
|
|||||||
(define-public v4l-utils
|
(define-public v4l-utils
|
||||||
(package
|
(package
|
||||||
(name "v4l-utils")
|
(name "v4l-utils")
|
||||||
(version "1.12.5")
|
(version "1.16.6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://linuxtv.org/downloads/v4l-utils"
|
(uri (string-append "https://linuxtv.org/downloads/v4l-utils"
|
||||||
"/v4l-utils-" version ".tar.bz2"))
|
"/v4l-utils-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"03g2b4rivrilimcp57mwrlsa3qvrxmk4sza08mygwmqbvcnic606"))))
|
"1bkqlrizx0j2rd6ybam2x17bjrpwzl4v4szmnzm3cmixis3w3npr"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags
|
'(#:configure-flags
|
||||||
@ -2858,7 +2858,7 @@ many codecs and formats supported by libmediainfo.")
|
|||||||
(define-public livemedia-utils
|
(define-public livemedia-utils
|
||||||
(package
|
(package
|
||||||
(name "livemedia-utils")
|
(name "livemedia-utils")
|
||||||
(version "2019.03.06")
|
(version "2019.05.29")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
@ -2866,10 +2866,10 @@ many codecs and formats supported by libmediainfo.")
|
|||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1gasdl95yjabv811knkmy5laj21a54z1jdfq36jdj984k1nw5l0b"))))
|
"08i63jr8ihn1xiq5z5n3yls3yz6li5sg0s454l56p5bcvbrw81my"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f ; no tests
|
'(#:tests? #f ; no tests
|
||||||
#:make-flags (list "CC=gcc"
|
#:make-flags (list "CC=gcc"
|
||||||
(string-append "LDFLAGS=-Wl,-rpath="
|
(string-append "LDFLAGS=-Wl,-rpath="
|
||||||
(assoc-ref %outputs "out") "/lib")
|
(assoc-ref %outputs "out") "/lib")
|
||||||
|
@ -271,7 +271,7 @@ API.")
|
|||||||
(define-public shaderc
|
(define-public shaderc
|
||||||
(package
|
(package
|
||||||
(name "shaderc")
|
(name "shaderc")
|
||||||
(version "2018.0")
|
(version "2019.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -281,7 +281,7 @@ API.")
|
|||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0qigmj0riw43pgjn5f6kpvk72fajssz1lc2aiqib5qvmj9rqq3hl"))))
|
"1l5mmyxhzsbp0a6y2d86i8jmf46c6bjgjkdgkr5l8hmhflmm7gi2"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; FIXME: Tests fail.
|
`(#:tests? #f ; FIXME: Tests fail.
|
||||||
|
@ -1140,7 +1140,7 @@ functionality to display information about the most commonly used services.")
|
|||||||
(define-public wlroots
|
(define-public wlroots
|
||||||
(package
|
(package
|
||||||
(name "wlroots")
|
(name "wlroots")
|
||||||
(version "0.5.0")
|
(version "0.6.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -1149,7 +1149,7 @@ functionality to display information about the most commonly used services.")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1phiidyddzgaxy4gbqwmykxn0y8za6y5mp66l9dpd9i6fml153yq"))))
|
(base32 "1rdcmll5b8w242n6yfjpsaprq280ck2jmbz46dxndhignxgda7k4"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags '("-Dlogind-provider=elogind")
|
`(#:configure-flags '("-Dlogind-provider=elogind")
|
||||||
@ -1185,7 +1185,7 @@ modules for building a Wayland compositor.")
|
|||||||
(define-public sway
|
(define-public sway
|
||||||
(package
|
(package
|
||||||
(name "sway")
|
(name "sway")
|
||||||
(version "1.0")
|
(version "1.1.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -1194,7 +1194,7 @@ modules for building a Wayland compositor.")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "09cndc2nl39d3l7g5634xp0pxcz60pvc5277mfw89r22mh0j78rx"))))
|
(base32 "0yhn9zdg9mzfhn97c440lk3pw6122nrhx0is5sqmvgr6p814f776"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
@ -1231,7 +1231,7 @@ modules for building a Wayland compositor.")
|
|||||||
(define-public swayidle
|
(define-public swayidle
|
||||||
(package
|
(package
|
||||||
(name "swayidle")
|
(name "swayidle")
|
||||||
(version "1.2")
|
(version "1.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -1240,7 +1240,7 @@ modules for building a Wayland compositor.")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0b65flajwn2i6k2kdxxgw25w7ikzzmm595f4j5x1wac1rb0yah9w"))))
|
(base32 "04agcbhc473jkk7npb40i94ny8naykxzpjcw2lvl05kxv65y5d9v"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(inputs `(("wayland" ,wayland)))
|
(inputs `(("wayland" ,wayland)))
|
||||||
(native-inputs `(("pkg-config" ,pkg-config)
|
(native-inputs `(("pkg-config" ,pkg-config)
|
||||||
@ -1254,7 +1254,7 @@ modules for building a Wayland compositor.")
|
|||||||
(define-public swaylock
|
(define-public swaylock
|
||||||
(package
|
(package
|
||||||
(name "swaylock")
|
(name "swaylock")
|
||||||
(version "1.3")
|
(version "1.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -1263,7 +1263,7 @@ modules for building a Wayland compositor.")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "093nv1y9wyg48rfxhd36qdljjry57v1vkzrlc38mkf6zvsq8j7wb"))))
|
(base32 "1ii9ql1mxkk2z69dv6bg1x22nl3a46iww764wqjiv78x08xpk982"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(inputs `(("cairo" ,cairo)
|
(inputs `(("cairo" ,cairo)
|
||||||
("gdk-pixbuf" ,gdk-pixbuf)
|
("gdk-pixbuf" ,gdk-pixbuf)
|
||||||
@ -1279,3 +1279,29 @@ modules for building a Wayland compositor.")
|
|||||||
(synopsis "Screen locking utility for Wayland compositors")
|
(synopsis "Screen locking utility for Wayland compositors")
|
||||||
(description "Swaylock is a screen locking utility for Wayland compositors.")
|
(description "Swaylock is a screen locking utility for Wayland compositors.")
|
||||||
(license license:expat))) ; MIT license
|
(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
|
(define-public libebml
|
||||||
(package
|
(package
|
||||||
(name "libebml")
|
(name "libebml")
|
||||||
(version "1.3.7")
|
(version "1.3.9")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://dl.matroska.org/downloads/libebml/"
|
(uri (string-append "https://dl.matroska.org/downloads/libebml/"
|
||||||
"libebml-" version ".tar.xz"))
|
"libebml-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1x79b35dj5d2x7xf7ql83w2cr0v5n2vsd08q6y6grmw4yn3lq973"))))
|
(base32 "0j65r6i7s2k67c8f9wa653mqpxmfhdl67kjxrc1n5910ig6wddn6"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
@ -1080,7 +1080,7 @@ C++ programming language.")
|
|||||||
(define-public tinyxml2
|
(define-public tinyxml2
|
||||||
(package
|
(package
|
||||||
(name "tinyxml2")
|
(name "tinyxml2")
|
||||||
(version "4.0.1")
|
(version "7.0.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -1089,10 +1089,8 @@ C++ programming language.")
|
|||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1a0skfi8rzk53qcxbv88qlvhlqzvsvg4hm20dnx4zw7vrn6anr9y"))))
|
(base32 "1sf6sch1kawrna2f9dc8f4xl836acqcddkghzdib0s7dl48m9r7m"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
|
||||||
`(#:tests? #f)) ; no tests
|
|
||||||
(synopsis "Small XML parser for C++")
|
(synopsis "Small XML parser for C++")
|
||||||
(description "TinyXML2 is a small and simple XML parsing library for the
|
(description "TinyXML2 is a small and simple XML parsing library for the
|
||||||
C++ programming language.")
|
C++ programming language.")
|
||||||
|
54
gnu/services/auditd.scm
Normal file
54
gnu/services/auditd.scm
Normal file
@ -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 services shepherd)
|
||||||
#:use-module (gnu system shadow)
|
#:use-module (gnu system shadow)
|
||||||
#:use-module (gnu packages docker)
|
#:use-module (gnu packages docker)
|
||||||
|
#:use-module (gnu packages linux) ;singularity
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
|
|
||||||
#:export (docker-configuration
|
#:export (docker-configuration
|
||||||
docker-service-type))
|
docker-service-type
|
||||||
|
singularity-service-type))
|
||||||
|
|
||||||
;;; We're not using serialize-configuration, but we must define this because
|
;;; We're not using serialize-configuration, but we must define this because
|
||||||
;;; the define-configuration macro validates it exists.
|
;;; the define-configuration macro validates it exists.
|
||||||
@ -120,3 +122,60 @@ bundles in Docker containers.")
|
|||||||
(service-extension account-service-type
|
(service-extension account-service-type
|
||||||
(const %docker-accounts))))
|
(const %docker-accounts))))
|
||||||
(default-value (docker-configuration))))
|
(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)))
|
#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
|
(define* (single-locale-directory locales
|
||||||
#:key (libc (canonical-package glibc)))
|
#:key (libc (canonical-package glibc)))
|
||||||
"Return a directory containing all of LOCALES for LIBC compiled.
|
"Return a directory containing all of LOCALES for LIBC compiled.
|
||||||
@ -110,17 +96,29 @@ of LIBC."
|
|||||||
(version-major+minor (package-version libc)))
|
(version-major+minor (package-version libc)))
|
||||||
|
|
||||||
(define build
|
(define build
|
||||||
#~(begin
|
(with-imported-modules (source-module-closure
|
||||||
(mkdir #$output)
|
'((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.
|
;; 'localedef' executes 'gzip' to access compressed locale sources.
|
||||||
(setenv "PATH" (string-append #$gzip "/bin"))
|
(setenv "PATH"
|
||||||
|
(string-append #$gzip "/bin:" #$libc "/bin"))
|
||||||
|
|
||||||
(exit
|
(setvbuf (current-output-port) 'line)
|
||||||
(and #$@(map (cut localedef-command <> #:libc libc)
|
(setvbuf (current-error-port) 'line)
|
||||||
locales)))))
|
(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))
|
(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."
|
locale supported by GLIBC."
|
||||||
(define build
|
(define build
|
||||||
(with-imported-modules (source-module-closure
|
(with-imported-modules (source-module-closure
|
||||||
'((guix build gnu-build-system)))
|
'((guix build gnu-build-system)
|
||||||
|
(gnu build locale)))
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build gnu-build-system)
|
(use-modules (guix build gnu-build-system)
|
||||||
(srfi srfi-1)
|
(gnu build locale)
|
||||||
(ice-9 rdelim)
|
|
||||||
(ice-9 match)
|
|
||||||
(ice-9 regex)
|
|
||||||
(ice-9 pretty-print))
|
(ice-9 pretty-print))
|
||||||
|
|
||||||
(define unpack
|
(define unpack
|
||||||
(assq-ref %standard-phases '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"
|
(setenv "PATH"
|
||||||
(string-append #+(file-append tar "/bin") ":"
|
(string-append #+(file-append tar "/bin") ":"
|
||||||
|
@ -101,7 +101,7 @@ inside %DOCKER-OS."
|
|||||||
marionette))
|
marionette))
|
||||||
|
|
||||||
(test-equal "Load docker image and run it"
|
(test-equal "Load docker image and run it"
|
||||||
"hello world"
|
'("hello world" "hi!")
|
||||||
(marionette-eval
|
(marionette-eval
|
||||||
`(begin
|
`(begin
|
||||||
(define slurp
|
(define slurp
|
||||||
@ -117,12 +117,16 @@ inside %DOCKER-OS."
|
|||||||
(repository&tag (string-drop raw-line
|
(repository&tag (string-drop raw-line
|
||||||
(string-length
|
(string-length
|
||||||
"Loaded image: ")))
|
"Loaded image: ")))
|
||||||
(response (slurp
|
(response1 (slurp
|
||||||
,(string-append #$docker-cli "/bin/docker")
|
,(string-append #$docker-cli "/bin/docker")
|
||||||
"run" "--entrypoint" "bin/Guile"
|
"run" "--entrypoint" "bin/Guile"
|
||||||
repository&tag
|
repository&tag
|
||||||
"/aa.scm")))
|
"/aa.scm"))
|
||||||
response))
|
(response2 (slurp ;default entry point
|
||||||
|
,(string-append #$docker-cli "/bin/docker")
|
||||||
|
"run" repository&tag
|
||||||
|
"-c" "(display \"hi!\")")))
|
||||||
|
(list response1 response2)))
|
||||||
marionette))
|
marionette))
|
||||||
|
|
||||||
(test-end)
|
(test-end)
|
||||||
@ -161,6 +165,7 @@ standard output device and then enters a new line.")
|
|||||||
(tarball (docker-image "docker-pack" profile
|
(tarball (docker-image "docker-pack" profile
|
||||||
#:symlinks '(("/bin/Guile" -> "bin/guile")
|
#:symlinks '(("/bin/Guile" -> "bin/guile")
|
||||||
("aa.scm" -> "a.scm"))
|
("aa.scm" -> "a.scm"))
|
||||||
|
#:entry-point "bin/guile"
|
||||||
#:localstatedir? #t)))
|
#:localstatedir? #t)))
|
||||||
(run-docker-test tarball)))
|
(run-docker-test tarball)))
|
||||||
|
|
||||||
|
137
gnu/tests/singularity.scm
Normal file
137
gnu/tests/singularity.scm
Normal file
@ -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
|
fdatasync
|
||||||
pivot-root
|
pivot-root
|
||||||
scandir*
|
scandir*
|
||||||
|
|
||||||
fcntl-flock
|
fcntl-flock
|
||||||
|
lock-file
|
||||||
|
unlock-file
|
||||||
|
with-file-lock
|
||||||
|
|
||||||
set-thread-name
|
set-thread-name
|
||||||
thread-name
|
thread-name
|
||||||
@ -1067,6 +1071,42 @@ exception if it's already taken."
|
|||||||
;; Presumably we got EAGAIN or so.
|
;; Presumably we got EAGAIN or so.
|
||||||
(throw 'flock-error err))))))
|
(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'.
|
;;; 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) "/"))
|
(directory (string-append (canonicalize-path directory) "/"))
|
||||||
(dot-git (repository-discover directory))
|
(dot-git (repository-discover directory))
|
||||||
(repository (repository-open dot-git))
|
(repository (repository-open dot-git))
|
||||||
;; XXX: This procedure is mistakenly private in Guile-Git 0.1.0.
|
(workdir (repository-working-directory repository))
|
||||||
(workdir ((@@ (git repository) repository-working-directory)
|
|
||||||
repository))
|
|
||||||
(head (repository-head repository))
|
(head (repository-head repository))
|
||||||
(oid (reference-target head))
|
(oid (reference-target head))
|
||||||
(commit (commit-lookup repository oid))
|
(commit (commit-lookup repository oid))
|
||||||
|
@ -94,12 +94,13 @@ when evaluated."
|
|||||||
(map (match-lambda
|
(map (match-lambda
|
||||||
((label pkg . out)
|
((label pkg . out)
|
||||||
(let ((mod (package-module-name pkg)))
|
(let ((mod (package-module-name pkg)))
|
||||||
(list label
|
(cons* label
|
||||||
;; FIXME: using '@ certainly isn't pretty, but it
|
;; FIXME: using '@ certainly isn't pretty, but it
|
||||||
;; avoids having to import the individual package
|
;; avoids having to import the individual package
|
||||||
;; modules.
|
;; modules.
|
||||||
(list 'unquote
|
(list 'unquote
|
||||||
(list '@ mod (variable-name pkg mod)))))))
|
(list '@ mod (variable-name pkg mod)))
|
||||||
|
out))))
|
||||||
lsts)))
|
lsts)))
|
||||||
|
|
||||||
(let ((name (package-name package))
|
(let ((name (package-name package))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; 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 Jelle Licht <jlicht@fsfe.org>
|
||||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||||
@ -287,7 +287,7 @@ package value."
|
|||||||
(map (lambda (spec)
|
(map (lambda (spec)
|
||||||
(let-values (((pkg out) (specification->package+output spec)))
|
(let-values (((pkg out) (specification->package+output spec)))
|
||||||
(match out
|
(match out
|
||||||
(("out") (list (package-name pkg) pkg))
|
("out" (list (package-name pkg) pkg))
|
||||||
(_ (list (package-name pkg) pkg out)))))
|
(_ (list (package-name pkg) pkg out)))))
|
||||||
specs))
|
specs))
|
||||||
|
|
||||||
|
42
guix/nar.scm
42
guix/nar.scm
@ -1,5 +1,5 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; 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>
|
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; 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
|
;; 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?'.
|
;; 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
|
(define* (finalize-store-file source target
|
||||||
#:key (references '()) deriver (lock? #t))
|
#:key (references '()) deriver (lock? #t))
|
||||||
"Rename SOURCE to TARGET and register TARGET as a valid store item, with
|
"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."
|
held."
|
||||||
(with-database %default-database-file db
|
(with-database %default-database-file db
|
||||||
(unless (path-id db target)
|
(unless (path-id db target)
|
||||||
(when lock?
|
(let ((lock (and lock?
|
||||||
(lock-store-file target))
|
(lock-file (string-append target ".lock")))))
|
||||||
|
|
||||||
(unless (path-id db target)
|
(unless (path-id db target)
|
||||||
;; If FILE already exists, delete it (it's invalid anyway.)
|
;; If FILE already exists, delete it (it's invalid anyway.)
|
||||||
(when (file-exists? target)
|
(when (file-exists? target)
|
||||||
(delete-file-recursively target))
|
(delete-file-recursively target))
|
||||||
|
|
||||||
;; Install the new TARGET.
|
;; Install the new TARGET.
|
||||||
(rename-file source target)
|
(rename-file source target)
|
||||||
|
|
||||||
;; Register TARGET. As a side effect, it resets the timestamps of all
|
;; Register TARGET. As a side effect, it resets the timestamps of all
|
||||||
;; its files, recursively, and runs a deduplication pass.
|
;; its files, recursively, and runs a deduplication pass.
|
||||||
(register-path target
|
(register-path target
|
||||||
#:references references
|
#:references references
|
||||||
#:deriver deriver))
|
#:deriver deriver))
|
||||||
|
|
||||||
(when lock?
|
(when lock?
|
||||||
(unlock-store-file target)))))
|
(unlock-file lock))))))
|
||||||
|
|
||||||
(define (temporary-store-file)
|
(define (temporary-store-file)
|
||||||
"Return the file name of a temporary file created in the store."
|
"Return the file name of a temporary file created in the store."
|
||||||
|
@ -236,30 +236,6 @@ instead of '~a' of type '~a'~%")
|
|||||||
;;; Synchronization.
|
;;; 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)
|
(define (machine-slot-file machine slot)
|
||||||
"Return the file name of MACHINE's file for SLOT."
|
"Return the file name of MACHINE's file for SLOT."
|
||||||
;; For each machine we have a bunch of files representing each build 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))))
|
(leave (G_ "invalid arguments: ~{~s ~}~%") x))))
|
||||||
|
|
||||||
;;; Local Variables:
|
;;; Local Variables:
|
||||||
;;; eval: (put 'with-file-lock 'scheme-indent-function 1)
|
|
||||||
;;; eval: (put 'with-error-to-port 'scheme-indent-function 1)
|
;;; eval: (put 'with-error-to-port 'scheme-indent-function 1)
|
||||||
;;; eval: (put 'with-timeout 'scheme-indent-function 2)
|
;;; eval: (put 'with-timeout 'scheme-indent-function 2)
|
||||||
;;; End:
|
;;; End:
|
||||||
|
@ -152,6 +152,7 @@ dependencies are registered."
|
|||||||
#:key target
|
#:key target
|
||||||
(profile-name "guix-profile")
|
(profile-name "guix-profile")
|
||||||
deduplicate?
|
deduplicate?
|
||||||
|
entry-point
|
||||||
(compressor (first %compressors))
|
(compressor (first %compressors))
|
||||||
localstatedir?
|
localstatedir?
|
||||||
(symlinks '())
|
(symlinks '())
|
||||||
@ -275,6 +276,10 @@ added to the pack."
|
|||||||
(_ #f))
|
(_ #f))
|
||||||
directives)))))))))
|
directives)))))))))
|
||||||
|
|
||||||
|
(when entry-point
|
||||||
|
(warning (G_ "entry point not supported in the '~a' format~%")
|
||||||
|
'tarball))
|
||||||
|
|
||||||
(gexp->derivation (string-append name ".tar"
|
(gexp->derivation (string-append name ".tar"
|
||||||
(compressor-extension compressor))
|
(compressor-extension compressor))
|
||||||
build
|
build
|
||||||
@ -284,6 +289,7 @@ added to the pack."
|
|||||||
#:key target
|
#:key target
|
||||||
(profile-name "guix-profile")
|
(profile-name "guix-profile")
|
||||||
(compressor (first %compressors))
|
(compressor (first %compressors))
|
||||||
|
entry-point
|
||||||
localstatedir?
|
localstatedir?
|
||||||
(symlinks '())
|
(symlinks '())
|
||||||
(archiver squashfs-tools-next))
|
(archiver squashfs-tools-next))
|
||||||
@ -315,6 +321,7 @@ added to the pack."
|
|||||||
(ice-9 match))
|
(ice-9 match))
|
||||||
|
|
||||||
(define database #+database)
|
(define database #+database)
|
||||||
|
(define entry-point #$entry-point)
|
||||||
|
|
||||||
(setenv "PATH" (string-append #$archiver "/bin"))
|
(setenv "PATH" (string-append #$archiver "/bin"))
|
||||||
|
|
||||||
@ -371,6 +378,28 @@ added to the pack."
|
|||||||
target)))))))
|
target)))))))
|
||||||
'#$symlinks)
|
'#$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.
|
;; Create empty mount points.
|
||||||
"-p" "/proc d 555 0 0"
|
"-p" "/proc d 555 0 0"
|
||||||
"-p" "/sys d 555 0 0"
|
"-p" "/sys d 555 0 0"
|
||||||
@ -392,6 +421,7 @@ added to the pack."
|
|||||||
#:key target
|
#:key target
|
||||||
(profile-name "guix-profile")
|
(profile-name "guix-profile")
|
||||||
(compressor (first %compressors))
|
(compressor (first %compressors))
|
||||||
|
entry-point
|
||||||
localstatedir?
|
localstatedir?
|
||||||
(symlinks '())
|
(symlinks '())
|
||||||
(archiver tar))
|
(archiver tar))
|
||||||
@ -425,6 +455,8 @@ the image."
|
|||||||
#$profile
|
#$profile
|
||||||
#:database #+database
|
#:database #+database
|
||||||
#:system (or #$target (utsname:machine (uname)))
|
#:system (or #$target (utsname:machine (uname)))
|
||||||
|
#:entry-point (string-append #$profile "/"
|
||||||
|
#$entry-point)
|
||||||
#:symlinks '#$symlinks
|
#:symlinks '#$symlinks
|
||||||
#:compressor '#$(compressor-command compressor)
|
#:compressor '#$(compressor-command compressor)
|
||||||
#:creation-time (make-time time-utc 0 1))))))
|
#:creation-time (make-time time-utc 0 1))))))
|
||||||
@ -689,6 +721,9 @@ please email '~a'~%")
|
|||||||
(lambda (opt name arg result)
|
(lambda (opt name arg result)
|
||||||
(alist-cons 'system arg
|
(alist-cons 'system arg
|
||||||
(alist-delete 'system result eq?))))
|
(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
|
(option '("target") #t #f
|
||||||
(lambda (opt name arg result)
|
(lambda (opt name arg result)
|
||||||
(alist-cons 'target arg
|
(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"))
|
-S, --symlink=SPEC create symlinks to the profile according to SPEC"))
|
||||||
(display (G_ "
|
(display (G_ "
|
||||||
-m, --manifest=FILE create a pack with the manifest from FILE"))
|
-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_ "
|
(display (G_ "
|
||||||
--save-provenance save provenance information"))
|
--save-provenance save provenance information"))
|
||||||
(display (G_ "
|
(display (G_ "
|
||||||
@ -889,6 +927,7 @@ Create a bundle of PACKAGE.\n"))
|
|||||||
(leave (G_ "~a: unknown pack format~%")
|
(leave (G_ "~a: unknown pack format~%")
|
||||||
pack-format))))
|
pack-format))))
|
||||||
(localstatedir? (assoc-ref opts 'localstatedir?))
|
(localstatedir? (assoc-ref opts 'localstatedir?))
|
||||||
|
(entry-point (assoc-ref opts 'entry-point))
|
||||||
(profile-name (assoc-ref opts 'profile-name))
|
(profile-name (assoc-ref opts 'profile-name))
|
||||||
(gc-root (assoc-ref opts 'gc-root)))
|
(gc-root (assoc-ref opts 'gc-root)))
|
||||||
(when (null? (manifest-entries manifest))
|
(when (null? (manifest-entries manifest))
|
||||||
@ -919,6 +958,8 @@ Create a bundle of PACKAGE.\n"))
|
|||||||
symlinks
|
symlinks
|
||||||
#:localstatedir?
|
#:localstatedir?
|
||||||
localstatedir?
|
localstatedir?
|
||||||
|
#:entry-point
|
||||||
|
entry-point
|
||||||
#:profile-name
|
#:profile-name
|
||||||
profile-name
|
profile-name
|
||||||
#:archiver
|
#:archiver
|
||||||
|
@ -57,7 +57,6 @@
|
|||||||
#:export (build-and-use-profile
|
#:export (build-and-use-profile
|
||||||
delete-generations
|
delete-generations
|
||||||
delete-matching-generations
|
delete-matching-generations
|
||||||
display-search-paths
|
|
||||||
guix-package
|
guix-package
|
||||||
|
|
||||||
(%options . %package-options)
|
(%options . %package-options)
|
||||||
@ -169,8 +168,7 @@ hooks\" run when building the profile."
|
|||||||
"~a packages in profile~%"
|
"~a packages in profile~%"
|
||||||
count)
|
count)
|
||||||
count)
|
count)
|
||||||
(display-search-paths entries (list profile)
|
(display-search-path-hint entries profile)))
|
||||||
#:kind 'prefix)))
|
|
||||||
|
|
||||||
(warn-about-disk-space profile))))))
|
(warn-about-disk-space profile))))))
|
||||||
|
|
||||||
@ -289,17 +287,23 @@ symlinks like 'canonicalize-path' would do."
|
|||||||
file
|
file
|
||||||
(string-append (getcwd) "/" file)))
|
(string-append (getcwd) "/" file)))
|
||||||
|
|
||||||
(define* (display-search-paths entries profiles
|
(define (display-search-path-hint entries profile)
|
||||||
#:key (kind 'exact))
|
"Display a hint on how to set environment variables to use ENTRIES, a list
|
||||||
"Display the search path environment variables that may need to be set for
|
of manifest entries, in the context of PROFILE."
|
||||||
ENTRIES, a list of manifest entries, in the context of PROFILE."
|
(let* ((profile (user-friendly-profile (absolutize profile)))
|
||||||
(let* ((profiles (map (compose user-friendly-profile absolutize)
|
(settings (search-path-environment-variables entries (list profile)
|
||||||
profiles))
|
#:kind 'prefix)))
|
||||||
(settings (search-path-environment-variables entries profiles
|
|
||||||
#:kind kind)))
|
|
||||||
(unless (null? settings)
|
(unless (null? settings)
|
||||||
(format #t (G_ "The following environment variable definitions may be needed:~%"))
|
(display-hint (format #f (G_ "Consider setting the necessary environment
|
||||||
(format #t "~{ ~a~%~}" settings))))
|
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 (guix licenses)
|
||||||
#:use-module (srfi srfi-64))
|
#:use-module (srfi srfi-64))
|
||||||
|
|
||||||
|
(define-syntax-rule (define-with-source object source expr)
|
||||||
|
(begin
|
||||||
|
(define object expr)
|
||||||
|
(define source 'expr)))
|
||||||
|
|
||||||
(test-begin "print")
|
(test-begin "print")
|
||||||
|
|
||||||
(define pkg
|
(define-with-source pkg pkg-source
|
||||||
(package
|
(package
|
||||||
(name "test")
|
(name "test")
|
||||||
(version "1.2.3")
|
(version "1.2.3")
|
||||||
@ -43,22 +48,31 @@
|
|||||||
(description "This is a dummy package.")
|
(description "This is a dummy package.")
|
||||||
(license gpl3+)))
|
(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"
|
(test-equal "simple package"
|
||||||
(package->code pkg)
|
pkg-source
|
||||||
'(package
|
(package->code pkg))
|
||||||
(name "test")
|
|
||||||
(version "1.2.3")
|
(test-equal "package with inputs"
|
||||||
(source (origin
|
pkg-with-inputs-source
|
||||||
(method url-fetch)
|
(package->code pkg-with-inputs))
|
||||||
(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+)))
|
|
||||||
|
|
||||||
(test-end "print")
|
(test-end "print")
|
||||||
|
Loading…
Reference in New Issue
Block a user