3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00

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 services
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
*** 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},
@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
@ -31347,41 +31379,42 @@ Configuration record for the Samba suite.
The samba package to use.
@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})
Manually enable the @code{samba} daemon.
Enable the @code{samba} daemon.
@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})
Manually enable the @code{nmbd} daemon.
Enable the @code{nmbd} daemon.
@item @code{enable-winbindd?} (default: @code{#f})
Manually enable the @code{winbindd} daemon.
Enable the @code{winbindd} daemon.
@end table
@end deftp
@cindex wsdd
@cindex wsdd, 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,
Web Services Dynamic Discovery} protocol that enables host discovery --
similar to Avahi -- over Multicast DNS. It is a drop-in replacement for
SMB hosts that have had SMBv1 disabled for security reasons.
Web Services Dynamic Discovery} protocol that enables host discovery
over Multicast DNS, similar to what Avahi does. It is a drop-in
replacement for SMB hosts that have had SMBv1 disabled for security
reasons.
@defvr {Scheme Variable} wsdd-service-type
Service type for the WSD host daemon. The value for
this service type is a @code{wsdd-configuration} record. The details
for the @code{wsdd-configuration} record type are given below.
@end defvr
@deftp{Data Type} wsdd-configuration This data type represents the
configuration for the wsdd service.
@deftp {Data Type} wsdd-configuration
This data type represents the configuration for the wsdd service.
@table @asis

View file

