Merge branch 'master' into mesa-updates
Change-Id: I16539f64df739453a83f8dfd962e04910a7d7ff5master
commit
92227248a6
172
doc/guix.texi
172
doc/guix.texi
|
@ -12197,6 +12197,11 @@ This is like the form above, but referring explicitly to the
|
|||
@var{output} of @var{obj}---this is useful when @var{obj} produces
|
||||
multiple outputs (@pxref{Packages with Multiple Outputs}).
|
||||
|
||||
Sometimes a gexp unconditionally refers to the @code{"out"} output, but
|
||||
the user of that gexp would still like to insert a reference to another
|
||||
output. The @code{gexp-input} procedure aims to address that.
|
||||
@xref{gexp-input}.
|
||||
|
||||
@item #+@var{obj}
|
||||
@itemx #+@var{obj}:output
|
||||
@itemx (ungexp-native @var{obj})
|
||||
|
@ -12309,10 +12314,9 @@ When @var{references-graphs} is true, it must be a list of tuples of one of the
|
|||
following forms:
|
||||
|
||||
@example
|
||||
(@var{file-name} @var{package})
|
||||
(@var{file-name} @var{package} @var{output})
|
||||
(@var{file-name} @var{derivation})
|
||||
(@var{file-name} @var{derivation} @var{output})
|
||||
(@var{file-name} @var{obj})
|
||||
(@var{file-name} @var{obj} @var{output})
|
||||
(@var{file-name} @var{gexp-input})
|
||||
(@var{file-name} @var{store-item})
|
||||
@end example
|
||||
|
||||
|
@ -12590,6 +12594,39 @@ The example above returns an object that corresponds to the i686 build
|
|||
of Coreutils, regardless of the current value of @code{%current-system}.
|
||||
@end defmac
|
||||
|
||||
@anchor{gexp-input}
|
||||
@deffn {Procedure} gexp-input @var{obj} [@var{output}] [#:native? #f]
|
||||
Return a @dfn{gexp input} record for the given @var{output} of file-like
|
||||
object @var{obj}, with @code{#:native?} determining whether this is a
|
||||
native reference (as with @code{ungexp-native}) or not.
|
||||
|
||||
This procedure is helpful when you want to pass a reference to a
|
||||
specific output of an object to some procedure that may not know about
|
||||
that output. For example, assume you have this procedure, which takes
|
||||
one file-like object:
|
||||
|
||||
@lisp
|
||||
(define (make-symlink target)
|
||||
(computed-file "the-symlink"
|
||||
#~(symlink #$target #$output)))
|
||||
@end lisp
|
||||
|
||||
Here @code{make-symlink} can only ever refer to the default output of
|
||||
@var{target}---the @code{"out"} output (@pxref{Packages with Multiple
|
||||
Outputs}). To have it refer to, say, the @code{"lib"} output of the
|
||||
@code{hwloc} package, you can call it like so:
|
||||
|
||||
@lisp
|
||||
(make-symlink (gexp-input hwloc "lib"))
|
||||
@end lisp
|
||||
|
||||
You can also compose it like any other file-like object:
|
||||
|
||||
@lisp
|
||||
(make-symlink
|
||||
(file-append (gexp-input hwloc "lib") "/lib/libhwloc.so"))
|
||||
@end lisp
|
||||
@end deffn
|
||||
|
||||
Of course, in addition to gexps embedded in ``host'' code, there are
|
||||
also modules containing build tools. To make it clear that they are
|
||||
|
@ -34126,6 +34163,9 @@ The Laminar package to use.
|
|||
@item @code{home-directory} (default: @code{"/var/lib/laminar"})
|
||||
The directory for job configurations and run directories.
|
||||
|
||||
@item @code{supplementary-groups} (default: @code{()})
|
||||
Supplementary groups for the Laminar user account.
|
||||
|
||||
@item @code{bind-http} (default: @code{"*:8080"})
|
||||
The interface/port or unix socket on which laminard should listen for
|
||||
incoming connections to the web frontend.
|
||||
|
@ -38726,58 +38766,6 @@ the coordinator database, and is used by the agent to authenticate.
|
|||
@end table
|
||||
@end deftp
|
||||
|
||||
The Guix Build Coordinator package contains a script to query an
|
||||
instance of the Guix Data Service for derivations to build, and then
|
||||
submit builds for those derivations to the coordinator. The service
|
||||
type below assists in running this script. This is an additional tool
|
||||
that may be useful when building derivations contained within an
|
||||
instance of the Guix Data Service.
|
||||
|
||||
@defvar guix-build-coordinator-queue-builds-service-type
|
||||
Service type for the
|
||||
guix-build-coordinator-queue-builds-from-guix-data-service script. Its
|
||||
value must be a @code{guix-build-coordinator-queue-builds-configuration}
|
||||
object.
|
||||
@end defvar
|
||||
|
||||
@deftp {Data Type} guix-build-coordinator-queue-builds-configuration
|
||||
Data type representing the options to the queue builds from guix data
|
||||
service script.
|
||||
|
||||
@table @asis
|
||||
@item @code{package} (default: @code{guix-build-coordinator})
|
||||
The Guix Build Coordinator package to use.
|
||||
|
||||
@item @code{user} (default: @code{"guix-build-coordinator-queue-builds"})
|
||||
The system user to run the service as.
|
||||
|
||||
@item @code{coordinator} (default: @code{"http://localhost:8746"})
|
||||
The URI to use when connecting to the coordinator.
|
||||
|
||||
@item @code{systems} (default: @code{#f})
|
||||
The systems for which to fetch derivations to build.
|
||||
|
||||
@item @code{systems-and-targets} (default: @code{#f})
|
||||
An association list of system and target pairs for which to fetch
|
||||
derivations to build.
|
||||
|
||||
@item @code{guix-data-service} (default: @code{"https://data.guix.gnu.org"})
|
||||
The Guix Data Service instance from which to query to find out about
|
||||
derivations to build.
|
||||
|
||||
@item @code{guix-data-service-build-server-id} (default: @code{#f})
|
||||
The Guix Data Service build server ID corresponding to the builds being
|
||||
submitted. Providing this speeds up the submitting of builds as
|
||||
derivations that have already been submitted can be skipped before
|
||||
asking the coordinator to build them.
|
||||
|
||||
@item @code{processed-commits-file} (default: @code{"/var/cache/guix-build-coordinator-queue-builds/processed-commits"})
|
||||
A file to record which commits have been processed, to avoid needlessly
|
||||
processing them again if the service is restarted.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@subsubheading Guix Data Service
|
||||
The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores
|
||||
and provides data about GNU Guix. This includes information about
|
||||
|
@ -45084,6 +45072,7 @@ sound support.
|
|||
|
||||
@cindex PulseAudio, home service
|
||||
@cindex RTP, for PulseAudio
|
||||
@subsubheading PulseAudio RTP Streaming Services
|
||||
|
||||
The following services dynamically reconfigure the
|
||||
@uref{https://pulseaudio.org,PulseAudio sound server}: they let you
|
||||
|
@ -45171,6 +45160,77 @@ Stopping the Shepherd service turns off broadcasting.
|
|||
This is the multicast address used by default by the two services above.
|
||||
@end defvar
|
||||
|
||||
@cindex PipeWire, home service
|
||||
@subsubheading PipeWire Home Service
|
||||
|
||||
@uref{https://pipewire.org, PipeWire} provides a low-latency,
|
||||
graph-based audio and video processing service. In addition to its
|
||||
native protocol, it can also be used as a replacement for both JACK and
|
||||
PulseAudio.
|
||||
|
||||
While PipeWire provides the media processing and API, it does not,
|
||||
directly, know about devices such as sound cards, nor how you might want
|
||||
to connect applications, hardware, and media processing filters.
|
||||
Instead, PipeWire relies on a @dfn{session manager} to specify all these
|
||||
relationships. While you may use any session manager you wish, for most
|
||||
people the @url{https://pipewire.pages.freedesktop.org/wireplumber/,
|
||||
WirePlumber} session manager, a reference implementation provided by the
|
||||
PipeWire project itself, suffices, and that is the one
|
||||
@code{home-pipewire-service-type} uses.
|
||||
|
||||
PipeWire can be used as a replacement for PulseAudio by setting
|
||||
@code{enable-pulseaudio?} to @code{#t} in
|
||||
@code{home-pipewire-configuration}, so that existing PulseAudio clients
|
||||
may use it without any further configuration.
|
||||
|
||||
In addition, JACK clients may connect to PipeWire by using the
|
||||
@command{pw-jack} program, which comes with PipeWire. Simply prefix the
|
||||
command with @command{pw-jack} when you run it, and audio data should go
|
||||
through PipeWire:
|
||||
|
||||
@example
|
||||
pw-jack mpv -ao=jack sound-file.wav
|
||||
@end example
|
||||
|
||||
For more information on PulseAudio emulation, see
|
||||
@uref{https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PulseAudio},
|
||||
for JACK, see
|
||||
@uref{https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-JACK}.
|
||||
|
||||
As PipeWire does not use @code{dbus} to start its services on demand
|
||||
(as PulseAudio does), @code{home-pipewire-service-type} uses Shepherd
|
||||
to start services when logged in, provisioning the @code{pipewire},
|
||||
@code{wireplumber}, and, if configured, @code{pipewire-pulseaudio}
|
||||
services. @xref{Shepherd Home Service}.
|
||||
|
||||
@defvar home-pipewire-service-type
|
||||
This provides the service definition for @command{pipewire}, which will
|
||||
run on login. Its value is a @code{home-pipewire-configuration} object.
|
||||
|
||||
To start the service, add it to the @code{service} field of your
|
||||
@code{home-environment}, such as:
|
||||
|
||||
@lisp
|
||||
(service home-pipewire-service-type)
|
||||
@end lisp
|
||||
@end defvar
|
||||
|
||||
@deftp {Data Type} home-pipewire-configuration
|
||||
Available @code{home-pipewire-configuration} fields are:
|
||||
|
||||
@table @asis
|
||||
@item @code{pipewire} (default: @code{pipewire}) (type: file-like)
|
||||
The PipeWire package to use.
|
||||
|
||||
@item @code{wireplumber} (default: @code{wireplumber}) (type: file-like)
|
||||
The WirePlumber package to use.
|
||||
|
||||
@item @code{enable-pulseaudio?} (default: @code{#t}) (type: boolean)
|
||||
When true, enable PipeWire's PulseAudio emulation support, allowing
|
||||
PulseAudio clients to use PipeWire transparently.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@node Mail Home Services
|
||||
@subsection Mail Home Services
|
||||
|
||||
|
|
|
@ -477,7 +477,9 @@ asdf-build-system."
|
|||
#:description
|
||||
"Taking care about Icecat and Icedove, built from Mozilla Firefox
|
||||
and Thunderbird."
|
||||
#:scope (list "gnu/packages/gnuzilla.scm")))
|
||||
#:scope (list "gnu/build/icecat-extension.scm"
|
||||
"gnu/packages/browser-extensions.scm"
|
||||
"gnu/packages/gnuzilla.scm")))
|
||||
|
||||
(define-team racket
|
||||
(team 'racket
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2023 Herman Rimm <herman_rimm@protonmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -37,6 +38,7 @@
|
|||
u-boot-mx6cuboxi-bootloader
|
||||
u-boot-nintendo-nes-classic-edition-bootloader
|
||||
u-boot-novena-bootloader
|
||||
u-boot-orangepi-r1-plus-lts-rk3328-bootloader
|
||||
u-boot-pine64-plus-bootloader
|
||||
u-boot-pine64-lts-bootloader
|
||||
u-boot-pinebook-bootloader
|
||||
|
@ -93,6 +95,15 @@
|
|||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 69 1024)))))
|
||||
|
||||
(define install-orangepi-r1-plus-lts-rk3328-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((idb (string-append bootloader "/libexec/idbloader.img"))
|
||||
(u-boot (string-append bootloader "/libexec/u-boot.itb")))
|
||||
(write-file-on-device idb (stat:size (stat idb))
|
||||
image (* 64 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 16384 512)))))
|
||||
|
||||
(define install-puma-rk3399-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((spl (string-append bootloader "/libexec/idbloader.img"))
|
||||
|
@ -233,6 +244,12 @@
|
|||
(inherit u-boot-imx-bootloader)
|
||||
(package u-boot-novena)))
|
||||
|
||||
(define u-boot-orangepi-r1-plus-lts-rk3328-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-orangepi-r1-plus-lts-rk3328)
|
||||
(disk-image-installer install-orangepi-r1-plus-lts-rk3328-u-boot)))
|
||||
|
||||
(define u-boot-pine64-plus-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner64-bootloader)
|
||||
|
|
|
@ -120,12 +120,7 @@ format."
|
|||
when installed, will make the extension contained in PKG available as a
|
||||
Chromium browser extension. PKG-OUTPUT specifies which output of PKG to use."
|
||||
(let* ((name (package-name pkg))
|
||||
(version (package-version pkg))
|
||||
(private-key (make-signing-key name))
|
||||
(public-key (signing-key->public-der private-key))
|
||||
(checksum (file-sha256sum public-key))
|
||||
(crx (make-crx private-key pkg pkg-output))
|
||||
(json (crx->chromium-json crx version)))
|
||||
(version (package-version pkg)))
|
||||
(package
|
||||
(inherit pkg)
|
||||
(name (string-append name "-chromium"))
|
||||
|
@ -138,18 +133,24 @@ Chromium browser extension. PKG-OUTPUT specifies which output of PKG to use."
|
|||
(arguments
|
||||
(list #:modules '((guix build utils))
|
||||
#:builder
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
(define (base16-char->chromium-base16 char)
|
||||
;; Translate CHAR, a hexadecimal character, to a Chromium-style
|
||||
;; representation using the letters a-p (where a=0, p=15).
|
||||
(string-ref "abcdefghijklmnop"
|
||||
(string-index "0123456789abcdef" char)))
|
||||
(let ((file-name (string-map base16-char->chromium-base16
|
||||
(string-take #$checksum 32)))
|
||||
(extension-directory
|
||||
(string-append #$output
|
||||
"/share/chromium/extensions")))
|
||||
(mkdir-p extension-directory)
|
||||
(symlink #$json (string-append extension-directory "/"
|
||||
file-name ".json")))))))))
|
||||
(let*
|
||||
((private-key (make-signing-key name))
|
||||
(public-key (signing-key->public-der private-key))
|
||||
(checksum (file-sha256sum public-key))
|
||||
(crx (make-crx private-key pkg pkg-output))
|
||||
(json (crx->chromium-json crx version)))
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
(define (base16-char->chromium-base16 char)
|
||||
;; Translate CHAR, a hexadecimal character, to a Chromium-style
|
||||
;; representation using the letters a-p (where a=0, p=15).
|
||||
(string-ref "abcdefghijklmnop"
|
||||
(string-index "0123456789abcdef" char)))
|
||||
(let ((file-name (string-map base16-char->chromium-base16
|
||||
(string-take #$checksum 32)))
|
||||
(extension-directory
|
||||
(string-append #$output
|
||||
"/share/chromium/extensions")))
|
||||
(mkdir-p extension-directory)
|
||||
(symlink #$json (string-append extension-directory "/"
|
||||
file-name ".json"))))))))))
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
%precious-signals)
|
||||
#:autoload (shepherd system) (unblock-signals)
|
||||
#:export (default-mounts
|
||||
make-forkexec-constructor/container
|
||||
fork+exec-command/container))
|
||||
|
||||
;;; Commentary:
|
||||
|
@ -101,27 +100,6 @@
|
|||
(file-exists? (file-system-mapping-source mapping)))
|
||||
mappings)))))
|
||||
|
||||
(define* (read-pid-file/container pid pid-file #:key (max-delay 5))
|
||||
"Read PID-FILE in the container namespaces of PID, which exists in a
|
||||
separate mount and PID name space. Return the \"outer\" PID. "
|
||||
(match (container-excursion* pid
|
||||
(lambda ()
|
||||
;; XXX: Trick for Shepherd 0.9: prevent 'read-pid-file' from
|
||||
;; using (@ (fibers) sleep), which would try to suspend the
|
||||
;; current task, which doesn't work in this extra process.
|
||||
(with-continuation-barrier
|
||||
(lambda ()
|
||||
(read-pid-file pid-file
|
||||
#:max-delay max-delay)))))
|
||||
(#f
|
||||
;; Send SIGTERM to the whole process group.
|
||||
(catch-system-error (kill (- pid) SIGTERM))
|
||||
#f)
|
||||
((? integer? container-pid)
|
||||
;; XXX: When COMMAND is started in a separate PID namespace, its
|
||||
;; PID is always 1, but that's not what Shepherd needs to know.
|
||||
pid)))
|
||||
|
||||
(define* (exec-command* command #:key user group log-file pid-file
|
||||
(supplementary-groups '())
|
||||
(directory "/") (environment-variables (environ)))
|
||||
|
@ -144,74 +122,6 @@ shepherd (PID 1)."
|
|||
#:directory directory
|
||||
#:environment-variables environment-variables))
|
||||
|
||||
(define* (make-forkexec-constructor/container command
|
||||
#:key
|
||||
(namespaces
|
||||
(default-namespaces args))
|
||||
(mappings '())
|
||||
(user #f)
|
||||
(group #f)
|
||||
(supplementary-groups '())
|
||||
(log-file #f)
|
||||
pid-file
|
||||
(pid-file-timeout 5)
|
||||
(directory "/")
|
||||
(environment-variables
|
||||
(environ))
|
||||
#:rest args)
|
||||
"This is a variant of 'make-forkexec-constructor' that starts COMMAND in
|
||||
NAMESPACES, a list of Linux namespaces such as '(mnt ipc). MAPPINGS is the
|
||||
list of <file-system-mapping> to make in the case of a separate mount
|
||||
namespace, in addition to essential bind-mounts such /proc."
|
||||
(define container-directory
|
||||
(match command
|
||||
((program _ ...)
|
||||
(string-append "/var/run/containers/" (basename program)))))
|
||||
|
||||
(define auto-mappings
|
||||
`(,@(if log-file
|
||||
(list (file-system-mapping
|
||||
(source log-file)
|
||||
(target source)
|
||||
(writable? #t)))
|
||||
'())))
|
||||
|
||||
(define mounts
|
||||
(append (map file-system-mapping->bind-mount
|
||||
(append auto-mappings mappings))
|
||||
(default-mounts #:namespaces namespaces)))
|
||||
|
||||
(lambda args
|
||||
(mkdir-p container-directory)
|
||||
|
||||
(when log-file
|
||||
;; Create LOG-FILE so we can map it in the container.
|
||||
(unless (file-exists? log-file)
|
||||
(close (open log-file (logior O_CREAT O_APPEND O_CLOEXEC) #o640))
|
||||
(when user
|
||||
(let ((pw (getpwnam user)))
|
||||
(chown log-file (passwd:uid pw) (passwd:gid pw))))))
|
||||
|
||||
(let ((pid (run-container container-directory
|
||||
mounts namespaces 1
|
||||
(lambda ()
|
||||
(exec-command* command
|
||||
#:user user
|
||||
#:group group
|
||||
#:supplementary-groups
|
||||
supplementary-groups
|
||||
#:pid-file pid-file
|
||||
#:log-file log-file
|
||||
#:directory directory
|
||||
#:environment-variables
|
||||
environment-variables)))))
|
||||
(if pid-file
|
||||
(if (or (memq 'mnt namespaces) (memq 'pid namespaces))
|
||||
(read-pid-file/container pid pid-file
|
||||
#:max-delay pid-file-timeout)
|
||||
(read-pid-file pid-file #:max-delay pid-file-timeout))
|
||||
pid))))
|
||||
|
||||
(define* (fork+exec-command/container command
|
||||
#:key pid
|
||||
#:allow-other-keys
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2023 Brian Cully <bjc@spork.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -19,13 +20,112 @@
|
|||
(define-module (gnu home services sound)
|
||||
#:use-module (gnu home services)
|
||||
#:use-module (gnu home services shepherd)
|
||||
#:use-module (gnu home services xdg)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu services configuration)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (home-pulseaudio-rtp-sink-service-type
|
||||
home-pulseaudio-rtp-source-service-type
|
||||
%pulseaudio-rtp-multicast-address))
|
||||
%pulseaudio-rtp-multicast-address
|
||||
|
||||
home-pipewire-configuration
|
||||
home-pipewire-service-type))
|
||||
|
||||
|
||||
;;;
|
||||
;;; PipeWire support.
|
||||
;;;
|
||||
|
||||
(define-configuration/no-serialization home-pipewire-configuration
|
||||
(pipewire
|
||||
(file-like pipewire)
|
||||
"The PipeWire package to use.")
|
||||
(wireplumber
|
||||
(file-like wireplumber)
|
||||
"The WirePlumber package to use.")
|
||||
(enable-pulseaudio?
|
||||
(boolean #t)
|
||||
"When true, enable PipeWire's PulseAudio emulation support, allowing
|
||||
PulseAudio clients to use PipeWire transparently."))
|
||||
|
||||
(define (home-pipewire-shepherd-service config)
|
||||
(shepherd-service
|
||||
(documentation "PipeWire media processing.")
|
||||
(provision '(pipewire))
|
||||
(requirement '(dbus))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append
|
||||
(home-pipewire-configuration-pipewire config)
|
||||
"/bin/pipewire"))))
|
||||
(stop #~(make-kill-destructor))))
|
||||
|
||||
(define (home-pipewire-pulseaudio-shepherd-service config)
|
||||
(shepherd-service
|
||||
(documentation "Drop-in PulseAudio replacement service for PipeWire.")
|
||||
(provision '(pipewire-pulseaudio))
|
||||
(requirement '(pipewire))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append
|
||||
(home-pipewire-configuration-pipewire config)
|
||||
"/bin/pipewire-pulse"))))
|
||||
(stop #~(make-kill-destructor))))
|
||||
|
||||
(define (home-wireplumber-shepherd-service config)
|
||||
(shepherd-service
|
||||
(documentation "WirePlumber session management for PipeWire.")
|
||||
(provision '(wireplumber))
|
||||
(requirement '(pipewire))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append
|
||||
(home-pipewire-configuration-wireplumber config)
|
||||
"/bin/wireplumber"))))
|
||||
(stop #~(make-kill-destructor))))
|
||||
|
||||
(define (home-pipewire-shepherd-services config)
|
||||
(cons* (home-pipewire-shepherd-service config)
|
||||
(home-wireplumber-shepherd-service config)
|
||||
(if (home-pipewire-configuration-enable-pulseaudio? config)
|
||||
(list (home-pipewire-pulseaudio-shepherd-service config))
|
||||
'())))
|
||||
|
||||
(define (home-pipewire-asoundrc config)
|
||||
(match-record config <home-pipewire-configuration>
|
||||
(pipewire)
|
||||
(mixed-text-file
|
||||
"asoundrc"
|
||||
"<" pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf>\n"
|
||||
"<" pipewire "/share/alsa/alsa.conf.d/99-pipewire-default.conf>\n"
|
||||
"pcm_type.pipewire {\n"
|
||||
" lib \"" pipewire "/lib/alsa-lib/libasound_module_pcm_pipewire.so\"\n"
|
||||
"}\n"
|
||||
"ctl_type.pipewire {\n"
|
||||
" lib \"" pipewire "/lib/alsa-lib/libasound_module_ctl_pipewire.so\"\n"
|
||||
"}\n")))
|
||||
|
||||
(define home-pipewire-disable-pulseaudio-auto-start
|
||||
(plain-file "client.conf" "autospawn = no"))
|
||||
|
||||
(define (home-pipewire-xdg-configuration config)
|
||||
(cons* `("alsa/asoundrc" ,(home-pipewire-asoundrc config))
|
||||
(if (home-pipewire-configuration-enable-pulseaudio? config)
|
||||
`(("pulse/client.conf"
|
||||
,home-pipewire-disable-pulseaudio-auto-start))
|
||||
'())))
|
||||
|
||||
(define home-pipewire-service-type
|
||||
(service-type
|
||||
(name 'pipewire)
|
||||
(extensions
|
||||
(list (service-extension home-shepherd-service-type
|
||||
home-pipewire-shepherd-services)
|
||||
(service-extension home-xdg-configuration-files-service-type
|
||||
home-pipewire-xdg-configuration)))
|
||||
(description
|
||||
"Start essential PipeWire services.")
|
||||
(default-value (home-pipewire-configuration))))
|
||||
|
||||
|
||||
;;;
|
||||
|
|
|
@ -45,10 +45,10 @@
|
|||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||
#:use-module (gnu packages iso-codes)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages nano)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages text-editors)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu system locale)
|
||||
|
|
12
gnu/local.mk
12
gnu/local.mk
|
@ -61,6 +61,7 @@
|
|||
# Copyright © 2023 Andy Tai <atai@atai.org>
|
||||
# Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com>
|
||||
# Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
|
||||
# Copyright © 2023 Herman Rimm <herman@rimm.ee>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
@ -239,7 +240,6 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/dvtm.scm \
|
||||
%D%/packages/easyrpg.scm \
|
||||
%D%/packages/ebook.scm \
|
||||
%D%/packages/ed.scm \
|
||||
%D%/packages/education.scm \
|
||||
%D%/packages/efi.scm \
|
||||
%D%/packages/electronics.scm \
|
||||
|
@ -455,7 +455,6 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/musl.scm \
|
||||
%D%/packages/mtools.scm \
|
||||
%D%/packages/myrddin.scm \
|
||||
%D%/packages/nano.scm \
|
||||
%D%/packages/ncdu.scm \
|
||||
%D%/packages/ncurses.scm \
|
||||
%D%/packages/netpbm.scm \
|
||||
|
@ -752,6 +751,7 @@ GNU_SYSTEM_MODULES = \
|
|||
\
|
||||
%D%/system/images/hurd.scm \
|
||||
%D%/system/images/novena.scm \
|
||||
%D%/system/images/orangepi-r1-plus-lts-rk3328.scm \
|
||||
%D%/system/images/pine64.scm \
|
||||
%D%/system/images/pinebook-pro.scm \
|
||||
%D%/system/images/rock64.scm \
|
||||
|
@ -1066,6 +1066,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/cursynth-wave-rand.patch \
|
||||
%D%/packages/patches/cvs-CVE-2017-12836.patch \
|
||||
%D%/packages/patches/d-feet-drop-unused-meson-argument.patch \
|
||||
%D%/packages/patches/dante-non-darwin.patch \
|
||||
%D%/packages/patches/date-output-pkg-config-files.patch \
|
||||
%D%/packages/patches/datefudge-gettimeofday.patch \
|
||||
%D%/packages/patches/dbacl-include-locale.h.patch \
|
||||
|
@ -2001,10 +2002,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/serf-python3.patch \
|
||||
%D%/packages/patches/shakespeare-spl-fix-grammar.patch \
|
||||
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \
|
||||
%D%/packages/patches/slim-session.patch \
|
||||
%D%/packages/patches/slim-config.patch \
|
||||
%D%/packages/patches/slim-sigusr1.patch \
|
||||
%D%/packages/patches/slim-reset.patch \
|
||||
%D%/packages/patches/slim-login.patch \
|
||||
%D%/packages/patches/slim-display.patch \
|
||||
%D%/packages/patches/stex-copy-from-immutable-store.patch \
|
||||
|
@ -2070,13 +2068,9 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/tuxpaint-stamps-path.patch \
|
||||
%D%/packages/patches/twinkle-bcg729.patch \
|
||||
%D%/packages/patches/u-boot-allow-disabling-openssl.patch \
|
||||
%D%/packages/patches/u-boot-fix-build-python-3.10.patch \
|
||||
%D%/packages/patches/u-boot-fix-u-boot-lib-build.patch \
|
||||
%D%/packages/patches/u-boot-nintendo-nes-serial.patch \
|
||||
%D%/packages/patches/u-boot-patman-change-id.patch \
|
||||
%D%/packages/patches/u-boot-rockchip-inno-usb.patch \
|
||||
%D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch \
|
||||
%D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \
|
||||
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
|
||||
%D%/packages/patches/ultrastar-deluxe-no-freesans.patch \
|
||||
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
|
||||
|
|
|
@ -407,7 +407,7 @@ interface and is based on GNU Guile.")
|
|||
(define-public swineherd
|
||||
(package
|
||||
(name "swineherd")
|
||||
(version "0.0.3")
|
||||
(version "0.0.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -416,7 +416,7 @@ interface and is based on GNU Guile.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0il1ikaj478n7xs4vqgawbshvmwq3nd0gp235mwqvmf4knra6j3g"))))
|
||||
"0iij1pl0y410k1dk1ifa56dxmjb1blv0y3k5rxy794gwg6w6c480"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--localstatedir=/var")
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fltk)
|
||||
#:use-module (gnu packages gcc)
|
||||
|
@ -63,6 +62,7 @@
|
|||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages tex)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages text-editors)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
|
|
|
@ -48,7 +48,6 @@
|
|||
#:use-module (gnu packages attr)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
|
@ -57,6 +56,7 @@
|
|||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages text-editors)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
|
|
|
@ -161,6 +161,7 @@
|
|||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages uglifyjs)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages vim)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages wget)
|
||||
|
@ -4287,6 +4288,107 @@ annotations of the genome.")
|
|||
other types of unwanted sequence from high-throughput sequencing reads.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public lammps
|
||||
(let ((commit "stable_2Aug2023_update2"))
|
||||
(package
|
||||
(name "lammps")
|
||||
(version (string-append "0." commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/lammps/lammps.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"11xagacgxgldkx34qdzyjrjvn8x3hpl0kgzhh9zh7skpq79pwycz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; no check target
|
||||
#:make-flags
|
||||
'(list "CC=mpicc" "mpi"
|
||||
"LMP_INC=-DLAMMPS_GZIP \
|
||||
-DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_FFMPEG -DLAMMPS_MEMALIGN=64"
|
||||
"LIB=-gz -ljpeg -lpng -lavcodec")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _ (chdir "src")))
|
||||
(replace 'configure
|
||||
(lambda _
|
||||
(substitute* "MAKE/Makefile.mpi"
|
||||
(("SHELL =.*")
|
||||
(string-append "SHELL=" (which "bash") "\n"))
|
||||
(("cc ") "mpicc "))
|
||||
(substitute* "Makefile"
|
||||
(("SHELL =.*")
|
||||
(string-append "SHELL=" (which "bash") "\n")))))
|
||||
(add-after 'configure 'configure-modules
|
||||
(lambda _
|
||||
(invoke "make"
|
||||
"yes-molecule"
|
||||
"yes-misc"
|
||||
"yes-granular"
|
||||
(string-append "HDF5_PATH="
|
||||
#$(this-package-input "hdf5")))))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((bin (string-append #$output "/bin")))
|
||||
(mkdir-p bin)
|
||||
(install-file "lmp_mpi" bin)))))))
|
||||
(inputs
|
||||
(list ffmpeg
|
||||
gfortran
|
||||
gzip
|
||||
hdf5
|
||||
libjpeg-turbo
|
||||
libpng
|
||||
openmpi
|
||||
python-wrapper))
|
||||
(native-inputs (list bc))
|
||||
(home-page "https://www.lammps.org/")
|
||||
(synopsis "Classical molecular dynamics simulator")
|
||||
(description "LAMMPS is a classical molecular dynamics simulator
|
||||
designed to run efficiently on parallel computers. LAMMPS has potentials for
|
||||
solid-state materials (metals, semiconductors), soft matter (biomolecules,
|
||||
polymers), and coarse-grained or mesoscopic systems. It can be used to model
|
||||
atoms or, more generically, as a parallel particle simulator at the atomic,
|
||||
meso, or continuum scale.")
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public lammps-serial
|
||||
(package
|
||||
(inherit lammps)
|
||||
(name "lammps-serial")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments lammps)
|
||||
((#:make-flags flags)
|
||||
'(list "CC=gcc" "serial"
|
||||
"LMP_INC=-DLAMMPS_GZIP \
|
||||
-DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_FFMPEG -DLAMMPS_MEMALIGN=64"
|
||||
"LIB=-gz -ljpeg -lpng -lavcodec"))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'configure
|
||||
(lambda _
|
||||
(substitute* "MAKE/Makefile.serial"
|
||||
(("SHELL =.*")
|
||||
(string-append "SHELL=" (which "bash") "\n"))
|
||||
(("cc ") "gcc "))
|
||||
(substitute* "Makefile"
|
||||
(("SHELL =.*")
|
||||
(string-append "SHELL=" (which "bash") "\n")))))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((bin (string-append #$output "/bin")))
|
||||
(mkdir-p bin)
|
||||
(install-file "lmp_serial" bin))))))))
|
||||
(inputs
|
||||
(modify-inputs (package-inputs lammps)
|
||||
(delete "openmpi")))))
|
||||
|
||||
(define-public libbigwig
|
||||
(package
|
||||
(name "libbigwig")
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
;;; Copyright © 2022, 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de>
|
||||
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2023 Herman Rimm <herman@rimm.ee>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -692,34 +693,19 @@ tree binary files. These are board description files used by Linux and BSD.")
|
|||
;; and https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io
|
||||
(search-patch "u-boot-rockchip-inno-usb.patch"))
|
||||
|
||||
(define %u-boot-sifive-prevent-relocating-initrd-fdt
|
||||
;; Fix boot in 2021.07 on Hifive unmatched, see
|
||||
;; https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1937246
|
||||
(search-patch "u-boot-sifive-prevent-reloc-initrd-fdt.patch"))
|
||||
|
||||
(define %u-boot-allow-disabling-openssl-patch
|
||||
;; Fixes build of u-boot 2021.10 without openssl
|
||||
;; https://lists.denx.de/pipermail/u-boot/2021-October/462728.html
|
||||
(search-patch "u-boot-allow-disabling-openssl.patch"))
|
||||
|
||||
(define %u-boot-rk3399-enable-emmc-phy-patch
|
||||
;; Fix emmc boot on rockpro64 and pinebook-pro, this was a regression
|
||||
;; therefore should hopefully be fixed when updating u-boot.
|
||||
;; https://lists.denx.de/pipermail/u-boot/2021-November/466329.html
|
||||
(search-patch "u-boot-rk3399-enable-emmc-phy.patch"))
|
||||
|
||||
(define u-boot
|
||||
(package
|
||||
(name "u-boot")
|
||||
(version "2023.07.02")
|
||||
(version "2023.10")
|
||||
(source (origin
|
||||
(patches
|
||||
(list %u-boot-rockchip-inno-usb-patch
|
||||
%u-boot-allow-disabling-openssl-patch
|
||||
%u-boot-sifive-prevent-relocating-initrd-fdt
|
||||
%u-boot-rk3399-enable-emmc-phy-patch
|
||||
(search-patch "u-boot-fix-build-python-3.10.patch")
|
||||
(search-patch "u-boot-fix-u-boot-lib-build.patch")
|
||||
(search-patch "u-boot-patman-change-id.patch")))
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -727,7 +713,7 @@ tree binary files. These are board description files used by Linux and BSD.")
|
|||
"u-boot-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1m91w3fpywllkwm000dqsw3294j0szs1lz6qbgwv1aql3ic4hskb"))))
|
||||
"0039rravvjq9yi41645fynycw4c869px024xfc0n212f05pnq3p0"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list bison
|
||||
|
@ -778,6 +764,7 @@ also initializes the boards (RAM etc).")
|
|||
(modify-inputs (package-native-inputs u-boot)
|
||||
(append fontconfig
|
||||
python-sphinx
|
||||
python-sphinx-prompt
|
||||
texinfo
|
||||
which)))
|
||||
(synopsis "U-Boot documentation")
|
||||
|
@ -1201,6 +1188,21 @@ device while it's being turned on (and a while longer).")))
|
|||
version, contrary to Novena upstream, does not load u-boot.img from the first
|
||||
partition."))
|
||||
|
||||
(define-public u-boot-orangepi-r1-plus-lts-rk3328
|
||||
(let ((base (make-u-boot-package "orangepi-r1-plus-lts-rk3328" "aarch64-linux-gnu")))
|
||||
(package
|
||||
(inherit base)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base)
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'set-environment
|
||||
(lambda* (#:key native-inputs inputs #:allow-other-keys)
|
||||
(setenv "BL31" (search-input-file inputs "bl31.elf"))))))))
|
||||
(inputs
|
||||
(modify-inputs (package-inputs base)
|
||||
(append arm-trusted-firmware-rk3328))))))
|
||||
|
||||
(define-public u-boot-cubieboard
|
||||
(make-u-boot-package "Cubieboard" "arm-linux-gnueabihf"))
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
(define-module (gnu packages browser-extensions)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
|
@ -155,7 +156,7 @@ ungoogled-chromium.")
|
|||
(define-public passff-host
|
||||
(package
|
||||
(name "passff-host")
|
||||
(version "1.2.3")
|
||||
(version "1.2.4")
|
||||
(home-page "https://github.com/passff/passff-host")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
|
@ -163,7 +164,7 @@ ungoogled-chromium.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1p18l1jh20x4v8dj64z9qjlp96fxsl5h069iynxfpbkzj6hd74yl"))))
|
||||
"1lcwa1qzfxlifmj33qndp1wgi6yx6vj21ir0az79vhm5k03p961z"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(let ((native-manifests "lib/icecat/native-messaging-hosts"))
|
||||
|
@ -193,7 +194,7 @@ properly.")
|
|||
(define passff
|
||||
(package
|
||||
(name "passff")
|
||||
(version "1.15")
|
||||
(version "1.16")
|
||||
(home-page "https://github.com/passff/passff")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
|
@ -201,7 +202,7 @@ properly.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gymqyqppr8k9fqv5js7f6pk6hcc47qpf51x5cy6aahsk2v1qssj"))))
|
||||
"0y3cbgy89lgvq6lfabp7mi1zhphdvihcccn3yw5mmaql9yrdm5kc"))))
|
||||
(propagated-inputs (list passff-host))
|
||||
(build-system copy-build-system)
|
||||
(properties '((addon-id . "passff@invicem.pro")))
|
||||
|
@ -251,3 +252,28 @@ with the @uref{https://keepassxc.org, KeePassXC} password manager.")
|
|||
|
||||
(define-public keepassxc-browser/icecat
|
||||
(make-icecat-extension keepassxc-browser))
|
||||
|
||||
(define noscript
|
||||
(package
|
||||
(name "noscript")
|
||||
(version "11.4.29")
|
||||
(source (origin
|
||||
(method url-fetch/zipbomb)
|
||||
(uri (string-append
|
||||
"https://noscript.net/download/releases/noscript-" version
|
||||
".xpi"))
|
||||
(sha256
|
||||
(base32
|
||||
"1k94zvv2ypmhc29f5d2zrvigwh1xgi5kwm1kqfxarwjyn108if85"))))
|
||||
(build-system copy-build-system)
|
||||
(properties '((addon-id . "{73a6fe31-595d-460b-a920-fcc0f8843232}")))
|
||||
(arguments
|
||||
`(#:install-plan '(("." ,(assq-ref properties 'addon-id)))))
|
||||
(home-page "https://noscript.net")
|
||||
(synopsis "Software providing extra protection for various browsers.")
|
||||
(description "The NoScript Security Suite is a software providing extra
|
||||
protection for web browsers.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public noscript/icecat
|
||||
(make-icecat-extension noscript))
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
|
||||
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -233,10 +234,35 @@ files.")
|
|||
`(#:tests? #f ; there is no check target
|
||||
#:parallel-build? #f ;randomly fails to link
|
||||
#:configure-flags ; Add $libdir to the RUNPATH of all the executables.
|
||||
(list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
|
||||
(list (string-append "LDFLAGS=-Wl,-rpath="
|
||||
,(if (%current-target-system)
|
||||
'(assoc-ref %outputs "out")
|
||||
'%output)
|
||||
"/lib"))
|
||||
;; Building in parallel is flaky: “ld: […]/cachetest.c:393: undefined
|
||||
;; reference to `paranoia_free'”.
|
||||
#:parallel-build? #f))
|
||||
#:parallel-build? #f
|
||||
,@(if (and (or (target-riscv64?)
|
||||
(target-aarch64?))
|
||||
(%current-target-system))
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'update-config-scripts
|
||||
(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||
;; Replace outdated config.guess and config.sub.
|
||||
(for-each (lambda (file)
|
||||
(install-file
|
||||
(search-input-file
|
||||
(or native-inputs inputs)
|
||||
(string-append "/bin/" file)) "."))
|
||||
'("config.guess" "config.sub"))))))
|
||||
'())))
|
||||
(native-inputs
|
||||
(if (and (or (target-riscv64?)
|
||||
(target-aarch64?))
|
||||
(%current-target-system))
|
||||
(list config)
|
||||
'()))
|
||||
(home-page "https://www.xiph.org/paranoia/")
|
||||
(synopsis "Audio CD reading utility")
|
||||
(description "Cdparanoia retrieves audio tracks from CDDA capable CDROM
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix download)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages text-editors)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public cook
|
||||
|
|
|
@ -484,7 +484,7 @@ operating on batches.")
|
|||
(define-public google-highway
|
||||
(package
|
||||
(name "google-highway")
|
||||
(version "1.0.5")
|
||||
(version "1.0.7")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -493,10 +493,11 @@ operating on batches.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "01ig4iqicm57nycl9q8mx1b22gvl4wj5j1vfp1jczhmrga4bca8v"))))
|
||||
(base32 "0cx38hnislqyd4vd47mlpgjpr1zmpf1fms2bj6nb00fjv53q1sb7"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on")))
|
||||
`(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on"
|
||||
"-DBUILD_SHARED_LIBS=ON")))
|
||||
(native-inputs
|
||||
(list googletest))
|
||||
(home-page "https://github.com/google/highway")
|
||||
|
|
|
@ -971,7 +971,7 @@ EUI-64, also known as MAC-48 media access control addresses.")
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "gl-generator" version))
|
||||
(uri (crate-uri "gl_generator" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
|
@ -997,7 +997,7 @@ EUI-64, also known as MAC-48 media access control addresses.")
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "gl-generator" version))
|
||||
(uri (crate-uri "gl_generator" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
|
@ -1012,7 +1012,7 @@ EUI-64, also known as MAC-48 media access control addresses.")
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "gl-generator" version))
|
||||
(uri (crate-uri "gl_generator" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
|
@ -1228,7 +1228,7 @@ EUI-64, also known as MAC-48 media access control addresses.")
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "glutin-egl-sys" version))
|
||||
(uri (crate-uri "glutin_egl_sys" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
|
@ -1252,7 +1252,7 @@ EUI-64, also known as MAC-48 media access control addresses.")
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "glutin-egl-sys" version))
|
||||
(uri (crate-uri "glutin_egl_sys" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0g81bz7ppvaksvwcw1jg553g8b2shvmnfm9ms6hixwvinj20z438"))))
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -53,7 +53,11 @@
|
|||
;; The default is OpenSSL which provides better PBKDF performance.
|
||||
"--with-crypto_backend=gcrypt"
|
||||
;; GRUB 2.06 supports LUKS2, but does it reliably support all set-ups…?
|
||||
"--with-default-luks-format=LUKS1")))
|
||||
"--with-default-luks-format=LUKS1"
|
||||
;; libgcrypt is not found otherwise when cross-compiling.
|
||||
;; <https://issues.guix.gnu.org/63864>
|
||||
(string-append "--with-libgcrypt-prefix="
|
||||
(assoc-ref %build-inputs "libgcrypt")))))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(inputs
|
||||
|
|
|
@ -627,7 +627,7 @@ error reporting, better tracing, profiling, and a debugger.")
|
|||
(define-public rr
|
||||
(package
|
||||
(name "rr")
|
||||
(version "5.6.0")
|
||||
(version "5.7.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -635,7 +635,7 @@ error reporting, better tracing, profiling, and a debugger.")
|
|||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"0sdpsd7bcbmx9gmp7lv71znzxz708wm8qxq5apbyc6hh80z4fzqz"))
|
||||
"0y50gynh3bb28vsxspn0g71b0m1mmqdgs63pbq08sv7vps35nllz"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -486,59 +486,46 @@ GTK+, lets you select a desktop session and log in to it.")
|
|||
(define-public slim
|
||||
(package
|
||||
(name "slim")
|
||||
(version "1.3.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; Used to be available from download.berlios.de.
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/slim.berlios/slim-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1"))
|
||||
(patches (search-patches "slim-config.patch"
|
||||
"slim-reset.patch"
|
||||
"slim-login.patch"
|
||||
"slim-session.patch"
|
||||
"slim-sigusr1.patch"
|
||||
"slim-display.patch"))))
|
||||
(version "1.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/slim-fork/slim-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32 "011jfmksy0kgw4z0y70mc80bm5kmz5i1sgm6krrfj0h00zak22rm"))
|
||||
(patches (search-patches "slim-config.patch"
|
||||
"slim-login.patch"
|
||||
"slim-display.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs `(("linux-pam" ,linux-pam)
|
||||
("libpng" ,libpng)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("freeglut" ,freeglut)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libxrender" ,libxrender)
|
||||
("freetype" ,freetype)
|
||||
("fontconfig" ,fontconfig)
|
||||
("libx11" ,libx11)
|
||||
("libxft" ,libxft)
|
||||
("libxmu" ,libxmu)
|
||||
("xauth" ,xauth)))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(inputs (list fontconfig
|
||||
freeglut
|
||||
freetype
|
||||
libjpeg-turbo
|
||||
libpng
|
||||
libx11
|
||||
libxft
|
||||
libxmu
|
||||
libxrandr
|
||||
libxrender
|
||||
linux-pam
|
||||
xauth))
|
||||
(native-inputs (list pkg-config))
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-new-etc-location
|
||||
(lambda _
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("/etc")
|
||||
(string-append (assoc-ref %outputs "out") "/etc"))
|
||||
(("install.*systemd.*")
|
||||
;; The build system's logic here is: if "Linux", then
|
||||
;; "systemd". Strip that.
|
||||
""))
|
||||
#t))
|
||||
(add-before 'configure 'fix-0-pointer-comparison
|
||||
(lambda _
|
||||
(substitute* "panel.cpp"
|
||||
(("WinGC < 0") "WinGC == NULL")))))
|
||||
#:configure-flags '("-DUSE_PAM=yes"
|
||||
"-DUSE_CONSOLEKIT=no")
|
||||
#:tests? #f))
|
||||
|
||||
;; This used to be at <http://slim.berlios.de/>.
|
||||
(home-page "https://github.com/iwamatsu/slim")
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-new-etc-location
|
||||
(lambda _
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("/etc")
|
||||
(string-append #$output "/etc"))))))
|
||||
#:configure-flags
|
||||
#~(list "-DUSE_PAM=yes" "-DUSE_CONSOLEKIT=no")
|
||||
#:tests? #f))
|
||||
;; The original project (https://github.com/iwamatsu/slim) has not been
|
||||
;; maintained since 2013, so we use slim-fork instead.
|
||||
(home-page "https://slim-fork.sourceforge.io/")
|
||||
(synopsis "Desktop-independent graphical login manager for X11")
|
||||
(description
|
||||
"SLiM is a Desktop-independent graphical login manager for X11, derived
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2019, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages ed)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages compression))
|
||||
|
||||
(define-public ed
|
||||
(package
|
||||
(name "ed")
|
||||
(version "1.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ed/ed-"
|
||||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0krb8rsb0cd8mgz0c5pqgnjbbrj7zjl7mf9099r8gi80k2nyza5c"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list lzip))
|
||||
(arguments
|
||||
`(#:configure-flags (list ,(string-append "CC=" (cc-for-target)))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'patch-source-shebangs 'patch-test-suite
|
||||
(lambda _
|
||||
(substitute* "testsuite/check.sh"
|
||||
(("/bin/sh") (which "sh"))))))))
|
||||
(home-page "https://www.gnu.org/software/ed/")
|
||||
(synopsis "Line-oriented text editor")
|
||||
(description
|
||||
"Ed is a line-oriented text editor: rather than offering an overview of
|
||||
a document, ed performs editing one line at a time. It can be executed both
|
||||
interactively and via shell scripts. Its method of command input allows
|
||||
complex tasks to be performed in an automated way. GNU ed offers several
|
||||
extensions over the standard utility.")
|
||||
(license gpl3+)))
|
|
@ -310,7 +310,7 @@ supported devices, as well as input/output file format support.")
|
|||
(native-inputs
|
||||
(list pkg-config
|
||||
python
|
||||
glad
|
||||
glad-0.1
|
||||
stb-image
|
||||
utf8-h))
|
||||
(inputs
|
||||
|
|
|
@ -10647,7 +10647,7 @@ sgml/html integration, and indentation (working with sgml).")
|
|||
(define-public emacs-jinx
|
||||
(package
|
||||
(name "emacs-jinx")
|
||||
(version "0.9")
|
||||
(version "1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -10657,8 +10657,7 @@ sgml/html integration, and indentation (working with sgml).")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xayrqnsws2n2p0qbdl291fva4ljp3kqrr591xbq1wr6n95hfyn5"))))
|
||||
(base32 "00rlp7iby02zd3sqigpyskph4a26r0dgp53y17hm4xjr6zqifhz5"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -17616,7 +17615,7 @@ been adapted to also work with mu4e.")
|
|||
(define-public emacs-tempel
|
||||
(package
|
||||
(name "emacs-tempel")
|
||||
(version "0.8")
|
||||
(version "1.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -17625,7 +17624,7 @@ been adapted to also work with mu4e.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"10dcf56x74jrbdzaa9kphyzq2rz5alv800dnnzpbnvwzh29lfyka"))))
|
||||
"0f1z5p6vbbjsh7cn7hqhv4c6h4awczpf14sbwpzsnwqsxsfjdh34"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
(list emacs-compat))
|
||||
|
@ -17637,8 +17636,8 @@ the Emacs Tempo library. You may also write your templates in Lisp.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-tempel-collection
|
||||
(let ((commit "cd9529b2a2fdfd49010117d2a1fc49adf9725051")
|
||||
(revision "0"))
|
||||
(let ((commit "4a1d717eb30a78680c8f4df2d71e395c846c5371")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-tempel-collection")
|
||||
(version (git-version "0.1" revision commit))
|
||||
|
@ -17650,7 +17649,7 @@ the Emacs Tempo library. You may also write your templates in Lisp.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"02x6jq5k7fa46ni64qf8wrmkay6zfbmkildb727zs6wchmyg2znn"))))
|
||||
"0ifmzn5d9mpsjwvg2ir0sy3r4czxa7d6j97l8rrp8ai7jqvydadm"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs (list emacs-tempel))
|
||||
(home-page "https://github.com/Crandel/tempel-collection")
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
|
||||
;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
|
||||
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -189,7 +190,7 @@ rendering modes are: Bitmaps, Anti-aliased pixmaps, Texture maps, Outlines,
|
|||
Polygon meshes, and Extruded polygon meshes.")
|
||||
(license license:x11)))
|
||||
|
||||
(define-public glad
|
||||
(define-public glad-0.1
|
||||
(package
|
||||
(name "glad")
|
||||
(version "0.1.36")
|
||||
|
@ -208,19 +209,45 @@ Polygon meshes, and Extruded polygon meshes.")
|
|||
"0m55ya1zrmg6n2cljkajy80ilmi5sblln8742fm0k1sw9k7hzn8n"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'install-cmakelists.txt
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(share (string-append out "/share/" ,name)))
|
||||
(install-file "CMakeLists.txt" share)))))))
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'install-cmakelists.txt
|
||||
(lambda _
|
||||
(let ((share (string-append #$output "/share/"
|
||||
#$(package-name this-package))))
|
||||
(install-file "CMakeLists.txt" share)))))))
|
||||
(home-page "https://github.com/Dav1dde/glad")
|
||||
(synopsis "Multi-language GL/GLES/EGL/GLX/WGL loader generator")
|
||||
(description "Glad uses the official Khronos XML specifications to
|
||||
generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public glad
|
||||
(package
|
||||
(inherit glad-0.1)
|
||||
(name "glad")
|
||||
(version "2.0.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Dav1dde/glad")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1pam6imhcmcyqrqi6wzzxprb23y8x6zdbvsjavnz26k72i9dbbja"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments glad-0.1)
|
||||
((#:phases phases '%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'install-cmakelists.txt
|
||||
(lambda _
|
||||
(let ((share (string-append #$output "/share/"
|
||||
#$(package-name this-package))))
|
||||
(install-file "cmake/CMakeLists.txt" share))))))))
|
||||
(propagated-inputs (list python-jinja2))))
|
||||
|
||||
(define-public s2tc
|
||||
(package
|
||||
(name "s2tc")
|
||||
|
|
|
@ -7562,7 +7562,7 @@ metadata in photo and video files of various formats.")
|
|||
libwebp
|
||||
libxml2
|
||||
sqlite
|
||||
webkitgtk))
|
||||
webkitgtk-for-gtk3))
|
||||
(home-page "https://wiki.gnome.org/Apps/Shotwell")
|
||||
(synopsis "Photo manager for GNOME 3")
|
||||
(description
|
||||
|
@ -11812,38 +11812,36 @@ functionality.")
|
|||
"09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:glib-or-gtk? #t
|
||||
#:configure-flags
|
||||
;; Ensure the RUNPATH contains all installed library locations.
|
||||
(list (string-append "-Dc_link_args=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/gthumb/extensions")
|
||||
(string-append "-Dcpp_link_args=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/gthumb/extensions"))))
|
||||
(list
|
||||
#:glib-or-gtk? #t
|
||||
#:configure-flags
|
||||
;; Ensure the RUNPATH contains all installed library locations.
|
||||
#~(list (string-append "-Dc_link_args=-Wl,-rpath=" #$output
|
||||
"/lib/gthumb/extensions")
|
||||
(string-append "-Dcpp_link_args=-Wl,-rpath=" #$output
|
||||
"/lib/gthumb/extensions"))))
|
||||
(native-inputs
|
||||
`(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
|
||||
("glib:bin" ,glib "bin") ; for glib-compile-resources
|
||||
("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python)))
|
||||
(list desktop-file-utils ; for update-desktop-database
|
||||
`(,glib "bin") ; for glib-compile-resources
|
||||
`(,gtk+ "bin") ; for gtk-update-icon-cache
|
||||
intltool
|
||||
itstool
|
||||
pkg-config
|
||||
python))
|
||||
(inputs
|
||||
`(("clutter" ,clutter)
|
||||
("clutter-gst" ,clutter-gst)
|
||||
("clutter-gtk" ,clutter-gtk)
|
||||
("colord" ,colord)
|
||||
("exiv2" ,exiv2)
|
||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
||||
("gstreamer" ,gstreamer)
|
||||
("gtk" ,gtk+)
|
||||
("libheif" ,libheif)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libraw" ,libraw)
|
||||
("librsvg" ,(librsvg-for-system))
|
||||
("libtiff" ,libtiff)
|
||||
("libwebp" ,libwebp)))
|
||||
(list clutter
|
||||
clutter-gst
|
||||
clutter-gtk
|
||||
colord
|
||||
exiv2
|
||||
gsettings-desktop-schemas
|
||||
gtk+
|
||||
libheif
|
||||
libjpeg-turbo
|
||||
libraw
|
||||
(librsvg-for-system)
|
||||
libtiff
|
||||
libwebp))
|
||||
(home-page "https://wiki.gnome.org/Apps/Gthumb")
|
||||
(synopsis "GNOME image viewer and browser")
|
||||
(description "GThumb is an image viewer, browser, organizer, editor and
|
||||
|
|
|
@ -70,7 +70,6 @@
|
|||
#:use-module (gnu packages swig)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages tor)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
|
@ -1123,7 +1122,7 @@ files, to verify signatures, and to manage the private and public keys.")
|
|||
perl-try-tiny
|
||||
perl-type-tiny
|
||||
perl-types-path-tiny
|
||||
torsocks))
|
||||
(@ (gnu packages tor) torsocks))) ;avoid dependency loop
|
||||
(native-inputs
|
||||
(list perl-file-which
|
||||
perl-gnupg-interface
|
||||
|
|
|
@ -617,7 +617,7 @@ official designation is ISO/IEC 29199-2). This library is an implementation of t
|
|||
(define-public jpegoptim
|
||||
(package
|
||||
(name "jpegoptim")
|
||||
(version "1.4.7")
|
||||
(version "1.5.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -626,35 +626,17 @@ official designation is ISO/IEC 29199-2). This library is an implementation of t
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "06f6d08xvmsiki4mc1qs985gsjqmsxx793a93b72y25q84wbg9x9"))))
|
||||
(base32 "18zq7ada7n17vgkkcixpisxsbs7i8xp5qjp78hyyvmmb9dqy97fy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
,@(if (and (target-riscv64?)
|
||||
(%current-target-system))
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'update-config-scripts
|
||||
(lambda* (#:key native-inputs inputs #:allow-other-keys)
|
||||
(for-each (lambda (file)
|
||||
(install-file
|
||||
(search-input-file
|
||||
(or native-inputs inputs)
|
||||
(string-append "/bin/" file)) "./tools"))
|
||||
'("config.guess" "config.sub"))))))
|
||||
'())))
|
||||
(list #:tests? #f))
|
||||
(inputs (list libjpeg-turbo))
|
||||
(native-inputs
|
||||
(if (and (target-riscv64?)
|
||||
(%current-target-system))
|
||||
(list config)
|
||||
'()))
|
||||
(synopsis "Optimize JPEG images")
|
||||
(description
|
||||
"jpegoptim provides lossless optimization (based on optimizing
|
||||
the Huffman tables) and \"lossy\" optimization based on setting
|
||||
maximum quality factor.")
|
||||
(license license:gpl2+)
|
||||
(license license:gpl3+)
|
||||
(home-page "https://www.kokkonen.net/tjko/projects.html#jpegoptim")))
|
||||
|
||||
(define-public libicns
|
||||
|
|
|
@ -494,7 +494,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
;; The current "stable" kernels. That is, the most recently released major
|
||||
;; versions that are still supported upstream.
|
||||
|
||||
(define-public linux-libre-6.6-version "6.6.7")
|
||||
(define-public linux-libre-6.6-version "6.6.8")
|
||||
(define-public linux-libre-6.6-gnu-revision "gnu")
|
||||
(define deblob-scripts-6.6
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -504,7 +504,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1hg3ck1j8288fhlhcvhgs1zzwh3i62nfvphw7x3vsaqr75kiwbjp")))
|
||||
(define-public linux-libre-6.6-pristine-source
|
||||
(let ((version linux-libre-6.6-version)
|
||||
(hash (base32 "0hfqdyxl4nqmm4pspfm1ang8616dbsaj0d968c0186ch0738xrhc")))
|
||||
(hash (base32 "05i4ayj9wyjkd1s8ixx7bxwcyagqyx8rhj1zvbc3cjqyw4sc8djh")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-6.6)))
|
||||
|
@ -512,7 +512,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
;; The "longterm" kernels — the older releases with long-term upstream support.
|
||||
;; Here are the support timelines:
|
||||
;; <https://www.kernel.org/category/releases.html>
|
||||
(define-public linux-libre-6.1-version "6.1.68")
|
||||
(define-public linux-libre-6.1-version "6.1.69")
|
||||
(define-public linux-libre-6.1-gnu-revision "gnu")
|
||||
(define deblob-scripts-6.1
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -522,12 +522,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1hdibv43xbn1lv83i6qjgfmf1bvqxvq17fryfsq4r4sjgs9212js")))
|
||||
(define-public linux-libre-6.1-pristine-source
|
||||
(let ((version linux-libre-6.1-version)
|
||||
(hash (base32 "1qc4cwqlfni9i6mzh6arghdsd842hp9lb7s832dxw1p261mg4prn")))
|
||||
(hash (base32 "0hdm28k49kmy9r96hckps0bvvaq9m06l72n8ih305rccs6a2cgby")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-6.1)))
|
||||
|
||||
(define-public linux-libre-5.15-version "5.15.143")
|
||||
(define-public linux-libre-5.15-version "5.15.144")
|
||||
(define-public linux-libre-5.15-gnu-revision "gnu")
|
||||
(define deblob-scripts-5.15
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -537,12 +537,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1idjrn2w8jrixj8ifkk1awxyyq5042nc4p2mld4rda96azlnp948")))
|
||||
(define-public linux-libre-5.15-pristine-source
|
||||
(let ((version linux-libre-5.15-version)
|
||||
(hash (base32 "00lyv7zsj97mkg9i7dkb1a6km22mnr0qr687d9zz4ckjq1pb2sq9")))
|
||||
(hash (base32 "0fsv18q64q17ad7mq818wfhb11dax4bdvbvqyk5ilxyfmypsylzh")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.15)))
|
||||
|
||||
(define-public linux-libre-5.10-version "5.10.204")
|
||||
(define-public linux-libre-5.10-version "5.10.205")
|
||||
(define-public linux-libre-5.10-gnu-revision "gnu1")
|
||||
(define deblob-scripts-5.10
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -552,12 +552,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "0xrrnmb5kcc5r21bdm24aq0fnkk1imn367c1cxlj78b6l6gigx4b")))
|
||||
(define-public linux-libre-5.10-pristine-source
|
||||
(let ((version linux-libre-5.10-version)
|
||||
(hash (base32 "1vnamiyr378q52xgkg7kvpx80zck729dim77vp06a3q6n580g5gz")))
|
||||
(hash (base32 "0qw8g0h4k0b4dyvspbj51cwr68ihwjzsi2b2261ipy3l1nl1fln5")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.10)))
|
||||
|
||||
(define-public linux-libre-5.4-version "5.4.264")
|
||||
(define-public linux-libre-5.4-version "5.4.265")
|
||||
(define-public linux-libre-5.4-gnu-revision "gnu1")
|
||||
(define deblob-scripts-5.4
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -567,12 +567,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1")))
|
||||
(define-public linux-libre-5.4-pristine-source
|
||||
(let ((version linux-libre-5.4-version)
|
||||
(hash (base32 "1c5n47dq9khb15hz24a000k3hj913vv1dda6famnm8wpjbfr176k")))
|
||||
(hash (base32 "05cvvwjiznn7hfd02qklklalg0chahvh5v18w64lcva6kzj9kbjd")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.4)))
|
||||
|
||||
(define-public linux-libre-4.19-version "4.19.302")
|
||||
(define-public linux-libre-4.19-version "4.19.303")
|
||||
(define-public linux-libre-4.19-gnu-revision "gnu1")
|
||||
(define deblob-scripts-4.19
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -582,12 +582,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl")))
|
||||
(define-public linux-libre-4.19-pristine-source
|
||||
(let ((version linux-libre-4.19-version)
|
||||
(hash (base32 "1kkkpm34p5rq0iijzrzwaq0cb62w543argargw5p1wzg8803rlsk")))
|
||||
(hash (base32 "0dlbl47xs7z4yf9cxbxqzd7zs1f9070jr6ck231wgppa6lwwwb82")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.19)))
|
||||
|
||||
(define-public linux-libre-4.14-version "4.14.333")
|
||||
(define-public linux-libre-4.14-version "4.14.334")
|
||||
(define-public linux-libre-4.14-gnu-revision "gnu1")
|
||||
(define deblob-scripts-4.14
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -597,7 +597,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd")))
|
||||
(define-public linux-libre-4.14-pristine-source
|
||||
(let ((version linux-libre-4.14-version)
|
||||
(hash (base32 "0j5nrankrhi56qzmyjg1pznqx1zgk5f7cfa154smjbn3zlm7lcv6")))
|
||||
(hash (base32 "0iaaqdkszmfarvjfszc9rf7y9zsv3w82934xmvmzmsbiz86547ca")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.14)))
|
||||
|
@ -9451,6 +9451,19 @@ providing convenience for writing the daemon's modules as well as external
|
|||
tools for managing PipeWire.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public wireplumber-minimal
|
||||
(let ((base wireplumber))
|
||||
(package
|
||||
(inherit base)
|
||||
(name "wireplumber-minimal")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base)
|
||||
((#:configure-flags flags ''())
|
||||
#~(cons "-Delogind=disabled" #$flags))))
|
||||
(inputs
|
||||
(modify-inputs (package-inputs base)
|
||||
(delete "elogind"))))))
|
||||
|
||||
(define-public ell
|
||||
(package
|
||||
(name "ell")
|
||||
|
|
|
@ -67,7 +67,6 @@
|
|||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages dbm)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gettext)
|
||||
|
@ -95,6 +94,7 @@
|
|||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages tex)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages text-editors)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages xorg)
|
||||
|
|
|
@ -3109,7 +3109,7 @@ advanced research.")
|
|||
(define-public tensorflow-lite
|
||||
(package
|
||||
(name "tensorflow-lite")
|
||||
(version "2.13.0")
|
||||
(version "2.13.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -3119,7 +3119,7 @@ advanced research.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"07g6vlrs0aayrg2mfdl15gxg5dy103wx2xlqkran15dib40nkbj6"))
|
||||
"09mfskmpvpbq919wibnw3bnhi1y3hkx3qrzm72gdr0gsivn1yb3w"))
|
||||
(patches (search-patches "tensorflow-lite-unbundle.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -4474,7 +4474,7 @@ implemented in ANSI C, and MPI for communications.")
|
|||
(define-public scotch
|
||||
(package
|
||||
(name "scotch")
|
||||
(version "7.0.1")
|
||||
(version "7.0.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -4483,7 +4483,7 @@ implemented in ANSI C, and MPI for communications.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1fvgxd3ipl5xswswyadvxvlcgv6an8c229ispnlksgnlwphg10ig"))))
|
||||
(base32 "0rbc51albpd2923dkirpkj8rfkic6rsvwqqnv1mmsk391zhk3amr"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
(list zlib))
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2015-2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages nano)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public nano
|
||||
(package
|
||||
(name "nano")
|
||||
(version "7.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "09j5gb44yiv18fvn0iy17jnl9d5lh3gkry4kqv776a5xd0kl9ww6"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list gettext-minimal ncurses))
|
||||
(home-page "https://www.nano-editor.org/")
|
||||
(synopsis "Small, user-friendly console text editor")
|
||||
(description
|
||||
"GNU nano is a small and simple text editor for use in a terminal. Besides
|
||||
basic editing, it supports: undo/redo, syntax highlighting, spell checking,
|
||||
justifying, auto-indentation, bracket matching, interactive search-and-replace
|
||||
(with regular expressions), and the editing of multiple files.")
|
||||
(license gpl3+))) ; some files are under GPLv2+
|
|
@ -3640,13 +3640,10 @@ and check if the WLAN key or the master key was transmitted unencrypted.")
|
|||
(uri (string-append "https://www.inet.no/dante/files/dante-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1"))))
|
||||
(base32 "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1"))
|
||||
(patches (search-patches "dante-non-darwin.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; XXX: The dynamic socks library doesn't work with 'libc.so' (GNU ld
|
||||
;; script). When preloading is enabled, 'sockd' failed with:
|
||||
;; … Failed to open library "libc.so": …: invalid ELF header
|
||||
'(#:configure-flags '("--disable-preload")))
|
||||
(arguments '(#:configure-flags '("--with-libc=libc.so.6")))
|
||||
(home-page "https://www.inet.no/dante/")
|
||||
(synopsis "SOCKS server and client")
|
||||
(description "Dante is a SOCKS client and server implementation. It can
|
||||
|
|
|
@ -347,6 +347,35 @@ random number generator.")
|
|||
Javascript.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public node-normalize-path
|
||||
(package
|
||||
(name "node-normalize-path")
|
||||
(version "3.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jonschlinkert/normalize-path")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1l079szbgw2b9i5zx6zbwvxiivssa55a4pwfy4m7n6rdkcmsxf7f"))))
|
||||
(build-system node-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'patch-dependencies 'delete-dependencies
|
||||
(lambda _
|
||||
(delete-dependencies '("gulp-format-md" "mocha")))))))
|
||||
(native-inputs (list node-minimist))
|
||||
(home-page "https://github.com/jonschlinkert/normalize-path")
|
||||
(synopsis "Normalize slashes in a file path")
|
||||
(description
|
||||
"Normalize slashes in a file path to be POSIX/Unix-like forward slashes.
|
||||
Can also condense repeated slashes to a single slash and remove trailing
|
||||
slashes, unless disabled.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public node-oop
|
||||
;; No releases, last commit was February 2013.
|
||||
(let ((commit "f9d87cda0958886955c14a0a716e57021ed295dc")
|
||||
|
@ -467,6 +496,48 @@ written in Javascript.")
|
|||
resolve all imports.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public node-safe-stable-stringify
|
||||
(package
|
||||
(name "node-safe-stable-stringify")
|
||||
(version "2.4.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/BridgeAR/safe-stable-stringify")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "008adig8j13rn2a21ngnp770y4zz6yq176ix5rkskjbb8g2qwapg"))))
|
||||
(build-system node-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'patch-dependencies 'delete-dependencies
|
||||
(lambda _
|
||||
(delete-dependencies '("benchmark" "clone"
|
||||
"fast-json-stable-stringify"
|
||||
"fast-safe-stringify"
|
||||
"fast-stable-stringify"
|
||||
"faster-stable-stringify"
|
||||
"fastest-stable-stringify"
|
||||
"json-stable-stringify"
|
||||
"json-stringify-deterministic"
|
||||
"json-stringify-safe"
|
||||
"standard"
|
||||
"tap"
|
||||
"typescript"
|
||||
"@types/node"
|
||||
"@types/json-stable-stringify")))))))
|
||||
(home-page "https://github.com/BridgeAR/safe-stable-stringify")
|
||||
(synopsis "Serialization of javascript objects")
|
||||
(description
|
||||
"Safe, deterministic and fast serialization alternative to JSON.stringify.
|
||||
Gracefully handles circular structures and bigint instead of throwing.
|
||||
Optional custom circular values, deterministic behavior or strict JSON
|
||||
compatibility check.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public node-stack-trace
|
||||
;; There have been improvements since the last release.
|
||||
(let ((commit "4fd379ee78965ce7ce8820b436f1b1b590d5dbcf")
|
||||
|
|
|
@ -738,14 +738,14 @@ source files.")
|
|||
(define-public node-lts
|
||||
(package
|
||||
(inherit node)
|
||||
(version "18.18.2")
|
||||
(version "18.19.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://nodejs.org/dist/v" version
|
||||
"/node-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ci1faxjsbp0lv05kskh5anfljn6zawqcf7dawiby5d5qg7x572h"))
|
||||
"05qc1dgmrms73073n4l36jrcxf6ygqj959d3cngy5qclrg0isk6x"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -1510,8 +1510,8 @@ environments.")
|
|||
"0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
|
||||
|
||||
(define-public guix-build-coordinator
|
||||
(let ((commit "78df0b3a9f4f27df8341da36d4dfa8e49dfad900")
|
||||
(revision "92"))
|
||||
(let ((commit "e4af682452580298b34681d37818a16771a17c66")
|
||||
(revision "93"))
|
||||
(package
|
||||
(name "guix-build-coordinator")
|
||||
(version (git-version "0" revision commit))
|
||||
|
@ -1522,7 +1522,7 @@ environments.")
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"06xp38k6yfvsvl20hrqvmarpysd07nkbj53an729lqr50qdd4jcq"))
|
||||
"1i8x9nfpvg832lxwbpjl1kadldpkcnjlxdxl4c5jqx2hz680ylf3"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -1570,6 +1570,9 @@ environments.")
|
|||
,@(or (and=> (assoc-ref inputs "sqitch")
|
||||
list)
|
||||
'())))
|
||||
`("GUIX_LOCPATH" ":" prefix
|
||||
(,(string-append (assoc-ref inputs "glibc-utf8-locales")
|
||||
"/lib/locale")))
|
||||
`("GUILE_LOAD_PATH" ":" prefix
|
||||
(,scm ,(string-join
|
||||
(map (lambda (input)
|
||||
|
@ -1608,6 +1611,7 @@ environments.")
|
|||
(list (first (assoc-ref (package-native-inputs guix) "guile"))
|
||||
sqlite
|
||||
bash-minimal
|
||||
(libc-utf8-locales-for-target)
|
||||
sqitch))
|
||||
(propagated-inputs
|
||||
(list guile-prometheus
|
||||
|
@ -1647,7 +1651,8 @@ outputs of those builds.")
|
|||
(first (assoc-ref (package-native-inputs guix) "guile"))))
|
||||
(inputs
|
||||
(list (first (assoc-ref (package-native-inputs guix) "guile"))
|
||||
bash-minimal))
|
||||
bash-minimal
|
||||
(libc-utf8-locales-for-target)))
|
||||
(propagated-inputs
|
||||
(list guile-prometheus
|
||||
guile-gcrypt
|
||||
|
|
|
@ -1123,7 +1123,7 @@ It supports both vim-like keybindings and the mouse.")
|
|||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:make-flags (list "CC=gcc"
|
||||
#:make-flags (list (string-append "CC=" ,(cc-for-target))
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
"LIBRARY_REL=lib"
|
||||
(string-append "ARGON2_VERSION=" ,version)
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
Disable runtime check for Darwin so we don't have to substitute uname.
|
||||
--- a/bin/socksify.in
|
||||
+++ b/bin/socksify.in
|
||||
@@ -65,11 +65,6 @@
|
||||
unset FULLPATH
|
||||
fi
|
||||
|
||||
-#use "FLAT_NAMESPACE" on Darwin in attempt to match LD_PRELOAD behavior
|
||||
-if test x`uname` = xDarwin; then
|
||||
- export DYLD_FORCE_FLAT_NAMESPACE=t
|
||||
-fi
|
||||
-
|
||||
#dlib/Makefile.am libtool flags should produce a predictable library name
|
||||
#(ending in SOLIB_POSTFIX).
|
||||
LIBRARY="${SOCKS_LIBRARY:-${FULLPATH}libdsocks.@SOLIB_POSTFIX@}"
|
|
@ -1,27 +1,36 @@
|
|||
Allow the configuration file and theme directory to be specified at run time.
|
||||
Patch by Eelco Dolstra, from Nixpkgs.
|
||||
|
||||
--- slim-1.3.6/app.cpp 2013-10-02 00:38:05.000000000 +0200
|
||||
+++ slim-1.3.6/app.cpp 2013-10-15 11:02:55.629263422 +0200
|
||||
@@ -200,7 +200,9 @@
|
||||
|
||||
/* Read configuration and theme */
|
||||
cfg = new Cfg;
|
||||
- cfg->readConf(CFGFILE);
|
||||
+ char *cfgfile = getenv("SLIM_CFGFILE");
|
||||
+ if (!cfgfile) cfgfile = CFGFILE;
|
||||
+ cfg->readConf(cfgfile);
|
||||
Patch by Eelco Dolstra, from Nixpkgs.
|
||||
---
|
||||
app.cpp | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/app.cpp b/app.cpp
|
||||
index 237477d..735df9c 100644
|
||||
--- a/app.cpp
|
||||
+++ b/app.cpp
|
||||
@@ -285,7 +285,9 @@ void App::Run()
|
||||
if ( cfg == 0 )
|
||||
{
|
||||
cfg = new Cfg;
|
||||
- cfg->readConf(CFGFILE);
|
||||
+ const char* cfgfile = getenv("SLIM_CFGFILE");
|
||||
+ if (!cfgfile) cfgfile = CFGFILE;
|
||||
+ cfg->readConf(cfgfile);
|
||||
}
|
||||
string themebase = "";
|
||||
string themefile = "";
|
||||
string themedir = "";
|
||||
@@ -208,7 +210,9 @@
|
||||
if (testing) {
|
||||
themeName = testtheme;
|
||||
} else {
|
||||
@@ -297,7 +299,9 @@ void App::Run()
|
||||
}
|
||||
else
|
||||
{
|
||||
- themebase = string(THEMESDIR) + "/";
|
||||
+ char *themesdir = getenv("SLIM_THEMESDIR");
|
||||
+ const char* themesdir = getenv("SLIM_THEMESDIR");
|
||||
+ if (!themesdir) themesdir = THEMESDIR;
|
||||
+ themebase = string(themesdir) + "/";
|
||||
themeName = cfg->getOption("current_theme");
|
||||
string::size_type pos;
|
||||
if ((pos = themeName.find(",")) != string::npos) {
|
||||
if ((pos = themeName.find(",")) != string::npos)
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
|
@ -1,39 +1,52 @@
|
|||
Add "display_name" configuration option and use its value instead of
|
||||
the hard coded one.
|
||||
Add "display_name" configuration option and use its value instead of the hard
|
||||
coded one.
|
||||
|
||||
Patch by Diego N. Barbato
|
||||
---
|
||||
app.cpp | 23 ++++++++++-------------
|
||||
cfg.cpp | 1 +
|
||||
switchuser.cpp | 2 +-
|
||||
3 files changed, 12 insertions(+), 14 deletions(-)
|
||||
|
||||
--- a/app.cpp 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/app.cpp 2019-04-27 13:48:23.479133531 +0200
|
||||
@@ -190,7 +190,13 @@
|
||||
}
|
||||
diff --git a/app.cpp b/app.cpp
|
||||
index b840e60..4f72da0 100644
|
||||
--- a/app.cpp
|
||||
+++ b/app.cpp
|
||||
@@ -270,7 +270,16 @@ App::App(int argc, char** argv)
|
||||
|
||||
void App::Run() {
|
||||
void App::Run()
|
||||
{
|
||||
- DisplayName = DISPLAY;
|
||||
+ /* Read configuration */
|
||||
+ cfg = new Cfg;
|
||||
+ char *cfgfile = getenv("SLIM_CFGFILE");
|
||||
+ if (!cfgfile) cfgfile = CFGFILE;
|
||||
+ cfg->readConf(cfgfile);
|
||||
+ if ( cfg == 0 )
|
||||
+ {
|
||||
+ cfg = new Cfg;
|
||||
+ const char *cfgfile = getenv("SLIM_CFGFILE");
|
||||
+ if (!cfgfile) cfgfile = CFGFILE;
|
||||
+ cfg->readConf(cfgfile);
|
||||
+
|
||||
+ DisplayName = cfg->getOption("display_name").c_str();
|
||||
+ DisplayName = cfg->getOption("display_name").c_str();
|
||||
+ }
|
||||
|
||||
#ifdef XNEST_DEBUG
|
||||
char* p = getenv("DISPLAY");
|
||||
@@ -200,11 +206,7 @@
|
||||
@@ -281,14 +287,7 @@ void App::Run()
|
||||
}
|
||||
#endif
|
||||
|
||||
- /* Read configuration and theme */
|
||||
- cfg = new Cfg;
|
||||
- char *cfgfile = getenv("SLIM_CFGFILE");
|
||||
- if (!cfgfile) cfgfile = CFGFILE;
|
||||
- cfg->readConf(cfgfile);
|
||||
+ /* Read theme */
|
||||
- if ( cfg == 0 )
|
||||
- {
|
||||
- cfg = new Cfg;
|
||||
- const char* cfgfile = getenv("SLIM_CFGFILE");
|
||||
- if (!cfgfile) cfgfile = CFGFILE;
|
||||
- cfg->readConf(cfgfile);
|
||||
- }
|
||||
+ /* Read theme */
|
||||
string themebase = "";
|
||||
string themefile = "";
|
||||
string themedir = "";
|
||||
@@ -911,9 +913,7 @@
|
||||
@@ -1115,9 +1114,7 @@ int App::StartServer()
|
||||
static const int MAX_XSERVER_ARGS = 256;
|
||||
static char* server[MAX_XSERVER_ARGS+2] = { NULL };
|
||||
server[0] = (char *)cfg->getOption("default_xserver").c_str();
|
||||
|
@ -44,7 +57,7 @@ Patch by Diego N. Barbato
|
|||
char* args = new char[argOption.length()+2]; /* NULL plus vt */
|
||||
strcpy(args, argOption.c_str());
|
||||
|
||||
@@ -1233,7 +1233,7 @@
|
||||
@@ -1424,7 +1421,7 @@ void App::CreateServerAuth()
|
||||
authfile = cfg->getOption("authfile");
|
||||
remove(authfile.c_str());
|
||||
putenv(StrConcat("XAUTHORITY=", authfile.c_str()));
|
||||
|
@ -53,9 +66,11 @@ Patch by Diego N. Barbato
|
|||
authfile);
|
||||
}
|
||||
|
||||
--- a/cfg.cpp 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/cfg.cpp 2019-04-27 13:49:40.511773743 +0200
|
||||
@@ -31,6 +31,7 @@
|
||||
diff --git a/cfg.cpp b/cfg.cpp
|
||||
index 37fb10d..a0c9bf1 100644
|
||||
--- a/cfg.cpp
|
||||
+++ b/cfg.cpp
|
||||
@@ -40,6 +40,7 @@ Cfg::Cfg()
|
||||
/* Configuration options */
|
||||
options.insert(option("default_path","/bin:/usr/bin:/usr/local/bin"));
|
||||
options.insert(option("default_xserver","/usr/bin/X"));
|
||||
|
@ -63,13 +78,18 @@ Patch by Diego N. Barbato
|
|||
options.insert(option("xserver_arguments",""));
|
||||
options.insert(option("numlock",""));
|
||||
options.insert(option("daemon",""));
|
||||
--- a/switchuser.cpp 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/switchuser.cpp 2019-04-27 13:50:19.380096651 +0200
|
||||
@@ -54,6 +54,6 @@
|
||||
diff --git a/switchuser.cpp b/switchuser.cpp
|
||||
index ca936ae..255f5d9 100644
|
||||
--- a/switchuser.cpp
|
||||
+++ b/switchuser.cpp
|
||||
@@ -69,6 +69,6 @@ void SwitchUser::SetClientAuth(const char* mcookie)
|
||||
string home = string(Pw->pw_dir);
|
||||
string authfile = home + "/.Xauthority";
|
||||
remove(authfile.c_str());
|
||||
- Util::add_mcookie(mcookie, ":0", cfg->getOption("xauth_path"),
|
||||
+ Util::add_mcookie(mcookie, displayName.c_str(), cfg->getOption("xauth_path"),
|
||||
+ Util::add_mcookie(mcookie, cfg->getOption("display_name").c_str(), cfg->getOption("xauth_path"),
|
||||
authfile);
|
||||
}
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
Do not reset chosen session and maintain the session-choser dialog after a
|
||||
failed login attempt.
|
||||
|
||||
Patch by E. Bavier
|
||||
|
||||
--- slim-1.3.6/panel.cpp.orig 1969-12-31 18:00:00.000000000 -0600
|
||||
+++ slim-1.3.6/panel.cpp 2016-10-17 17:00:07.259649063 -0500
|
||||
@@ -260,13 +260,12 @@
|
||||
}
|
||||
|
||||
void Panel::ClearPanel() {
|
||||
- session_name = "";
|
||||
- session_exec = "";
|
||||
Reset();
|
||||
XClearWindow(Dpy, Root);
|
||||
XClearWindow(Dpy, Win);
|
||||
Cursor(SHOW);
|
||||
ShowText();
|
||||
+ ShowSession();
|
||||
XFlush(Dpy);
|
||||
}
|
||||
|
||||
@@ -760,9 +760,7 @@
|
||||
pair<string,string> ses = cfg->nextSession();
|
||||
session_name = ses.first;
|
||||
session_exec = ses.second;
|
||||
- if (session_name.size() > 0) {
|
||||
- ShowSession();
|
||||
- }
|
||||
+ ShowSession();
|
||||
}
|
||||
|
||||
/* Display session type on the screen */
|
|
@ -1,17 +0,0 @@
|
|||
Exit after the user's session has finished. This works around slim's broken
|
||||
PAM session handling (see
|
||||
http://developer.berlios.de/bugs/?func=detailbug&bug_id=19102&group_id=2663).
|
||||
|
||||
Patch by Eelco Dolstra, from Nixpkgs.
|
||||
|
||||
--- slim-1.3.6/app.cpp 2013-10-15 11:02:55.629263422 +0200
|
||||
+++ slim-1.3.6/app.cpp 2013-10-15 13:00:10.141210784 +0200
|
||||
@@ -816,7 +822,7 @@
|
||||
StopServer();
|
||||
RemoveLock();
|
||||
while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens */
|
||||
- Run();
|
||||
+ exit(OK_EXIT);
|
||||
}
|
||||
|
||||
void App::KillAllClients(Bool top) {
|
|
@ -1,33 +0,0 @@
|
|||
This patch fixes SLiM so it really waits for the X server to be ready
|
||||
before attempting to connect to it. Indeed, the X server notices that
|
||||
its parent process has a handler for SIGUSR1, and consequently sends it
|
||||
SIGUSR1 when it's ready to accept connections.
|
||||
|
||||
The problem was that SLiM doesn't pay attention to SIGUSR1. So in practice,
|
||||
if X starts slowly, then SLiM gets ECONNREFUSED a couple of time on
|
||||
/tmp/.X11-unix/X0, then goes on trying to connect to localhost:6000,
|
||||
where nobody answers; eventually, it times out and tries again on
|
||||
/tmp/.X11-unix/X0, and finally it shows up on the screen.
|
||||
|
||||
Patch by L. Courtès.
|
||||
|
||||
--- slim-1.3.6/app.cpp 2014-02-05 15:27:20.000000000 +0100
|
||||
+++ slim-1.3.6/app.cpp 2014-02-09 22:42:04.000000000 +0100
|
||||
@@ -119,7 +119,9 @@ void CatchSignal(int sig) {
|
||||
exit(ERR_EXIT);
|
||||
}
|
||||
|
||||
+static volatile int got_sigusr1 = 0;
|
||||
void User1Signal(int sig) {
|
||||
+ got_sigusr1 = 1;
|
||||
signal(sig, User1Signal);
|
||||
}
|
||||
|
||||
@@ -884,6 +886,7 @@ int App::WaitForServer() {
|
||||
int ncycles = 120;
|
||||
int cycles;
|
||||
|
||||
+ while (!got_sigusr1);
|
||||
for(cycles = 0; cycles < ncycles; cycles++) {
|
||||
if((Dpy = XOpenDisplay(DisplayName))) {
|
||||
XSetIOErrorHandler(xioerror);
|
|
@ -8,8 +8,10 @@ This reverts commit b4f3cc2c42d97967a3a3c8796c340f6b07ecccac.
|
|||
Addendum 2022-12-08, Ricardo Wurmus: This patch has been updated to introduce
|
||||
CONFIG_FIT_PRELOAD to remove fit_pre_load_data, which depends on openssl.
|
||||
|
||||
Addendum 2023-10-17, Herman Rimm: Update patch for u-boot v2023.10.
|
||||
|
||||
diff --git a/tools/kwbimage.c b/tools/kwbimage.c
|
||||
index 94b7685392..eec599b0ee 100644
|
||||
index 4dce495ff0..976174ae77 100644
|
||||
--- a/tools/kwbimage.c
|
||||
+++ b/tools/kwbimage.c
|
||||
@@ -19,6 +19,7 @@
|
||||
|
@ -38,7 +40,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
|
||||
struct boot_mode {
|
||||
unsigned int id;
|
||||
@@ -278,6 +282,8 @@ image_count_options(unsigned int optiontype)
|
||||
@@ -281,6 +285,8 @@ image_count_options(unsigned int optiontype)
|
||||
return count;
|
||||
}
|
||||
|
||||
|
@ -47,7 +49,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
static int image_get_csk_index(void)
|
||||
{
|
||||
struct image_cfg_element *e;
|
||||
@@ -288,6 +294,7 @@ static int image_get_csk_index(void)
|
||||
@@ -291,6 +297,7 @@ static int image_get_csk_index(void)
|
||||
|
||||
return e->csk_idx;
|
||||
}
|
||||
|
@ -55,7 +57,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
|
||||
static bool image_get_spezialized_img(void)
|
||||
{
|
||||
@@ -432,6 +439,7 @@ static uint8_t baudrate_to_option(unsigned int baudrate)
|
||||
@@ -435,6 +442,7 @@ static uint8_t baudrate_to_option(unsigned int baudrate)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,29 +65,31 @@ index 94b7685392..eec599b0ee 100644
|
|||
static void kwb_msg(const char *fmt, ...)
|
||||
{
|
||||
if (verbose_mode) {
|
||||
@@ -926,6 +934,7 @@ static int kwb_dump_fuse_cmds(struct secure_hdr_v1 *sec_hdr)
|
||||
@@ -929,6 +937,7 @@ static int kwb_dump_fuse_cmds(struct secure_hdr_v1 *sec_hdr)
|
||||
done:
|
||||
return ret;
|
||||
}
|
||||
+#endif
|
||||
|
||||
static size_t image_headersz_align(size_t headersz, uint8_t blockid)
|
||||
static int image_fill_xip_header(void *image, struct image_tool_params *params)
|
||||
{
|
||||
@@ -1079,11 +1088,13 @@ static size_t image_headersz_v1(int *hasext)
|
||||
*/
|
||||
headersz = sizeof(struct main_hdr_v1);
|
||||
@@ -1149,13 +1158,13 @@ static size_t image_headersz_v1(int *hasext)
|
||||
int ret;
|
||||
|
||||
headersz = sizeof(struct main_hdr_v1);
|
||||
-
|
||||
+#if defined(CONFIG_KWB_SECURE)
|
||||
if (image_get_csk_index() >= 0) {
|
||||
headersz += sizeof(struct secure_hdr_v1);
|
||||
if (hasext)
|
||||
*hasext = 1;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
|
||||
cpu_sheeva = image_is_cpu_sheeva();
|
||||
|
||||
@@ -1270,6 +1281,7 @@ err_close:
|
||||
count = 0;
|
||||
@@ -1351,6 +1360,7 @@ err_close:
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -93,7 +97,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
static int export_pub_kak_hash(RSA *kak, struct secure_hdr_v1 *secure_hdr)
|
||||
{
|
||||
FILE *hashf;
|
||||
@@ -1382,6 +1394,7 @@ static int add_secure_header_v1(struct image_tool_params *params, uint8_t *ptr,
|
||||
@@ -1458,6 +1468,7 @@ static int add_secure_header_v1(struct image_tool_params *params, uint8_t *image
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -101,9 +105,9 @@ index 94b7685392..eec599b0ee 100644
|
|||
|
||||
static void finish_register_set_header_v1(uint8_t **cur, uint8_t **next_ext,
|
||||
struct register_set_hdr_v1 *register_set_hdr,
|
||||
@@ -1406,7 +1419,9 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
|
||||
@@ -1481,7 +1492,9 @@ static void *image_create_v1(size_t *dataoff, struct image_tool_params *params,
|
||||
struct image_cfg_element *e;
|
||||
struct main_hdr_v1 *main_hdr;
|
||||
struct opt_hdr_v1 *ohdr;
|
||||
struct register_set_hdr_v1 *register_set_hdr;
|
||||
+#if defined(CONFIG_KWB_SECURE)
|
||||
struct secure_hdr_v1 *secure_hdr = NULL;
|
||||
|
@ -111,15 +115,16 @@ index 94b7685392..eec599b0ee 100644
|
|||
size_t headersz;
|
||||
uint8_t *image, *cur;
|
||||
int hasext = 0;
|
||||
@@ -1491,6 +1506,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
|
||||
if (main_hdr->blockid == IBR_HDR_PEX_ID)
|
||||
main_hdr->srcaddr = cpu_to_le32(0xFFFFFFFF);
|
||||
|
||||
@@ -1562,7 +1575,7 @@ static void *image_create_v1(size_t *dataoff, struct image_tool_params *params,
|
||||
}
|
||||
*dataoff = le32_to_cpu(main_hdr->srcaddr);
|
||||
}
|
||||
-
|
||||
+#if defined(CONFIG_KWB_SECURE)
|
||||
if (image_get_csk_index() >= 0) {
|
||||
/*
|
||||
* only reserve the space here; we fill the header later since
|
||||
@@ -1501,7 +1517,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
|
||||
@@ -1573,7 +1586,7 @@ static void *image_create_v1(size_t *dataoff, struct image_tool_params *params,
|
||||
*next_ext = 1;
|
||||
next_ext = &secure_hdr->next;
|
||||
}
|
||||
|
@ -128,7 +133,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
datai = 0;
|
||||
for (cfgi = 0; cfgi < cfgn; cfgi++) {
|
||||
e = &image_cfg[cfgi];
|
||||
@@ -1624,10 +1640,12 @@ static void *image_create_v1(size_t *dataoff, struct image_tool_params *params,
|
||||
@@ -1624,9 +1637,11 @@ static void *image_create_v1(size_t *dataoff, struct image_tool_params *params,
|
||||
&datai, delay);
|
||||
}
|
||||
|
||||
|
@ -140,7 +145,6 @@ index 94b7685392..eec599b0ee 100644
|
|||
|
||||
/* Calculate and set the header checksum */
|
||||
main_hdr->checksum = image_checksum8(main_hdr, headersz);
|
||||
|
||||
--- a/tools/image-host.c
|
||||
+++ b/tools/image-host.c
|
||||
@@ -14,8 +14,10 @@
|
||||
|
@ -154,7 +158,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
|
||||
/**
|
||||
* fit_set_hash_value - set hash value in requested has node
|
||||
@@ -1116,6 +1118,7 @@
|
||||
@@ -1119,6 +1121,7 @@ static int fit_config_add_verification_data(const char *keydir,
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -162,7 +166,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
/*
|
||||
* 0) open file (open)
|
||||
* 1) read certificate (PEM_read_X509)
|
||||
@@ -1224,6 +1227,7 @@
|
||||
@@ -1227,6 +1230,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, void *fit)
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
@ -172,7 +176,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
const char *comment, int require_keys,
|
||||
--- a/tools/fit_image.c
|
||||
+++ b/tools/fit_image.c
|
||||
@@ -59,9 +59,10 @@
|
||||
@@ -61,9 +61,10 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc,
|
||||
ret = fit_set_timestamp(ptr, 0, time);
|
||||
}
|
||||
|
||||
|
@ -186,7 +190,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
params->comment,
|
||||
--- a/include/image.h
|
||||
+++ b/include/image.h
|
||||
@@ -1090,6 +1090,7 @@
|
||||
@@ -1182,6 +1182,7 @@ int fit_image_hash_get_value(const void *fit, int noffset, uint8_t **value,
|
||||
|
||||
int fit_set_timestamp(void *fit, int noffset, time_t timestamp);
|
||||
|
||||
|
@ -194,7 +198,7 @@ index 94b7685392..eec599b0ee 100644
|
|||
/**
|
||||
* fit_pre_load_data() - add public key to fdt blob
|
||||
*
|
||||
@@ -1104,6 +1105,7 @@
|
||||
@@ -1196,6 +1197,7 @@ int fit_set_timestamp(void *fit, int noffset, time_t timestamp);
|
||||
* < 0, on failure
|
||||
*/
|
||||
int fit_pre_load_data(const char *keydir, void *keydest, void *fit);
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
This patch is backported from U-Boot 2023.01; remove when updating.
|
||||
|
||||
From 7d01bb1c5a1daef0187c9ea276bde19a8d0e7fde Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
Date: Thu, 13 Oct 2022 22:43:41 +0200
|
||||
Subject: [PATCH] libfdt: Fix build with python 3.10
|
||||
|
||||
Python 3.10 requires defining PY_SSIZE_T_CLEAN. This will be fixed in
|
||||
swig 4.10 but it is not clear when it will be released. There was a
|
||||
warning since python 3.8.
|
||||
|
||||
Link: https://github.com/swig/swig/pull/2277
|
||||
|
||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
Reviewed-by: Simon Glass <sjg@chromium.org>
|
||||
---
|
||||
scripts/dtc/pylibfdt/libfdt.i_shipped | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
|
||||
index 27c29ea260..56cc5d48f4 100644
|
||||
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
|
||||
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
|
||||
@@ -7,6 +7,10 @@
|
||||
|
||||
%module libfdt
|
||||
|
||||
+%begin %{
|
||||
+#define PY_SSIZE_T_CLEAN
|
||||
+%}
|
||||
+
|
||||
%include <stdint.i>
|
||||
|
||||
%{
|
||||
--
|
||||
GitLab
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
Submitted upstream (see:
|
||||
https://lists.denx.de/pipermail/u-boot/2023-July/521984.html)
|
||||
|
||||
diff --git a/tools/u_boot_pylib/pyproject.toml b/tools/u_boot_pylib/pyproject.toml
|
||||
index 3f33caf6f8..037c5d629e 100644
|
||||
--- a/tools/u_boot_pylib/pyproject.toml
|
||||
+++ b/tools/u_boot_pylib/pyproject.toml
|
||||
@@ -9,7 +9,7 @@ authors = [
|
||||
{ name="Simon Glass", email="sjg@chromium.org" },
|
||||
]
|
||||
description = "U-Boot python library"
|
||||
-readme = "README.md"
|
||||
+readme = "README.rst"
|
||||
requires-python = ">=3.7"
|
||||
classifiers = [
|
||||
"Programming Language :: Python :: 3",
|
||||
@@ -20,3 +20,7 @@ classifiers = [
|
||||
[project.urls]
|
||||
"Homepage" = "https://u-boot.readthedocs.io"
|
||||
"Bug Tracker" = "https://source.denx.de/groups/u-boot/-/issues"
|
||||
+
|
||||
+[tool.setuptools.packages.find]
|
||||
+where = [".."]
|
||||
+include = ["u_boot_pylib*"]
|
|
@ -1,26 +0,0 @@
|
|||
adapting commit ac804143cf ("mmc: rockchip_sdhci: add phy and clock
|
||||
config for rk3399") to fix the issue "Not found emmc phy device".
|
||||
|
||||
Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
|
||||
---
|
||||
|
||||
arch/arm/dts/rk3399-u-boot.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi
|
||||
index 73922c328a..716b9a433a 100644
|
||||
--- a/arch/arm/dts/rk3399-u-boot.dtsi
|
||||
+++ b/arch/arm/dts/rk3399-u-boot.dtsi
|
||||
@@ -88,6 +88,10 @@
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
+&emmc_phy {
|
||||
+ u-boot,dm-pre-reloc;
|
||||
+};
|
||||
+
|
||||
&grf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
--
|
||||
2.17.1
|
|
@ -170,10 +170,10 @@ Tested-by: Peter Robinson <pbrobinson@gmail.com>
|
|||
1 file changed, 21 insertions(+)
|
||||
|
||||
diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
|
||||
index 62b8ba3a4a..be9cc99d90 100644
|
||||
index 70e61eccb7..ce36db94a7 100644
|
||||
--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
|
||||
+++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
|
||||
@@ -62,6 +62,8 @@ struct rockchip_usb2phy {
|
||||
@@ -64,6 +64,8 @@ struct rockchip_usb2phy {
|
||||
void *reg_base;
|
||||
struct clk phyclk;
|
||||
const struct rockchip_usb2phy_cfg *phy_cfg;
|
||||
|
@ -182,7 +182,7 @@ index 62b8ba3a4a..be9cc99d90 100644
|
|||
};
|
||||
|
||||
static inline int property_enable(void *reg_base,
|
||||
@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy)
|
||||
@@ -106,6 +108,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy)
|
||||
struct rockchip_usb2phy *priv = dev_get_priv(parent);
|
||||
const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy);
|
||||
|
||||
|
@ -193,7 +193,7 @@ index 62b8ba3a4a..be9cc99d90 100644
|
|||
property_enable(priv->reg_base, &port_cfg->phy_sus, false);
|
||||
|
||||
/* waiting for the utmi_clk to become stable */
|
||||
@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy)
|
||||
@@ -120,6 +126,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy)
|
||||
struct rockchip_usb2phy *priv = dev_get_priv(parent);
|
||||
const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy);
|
||||
|
||||
|
@ -204,7 +204,7 @@ index 62b8ba3a4a..be9cc99d90 100644
|
|||
property_enable(priv->reg_base, &port_cfg->phy_sus, true);
|
||||
|
||||
return 0;
|
||||
@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy)
|
||||
@@ -132,6 +142,10 @@ static int rockchip_usb2phy_init(struct phy *phy)
|
||||
const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy);
|
||||
int ret;
|
||||
|
||||
|
@ -213,9 +213,9 @@ index 62b8ba3a4a..be9cc99d90 100644
|
|||
+ return 0;
|
||||
+
|
||||
ret = clk_enable(&priv->phyclk);
|
||||
if (ret) {
|
||||
if (ret && ret != -ENOSYS) {
|
||||
dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret);
|
||||
@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy)
|
||||
@@ -154,6 +168,10 @@ static int rockchip_usb2phy_exit(struct phy *phy)
|
||||
struct udevice *parent = dev_get_parent(phy->dev);
|
||||
struct rockchip_usb2phy *priv = dev_get_priv(parent);
|
||||
|
||||
|
@ -226,7 +226,7 @@ index 62b8ba3a4a..be9cc99d90 100644
|
|||
clk_disable(&priv->phyclk);
|
||||
|
||||
return 0;
|
||||
@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev)
|
||||
@@ -294,6 +312,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
Description: prevent relocating initrd & fdt, that results in failure to boot
|
||||
Author: Heinrich Schuchardt (xypron)
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1937246
|
||||
Index: u-boot-2021.07~rc4+dfsg/include/configs/sifive-unmatched.h
|
||||
===================================================================
|
||||
--- u-boot-2021.07~rc4+dfsg.orig/include/configs/sifive-unmatched.h
|
||||
+++ u-boot-2021.07~rc4+dfsg/include/configs/sifive-unmatched.h
|
||||
@@ -55,6 +55,8 @@
|
||||
"name=system,size=-,bootable,type=${type_guid_gpt_system};"
|
||||
|
||||
#define CFG_EXTRA_ENV_SETTINGS \
|
||||
+ "fdt_high=0xffffffffffffffff\0" \
|
||||
+ "initrd_high=0xffffffffffffffff\0" \
|
||||
"kernel_addr_r=0x84000000\0" \
|
||||
"kernel_comp_addr_r=0x88000000\0" \
|
||||
"kernel_comp_size=0x4000000\0" \
|
|
@ -38,7 +38,6 @@
|
|||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages check)
|
||||
|
@ -55,6 +54,7 @@
|
|||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages less)
|
||||
#:use-module (gnu packages mail)
|
||||
#:use-module (gnu packages text-editors)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages ocaml)
|
||||
#:use-module (gnu packages package-management)
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
||||
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
|
||||
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
|
||||
;;; Copyright © 2023 Felix Gruber <felgru@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -107,6 +108,7 @@
|
|||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages webkit)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
|
@ -976,6 +978,34 @@ configurable toolbars and shortcuts, continuous and multi‐page layouts,
|
|||
SyncTeX support, and rudimentary support for annotations and forms.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public unpaper
|
||||
(package
|
||||
(name "unpaper")
|
||||
(version "7.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.flameeyes.com/files/unpaper-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "103awjdl2qrzi0qc32hi8zvwf04r5ih5jaw8rg8ij9y24szznx95"))))
|
||||
(native-inputs
|
||||
(list pkg-config python-sphinx))
|
||||
(inputs
|
||||
(list discount ffmpeg))
|
||||
(build-system meson-build-system)
|
||||
(home-page "https://www.flameeyes.com/projects/unpaper")
|
||||
(synopsis "post-processing tool for scanned pages")
|
||||
(description "@command{unpaper} is a post-processing tool for
|
||||
scanned sheets of paper, especially for book pages that have been
|
||||
scanned from previously created photocopies.
|
||||
|
||||
Its main purpose is to make scanned book pages better readable on screen
|
||||
after conversion to PDF. Additionally, unpaper might be useful to
|
||||
enhance the quality of scanned pages before performing
|
||||
@acronym{OCR, optical character recognition}.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public xournal
|
||||
(package
|
||||
(name "xournal")
|
||||
|
|
|
@ -583,6 +583,38 @@ data arrays produced during tests, in particular in cases where the arrays
|
|||
are too large to conveniently hard-code them in the tests.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-pytest-cookies
|
||||
(package
|
||||
(name "python-pytest-cookies")
|
||||
(version "0.7.0")
|
||||
(source
|
||||
(origin
|
||||
;; No tests in the PyPI tarball.
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/hackebrot/pytest-cookies")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1x7ny6mx1siy9law1cv1i63nvv9ds2g1dlagm40l8qymxry43mjn"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "pytest" "-vv")))))))
|
||||
(native-inputs (list python-pytest))
|
||||
(propagated-inputs (list python-cookiecutter))
|
||||
(home-page "https://github.com/hackebrot/pytest-cookies")
|
||||
(synopsis "Pytest plugin for Cookiecutter templates")
|
||||
(description
|
||||
"This Pytest plugin adds a @code{cookies} fixture, which is a
|
||||
wrapper for the Cookiecutter API. This fixture helps you verify that
|
||||
your template is working as expected and takes care of cleaning up after
|
||||
running the tests.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pytest-doctestplus
|
||||
(package
|
||||
(name "python-pytest-doctestplus")
|
||||
|
|
|
@ -11021,6 +11021,34 @@ MEDLINE XML repository.")
|
|||
abstract syntax tree (AST) nodes without side effects.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-ast-decompiler
|
||||
(package
|
||||
(name "python-ast-decompiler")
|
||||
(version "0.7.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "ast_decompiler" version))
|
||||
(sha256
|
||||
(base32 "0dw3fck4ajilphqw4hdpa8pmqxg3jfk2xkmjnk3kx5pqwl3sbhzg"))
|
||||
;; We need to manually create an __init__.py file under the tests/
|
||||
;; directory, since it is not included in the distributed
|
||||
;; version. (See:
|
||||
;; https://github.com/JelleZijlstra/ast_decompiler/issues/52).
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(call-with-output-file "tests/__init__.py"
|
||||
(const #t)))))
|
||||
(build-system pyproject-build-system)
|
||||
(native-inputs (list python-flit-core python-pytest))
|
||||
(home-page "https://github.com/JelleZijlstra/ast_decompiler")
|
||||
(synopsis
|
||||
"Decompile an @acronym{AST, Abstract Syntax Tree} to Python code")
|
||||
(description
|
||||
"This library provides functionality to decompile @acronym{AST, Abstract
|
||||
Syntax Tree} objects, as generated by the standard library @code{ast} module,
|
||||
to Python code.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python-asttokens
|
||||
(package
|
||||
(name "python-asttokens")
|
||||
|
@ -13081,13 +13109,13 @@ TODO notes checker plugin for flake8.")
|
|||
(define-public python-flake8-isort
|
||||
(package
|
||||
(name "python-flake8-isort")
|
||||
(version "4.1.1")
|
||||
(version "6.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "flake8-isort" version))
|
||||
(sha256
|
||||
(base32 "05r7z0j9rqgy0a9261bhisairrz6w8hy5hy5kf2mhvhfnx53056q"))))
|
||||
(base32 "0gk4q504v42hdzpkndczc0kkwnr85jn1h5pvb561jh65p91r6qyl"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -13096,8 +13124,8 @@ TODO notes checker plugin for flake8.")
|
|||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "pytest" "-vv")))))))
|
||||
(propagated-inputs (list python-flake8 python-isort python-testfixtures))
|
||||
(invoke "pytest" "-vv" "run_tests.py")))))))
|
||||
(propagated-inputs (list python-flake8 python-isort))
|
||||
(native-inputs (list python-pytest))
|
||||
(home-page "https://github.com/gforcada/flake8-isort")
|
||||
(synopsis "Flake8 plugin integrating isort")
|
||||
|
@ -17483,28 +17511,47 @@ designed to work across multiple versions of Python.")
|
|||
(define-public python-cookiecutter
|
||||
(package
|
||||
(name "python-cookiecutter")
|
||||
(version "1.7.3")
|
||||
(version "2.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cookiecutter" version))
|
||||
(sha256
|
||||
(base32 "0mx49whhwcxmvcak27zr7p7ndzkn3w7psfd7fzh3n91fi1r4v6kb"))))
|
||||
(base32 "1v1iafk8j2f5cciw9mf4263v91070c6z049cpnw42gwffhs907p6"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
(list python-freezegun python-pytest python-pytest-catchlog
|
||||
python-pytest-cov python-pytest-mock))
|
||||
(propagated-inputs
|
||||
(list python-binaryornot
|
||||
python-click
|
||||
python-future
|
||||
python-jinja2
|
||||
python-jinja2-time
|
||||
python-poyo
|
||||
python-requests
|
||||
python-slugify
|
||||
python-text-unidecode
|
||||
python-whichcraft))
|
||||
(arguments
|
||||
(list
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
;; test_get_user_config.py requires a writable home
|
||||
;; directory.
|
||||
(setenv "HOME"
|
||||
(getcwd))
|
||||
;; test_hooks.py dynamically creates shell scripts
|
||||
;; with a /bin/bash shebang. We have to patch these.
|
||||
(substitute* "tests/test_hooks.py"
|
||||
(("/bin/bash")
|
||||
(string-append #$(this-package-native-input
|
||||
"bash-minimal") "/bin/bash")))))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "pytest")))))))
|
||||
(native-inputs (list bash-minimal
|
||||
git
|
||||
python-freezegun
|
||||
python-pytest
|
||||
python-pytest-cov
|
||||
python-pytest-mock))
|
||||
(propagated-inputs (list python-arrow
|
||||
python-binaryornot
|
||||
python-click
|
||||
python-jinja2
|
||||
python-pyyaml
|
||||
python-requests
|
||||
python-rich
|
||||
python-slugify))
|
||||
(home-page "https://github.com/cookiecutter/cookiecutter")
|
||||
(synopsis
|
||||
"Command-line utility that creates projects from project templates")
|
||||
|
@ -34035,6 +34082,46 @@ package. It can be used by type-checking tools like mypy, PyCharm, pytype
|
|||
etc. to check code that uses @code{orjson}.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python-rpds-py
|
||||
(package
|
||||
(name "python-rpds-py")
|
||||
(version "0.10.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "rpds_py" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0l5slkvhq2vf64mapimmj6ginsv01mc4niyj90vvz3assq4agrac"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:imported-modules `(,@%cargo-build-system-modules
|
||||
,@%pyproject-build-system-modules)
|
||||
#:modules '((guix build cargo-build-system)
|
||||
((guix build pyproject-build-system) #:prefix py:)
|
||||
(guix build utils))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'prepare-python-module 'build-python-module
|
||||
(assoc-ref py:%standard-phases 'build))
|
||||
(add-after 'build-python-module 'install-python-module
|
||||
(assoc-ref py:%standard-phases 'install)))
|
||||
#:cargo-inputs
|
||||
`(("rust-archery" ,rust-archery-1)
|
||||
("rust-pyo3" ,rust-pyo3-0.19)
|
||||
("rust-rpds" ,rust-rpds-1))
|
||||
#:install-source? #false))
|
||||
(inputs
|
||||
(list maturin))
|
||||
(native-inputs
|
||||
(list python-wrapper))
|
||||
(home-page "https://github.com/crate-py/rpds")
|
||||
(synopsis "Bindings to Rust rpds for persistent data structures")
|
||||
(description "This package provides Python bindings to the Rust rpds crate
|
||||
for persistent data structures. It was written initially to support replacing
|
||||
@code{python-pyrsistent}.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-nanoid
|
||||
;; There are no tests on PyPi.
|
||||
(let ((commit "061f9a598f310b0e2e91b9ed6ce725a22770da64")
|
||||
|
@ -34355,6 +34442,29 @@ The database contains over 6.5 million entries, over 3.1 million unique word
|
|||
forms, and about 300,000 distinct lemmas.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-icegrams
|
||||
(package
|
||||
(name "python-icegrams")
|
||||
(version "1.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "icegrams" version))
|
||||
(sha256
|
||||
(base32 "1ajcjngvr4rlgb0q6p6vjz2sncwhvq3msjy6qaiz5g37vgvw2ij8"))))
|
||||
(build-system pyproject-build-system)
|
||||
(propagated-inputs (list python-cffi))
|
||||
(home-page "https://github.com/mideind/Icegrams")
|
||||
(synopsis "Trigram statistics for Icelandic")
|
||||
(description
|
||||
"Icegrams is a Python package that encapsulates a large trigram
|
||||
library for Icelandic. You can use Icegrams to obtain probabilities (relative
|
||||
frequencies) of over a million different unigrams (single words or tokens), or of
|
||||
bigrams (pairs of two words or tokens), or of trigrams. Icegrams is useful for
|
||||
instance in spelling correction, predictive typing, to help disabled people
|
||||
write text fast, and for various text generation, statistics, and modeling tasks.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-zeroc-ice-3.6
|
||||
(package
|
||||
(inherit python-zeroc-ice)
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
;;; Copyright © 2022 Yash Tiwari <yasht@mailbox.org>
|
||||
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||
;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
|
||||
;;; Copyright © 2023 Herman Rimm <herman@rimm.ee>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -3674,6 +3675,50 @@ framework. The bindings are implemented as a set of Python modules and
|
|||
contain over 620 classes.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public python-pyqt-6
|
||||
(package
|
||||
(inherit python-pyqt)
|
||||
(version "6.5.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyQt6" version))
|
||||
(file-name (string-append "PyQt6-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "100jh1iiz5gx821qzgicfrqv7hjjj98pchdbc1nvdzzra1ryx1ql"))))
|
||||
(inputs ;Qt5 dependencies only in python-pyqt:
|
||||
;; (qt)connectivity, location, sensors, serialport, x11extras, xmlpatterns.
|
||||
(list python-wrapper
|
||||
qtbase
|
||||
qtdeclarative
|
||||
qtmultimedia
|
||||
qtpositioning
|
||||
qtsvg
|
||||
qttools
|
||||
qtwebchannel
|
||||
qtwebsockets))
|
||||
(propagated-inputs (list python-sip python-pyqt6-sip))
|
||||
(native-inputs (list python-pyqt-builder qtbase)) ;qtbase is required for qmake.
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;No tests.
|
||||
#:configure-flags #~`(@ ("--verbose" . "") ;Print commands run.
|
||||
("--confirm-license" . "")
|
||||
("--jobs" unquote
|
||||
(number->string (parallel-job-count))))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
;; When building python-pyqtwebengine, <qprinter.h> cannot be
|
||||
;; included. Here we substitute the full path to the header in the
|
||||
;; store.
|
||||
(add-after 'unpack 'substitute-source
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((qprinter.h (search-input-file inputs
|
||||
"/include/qt6/QtPrintSupport/qprinter.h")))
|
||||
(substitute* (list "sip/QtPrintSupport/qprinter.sip"
|
||||
"sip/QtPrintSupport/qpyprintsupport_qlist.sip")
|
||||
(("qprinter.h")
|
||||
qprinter.h))))))))))
|
||||
|
||||
(define-public python-pyqt5-sip
|
||||
(package
|
||||
(name "python-pyqt5-sip")
|
||||
|
@ -3693,6 +3738,22 @@ contain over 620 classes.")
|
|||
(description "Sip module support for PyQt5")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public python-pyqt6-sip
|
||||
(package
|
||||
(inherit python-pyqt5-sip)
|
||||
(name "python-pyqt6-sip")
|
||||
(version "13.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyQt6_sip" version))
|
||||
(sha256
|
||||
(base32 "0y2pgc1kzskq3q230b5d48izvzy9dl4hkfjpcr7kv53ih1cf31i4"))))
|
||||
(synopsis "Sip module support for PyQt6")
|
||||
(description
|
||||
"SIP is used to write self contained extension modules, i.e. without a library
|
||||
to be wrapped. This SIP extension module provides support for the PyQt6 package.")))
|
||||
|
||||
(define-public python-pyqtwebengine
|
||||
(package
|
||||
(name "python-pyqtwebengine")
|
||||
|
@ -3750,6 +3811,40 @@ set of three modules. Prior to v5.12 these bindings were part of PyQt
|
|||
itself.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public python-pyqtwebengine-6
|
||||
(package
|
||||
(inherit python-pyqtwebengine)
|
||||
(version "6.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyQt6_WebEngine" version))
|
||||
(sha256
|
||||
(base32 "11wlnggs5vi7z465xhmnz664wbaj44ki6mmijbk0kr457x69h2ym"))))
|
||||
(native-inputs (list python python-sip python-pyqt-builder
|
||||
;; qtbase is required for qmake
|
||||
qtbase))
|
||||
(inputs (list python-pyqt-6 qtbase qtdeclarative qtwebchannel qtwebengine))
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;No tests.
|
||||
#:configure-flags #~`(@ ("--verbose" . "") ;Print commands run.
|
||||
("--jobs" unquote
|
||||
(number->string (parallel-job-count))))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'set-include-dirs
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((python (assoc-ref inputs "python"))
|
||||
(sip-include-dirs (search-input-directory inputs
|
||||
(string-append "/lib/python"
|
||||
(python-version python)
|
||||
"/site-packages/PyQt6/bindings"))))
|
||||
(setenv "SIP_INCLUDE_DIRS" sip-include-dirs)))))))
|
||||
(description
|
||||
"PyQtWebEngine is a set of Python bindings for The Qt Company's Qt
|
||||
WebEngine libraries. The bindings sit on top of PyQt6 and are implemented as a
|
||||
set of three modules.")))
|
||||
|
||||
(define-public python-pyqt-builder
|
||||
(package
|
||||
(name "python-pyqt-builder")
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com>
|
||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
||||
;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net>
|
||||
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -552,11 +553,12 @@ environment variables of the current shell.")
|
|||
"1gkzdvj73f71388jvym47075l9zw61v6l8wdv2lnc0mns6dxig0k"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags (list "CC=gcc"
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
(list #:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
(home-page "https://github.com/jhawthorn/fzy")
|
||||
(synopsis "Fast fuzzy text selector for the terminal with an advanced
|
||||
scoring algorithm")
|
||||
|
@ -791,3 +793,68 @@ source ${GUIX_ENVIRONMENT:-$HOME/.guix-profile}/etc/profile.d/grc.sh
|
|||
@end example
|
||||
")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public liquidprompt
|
||||
(package
|
||||
(name "liquidprompt")
|
||||
(version "2.1.2")
|
||||
(home-page "https://github.com/liquidprompt/liquidprompt")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/liquidprompt/liquidprompt")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0ljlq97mh84d6g6r3abb254vrwrdan5v74b69fpd62d7p9ffnsgf"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan #~'(("liquidpromptrc-dist" "etc/liquidpromptrc")
|
||||
("example.bashrc" "share/liquidprompt/examples/")
|
||||
("liquid.ps1" "share/liquidprompt/examples/")
|
||||
("liquidprompt" "share/liquidprompt/")
|
||||
("contrib" "share/liquidprompt/")
|
||||
("themes" "share/liquidprompt/")
|
||||
("liquidprompt.plugin.zsh"
|
||||
"share/zsh/plugins/liquidprompt/")
|
||||
("docs" #$(string-append "share/doc/" name "-"
|
||||
version "/")))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-plugin
|
||||
(lambda _
|
||||
(substitute* "liquidprompt.plugin.zsh"
|
||||
(("source(.*)$")
|
||||
(string-append "source "
|
||||
#$output
|
||||
"/share/liquidprompt/liquidprompt")))))
|
||||
(add-after 'fix-plugin 'fix-tput-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "liquidprompt"
|
||||
(("([ (])tput " all beginning)
|
||||
(string-append beginning
|
||||
(search-input-file inputs "bin/tput")
|
||||
" "))))))))
|
||||
(inputs (list ncurses))
|
||||
(synopsis "Full-featured prompt for Bash & Zsh")
|
||||
(description
|
||||
"Liquidprompt is an adaptive prompt for Bash and Zsh that gives
|
||||
you a nicely displayed prompt with useful information when you need it. It
|
||||
does this with a powerful theming engine and a large array of data sources.
|
||||
|
||||
In order to use liquidprompt with Zsh, you should use the following snippet
|
||||
with Guix Home:
|
||||
|
||||
@example
|
||||
(service home-zsh-service-type
|
||||
(home-zsh-configuration
|
||||
(zshrc (list ;;...
|
||||
;; This loads liquidprompt
|
||||
(mixed-text-file \"liquidprompt\"
|
||||
\"[[ $- = *i* ]] && source \" liquidprompt \"/share/liquidprompt/liquidprompt\")
|
||||
;; This loads the powerline theme available in liquidprompt
|
||||
(mixed-text-file \"powerline-theme\"
|
||||
\"source \" liquidprompt \"/share/liquidprompt/themes/powerline/powerline.theme\"))))))
|
||||
@end example\n")
|
||||
(license license:agpl3+)))
|
||||
|
|
|
@ -42,14 +42,17 @@
|
|||
(arguments
|
||||
'(#:tests? #f ; no tests exist
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'reproducible
|
||||
(add-after 'unpack 'patch
|
||||
(lambda _
|
||||
;; This umask makes the symlinks in lib readable on
|
||||
;; i586-gnu
|
||||
(substitute* "tools/install.sh"
|
||||
(("umask 077") "umask 033"))
|
||||
;; Sort source files deterministically so that the *.a
|
||||
;; and *.so files are reproducible.
|
||||
(substitute* "Makefile"
|
||||
(("\\$\\(wildcard src/lib\\*/\\*.c\\)")
|
||||
"$(sort $(wildcard src/lib*/*.c))")))))))
|
||||
(supported-systems (delete "i586-gnu" %supported-systems))
|
||||
(home-page "https://skarnet.org/software/skalibs/")
|
||||
(synopsis "Platform abstraction libraries for skarnet.org software")
|
||||
(description
|
||||
|
|
|
@ -139,7 +139,7 @@ fundamental object types for C.")
|
|||
(define-public sssd
|
||||
(package
|
||||
(name "sssd")
|
||||
(version "2.9.2")
|
||||
(version "2.9.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -148,7 +148,7 @@ fundamental object types for C.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "17nhivmg5z9j3mxqmn21l8y56c6ibpglhlnvqxy8rmsp3z5h868b"))
|
||||
(base32 "0iixn262ycicy2fm96zvifd21p21069mhcsnk262qk79cjvlwdar"))
|
||||
(patches (search-patches "sssd-system-directories.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015-2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
|
||||
;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
|
||||
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2017, 2018, 2020, 2022 Eric Bavier <bavier@posteo.net>
|
||||
;;; Copyright © 2017 Feng Shu <tumashu@163.com>
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
|
@ -20,10 +24,12 @@
|
|||
;;; Copyright © 2022 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com>
|
||||
;;; Copyright © 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
|
||||
;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
|
||||
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
|
||||
;;; Copyright © 2022 jgart <jgart@dismail.de>
|
||||
;;; Copyright © 2022 Andy Tai <atai@atai.org>
|
||||
;;; Copyright © 2023 Eidvilas Markevičius <markeviciuseidvilas@gmail.com>
|
||||
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -62,6 +68,7 @@
|
|||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages code)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages crates-io)
|
||||
#:use-module (gnu packages curl)
|
||||
|
@ -102,6 +109,37 @@
|
|||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
(define-public ed
|
||||
(package
|
||||
(name "ed")
|
||||
(version "1.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ed/ed-"
|
||||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0krb8rsb0cd8mgz0c5pqgnjbbrj7zjl7mf9099r8gi80k2nyza5c"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list lzip))
|
||||
(arguments
|
||||
`(#:configure-flags (list ,(string-append "CC=" (cc-for-target)))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'patch-source-shebangs 'patch-test-suite
|
||||
(lambda _
|
||||
(substitute* "testsuite/check.sh"
|
||||
(("/bin/sh") (which "sh"))))))))
|
||||
(home-page "https://www.gnu.org/software/ed/")
|
||||
(synopsis "Line-oriented text editor")
|
||||
(description
|
||||
"Ed is a line-oriented text editor: rather than offering an overview of
|
||||
a document, ed performs editing one line at a time. It can be executed both
|
||||
interactively and via shell scripts. Its method of command input allows
|
||||
complex tasks to be performed in an automated way. GNU ed offers several
|
||||
extensions over the standard utility.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public vis
|
||||
(package
|
||||
(name "vis")
|
||||
|
@ -562,6 +600,28 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on
|
|||
OpenBSD team.")
|
||||
(license license:public-domain)))
|
||||
|
||||
(define-public nano
|
||||
(package
|
||||
(name "nano")
|
||||
(version "7.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "09j5gb44yiv18fvn0iy17jnl9d5lh3gkry4kqv776a5xd0kl9ww6"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list gettext-minimal ncurses))
|
||||
(home-page "https://www.nano-editor.org/")
|
||||
(synopsis "Small, user-friendly console text editor")
|
||||
(description
|
||||
"GNU nano is a small and simple text editor for use in a terminal. Besides
|
||||
basic editing, it supports: undo/redo, syntax highlighting, spell checking,
|
||||
justifying, auto-indentation, bracket matching, interactive search-and-replace
|
||||
(with regular expressions), and the editing of multiple files.")
|
||||
(license license:gpl3+))) ; some files are under GPLv2+
|
||||
|
||||
(define-public qemacs
|
||||
(package
|
||||
(name "qemacs")
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
;;; Copyright © 2021-2023 Danial Behzadi <dani.behzi@ubuntu.com>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2022 Jim Newsome <jnewsome@torproject.org>
|
||||
;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -36,11 +37,15 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system mozilla)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages browser-extensions)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages check)
|
||||
|
@ -48,6 +53,7 @@
|
|||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnuzilla)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-check)
|
||||
|
@ -483,3 +489,282 @@ Potential client and exit connections are scrubbed of sensitive information.")
|
|||
the onion proxy and sets up proxy in user session, so you don't have to mess
|
||||
up with TOR on your system anymore.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
;; Must be of the form YYYYMMDDhhmmss as in `date +%Y%m%d%H%M%S`.
|
||||
(define %moz-build-date "20231219173144")
|
||||
|
||||
;; To find the last version, look at https://www.torproject.org/download/.
|
||||
(define %torbrowser-version "13.0.8")
|
||||
|
||||
;; To find the last Firefox version, browse
|
||||
;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version>
|
||||
;; There should be only one archive that starts with
|
||||
;; "src-firefox-tor-browser-".
|
||||
(define %torbrowser-firefox-version "115.6.0esr-13.0-1-build2")
|
||||
|
||||
(define torbrowser-assets
|
||||
;; This is a prebuilt Torbrowser from which we take the assets we need.
|
||||
(package
|
||||
(name "torbrowser-assets")
|
||||
(version %torbrowser-version)
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://archive.torproject.org/tor-package-archive/torbrowser/"
|
||||
version "/tor-browser-linux-x86_64-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0v67x3pa0mga970andlz58k2wz8b8x7aman8gkkahnd003h9qgvq"))))
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan
|
||||
''(("Browser" "." #:include-regexp
|
||||
("^\\./TorBrowser/Data/Tor/torrc-defaults"
|
||||
"^\\./fonts/"
|
||||
"^\\./fontconfig/fonts.conf")))))
|
||||
(build-system copy-build-system)
|
||||
(home-page "https://www.torproject.org")
|
||||
(synopsis "Tor Browser assets")
|
||||
(description "This package contains fonts and configuration files for Tor
|
||||
Browser.")
|
||||
(license license:silofl1.1)))
|
||||
|
||||
(define-public torbrowser
|
||||
(package
|
||||
(inherit icecat-minimal)
|
||||
(name "torbrowser")
|
||||
(version %torbrowser-version)
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://archive.torproject.org/tor-package-archive/torbrowser/"
|
||||
version "/src-firefox-tor-browser-" %torbrowser-firefox-version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1c0p8aya7sh7nmawngkyzx2r02mvl9nd53hx2bl0jwvsj1vxxhca"))))
|
||||
(build-system mozilla-build-system)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments icecat-minimal)
|
||||
((#:configure-flags flags '())
|
||||
#~(cons*
|
||||
"--without-relative-data-dir" ;store is read-only
|
||||
"--disable-base-browser-update"
|
||||
;; Default is "default", which is the same as "nightly".
|
||||
"--enable-update-channel=release"
|
||||
"--with-user-appdir=.torbrowser"
|
||||
"--with-branding=browser/branding/tb-release"
|
||||
(string-append "--prefix=" #$output)
|
||||
(string-append "--with-base-browser-version=" #$version)
|
||||
#$flags))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-before 'configure 'setenv
|
||||
(lambda _
|
||||
(setenv "CONFIG_SHELL" (which "bash"))
|
||||
;; Install location is prefix/lib/$MOZ_APP_NAME. Also
|
||||
;; $MOZ_APP_NAME is the executable name. Default is
|
||||
;; "firefox".
|
||||
(setenv "MOZ_APP_NAME" "torbrowser")
|
||||
;; Profile location (relative to "~/."). Default is
|
||||
;; lower($MOZ_APP_VENDOR/$MOZ_APP_BASENAME), which is:
|
||||
;; ~/.tor project/firefox.
|
||||
(setenv "MOZ_APP_PROFILE" "torbrowser/browser")
|
||||
;; WM_CLASS (default is "$MOZ_APP_NAME-$MOZ_UPDATE_CHANNEL").
|
||||
(setenv "MOZ_APP_REMOTINGNAME" "Tor Browser")
|
||||
;; Persistent state directory for the build system (default is
|
||||
;; $HOME/.mozbuild).
|
||||
(setenv "MOZBUILD_STATE_PATH"
|
||||
(in-vicinity (getcwd) ".mozbuild"))
|
||||
;; Make build reproducible.
|
||||
(setenv "MOZ_BUILD_DATE" #$%moz-build-date)))
|
||||
(add-before 'configure 'mozconfig
|
||||
(lambda* (#:key configure-flags #:allow-other-keys)
|
||||
(with-output-to-file "mozconfig"
|
||||
(lambda ()
|
||||
(format #t ". $topsrcdir/mozconfig-linux-x86_64~%")
|
||||
(for-each (lambda (flag)
|
||||
(format #t "ac_add_options ~a~%" flag))
|
||||
configure-flags)))))
|
||||
(replace 'configure
|
||||
(lambda _
|
||||
(invoke "./mach" "configure")))
|
||||
(add-before 'build 'fix-addons-placeholder
|
||||
(lambda _
|
||||
(substitute*
|
||||
"toolkit/locales/en-US/toolkit/about/aboutAddons.ftl"
|
||||
(("addons.mozilla.org") "gnuzilla.gnu.org"))))
|
||||
(add-after 'install 'deploy-assets
|
||||
(lambda _
|
||||
(let ((assets #$(this-package-input "torbrowser-assets"))
|
||||
(lib (in-vicinity #$output "lib/torbrowser"))
|
||||
(tor #$(this-package-input "tor-client")))
|
||||
;; TorBrowser/Data/Tor/torrc-defaults
|
||||
(copy-recursively (in-vicinity assets "TorBrowser")
|
||||
(in-vicinity lib "TorBrowser"))
|
||||
;; The geoip and geoip6 files are in the same directory as
|
||||
;; torrc-defaults. (See TorProcess.sys.mjs.)
|
||||
(mkdir-p (in-vicinity lib "TorBrowser/Data/Tor"))
|
||||
(copy-file (in-vicinity tor "share/tor/geoip")
|
||||
(in-vicinity lib "TorBrowser/Data/Tor/geoip"))
|
||||
(copy-file (in-vicinity tor "share/tor/geoip6")
|
||||
(in-vicinity lib "TorBrowser/Data/Tor/geoip6"))
|
||||
;; Fonts
|
||||
(copy-recursively (in-vicinity assets "fontconfig")
|
||||
(in-vicinity lib "fontconfig"))
|
||||
(substitute* (in-vicinity lib "fontconfig/fonts.conf")
|
||||
(("<dir>fonts</dir>")
|
||||
(format #f "<dir>~a</dir>" (in-vicinity lib "fonts"))))
|
||||
(delete-file-recursively (in-vicinity lib "fonts"))
|
||||
(copy-recursively (in-vicinity assets "fonts")
|
||||
(in-vicinity lib "fonts")))))
|
||||
(replace 'build-sandbox-whitelist
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(define (runpath-of lib)
|
||||
(call-with-input-file lib
|
||||
(compose elf-dynamic-info-runpath
|
||||
elf-dynamic-info
|
||||
parse-elf
|
||||
get-bytevector-all)))
|
||||
(define (runpaths-of-input label)
|
||||
(let* ((dir (string-append (assoc-ref inputs label) "/lib"))
|
||||
(libs (find-files dir "\\.so$")))
|
||||
(append-map runpath-of libs)))
|
||||
;; Populate the sandbox read-path whitelist as needed by ffmpeg.
|
||||
(let* ((whitelist
|
||||
(map (cut string-append <> "/")
|
||||
(delete-duplicates
|
||||
`(,(string-append (assoc-ref inputs "shared-mime-info")
|
||||
"/share/mime")
|
||||
,@(append-map runpaths-of-input
|
||||
'("mesa" "ffmpeg"))))))
|
||||
(whitelist-string (string-join whitelist ",")))
|
||||
(with-output-to-file "whitelist.txt"
|
||||
(lambda ()
|
||||
(display whitelist-string))))))
|
||||
(add-after 'install 'autoconfig
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((lib (in-vicinity #$output "lib/torbrowser"))
|
||||
(config-file "tor-browser.cfg"))
|
||||
(with-output-to-file (in-vicinity
|
||||
lib "defaults/pref/autoconfig.js")
|
||||
(lambda ()
|
||||
(format #t "// first line must be a comment~%")
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"general.config.filename" config-file)
|
||||
(format #t "pref(~s, ~a);~%"
|
||||
"general.config.obscure_value" "0")))
|
||||
(with-output-to-file (in-vicinity lib config-file)
|
||||
(lambda ()
|
||||
(format #t "// first line must be a comment~%")
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"extensions.torlauncher.torrc-defaults_path"
|
||||
(in-vicinity
|
||||
lib "TorBrowser/Data/Tor/torrc-defaults"))
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"extensions.torlauncher.tor_path"
|
||||
(search-input-file inputs "bin/tor"))
|
||||
;; Required for Guix packaged extensions
|
||||
;; SCOPE_PROFILE=1, SCOPE_APPLICATION=4, SCOPE_SYSTEM=8
|
||||
;; Default is 5.
|
||||
(format #t "pref(~s, ~a);~%"
|
||||
"extensions.enabledScopes" "13")
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"security.sandbox.content.read_path_whitelist"
|
||||
(call-with-input-file "whitelist.txt"
|
||||
get-string-all))
|
||||
;; Add-ons pannel (see settings.js in Icecat source).
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"extensions.getAddons.search.browseURL"
|
||||
"https://gnuzilla.gnu.org/mozzarella")
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"extensions.getAddons.get.url"
|
||||
"https://gnuzilla.gnu.org/mozzarella")
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"extensions.getAddons.link.url"
|
||||
"https://gnuzilla.gnu.org/mozzarella")
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"extensions.getAddons.discovery.api_url"
|
||||
"https://gnuzilla.gnu.org/mozzarella")
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"extensions.getAddons.langpacks.url"
|
||||
"https://gnuzilla.gnu.org/mozzarella")
|
||||
(format #t "pref(~s, ~s);~%"
|
||||
"lightweightThemes.getMoreURL"
|
||||
"https://gnuzilla.gnu.org/mozzarella"))))))
|
||||
(replace 'wrap-program
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((gtk #$(this-package-input "gtk+"))
|
||||
(gtk-share (string-append gtk "/share"))
|
||||
(fonts.conf (in-vicinity
|
||||
#$output
|
||||
"lib/torbrowser/fontconfig/fonts.conf"))
|
||||
(ld-libs '#$(cons
|
||||
(file-append
|
||||
(this-package-input "libcanberra")
|
||||
"/lib/gtk-3.0/modules")
|
||||
(map
|
||||
(lambda (label)
|
||||
(file-append
|
||||
(this-package-input label) "/lib"))
|
||||
'("libpng-apng"
|
||||
"libxscrnsaver"
|
||||
"mesa"
|
||||
"pciutils"
|
||||
"mit-krb5"
|
||||
"eudev"
|
||||
"pulseaudio"
|
||||
"libnotify")))))
|
||||
(wrap-program
|
||||
(in-vicinity #$output "lib/torbrowser/torbrowser")
|
||||
`("XDG_DATA_DIRS" prefix (,gtk-share))
|
||||
`("LD_LIBRARY_PATH" prefix ,ld-libs)
|
||||
`("FONTCONFIG_FILE" prefix (,fonts.conf))))))
|
||||
(replace 'install-desktop-entry
|
||||
(lambda _
|
||||
(let ((apps (in-vicinity #$output "share/applications")))
|
||||
(mkdir-p apps)
|
||||
(make-desktop-entry-file
|
||||
(in-vicinity apps "torbrowser.desktop")
|
||||
#:name "Tor Browser"
|
||||
#:exec
|
||||
(format #f "~a %u" (in-vicinity #$output "bin/torbrowser"))
|
||||
#:comment
|
||||
"Tor Browser is +1 for privacy and -1 for mass surveillance"
|
||||
#:categories '("Network" "WebBrowser" "Security")
|
||||
#:startup-w-m-class "Tor Browser"
|
||||
#:icon "tor-browser"))))
|
||||
(replace 'install-icons
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(for-each
|
||||
(lambda (size)
|
||||
(let ((oldpath (string-append
|
||||
"browser/branding/tb-release/default"
|
||||
size ".png"))
|
||||
(newpath (string-append #$output
|
||||
"/share/icons/hicolor/"
|
||||
size "x" size "/apps")))
|
||||
(mkdir-p newpath)
|
||||
(copy-file oldpath
|
||||
(in-vicinity newpath "tor-browser.png"))))
|
||||
'("16" "22" "24" "32" "48" "64" "128" "256"))))))))
|
||||
(inputs
|
||||
(modify-inputs (package-inputs icecat-minimal)
|
||||
(append bash-minimal
|
||||
tor-client
|
||||
torbrowser-assets)))
|
||||
(propagated-inputs
|
||||
(list noscript/icecat))
|
||||
(home-page "https://www.torproject.org")
|
||||
(synopsis "Anonymous browser derived from Mozilla Firefox")
|
||||
(description
|
||||
"Tor Browser is the Tor Project version of Firefox browser. It is the
|
||||
only recommended way to anonymously browse the web that is supported by the
|
||||
project. It modifies Firefox in order to avoid many know application level
|
||||
attacks on the privacy of Tor users.")
|
||||
(license license:mpl2.0))) ;And others, see
|
||||
;toolkit/content/license.html
|
||||
|
|
|
@ -97,7 +97,6 @@
|
|||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
|
@ -117,7 +116,6 @@
|
|||
#:use-module (gnu packages mail)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages nano)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages web)
|
||||
|
@ -137,6 +135,7 @@
|
|||
#:use-module (gnu packages ruby)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages text-editors)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages emacs)
|
||||
|
|
|
@ -67,6 +67,7 @@
|
|||
;;; Copyright © 2023 Dominik Delgado Steuter <dds@disroot.org>
|
||||
;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
|
||||
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
|
||||
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -1533,7 +1534,7 @@ libebml is a C++ library to read and write EBML files.")
|
|||
(define-public libplacebo
|
||||
(package
|
||||
(name "libplacebo")
|
||||
(version "4.208.0")
|
||||
(version "6.338.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1542,16 +1543,16 @@ libebml is a C++ library to read and write EBML files.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "161dp5781s74ca3gglaxlmchx7glyshf0wg43w98pl22n1jcm5qk"))))
|
||||
(base32 "1miqk3gfwah01xkf4a6grwq29im0lfh94gp92y7js855gx3v169m"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
`("-Dopengl=enabled"
|
||||
,(string-append "-Dvulkan-registry="
|
||||
(assoc-ref %build-inputs "vulkan-headers")
|
||||
"/share/vulkan/registry/vk.xml"))))
|
||||
(list #:configure-flags
|
||||
#~(list "-Dopengl=enabled"
|
||||
(string-append "-Dvulkan-registry="
|
||||
#$(this-package-input "vulkan-headers")
|
||||
"/share/vulkan/registry/vk.xml"))))
|
||||
(native-inputs
|
||||
(list python python-mako pkg-config))
|
||||
(list glad python python-mako pkg-config))
|
||||
(inputs
|
||||
(list lcms
|
||||
libepoxy
|
||||
|
@ -2338,7 +2339,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
(define-public mpv
|
||||
(package
|
||||
(name "mpv")
|
||||
(version "0.36.0")
|
||||
(version "0.37.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -2346,8 +2347,8 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1ri06h7pv6hrxmxxc618n9hymlgr0gfx38bqq5dcszdgnlashsgk"))))
|
||||
(build-system waf-build-system)
|
||||
(base32 "1xcyfpd543lbmg587wi0mahrz8vhyrlr4432054vp6wsi3s36c4b"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
|
@ -2364,21 +2365,15 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
;; and passed as linker flags, but the order in which they are added
|
||||
;; varies. See <https://github.com/mpv-player/mpv/issues/7855>.
|
||||
;; Set PYTHONHASHSEED as a workaround for deterministic results.
|
||||
(setenv "PYTHONHASHSEED" "1")))
|
||||
(add-before 'configure 'set-up-waf
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(copy-file (search-input-file inputs "bin/waf") "waf")
|
||||
(setenv "CC" #$(cc-for-target)))))
|
||||
(setenv "PYTHONHASHSEED" "1"))))
|
||||
#:configure-flags
|
||||
#~(list "--enable-libmpv-shared"
|
||||
"--enable-cdda"
|
||||
"--enable-dvdnav"
|
||||
"--disable-build-date")
|
||||
;; No check function defined.
|
||||
#:tests? #f))
|
||||
#~(list "-Dlibmpv=true"
|
||||
"-Dcdda=enabled"
|
||||
"-Ddvdnav=enabled"
|
||||
"-Dbuild-date=false")))
|
||||
(native-inputs
|
||||
(list perl ; for zsh completion file
|
||||
pkg-config python-docutils))
|
||||
pkg-config python-docutils python-wrapper))
|
||||
;; Missing features: libguess, V4L2.
|
||||
(inputs
|
||||
(list alsa-lib
|
||||
|
@ -2395,6 +2390,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
libdvdread
|
||||
libdvdnav
|
||||
libjpeg-turbo
|
||||
libplacebo
|
||||
libva
|
||||
libvdpau
|
||||
libx11
|
||||
|
@ -2405,13 +2401,11 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
libxrandr
|
||||
libxscrnsaver
|
||||
libxv
|
||||
;; XXX: lua > 5.2 is not currently supported; see
|
||||
;; waftools/checks/custom.py
|
||||
;; XXX: lua > 5.2 is not currently supported; see meson.build
|
||||
lua-5.2
|
||||
mesa
|
||||
mpg123
|
||||
pulseaudio
|
||||
python-waf
|
||||
rsound
|
||||
shaderc
|
||||
vulkan-headers
|
||||
|
@ -2419,6 +2413,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
wayland
|
||||
wayland-protocols
|
||||
yt-dlp
|
||||
zimg
|
||||
zlib))
|
||||
(home-page "https://mpv.io/")
|
||||
(synopsis "Audio and video player")
|
||||
|
|
|
@ -83,7 +83,6 @@
|
|||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages markup)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages nano)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages perl)
|
||||
|
@ -96,6 +95,7 @@
|
|||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages text-editors)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages webkit)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#:export (laminar-configuration
|
||||
laminar-configuration?
|
||||
laminar-configuration-home-directory
|
||||
laminar-configuration-supplementary-groups
|
||||
laminar-configuration-bind-http
|
||||
laminar-configuration-bind-rpc
|
||||
laminar-configuration-title
|
||||
|
@ -50,26 +51,28 @@
|
|||
(define-record-type* <laminar-configuration>
|
||||
laminar-configuration make-laminar-configuration
|
||||
laminar-configuration?
|
||||
(laminar laminars-configuration-laminar
|
||||
(default laminar))
|
||||
(home-directory laminar-configuration-home-directory
|
||||
(default "/var/lib/laminar"))
|
||||
(bind-http laminar-configuration-bind-http
|
||||
(default "*:8080"))
|
||||
(bind-rpc laminar-configuration-bind-rpc
|
||||
(default "unix-abstract:laminar"))
|
||||
(title laminar-configuration-title
|
||||
(default "Laminar"))
|
||||
(keep-rundirs laminar-keep-rundirs
|
||||
(default 0))
|
||||
(archive-url laminar-archive-url
|
||||
(default #f))
|
||||
(base-url laminar-base-url
|
||||
(default #f)))
|
||||
(laminar laminars-configuration-laminar
|
||||
(default laminar))
|
||||
(home-directory laminar-configuration-home-directory
|
||||
(default "/var/lib/laminar"))
|
||||
(supplementary-groups laminar-configuration-supplementary-groups
|
||||
(default '()))
|
||||
(bind-http laminar-configuration-bind-http
|
||||
(default "*:8080"))
|
||||
(bind-rpc laminar-configuration-bind-rpc
|
||||
(default "unix-abstract:laminar"))
|
||||
(title laminar-configuration-title
|
||||
(default "Laminar"))
|
||||
(keep-rundirs laminar-keep-rundirs
|
||||
(default 0))
|
||||
(archive-url laminar-archive-url
|
||||
(default #f))
|
||||
(base-url laminar-base-url
|
||||
(default #f)))
|
||||
|
||||
(define laminar-shepherd-service
|
||||
(match-lambda
|
||||
(($ <laminar-configuration> laminar home-directory
|
||||
(($ <laminar-configuration> laminar home-directory supplementary-groups
|
||||
bind-http bind-rpc
|
||||
title keep-rundirs archive-url
|
||||
base-url)
|
||||
|
@ -102,7 +105,8 @@
|
|||
#$base-url))
|
||||
'()))
|
||||
#:user "laminar"
|
||||
#:group "laminar"))
|
||||
#:group "laminar"
|
||||
#:supplementary-groups '#$supplementary-groups))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
|
||||
(define (laminar-account config)
|
||||
|
@ -113,6 +117,8 @@
|
|||
(user-account
|
||||
(name "laminar")
|
||||
(group "laminar")
|
||||
(supplementary-groups
|
||||
(laminar-configuration-supplementary-groups config))
|
||||
(system? #t)
|
||||
(comment "Laminar privilege separation user")
|
||||
(home-directory (laminar-configuration-home-directory config))
|
||||
|
|
|
@ -512,28 +512,25 @@ created after the PostgreSQL database is started.")))
|
|||
(match-lambda
|
||||
(($ <memcached-configuration> memcached interfaces tcp-port udp-port
|
||||
additional-options)
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build shepherd)))
|
||||
(list (shepherd-service
|
||||
(provision '(memcached))
|
||||
(documentation "Run the Memcached daemon.")
|
||||
(requirement '(user-processes loopback))
|
||||
(modules '((gnu build shepherd)))
|
||||
(start #~(make-forkexec-constructor
|
||||
`(#$(file-append memcached "/bin/memcached")
|
||||
"-l" #$(string-join interfaces ",")
|
||||
"-p" #$(number->string tcp-port)
|
||||
"-U" #$(number->string udp-port)
|
||||
"--daemon"
|
||||
;; Memcached changes to the memcached user prior to
|
||||
;; writing the pid file, so write it to a directory
|
||||
;; that memcached owns.
|
||||
"-P" "/var/run/memcached/pid"
|
||||
"-u" "memcached"
|
||||
,#$@additional-options)
|
||||
#:log-file "/var/log/memcached"
|
||||
#:pid-file "/var/run/memcached/pid"))
|
||||
(stop #~(make-kill-destructor))))))))
|
||||
(list (shepherd-service
|
||||
(provision '(memcached))
|
||||
(documentation "Run the Memcached daemon.")
|
||||
(requirement '(user-processes loopback))
|
||||
(start #~(make-forkexec-constructor
|
||||
`(#$(file-append memcached "/bin/memcached")
|
||||
"-l" #$(string-join interfaces ",")
|
||||
"-p" #$(number->string tcp-port)
|
||||
"-U" #$(number->string udp-port)
|
||||
"--daemon"
|
||||
;; Memcached changes to the memcached user prior to
|
||||
;; writing the pid file, so write it to a directory
|
||||
;; that memcached owns.
|
||||
"-P" "/var/run/memcached/pid"
|
||||
"-u" "memcached"
|
||||
,#$@additional-options)
|
||||
#:log-file "/var/log/memcached"
|
||||
#:pid-file "/var/run/memcached/pid"))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
|
||||
(define memcached-service-type
|
||||
(service-type (name 'memcached)
|
||||
|
|
|
@ -88,19 +88,6 @@
|
|||
|
||||
guix-build-coordinator-agent-service-type
|
||||
|
||||
guix-build-coordinator-queue-builds-configuration
|
||||
guix-build-coordinator-queue-builds-configuration?
|
||||
guix-build-coordinator-queue-builds-configuration-package
|
||||
guix-build-coordinator-queue-builds-configuration-user
|
||||
guix-build-coordinator-queue-builds-coordinator
|
||||
guix-build-coordinator-queue-builds-configuration-systems
|
||||
guix-build-coordinator-queue-builds-configuration-system-and-targets
|
||||
guix-build-coordinator-queue-builds-configuration-guix-data-service
|
||||
guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id
|
||||
guix-build-coordinator-queue-builds-configuration-processed-commits-file
|
||||
|
||||
guix-build-coordinator-queue-builds-service-type
|
||||
|
||||
<guix-data-service-configuration>
|
||||
guix-data-service-configuration
|
||||
guix-data-service-configuration?
|
||||
|
@ -250,31 +237,6 @@
|
|||
(agent-name guix-build-coordinator-agent-dynamic-auth-with-file-agent-name)
|
||||
(token-file guix-build-coordinator-agent-dynamic-auth-with-file-token-file))
|
||||
|
||||
(define-record-type* <guix-build-coordinator-queue-builds-configuration>
|
||||
guix-build-coordinator-queue-builds-configuration
|
||||
make-guix-build-coordinator-queue-builds-configuration
|
||||
guix-build-coordinator-queue-builds-configuration?
|
||||
(package guix-build-coordinator-queue-builds-configuration-package
|
||||
(default guix-build-coordinator))
|
||||
(user guix-build-coordinator-queue-builds-configuration-user
|
||||
(default "guix-build-coordinator-queue-builds"))
|
||||
(coordinator guix-build-coordinator-queue-builds-coordinator
|
||||
(default "http://localhost:8746"))
|
||||
(systems guix-build-coordinator-queue-builds-configuration-systems
|
||||
(default #f))
|
||||
(systems-and-targets
|
||||
guix-build-coordinator-queue-builds-configuration-system-and-targets
|
||||
(default #f))
|
||||
(guix-data-service
|
||||
guix-build-coordinator-queue-builds-configuration-guix-data-service
|
||||
(default "https://data.guix.gnu.org"))
|
||||
(guix-data-service-build-server-id
|
||||
guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id
|
||||
(default #f))
|
||||
(processed-commits-file
|
||||
guix-build-coordinator-queue-builds-configuration-processed-commits-file
|
||||
(default "/var/cache/guix-build-coordinator-queue-builds/processed-commits")))
|
||||
|
||||
(define* (make-guix-build-coordinator-start-script database-uri-string
|
||||
allocation-strategy
|
||||
pid-file
|
||||
|
@ -380,10 +342,7 @@
|
|||
;; Allow time for migrations to run
|
||||
#:pid-file-timeout 60
|
||||
#:environment-variables
|
||||
`(,(string-append
|
||||
"GUIX_LOCPATH="
|
||||
#$(libc-utf8-locales-for-target) "/lib/locale")
|
||||
"LC_ALL=en_US.utf8"
|
||||
`("LC_ALL=en_US.utf8"
|
||||
"PATH=/run/current-system/profile/bin" ; for hooks
|
||||
#$@extra-environment-variables)
|
||||
#:log-file "/var/log/guix-build-coordinator/coordinator.log")
|
||||
|
@ -508,10 +467,7 @@
|
|||
(or systems '())))
|
||||
#:user #$user
|
||||
#:environment-variables
|
||||
`(,(string-append
|
||||
"GUIX_LOCPATH="
|
||||
#$(libc-utf8-locales-for-target) "/lib/locale")
|
||||
;; XDG_CACHE_HOME is used by Guix when caching narinfo files
|
||||
`(;; XDG_CACHE_HOME is used by Guix when caching narinfo files
|
||||
"XDG_CACHE_HOME=/var/cache/guix-build-coordinator-agent"
|
||||
"LC_ALL=en_US.utf8")
|
||||
#:log-file "/var/log/guix-build-coordinator/agent.log"))))
|
||||
|
@ -559,101 +515,6 @@
|
|||
(description
|
||||
"Run a Guix Build Coordinator agent.")))
|
||||
|
||||
(define (guix-build-coordinator-queue-builds-shepherd-services config)
|
||||
(match-record config <guix-build-coordinator-queue-builds-configuration>
|
||||
(package user coordinator systems systems-and-targets
|
||||
guix-data-service
|
||||
guix-data-service-build-server-id
|
||||
processed-commits-file)
|
||||
(list
|
||||
(shepherd-service
|
||||
(documentation "Guix Build Coordinator queue builds from Guix Data Service")
|
||||
(provision '(guix-build-coordinator-queue-builds))
|
||||
(requirement '(networking))
|
||||
(start
|
||||
#~(lambda _
|
||||
(parameterize ((%current-logfile-date-format ""))
|
||||
(fork+exec-command
|
||||
(list
|
||||
#$(file-append
|
||||
package
|
||||
"/bin/guix-build-coordinator-queue-builds-from-guix-data-service")
|
||||
#$(string-append "--coordinator=" coordinator)
|
||||
#$@(map (lambda (system)
|
||||
(string-append "--system=" system))
|
||||
(or systems '()))
|
||||
#$@(map (match-lambda
|
||||
((system . target)
|
||||
(string-append "--system-and-target=" system "=" target)))
|
||||
(or systems-and-targets '()))
|
||||
#$@(if guix-data-service
|
||||
#~(#$(string-append "--guix-data-service=" guix-data-service))
|
||||
#~())
|
||||
#$@(if guix-data-service-build-server-id
|
||||
#~(#$(simple-format
|
||||
#f
|
||||
"--guix-data-service-build-server-id=~A"
|
||||
guix-data-service-build-server-id))
|
||||
#~())
|
||||
#$@(if processed-commits-file
|
||||
#~(#$(string-append "--processed-commits-file="
|
||||
processed-commits-file))
|
||||
#~()))
|
||||
#:user #$user
|
||||
#:environment-variables
|
||||
`(,(string-append
|
||||
"GUIX_LOCPATH="
|
||||
#$(libc-utf8-locales-for-target) "/lib/locale")
|
||||
"LC_ALL=en_US.utf8")
|
||||
#:log-file "/var/log/guix-build-coordinator/queue-builds.log"))))
|
||||
(stop #~(make-kill-destructor))
|
||||
(modules
|
||||
`((shepherd comm)
|
||||
,@%default-modules))))))
|
||||
|
||||
(define (guix-build-coordinator-queue-builds-activation config)
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(define %user
|
||||
(getpw #$(guix-build-coordinator-queue-builds-configuration-user
|
||||
config)))
|
||||
|
||||
(mkdir-p "/var/log/guix-build-coordinator")
|
||||
|
||||
;; Allow writing the processed commits file
|
||||
(mkdir-p "/var/cache/guix-build-coordinator-queue-builds")
|
||||
(chown "/var/cache/guix-build-coordinator-queue-builds"
|
||||
(passwd:uid %user)
|
||||
(passwd:gid %user))))
|
||||
|
||||
(define (guix-build-coordinator-queue-builds-account config)
|
||||
(list (user-account
|
||||
(name (guix-build-coordinator-queue-builds-configuration-user config))
|
||||
(group "nogroup")
|
||||
(system? #t)
|
||||
(comment "Guix Build Coordinator queue-builds user")
|
||||
(home-directory "/var/empty")
|
||||
(shell (file-append shadow "/sbin/nologin")))))
|
||||
|
||||
(define guix-build-coordinator-queue-builds-service-type
|
||||
(service-type
|
||||
(name 'guix-build-coordinator-queue-builds)
|
||||
(extensions
|
||||
(list
|
||||
(service-extension shepherd-root-service-type
|
||||
guix-build-coordinator-queue-builds-shepherd-services)
|
||||
(service-extension activation-service-type
|
||||
guix-build-coordinator-queue-builds-activation)
|
||||
(service-extension account-service-type
|
||||
guix-build-coordinator-queue-builds-account)))
|
||||
(description
|
||||
"Run the guix-build-coordinator-queue-builds-from-guix-data-service
|
||||
script.
|
||||
|
||||
This is a script to assist in having the Guix Build Coordinator build
|
||||
derivations stored in an instance of the Guix Data Service.")))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Guix Data Service
|
||||
|
|
|
@ -849,56 +849,47 @@ string, you could instantiate a prosody service like this:
|
|||
(target conf)))
|
||||
#:namespaces (delq 'net %namespaces))))
|
||||
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build shepherd)
|
||||
(gnu system file-systems)))
|
||||
(list (shepherd-service
|
||||
(provision '(bitlbee))
|
||||
(list (shepherd-service
|
||||
(provision '(bitlbee))
|
||||
|
||||
;; Note: If networking is not up, then /etc/resolv.conf
|
||||
;; doesn't get mapped in the container, hence the dependency
|
||||
;; on 'networking'.
|
||||
(requirement '(user-processes networking))
|
||||
;; Note: If networking is not up, then /etc/resolv.conf
|
||||
;; doesn't get mapped in the container, hence the dependency
|
||||
;; on 'networking'.
|
||||
(requirement '(user-processes networking))
|
||||
|
||||
(modules '((gnu build shepherd)
|
||||
(gnu system file-systems)))
|
||||
(start #~(if (defined? 'make-inetd-constructor)
|
||||
(start #~(if (defined? 'make-inetd-constructor)
|
||||
|
||||
(make-inetd-constructor
|
||||
(list #$bitlbee* "-I" "-c" #$conf)
|
||||
(list (endpoint
|
||||
(addrinfo:addr
|
||||
(car (getaddrinfo #$interface
|
||||
#$(number->string port)
|
||||
(logior AI_NUMERICHOST
|
||||
AI_NUMERICSERV))))))
|
||||
#:requirements '#$requirement
|
||||
#:service-name-stem "bitlbee"
|
||||
#:user "bitlbee" #:group "bitlbee"
|
||||
(make-inetd-constructor
|
||||
(list #$bitlbee* "-I" "-c" #$conf)
|
||||
(list (endpoint
|
||||
(addrinfo:addr
|
||||
(car (getaddrinfo #$interface
|
||||
#$(number->string port)
|
||||
(logior AI_NUMERICHOST
|
||||
AI_NUMERICSERV))))))
|
||||
#:requirements '#$requirement
|
||||
#:service-name-stem "bitlbee"
|
||||
#:user "bitlbee" #:group "bitlbee"
|
||||
|
||||
;; Allow 'bitlbee-purple' to use libpurple plugins.
|
||||
#:environment-variables
|
||||
(list (string-append "PURPLE_PLUGIN_PATH="
|
||||
#$plugins "/lib/purple-2")
|
||||
"GUIX_LOCPATH=/run/current-system/locale"))
|
||||
;; Allow 'bitlbee-purple' to use libpurple plugins.
|
||||
#:environment-variables
|
||||
(list (string-append "PURPLE_PLUGIN_PATH="
|
||||
#$plugins "/lib/purple-2")
|
||||
"GUIX_LOCPATH=/run/current-system/locale"))
|
||||
|
||||
(make-forkexec-constructor/container
|
||||
(list #$(file-append bitlbee "/sbin/bitlbee")
|
||||
"-n" "-F" "-u" "bitlbee" "-c" #$conf)
|
||||
(make-forkexec-constructor
|
||||
(list #$(file-append bitlbee "/sbin/bitlbee")
|
||||
"-n" "-F" "-u" "bitlbee" "-c" #$conf)
|
||||
|
||||
;; Allow 'bitlbee-purple' to use libpurple plugins.
|
||||
#:environment-variables
|
||||
(list (string-append "PURPLE_PLUGIN_PATH="
|
||||
#$plugins "/lib/purple-2"))
|
||||
;; Allow 'bitlbee-purple' to use libpurple plugins.
|
||||
#:environment-variables
|
||||
(list (string-append "PURPLE_PLUGIN_PATH="
|
||||
#$plugins "/lib/purple-2"))
|
||||
|
||||
#:pid-file "/var/run/bitlbee.pid"
|
||||
#:mappings (list (file-system-mapping
|
||||
(source "/var/lib/bitlbee")
|
||||
(target source)
|
||||
(writable? #t))))))
|
||||
(stop #~(if (defined? 'make-inetd-destructor)
|
||||
(make-inetd-destructor)
|
||||
(make-kill-destructor))))))))))
|
||||
#:pid-file "/var/run/bitlbee.pid")))
|
||||
(stop #~(if (defined? 'make-inetd-destructor)
|
||||
(make-inetd-destructor)
|
||||
(make-kill-destructor)))))))))
|
||||
|
||||
(define %bitlbee-accounts
|
||||
;; User group and account to run BitlBee.
|
||||
|
|
|
@ -1918,29 +1918,35 @@ table inet filter {
|
|||
(define (pagekite-shepherd-service config)
|
||||
(match-record config <pagekite-configuration>
|
||||
(package kitename kitesecret frontend kites extra-file)
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build shepherd)
|
||||
(gnu system file-systems)))
|
||||
(let* ((config-file (pagekite-configuration-file config))
|
||||
(mappings (cons (file-system-mapping
|
||||
(source config-file)
|
||||
(target source))
|
||||
(if extra-file
|
||||
(list (file-system-mapping
|
||||
(source extra-file)
|
||||
(target source)))
|
||||
'())))
|
||||
(pagekite (least-authority-wrapper
|
||||
(file-append package "/bin/pagekite")
|
||||
#:name "pagekite"
|
||||
#:mappings mappings
|
||||
;; 'pagekite' changes user IDs to it needs to run in the
|
||||
;; global user namespace.
|
||||
#:namespaces (fold delq %namespaces '(net user)))))
|
||||
(shepherd-service
|
||||
(documentation "Run the PageKite service.")
|
||||
(provision '(pagekite))
|
||||
(requirement '(networking))
|
||||
(modules '((gnu build shepherd)
|
||||
(gnu system file-systems)))
|
||||
(start #~(make-forkexec-constructor/container
|
||||
(list #$(file-append package "/bin/pagekite")
|
||||
(actions (list (shepherd-configuration-action config-file)))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$pagekite
|
||||
"--clean"
|
||||
"--nullui"
|
||||
"--nocrashreport"
|
||||
"--runas=pagekite:pagekite"
|
||||
(string-append "--optfile="
|
||||
#$(pagekite-configuration-file config)))
|
||||
#:log-file "/var/log/pagekite.log"
|
||||
#:mappings #$(if extra-file
|
||||
#~(list (file-system-mapping
|
||||
(source #$extra-file)
|
||||
(target source)))
|
||||
#~'())))
|
||||
(string-append "--optfile=" #$config-file))
|
||||
#:log-file "/var/log/pagekite.log"))
|
||||
;; SIGTERM doesn't always work for some reason.
|
||||
(stop #~(make-kill-destructor SIGINT))))))
|
||||
|
||||
|
|
|
@ -50,22 +50,19 @@
|
|||
(define pcscd-shepherd-service
|
||||
(match-lambda
|
||||
(($ <pcscd-configuration> pcsc-lite)
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build shepherd)))
|
||||
(shepherd-service
|
||||
(documentation "PC/SC Smart Card Daemon")
|
||||
(provision '(pcscd))
|
||||
(requirement '(syslogd))
|
||||
(modules '((gnu build shepherd)))
|
||||
(start #~(lambda _
|
||||
(let ((socket "/run/pcscd/pcscd.comm"))
|
||||
(when (file-exists? socket)
|
||||
(delete-file socket)))
|
||||
(fork+exec-command
|
||||
(list #$(file-append pcsc-lite "/sbin/pcscd")
|
||||
"--foreground")
|
||||
#:log-file "/var/log/pcscd.log")))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
(shepherd-service
|
||||
(documentation "PC/SC Smart Card Daemon")
|
||||
(provision '(pcscd))
|
||||
(requirement '(syslogd))
|
||||
(start #~(lambda _
|
||||
(let ((socket "/run/pcscd/pcscd.comm"))
|
||||
(when (file-exists? socket)
|
||||
(delete-file socket)))
|
||||
(fork+exec-command
|
||||
(list #$(file-append pcsc-lite "/sbin/pcscd")
|
||||
"--foreground")
|
||||
#:log-file "/var/log/pcscd.log")))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define pcscd-activation
|
||||
(match-lambda
|
||||
|
|
|
@ -34,6 +34,9 @@
|
|||
#:use-module (guix modules)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix gexp)
|
||||
#:autoload (guix least-authority) (least-authority-wrapper)
|
||||
#:autoload (gnu system file-systems) (file-system-mapping)
|
||||
#:autoload (gnu build linux-container) (%namespaces)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-2)
|
||||
#:use-module (srfi srfi-26)
|
||||
|
@ -258,9 +261,37 @@ consistent state."))
|
|||
(define (jami-configuration->command-line-arguments config)
|
||||
"Derive the command line arguments to used to launch the Jami daemon from
|
||||
CONFIG, a <jami-configuration> object."
|
||||
(define (wrapper libjami)
|
||||
(least-authority-wrapper
|
||||
;; XXX: 'gexp-input' is needed as the outer layer so that
|
||||
;; 'references-file' picks the right output of LIBJAMI.
|
||||
(gexp-input (file-append (gexp-input libjami "bin") "/libexec/jamid")
|
||||
"bin")
|
||||
#:mappings
|
||||
(list (file-system-mapping
|
||||
(source "/dev/log") ;for syslog
|
||||
(target source))
|
||||
(file-system-mapping
|
||||
(source "/var/lib/jami")
|
||||
(target source)
|
||||
(writable? #t))
|
||||
(file-system-mapping
|
||||
(source "/var/run/jami")
|
||||
(target source)
|
||||
(writable? #t))
|
||||
;; Expose TLS certificates for GnuTLS.
|
||||
(file-system-mapping
|
||||
(source (file-append nss-certs "/etc/ssl/certs"))
|
||||
(target "/etc/ssl/certs")))
|
||||
#:preserved-environment-variables
|
||||
'("DBUS_SESSION_BUS_ADDRESS" "SSL_CERT_DIR")
|
||||
#:user "jami"
|
||||
#:group "jami"
|
||||
#:namespaces (fold delq %namespaces '(net user))))
|
||||
|
||||
(match-record config <jami-configuration>
|
||||
(libjami dbus enable-logging? debug? auto-answer?)
|
||||
`(,#~(string-append #$libjami:bin "/libexec/jamid")
|
||||
`(,(wrapper libjami)
|
||||
"--persistent" ;stay alive after client quits
|
||||
,@(if enable-logging?
|
||||
'() ;logs go to syslog by default
|
||||
|
@ -298,7 +329,28 @@ CONFIG, a <jami-configuration> object."
|
|||
(let* ((libjami (jami-configuration-libjami config))
|
||||
(nss-certs (jami-configuration-nss-certs config))
|
||||
(dbus (jami-configuration-dbus config))
|
||||
(dbus-daemon (file-append dbus "/bin/dbus-daemon"))
|
||||
(dbus-daemon (least-authority-wrapper
|
||||
(file-append dbus "/bin/dbus-daemon")
|
||||
#:name "dbus-daemon"
|
||||
#:user "jami"
|
||||
#:group "jami"
|
||||
#:preserved-environment-variables
|
||||
'("XDG_DATA_DIRS")
|
||||
#:mappings
|
||||
(list (file-system-mapping
|
||||
(source "/dev/log") ;for syslog
|
||||
(target source))
|
||||
(file-system-mapping
|
||||
(source "/var/run/jami")
|
||||
(target source)
|
||||
(writable? #t))
|
||||
(file-system-mapping
|
||||
(source (gexp-input libjami "bin"))
|
||||
(target source)))
|
||||
;; 'dbus-daemon' wants to look up users in /etc/passwd
|
||||
;; so run it in the global user namespace.
|
||||
#:namespaces
|
||||
(fold delq %namespaces '(net user))))
|
||||
(accounts (jami-configuration-accounts config))
|
||||
(declarative-mode? (maybe-value-set? accounts)))
|
||||
|
||||
|
@ -310,7 +362,6 @@ CONFIG, a <jami-configuration> object."
|
|||
(with-imported-modules (source-module-closure
|
||||
'((gnu build dbus-service)
|
||||
(gnu build jami-service)
|
||||
(gnu build shepherd)
|
||||
(gnu system file-systems)))
|
||||
|
||||
(define list-accounts-action
|
||||
|
@ -490,8 +541,7 @@ argument, either a registered username or the fingerprint of the account.")
|
|||
(list (shepherd-service
|
||||
(documentation "Run a D-Bus session for the Jami daemon.")
|
||||
(provision '(jami-dbus-session))
|
||||
(modules `((gnu build shepherd)
|
||||
(gnu build dbus-service)
|
||||
(modules `((gnu build dbus-service)
|
||||
(gnu build jami-service)
|
||||
(gnu system file-systems)
|
||||
,@%default-modules))
|
||||
|
@ -499,26 +549,23 @@ argument, either a registered username or the fingerprint of the account.")
|
|||
;; activation for D-Bus, such as a /etc/machine-id file.
|
||||
(requirement '(dbus-system syslogd))
|
||||
(start
|
||||
#~(make-forkexec-constructor/container
|
||||
(list #$dbus-daemon "--session"
|
||||
"--address=unix:path=/var/run/jami/bus"
|
||||
"--syslog-only")
|
||||
#:pid-file "/var/run/jami/pid"
|
||||
#:mappings
|
||||
(list (file-system-mapping
|
||||
(source "/dev/log") ;for syslog
|
||||
(target source))
|
||||
(file-system-mapping
|
||||
(source "/var/run/jami")
|
||||
(target source)
|
||||
(writable? #t)))
|
||||
#:user "jami"
|
||||
#:group "jami"
|
||||
#:environment-variables
|
||||
;; This is so that the cx.ring.Ring service D-Bus
|
||||
;; definition is found by dbus-daemon.
|
||||
(list (string-append "XDG_DATA_DIRS="
|
||||
#$libjami:bin "/share"))))
|
||||
#~(lambda ()
|
||||
(define pid
|
||||
(fork+exec-command
|
||||
(list #$dbus-daemon "--session"
|
||||
"--address=unix:path=/var/run/jami/bus"
|
||||
"--syslog-only")
|
||||
#:environment-variables
|
||||
;; This is so that the cx.ring.Ring service D-Bus
|
||||
;; definition is found by dbus-daemon.
|
||||
(list (string-append "XDG_DATA_DIRS="
|
||||
#$libjami:bin "/share"))))
|
||||
|
||||
;; The PID file contains the "wrong" PID (the one in the
|
||||
;; separate PID namespace) so ignore it and return the
|
||||
;; value returned by 'fork+exec-command'.
|
||||
(and (read-pid-file "/var/run/jami/pid")
|
||||
pid)))
|
||||
(stop #~(make-kill-destructor)))
|
||||
|
||||
(shepherd-service
|
||||
|
@ -542,7 +589,6 @@ argument, either a registered username or the fingerprint of the account.")
|
|||
(srfi srfi-26)
|
||||
(gnu build dbus-service)
|
||||
(gnu build jami-service)
|
||||
(gnu build shepherd)
|
||||
(gnu system file-systems)
|
||||
,@%default-modules))
|
||||
(start
|
||||
|
@ -588,32 +634,14 @@ argument, either a registered username or the fingerprint of the account.")
|
|||
|
||||
;; Start the daemon.
|
||||
(define daemon-pid
|
||||
((make-forkexec-constructor/container
|
||||
(list #$@(jami-configuration->command-line-arguments
|
||||
config))
|
||||
#:mappings
|
||||
(list (file-system-mapping
|
||||
(source "/dev/log") ;for syslog
|
||||
(target source))
|
||||
(file-system-mapping
|
||||
(source "/var/lib/jami")
|
||||
(target source)
|
||||
(writable? #t))
|
||||
(file-system-mapping
|
||||
(source "/var/run/jami")
|
||||
(target source)
|
||||
(writable? #t))
|
||||
;; Expose TLS certificates for GnuTLS.
|
||||
(file-system-mapping
|
||||
(source #$(file-append nss-certs "/etc/ssl/certs"))
|
||||
(target "/etc/ssl/certs")))
|
||||
#:user "jami"
|
||||
#:group "jami"
|
||||
#:environment-variables
|
||||
(list (string-append "DBUS_SESSION_BUS_ADDRESS="
|
||||
"unix:path=/var/run/jami/bus")
|
||||
;; Expose TLS certificates for OpenSSL.
|
||||
"SSL_CERT_DIR=/etc/ssl/certs"))))
|
||||
(fork+exec-command
|
||||
(list #$@(jami-configuration->command-line-arguments
|
||||
config))
|
||||
#:environment-variables
|
||||
(list (string-append "DBUS_SESSION_BUS_ADDRESS="
|
||||
"unix:path=/var/run/jami/bus")
|
||||
;; Expose TLS certificates for OpenSSL.
|
||||
"SSL_CERT_DIR=/etc/ssl/certs")))
|
||||
|
||||
(setenv "DBUS_SESSION_BUS_ADDRESS"
|
||||
"unix:path=/var/run/jami/bus")
|
||||
|
|
|
@ -1232,31 +1232,29 @@ a webserver.")
|
|||
(let* ((specs (hpcguix-web-configuration-specs config))
|
||||
(config-file (and specs (scheme-file "hpcguix-web.scm" specs)))
|
||||
(hpcguix-web (hpcguix-web-package config)))
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build shepherd)))
|
||||
(shepherd-service
|
||||
(documentation "hpcguix-web daemon")
|
||||
(provision '(hpcguix-web))
|
||||
(requirement '(networking))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append hpcguix-web "/bin/hpcguix-web")
|
||||
(string-append "--listen="
|
||||
#$(hpcguix-web-configuration-address
|
||||
config))
|
||||
"-p"
|
||||
#$(number->string
|
||||
(hpcguix-web-configuration-port config))
|
||||
#$@(if specs
|
||||
#~((string-append "--config=" #$config-file))
|
||||
#~()))
|
||||
#:user "hpcguix-web"
|
||||
#:group "hpcguix-web"
|
||||
#:environment-variables
|
||||
(list "XDG_CACHE_HOME=/var/cache/guix/web"
|
||||
"SSL_CERT_DIR=/etc/ssl/certs")
|
||||
#:log-file #$%hpcguix-web-log-file))
|
||||
(stop #~(make-kill-destructor))
|
||||
(actions (list (shepherd-configuration-action config-file)))))))
|
||||
(shepherd-service
|
||||
(documentation "hpcguix-web daemon")
|
||||
(provision '(hpcguix-web))
|
||||
(requirement '(networking))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append hpcguix-web "/bin/hpcguix-web")
|
||||
(string-append "--listen="
|
||||
#$(hpcguix-web-configuration-address
|
||||
config))
|
||||
"-p"
|
||||
#$(number->string
|
||||
(hpcguix-web-configuration-port config))
|
||||
#$@(if specs
|
||||
#~((string-append "--config=" #$config-file))
|
||||
#~()))
|
||||
#:user "hpcguix-web"
|
||||
#:group "hpcguix-web"
|
||||
#:environment-variables
|
||||
(list "XDG_CACHE_HOME=/var/cache/guix/web"
|
||||
"SSL_CERT_DIR=/etc/ssl/certs")
|
||||
#:log-file #$%hpcguix-web-log-file))
|
||||
(stop #~(make-kill-destructor))
|
||||
(actions (list (shepherd-configuration-action config-file))))))
|
||||
|
||||
(define hpcguix-web-service-type
|
||||
(service-type
|
||||
|
|
|
@ -59,7 +59,6 @@
|
|||
#:use-module (gnu packages less)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages nano)
|
||||
#:use-module (gnu packages nvi)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages pciutils)
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2023 Herman Rimm <herman@rimm.ee>
|
||||
;;;
|
||||
;;; 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 system images orangepi-r1-plus-lts-rk3328)
|
||||
#:use-module (gnu bootloader)
|
||||
#:use-module (gnu bootloader u-boot)
|
||||
#:use-module (gnu image)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages certs)
|
||||
#:use-module (guix platforms arm)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services base)
|
||||
#:use-module (gnu services networking)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:use-module (gnu system image)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (orangepi-r1-plus-lts-rk3328-barebones-os
|
||||
orangepi-r1-plus-lts-rk3328-image-type
|
||||
orangepi-r1-plus-lts-rk3328-barebones-raw-image))
|
||||
|
||||
(define orangepi-r1-plus-lts-rk3328-barebones-os
|
||||
(operating-system
|
||||
(host-name "windmolen")
|
||||
(timezone "Europe/Amsterdam")
|
||||
(locale "en_US.utf8")
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader u-boot-orangepi-r1-plus-lts-rk3328-bootloader)
|
||||
(targets '("/dev/mmcblk0"))))
|
||||
(initrd-modules '())
|
||||
(kernel linux-libre-arm64-generic)
|
||||
(file-systems (cons (file-system
|
||||
(device (file-system-label "my-root"))
|
||||
(mount-point "/")
|
||||
(type "ext4")) %base-file-systems))
|
||||
(services
|
||||
(cons* (service agetty-service-type
|
||||
(agetty-configuration (extra-options '("-L")) ;no carrier detect
|
||||
(baud-rate "1500000")
|
||||
(term "vt100")
|
||||
(tty "ttyS2")))
|
||||
(service dhcp-client-service-type)
|
||||
(service ntp-service-type) %base-services))
|
||||
(packages (cons nss-certs %base-packages))))
|
||||
|
||||
(define orangepi-r1-plus-lts-rk3328-image-type
|
||||
(image-type (name 'orangepi-r1-plus-lts-rk3328-raw)
|
||||
(constructor (lambda (os)
|
||||
(image (inherit (raw-with-offset-disk-image (expt
|
||||
2 24)))
|
||||
(operating-system
|
||||
os)
|
||||
(platform aarch64-linux))))))
|
||||
|
||||
(define orangepi-r1-plus-lts-rk3328-barebones-raw-image
|
||||
(image (inherit (os+platform->image orangepi-r1-plus-lts-rk3328-barebones-os
|
||||
aarch64-linux
|
||||
#:type orangepi-r1-plus-lts-rk3328-image-type))
|
||||
(name 'orangepi-r1-plus-lts-rk3328-barebones-raw-image)))
|
||||
|
||||
orangepi-r1-plus-lts-rk3328-barebones-raw-image
|
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
|
||||
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
|
||||
;;; Copyright © 2023 Herman Rimm <herman@rimm.ee>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -69,6 +70,7 @@
|
|||
mx6cuboxi-installation-os
|
||||
nintendo-nes-classic-edition-installation-os
|
||||
novena-installation-os
|
||||
orangepi-r1-plus-lts-rk3328-installation-os
|
||||
firefly-rk3399-installation-os
|
||||
pine64-plus-installation-os
|
||||
pinebook-installation-os
|
||||
|
@ -633,6 +635,11 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET."
|
|||
"/dev/mmcblk0" ; SD card (solder it yourself)
|
||||
"ttyS0"))
|
||||
|
||||
(define orangepi-r1-plus-lts-rk3328-installation-os
|
||||
(embedded-installation-os u-boot-orangepi-r1-plus-lts-rk3328-bootloader
|
||||
"/dev/mmcblk0" ; SD card storage
|
||||
"ttyS0"))
|
||||
|
||||
(define pine64-plus-installation-os
|
||||
(embedded-installation-os u-boot-pine64-plus-bootloader
|
||||
"/dev/mmcblk0" ; SD card storage
|
||||
|
|
|
@ -184,13 +184,22 @@ jami account used as part of the jami configuration are left *unspecified*."
|
|||
%load-path)
|
||||
marionette))
|
||||
|
||||
(test-assert "dbus session is up"
|
||||
(and (marionette-eval
|
||||
'(begin
|
||||
(use-modules (gnu services herd))
|
||||
(wait-for-service 'jami-dbus-session #:timeout 40))
|
||||
marionette)
|
||||
(wait-for-unix-socket "/var/run/jami/bus"
|
||||
marionette)))
|
||||
|
||||
(test-assert "service is running"
|
||||
(marionette-eval
|
||||
'(begin
|
||||
(use-modules (gnu build jami-service)
|
||||
(gnu services herd))
|
||||
|
||||
(wait-for-service 'jami)
|
||||
(wait-for-service 'jami #:timeout 40)
|
||||
(jami-service-available?))
|
||||
marionette))
|
||||
|
||||
|
@ -217,10 +226,10 @@ jami account used as part of the jami configuration are left *unspecified*."
|
|||
(rnrs base) )
|
||||
;; Start the service.
|
||||
(start-service 'jami)
|
||||
(with-retries 20 1 (jami-service-available?))
|
||||
(with-retries 40 1 (jami-service-available?))
|
||||
;; Restart the service.
|
||||
(restart-service 'jami)
|
||||
(with-retries 20 1 (jami-service-available?)))
|
||||
(with-retries 40 1 (jami-service-available?)))
|
||||
marionette))
|
||||
|
||||
(unless #$provisioning? (test-skip 1))
|
||||
|
@ -231,7 +240,7 @@ jami account used as part of the jami configuration are left *unspecified*."
|
|||
(gnu services herd)
|
||||
(rnrs base))
|
||||
;; Accounts take some time to appear after being added.
|
||||
(with-retries 20 1
|
||||
(with-retries 40 1
|
||||
(with-shepherd-action 'jami ('list-accounts) results
|
||||
(let ((account (assoc-ref (car results) #$username)))
|
||||
(assert (string=? #$username
|
||||
|
|
|
@ -103,7 +103,7 @@ This will write a deprecation warning to GUIX-WARNING-PORT."
|
|||
#'(define-deprecated variable alias alias)))))
|
||||
|
||||
(define-syntax-rule (define-deprecated/public body ...)
|
||||
"Like 'define/deprecated', but export all the newly introduced bindings."
|
||||
"Like 'define-deprecated', but export all the newly introduced bindings."
|
||||
(define-deprecated public body ...))
|
||||
|
||||
(define-syntax-rule (define-deprecated/alias deprecated replacement)
|
||||
|
|
|
@ -117,11 +117,9 @@
|
|||
"http://internode.dl.sourceforge.net/project/"
|
||||
"http://jaist.dl.sourceforge.net/project/"
|
||||
"http://liquidtelecom.dl.sourceforge.net/project/"
|
||||
;; "http://nbtelecom.dl.sourceforge.net/project/" ;never returns 404s
|
||||
"http://nchc.dl.sourceforge.net/project/"
|
||||
"http://netcologne.dl.sourceforge.net/project/"
|
||||
"http://netix.dl.sourceforge.net/project/"
|
||||
"http://pilotfiber.dl.sourceforge.net/project/"
|
||||
"http://tenet.dl.sourceforge.net/project/")
|
||||
(netfilter.org ; https://www.netfilter.org/mirrors.html
|
||||
"http://ftp.netfilter.org/pub/"
|
||||
|
@ -133,19 +131,21 @@
|
|||
"http://ftp.be.debian.org/pub/"
|
||||
"https://mirrors.edge.kernel.org/pub/"
|
||||
"ftp://ftp.funet.fi/pub/mirrors/ftp.kernel.org/pub/")
|
||||
(apache ; from http://www.apache.org/mirrors/dist.html
|
||||
"http://www.eu.apache.org/dist/"
|
||||
"http://www.us.apache.org/dist/"
|
||||
"https://ftp.nluug.nl/internet/apache/"
|
||||
(apache
|
||||
"https://dlcdn.apache.org/"
|
||||
"https://downloads.apache.org/"
|
||||
"https://mirrors.sonic.net/apache/"
|
||||
"https://apache.osuosl.org/"
|
||||
"https://mirrors.ircam.fr/pub/apache/"
|
||||
"https://apache-mirror.rbc.ru/pub/apache/"
|
||||
"https://mirrors.ibiblio.org/apache/"
|
||||
|
||||
;; No HTTPS.
|
||||
"http://apache.mirror.iweb.ca/"
|
||||
"http://mirrors.ircam.fr/pub/apache/"
|
||||
"http://apache.mirrors.ovh.net/ftp.apache.org/dist/"
|
||||
"http://apache-mirror.rbc.ru/pub/apache/"
|
||||
"ftp://ftp.osuosl.org/pub/apache/"
|
||||
"http://mirrors.ibiblio.org/apache/"
|
||||
|
||||
;; As a last resort, try the archive.
|
||||
"http://archive.apache.org/dist/")
|
||||
"https://archive.apache.org/dist/")
|
||||
(xorg ; from http://www.x.org/wiki/Releases/Download
|
||||
"http://www.x.org/releases/" ; main mirrors
|
||||
"http://mirror.csclub.uwaterloo.ca/x.org/" ; North America
|
||||
|
@ -271,7 +271,6 @@
|
|||
"https://mirror.kumi.systems/kde/ftp/"
|
||||
"https://mirrors.ircam.fr/pub/KDE/"
|
||||
"https://ftp.gwdg.de/pub/linux/kde/"
|
||||
"https://mirrors.gethosted.online/kde/pub/kde/"
|
||||
"https://fr2.rpmfind.net/linux/KDE/"
|
||||
"https://mirror.faigner.de/kde/ftp/"
|
||||
"https://www.mirrorservice.org/sites/download.kde.org/"
|
||||
|
@ -288,7 +287,6 @@
|
|||
"https://mirrors.nav.ro/kde/"
|
||||
"https://mirrors.xtom.ee/kde/"
|
||||
"https://ftp.funet.fi/pub/mirrors/ftp.kde.org/pub/kde/"
|
||||
"https://kde.ip-connect.vn.ua/"
|
||||
"https://mirrors.netix.net/kde/"
|
||||
"https://ftp.cc.uoc.gr/mirrors/kde/"
|
||||
;; North America
|
||||
|
@ -307,7 +305,7 @@
|
|||
"https://mirrors.xtom.jp/kde/"
|
||||
"https://mirrors.xtom.hk/kde/"
|
||||
;; Africa
|
||||
"http://mirror.retentionrange.co.bw/kde/"
|
||||
"https://mirror.dimensiondata.com/mirror/ftp.kde.org/"
|
||||
;; Oceania
|
||||
"https://mirrors.xtom.au/kde/")
|
||||
(openbsd
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
|
@ -775,6 +775,23 @@ x86_64-linux when COREUTILS is lowered."
|
|||
whether this should be considered a \"native\" input or not."
|
||||
(%gexp-input thing output native?))
|
||||
|
||||
;; Allow <gexp-input>s to be used within gexps. This is useful when willing
|
||||
;; to force a specific reference to an object, as in (gexp-input hwloc "bin"),
|
||||
;; which forces a reference to the "bin" output of 'hwloc' instead of leaving
|
||||
;; it up to the recipient to pick the right output.
|
||||
(define-gexp-compiler gexp-input-compiler <gexp-input>
|
||||
compiler => (lambda (obj system target)
|
||||
(match obj
|
||||
(($ <gexp-input> thing output native?)
|
||||
(lower-object thing system
|
||||
#:target (and (not native?) target)))))
|
||||
expander => (lambda (obj lowered output/ignored)
|
||||
(match obj
|
||||
(($ <gexp-input> thing output native?)
|
||||
(let ((expand (or (lookup-expander thing)
|
||||
(lookup-expander lowered))))
|
||||
(expand thing lowered output))))))
|
||||
|
||||
;; Reference to one of the derivation's outputs, for gexps used in
|
||||
;; derivations.
|
||||
(define-record-type <gexp-output>
|
||||
|
@ -917,6 +934,11 @@ When TARGET is true, use it as the cross-compilation target triplet."
|
|||
corresponding <derivation-input> or store item."
|
||||
(define tuple->gexp-input
|
||||
(match-lambda
|
||||
(((? gexp-input? input))
|
||||
;; This case lets users specify the output of interest more
|
||||
;; conveniently, for instance by passing (gexp-input hwloc "lib") to
|
||||
;; the 'references-file' procedure.
|
||||
input)
|
||||
((thing)
|
||||
(%gexp-input thing "out" (not target)))
|
||||
((thing output)
|
||||
|
@ -1135,10 +1157,9 @@ applicable.
|
|||
When REFERENCES-GRAPHS is true, it must be a list of tuples of one of the
|
||||
following forms:
|
||||
|
||||
(FILE-NAME PACKAGE)
|
||||
(FILE-NAME PACKAGE OUTPUT)
|
||||
(FILE-NAME DERIVATION)
|
||||
(FILE-NAME DERIVATION OUTPUT)
|
||||
(FILE-NAME OBJ)
|
||||
(FILE-NAME OBJ OUTPUT)
|
||||
(FILE-NAME GEXP-INPUT)
|
||||
(FILE-NAME STORE-ITEM)
|
||||
|
||||
The right-hand-side of each element of REFERENCES-GRAPHS is automatically made
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2022-2023 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -41,6 +41,8 @@
|
|||
|
||||
(define* (least-authority-wrapper program
|
||||
#:key (name "pola-wrapper")
|
||||
(user #f)
|
||||
(group #f)
|
||||
(guest-uid 1000)
|
||||
(guest-gid 1000)
|
||||
(mappings '())
|
||||
|
@ -55,7 +57,11 @@ symbols; it runs with GUEST-UID and GUEST-GID. MAPPINGS is a list of
|
|||
<file-system-mapping> records indicating directories mirrored inside the
|
||||
execution environment of PROGRAM. DIRECTORY is the working directory of the
|
||||
wrapped process. Each environment listed in PRESERVED-ENVIRONMENT-VARIABLES
|
||||
is preserved; other environment variables are erased."
|
||||
is preserved; other environment variables are erased.
|
||||
|
||||
When USER and GROUP are set and NAMESPACES does not include 'user, change UIDs
|
||||
and GIDs to these prior to executing PROGRAM. This usually requires that the
|
||||
resulting wrapper be executed as root so it can call setgid(2) and setuid(2)."
|
||||
(define code
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu system file-systems)
|
||||
|
@ -113,6 +119,10 @@ is preserved; other environment variables are erased."
|
|||
#$program signal)
|
||||
(exit (+ 128 signal))))))
|
||||
|
||||
(define namespaces '#$namespaces)
|
||||
(define host-group '#$group)
|
||||
(define host-user '#$user)
|
||||
|
||||
;; Note: 'call-with-container' creates a sub-process that this one
|
||||
;; waits for. This might seem suboptimal but unshare(2) isn't
|
||||
;; really applicable: the process would still run in the same PID
|
||||
|
@ -123,6 +133,17 @@ is preserved; other environment variables are erased."
|
|||
(lambda ()
|
||||
(chdir #$directory)
|
||||
(environ variables)
|
||||
|
||||
(unless (memq 'user namespaces)
|
||||
;; This process lives in its parent user namespace,
|
||||
;; presumably as root; now is the time to setgid/setuid if
|
||||
;; asked for it (the 'clone' call would fail with EPERM if we
|
||||
;; changed UIDs/GIDs beforehand).
|
||||
(when host-group
|
||||
(setgid (group:gid (getgr host-group))))
|
||||
(when host-user
|
||||
(setuid (passwd:uid (getpw host-user)))))
|
||||
|
||||
(apply execl #$program #$program (cdr (command-line))))
|
||||
|
||||
;; Don't assume PROGRAM can behave as an init process.
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
file))
|
||||
|
||||
(define (ensure-valid-store-file-name name)
|
||||
"Replace any character not allowed in a stror name by an underscore."
|
||||
"Replace any character not allowed in a store name by an underscore."
|
||||
|
||||
(define valid
|
||||
;; according to nix/libstore/store-api.cc
|
||||
|
|
|
@ -2155,11 +2155,11 @@ void DerivationGoal::runChild()
|
|||
int cur = personality(0xffffffff);
|
||||
if (cur != -1) personality(cur | ADDR_NO_RANDOMIZE);
|
||||
|
||||
/* Ask the kernel to eagerly kill us & our children if it runs out of
|
||||
memory, regardless of blame, to preserve ‘real’ user data & state. */
|
||||
try {
|
||||
writeFile("/proc/self/oom_score_adj", "1000"); // 100%
|
||||
} catch (...) { ignoreException(); }
|
||||
/* Ask the kernel to eagerly kill us & our children if it runs out of
|
||||
memory, regardless of blame, to preserve ‘real’ user data & state. */
|
||||
try {
|
||||
writeFile("/proc/self/oom_score_adj", "1000"); // 100%
|
||||
} catch (...) { ignoreException(); }
|
||||
#endif
|
||||
|
||||
/* Fill in the environment. */
|
||||
|
|
|
@ -393,6 +393,30 @@
|
|||
(list item))
|
||||
(null? (lowered-gexp-inputs lexp)))))
|
||||
|
||||
(test-equal "gexp references non-existent output"
|
||||
"no-default-output"
|
||||
(guard (c ((derivation-missing-output-error? c)
|
||||
(derivation-name (derivation-error-derivation c))))
|
||||
(let* ((obj (computed-file "no-default-output"
|
||||
#~(mkdir #$output:bar)))
|
||||
(exp #~(symlink #$obj #$output))
|
||||
(drv (run-with-store %store (lower-gexp exp))))
|
||||
(pk 'oops! drv #f))))
|
||||
|
||||
(test-assert "gexp-input, as first-class input"
|
||||
;; Insert a <gexp-input> record in a gexp as a way to specify which output
|
||||
;; of OBJ should be used.
|
||||
(let* ((obj (computed-file "foo" #~(mkdir #$output:bar)))
|
||||
(exp #~(list #$(gexp-input obj "bar")))
|
||||
(drv (run-with-store %store (lower-object obj)))
|
||||
(item (derivation->output-path drv "bar"))
|
||||
(lexp (run-with-store %store (lower-gexp exp))))
|
||||
(and (match (lowered-gexp-inputs lexp)
|
||||
((input)
|
||||
(eq? (derivation-input-derivation input) drv)))
|
||||
(equal? (lowered-gexp-sexp lexp)
|
||||
`(list ,item)))))
|
||||
|
||||
(test-assertm "with-parameters for %current-system"
|
||||
(mlet* %store-monad ((system -> (match (%current-system)
|
||||
("aarch64-linux" "x86_64-linux")
|
||||
|
@ -1628,6 +1652,36 @@ importing.* \\(guix config\\) from the host"
|
|||
read)
|
||||
refs)))))))
|
||||
|
||||
(test-assertm "references-file, non-default output"
|
||||
(let* ((exp #~(begin
|
||||
(mkdir #$output)
|
||||
(symlink #$%bootstrap-guile #$output:extra)))
|
||||
(computed (computed-file "computed" exp
|
||||
#:guile %bootstrap-guile))
|
||||
(refs1 (references-file computed
|
||||
#:guile %bootstrap-guile))
|
||||
;; Wrap COMPUTE in 'gexp-input' to get the "extra" output.
|
||||
(refs2 (references-file (gexp-input computed "extra")
|
||||
#:guile %bootstrap-guile)))
|
||||
(mlet* %store-monad ((drv0 (lower-object %bootstrap-guile))
|
||||
(drv1 (lower-object computed))
|
||||
(drv2 (lower-object refs2))
|
||||
(drv3 (lower-object refs1)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv2 drv3))
|
||||
(mlet %store-monad ((refs ((store-lift requisites)
|
||||
(list (derivation->output-path
|
||||
drv1 "extra")))))
|
||||
(return
|
||||
(and (lset= string=?
|
||||
(call-with-input-file (derivation->output-path drv2)
|
||||
read)
|
||||
refs)
|
||||
(lset= string=?
|
||||
(call-with-input-file (derivation->output-path drv3)
|
||||
read)
|
||||
(list (derivation->output-path drv1))))))))))
|
||||
|
||||
(test-assert "lower-object & gexp-input-error?"
|
||||
(guard (c ((gexp-input-error? c)
|
||||
(gexp-error-invalid-input c)))
|
||||
|
|
Reference in New Issue