me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into mesa-updates

Change-Id: I16539f64df739453a83f8dfd962e04910a7d7ff5
master
John Kehayias 2023-12-28 21:13:26 -05:00
commit 92227248a6
No known key found for this signature in database
GPG Key ID: 499097AE5EA815D9
83 changed files with 2395 additions and 1444 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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"))))))))))

View File

@ -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

View File

@ -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))))
;;;

View File

@ -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)

View File

@ -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 \

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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")

View File

@ -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"))

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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+)))

View File

@ -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

View File

@ -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")

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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)

View File

@ -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

View File

@ -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))

View File

@ -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 © 20182021 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+

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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@}"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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) {

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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*"]

View File

@ -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

View File

@ -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;
}

View File

@ -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" \

View File

@ -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)

View File

@ -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 multipage 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")

View File

@ -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")

View File

@ -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)

View File

@ -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")

View File

@ -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+)))

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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)

View File

@ -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")

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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

View File

@ -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.

View File

@ -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))))))

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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. */

View File

@ -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)))