@ -29,7 +29,8 @@
(title
(en "Guix System image creation is now documented")
(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
(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
@ -45,12 +46,18 @@ zu bringen.")
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
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")
(title
(en "WSL system images support")
(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
(en "The @command{guix system image} command can now generate system
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 :
@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 -d Guix}.")))
(entry (commit "11a06d1e49f4d50d6789e05bbf35e2e145ff7838")

View file

@ -129,13 +129,23 @@ the haskell-build-system."
#:name "R team"
#:description
"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
(team 'julia
#:name "Julia team"
#: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
(team 'ocaml
@ -185,7 +195,10 @@ ecosystem."
#:scope (list (make-regexp "^gnu/packages/emacs(-.+|)\\.scm$")
"guix/build/emacs-build-system.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
(team 'lisp
@ -200,11 +213,23 @@ asdf-build-system."
(define-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
(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
(team 'embedded-bootstrap
@ -212,11 +237,23 @@ asdf-build-system."
(define-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
(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
(team 'core
@ -316,17 +353,21 @@ asdf-build-system."
(define-team translations
(team 'translations
#:name "Translations"))
#:name "Translations"
#:scope (list (make-regexp "^po/"))))
(define-team installer
(team 'installer
#:name "Installer script and system installer"
#:scope
(list (make-regexp "^guix/installer(\\.scm$|/)"))))
#:scope (list (make-regexp "^gnu/installer(\\.scm$|/)"))))
(define-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
(team 'mentors
@ -339,7 +380,8 @@ asdf-build-system."
#:name "Mozilla"
#:description
"Taking care about Icecat and Icedove, built from Mozilla Firefox
and Thunderbird."))
and Thunderbird."
#:scope (list "gnu/packages/gnuzilla.scm")))
(define-team racket
(team 'racket
@ -347,7 +389,8 @@ and Thunderbird."))
#:description
"The Racket language and Racket-based languages, Racket packages,
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"
@ -434,6 +477,14 @@ importer."))
"dev@jpoiret.xyz")
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)
(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/cpulimit-with-glib-2.32.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/clucene-contribs-lib.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/tensorflow-c-api-fix.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/texi2html-document-encoding.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/webkitgtk-adjust-bubblewrap-paths.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/widelands-add-missing-map-include.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 © 2022 Wamm K. D. <jaft.r@outlook.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.
;;;
@ -697,6 +699,30 @@ console.")
;; This package uses a modified version of the "ISC 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
(package
(name "htop")
@ -2125,14 +2151,16 @@ command.")
(substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
((#:phases phases)
`(modify-phases ,phases
(add-after 'configure 'configure-for-dbus
(add-after 'configure 'set-config-options
(lambda _
(let ((port (open-file ".config" "al")))
;; Enable Opportunistic Wireless Encryption (OWE) and D-Bus
;; support.
(display "
CONFIG_OWE=y
CONFIG_CTRL_IFACE_DBUS_NEW=y
CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
(close-port port))
#t))
(close-port port))))
(add-after 'install-documentation 'install-dbus-conf
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))

View file

@ -55,6 +55,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages guile)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pcre)
@ -1182,6 +1183,41 @@ performance concurrent systems developed in C99+.")
(license (list license:bsd-2 ;everything except...
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
;; The latest tag is used as there is no release.
(let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734")

View file

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

View file

@ -1041,6 +1041,15 @@ Google's C++ code base.")
`(cons* "-DBUILD_TESTING=ON"
(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
(package
(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,
std::wstring, etc).")
(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.")
(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
(package
(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.")
(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
;; check that there are no new minified JavaScript files.
(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.")
(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
(package
(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.")
(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
(package
(name "r-d3network")
@ -26802,6 +26921,28 @@ Yue-Pilon's (Yue, 2002) pre-whitening approaches to determining trends in
climate data.")
(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
(package
(name "r-rlinsolve")
@ -31932,6 +32073,34 @@ split, combine, and compress. This package interfaces directly to the
data you need the @code{pdftools} package.")
(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
(package
(name "r-pdftools")

View file

@ -16861,8 +16861,41 @@ hexadecimal, base32, and base64.")
"Processing of data: URL according to WHATWG's Fetch Standard.")
(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
(package
(inherit rust-datetime-0.5)
(name "rust-datetime")
(version "0.4.7")
(source
@ -16874,7 +16907,6 @@ hexadecimal, base32, and base64.")
(sha256
(base32
"1fd74bq48xg8ki5yw1mr1pa5hd3j5lbk4iqc5r0kh3l62b0vci2w"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-iso8601" ,rust-iso8601-0.1)
@ -16887,12 +16919,7 @@ hexadecimal, base32, and base64.")
("rust-winapi" ,rust-winapi-0.2))
#: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)))
("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))))
(define-public rust-dbl-0.3
(package
@ -30422,8 +30449,30 @@ and locking in the core framework.")
whether or not a given path points to an executable file.")
(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
(package
(inherit rust-iso8601-0.3)
(name "rust-iso8601")
(version "0.1.1")
(source
@ -30439,11 +30488,7 @@ whether or not a given path points to an executable file.")
(arguments
`(#:cargo-inputs
(("rust-clippy" ,rust-clippy-0.0)
("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)))
("rust-nom" ,rust-nom-1))))))
(define-public rust-itertools-0.10
(package
@ -74614,8 +74659,33 @@ implementation that works everywhere, even WASM!")
"Library to support the reading and writing of zip files.")
(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
(package
(inherit rust-zoneinfo-compiled-0.5)
(name "rust-zoneinfo-compiled")
(version "0.4.8")
(source
@ -74627,16 +74697,10 @@ implementation that works everywhere, even WASM!")
(sha256
(base32
"0bnm19w791q6kp79s0zl1cj9w51bw5xrifrxfy3g1p05i676y4vf"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-byteorder" ,rust-byteorder-1)
("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)))
("rust-datetime" ,rust-datetime-0.4))))))
(define-public rust-zstd-0.9
(package

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -487,6 +488,23 @@ you.")
on the @code{marked} project, which focuses on speed.")
(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
(let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290")
(revision "1"))

View file

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

View file

@ -69,7 +69,8 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages ruby)
#: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
(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.")
(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
(package
(name "gnome-shell-extension-appindicator")

View file

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

View file

@ -1263,293 +1263,13 @@ standards of the IceCat project.")
(cpe-name . "firefox_esr")
(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!
(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
(package
(name "icedove")
(version "91.13.1")
(source icecat-91-source)
(version "102.3.0")
(source icecat-source)
(properties
`((cpe-name . "thunderbird_esr")))
(build-system gnu-build-system)
@ -1581,6 +1301,13 @@ standards of the IceCat project.")
(for-each generate-all-checksums
'("third_party/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.
;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457
(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-nss\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"
(number->string (parallel-job-count)) "\n"))))
(display (getcwd))
@ -1783,7 +1510,8 @@ standards of the IceCat project.")
`("XDG_DATA_DIRS" prefix (,gtk-share))
`("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,eudev-lib)))))))))
(inputs
(list bzip2
(list alsa-lib
bzip2
cairo
cups
dbus-glib
@ -1794,7 +1522,7 @@ standards of the IceCat project.")
gtk+
gtk+-2
hunspell
icu4c
icu4c-71
libcanberra
libevent
libffi
@ -1827,17 +1555,17 @@ standards of the IceCat project.")
;; in the Thunderbird release tarball. We don't use the release
;; tarball because it duplicates the Icecat sources and only adds the
;; "comm" directory, which is provided by this repository.
,(let ((changeset "2f9b465346ceb38b4ab79ccc1bfe8d8ad0bc8743"))
,(let ((changeset "04f60827c1b53ab86121c7d122d3a8216219ff9f"))
(origin
(method hg-fetch)
(uri (hg-reference
(url "https://hg.mozilla.org/releases/comm-esr91")
(url "https://hg.mozilla.org/releases/comm-esr102")
(changeset changeset)))
(file-name (string-append "thunderbird-" version "-checkout"))
(sha256
(base32
"10vsbwlh5imq7iljwzq3r4y80wzsmj6s2gsi1n64l0wmfq2m6ilb")))))
("cargo" ,rust "cargo")
"078jrxpzqj45l84i39a9fq023j71ngca5gs2ngpjsbily51bzx09")))))
("cargo" ,(force rust-1.59-promise) "cargo")
("clang" ,clang)
("llvm" ,llvm)
("m4" ,m4)
@ -1846,8 +1574,8 @@ standards of the IceCat project.")
("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("rust" ,rust)
("rust-cbindgen" ,rust-cbindgen-0.19)
("rust" ,(force rust-1.59-promise))
("rust-cbindgen" ,(force rust-cbindgen-0.23-promise))
("which" ,which)
("yasm" ,yasm)))
(home-page "https://www.thunderbird.net")

View file

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

View file

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

View file

@ -92,7 +92,7 @@
(define-public extra-cmake-modules
(package
(name "extra-cmake-modules")
(version "5.96.0")
(version "5.98.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -101,7 +101,7 @@
name "-" version ".tar.xz"))
(sha256
(base32
"1ngxjvf584zgfb93s5sbr5f5nyw0sqc5i0jlbcgbrjg2n83l9ddx"))))
"0669m98vqy4hpacfjs7xpgjj1bns24kjybrjipxzp82092g8y69w"))))
(build-system cmake-build-system)
(native-inputs
;; 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
(package
(name "kcoreaddons")
(version "5.96.0")
(version "5.98.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -578,7 +578,7 @@ propagate their changes to their respective configuration files.")
name "-" version ".tar.xz"))
(sha256
(base32
"1n5mzj02si8allg907l6vn77c2i95qdgfvn48gsqgalwlyd4q6nj"))))
"0lqmyxqsw7w1qgdgmax63v64cy7dwk7n4zi8k53xmrqjmd9jir52"))))
(build-system cmake-build-system)
(native-inputs
(list extra-cmake-modules qttools-5 shared-mime-info))
@ -588,13 +588,20 @@ propagate their changes to their respective configuration files.")
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(add-before 'check 'blacklist-failing-test
(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 "TMPDIR" (getcwd))
(when tests? ;; kdirwatch test fails inconsistently. kprocesstest fails.
(invoke "ctest" "-E" "(kdirwatch_qfswatch_unittest|kprocesstest|\
kdirwatch_stat_unittest)")))))))
(setenv "TMPDIR" (getcwd)))))))
(home-page "https://community.kde.org/Frameworks")
(synopsis "Qt addon library with a collection of non-GUI utilities")
(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, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@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 © 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
;;; 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}.")
(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
(package
(name "light")

View file

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

View file

@ -63,14 +63,14 @@
(define-public parallel
(package
(name "parallel")
(version "20220822")
(version "20220922")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
(base32 "05mh3bbl7c9c945jqhlfspjqji79zq8ml27k6ihaqi8bqibl83cx"))
(base32 "1hfar4hvzcic5gv7nl7jr6hafhgiax005zydwxcwxvy1vm4s3cqm"))
(snippet
'(begin
(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.")
(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
(package
(name "python-traittypes")

View file

@ -7415,13 +7415,13 @@ data, and scientific formats.")
(define-public python-pyvips
(package
(name "python-pyvips")
(version "2.2.0")
(version "2.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyvips" version))
(sha256
(base32 "0lq71iiic4pc8qhxr60gi141w25pjnn4vsh05d5l0fjkgjsv137b"))))
(base32 "1dfbwwvnnsk4g2kj1pw654z9jq3mb72l1m8ma29858jpn12vn7dm"))))
(build-system python-build-system)
(arguments
(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.")
(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
(package
(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.")
(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
;; No release since 2013, use commit directly.
(let ((commit "51405971fd4e97714d1e987269e49c6edfe4e0da")

View file

@ -53,6 +53,7 @@
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages ibus)
@ -365,7 +366,7 @@ Features include:
(define-public exa
(package
(name "exa")
(version "0.9.0")
(version "0.10.1")
(source
(origin
(method url-fetch)
@ -374,14 +375,15 @@ Features include:
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1s902xgplz1167k0r7x235p914lprpsqy2if0kpa1mlb0fswqqq4"))))
"1dd7waq2bnxc1xwygqphi8k1g2qzykr6fk0q4rgrhhxp2jd09f04"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
`(#:install-source? #f
#:cargo-inputs
(("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-git2" ,rust-git2-0.9)
("rust-git2" ,rust-git2-0.13)
("rust-glob" ,rust-glob-0.3)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
@ -389,64 +391,57 @@ Features include:
("rust-log" ,rust-log-0.4)
("rust-natord" ,rust-natord-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-term-grid" ,rust-term-grid-0.1)
("rust-term-size" ,rust-term-size-0.3)
("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-users" ,rust-users-0.9)
("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.4))
("rust-users" ,rust-users-0.11)
("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.5))
#:cargo-development-inputs
(("rust-datetime" ,rust-datetime-0.4))
(("rust-datetime" ,rust-datetime-0.5))
#:phases
(modify-phases %standard-phases
;; Ignoring failing tests.
;; Reported in https://github.com/ogham/exa/issues/318
(add-before 'check 'disable-failing-tests
(add-after 'build 'build-manual
(lambda* (#:key inputs #:allow-other-keys)
(when (assoc-ref inputs "pandoc")
(map (lambda (page)
(with-output-to-file page
(lambda _
(substitute* "src/options/mod.rs"
(("^.*fn oneline_across.*" oneline-across)
(string-append "#[ignore]\n" oneline-across)))
(substitute* "src/options/view.rs"
(("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))
(invoke "pandoc" "--standalone"
"-f" "markdown"
"-t" "man"
(string-append "man/" page ".md")))))
(list "exa.1" "exa_colors.5")))))
(add-after 'install 'install-extras
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share"))
(man1 (string-append share "/man/man1")))
(install-file "contrib/man/exa.1" man1)
(man1 (string-append share "/man/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 share "/fish/vendor_completions.d"))
(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"))
(copy-file "contrib/completions.fish"
(string-append share "/fish/vendor_completions.d/exa.fish"))
(copy-file "contrib/completions.zsh"
(string-append share "/zsh/site-functions/_exa"))
#t))))))
(inputs
(list libgit2 zlib))
(copy-file "completions/completions.fish"
(string-append
share "/fish/vendor_completions.d/exa.fish"))
(copy-file "completions/completions.zsh"
(string-append
share "/zsh/site-functions/_exa"))))))))
(inputs (list libgit2 zlib))
(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/")
(synopsis "Modern replacement for ls")
(description "@code{exa} is a modern replacement for the command-line

View file

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

View file

@ -11194,6 +11194,33 @@ mechanism. Line numbering may be extended to footnote lines, using the
fnlineno package.")
(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
(let ((template (simple-texlive-package
"texlive-babel-dutch"

View file

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

View file

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

View file

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

View file

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

View file

@ -55,7 +55,9 @@
#:select (file-system-packages))
#:use-module (gnu packages admin)
#: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 base)
#:select (coreutils glibc glibc-utf8-locales tar))
@ -64,7 +66,10 @@
#:autoload (gnu packages hurd) (hurd)
#:use-module (gnu packages package-management)
#: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 build file-systems)
#:select (mount-flags->bit-mask
@ -86,6 +91,7 @@
#:export (fstab-service-type
root-file-system-service
file-system-service-type
file-system-utilities
swap-service
host-name-service
%default-console-font
@ -488,6 +494,31 @@ upon boot."
(memq 'bind-mount (file-system-flags file-system))))
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
(service-type (name 'file-systems)
(extensions
@ -495,6 +526,8 @@ upon boot."
file-system-shepherd-services)
(service-extension fstab-service-type
file-system-fstab-entries)
(service-extension profile-service-type
file-system-utilities)
;; Have 'user-processes' depend on 'file-systems'.
(service-extension user-processes-service-type

View file

@ -17,14 +17,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services samba)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages admin)
#:use-module (gnu packages samba)
#:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (gnu services base)
#:use-module (gnu system shadow)
@ -41,20 +39,10 @@
#:export (samba-service-type
samba-configuration
samba-smb-conf
wsdd-service-type
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>
samba-configuration
make-samba-configuration

View file

@ -575,6 +575,14 @@ marked as 'needed-for-boot'."
(service file-system-service-type
(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)
"Return the subset of FILE-SYSTEMS that use DEVICE."
(let ((targets (map (cut string-append "/dev/mapper/" <>)
@ -722,7 +730,8 @@ bookkeeping."
(let* ((mappings (device-mapping-services os))
(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))
(procs (service user-processes-service-type))
(host-name (host-name-service (operating-system-host-name os)))
@ -757,7 +766,7 @@ bookkeeping."
(operating-system-setuid-programs os))
(service profile-service-type
(operating-system-packages os))
other-fs
boot-fs non-boot-fs
(append mappings swaps
;; Add the firmware service.
@ -887,8 +896,9 @@ of PROVENANCE-SERVICE-TYPE to its services."
iw wireless-tools))
(define %base-packages-disk-utilities
;; A well-rounded set of packages for interacting with disks, partitions
;; and filesystems.
;; A well-rounded set of packages for interacting with disks,
;; partitions and filesystems, included with the Guix installation
;; image.
(list parted gptfdisk ddrescue
;; 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
@ -903,8 +913,7 @@ of PROVENANCE-SERVICE-TYPE to its services."
(define %base-packages
;; Default set of packages globally visible. It should include anything
;; required for basic administrator tasks.
(append (list e2fsprogs)
%base-packages-artwork
(append %base-packages-artwork
%base-packages-interactive
%base-packages-linux
%base-packages-networking

View file

@ -82,32 +82,64 @@
(define %input-style
(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
(let ((prefix identity))
(match-lambda
("AGPL-3" 'agpl3+)
("Artistic-2.0" 'artistic2.0)
("Apache License 2.0" 'asl2.0)
("BSD_2_clause" 'bsd-2)
("BSD_2_clause + file LICENSE" 'bsd-2)
("BSD_3_clause" 'bsd-3)
("BSD_3_clause + file LICENSE" 'bsd-3)
("GPL" '(list gpl2+ gpl3+))
("GPL (>= 2)" 'gpl2+)
("GPL (>= 3)" 'gpl3+)
("GPL-2" 'gpl2)
("GPL-3" 'gpl3)
("LGPL-2" 'lgpl2.0)
("LGPL-2.1" 'lgpl2.1)
("LGPL-3" 'lgpl3)
("LGPL (>= 2)" 'lgpl2.0+)
("LGPL (>= 2.1)" 'lgpl2.1+)
("LGPL (>= 3)" 'lgpl3+)
("MIT" 'expat)
("MIT + file LICENSE" 'expat)
("AGPL-3" (prefix 'agpl3))
("AGPL (>= 3)" (prefix 'agpl3+))
("Artistic-2.0" (prefix 'artistic2.0))
((or "Apache License 2.0"
"Apache License (== 2.0)")
(prefix 'asl2.0))
("BSD_2_clause" (prefix 'bsd-2))
("BSD_2_clause + file LICENSE" (prefix 'bsd-2))
("BSD_3_clause" (prefix 'bsd-3))
("BSD_3_clause + file LICENSE" (prefix 'bsd-3))
("CC0" (prefix 'cc0))
("CC BY-SA 4.0" (prefix 'cc-by-sa4.0))
("CeCILL" (prefix 'cecill))
((or "GPL"
"GNU General Public License")
`(list ,(prefix 'gpl2+) ,(prefix 'gpl3+)))
((or "GPL (>= 2)"
"GPL (>= 2.0)")
(prefix 'gpl2+))
((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))
((lst ...) `(list ,@(map string->license lst)))
(_ #f)))
(unknown `(,(prefix 'fsdg-compatible) ,unknown)))))
(define (description->alist description)
"Convert a DESCRIPTION string into an alist."
@ -360,10 +392,21 @@ empty list when the FIELD cannot be found."
(define invalid-packages
(list "c++11"
"c++14"
"linux"
"getopt::long"
"linux"
"none"
"windows"
"xcode"
"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 (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"))
(synopsis (assoc-ref meta "Title"))
(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.
(home-page (case repository
((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)))))
'())
(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
`(,@(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)
(string-append base-url name)
home-page))
(synopsis ,synopsis)
(synopsis ,(beautify-synopsis synopsis))
(description ,(beautify-description (or (assoc-ref meta "Description")
"")))
(license ,license))))

View file

@ -72,6 +72,7 @@
snake-case
beautify-description
beautify-synopsis
alist->package
@ -297,6 +298,21 @@ LENGTH characters."
cleaned 'pre ". " 'post)
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))
"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

View file

@ -437,20 +437,13 @@ server certificates."
"Bind PORT with EXP... to a socket connected to URI."
(call-with-cached-connection uri (lambda (port) exp ...)))
(define* (process-substitution port store-item destination
#:key cache-urls acl
(define* (download-nar narinfo destination
#:key status-port
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))))
"Download the nar prescribed in NARINFO, which is assumed to be authentic
and authorized, and write it to DESTINATION. When DEDUPLICATE? is true, and
if DESTINATION is in the store, deduplicate its files. Print a status line to
STATUS-PORT."
(define destination-in-store?
(string-prefix? (string-append (%store-prefix) "/")
destination))
@ -467,11 +460,6 @@ PORT."
(let ((port (open-file (uri-path uri) "r0b")))
(values port (stat:size (stat port)))))
((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:
;; sudo tc qdisc add dev eth0 root netem delay 1500ms
;; and then cancel with:
@ -485,15 +473,11 @@ PORT."
(http-fetch uri #:text? #f
#:port port
#:keep-alive? #t
#:buffered? #f)))))
#:buffered? #f))))
(else
(leave (G_ "unsupported substitute URI scheme: ~a~%")
(uri->string uri)))))
(unless narinfo
(leave (G_ "no valid substitute for '~a'~%")
store-item))
(let ((uri compression file-size
(narinfo-best-uri narinfo
#:fast-decompression?
@ -575,14 +559,109 @@ PORT."
(let ((actual (get-hash)))
(if (bytevector=? actual expected)
;; Tell the daemon that we're done.
(format port "success ~a ~a~%"
(format status-port "success ~a ~a~%"
(narinfo-hash narinfo) (narinfo-size 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)
(bytevector->nix-base32-string expected)
(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.

View file

@ -523,6 +523,119 @@ System: mips64el-linux\n")))
(lambda ()
(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"
"Substitutable data."
(with-narinfo* (regexp-substitute #f