Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2022-09-29 07:26:37 +02:00
commit f66067febc
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
44 changed files with 1661 additions and 845 deletions

2
NEWS
View file

@ -100,7 +100,7 @@ similar to how 'guix time-machine' would do it, as regular packages.
*** New rebar-build-system *** New rebar-build-system
*** New services *** New services
anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup, anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup,
nar-herder, opendht, rasdaemon, seatd, strongswan nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
** Noteworthy bug fixes ** Noteworthy bug fixes
*** Fall back to Software Heritage when cloning a channel *** Fall back to Software Heritage when cloning a channel

View file

@ -31335,7 +31335,39 @@ systems.
The service type to enable the samba services @code{samba}, @code{nmbd}, The service type to enable the samba services @code{samba}, @code{nmbd},
@code{smbd} and @code{winbindd}. By default this service type does not @code{smbd} and @code{winbindd}. By default this service type does not
run as an AD DC, hence @code{samba} remains disabled. run any of the Samba daemons; they must be enabled individually.
Below is a basic example that configures a simple, anonymous
(unauthenticated) Samba file share exposing the @file{/public}
directory.
@quotation Tip
The @file{/public} directory and its contents must be world
readable/writable, so you'll want to run @samp{chmod -R 777 /public} on
it.
@end quotation
@quotation Caution
Such a Samba configuration should only be used in controlled
environments, and you should not share any private files using it, as
anyone connecting to your network would be able to access them.
@end quotation
@lisp
(service samba-service-type (samba-configuration
(enable-smbd? #t)
(config-file (plain-file "smb.conf" "\
[global]
map to guest = Bad User
logging = syslog@@1
[public]
browsable = yes
path = /public
read only = no
guest ok = yes
guest only = yes\n"))))
@end lisp
@end defvar @end defvar
@ -31347,41 +31379,42 @@ Configuration record for the Samba suite.
The samba package to use. The samba package to use.
@item @code{config-file} (default: @code{#f}) @item @code{config-file} (default: @code{#f})
The config file to use. The config file to use. To learn about its syntax, run @samp{man
smb.conf}.
@item @code{enable-samba?} (default: @code{#f}) @item @code{enable-samba?} (default: @code{#f})
Manually enable the @code{samba} daemon. Enable the @code{samba} daemon.
@item @code{enable-smbd?} (default: @code{#f}) @item @code{enable-smbd?} (default: @code{#f})
Manually enable the @code{smbd} daemon. Enable the @code{smbd} daemon.
@item @code{enable-nmbd?} (default: @code{#f}) @item @code{enable-nmbd?} (default: @code{#f})
Manually enable the @code{nmbd} daemon. Enable the @code{nmbd} daemon.
@item @code{enable-winbindd?} (default: @code{#f}) @item @code{enable-winbindd?} (default: @code{#f})
Manually enable the @code{winbindd} daemon. Enable the @code{winbindd} daemon.
@end table @end table
@end deftp @end deftp
@cindex wsdd @cindex wsdd, Web service discovery daemon
@subsubheading Web Service Discovery Daemon @subsubheading Web Service Discovery Daemon
Web Service Discovery Daemon implements The @acronym{WSDD, Web Service Discovery daemon} implements the
@uref{http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec-os.html, @uref{http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec-os.html,
Web Services Dynamic Discovery} protocol that enables host discovery -- Web Services Dynamic Discovery} protocol that enables host discovery
similar to Avahi -- over Multicast DNS. It is a drop-in replacement for over Multicast DNS, similar to what Avahi does. It is a drop-in
SMB hosts that have had SMBv1 disabled for security reasons. replacement for SMB hosts that have had SMBv1 disabled for security
reasons.
@defvr {Scheme Variable} wsdd-service-type @defvr {Scheme Variable} wsdd-service-type
Service type for the WSD host daemon. The value for Service type for the WSD host daemon. The value for
this service type is a @code{wsdd-configuration} record. The details this service type is a @code{wsdd-configuration} record. The details
for the @code{wsdd-configuration} record type are given below. for the @code{wsdd-configuration} record type are given below.
@end defvr @end defvr
@deftp{Data Type} wsdd-configuration This data type represents the @deftp {Data Type} wsdd-configuration
configuration for the wsdd service. This data type represents the configuration for the wsdd service.
@table @asis @table @asis

View file

@ -29,7 +29,8 @@
(title (title
(en "Guix System image creation is now documented") (en "Guix System image creation is now documented")
(de "Es gibt eine Dokumentation, wie Sie Guix-System-Abbilder („Images“) erzeugen") (de "Es gibt eine Dokumentation, wie Sie Guix-System-Abbilder („Images“) erzeugen")
(fr "La création d'images pour Guix System est à présent documentée")) (fr "La création d'images pour Guix System est à présent documentée")
(pt "A criação de imagens do Guix System agora está documentada"))
(body (body
(en "The Guix System image API that allows you to create customized (en "The Guix System image API that allows you to create customized
system images and turn them into actual bootable images is now documented in system images and turn them into actual bootable images is now documented in
@ -45,12 +46,18 @@ zu bringen.")
permettant de créer des images personnalisées et de les transformer en images permettant de créer des images personnalisées et de les transformer en images
amorçables est désormais documentée dans le chapitre @code{Création d'images amorçables est désormais documentée dans le chapitre @code{Création d'images
système}. Cette interface devrait être particulièrement utile aux personnes système}. Cette interface devrait être particulièrement utile aux personnes
qui essaient de faire fonctionner Guix sur de nouvelles machines."))) qui essaient de faire fonctionner Guix sur de nouvelles machines.")
(pt "A API de imagens do Guix System que permite criar imagens de
sistema customizadas e torná-las inicializáveis agora está documentada no
capítulo @code{Creating System Images} da documentação do Guix. Isso é
particularmente útil para pessoas tentando portar o Guix System para um novo
hardware.")))
(entry (commit "c8112f3bd95269ce4aca12dedbfe61bb6b37acae") (entry (commit "c8112f3bd95269ce4aca12dedbfe61bb6b37acae")
(title (title
(en "WSL system images support") (en "WSL system images support")
(de "WSL-Systemabbilder werden unterstützt") (de "WSL-Systemabbilder werden unterstützt")
(fr "Support pour les images système WSL")) (fr "Support pour les images système WSL")
(pt "Suporte a imagens de sistema WSL"))
(body (body
(en "The @command{guix system image} command can now generate system (en "The @command{guix system image} command can now generate system
images for the Windows Subsystem for Linux. To get started, you can for images for the Windows Subsystem for Linux. To get started, you can for
@ -81,6 +88,16 @@ exemple lancer la commande suivante depuis un répertoire de sources Guix :
et importer l'image obtenue de cette manière : et importer l'image obtenue de cette manière :
@command{wsl --import Guix ./guix ./wsl2-image.tar.gz}
@command{wsl -d Guix}.")
(pt "Agora o comando @command{guix system image} pode gerar imagens
de sistema para o Subsistema do Windows para Linux. Para começar, você pode
por exemplo rodar a partir de um checkout do repositório do Guix:
@command{guix system image gnu/system/images/wsl2.scm},
e importar a imagem resultante da seguinte maneira:
@command{wsl --import Guix ./guix ./wsl2-image.tar.gz} @command{wsl --import Guix ./guix ./wsl2-image.tar.gz}
@command{wsl -d Guix}."))) @command{wsl -d Guix}.")))
(entry (commit "11a06d1e49f4d50d6789e05bbf35e2e145ff7838") (entry (commit "11a06d1e49f4d50d6789e05bbf35e2e145ff7838")

View file

@ -129,13 +129,23 @@ the haskell-build-system."
#:name "R team" #:name "R team"
#:description #:description
"The R language, CRAN and Bioconductor repositories, the \"cran\" importer, "The R language, CRAN and Bioconductor repositories, the \"cran\" importer,
and the r-build-system.")) and the r-build-system."
#:scope (list "gnu/packages/bioconductor.scm"
"gnu/packages/cran.scm"
"guix/build/r-build-system.scm"
"guix/build-system/r.scm"
"guix/import/cran.scm"
"guix/scripts/import/cran.scm"
"tests/cran.scm")))
(define-team julia (define-team julia
(team 'julia (team 'julia
#:name "Julia team" #:name "Julia team"
#:description #:description
"The Julia language, Julia packages, and the julia-build-system.")) "The Julia language, Julia packages, and the julia-build-system."
#:scope (list (make-regexp "^gnu/packages/julia(-.+|)\\.scm$")
"guix/build/julia-build-system.scm"
"guix/build-system/julia.scm")))
(define-team ocaml (define-team ocaml
(team 'ocaml (team 'ocaml
@ -185,7 +195,10 @@ ecosystem."
#:scope (list (make-regexp "^gnu/packages/emacs(-.+|)\\.scm$") #:scope (list (make-regexp "^gnu/packages/emacs(-.+|)\\.scm$")
"guix/build/emacs-build-system.scm" "guix/build/emacs-build-system.scm"
"guix/build/emacs-utils.scm" "guix/build/emacs-utils.scm"
"guix/build-system/emacs.scm"))) "guix/build-system/emacs.scm"
"guix/import/elpa.scm"
"guix/scripts/import/elpa.scm"
"tests/elpa.scm")))
(define-team lisp (define-team lisp
(team 'lisp (team 'lisp
@ -200,11 +213,23 @@ asdf-build-system."
(define-team ruby (define-team ruby
(team 'ruby (team 'ruby
#:name "Ruby team")) #:name "Ruby team"
#:scope (list "gnu/packages/ruby.scm"
"guix/build/ruby-build-system.scm"
"guix/build-system/ruby.scm"
"guix/import/gem.scm"
"guix/scripts/import/gem.scm"
"tests/gem.scm")))
(define-team go (define-team go
(team 'go (team 'go
#:name "Go team")) #:name "Go team"
#:scope (list "gnu/packages/golang.scm"
"guix/build/go-build-system.scm"
"guix/build-system/go.scm"
"guix/import/go.scm"
"guix/scripts/import/go.scm"
"tests/go.scm")))
(define-team embedded-bootstrap (define-team embedded-bootstrap
(team 'embedded-bootstrap (team 'embedded-bootstrap
@ -212,11 +237,23 @@ asdf-build-system."
(define-team rust (define-team rust
(team 'rust (team 'rust
#:name "Rust")) #:name "Rust"
#:scope (list (make-regexp "^gnu/packages/(crates|rust)(-.+|)\\.scm$")
"guix/build/cargo-build-system.scm"
"guix/build/cargo-utils.scm"
"guix/build-system/cargo.scm"
"guix/import/crate.scm"
"guix/scripts/import/crate.scm"
"tests/crate.scm")))
(define-team kernel (define-team kernel
(team 'kernel (team 'kernel
#:name "Linux-libre kernel team")) #:name "Linux-libre kernel team"
#:scope (list "gnu/build/linux-modules.scm"
"gnu/packages/linux.scm"
"gnu/tests/linux-modules.scm"
"guix/build/linux-module-build-system.scm"
"guix/build-system/linux-module.scm")))
(define-team core (define-team core
(team 'core (team 'core
@ -316,17 +353,21 @@ asdf-build-system."
(define-team translations (define-team translations
(team 'translations (team 'translations
#:name "Translations")) #:name "Translations"
#:scope (list (make-regexp "^po/"))))
(define-team installer (define-team installer
(team 'installer (team 'installer
#:name "Installer script and system installer" #:name "Installer script and system installer"
#:scope #:scope (list (make-regexp "^gnu/installer(\\.scm$|/)"))))
(list (make-regexp "^guix/installer(\\.scm$|/)"))))
(define-team home (define-team home
(team 'home (team 'home
#:name "Team for \"Guix Home\"")) #:name "Team for \"Guix Home\""
#:scope (list (make-regexp "^(gnu|guix/scripts)/home(\\.scm$|/)")
"tests/guix-home.sh"
"tests/home-import.scm"
"tests/home-services.scm")))
(define-team mentors (define-team mentors
(team 'mentors (team 'mentors
@ -339,7 +380,8 @@ asdf-build-system."
#:name "Mozilla" #:name "Mozilla"
#:description #:description
"Taking care about Icecat and Icedove, built from Mozilla Firefox "Taking care about Icecat and Icedove, built from Mozilla Firefox
and Thunderbird.")) and Thunderbird."
#:scope (list "gnu/packages/gnuzilla.scm")))
(define-team racket (define-team racket
(team 'racket (team 'racket
@ -347,7 +389,8 @@ and Thunderbird."))
#:description #:description
"The Racket language and Racket-based languages, Racket packages, "The Racket language and Racket-based languages, Racket packages,
Racket's variant of Chez Scheme, and development of a Racket build system and Racket's variant of Chez Scheme, and development of a Racket build system and
importer.")) importer."
#:scope (list "gnu/packages/racket.scm")))
(define-member (person "Thiago Jung Bauermann" (define-member (person "Thiago Jung Bauermann"
@ -434,6 +477,14 @@ importer."))
"dev@jpoiret.xyz") "dev@jpoiret.xyz")
core installer) core installer)
(define-member (person "("
"paren@disroot.org")
home mentors)
(define-member (person "Simon Tournier"
"zimon.toutoune@gmail.com")
julia core mentors)
(define (find-team name) (define (find-team name)
(or (hash-ref %teams (string->symbol name)) (or (hash-ref %teams (string->symbol name))

View file

@ -997,6 +997,7 @@ dist_patch_DATA = \
%D%/packages/patches/cpuinfo-system-libraries.patch \ %D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/cpulimit-with-glib-2.32.patch \ %D%/packages/patches/cpulimit-with-glib-2.32.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \ %D%/packages/patches/crawl-upgrade-saves.patch \
%D%/packages/patches/crc32c-unbundle-googletest.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.patch \ %D%/packages/patches/clucene-contribs-lib.patch \
%D%/packages/patches/cube-nocheck.patch \ %D%/packages/patches/cube-nocheck.patch \
@ -1868,6 +1869,7 @@ dist_patch_DATA = \
%D%/packages/patches/teensy-loader-cli-help.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \
%D%/packages/patches/tensorflow-c-api-fix.patch \ %D%/packages/patches/tensorflow-c-api-fix.patch \
%D%/packages/patches/texinfo-5-perl-compat.patch \ %D%/packages/patches/texinfo-5-perl-compat.patch \
%D%/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch \
%D%/packages/patches/telegram-purple-adjust-test.patch \ %D%/packages/patches/telegram-purple-adjust-test.patch \
%D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-document-encoding.patch \
%D%/packages/patches/texi2html-i18n.patch \ %D%/packages/patches/texi2html-i18n.patch \
@ -1967,6 +1969,7 @@ dist_patch_DATA = \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \ %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \ %D%/packages/patches/webrtc-audio-processing-big-endian.patch \
%D%/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \ %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/widelands-add-missing-map-include.patch \ %D%/packages/patches/widelands-add-missing-map-include.patch \
%D%/packages/patches/widelands-system-wide_minizip.patch \ %D%/packages/patches/widelands-system-wide_minizip.patch \

View file

@ -51,6 +51,8 @@
;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com> ;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2022 Andreas Rammhold <andreas@rammhold.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -697,6 +699,30 @@ console.")
;; This package uses a modified version of the "ISC License". ;; This package uses a modified version of the "ISC License".
(license (license:non-copyleft "file://LICENSE"))))) (license (license:non-copyleft "file://LICENSE")))))
(define-public btop
(package
(name "btop")
(version "1.2.9")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/aristocratos/btop/archive/refs/tags/v"
version ".tar.gz"))
(sha256
(base32
"0cb5q7hrb9y378i98km9s6jbi5c50i7wra8m8jik5hf4m4s3930g"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;no test suite
#:make-flags #~(list (string-append "PREFIX=" #$output))
#:phases #~(modify-phases %standard-phases
(delete 'configure))))
(home-page "https://github.com/aristocratos/btop")
(synopsis "Resource monitor")
(description "Btop++ provides unified monitoring of CPU, memory, network
and processes.")
(license license:asl2.0)))
(define-public htop (define-public htop
(package (package
(name "htop") (name "htop")
@ -2125,14 +2151,16 @@ command.")
(substitute-keyword-arguments (package-arguments wpa-supplicant-minimal) (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases `(modify-phases ,phases
(add-after 'configure 'configure-for-dbus (add-after 'configure 'set-config-options
(lambda _ (lambda _
(let ((port (open-file ".config" "al"))) (let ((port (open-file ".config" "al")))
;; Enable Opportunistic Wireless Encryption (OWE) and D-Bus
;; support.
(display " (display "
CONFIG_OWE=y
CONFIG_CTRL_IFACE_DBUS_NEW=y CONFIG_CTRL_IFACE_DBUS_NEW=y
CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port) CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
(close-port port)) (close-port port))))
#t))
(add-after 'install-documentation 'install-dbus-conf (add-after 'install-documentation 'install-dbus-conf
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))

View file

@ -55,6 +55,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
@ -1182,6 +1183,41 @@ performance concurrent systems developed in C99+.")
(license (list license:bsd-2 ;everything except... (license (list license:bsd-2 ;everything except...
license:asl2.0)))) ;src/ck_hp.c license:asl2.0)))) ;src/ck_hp.c
(define-public libdispatch
(package
(name "libdispatch")
(version "5.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/apple/swift-corelibs-libdispatch")
(commit (string-append "swift-" version "-RELEASE"))))
(file-name (git-file-name name version))
(sha256
(base32
"0skg1azbhbg7y0ql2a5sx6lmfip8l1rajqm95zzf9xv45n4dg9nn"))))
(build-system cmake-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
;; Use Clang instead of GCC.
(add-before 'configure 'prepare-build-environment
(lambda _
(setenv "AR" "llvm-ar")
(setenv "NM" "llvm-nm")
(setenv "CC" "clang")
(setenv "CXX" "clang++"))))))
(native-inputs (list clang llvm))
(home-page "https://apple.github.io/swift-corelibs-libdispatch/")
(synopsis "Concurrent code execution on multicore hardware")
(description
"Grand Central Dispatch (GCD or libdispatch) implements a concurrency model
wherein program tasks are divided into work items. These can be run
sequentially or in parallel, with optional synchronization in between, and GCD
will take care of dispatching tasks to available cores.")
(license license:asl2.0)))
(define-public utf8-h (define-public utf8-h
;; The latest tag is used as there is no release. ;; The latest tag is used as there is no release.
(let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734") (let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734")

View file

@ -100,6 +100,7 @@
"third_party/angle/src/third_party/volk" ;Expat "third_party/angle/src/third_party/volk" ;Expat
"third_party/apple_apsl" ;APSL2.0 "third_party/apple_apsl" ;APSL2.0
"third_party/axe-core" ;MPL2.0 "third_party/axe-core" ;MPL2.0
"third_party/bidimapper" ;ASL2.0
"third_party/blink" ;BSD-3, LGPL2+ "third_party/blink" ;BSD-3, LGPL2+
"third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC) "third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
"third_party/boringssl/src/third_party/fiat" ;Expat "third_party/boringssl/src/third_party/fiat" ;Expat
@ -173,6 +174,7 @@
"third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+ "third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
"third_party/iccjpeg" ;IJG "third_party/iccjpeg" ;IJG
"third_party/inspector_protocol" ;BSD-3 "third_party/inspector_protocol" ;BSD-3
"third_party/ipcz" ;BSD-3
"third_party/jinja2" ;BSD-3 "third_party/jinja2" ;BSD-3
"third_party/jstemplate" ;ASL2.0 "third_party/jstemplate" ;ASL2.0
"third_party/khronos" ;Expat, SGI "third_party/khronos" ;Expat, SGI
@ -317,9 +319,10 @@
;; run the Blink performance tests, just remove everything to save ~70MiB. ;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests")) '("third_party/blink/perf_tests"))
(define %chromium-version "105.0.5195.125") (define %chromium-version "106.0.5249.61")
(define %ungoogled-revision (string-append %chromium-version "-1")) (define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision "debian/102.0.5005.61-1") (define %debian-revision "debian/102.0.5005.61-1")
(define %arch-revision "6afedb08139b97089ce8ef720ece5cd14c83948c")
(define %ungoogled-origin (define %ungoogled-origin
(origin (origin
@ -329,7 +332,7 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256 (sha256
(base32 (base32
"0k16wma9lj9q34xgz377nasnfzcw7wi73l91r41yilvgb3l2fgw8")))) "0mz3f4f2q72zl6m9vxxx084z0a1kfmsqf7fcir5bka85ap2klpjl"))))
(define %debian-origin (define %debian-origin
(origin (origin
@ -345,7 +348,7 @@
"1ln6r1qzlr7dsgvcbssvvc34my4mpkwv9hmvlb2dhjncs7isp65j")))) "1ln6r1qzlr7dsgvcbssvvc34my4mpkwv9hmvlb2dhjncs7isp65j"))))
(define %chromium-gcc-patchset (define %chromium-gcc-patchset
(let ((commit "chromium-105-patchset-1")) (let ((commit "chromium-106-patchset-3"))
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -355,7 +358,7 @@
(string-drop commit 9))) (string-drop commit 9)))
(sha256 (sha256
(base32 (base32
"08c3pbdqjdqi7rmyqkkh6q429611ikakf4gkzwg1gr07vyknwkfa"))))) "109garl1z19zgn3sgg1y2339aa229kfpmlb238cp6kbd7gv8j43x")))))
(define (origin-file origin file) (define (origin-file origin file)
(computed-file (computed-file
@ -377,23 +380,27 @@
(define %gcc-patches (define %gcc-patches
(map gcc-patch (map gcc-patch
'("chromium-105-AdjustMaskLayerGeometry-ceilf.patch" '("chromium-106-AutofillPopupControllerImpl-namespace.patch"
"chromium-105-Bitmap-include.patch" "chromium-106-LinuxInputMethodContext-include.patch"
"chromium-105-browser_finder-include.patch" "chromium-106-ReverseBeaconTimeoutSorter-constexpr.patch")))
"chromium-105-raw_ptr-noexcept.patch"
"chromium-105-Trap-raw_ptr.patch")))
;; Take a patch from Arch that reverts a change which requires an unreleased (define (arch-patch revision name hash)
;; version of ffmpeg.
(define %ungoogled-chromium-unroll-ffmpeg.patch
(origin (origin
(method url-fetch) (method url-fetch)
(uri "https://raw.githubusercontent.com/archlinux/svntogit-packages\ (uri (string-append "https://raw.githubusercontent.com/archlinux"
/f3225f99b900e11ac900725992ea883142d7309c/trunk/roll-src-third_party-ffmpeg.patch") "/svntogit-packages/" revision "/trunk/" name))
(file-name "ungoogled-chromium-unroll-ffmpeg.patch") (sha256 (base32 hash))))
(sha256
(base32 (define %reverse-patches
"0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh")))) (list
;; These patches revert changes that require an unreleased ffmpeg.
(arch-patch %arch-revision "REVERT-roll-src-third_party-ffmpeg-m102.patch"
"0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh")
(arch-patch %arch-revision "REVERT-roll-src-third_party-ffmpeg-m106.patch"
"0li10cvxnppmmmsc7w77b1s7z02s5bzd39zsal9x768708fx64jc")
;; Fix crash when using Global Media Controls.
(arch-patch %arch-revision "REVERT-enable-GlobalMediaControlsCastStartStop.patch"
"1ilsw421lylkjnq3lvc607bdx7cvwlish8qzgwx9s84l4hzv37vp")))
(define %guix-patches (define %guix-patches
(list (local-file (list (local-file
@ -436,8 +443,11 @@
(append '#+%debian-patches '#+%guix-patches (append '#+%debian-patches '#+%guix-patches
'#+%gcc-patches)) '#+%gcc-patches))
(invoke "patch" "-Rp1" "--force" "--input" "--no-backup-if-mismatch" ;; These patches are "reversed", i.e. their changes should be undone.
"--input" #$%ungoogled-chromium-unroll-ffmpeg.patch) (for-each (lambda (patch)
(invoke "patch" "-Rp1" "-F3" "--force" "--input"
patch "--no-backup-if-mismatch"))
'#+%reverse-patches)
(with-directory-excursion #+%ungoogled-origin (with-directory-excursion #+%ungoogled-origin
(format #t "Ungooglifying...~%") (format #t "Ungooglifying...~%")
@ -506,7 +516,7 @@
%chromium-version ".tar.xz")) %chromium-version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0rhay46fnfffqcpk6c856hj414508fmhda600lz5whcacr25q6r0")) "15qljfg8w124yp65srp1rz3ywrlqhzqzkhimn1h9xz0jkf9cnypj"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet)))) (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -624,10 +634,10 @@
;; This include path is added by Debians openjpeg patch. ;; This include path is added by Debians openjpeg patch.
(("/usr/include/openjpeg-2.4") openjpeg)) (("/usr/include/openjpeg-2.4") openjpeg))
;; Remove contrib/ prefix from minizip header inclusions. ;; Adjust minizip header inclusions.
(substitute* (find-files "third_party/tflite_support\ (substitute* (find-files "third_party/tflite_support\
/src/tensorflow_lite_support/metadata/cc") /src/tensorflow_lite_support/metadata/cc")
(("contrib/minizip/") (("third_party/zlib/minizip/")
"minizip/")) "minizip/"))
(substitute* (substitute*
@ -762,11 +772,9 @@
;; Disable compiler flags that require Clang 15. ;; Disable compiler flags that require Clang 15.
(substitute* "build/config/compiler/BUILD.gn" (substitute* "build/config/compiler/BUILD.gn"
(("\"-no-opaque-pointers\",")
"")
(("\"-Wno-unqualified-std-cast-call\"") (("\"-Wno-unqualified-std-cast-call\"")
"") "")
(("\"-Wno-deprecated-non-prototype\"") (("\"-Wno-deprecated-builtins\",")
"")) ""))
;; TODO: pre-compile instead. Avoids a race condition. ;; TODO: pre-compile instead. Avoids a race condition.

View file

@ -1041,6 +1041,15 @@ Google's C++ code base.")
`(cons* "-DBUILD_TESTING=ON" `(cons* "-DBUILD_TESTING=ON"
(delete "-DABSL_RUN_TESTS=ON" ,flags)))))))) (delete "-DABSL_RUN_TESTS=ON" ,flags))))))))
(define-public abseil-cpp-cxxstd17
(let ((base abseil-cpp))
(hidden-package
(package/inherit base
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:configure-flags flags)
#~(cons* "-DCMAKE_CXX_STANDARD=17" #$flags))))))))
(define-public pegtl (define-public pegtl
(package (package
(name "pegtl") (name "pegtl")
@ -1907,3 +1916,41 @@ and above. It is header only and has zero dependencies. It provides a
templated string type for compatibility with any STL-like string (std::string, templated string type for compatibility with any STL-like string (std::string,
std::wstring, etc).") std::wstring, etc).")
(license license:boost1.0))) (license license:boost1.0)))
(define-public crc32c
(package
(name "crc32c")
(version "1.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/crc32c")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0966lyy3w5cnrs0c0fkma4hga51k54hns72l4n76944awqssap7j"))
(patches (search-patches "crc32c-unbundle-googletest.patch"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
"-DCRC32C_BUILD_BENCHMARKS=OFF"
"-DCRC32C_USE_GLOG=OFF"
(string-append
"-DCRC32C_BUILD_TESTS="
;; TODO: perhaps infer #:tests?
(if #$(%current-target-system)
"OFF" "ON")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'make-reproducible
(lambda _
(substitute* "CMakeLists.txt"
(("if\\(HAVE_SSE42\\)") "if(FALSE)")))))))
(native-inputs (list googletest))
(home-page "https://github.com/google/crc32c")
(synopsis "Cyclic redundancy check")
(description
"This package provides architecture-specific implementations of the
CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
(license license:bsd-3)))

View file

@ -20010,6 +20010,26 @@ inline CSS directives, and it can be rendered both with and without word
wrap.") wrap.")
(license license:expat))) (license license:expat)))
(define-public r-ggghost
(package
(name "r-ggghost")
(version "0.2.1")
(source (origin
(method url-fetch)
(uri (cran-uri "ggghost" version))
(sha256
(base32
"0kvsjadxxdf6yvzk4a6yqkg02q1ysslvf3m0a369bdim396z4hnv"))))
(properties `((upstream-name . "ggghost")))
(build-system r-build-system)
(propagated-inputs (list r-animation r-ggplot2))
(home-page "https://github.com/jonocarroll/ggghost")
(synopsis "Capture the spirit of your ggplot2 calls")
(description
"This package lets you create a reproducible @code{ggplot2} object by
storing the data and calls.")
(license license:gpl3+)))
(define-public r-ggtext (define-public r-ggtext
(package (package
(name "r-ggtext") (name "r-ggtext")
@ -20034,6 +20054,31 @@ complex formatted plot labels (titles, subtitles, facet labels, axis labels,
etc.). Text boxes with automatic word wrap are also supported.") etc.). Text boxes with automatic word wrap are also supported.")
(license license:gpl2))) (license license:gpl2)))
(define-public r-ggthemeassist
(package
(name "r-ggthemeassist")
(version "0.1.5")
(source (origin
(method url-fetch)
(uri (cran-uri "ggThemeAssist" version))
(sha256
(base32
"1biw91a8p13h62v4w3yim6ghr98khmyhb3qd0h04asf91vvmpxbv"))))
(properties `((upstream-name . "ggThemeAssist")))
(build-system r-build-system)
(propagated-inputs
(list r-formatr
r-ggplot2
r-miniui
r-rstudioapi
r-shiny))
(home-page "https://github.com/calligross/ggthemeassist")
(synopsis "Add-in to customize ggplot2 themes")
(description
"This package provides an Rstudio add-in that delivers a graphical
interface for editing @code{ggplot2} theme elements.")
(license license:gpl3)))
;; This package includes minified JavaScript files. When upgrading please ;; This package includes minified JavaScript files. When upgrading please
;; check that there are no new minified JavaScript files. ;; check that there are no new minified JavaScript files.
(define-public r-flexdashboard (define-public r-flexdashboard
@ -24758,6 +24803,61 @@ Mardia, K.V. (2016). Statistical shape analysis, with Applications in R (2nd
Edition), John Wiley and Sons.") Edition), John Wiley and Sons.")
(license license:gpl2))) (license license:gpl2)))
(define-public r-animation
(package
(name "r-animation")
(version "2.7")
(source (origin
(method url-fetch)
(uri (cran-uri "animation" version))
(sha256
(base32
"0sg4sz5lkn85yzpcg22xkr7921cbnh7g74nlp9imjy7c0hdqyhc8"))
(snippet
'(for-each delete-file
'("inst/misc/scianimator/js/jquery.scianimator.min.js"
"inst/misc/scianimator/js/jquery-1.4.4.min.js")))))
(properties `((upstream-name . "animation")))
(build-system r-build-system)
(arguments
(list
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'process-javascript
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "inst/misc/"
(symlink (search-input-file
inputs
"share/javascript/jquery.scianimator.min.js")
"scianimator/js/jquery.scianimator.min.js")
(invoke "esbuild" (assoc-ref inputs "js-jquery")
"--minify"
(string-append "--outfile="
"scianimator/js/jquery-1.4.4.min.js"))))))))
(propagated-inputs (list r-magick))
(inputs (list js-scianimator))
(native-inputs
`(("esbuild" ,esbuild)
("js-jquery"
,(origin
(method url-fetch)
(uri "https://code.jquery.com/jquery-1.4.4.js")
(sha256
(base32
"10nl4smq63vrfb0c3n0fknm1zw7ss8gicy6wc6jb6l3rmyad075k"))))))
(home-page "https://yihui.org/animation/")
(synopsis "Gallery of animations and utilities to create animations")
(description
"This package provides functions for animations in statistics, covering
topics in probability theory, mathematical statistics, multivariate
statistics, non-parametric statistics, sampling survey, linear models, time
series, computational statistics, data mining and machine learning. These
functions may be helpful in teaching statistics and data analysis. Also
provided in this package are a series of functions to save animations to
various formats, e.g. GIF, HTML pages, PDF, and videos. PDF animations can be
inserted into Sweave / @code{knitr} easily.")
(license (list license:gpl2+ license:gpl3+))))
(define-public r-anthropometry (define-public r-anthropometry
(package (package
(name "r-anthropometry") (name "r-anthropometry")
@ -26144,6 +26244,25 @@ uses a trans-dimensional @dfn{Markov Chain Monte Carlo} (MCMC) approach based
on a continuous-time birth-death process.") on a continuous-time birth-death process.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public r-bundesligr
(package
(name "r-bundesligr")
(version "0.1.0")
(source (origin
(method url-fetch)
(uri (cran-uri "bundesligR" version))
(sha256
(base32
"0dnhbh9jh7dfbk7mfh8msq4ys5kakalr0kwkycycrb2q8rd049vp"))))
(properties `((upstream-name . "bundesligR")))
(build-system r-build-system)
(home-page "https://github.com/ottlngr/bundesligR")
(synopsis "All final tables of the Bundesliga")
(description
"This package provides all final tables of Germany's highest football
league, the Bundesliga. It contains data from 1964 to 2016.")
(license license:gpl3)))
(define-public r-d3network (define-public r-d3network
(package (package
(name "r-d3network") (name "r-d3network")
@ -26802,6 +26921,28 @@ Yue-Pilon's (Yue, 2002) pre-whitening approaches to determining trends in
climate data.") climate data.")
(license license:lgpl2.1))) (license license:lgpl2.1)))
(define-public r-rlecuyer
(package
(name "r-rlecuyer")
(version "0.3-5")
(source (origin
(method url-fetch)
(uri (cran-uri "rlecuyer" version))
(sha256
(base32
"09mniai7v8gapr6hd3zm8sm3vi1zcyhgym389904ykb2yx7l68s7"))))
(properties `((upstream-name . "rlecuyer")))
(build-system r-build-system)
(home-page
"https://www.iro.umontreal.ca/~lecuyer/myftp/papers/streams00.pdf")
(synopsis "R interface to RNG with multiple streams")
(description
"This package provides an interface to the C implementation of the random
number generator with multiple independent streams developed by L'Ecuyer et
al (2002). The main purpose of this package is to enable the use of this
random number generator in parallel R applications.")
(license license:gpl2+)))
(define-public r-rlinsolve (define-public r-rlinsolve
(package (package
(name "r-rlinsolve") (name "r-rlinsolve")
@ -31932,6 +32073,34 @@ split, combine, and compress. This package interfaces directly to the
data you need the @code{pdftools} package.") data you need the @code{pdftools} package.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public r-pbdmpi
(package
(name "r-pbdmpi")
(version "0.4-4")
(source (origin
(method url-fetch)
(uri (cran-uri "pbdMPI" version))
(sha256
(base32
"006pm2yn4mdrpwhfflqcybzv41lz7zssrjrcpq5g98zf60p9c07a"))))
(properties `((upstream-name . "pbdMPI")))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'install 'mpi-setup
,%openmpi-setup))))
(inputs (list openmpi))
(propagated-inputs (list r-float r-rlecuyer))
(native-inputs (list pkg-config))
(home-page "https://pbdr.org/")
(synopsis "Programming with Big Data -- Interface to MPI")
(description
"This package provides an efficient interface to MPI by utilizing S4
classes and methods with a focus on @dfn{Single Program/Multiple Data} (SPMD)
parallel programming style, which is intended for batch parallel execution.")
(license license:mpl2.0)))
(define-public r-pdftools (define-public r-pdftools
(package (package
(name "r-pdftools") (name "r-pdftools")

View file

@ -16861,8 +16861,41 @@ hexadecimal, base32, and base64.")
"Processing of data: URL according to WHATWG's Fetch Standard.") "Processing of data: URL according to WHATWG's Fetch Standard.")
(license (list license:expat license:asl2.0)))) (license (list license:expat license:asl2.0))))
(define-public rust-datetime-0.5
(package
(name "rust-datetime")
(version "0.5.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "datetime" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1g2lhc2ay46njrnnyc0729ibyzkpv3r3d4g0h3gzwmrygykzghs4"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-iso8601" ,rust-iso8601-0.3)
("rust-libc" ,rust-libc-0.2)
("rust-locale" ,rust-locale-0.2)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-pad" ,rust-pad-0.1)
("rust-redox-syscall" ,rust-redox-syscall-0.1)
("rust-winapi" ,rust-winapi-0.3))
#:cargo-development-inputs
(("rust-regex" ,rust-regex-0.1)
("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))
(home-page "https://github.com/rust-datetime/datetime")
(synopsis "Library for date and time formatting and arithmetic")
(description "This package provides a library for date and time formatting
and arithmetic.")
(license license:expat)))
(define-public rust-datetime-0.4 (define-public rust-datetime-0.4
(package (package
(inherit rust-datetime-0.5)
(name "rust-datetime") (name "rust-datetime")
(version "0.4.7") (version "0.4.7")
(source (source
@ -16874,7 +16907,6 @@ hexadecimal, base32, and base64.")
(sha256 (sha256
(base32 (base32
"1fd74bq48xg8ki5yw1mr1pa5hd3j5lbk4iqc5r0kh3l62b0vci2w")))) "1fd74bq48xg8ki5yw1mr1pa5hd3j5lbk4iqc5r0kh3l62b0vci2w"))))
(build-system cargo-build-system)
(arguments (arguments
`(#:cargo-inputs `(#:cargo-inputs
(("rust-iso8601" ,rust-iso8601-0.1) (("rust-iso8601" ,rust-iso8601-0.1)
@ -16887,12 +16919,7 @@ hexadecimal, base32, and base64.")
("rust-winapi" ,rust-winapi-0.2)) ("rust-winapi" ,rust-winapi-0.2))
#:cargo-development-inputs #:cargo-development-inputs
(("rust-regex" ,rust-regex-0.1) (("rust-regex" ,rust-regex-0.1)
("rust-rustc-serialize" ,rust-rustc-serialize-0.3)))) ("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))))
(home-page "https://github.com/rust-datetime/datetime")
(synopsis "Library for date and time formatting and arithmetic")
(description "This package provides a library for date and time formatting
and arithmetic.")
(license license:expat)))
(define-public rust-dbl-0.3 (define-public rust-dbl-0.3
(package (package
@ -30422,8 +30449,30 @@ and locking in the core framework.")
whether or not a given path points to an executable file.") whether or not a given path points to an executable file.")
(license (list license:expat license:asl2.0)))) (license (list license:expat license:asl2.0))))
(define-public rust-iso8601-0.3
(package
(name "rust-iso8601")
(version "0.3.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "iso8601" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0vvn6f9gv2295ik77nvaz99wzbwz1bmasrd787sz6d9mlwa6ks23"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-nom" ,rust-nom-4))))
(home-page "https://github.com/badboy/iso8601")
(synopsis "Parsing ISO8601 dates using nom")
(description "Parsing ISO8601 dates using nom.")
(license license:expat)))
(define-public rust-iso8601-0.1 (define-public rust-iso8601-0.1
(package (package
(inherit rust-iso8601-0.3)
(name "rust-iso8601") (name "rust-iso8601")
(version "0.1.1") (version "0.1.1")
(source (source
@ -30439,11 +30488,7 @@ whether or not a given path points to an executable file.")
(arguments (arguments
`(#:cargo-inputs `(#:cargo-inputs
(("rust-clippy" ,rust-clippy-0.0) (("rust-clippy" ,rust-clippy-0.0)
("rust-nom" ,rust-nom-1)))) ("rust-nom" ,rust-nom-1))))))
(home-page "https://github.com/badboy/iso8601")
(synopsis "Parsing ISO8601 dates using nom")
(description "Parsing ISO8601 dates using nom.")
(license license:expat)))
(define-public rust-itertools-0.10 (define-public rust-itertools-0.10
(package (package
@ -74614,8 +74659,33 @@ implementation that works everywhere, even WASM!")
"Library to support the reading and writing of zip files.") "Library to support the reading and writing of zip files.")
(license license:expat))) (license license:expat)))
(define-public rust-zoneinfo-compiled-0.5
(package
(name "rust-zoneinfo-compiled")
(version "0.5.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "zoneinfo_compiled" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1pm50w4vv34r08mrajfvyhc1254gv8zv4q6p7gs315c9bvkfpyv4"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-byteorder" ,rust-byteorder-1)
("rust-datetime" ,rust-datetime-0.5))))
(home-page "https://github.com/rust-datetime/zoneinfo-compiled/")
(synopsis "Library for parsing compiled zoneinfo files")
(description
"This package provides a library for parsing compiled zoneinfo files.")
(license license:expat)))
(define-public rust-zoneinfo-compiled-0.4 (define-public rust-zoneinfo-compiled-0.4
(package (package
(inherit rust-zoneinfo-compiled-0.5)
(name "rust-zoneinfo-compiled") (name "rust-zoneinfo-compiled")
(version "0.4.8") (version "0.4.8")
(source (source
@ -74627,16 +74697,10 @@ implementation that works everywhere, even WASM!")
(sha256 (sha256
(base32 (base32
"0bnm19w791q6kp79s0zl1cj9w51bw5xrifrxfy3g1p05i676y4vf")))) "0bnm19w791q6kp79s0zl1cj9w51bw5xrifrxfy3g1p05i676y4vf"))))
(build-system cargo-build-system)
(arguments (arguments
`(#:cargo-inputs `(#:cargo-inputs
(("rust-byteorder" ,rust-byteorder-1) (("rust-byteorder" ,rust-byteorder-1)
("rust-datetime" ,rust-datetime-0.4)))) ("rust-datetime" ,rust-datetime-0.4))))))
(home-page "https://github.com/rust-datetime/zoneinfo-compiled/")
(synopsis "Library for parsing compiled zoneinfo files")
(description
"This package provides a library for parsing compiled zoneinfo files.")
(license license:expat)))
(define-public rust-zstd-0.9 (define-public rust-zstd-0.9
(package (package

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -487,6 +488,23 @@ you.")
on the @code{marked} project, which focuses on speed.") on the @code{marked} project, which focuses on speed.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public elm-community-random-extra
(package
(name "elm-community-random-extra")
(version "3.2.0")
(source (elm-package-origin
"elm-community/random-extra" version
(base32 "13l48mx4wj7qdxl1shn9ij34izap256vv3k49ncnxpkjb7m1m3xk")))
(build-system elm-build-system)
(propagated-inputs (list elm-time elm-random elm-core))
(inputs (list elm-explorations-test))
(home-page
"https://package.elm-lang.org/packages/elm-community/random-extra/")
(synopsis "Extra functions for the Elm core random library")
(description "@code{emacs-community-random-extra} includes lots of extra
helper functions for the Random module.")
(license license:bsd-3)))
(define-public elm-todomvc (define-public elm-todomvc
(let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290") (let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290")
(revision "1")) (revision "1"))

View file

@ -2736,7 +2736,7 @@ and readability. This package bundles those icons into a font.")
(define-public font-lxgw-wenkai (define-public font-lxgw-wenkai
(package (package
(name "font-lxgw-wenkai") (name "font-lxgw-wenkai")
(version "1.245") (version "1.245.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2744,7 +2744,7 @@ and readability. This package bundles those icons into a font.")
version "/lxgw-wenkai-v" version ".tar.gz")) version "/lxgw-wenkai-v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"01x5nfw0cy7v8vsjw32zayc0ryskiwj22yzqi28252896073mm9k")))) "13hvr1jz9xpb0cgi4xk3zfbn6w5x258zja55hznbgny2sijnjn8a"))))
(build-system font-build-system) (build-system font-build-system)
(home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/") (home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/")
(synopsis "Simplified Chinese Imitation Song typeface") (synopsis "Simplified Chinese Imitation Song typeface")
@ -2758,7 +2758,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
(package (package
(inherit font-lxgw-wenkai) (inherit font-lxgw-wenkai)
(name "font-lxgw-wenkai-tc") (name "font-lxgw-wenkai-tc")
(version "0.922") (version "0.922.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2766,7 +2766,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
version "/lxgw-wenkai-tc-v" version ".tar.gz")) version "/lxgw-wenkai-tc-v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0kb12sfb8ihsj14yzk5ib657xvswqy0hy5gr1vfbn1n05vzy8wyk")))) "0a1n0yfnh3sc3ldgjxxglw4xyg82i2pk432sk8hfdzrrl4zzjyz3"))))
(home-page "https://github.com/lxgw/LxgwWenKaitc") (home-page "https://github.com/lxgw/LxgwWenKaitc")
(synopsis "Traditional Chinese Imitation Song typeface") (synopsis "Traditional Chinese Imitation Song typeface")
(description (description

View file

@ -69,7 +69,8 @@
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages ruby) #:use-module (gnu packages ruby)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public arc-icon-theme (define-public arc-icon-theme
(package (package
@ -303,6 +304,44 @@ and products. Plots is designed to integrate well with the GNOME desktop and
takes advantage of modern hardware using OpenGL.") takes advantage of modern hardware using OpenGL.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public gnome-shell-extension-unite-shell
(package
(name "gnome-shell-extension-unite-shell")
(version "65")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hardpixel/unite-shell")
(commit "127edac6396b89cdedec003bdff38820e6a0f91f")))
(file-name (git-file-name name version))
(sha256
(base32
"1lzhf7hlvzg62nxjfpv265315qibcjz5dv08dzpfckf2dx68nab4"))))
(build-system copy-build-system)
(native-inputs (list `(,glib "bin") gettext-minimal))
(inputs (list xprop))
(arguments
(list #:install-plan ''(("./unite@hardpixel.eu"
"share/gnome-shell/extensions/unite@hardpixel.eu"))
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-xprop-bin
(lambda _
(substitute* "unite@hardpixel.eu/window.js"
(("xprop")
(string-append #$(this-package-input "xprop")
"/bin/xprop")))))
(add-before 'install 'compile-schemas
(lambda _
(with-directory-excursion "unite@hardpixel.eu/schemas"
(invoke "glib-compile-schemas" ".")))))))
(home-page "https://github.com/hardpixel/unite-shell")
(synopsis "Top panel and window decoration extension for GNOME Shell")
(description
"Unite is a GNOME Shell extension which makes a few layout
tweaks to the top panel and removes window decorations to make it look like
Ubuntu Unity Shell.")
(license license:gpl3)))
(define-public gnome-shell-extension-appindicator (define-public gnome-shell-extension-appindicator
(package (package
(name "gnome-shell-extension-appindicator") (name "gnome-shell-extension-appindicator")

View file

@ -9997,92 +9997,93 @@ world.")
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments '(#:builder (begin (mkdir %output) #t))) (arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs (propagated-inputs
`(;; GNOME-Core-OS-Services `(,@(if (string-prefix? "x86_64" (%current-system))
("accountsservice" ,accountsservice)
("network-manager" ,network-manager)
("packagekit" ,packagekit)
("upower" ,upower)
;; GNOME-Core-Shell
("adwaita-icon-theme" ,adwaita-icon-theme)
("gdm" ,gdm)
("glib-networking" ,glib-networking)
("gnome-backgrounds" ,gnome-backgrounds)
("gnome-bluetooth" ,gnome-bluetooth)
("gnome-color-manager" ,gnome-color-manager)
("gnome-control-center" ,gnome-control-center)
("gnome-desktop" ,gnome-desktop)
("gnome-initial-setup" ,gnome-initial-setup)
("gnome-keyring" ,gnome-keyring)
("gnome-menus" ,gnome-menus)
("gnome-session" ,gnome-session)
("gnome-settings-daemon" ,gnome-settings-daemon)
("gnome-shell-extensions" ,gnome-shell-extensions)
("gnome-shell" ,gnome-shell)
("gnome-themes-extra" ,gnome-themes-extra)
("gnome-user-docs" ,gnome-user-docs)
("gnome-user-share" ,gnome-user-share)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gvfs" ,gvfs)
("mutter" ,mutter)
("orca" ,orca)
("rygel" ,rygel)
("sushi" ,sushi)
;; GNOME-Core-Utilities
("baobab" ,baobab)
("cheese" ,cheese)
;; XXX: EoG requires librsvg-next, which depends on Rust, which currently ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
;; only works on x86_64, so exclude it on other architectures. ;; only works on x86_64, so exclude it on other architectures.
,@(if (string-prefix? "x86_64" (%current-system)) (list eog)
`(("eog" ,eog))
'()) '())
("epiphany" ,epiphany) ,@(list
("evince" ,evince) ;; GNOME-Core-OS-Services.
("file-roller" ,file-roller) accountsservice
("gedit" ,gedit) network-manager
("gnome-boxes" ,gnome-boxes) packagekit
("gnome-calculator" ,gnome-calculator) upower
("gnome-calendar" ,gnome-calendar) ;; GNOME-Core-Shell.
("gnome-characters" ,gnome-characters) adwaita-icon-theme
("gnome-clocks" ,gnome-clocks) gdm
("gnome-contacts" ,gnome-contacts) glib-networking
("gnome-disk-utility" ,gnome-disk-utility) gnome-backgrounds
("gnome-font-viewer" ,gnome-font-viewer) gnome-bluetooth
("gnome-maps" ,gnome-maps) gnome-color-manager
("gnome-music" ,gnome-music) gnome-control-center
("gnome-photos" ,gnome-photos) gnome-desktop
("gnome-screenshot" ,gnome-screenshot) gnome-initial-setup
("gnome-system-monitor" ,gnome-system-monitor) gnome-keyring
("gnome-terminal" ,gnome-terminal) gnome-menus
("gnome-weather" ,gnome-weather) gnome-session
("nautilus" ,nautilus) gnome-settings-daemon
("simple-scan" ,simple-scan) gnome-shell
("totem" ,totem) gnome-shell-extensions
("tracker-miners" ,tracker-miners) gnome-themes-extra
("yelp" ,yelp) gnome-user-docs
;; Others gnome-user-share
("hicolor-icon-theme" ,hicolor-icon-theme) gsettings-desktop-schemas
("gnome-online-accounts" ,gnome-online-accounts) gvfs
mutter
orca
rygel
sushi
;; GNOME-Core-Utilities.
baobab
cheese
epiphany
evince
file-roller
gnome-boxes
gnome-calculator
gnome-calendar
gnome-characters
gnome-clocks
gnome-console
gnome-contacts
gnome-disk-utility
gnome-font-viewer
gnome-maps
gnome-music
gnome-photos
gnome-screenshot
gnome-system-monitor
gnome-text-editor
gnome-weather
nautilus
simple-scan
totem
tracker-miners
yelp
;; Others.
gnome-online-accounts
hicolor-icon-theme
;; Packages not part of GNOME proper but that are needed for a good ;; Packages not part of GNOME proper but that are needed for a good
;; experience. See <https://bugs.gnu.org/39646>. ;; experience. See <https://bugs.gnu.org/39646>.
;; XXX: Find out exactly which ones are needed and why. ;; XXX: Find out exactly which ones are needed and why.
("font-abattis-cantarell" ,font-abattis-cantarell) at-spi2-core-minimal
("font-dejavu" ,font-dejavu) dbus
("at-spi2-core" ,at-spi2-core-minimal) dconf
("dbus" ,dbus) desktop-file-utils
("dconf" ,dconf) font-abattis-cantarell
("desktop-file-utils" ,desktop-file-utils) font-dejavu
("gnome-default-applications" ,gnome-default-applications) gnome-default-applications
("gst-plugins-base" ,gst-plugins-base) gst-plugins-base
("gst-plugins-good" ,gst-plugins-good) gst-plugins-good
("gucharmap" ,gucharmap) gucharmap
("pinentry-gnome3" ,pinentry-gnome3) pinentry-gnome3
("pulseaudio" ,pulseaudio) pulseaudio
("shared-mime-info" ,shared-mime-info) shared-mime-info
("system-config-printer" ,system-config-printer) system-config-printer
("xdg-user-dirs" ,xdg-user-dirs) xdg-user-dirs
("yelp" ,yelp) yelp
("zenity" ,zenity))) zenity)))
(synopsis "The GNU desktop environment") (synopsis "The GNU desktop environment")
(home-page "https://www.gnome.org/") (home-page "https://www.gnome.org/")
(description (description
@ -11658,6 +11659,7 @@ generic enough to work for everyone.")
highlight highlight
libcanberra libcanberra
libgweather4 libgweather4
libnotify
libsoup libsoup
nss nss
openldap openldap

View file

@ -1263,293 +1263,13 @@ standards of the IceCat project.")
(cpe-name . "firefox_esr") (cpe-name . "firefox_esr")
(cpe-version . ,(first (string-split version #\-))))))) (cpe-version . ,(first (string-split version #\-)))))))
(define all-mozilla-91-locales
(mozilla-locales
;; sha256 changeset locale
;;---------------------------------------------------------------------------
("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach")
("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af")
("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an")
("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar")
("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast")
("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az")
("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be")
("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg")
("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn")
("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br")
("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs")
("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca")
("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia")
("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak")
("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs")
("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy")
("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da")
("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de")
("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb")
("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el")
("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA")
("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB")
("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo")
("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR")
("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL")
("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES")
("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX")
("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et")
("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu")
("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa")
("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff")
("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi")
("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr")
("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL")
("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE")
("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd")
("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl")
("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn")
("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN")
("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he")
("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN")
("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr")
("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb")
("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu")
("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM")
("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia")
("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id")
("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is")
("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it")
("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja")
("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac")
("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka")
("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab")
("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk")
("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km")
("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn")
("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko")
("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij")
("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt")
("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv")
("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk")
("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr")
("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms")
("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my")
("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO")
("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP")
("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl")
("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO")
("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc")
("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN")
("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl")
("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR")
("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT")
("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm")
("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro")
("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru")
("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco")
("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si")
("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk")
("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl")
("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son")
("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq")
("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr")
("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE")
("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl")
("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta")
("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te")
("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th")
("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl")
("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr")
("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs")
("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk")
("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur")
("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz")
("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi")
("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh")
("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN")
("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW")))
(define %icecat-91-version "91.13.0-guix0-preview1")
(define icecat-91-source
(let* ((base-version (first (string-split %icecat-91-version #\-)))
(major-version (first (string-split base-version #\.)))
(minor-version (second (string-split base-version #\.)))
(sub-version (third (string-split base-version #\.)))
(upstream-firefox-version (string-append base-version "esr"))
(upstream-firefox-source
(origin
(method url-fetch)
(uri (string-append
"https://ftp.mozilla.org/pub/firefox/releases/"
upstream-firefox-version "/source/"
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
"0qh7j960wdp5zcfqhkj8ki47spp9i9ms12xx0v0kxvmmw36jpgjk"))))
(upstream-icecat-base-version "91.13.0") ; maybe older than base-version
;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
(gnuzilla-commit "4a87716686104266a9cccc2d83cc249e312f3673")
(gnuzilla-source
(origin
(method git-fetch)
(uri (git-reference
(url "git://git.savannah.gnu.org/gnuzilla.git")
(commit gnuzilla-commit)))
(file-name (git-file-name "gnuzilla"
;;upstream-icecat-base-version
(string-take gnuzilla-commit 8)))
(sha256
(base32
"070j78al04xzchfl5xj1w300hmw17a3iqcw7mnlxf6b8rqlgj20p"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
(gnuzilla-fixes-patch
(local-file (assume-valid-file-name
(search-patch "icecat-use-older-reveal-hidden-html.patch"))))
(makeicecat-patch
(local-file (assume-valid-file-name
(search-patch "icecat-makeicecat.patch")))))
(origin
(method computed-origin-method)
(file-name (string-append "icecat-" %icecat-91-version ".tar.xz"))
(sha256 #f)
(uri
(delay
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(let ((firefox-dir
(string-append "firefox-" #$base-version))
(icecat-dir
(string-append "icecat-" #$%icecat-91-version)))
(set-path-environment-variable
"PATH" '("bin")
(list #+rename
#+python
#+(canonical-package bash)
#+(canonical-package coreutils)
#+(canonical-package findutils)
#+(canonical-package patch)
#+(canonical-package xz)
#+(canonical-package sed)
#+(canonical-package grep)
#+(canonical-package bzip2)
#+(canonical-package gzip)
#+(canonical-package tar)))
(set-path-environment-variable
"PYTHONPATH"
(list #+(format #f "lib/python~a/site-packages"
(version-major+minor
(package-version python))))
'#+(cons python-jsonschema
(map second
(package-transitive-propagated-inputs
python-jsonschema))))
;; Needed by the 'makeicecat' script.
(setenv "RENAME_CMD" "rename")
;; We copy the gnuzilla source directory because it is
;; read-only in 'gnuzilla-source', and the makeicecat script
;; uses "cp -a" to copy parts of it and assumes that the
;; copies will be writable.
(copy-recursively #+gnuzilla-source "/tmp/gnuzilla"
#:log (%make-void-port "w"))
(with-directory-excursion "/tmp/gnuzilla"
(make-file-writable "makeicecat")
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+gnuzilla-fixes-patch)
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+makeicecat-patch)
(patch-shebang "makeicecat")
(substitute* "makeicecat"
(("^readonly FFMAJOR=(.*)" all ffmajor)
(unless (string=? #$major-version
(string-trim-both ffmajor))
;; The makeicecat script cannot be expected to work
;; properly on a different version of Firefox, even if
;; no errors occur during execution.
(error "makeicecat major version mismatch"))
(string-append "readonly FFMAJOR=" #$major-version "\n"))
(("^readonly FFMINOR=.*")
(string-append "readonly FFMINOR=" #$minor-version "\n"))
(("^readonly FFSUB=.*")
(string-append "readonly FFSUB=" #$sub-version "\n"))
(("^readonly DATADIR=.*")
"readonly DATADIR=/tmp/gnuzilla/data\n")
(("^readonly SOURCEDIR=.*")
(string-append "readonly SOURCEDIR=" icecat-dir "\n"))
(("/bin/sed")
#+(file-append (canonical-package sed) "/bin/sed"))))
(format #t "Unpacking upstream firefox tarball...~%")
(force-output)
(invoke "tar" "xf" #+upstream-firefox-source)
(rename-file firefox-dir icecat-dir)
(with-directory-excursion icecat-dir
(format #t "Populating l10n directory...~%")
(force-output)
(mkdir "l10n")
(with-directory-excursion "l10n"
(for-each
(lambda (locale-dir)
(let ((locale
(string-drop (basename locale-dir)
(+ 32 ; length of hash
(string-length "-mozilla-locale-")))))
(format #t " ~a~%" locale)
(force-output)
(copy-recursively locale-dir locale
#:log (%make-void-port "w"))
(for-each make-file-writable (find-files locale))
(with-directory-excursion locale
(when (file-exists? ".hgtags")
(delete-file ".hgtags"))
(mkdir-p "browser/chrome/browser/preferences")
(call-with-output-file
"browser/chrome/browser/preferences/advanced-scripts.dtd"
(lambda (port) #f)))))
'#+all-mozilla-91-locales)
(copy-recursively #+mozilla-compare-locales
"compare-locales"
#:log (%make-void-port "w"))
(delete-file "compare-locales/.gitignore")
(delete-file "compare-locales/.hgignore")
(delete-file "compare-locales/.hgtags")))
(format #t "Running makeicecat script...~%")
(force-output)
(invoke "bash" "/tmp/gnuzilla/makeicecat")
(format #t "Packing IceCat source tarball...~%")
(force-output)
(setenv "XZ_DEFAULTS" (string-join (%xz-parallel-args)))
(invoke "tar" "cfa" #$output
;; Avoid non-determinism in the archive. We set the
;; mtime of files in the archive to early 1980 because
;; the build process fails if the mtime of source
;; files is pre-1980, due to the creation of zip
;; archives.
"--mtime=@315619200" ; 1980-01-02 UTC
"--owner=root:0"
"--group=root:0"
"--sort=name"
icecat-dir)))))))))
;; Update this together with icecat! ;; Update this together with icecat!
(define %icedove-build-id "20220919000000") ;must be of the form YYYYMMDDhhmmss (define %icedove-build-id "20220920000000") ;must be of the form YYYYMMDDhhmmss
(define-public icedove (define-public icedove
(package (package
(name "icedove") (name "icedove")
(version "91.13.1") (version "102.3.0")
(source icecat-91-source) (source icecat-source)
(properties (properties
`((cpe-name . "thunderbird_esr"))) `((cpe-name . "thunderbird_esr")))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -1581,6 +1301,13 @@ standards of the IceCat project.")
(for-each generate-all-checksums (for-each generate-all-checksums
'("third_party/rust" '("third_party/rust"
"toolkit/library/rust"))))) "toolkit/library/rust")))))
(add-after 'patch-cargo-checksums 'remove-cargo-frozen-flag
(lambda _
;; Remove --frozen flag from cargo invokation, otherwise it'll
;; complain that it's not able to change Cargo.lock.
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
(substitute* "build/RunCbindgen.py"
(("\"--frozen\",") ""))))
;; Fixes issue where each installation directory generates its own profile. ;; Fixes issue where each installation directory generates its own profile.
;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457 ;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457
(add-after 'patch-source-shebangs 'fix-profile-setting (add-after 'patch-source-shebangs 'fix-profile-setting
@ -1733,7 +1460,7 @@ standards of the IceCat project.")
"ac_add_options --with-system-nspr\n" "ac_add_options --with-system-nspr\n"
;"ac_add_options --with-system-nss\n" ;"ac_add_options --with-system-nss\n"
"ac_add_options --with-system-zlib\n" "ac_add_options --with-system-zlib\n"
"ac_add_options --with-user-appdir=\\.icedove\n" "ac_add_options --without-wasm-sandboxed-libraries\n"
"mk_add_options MOZ_MAKE_FLAGS=-j" "mk_add_options MOZ_MAKE_FLAGS=-j"
(number->string (parallel-job-count)) "\n")))) (number->string (parallel-job-count)) "\n"))))
(display (getcwd)) (display (getcwd))
@ -1783,7 +1510,8 @@ standards of the IceCat project.")
`("XDG_DATA_DIRS" prefix (,gtk-share)) `("XDG_DATA_DIRS" prefix (,gtk-share))
`("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,eudev-lib))))))))) `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,eudev-lib)))))))))
(inputs (inputs
(list bzip2 (list alsa-lib
bzip2
cairo cairo
cups cups
dbus-glib dbus-glib
@ -1794,7 +1522,7 @@ standards of the IceCat project.")
gtk+ gtk+
gtk+-2 gtk+-2
hunspell hunspell
icu4c icu4c-71
libcanberra libcanberra
libevent libevent
libffi libffi
@ -1827,17 +1555,17 @@ standards of the IceCat project.")
;; in the Thunderbird release tarball. We don't use the release ;; in the Thunderbird release tarball. We don't use the release
;; tarball because it duplicates the Icecat sources and only adds the ;; tarball because it duplicates the Icecat sources and only adds the
;; "comm" directory, which is provided by this repository. ;; "comm" directory, which is provided by this repository.
,(let ((changeset "2f9b465346ceb38b4ab79ccc1bfe8d8ad0bc8743")) ,(let ((changeset "04f60827c1b53ab86121c7d122d3a8216219ff9f"))
(origin (origin
(method hg-fetch) (method hg-fetch)
(uri (hg-reference (uri (hg-reference
(url "https://hg.mozilla.org/releases/comm-esr91") (url "https://hg.mozilla.org/releases/comm-esr102")
(changeset changeset))) (changeset changeset)))
(file-name (string-append "thunderbird-" version "-checkout")) (file-name (string-append "thunderbird-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"10vsbwlh5imq7iljwzq3r4y80wzsmj6s2gsi1n64l0wmfq2m6ilb"))))) "078jrxpzqj45l84i39a9fq023j71ngca5gs2ngpjsbily51bzx09")))))
("cargo" ,rust "cargo") ("cargo" ,(force rust-1.59-promise) "cargo")
("clang" ,clang) ("clang" ,clang)
("llvm" ,llvm) ("llvm" ,llvm)
("m4" ,m4) ("m4" ,m4)
@ -1846,8 +1574,8 @@ standards of the IceCat project.")
("perl" ,perl) ("perl" ,perl)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("python" ,python-wrapper) ("python" ,python-wrapper)
("rust" ,rust) ("rust" ,(force rust-1.59-promise))
("rust-cbindgen" ,rust-cbindgen-0.19) ("rust-cbindgen" ,(force rust-cbindgen-0.23-promise))
("which" ,which) ("which" ,which)
("yasm" ,yasm))) ("yasm" ,yasm)))
(home-page "https://www.thunderbird.net") (home-page "https://www.thunderbird.net")

View file

@ -304,14 +304,14 @@ to @code{cabal repl}).")
(define-public git-annex (define-public git-annex
(package (package
(name "git-annex") (name "git-annex")
(version "10.20220822") (version "10.20220927")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/" (uri (string-append "https://hackage.haskell.org/package/"
"git-annex/git-annex-" version ".tar.gz")) "git-annex/git-annex-" version ".tar.gz"))
(sha256 (sha256
(base32 "1qv3cb7p2zyc5mpcr4nfgzdmswfny5jbimd2ip7ygh71jlahrbfc")))) (base32 "1bqcaddw47g6i3z9g0iym5x7zy1q8fsirzqnjsa63n2bwm6zzplc"))))
(build-system haskell-build-system) (build-system haskell-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -406,6 +406,7 @@ to @code{cabal repl}).")
ghc-bloomfilter ghc-bloomfilter
ghc-byteable ghc-byteable
ghc-case-insensitive ghc-case-insensitive
ghc-clientsession
ghc-concurrent-output ghc-concurrent-output
ghc-conduit ghc-conduit
ghc-connection ghc-connection
@ -462,6 +463,14 @@ to @code{cabal repl}).")
ghc-utf8-string ghc-utf8-string
ghc-uuid ghc-uuid
ghc-vector ghc-vector
ghc-wai
ghc-wai-extra
ghc-warp
ghc-warp-tls
ghc-yesod
ghc-yesod-core
ghc-yesod-form
ghc-yesod-static
git git
rsync)) rsync))
(native-inputs (native-inputs

View file

@ -671,7 +671,7 @@ things like:
(define-public vips (define-public vips
(package (package
(name "vips") (name "vips")
(version "8.10.6") (version "8.13.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -679,7 +679,7 @@ things like:
"https://github.com/libvips/libvips/releases/download/v" "https://github.com/libvips/libvips/releases/download/v"
version "/vips-" version ".tar.gz")) version "/vips-" version ".tar.gz"))
(sha256 (sha256
(base32 "0vjsh3i0861f6h9as3bch956cidz824zz499pvhjs3lfjn6hhs14")))) (base32 "00kp3439jcqv9l2gcjg88xzvlq8clv54z1m3x66i3chvarz7ndxd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list gobject-introspection pkg-config)) (list gobject-introspection pkg-config))

View file

@ -736,6 +736,29 @@ or for saving sensitive information that shouldn't be sent to an
external server.") external server.")
(license license:expat))) (license license:expat)))
(define-public js-scianimator
(package
(name "js-scianimator")
(version "1.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/brentertz/scianimator.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0b4r6z85gnsjagdchvf1pvrhylfiaidh701hna8jrm0l4kbb735x"))))
(build-system minify-build-system)
(arguments
'(#:javascript-files
(list "assets/js/jquery.scianimator.js")))
(home-page "https://github.com/brentertz/scianimator")
(synopsis "Scientific image animator plugin for jQuery")
(description "SciAnimator provides a simple yet powerful interface for
animating a series of images.")
(license license:expat)))
(define-public mujs (define-public mujs
(package (package
(name "mujs") (name "mujs")

View file

@ -92,7 +92,7 @@
(define-public extra-cmake-modules (define-public extra-cmake-modules
(package (package
(name "extra-cmake-modules") (name "extra-cmake-modules")
(version "5.96.0") (version "5.98.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -101,7 +101,7 @@
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1ngxjvf584zgfb93s5sbr5f5nyw0sqc5i0jlbcgbrjg2n83l9ddx")))) "0669m98vqy4hpacfjs7xpgjj1bns24kjybrjipxzp82092g8y69w"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
;; Add test dependency, except on armhf where building it is too ;; Add test dependency, except on armhf where building it is too
@ -569,7 +569,7 @@ propagate their changes to their respective configuration files.")
(define-public kcoreaddons (define-public kcoreaddons
(package (package
(name "kcoreaddons") (name "kcoreaddons")
(version "5.96.0") (version "5.98.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -578,7 +578,7 @@ propagate their changes to their respective configuration files.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1n5mzj02si8allg907l6vn77c2i95qdgfvn48gsqgalwlyd4q6nj")))) "0lqmyxqsw7w1qgdgmax63v64cy7dwk7n4zi8k53xmrqjmd9jir52"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
(list extra-cmake-modules qttools-5 shared-mime-info)) (list extra-cmake-modules qttools-5 shared-mime-info))
@ -588,13 +588,20 @@ propagate their changes to their respective configuration files.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (add-before 'check 'blacklist-failing-test
(lambda* (#:key tests? #:allow-other-keys) (lambda _
;; Blacklist failing tests.
(with-output-to-file "autotests/BLACKLIST"
(lambda _
;; FIXME: Make it pass. Test failure caused by stout/stderr
;; being interleaved.
(display "[test_channels]\n*\n")
;; FIXME
(display "[test_inheritance]\n*\n")))))
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd)) (setenv "HOME" (getcwd))
(setenv "TMPDIR" (getcwd)) (setenv "TMPDIR" (getcwd)))))))
(when tests? ;; kdirwatch test fails inconsistently. kprocesstest fails.
(invoke "ctest" "-E" "(kdirwatch_qfswatch_unittest|kprocesstest|\
kdirwatch_stat_unittest)")))))))
(home-page "https://community.kde.org/Frameworks") (home-page "https://community.kde.org/Frameworks")
(synopsis "Qt addon library with a collection of non-GUI utilities") (synopsis "Qt addon library with a collection of non-GUI utilities")
(description "KCoreAddons provides classes built on top of QtCore to (description "KCoreAddons provides classes built on top of QtCore to

View file

@ -35,7 +35,7 @@
;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com> ;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
;;; Copyright © 2019, 2020, 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2019-2022 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
@ -6944,6 +6944,46 @@ monitoring tools for Linux. These include @code{mpstat}, @code{iostat},
@code{sadf} and @code{sa}.") @code{sadf} and @code{sa}.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public acpilight
(package
(name "acpilight")
(version "1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/wavexx/acpilight.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1r0r3nx6x6vkpal6vci0zaa1n9dfacypldf6k8fxg7919vzxdn1w"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ; no tests
#:make-flags
#~(list (string-append "prefix=" #$output)
(string-append "sysconfdir=" #$output "/etc"))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'patch
(lambda* (#:key inputs #:allow-other-keys)
;; Prevent reloading udev at build time
(substitute* "Makefile"
(("udevadm") "true"))
(substitute* "90-backlight.rules"
(("/bin")
(string-append #$(this-package-input "coreutils")
"/bin"))))))))
(inputs (list coreutils python))
(home-page "https://gitlab.com/wavexx/acpilight")
(synopsis "Backward-compatibile xbacklight replacement")
(description "acpilight is a backward-compatibile replacement for
xbacklight that uses the ACPI interface to set the display brightness. On
modern laptops acpilight can control both display and keyboard backlight
uniformly on either X11, the console or Wayland.")
(license license:gpl3+)))
(define-public light (define-public light
(package (package
(name "light") (name "light")

View file

@ -6282,7 +6282,7 @@ as JACK standalone applications.")
(define-public zplugins (define-public zplugins
(package (package
(name "zplugins") (name "zplugins")
(version "0.1.7") (version "0.2.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -6293,7 +6293,7 @@ as JACK standalone applications.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1rkm2xajmyik6289b20rp5a5br9f3sh1xk8nb1bs6qpmcrfirgbs")))) "0l6cm6y8j1417mwspraldzixpnps8scx81wd36n2xpx60v4iqss0"))))
(build-system meson-build-system) (build-system meson-build-system)
(inputs (inputs
(list guile-2.2 libsndfile lv2 ztoolkit-rsvg)) (list guile-2.2 libsndfile lv2 ztoolkit-rsvg))

View file

@ -63,14 +63,14 @@
(define-public parallel (define-public parallel
(package (package
(name "parallel") (name "parallel")
(version "20220822") (version "20220922")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-" (uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 "05mh3bbl7c9c945jqhlfspjqji79zq8ml27k6ihaqi8bqibl83cx")) (base32 "1hfar4hvzcic5gv7nl7jr6hafhgiax005zydwxcwxvy1vm4s3cqm"))
(snippet (snippet
'(begin '(begin
(use-modules (guix build utils)) (use-modules (guix build utils))

View file

@ -0,0 +1,21 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8490728..c7f0952 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -315,15 +315,7 @@ if(CRC32C_BUILD_TESTS)
set(install_gmock OFF)
# This project is tested using GoogleTest.
- add_subdirectory("third_party/googletest")
-
- # GoogleTest triggers a missing field initializers warning.
- if(CRC32C_HAVE_NO_MISSING_FIELD_INITIALIZERS)
- set_property(TARGET gtest
- APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
- set_property(TARGET gmock
- APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
- endif(CRC32C_HAVE_NO_MISSING_FIELD_INITIALIZERS)
+ find_package(GTest REQUIRED)
add_executable(crc32c_tests "")
target_sources(crc32c_tests

View file

@ -0,0 +1,125 @@
From 4d1a8351ee82728912fcf7ad0070049b2910c393 Mon Sep 17 00:00:00 2001
From: Klemens Nanni <klemens@posteo.de>
Date: Wed, 2 Mar 2022 01:07:48 +0100
Subject: [PATCH] Introduce TDESKTOP_DISABLE_LEGACY_TGVOIP
Originally from Alt Linux[0], OpenBSD has so far adapted the removal of
tgvoip in the official net/tdesktop build.
tgcalls provides everything needed for calls; audio/video/desktop
sharing calls have been working fine across different operating systems
and telegram desktop/mobile versions without problems.
0: http://www.sisyphus.ru/cgi-bin/srpm.pl/Sisyphus/telegram-desktop/getpatch/1
---
Telegram/CMakeLists.txt | 6 +++---
Telegram/SourceFiles/calls/calls_call.cpp | 6 ++++++
Telegram/cmake/lib_tgcalls.cmake | 4 ++++
Telegram/cmake/telegram_options.cmake | 8 ++++++++
4 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt
index fb2bf370f..5d9578f2d 100644
--- a/Telegram/CMakeLists.txt
+++ b/Telegram/CMakeLists.txt
@@ -28,7 +28,9 @@ get_filename_component(res_loc Resources REALPATH)
include(cmake/telegram_options.cmake)
include(cmake/lib_ffmpeg.cmake)
include(cmake/lib_stripe.cmake)
-include(cmake/lib_tgvoip.cmake)
+if (NOT TDESKTOP_DISABLE_LEGACY_TGVOIP)
+ include(cmake/lib_tgvoip.cmake)
+endif()
include(cmake/lib_tgcalls.cmake)
include(cmake/td_export.cmake)
include(cmake/td_mtproto.cmake)
@@ -52,9 +54,7 @@ target_prepare_qrc(Telegram)
target_link_libraries(Telegram
PRIVATE
- tdesktop::lib_tgcalls_legacy
tdesktop::lib_tgcalls
- tdesktop::lib_tgvoip
# Order in this list defines the order of include paths in command line.
# We need to place desktop-app::external_minizip this early to have its
diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/calls/calls_call.cpp
index 6894d5d90..cd03620e7 100644
--- a/Telegram/SourceFiles/calls/calls_call.cpp
+++ b/Telegram/SourceFiles/calls/calls_call.cpp
@@ -39,8 +39,10 @@ class InstanceImpl;
class InstanceV2Impl;
class InstanceV2ReferenceImpl;
class InstanceV2_4_0_0Impl;
+#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
class InstanceImplLegacy;
void SetLegacyGlobalServerConfig(const std::string &serverConfig);
+#endif
} // namespace tgcalls
namespace Calls {
@@ -56,7 +58,9 @@ const auto Register = tgcalls::Register<tgcalls::InstanceImpl>();
const auto RegisterV2 = tgcalls::Register<tgcalls::InstanceV2Impl>();
const auto RegV2Ref = tgcalls::Register<tgcalls::InstanceV2ReferenceImpl>();
const auto RegisterV240 = tgcalls::Register<tgcalls::InstanceV2_4_0_0Impl>();
+#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
const auto RegisterLegacy = tgcalls::Register<tgcalls::InstanceImplLegacy>();
+#endif
[[nodiscard]] base::flat_set<int64> CollectEndpointIds(
const QVector<MTPPhoneConnection> &list) {
@@ -1322,7 +1326,9 @@ Call::~Call() {
}
void UpdateConfig(const std::string &data) {
+#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
tgcalls::SetLegacyGlobalServerConfig(data);
+#endif
}
} // namespace Calls
diff --git a/Telegram/cmake/lib_tgcalls.cmake b/Telegram/cmake/lib_tgcalls.cmake
index 34a5ba418..8a784be2c 100644
--- a/Telegram/cmake/lib_tgcalls.cmake
+++ b/Telegram/cmake/lib_tgcalls.cmake
@@ -267,6 +267,10 @@ PRIVATE
${tgcalls_loc}
)
+if (TDESKTOP_DISABLE_LEGACY_TGVOIP)
+ return()
+endif()
+
add_library(lib_tgcalls_legacy STATIC)
init_target(lib_tgcalls_legacy)
diff --git a/Telegram/cmake/telegram_options.cmake b/Telegram/cmake/telegram_options.cmake
index 1c3c25431..033f2bc95 100644
--- a/Telegram/cmake/telegram_options.cmake
+++ b/Telegram/cmake/telegram_options.cmake
@@ -4,7 +4,9 @@
# For license and copyright information please follow this link:
# https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+option(TDESKTOP_DISABLE_LEGACY_TGVOIP "Disable legacy tgvoip support." OFF)
option(TDESKTOP_API_TEST "Use test API credentials." OFF)
+
set(TDESKTOP_API_ID "0" CACHE STRING "Provide 'api_id' for the Telegram API access.")
set(TDESKTOP_API_HASH "" CACHE STRING "Provide 'api_hash' for the Telegram API access.")
@@ -40,6 +42,12 @@ if (TDESKTOP_API_ID STREQUAL "0" OR TDESKTOP_API_HASH STREQUAL "")
" ")
endif()
+if (TDESKTOP_DISABLE_LEGACY_TGVOIP)
+ target_compile_definitions(Telegram PRIVATE TDESKTOP_DISABLE_LEGACY_TGVOIP)
+else()
+ target_link_libraries(Telegram PRIVATE tdesktop::lib_tgcalls_legacy tdesktop::lib_tgvoip)
+endif()
+
if (DESKTOP_APP_DISABLE_SPELLCHECK)
target_compile_definitions(Telegram PRIVATE TDESKTOP_DISABLE_SPELLCHECK)
else()
--
2.37.3

View file

@ -0,0 +1,21 @@
From 86d2bcd7afb8706663d29e30f65863de5a626142 Mon Sep 17 00:00:00 2001
From: Xiretza <xiretza@xiretza.xyz>
Date: Sun, 15 May 2022 12:47:41 +0200
Subject: [PATCH] fix(h265_pps_parser): fix missing cstdint include
---
src/common_video/h265/h265_pps_parser.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/common_video/h265/h265_pps_parser.h b/src/common_video/h265/h265_pps_parser.h
index 28c95ea9..c180b1b9 100644
--- a/src/common_video/h265/h265_pps_parser.h
+++ b/src/common_video/h265/h265_pps_parser.h
@@ -12,6 +12,7 @@
#define COMMON_VIDEO_H265_PPS_PARSER_H_
#include "absl/types/optional.h"
+#include <cstdint>
namespace rtc {
class BitBuffer;

View file

@ -1290,6 +1290,26 @@ powerful visualization backend to facilitate rapid prototyping, analysis, and
visual integration of spatially referenced datasets.") visual integration of spatially referenced datasets.")
(license license:expat))) (license license:expat)))
(define-public python-simplespectral
(package
(name "python-simplespectral")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SimpleSpectral" version))
(sha256
(base32 "0qh3xwdv9cwcqdamvglrhm586p4yaq1hd291py1fvykhk2a2d4w6"))))
(build-system python-build-system)
(propagated-inputs
(list python-numpy python-scipy))
(home-page "https://github.com/xmikos/simplespectral")
(synopsis "FFT module for Python")
(description
"This package provides a simplified @code{scipy.signal.spectral} module
to do spectral analysis in Python.")
(license license:expat)))
(define-public python-traittypes (define-public python-traittypes
(package (package
(name "python-traittypes") (name "python-traittypes")

View file

@ -7415,13 +7415,13 @@ data, and scientific formats.")
(define-public python-pyvips (define-public python-pyvips
(package (package
(name "python-pyvips") (name "python-pyvips")
(version "2.2.0") (version "2.2.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyvips" version)) (uri (pypi-uri "pyvips" version))
(sha256 (sha256
(base32 "0lq71iiic4pc8qhxr60gi141w25pjnn4vsh05d5l0fjkgjsv137b")))) (base32 "1dfbwwvnnsk4g2kj1pw654z9jq3mb72l1m8ma29858jpn12vn7dm"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
(list #:phases (list #:phases

View file

@ -3234,6 +3234,25 @@ top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.")
(PyQt5, PyQt4 and PySide) and additional custom QWidgets.") (PyQt5, PyQt4 and PySide) and additional custom QWidgets.")
(license license:expat))) (license license:expat)))
(define-public python-qt.py
(package
(name "python-qt.py")
(version "1.3.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Qt.py" version))
(sha256
(base32 "07rvfwzjl378j75j2va0c6xylwx16icxa6dycsjgjc329pgpng40"))))
(build-system python-build-system)
(native-inputs (list python-pyqt))
(home-page "https://github.com/mottosso/Qt.py")
(synopsis "Abstraction layer for Python Qt bindings")
(description
"This package provides an abstraction layer on top of the various Qt
bindings (PySide, PySide2, PyQt4 and PyQt5).")
(license license:expat)))
(define-public qscintilla (define-public qscintilla
(package (package
(name "qscintilla") (name "qscintilla")

View file

@ -468,6 +468,86 @@ controls for certain tuners which may be paired with an audio device.")
"This package provides RTL-SDR devices support to the SoapySDR library.") "This package provides RTL-SDR devices support to the SoapySDR library.")
(license license:expat))) (license license:expat)))
(define-public python-simplesoapy
(package
(name "python-simplesoapy")
(version "1.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SimpleSoapy" version))
(sha256
(base32 "0bh02m5zj82mp7sxpvwr24ylmrbp3p4r9q7psqcfnxl628w3b4hl"))))
(build-system python-build-system)
(propagated-inputs
(list python-numpy soapysdr))
(home-page "https://github.com/xmikos/simplesoapy")
(synopsis "Python wrapper for SoapySDR")
(description
"This package provide a simple pythonic wrapper for the SoapySDR
library.")
(license license:expat)))
(define-public soapy-power
(package
(name "soapy-power")
(version "1.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "soapy_power" version))
(sha256
(base32 "1rajmygcqvv5ph7yk65r4w581lfszrz0f48csvfmma1ami0lirdm"))))
(build-system python-build-system)
(inputs
(list python-numpy
python-scipy
python-simplesoapy
python-simplespectral))
(home-page "https://github.com/xmikos/soapy_power")
(synopsis "Obtain power spectrum from SDR devices")
(description "The @code{soapy_power} obtains the power spectrum from SDR
devices that are supported by the SoapySDR library.")
(license license:expat)))
(define-public qspectrumanalyzer
(package
(name "qspectrumanalyzer")
(version "2.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "QSpectrumAnalyzer" version))
(sha256
(base32 "1bhl8zp4z7v3595ailyivx9vb7y5si6kr22aylphb5pf60jxqhn0"))))
(build-system python-build-system)
(inputs
(list bash-minimal
python-pyqt
python-pyqtgraph
python-qt.py
python-simplespectral
python-simplesoapy
soapy-power))
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'wrap-path
;; Add the location of the default backend to PATH.
(lambda* (#:key inputs #:allow-other-keys)
(wrap-program (string-append #$output
"/bin/qspectrumanalyzer")
`("PATH" ":" prefix
(,(string-append (assoc-ref inputs "soapy-power")
"/bin")))))))))
(home-page "https://github.com/xmikos/qspectrumanalyzer")
(synopsis "Spectrum analyzer for multiple SDR platforms")
(description
"This package provides a spectrum analyzer for multiple SDR platforms.
It is a GUI for @code{soapy_power}, @code{hackrf_sweep}, @code{rtl_power},
@code{rx_power} and other backends.")
(license license:gpl3)))
(define-public aptdec (define-public aptdec
;; No release since 2013, use commit directly. ;; No release since 2013, use commit directly.
(let ((commit "51405971fd4e97714d1e987269e49c6edfe4e0da") (let ((commit "51405971fd4e97714d1e987269e49c6edfe4e0da")

View file

@ -53,6 +53,7 @@
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages ibus) #:use-module (gnu packages ibus)
@ -365,7 +366,7 @@ Features include:
(define-public exa (define-public exa
(package (package
(name "exa") (name "exa")
(version "0.9.0") (version "0.10.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -374,14 +375,15 @@ Features include:
(string-append name "-" version ".tar.gz")) (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1s902xgplz1167k0r7x235p914lprpsqy2if0kpa1mlb0fswqqq4")))) "1dd7waq2bnxc1xwygqphi8k1g2qzykr6fk0q4rgrhhxp2jd09f04"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:cargo-inputs `(#:install-source? #f
#:cargo-inputs
(("rust-ansi-term" ,rust-ansi-term-0.12) (("rust-ansi-term" ,rust-ansi-term-0.12)
("rust-datetime" ,rust-datetime-0.4) ("rust-datetime" ,rust-datetime-0.5)
("rust-env-logger" ,rust-env-logger-0.6) ("rust-env-logger" ,rust-env-logger-0.6)
("rust-git2" ,rust-git2-0.9) ("rust-git2" ,rust-git2-0.13)
("rust-glob" ,rust-glob-0.3) ("rust-glob" ,rust-glob-0.3)
("rust-lazy-static" ,rust-lazy-static-1) ("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2) ("rust-libc" ,rust-libc-0.2)
@ -389,64 +391,57 @@ Features include:
("rust-log" ,rust-log-0.4) ("rust-log" ,rust-log-0.4)
("rust-natord" ,rust-natord-1) ("rust-natord" ,rust-natord-1)
("rust-num-cpus" ,rust-num-cpus-1) ("rust-num-cpus" ,rust-num-cpus-1)
("rust-number-prefix" ,rust-number-prefix-0.3) ("rust-number-prefix" ,rust-number-prefix-0.4)
("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1) ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
("rust-term-grid" ,rust-term-grid-0.1) ("rust-term-grid" ,rust-term-grid-0.1)
("rust-term-size" ,rust-term-size-0.3) ("rust-term-size" ,rust-term-size-0.3)
("rust-unicode-width" ,rust-unicode-width-0.1) ("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-users" ,rust-users-0.9) ("rust-users" ,rust-users-0.11)
("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.4)) ("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.5))
#:cargo-development-inputs #:cargo-development-inputs
(("rust-datetime" ,rust-datetime-0.4)) (("rust-datetime" ,rust-datetime-0.5))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; Ignoring failing tests. (add-after 'build 'build-manual
;; Reported in https://github.com/ogham/exa/issues/318 (lambda* (#:key inputs #:allow-other-keys)
(add-before 'check 'disable-failing-tests (when (assoc-ref inputs "pandoc")
(map (lambda (page)
(with-output-to-file page
(lambda _ (lambda _
(substitute* "src/options/mod.rs" (invoke "pandoc" "--standalone"
(("^.*fn oneline_across.*" oneline-across) "-f" "markdown"
(string-append "#[ignore]\n" oneline-across))) "-t" "man"
(string-append "man/" page ".md")))))
(substitute* "src/options/view.rs" (list "exa.1" "exa_colors.5")))))
(("test!\\(across:.*") "")
(("test!\\(cr:.*") "")
(("test!\\(empty:.*") "")
(("test!\\(gracross:.*") "")
(("test!\\(grid:.*") "")
(("test!\\(icons:.*") "")
(("test!\\(just_binary:.*") "")
(("test!\\(just_blocks:.*") "")
(("test!\\(just_bytes:.*") "")
(("test!\\(just_git:.*") "")
(("test!\\(just_group:.*") "")
(("test!\\(just_header:.*") "")
(("test!\\(just_inode:.*") "")
(("test!\\(just_links:.*") "")
(("test!\\(leg:.*") "")
(("test!\\(lid:.*") "")
(("test!\\(original_g:.*") ""))
#t))
(add-after 'install 'install-extras (add-after 'install 'install-extras
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share")) (share (string-append out "/share"))
(man1 (string-append share "/man/man1"))) (man1 (string-append share "/man/man1"))
(install-file "contrib/man/exa.1" man1) (man5 (string-append share "/man/man5")))
(when (file-exists? "exa.1")
(install-file "exa.1" man1))
(when (file-exists? "exa_colors.5")
(install-file "exa_colors.5" man5))
(mkdir-p (string-append out "/etc/bash_completion.d")) (mkdir-p (string-append out "/etc/bash_completion.d"))
(mkdir-p (string-append share "/fish/vendor_completions.d")) (mkdir-p (string-append share "/fish/vendor_completions.d"))
(mkdir-p (string-append share "/zsh/site-functions")) (mkdir-p (string-append share "/zsh/site-functions"))
(copy-file "contrib/completions.bash" (copy-file "completions/completions.bash"
(string-append out "/etc/bash_completion.d/exa")) (string-append out "/etc/bash_completion.d/exa"))
(copy-file "contrib/completions.fish" (copy-file "completions/completions.fish"
(string-append share "/fish/vendor_completions.d/exa.fish")) (string-append
(copy-file "contrib/completions.zsh" share "/fish/vendor_completions.d/exa.fish"))
(string-append share "/zsh/site-functions/_exa")) (copy-file "completions/completions.zsh"
#t)))))) (string-append
(inputs share "/zsh/site-functions/_exa"))))))))
(list libgit2 zlib)) (inputs (list libgit2 zlib))
(native-inputs (native-inputs
(list pkg-config)) (append
(list pkg-config)
(if (member (%current-system)
(package-transitive-supported-systems pandoc))
(list pandoc)
'())))
(home-page "https://the.exa.website/") (home-page "https://the.exa.website/")
(synopsis "Modern replacement for ls") (synopsis "Modern replacement for ls")
(description "@code{exa} is a modern replacement for the command-line (description "@code{exa} is a modern replacement for the command-line

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,10 +27,13 @@
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages cmake) #:use-module (gnu packages cmake)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages c)
#:use-module (gnu packages cpp) #:use-module (gnu packages cpp)
#:use-module (gnu packages digest) #:use-module (gnu packages digest)
#:use-module (gnu packages fcitx) #:use-module (gnu packages fcitx)
#:use-module (gnu packages fcitx5) #:use-module (gnu packages fcitx5)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
@ -41,6 +45,7 @@
#:use-module (gnu packages libevent) #:use-module (gnu packages libevent)
#:use-module (gnu packages libreoffice) #:use-module (gnu packages libreoffice)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lxqt) #:use-module (gnu packages lxqt)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
@ -58,6 +63,8 @@
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
@ -72,22 +79,7 @@
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system qt)) #:use-module (guix build-system qt))
(define %telegram-version "2.9.3") (define %telegram-version "4.2.2")
(define libvpx-for-telegram-desktop
(let ((commit "5b63f0f821e94f8072eb483014cfc33b05978bb9")
(revision "112"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://chromium.googlesource.com/webm/libvpx")
(commit commit)))
(file-name (git-file-name
"libvpx-for-telegram-desktop"
(git-version "1.9.0" revision commit)))
(sha256
(base32
"1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68")))))
(define libyuv-for-telegram-desktop (define libyuv-for-telegram-desktop
(let ((commit "ad890067f661dc747a975bc55ba3767fe30d4452") (let ((commit "ad890067f661dc747a975bc55ba3767fe30d4452")
@ -109,196 +101,172 @@
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/cmake_helpers.git") (url "https://github.com/desktop-app/cmake_helpers.git")
(commit "4d44d822e01b3b5fbec3ce824e01f56aa35d7f72"))) (commit "f49e254d8c5287752b5ed7b86bd84073f584768e")))
(file-name (file-name
(git-file-name "cmake-helpers-for-telegram-desktop" %telegram-version)) (git-file-name "cmake-helpers-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"0h6cjiqy014h2mz90h1z5a7plb3ihbnds4bja8994ybr1dy3m7m5")))) "0yqib2ndhpaj69z603knpcfga0ni978janb5i8rvhslqddvbzfjv"))))
(define codegen-for-telegram-desktop (define codegen-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/codegen.git") (url "https://github.com/desktop-app/codegen.git")
(commit "248614b49cd7d5aff69d75a737f2e35b79fbb119"))) (commit "8815d7aec9b901191d08445f29e2edd0aeba7b2c")))
(file-name (file-name
(git-file-name "codegen-for-telegram-desktop" %telegram-version)) (git-file-name "codegen-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"00f7g2z6xmkbkrmi3q27hscjl44mg66wf9q0mz3rhy3jaa6cfdrk")))) "1ly958mjk25kfcpa174kvg134p9r751ixi275afj5kr57by9mbq2"))))
(define lib-base-for-telegram-desktop (define lib-base-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_base.git") (url "https://github.com/desktop-app/lib_base.git")
(commit "a23c05c44e4f01dc4428f4d75d4db98c59d313a6"))) (commit "d932f5048317b05dd414116741d995c82a528542")))
(file-name (file-name
(git-file-name "lib-base-for-telegram-desktop" %telegram-version)) (git-file-name "lib-base-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"0vh5zgxwalmbnvz8lzlnba87ch8vnpmcz6nvf56w09f3nlxvvq78")))) "1fnirqxj4qq1gzx52rydrc5r6clw3316bh51dfg652jr8hj6wkp2"))))
(define lib-crl-for-telegram-desktop (define lib-crl-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_crl.git") (url "https://github.com/desktop-app/lib_crl.git")
(commit "3ccf2ed5095442e5874bba8852cb7dc4efeae29f"))) (commit "4e620bc383d032aadea8e6af02661f8c76695cec")))
(file-name (file-name
(git-file-name "lib-crl-for-telegram-desktop" %telegram-version)) (git-file-name "lib-crl-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"11my7q54m4lvvlgma6pbdyjxi1cv1adk1gph2j50mh18sqlm8myz")))) "17bngj247qwq0dg4h37xdi5v1mk22y4yp7sp6ph3irmnz4awah0x"))))
(define lib-lottie-for-telegram-desktop (define lib-lottie-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_lottie.git") (url "https://github.com/desktop-app/lib_lottie.git")
(commit "0770df009db7928df1d0cad0900dc5110106d229"))) (commit "6ed1c22ed60692d2f288c9222fafd7d5cd62f904")))
(file-name (file-name
(git-file-name "lib-lottie-for-telegram-desktop" %telegram-version)) (git-file-name "lib-lottie-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"1gj56ymlbk5dnk82jw674808m511lv9dky8891a5wm4gp3pph5jb")))) "0l57ibfij9xm4ww4s9cc63q1x8xzpc6ablwaji1krrn3xxksqdd4"))))
(define lib-qr-for-telegram-desktop (define lib-qr-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_qr.git") (url "https://github.com/desktop-app/lib_qr.git")
(commit "2b08c71c6edcfc3e31f7d7f518cc963493b6e189"))) (commit "501f4c3502fd872ab4d777df8911bdac32de7c48")))
(file-name (file-name
(git-file-name "lib-qr-for-telegram-desktop" %telegram-version)) (git-file-name "lib-qr-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"05hrkmwgrczyjv87r507i2r7m1zr6k2i43mq3my0s6j4szr1rjq0")))) "0hmwqj7a9vcy8wq7pd1qprl68im3zl5f1wzcn2zzk2wvi0389k9f"))))
(define lib-rlottie-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_rlottie.git")
(commit "0671bf70547381effcf442ec9618e04502a8adbc")))
(file-name
(git-file-name "lib-rlottie-for-telegram-desktop" %telegram-version))
(sha256
(base32
"05qnza7j15356s8jq16pkbyp4zr586lssmd86lz5jq23lcb3raxv"))))
(define lib-rpl-for-telegram-desktop (define lib-rpl-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_rpl.git") (url "https://github.com/desktop-app/lib_rpl.git")
(commit "df721be3fa14a27dfc230d2e3c42bb1a7c9d0617"))) (commit "fd31f5bf382d2679eccdb1abaf8240a56c6a7abe")))
(file-name (file-name
(git-file-name "lib-rpl-for-telegram-desktop" %telegram-version)) (git-file-name "lib-rpl-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"15fnv3ssn7rn5d0j52gggdvyqc2wm464678dj7v2x9h8lka2jjxn")))) "1fpq8nyh8wx6zkb3sjjrx9ydqzyhw4483bdk1i9blp0ijn9xxdxf"))))
(define lib-spellcheck-for-telegram-desktop (define lib-spellcheck-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_spellcheck.git") (url "https://github.com/desktop-app/lib_spellcheck.git")
(commit "68c9b788958904aea7de79f986a0f82ec8c5b094"))) (commit "0e386e22cb6ba8a114b569840a635e096dcb645e")))
(file-name (file-name
(git-file-name "lib-spellcheck-for-telegram-desktop" %telegram-version)) (git-file-name "lib-spellcheck-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"0d8s4wwk6fxf536mhzq2vb9qw3j0m8nqia7ylvvpsbc4kh09dadn")))) "06js7ccv6z3nbd4v2p4hp2prrlmz5ww46y3yb922pp7gm317dwyw"))))
(define lib-storage-for-telegram-desktop (define lib-storage-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_storage.git") (url "https://github.com/desktop-app/lib_storage.git")
(commit "403df6c4a29562bd417c92d410e49819f5a48cc1"))) (commit "839609369d04615475cb1518636de3619106a917")))
(file-name (file-name
(git-file-name "lib-storage-for-telegram-desktop" %telegram-version)) (git-file-name "lib-storage-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"1zxvzfrxbj4d395fzyb5pm9wn3n8jyimxx88cyqjcdd46sx4h7r5")))) "1l26h2fmqp9dcpr6pfvdd5sjb68j7yh0ms2lnr8na7jf5xqmkwwm"))))
(define lib-tl-for-telegram-desktop (define lib-tl-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_tl.git") (url "https://github.com/desktop-app/lib_tl.git")
(commit "45faed44e7f4d11fec79b7a70e4a35dc91ef3fdb"))) (commit "36fb95c4de1339d2c8921ad6b2911858c3d0e0fa")))
(file-name (file-name
(git-file-name "lib-tl-for-telegram-desktop" %telegram-version)) (git-file-name "lib-tl-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"0h43xvzklda02494d466jp52hl8c1kmav9f12dyld10dpf1w6c7m")))) "03rngnssnqwr7ad05qn64mwgji5fb0r3fp5ybkf951p8phr1jvzk"))))
(define lib-ui-for-telegram-desktop (define lib-ui-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_ui.git") (url "https://github.com/desktop-app/lib_ui.git")
(commit "1b590f9e16eb9571a039f072d6fea66c607e419f"))) (commit "1ceaa0bbcfccb83dbf7f51d7f80a733ff2aa8c22")))
(file-name (file-name
(git-file-name "lib-ui-for-telegram-desktop" %telegram-version)) (git-file-name "lib-ui-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"0ighyhfp29h9h8c7vr70pnhcv2xnsr9ln084pssn8hb5z4pmb62f")))) "0kyrgxi202xwy14mnx62h1kny0434f5fxqns1ydp24q2c2cr1cxn"))))
(define lib-waylandshells-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_waylandshells.git")
(commit "59b0ee55a68976d27f1bf7cec0e11d5939e185e7")))
(file-name
(git-file-name "lib-waylandshells-for-telegram-desktop" %telegram-version))
(sha256
(base32
"0l2xrpc5mvvdlsj333pmkgfvn9wi1ijfdaaz8skfnw9icw52faaf"))))
(define lib-webrtc-for-telegram-desktop (define lib-webrtc-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_webrtc.git") (url "https://github.com/desktop-app/lib_webrtc.git")
(commit "ef49f953f12b112008a094a719f40939aaf39db4"))) (commit "9b11599c3c56047cfa4c68b69f1fcc93b602c33a")))
(file-name (file-name
(git-file-name "lib-webrtc-for-telegram-desktop" %telegram-version)) (git-file-name "lib-webrtc-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"15k4xs3462p3ddp5cn9im3nvdiaijmxir8wxsf5yrj70ghy26ibw")))) "0158jx8hj4fv6qpw5pgcr2mdlihj0dxs060dg3iy61zz6q68z5dq"))))
(define lib-webview-for-telegram-desktop (define lib-webview-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/desktop-app/lib_webview.git") (url "https://github.com/desktop-app/lib_webview.git")
(commit "e06427c624515485774e2e2181d4afeb05ad5a67"))) (commit "546df65eb2424550ed84ce14fc9c5d1bb3586f35")))
(file-name (file-name
(git-file-name "lib-webview-for-telegram-desktop" %telegram-version)) (git-file-name "lib-webview-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"148z7xzfscynwwwqssdsd97npax6yn8zrd64xw8qzbwff2g2r7k4")))) "0zzjwyw82bggncmmsw969lnjl04pklmqjqm77jjzadinivl52z0l"))))
(define tgcalls-for-telegram-desktop (define tgcalls-for-telegram-desktop
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/TelegramMessenger/tgcalls.git") (url "https://github.com/TelegramMessenger/tgcalls.git")
(commit "81e97fa52e25b7775b62ce07bb653533d81e91b3"))) (commit "82c4921045c440b727c38e464f3a0539708423ff")))
(file-name (file-name
(git-file-name "tgcalls-for-telegram-desktop" %telegram-version)) (git-file-name "tgcalls-for-telegram-desktop" %telegram-version))
(sha256 (sha256
(base32 (base32
"0fvad87hyxli83xn19mgf8jjrrh6y6iaig14pckpbkg33vf4wqkj")))) "1109r17abh66yz91b65fn2g4ryfybnsr5g6075sjhbah1gccv9mk"))))
(define-public webrtc-for-telegram-desktop (define-public webrtc-for-telegram-desktop
(let ((commit "91d836dc84a16584c6ac52b36c04c0de504d9c34") (let ((commit "621f3da55331733bf0d1b223786b96b68c03dca1")
(revision "166")) (revision "327"))
(hidden-package (hidden-package
(package (package
(name "webrtc-for-telegram-desktop") (name "webrtc-for-telegram-desktop")
@ -314,59 +282,64 @@
(file-name (file-name
(git-file-name name version)) (git-file-name name version))
(sha256 (sha256
(base32 "0plwdp6xgxi27hif5j7kpq425cidxyxbbga3z2f64dsninwy5p1x")) (base32 "1ks1572k1jj7pmzwm79p2gdgi31dd4bs761bphnx32zyq4c6skxk"))
(patches
(search-patches
;; https://github.com/desktop-app/tg_owt/pull/101
"webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch"))
(modules '((guix build utils) (modules '((guix build utils)
(ice-9 ftw) (ice-9 ftw)
(srfi srfi-1))) (srfi srfi-1)))
(snippet (snippet
#~(begin #~(begin
(let ((keep (let ((keep
'( ;; Custom forks which are incompatible with the ones in Guix. '("abseil-cpp" "libsrtp" "rnnoise"
"abseil-cpp" "libsrtp" "openh264" "rnnoise"
;; Not available in Guix. ;; Not available in Guix.
"pffft" "usrsctp" "pffft")))
;; Has cmake support files for libvpx input.
"libvpx")))
(with-directory-excursion "src/third_party" (with-directory-excursion "src/third_party"
(for-each delete-file-recursively (for-each delete-file-recursively
(lset-difference string=? (lset-difference string=?
(scandir ".") (scandir ".")
(cons* "." ".." keep))))))))) (cons* "." ".." keep)))))
;; Unbundle openh264.
(substitute* "CMakeLists.txt"
(("\\include\\(cmake\\/libopenh264\\.cmake\\)")""))))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list (list
#:tests? #f ; No target #:tests? #f ; No target
#:configure-flags #~(list "-DCMAKE_C_FLAGS=-fPIC"
"-DCMAKE_CXX_FLAGS=-fPIC")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'copy-inputs (add-after 'unpack 'unpack-additional-sources
(lambda _ (lambda _
(let* ((third-party (string-append (getcwd) "/src/third_party")) (let* ((third-party (string-append (getcwd) "/src/third_party"))
(libvpx-to (string-append third-party (crc32c-to (string-append third-party "/crc32c/src"))
"/libvpx/source/libvpx"))
(libyuv-to (string-append third-party "/libyuv"))) (libyuv-to (string-append third-party "/libyuv")))
(copy-recursively #$libvpx-for-telegram-desktop libvpx-to) (copy-recursively #$(package-source crc32c) crc32c-to)
(copy-recursively #$libyuv-for-telegram-desktop (copy-recursively #$libyuv-for-telegram-desktop
libyuv-to))))))) libyuv-to)))))))
(native-inputs (list perl pkg-config python-wrapper yasm)) (native-inputs (list pkg-config python-wrapper yasm))
(inputs (inputs
(list alsa-lib (list abseil-cpp-cxxstd17
ffmpeg ffmpeg
libjpeg-turbo
glib glib
libdrm
libglvnd
libjpeg-turbo
libvpx
libxcomposite libxcomposite
libxdamage libxdamage
libxrender libxext
libxfixes
libxrandr libxrandr
libxrender
libxtst
mesa
openh264
openssl openssl
opus opus
pipewire pipewire-0.3
protobuf protobuf))
pulseaudio
libx11
libxext
libxtst))
(synopsis "WebRTC support for Telegram Desktop") (synopsis "WebRTC support for Telegram Desktop")
(description "WebRTC-for-Telegram-Desktop is a custom WebRTC fork by (description "WebRTC-for-Telegram-Desktop is a custom WebRTC fork by
Telegram project, for its use in telegram desktop client.") Telegram project, for its use in telegram desktop client.")
@ -377,18 +350,16 @@ Telegram project, for its use in telegram desktop client.")
license:asl2.0 license:asl2.0
;; LibYuv ;; LibYuv
(license:non-copyleft "file:///src/third_party/libyuv/LICENSE") (license:non-copyleft "file:///src/third_party/libyuv/LICENSE")
;; OpenH264
license:bsd-2
;; PFFFT ;; PFFFT
(license:non-copyleft "file:///src/third_party/pffft/LICENSE") (license:non-copyleft "file:///src/third_party/pffft/LICENSE")
;; RnNoise ;; RnNoise
license:gpl3 license:gpl3
;; LibSRTP, LibVPx, UsrSCTP and Others ;; LibSRTP, Crc32c and Others
license:bsd-3)))))) license:bsd-3))))))
(define-public rlottie-for-telegram-desktop (define-public rlottie-for-telegram-desktop
(let ((commit "cbd43984ebdf783e94c8303c41385bf82aa36d5b") (let ((commit "8c69fc20cf2e150db304311f1233a4b55a8892d7")
(revision "671")) (revision "678"))
(hidden-package (hidden-package
(package (package
(inherit rlottie) (inherit rlottie)
@ -404,62 +375,12 @@ Telegram project, for its use in telegram desktop client.")
(file-name (file-name
(git-file-name "rlottie-for-telegram-desktop" version)) (git-file-name "rlottie-for-telegram-desktop" version))
(sha256 (sha256
(base32 "1lxpbgbhps9rmck036mgmiknqrzpjxpas8n7qxykv6pwzn0c8n0c")))) (base32 "14gwg3sn6xdx9ymnx5r0vfm4pk8dwk92s10a1wdvfbjpyrxll64i"))
(arguments (modules '((guix build utils)))
`(#:configure-flags (snippet
(list #~(begin
"-Dlog=true"
"-Ddumptree=true"
"-Dtest=true")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-cxx-flags
(lambda _
(substitute* "meson.build" (substitute* "meson.build"
(("werror=true") (("werror=true") "werror=false"))))))))))
"werror=false"))
#t)))))))))
(define-public libtgvoip-for-telegram-desktop
(let ((commit "13a5fcb16b04472d808ce122abd695dbf5d206cd")
(revision "88"))
(hidden-package
(package
(inherit libtgvoip)
(version
(git-version "2.4.4" revision commit))
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/telegramdesktop/libtgvoip.git")
(commit commit)))
(file-name
(git-file-name "libtgvoip-for-telegram-desktop" version))
(sha256
(base32 "12p6s7vxkf1gh1spdckkdxrx7bjzw881ds9bky7l5fw751cwb3xd"))))
(arguments
`(#:configure-flags
(list
"--disable-static"
"--disable-dsp" ; FIXME
"--enable-audio-callback"
"--with-alsa"
"--with-pulse")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-linkers
(lambda _
(substitute* "Makefile.am"
(("\\$\\(CRYPTO_LIBS\\) \\$\\(OPUS_LIBS\\)")
"$(CRYPTO_LIBS) $(OPUS_LIBS) $(ALSA_LIBS) $(PULSE_LIBS)"))
(substitute* "tgvoip.pc.in"
(("libcrypto opus")
"libcrypto opus alsa libpulse"))
#t)))))
(native-inputs
(list autoconf automake libtool pkg-config))))))
(define-public telegram-desktop (define-public telegram-desktop
(package (package
@ -476,15 +397,19 @@ Telegram project, for its use in telegram desktop client.")
(file-name (file-name
(git-file-name name version)) (git-file-name name version))
(sha256 (sha256
(base32 "0dzf1y3xhqvizg29bd1kya48cjbkq073d2x10ynwcmmx396l4nd8")) (base32 "16mcx4gwkl8s70a8gppxczmjsww1a3vmdrz3snfh986nvid64mq7"))
(patches
(search-patches
;; https://github.com/telegramdesktop/tdesktop/pull/24126
"telegram-desktop-allow-disable-libtgvoip.patch"))
(modules '((guix build utils) (modules '((guix build utils)
(ice-9 ftw) (ice-9 ftw)
(srfi srfi-1))) (srfi srfi-1)))
(snippet (snippet
#~(begin #~(begin
(let ((keep (let ((keep
'( ;; Not available in Guix. '(;; Not available in Guix.
"SPMediaKeyTap" "statusnotifieritem" "tgcalls"))) "tgcalls")))
(with-directory-excursion "Telegram/ThirdParty" (with-directory-excursion "Telegram/ThirdParty"
(for-each delete-file-recursively (for-each delete-file-recursively
(lset-difference string=? (lset-difference string=?
@ -510,17 +435,15 @@ Telegram project, for its use in telegram desktop client.")
;; also stored in <#$source/snap/snapcraft.yaml>. ;; also stored in <#$source/snap/snapcraft.yaml>.
"-DTDESKTOP_API_ID=611335" "-DTDESKTOP_API_ID=611335"
"-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c" "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
;; Disable WebkitGTK support as it fails to link "-DTDESKTOP_DISABLE_LEGACY_TGVOIP=ON"
"-DDESKTOP_APP_DISABLE_WEBKITGTK=ON" "-DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON"
;; Use bundled fonts as fallback. "-DDESKTOP_APP_DISABLE_AUTOUPDATE=ON"
"-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF") "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=ON")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'make-writable (add-after 'unpack 'unpack-additional-sources
(lambda _
(for-each make-file-writable (find-files "."))))
(add-after 'make-writable 'copy-inputs
(lambda _ (lambda _
(for-each make-file-writable (find-files "."))
(for-each (for-each
(match-lambda (match-lambda
((dst src) ((dst src)
@ -532,36 +455,27 @@ Telegram project, for its use in telegram desktop client.")
("Telegram/lib_crl" #$lib-crl-for-telegram-desktop) ("Telegram/lib_crl" #$lib-crl-for-telegram-desktop)
("Telegram/lib_lottie" #$lib-lottie-for-telegram-desktop) ("Telegram/lib_lottie" #$lib-lottie-for-telegram-desktop)
("Telegram/lib_qr" #$lib-qr-for-telegram-desktop) ("Telegram/lib_qr" #$lib-qr-for-telegram-desktop)
("Telegram/lib_rlottie" #$lib-rlottie-for-telegram-desktop)
("Telegram/lib_rpl" #$lib-rpl-for-telegram-desktop) ("Telegram/lib_rpl" #$lib-rpl-for-telegram-desktop)
("Telegram/lib_spellcheck" #$lib-spellcheck-for-telegram-desktop) ("Telegram/lib_spellcheck" #$lib-spellcheck-for-telegram-desktop)
("Telegram/lib_storage" #$lib-storage-for-telegram-desktop) ("Telegram/lib_storage" #$lib-storage-for-telegram-desktop)
("Telegram/lib_tl" #$lib-tl-for-telegram-desktop) ("Telegram/lib_tl" #$lib-tl-for-telegram-desktop)
("Telegram/lib_ui" #$lib-ui-for-telegram-desktop) ("Telegram/lib_ui" #$lib-ui-for-telegram-desktop)
("Telegram/lib_waylandshells" #$lib-waylandshells-for-telegram-desktop)
("Telegram/lib_webrtc" #$lib-webrtc-for-telegram-desktop) ("Telegram/lib_webrtc" #$lib-webrtc-for-telegram-desktop)
("Telegram/lib_webview" #$lib-webview-for-telegram-desktop) ("Telegram/lib_webview" #$lib-webview-for-telegram-desktop)
("Telegram/ThirdParty/tgcalls" #$tgcalls-for-telegram-desktop))))) ("Telegram/ThirdParty/tgcalls" #$tgcalls-for-telegram-desktop)))))
(add-before 'configure 'patch-cxx-flags
(lambda _
(substitute* "cmake/options_linux.cmake" (("class-memaccess") "all"))))
(add-after 'install 'glib-or-gtk-compile-schemas (add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(native-inputs (native-inputs
(list cmake-shared (list `(,glib "bin")
extra-cmake-modules
`(,glib "bin")
`(,gtk+ "bin") `(,gtk+ "bin")
pkg-config pkg-config
python-wrapper python-wrapper))
qttools-5))
(inputs (inputs
(list alsa-lib (list abseil-cpp-cxxstd17
alsa-lib
c++-gsl c++-gsl
catch2
libexpected
fcitx-qt5 fcitx-qt5
fcitx5-qt fcitx5-qt
ffmpeg ffmpeg
@ -571,12 +485,13 @@ Telegram project, for its use in telegram desktop client.")
hime hime
hunspell hunspell
jemalloc jemalloc
kwayland kcoreaddons
libdbusmenu-qt libdispatch
libexpected
libjpeg-turbo libjpeg-turbo
libtgvoip-for-telegram-desktop libvpx
libxcb
lz4 lz4
materialdecoration
minizip minizip
nimf nimf
openal openal
@ -585,20 +500,18 @@ Telegram project, for its use in telegram desktop client.")
pulseaudio pulseaudio
qrcodegen-cpp qrcodegen-cpp
qtbase-5 qtbase-5
qtsvg-5
qt5ct
qtimageformats qtimageformats
qtsvg-5
qtwayland qtwayland
range-v3 range-v3
rlottie-for-telegram-desktop rlottie-for-telegram-desktop
rnnoise rnnoise
wayland
webkitgtk
webrtc-for-telegram-desktop webrtc-for-telegram-desktop
libx11
libxcb
xcb-util-keysyms xcb-util-keysyms
xxhash xxhash
zlib)) zlib))
(propagated-inputs (list dconf))
(synopsis "Telegram Desktop") (synopsis "Telegram Desktop")
(description "Telegram desktop is the official desktop version of the (description "Telegram desktop is the official desktop version of the
Telegram instant messenger.") Telegram instant messenger.")
@ -606,7 +519,7 @@ Telegram instant messenger.")
(license (license
(list (list
;; ThirdParty ;; ThirdParty
license:lgpl2.1+ license:lgpl3
;; Others ;; Others
license:gpl3+)))) license:gpl3+))))

View file

@ -11194,6 +11194,33 @@ mechanism. Line numbering may be extended to footnote lines, using the
fnlineno package.") fnlineno package.")
(license license:lppl1.3a+))) (license license:lppl1.3a+)))
(define-public texlive-babel-czech
(let ((template (simple-texlive-package
"texlive-babel-czech"
(list "/source/generic/babel-czech/")
(base32
"1274pzgdya7gkvxjmdm3v5rb7hc0sj6mqn9pd8y9418yx5449spg"))))
(package
(inherit template)
(arguments
(substitute-keyword-arguments (package-arguments template)
((#:tex-directory _ '())
"generic/babel-czech")
((#:build-targets _ '())
''("czech.ins")) ; TODO: use dtx and build documentation
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'chdir
(lambda _
(chdir "source/generic/babel-czech")))))))
(home-page "https://www.ctan.org/pkg/babel-czech")
(synopsis "Babel support for Czech")
(description
"This package provides the language definition file for support of
Czech in @code{babel}. Some shortcuts are defined, as well as translations to
Czech of standard ``LaTeX names''.")
(license license:lppl1.3+))))
(define-public texlive-babel-dutch (define-public texlive-babel-dutch
(let ((template (simple-texlive-package (let ((template (simple-texlive-package
"texlive-babel-dutch" "texlive-babel-dutch"

View file

@ -1573,14 +1573,14 @@ operate properly.")
(define-public ffmpeg-5 (define-public ffmpeg-5
(package (package
(name "ffmpeg") (name "ffmpeg")
(version "5.1.1") (version "5.1.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0d84pjmlb5ss1yybxic3wlyrr31wcsg29ysqx5qiwlcnqkw3zgwm")))) "1p7kxr0f9f9d0pyyxq9ciaj9ch2drmcw5p9jk22j111ccrnp17k1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(append (append

View file

@ -77,7 +77,7 @@
(define-public vim (define-public vim
(package (package
(name "vim") (name "vim")
(version "9.0.0509") (version "9.0.0594")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -86,7 +86,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0affh0q6r5cvf01f4m5nr94bq1k23bzhiwa4xlpqim21yipafamm")))) "0rb1385pwz75z342b4915gp8212xipp38z9qlaxdqdy3x5m16lcp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
@ -100,6 +100,7 @@
"src/testdir/test_normal.vim" "src/testdir/test_normal.vim"
"src/testdir/test_popupwin.vim" "src/testdir/test_popupwin.vim"
"src/testdir/test_shell.vim" "src/testdir/test_shell.vim"
"src/testdir/test_suspend.vim"
"src/testdir/test_terminal.vim" "src/testdir/test_terminal.vim"
"src/testdir/test_terminal2.vim") "src/testdir/test_terminal2.vim")
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh")))

View file

@ -1675,36 +1675,27 @@ modules for building a Wayland compositor.")
(license license:expat))) ; MIT license (license license:expat))) ; MIT license
(define-public swaylock-effects (define-public swaylock-effects
;; Latest release is from November 2020, but doesn't support disabling SSE.
(let ((commit "5cb9579faaf5662b111f5722311b701eff1c1d00")
(revision "1"))
(package (package
(inherit swaylock) (inherit swaylock)
(name "swaylock-effects") (name "swaylock-effects")
(version (git-version "1.6-3" revision commit)) (version "1.6.10")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/mortie/swaylock-effects") (url "https://github.com/jirutka/swaylock-effects")
(commit commit))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"036dkhfqgk7g9vbr5pxgrs66h5fz0rwdsc67i1w51aa9v01r35ca")))) "1d8ri7bzwfr53ybgf23acz57wyhcl2f1nqprcda1v9bzfgsqfk2n"))))
(arguments (arguments
`(#:configure-flags '("-Dsse=false") (list #:configure-flags #~'("-Dsse=false")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-meson
(lambda _
(substitute* "meson.build"
(("'-mtune=native',") "")))))))
(synopsis "Screen locking utility for Wayland compositors with effects") (synopsis "Screen locking utility for Wayland compositors with effects")
(description "@code{Swaylock-effects} is a fork of swaylock with additional (description "@code{Swaylock-effects} is a fork of swaylock with additional
features, such as the ability to take a screenshot as the background image, features, such as the ability to take a screenshot as the background image,
display a clock or apply image manipulation techniques to the background image.") display a clock or apply image manipulation techniques to the background image.")
(home-page "https://github.com/mortie/swaylock-effects")))) (home-page "https://github.com/jirutka/swaylock-effects")))
(define-public swaybg (define-public swaybg
(package (package

View file

@ -159,7 +159,7 @@ things the parser might find in the XML document (like start tags).")
(define expat/fixed (define expat/fixed
(package (package
(inherit expat) (inherit expat)
(version "2.4.7") (version "2.4.9")
(source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c)))) (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c))))
(origin (origin
(method url-fetch) (method url-fetch)
@ -171,7 +171,7 @@ things the parser might find in the XML document (like start tags).")
"/expat-" version ".tar.xz"))) "/expat-" version ".tar.xz")))
(sha256 (sha256
(base32 (base32
"0zbss0dssn17mjmvk17qfi5cmvm0lcyzs62cwvqr219hhl864xcq"))))))) "0m03zh7al39mx4rf0s2bgdn77r658qqf9k3a7bwx6z2wzql0g33f")))))))
(define-public libebml (define-public libebml
(package (package

View file

@ -55,7 +55,9 @@
#:select (file-system-packages)) #:select (file-system-packages))
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module ((gnu packages linux) #:use-module ((gnu packages linux)
#:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools)) #:select (alsa-utils btrfs-progs crda eudev
e2fsprogs f2fs-tools fuse gpm kbd lvm2 rng-tools
util-linux xfsprogs))
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module ((gnu packages base) #:use-module ((gnu packages base)
#:select (coreutils glibc glibc-utf8-locales tar)) #:select (coreutils glibc glibc-utf8-locales tar))
@ -64,7 +66,10 @@
#:autoload (gnu packages hurd) (hurd) #:autoload (gnu packages hurd) (hurd)
#:use-module (gnu packages package-management) #:use-module (gnu packages package-management)
#:use-module ((gnu packages gnupg) #:select (guile-gcrypt)) #:use-module ((gnu packages gnupg) #:select (guile-gcrypt))
#:use-module (gnu packages linux) #:use-module ((gnu packages disk)
#:select (dosfstools))
#:use-module ((gnu packages file-systems)
#:select (bcachefs-tools exfat-utils jfsutils zfs))
#:use-module (gnu packages terminals) #:use-module (gnu packages terminals)
#:use-module ((gnu build file-systems) #:use-module ((gnu build file-systems)
#:select (mount-flags->bit-mask #:select (mount-flags->bit-mask
@ -86,6 +91,7 @@
#:export (fstab-service-type #:export (fstab-service-type
root-file-system-service root-file-system-service
file-system-service-type file-system-service-type
file-system-utilities
swap-service swap-service
host-name-service host-name-service
%default-console-font %default-console-font
@ -488,6 +494,31 @@ upon boot."
(memq 'bind-mount (file-system-flags file-system)))) (memq 'bind-mount (file-system-flags file-system))))
file-systems)) file-systems))
(define (file-system-type->utilities type)
"Return the package providing the utilities for file system TYPE, #f
otherwise."
(assoc-ref
`(("bcachefs" . ,bcachefs-tools)
("btrfs" . ,btrfs-progs)
("exfat" . ,exfat-utils)
("ext2" . ,e2fsprogs)
("ext3" . ,e2fsprogs)
("ext4" . ,e2fsprogs)
("fat" . ,dosfstools)
("f2fs" . ,f2fs-tools)
("jfs" . ,jfsutils)
("vfat" . ,dosfstools)
("xfs" . ,xfsprogs)
("zfs" . ,zfs))
type))
(define (file-system-utilities file-systems)
"Return a list of packages containing file system utilities for
FILE-SYSTEMS."
(filter-map (lambda (file-system)
(file-system-type->utilities (file-system-type file-system)))
file-systems))
(define file-system-service-type (define file-system-service-type
(service-type (name 'file-systems) (service-type (name 'file-systems)
(extensions (extensions
@ -495,6 +526,8 @@ upon boot."
file-system-shepherd-services) file-system-shepherd-services)
(service-extension fstab-service-type (service-extension fstab-service-type
file-system-fstab-entries) file-system-fstab-entries)
(service-extension profile-service-type
file-system-utilities)
;; Have 'user-processes' depend on 'file-systems'. ;; Have 'user-processes' depend on 'file-systems'.
(service-extension user-processes-service-type (service-extension user-processes-service-type

View file

@ -17,14 +17,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services samba) (define-module (gnu services samba)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages samba) #:use-module (gnu packages samba)
#:use-module (gnu services) #:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (gnu services base) #:use-module (gnu services base)
#:use-module (gnu system shadow) #:use-module (gnu system shadow)
@ -41,20 +39,10 @@
#:export (samba-service-type #:export (samba-service-type
samba-configuration samba-configuration
samba-smb-conf
wsdd-service-type wsdd-service-type
wsdd-configuration)) wsdd-configuration))
(define %smb-conf
(plain-file "smb.conf" "[global]
workgroup = WORKGROUP
server string = Samba Server
server role = standalone server
log file = /var/log/samba/log.%m
logging = file
"))
(define-record-type* <samba-configuration> (define-record-type* <samba-configuration>
samba-configuration samba-configuration
make-samba-configuration make-samba-configuration

View file

@ -575,6 +575,14 @@ marked as 'needed-for-boot'."
(service file-system-service-type (service file-system-service-type
(map add-dependencies file-systems))) (map add-dependencies file-systems)))
(define (boot-file-system-service os)
"Return a service which adds, to the system profile, packages providing the
utilites for the file systems marked as 'needed-for-boot' in OS."
(let ((file-systems (filter file-system-needed-for-boot?
(operating-system-file-systems os))))
(simple-service 'boot-file-system-utilities profile-service-type
(file-system-utilities file-systems))))
(define (mapped-device-users device file-systems) (define (mapped-device-users device file-systems)
"Return the subset of FILE-SYSTEMS that use DEVICE." "Return the subset of FILE-SYSTEMS that use DEVICE."
(let ((targets (map (cut string-append "/dev/mapper/" <>) (let ((targets (map (cut string-append "/dev/mapper/" <>)
@ -722,7 +730,8 @@ bookkeeping."
(let* ((mappings (device-mapping-services os)) (let* ((mappings (device-mapping-services os))
(root-fs (root-file-system-service)) (root-fs (root-file-system-service))
(other-fs (non-boot-file-system-service os)) (boot-fs (boot-file-system-service os))
(non-boot-fs (non-boot-file-system-service os))
(swaps (swap-services os)) (swaps (swap-services os))
(procs (service user-processes-service-type)) (procs (service user-processes-service-type))
(host-name (host-name-service (operating-system-host-name os))) (host-name (host-name-service (operating-system-host-name os)))
@ -757,7 +766,7 @@ bookkeeping."
(operating-system-setuid-programs os)) (operating-system-setuid-programs os))
(service profile-service-type (service profile-service-type
(operating-system-packages os)) (operating-system-packages os))
other-fs boot-fs non-boot-fs
(append mappings swaps (append mappings swaps
;; Add the firmware service. ;; Add the firmware service.
@ -887,8 +896,9 @@ of PROVENANCE-SERVICE-TYPE to its services."
iw wireless-tools)) iw wireless-tools))
(define %base-packages-disk-utilities (define %base-packages-disk-utilities
;; A well-rounded set of packages for interacting with disks, partitions ;; A well-rounded set of packages for interacting with disks,
;; and filesystems. ;; partitions and filesystems, included with the Guix installation
;; image.
(list parted gptfdisk ddrescue (list parted gptfdisk ddrescue
;; We used to provide fdisk from GNU fdisk, but as of version 2.0.0a ;; We used to provide fdisk from GNU fdisk, but as of version 2.0.0a
;; it pulls Guile 1.8, which takes unreasonable space; furthermore ;; it pulls Guile 1.8, which takes unreasonable space; furthermore
@ -903,8 +913,7 @@ of PROVENANCE-SERVICE-TYPE to its services."
(define %base-packages (define %base-packages
;; Default set of packages globally visible. It should include anything ;; Default set of packages globally visible. It should include anything
;; required for basic administrator tasks. ;; required for basic administrator tasks.
(append (list e2fsprogs) (append %base-packages-artwork
%base-packages-artwork
%base-packages-interactive %base-packages-interactive
%base-packages-linux %base-packages-linux
%base-packages-networking %base-packages-networking

View file

@ -82,32 +82,64 @@
(define %input-style (define %input-style
(make-parameter 'variable)) ; or 'specification (make-parameter 'variable)) ; or 'specification
(define (string->licenses license-string)
(let ((licenses
(map string-trim-both
(string-tokenize license-string
(char-set-complement (char-set #\|))))))
(string->license licenses)))
(define string->license (define string->license
(let ((prefix identity))
(match-lambda (match-lambda
("AGPL-3" 'agpl3+) ("AGPL-3" (prefix 'agpl3))
("Artistic-2.0" 'artistic2.0) ("AGPL (>= 3)" (prefix 'agpl3+))
("Apache License 2.0" 'asl2.0) ("Artistic-2.0" (prefix 'artistic2.0))
("BSD_2_clause" 'bsd-2) ((or "Apache License 2.0"
("BSD_2_clause + file LICENSE" 'bsd-2) "Apache License (== 2.0)")
("BSD_3_clause" 'bsd-3) (prefix 'asl2.0))
("BSD_3_clause + file LICENSE" 'bsd-3) ("BSD_2_clause" (prefix 'bsd-2))
("GPL" '(list gpl2+ gpl3+)) ("BSD_2_clause + file LICENSE" (prefix 'bsd-2))
("GPL (>= 2)" 'gpl2+) ("BSD_3_clause" (prefix 'bsd-3))
("GPL (>= 3)" 'gpl3+) ("BSD_3_clause + file LICENSE" (prefix 'bsd-3))
("GPL-2" 'gpl2) ("CC0" (prefix 'cc0))
("GPL-3" 'gpl3) ("CC BY-SA 4.0" (prefix 'cc-by-sa4.0))
("LGPL-2" 'lgpl2.0) ("CeCILL" (prefix 'cecill))
("LGPL-2.1" 'lgpl2.1) ((or "GPL"
("LGPL-3" 'lgpl3) "GNU General Public License")
("LGPL (>= 2)" 'lgpl2.0+) `(list ,(prefix 'gpl2+) ,(prefix 'gpl3+)))
("LGPL (>= 2.1)" 'lgpl2.1+) ((or "GPL (>= 2)"
("LGPL (>= 3)" 'lgpl3+) "GPL (>= 2.0)")
("MIT" 'expat) (prefix 'gpl2+))
("MIT + file LICENSE" 'expat) ((or "GPL (> 2)"
"GPL (>= 3)"
"GPL (>= 3.0)"
"GNU General Public License (>= 3)")
(prefix 'gpl3+))
((or "GPL-2"
"GNU General Public License version 2")
(prefix 'gpl2))
((or "GPL-3"
"GNU General Public License version 3")
(prefix 'gpl3))
((or "GNU Lesser General Public License"
"LGPL")
(prefix 'lgpl2.0+))
("LGPL-2" (prefix 'lgpl2.0))
("LGPL-2.1" (prefix 'lgpl2.1))
("LGPL-3" (prefix 'lgpl3))
((or "LGPL (>= 2)"
"LGPL (>= 2.0)")
(prefix 'lgpl2.0+))
("LGPL (>= 2.1)" (prefix 'lgpl2.1+))
("LGPL (>= 3)" (prefix 'lgpl3+))
("MIT" (prefix 'expat))
("MIT + file LICENSE" (prefix 'expat))
("file LICENSE"
`(,(prefix 'fsdg-compatible) "file://LICENSE"))
((x) (string->license x)) ((x) (string->license x))
((lst ...) `(list ,@(map string->license lst))) ((lst ...) `(list ,@(map string->license lst)))
(_ #f))) (unknown `(,(prefix 'fsdg-compatible) ,unknown)))))
(define (description->alist description) (define (description->alist description)
"Convert a DESCRIPTION string into an alist." "Convert a DESCRIPTION string into an alist."
@ -360,10 +392,21 @@ empty list when the FIELD cannot be found."
(define invalid-packages (define invalid-packages
(list "c++11" (list "c++11"
"c++14" "c++14"
"linux"
"getopt::long" "getopt::long"
"linux"
"none"
"windows"
"xcode"
"xquartz")) "xquartz"))
(define (transform-sysname sysname)
"Return a Guix package name for the common package name SYSNAME."
(match sysname
("java" "openjdk")
("fftw3" "fftw")
("tcl/tk" "tcl")
(_ sysname)))
(define cran-guix-name (cut guix-name "r-" <>)) (define cran-guix-name (cut guix-name "r-" <>))
(define (tarball-needs-fortran? tarball) (define (tarball-needs-fortran? tarball)
@ -474,7 +517,7 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
(name (assoc-ref meta "Package")) (name (assoc-ref meta "Package"))
(synopsis (assoc-ref meta "Title")) (synopsis (assoc-ref meta "Title"))
(version (assoc-ref meta "Version")) (version (assoc-ref meta "Version"))
(license (string->license (assoc-ref meta "License"))) (license (string->licenses (assoc-ref meta "License")))
;; Some packages have multiple home pages. Some have none. ;; Some packages have multiple home pages. Some have none.
(home-page (case repository (home-page (case repository
((git) (assoc-ref meta 'git)) ((git) (assoc-ref meta 'git))
@ -558,7 +601,7 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
`((properties ,`(,'quasiquote ((,'upstream-name . ,name))))) `((properties ,`(,'quasiquote ((,'upstream-name . ,name)))))
'()) '())
(build-system r-build-system) (build-system r-build-system)
,@(maybe-inputs sysdepends) ,@(maybe-inputs (map transform-sysname sysdepends))
,@(maybe-inputs (map cran-guix-name propagate) 'propagated-inputs) ,@(maybe-inputs (map cran-guix-name propagate) 'propagated-inputs)
,@(maybe-inputs ,@(maybe-inputs
`(,@(if (needs-fortran? source (not (or git? hg?))) `(,@(if (needs-fortran? source (not (or git? hg?)))
@ -571,7 +614,7 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
(home-page ,(if (string-null? home-page) (home-page ,(if (string-null? home-page)
(string-append base-url name) (string-append base-url name)
home-page)) home-page))
(synopsis ,synopsis) (synopsis ,(beautify-synopsis synopsis))
(description ,(beautify-description (or (assoc-ref meta "Description") (description ,(beautify-description (or (assoc-ref meta "Description")
""))) "")))
(license ,license)))) (license ,license))))

View file

@ -72,6 +72,7 @@
snake-case snake-case
beautify-description beautify-description
beautify-synopsis
alist->package alist->package
@ -297,6 +298,21 @@ LENGTH characters."
cleaned 'pre ". " 'post) cleaned 'pre ". " 'post)
length))) length)))
(define (beautify-synopsis synopsis)
"Improve the package SYNOPSIS."
(let ((cleaned (cond
((not (string? synopsis))
(G_ "This package lacks a synopsis. Run \
\"info '(guix) Synopses and Descriptions'\" for more information."))
((string-prefix? "A " synopsis)
(substring synopsis 1))
;; Remove trailing period.
((string-suffix? "." synopsis)
(substring synopsis 0
(1- (string-length synopsis))))
(else synopsis))))
(string-trim-both cleaned)))
(define* (package-names->package-inputs names #:optional (output #f)) (define* (package-names->package-inputs names #:optional (output #f))
"Given a list of PACKAGE-NAMES or (PACKAGE-NAME VERSION) pairs, and an "Given a list of PACKAGE-NAMES or (PACKAGE-NAME VERSION) pairs, and an
optional OUTPUT, tries to generate a quoted list of inputs, as suitable to optional OUTPUT, tries to generate a quoted list of inputs, as suitable to

View file

@ -437,20 +437,13 @@ server certificates."
"Bind PORT with EXP... to a socket connected to URI." "Bind PORT with EXP... to a socket connected to URI."
(call-with-cached-connection uri (lambda (port) exp ...))) (call-with-cached-connection uri (lambda (port) exp ...)))
(define* (process-substitution port store-item destination (define* (download-nar narinfo destination
#:key cache-urls acl #:key status-port
deduplicate? print-build-trace?) deduplicate? print-build-trace?)
"Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to "Download the nar prescribed in NARINFO, which is assumed to be authentic
DESTINATION as a nar file. Verify the substitute against ACL, and verify its and authorized, and write it to DESTINATION. When DEDUPLICATE? is true, and
hash against what appears in the narinfo. When DEDUPLICATE? is true, and if if DESTINATION is in the store, deduplicate its files. Print a status line to
DESTINATION is in the store, deduplicate its files. Print a status line to STATUS-PORT."
PORT."
(define narinfo
(lookup-narinfo cache-urls store-item
(if (%allow-unauthenticated-substitutes?)
(const #t)
(cut valid-narinfo? <> acl))))
(define destination-in-store? (define destination-in-store?
(string-prefix? (string-append (%store-prefix) "/") (string-prefix? (string-append (%store-prefix) "/")
destination)) destination))
@ -467,11 +460,6 @@ PORT."
(let ((port (open-file (uri-path uri) "r0b"))) (let ((port (open-file (uri-path uri) "r0b")))
(values port (stat:size (stat port))))) (values port (stat:size (stat port)))))
((http https) ((http https)
(guard (c ((http-get-error? c)
(leave (G_ "download from '~a' failed: ~a, ~s~%")
(uri->string (http-get-error-uri c))
(http-get-error-code c)
(http-get-error-reason c))))
;; Test this with: ;; Test this with:
;; sudo tc qdisc add dev eth0 root netem delay 1500ms ;; sudo tc qdisc add dev eth0 root netem delay 1500ms
;; and then cancel with: ;; and then cancel with:
@ -485,15 +473,11 @@ PORT."
(http-fetch uri #:text? #f (http-fetch uri #:text? #f
#:port port #:port port
#:keep-alive? #t #:keep-alive? #t
#:buffered? #f))))) #:buffered? #f))))
(else (else
(leave (G_ "unsupported substitute URI scheme: ~a~%") (leave (G_ "unsupported substitute URI scheme: ~a~%")
(uri->string uri))))) (uri->string uri)))))
(unless narinfo
(leave (G_ "no valid substitute for '~a'~%")
store-item))
(let ((uri compression file-size (let ((uri compression file-size
(narinfo-best-uri narinfo (narinfo-best-uri narinfo
#:fast-decompression? #:fast-decompression?
@ -575,14 +559,109 @@ PORT."
(let ((actual (get-hash))) (let ((actual (get-hash)))
(if (bytevector=? actual expected) (if (bytevector=? actual expected)
;; Tell the daemon that we're done. ;; Tell the daemon that we're done.
(format port "success ~a ~a~%" (format status-port "success ~a ~a~%"
(narinfo-hash narinfo) (narinfo-size narinfo)) (narinfo-hash narinfo) (narinfo-size narinfo))
;; The actual data has a different hash than that in NARINFO. ;; The actual data has a different hash than that in NARINFO.
(format port "hash-mismatch ~a ~a ~a~%" (format status-port "hash-mismatch ~a ~a ~a~%"
(hash-algorithm-name algorithm) (hash-algorithm-name algorithm)
(bytevector->nix-base32-string expected) (bytevector->nix-base32-string expected)
(bytevector->nix-base32-string actual))))))) (bytevector->nix-base32-string actual)))))))
(define system-error?
(let ((kind-and-args? (exception-predicate &exception-with-kind-and-args)))
(lambda (exception)
"Return true if EXCEPTION is a Guile 'system-error exception."
(and (kind-and-args? exception)
(eq? 'system-error (exception-kind exception))))))
(define network-error?
(let ((kind-and-args? (exception-predicate &exception-with-kind-and-args)))
(lambda (exception)
"Return true if EXCEPTION denotes a networking error."
(or (and (system-error? exception)
(let ((errno (system-error-errno
(cons 'system-error (exception-args exception)))))
(memv errno (list ECONNRESET ECONNABORTED
ECONNREFUSED EHOSTUNREACH
ENOENT)))) ;for "file://"
(and (kind-and-args? exception)
(memq (exception-kind exception)
'(gnutls-error getaddrinfo-error)))
(and (http-get-error? exception)
(begin
(warning (G_ "download from '~a' failed: ~a, ~s~%")
(uri->string (http-get-error-uri exception))
(http-get-error-code exception)
(http-get-error-reason exception))
#t))))))
(define* (process-substitution/fallback port narinfo destination
#:key cache-urls acl
deduplicate? print-build-trace?)
"Attempt to substitute NARINFO, which is assumed to be authorized or
equivalent, by trying to download its nar from each entry in CACHE-URLS.
This can be less efficient than 'lookup-narinfo', which stops at the first
entry that provides a valid narinfo, but it makes sure we eventually find a
way to download the nar."
;; Note: Keep NARINFO's uri-base in CACHE-URLS: that lets us retry in case
;; this was a transient issue.
(let loop ((cache-urls cache-urls))
(match cache-urls
(()
(leave (G_ "failed to find alternative substitute for '~a'~%")
(narinfo-path narinfo)))
((cache-url rest ...)
(match (lookup-narinfos cache-url
(list (narinfo-path narinfo))
#:open-connection
open-connection-for-uri/cached)
((alternate)
(if (or (equivalent-narinfo? narinfo alternate)
(valid-narinfo? alternate acl)
(%allow-unauthenticated-substitutes?))
(guard (c ((network-error? c) (loop rest)))
(download-nar alternate destination
#:status-port port
#:deduplicate? deduplicate?
#:print-build-trace? print-build-trace?))
(loop rest)))
(()
(loop rest)))))))
(define* (process-substitution port store-item destination
#:key cache-urls acl
deduplicate? print-build-trace?)
"Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to
DESTINATION as a nar file. Verify the substitute against ACL, and verify its
hash against what appears in the narinfo. When DEDUPLICATE? is true, and if
DESTINATION is in the store, deduplicate its files. Print a status line to
PORT."
(define narinfo
(lookup-narinfo cache-urls store-item
(if (%allow-unauthenticated-substitutes?)
(const #t)
(cut valid-narinfo? <> acl))))
(unless narinfo
(leave (G_ "no valid substitute for '~a'~%")
store-item))
(guard (c ((network-error? c)
(format (current-error-port)
(G_ "retrying download of '~a' with other substitute URLs...~%")
store-item)
(process-substitution/fallback port narinfo destination
#:cache-urls cache-urls
#:acl acl
#:deduplicate? deduplicate?
#:print-build-trace?
print-build-trace?)))
(download-nar narinfo destination
#:status-port port
#:deduplicate? deduplicate?
#:print-build-trace? print-build-trace?)))
;;; ;;;
;;; Entry point. ;;; Entry point.

View file

@ -523,6 +523,119 @@ System: mips64el-linux\n")))
(lambda () (lambda ()
(false-if-exception (delete-file "substitute-retrieved"))))))) (false-if-exception (delete-file "substitute-retrieved")))))))
(test-equal "substitute, first URL has narinfo but lacks nar, second URL unauthorized"
"Substitutable data."
(with-narinfo*
(string-append %narinfo "Signature: "
(signature-field
%narinfo
#:public-key %wrong-public-key))
%alternate-substitute-directory
(with-narinfo* (string-append %narinfo "Signature: "
(signature-field %narinfo))
%main-substitute-directory
(dynamic-wind
(const #t)
(lambda ()
;; Remove this file so that the substitute can only be retrieved
;; from %ALTERNATE-SUBSTITUTE-DIRECTORY.
(delete-file (string-append %main-substitute-directory
"/example.nar"))
(parameterize ((substitute-urls
(map (cut string-append "file://" <>)
(list %main-substitute-directory
%alternate-substitute-directory))))
(request-substitution (string-append (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
"substitute-retrieved"))
(call-with-input-file "substitute-retrieved" get-string-all))
(lambda ()
(false-if-exception (delete-file "substitute-retrieved")))))))
(test-equal "substitute, first URL has narinfo but nar is 404, both URLs authorized"
"Substitutable data."
(with-narinfo*
(string-append %narinfo "Signature: "
(signature-field %narinfo))
%main-substitute-directory
(with-http-server `((200 ,(string-append %narinfo "Signature: "
(signature-field %narinfo)))
(404 "Sorry, nar is missing!"))
(dynamic-wind
(const #t)
(lambda ()
(parameterize ((substitute-urls
(list (%local-url)
(string-append "file://"
%main-substitute-directory))))
(request-substitution (string-append (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
"substitute-retrieved"))
(call-with-input-file "substitute-retrieved" get-string-all))
(lambda ()
(false-if-exception (delete-file "substitute-retrieved")))))))
(test-equal "substitute, first URL has narinfo but nar is 404, one URL authorized"
"Substitutable data."
(with-narinfo*
(string-append %narinfo "Signature: "
(signature-field
%narinfo
#:public-key %wrong-public-key))
%main-substitute-directory
(with-http-server `((200 ,(string-append %narinfo "Signature: "
(signature-field
%narinfo
#:public-key %wrong-public-key)))
(404 "Sorry, nar is missing!"))
(let ((url1 (%local-url)))
(parameterize ((%http-server-port 0))
(with-http-server `((200 ,(string-append %narinfo "Signature: "
(signature-field %narinfo)))
(404 "Sorry, nar is missing!"))
(let ((url2 (%local-url)))
(dynamic-wind
(const #t)
(lambda ()
(parameterize ((substitute-urls
(list url1 url2
(string-append "file://"
%main-substitute-directory))))
(request-substitution (string-append (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
"substitute-retrieved"))
(call-with-input-file "substitute-retrieved" get-string-all))
(lambda ()
(false-if-exception (delete-file "substitute-retrieved")))))))))))
(test-quit "substitute, narinfo is available but nar is missing"
"failed to find alternative substitute"
(with-narinfo*
(string-append %narinfo "Signature: "
(signature-field
%narinfo
#:public-key %wrong-public-key))
%main-substitute-directory
(with-http-server `((200 ,(string-append %narinfo "Signature: "
(signature-field %narinfo)))
(404 "Sorry, nar is missing!"))
(parameterize ((substitute-urls
(list (%local-url)
(string-append "file://"
%main-substitute-directory))))
(delete-file (string-append %main-substitute-directory
"/example.nar"))
(request-substitution (string-append (%store-prefix)
"/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
"substitute-retrieved")
(not (file-exists? "substitute-retrieved"))))))
(test-equal "substitute, first narinfo is unsigned and has wrong hash" (test-equal "substitute, first narinfo is unsigned and has wrong hash"
"Substitutable data." "Substitutable data."
(with-narinfo* (regexp-substitute #f (with-narinfo* (regexp-substitute #f