projects/guix·blob kernel-updates · refs

820 lines · 32.3 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015-2020, 2022-2023, 2026 Efraim Flashner <[email protected]>
3;;; Copyright © 2017 Ricardo Wurmus <[email protected]>
4;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <[email protected]>
5;;; Copyright © 2018, 2021 Ludovic Courtès <[email protected]>
6;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <[email protected]>
7;;; Copyright © 2019 Clément Lassieur <[email protected]>
8;;; Copyright © 2020 Jakub Kądziołka <[email protected]>
9;;; Copyright © 2021 Stefan Reichör <[email protected]>
10;;; Copyright © 2025 Sharlatan Hellseher <[email protected]>
11;;; Copyright © 2025 Patrick Norton <[email protected]>
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28(define-module (gnu packages sync)
29 #:use-module (gnu packages acl)
30 #:use-module (gnu packages autotools)
31 #:use-module (gnu packages base)
32 #:use-module (gnu packages bash)
33 #:use-module (gnu packages check)
34 #:use-module (gnu packages compression)
35 #:use-module (gnu packages crypto)
36 #:use-module (gnu packages curl)
37 #:use-module (gnu packages dlang)
38 #:use-module (gnu packages dns)
39 #:use-module (gnu packages documentation)
40 #:use-module (gnu packages freedesktop)
41 #:use-module (gnu packages glib)
42 #:use-module (gnu packages gnome)
43 #:use-module (gnu packages golang-build)
44 #:use-module (gnu packages golang-check)
45 #:use-module (gnu packages golang-compression)
46 #:use-module (gnu packages golang-crypto)
47 #:use-module (gnu packages golang-web)
48 #:use-module (gnu packages golang-xyz)
49 #:use-module (gnu packages graphviz)
50 #:use-module (gnu packages image)
51 #:use-module (gnu packages kde-frameworks)
52 #:use-module (gnu packages libevent)
53 #:use-module (gnu packages linux)
54 #:use-module (gnu packages lua)
55 #:use-module (gnu packages ocaml)
56 #:use-module (gnu packages pcre)
57 #:use-module (gnu packages perl)
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages prometheus)
60 #:use-module (gnu packages python)
61 #:use-module (gnu packages qt)
62 #:use-module (gnu packages readline)
63 #:use-module (gnu packages rsync)
64 #:use-module (gnu packages ruby)
65 #:use-module (gnu packages security-token)
66 #:use-module (gnu packages selinux)
67 #:use-module (gnu packages shells)
68 #:use-module (gnu packages sphinx)
69 #:use-module (gnu packages sqlite)
70 #:use-module (gnu packages tls)
71 #:use-module (gnu packages)
72 #:use-module (guix build-system cmake)
73 #:use-module (guix build-system copy)
74 #:use-module (guix build-system gnu)
75 #:use-module (guix build-system go)
76 #:use-module (guix build-system meson)
77 #:use-module (guix build-system qt)
78 #:use-module (guix download)
79 #:use-module (guix gexp)
80 #:use-module (guix git-download)
81 #:use-module ((guix licenses) #:prefix license:)
82 #:use-module (guix packages)
83 #:use-module (guix utils))
84
85(define-public nextcloud-client
86 (package
87 (name "nextcloud-client")
88 (version "3.17.2")
89 (source
90 (origin
91 (method git-fetch)
92 (uri
93 (git-reference
94 (url "https://github.com/nextcloud/desktop")
95 (commit (string-append "v" version))))
96 (file-name
97 (git-file-name name version))
98 (sha256
99 (base32 "0y03yldgyazqds691dzgaginnpys6alnlc9j4aimmi3zcnk93hk3"))
100 (modules '((guix build utils)
101 (ice-9 ftw)
102 (srfi srfi-1)))
103 (snippet
104 '(begin
105 ;; QProgressIndicator is not available in Guix.
106 ;; FIXME: Fix building with the system kirigami and qtsolutions.
107 (let* ((keep '("QProgressIndicator"
108 "kirigami"
109 "qtlockedfile"
110 "qtsingleapplication")))
111 (with-directory-excursion "src/3rdparty"
112 (for-each delete-file-recursively
113 (lset-difference string=?
114 (scandir ".")
115 (cons* "." ".." keep)))))
116 (with-directory-excursion "src/gui"
117 (substitute* "CMakeLists.txt"
118 ;; Remove references of deleted 3rdparties.
119 (("[ \t]*\\.\\./3rdparty/kmessagewidget/?.*\\.(cpp|h)")
120 "")
121 (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/kmessagewidget")
122 ;; For this, we rely on build inputs, so let's just replace
123 ;; them by an autoconf-style variable.
124 "@kwidgetsaddons@")
125 ;; Expand libraries, that used to be statically linked, but
126 ;; no longer are post-vendoring.
127 (("KF6::Archive")
128 (string-append "KF6::Archive "
129 "KF6WidgetsAddons"))))
130 #t))))
131 (build-system qt-build-system)
132 (arguments
133 (list #:qtbase qtbase
134 #:configure-flags #~(list "-DUNIT_TESTING=ON" "-DBUILD_UPDATER=OFF")
135 #:imported-modules
136 `((guix build glib-or-gtk-build-system)
137 ,@%qt-build-system-modules)
138 #:modules
139 '(((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
140 (guix build qt-build-system)
141 (guix build utils))
142 ;; 72% tests passed, 17 tests failed out of 61 due to SEGFAULT.
143 #:test-exclude
144 (string-append "("
145 (string-join '("OwnSqlTest"
146 "SyncJournalDBTest"
147 "SyncFileItemTest"
148 "ConcatUrlTest"
149 "CookiesTest"
150 "XmlParseTest"
151 "ChecksumValidatorTest"
152 "ClientSideEncryptionTest"
153 "ExcludedFilesTest"
154 "UtilityTest"
155 "CapabilitiesTest"
156 "ThemeTest"
157 "IconUtilsTest"
158 "FileSystemTest"
159 "LongPathTest"
160 "AccountTest"
161 "FolderTest")
162 "|")
163 ")")
164 #:phases
165 #~(modify-phases %standard-phases
166 (add-after 'unpack 'patch-cmake
167 (lambda* (#:key inputs #:allow-other-keys)
168 (substitute* "src/gui/CMakeLists.txt"
169 (("@kwidgetsaddons@")
170 (search-input-directory inputs
171 "/include/KF6/KWidgetsAddons/")))
172 (with-directory-excursion "shell_integration"
173 ;; Patch install directory for dbus service files.
174 (substitute* "libcloudproviders/CMakeLists.txt"
175 (("pkg_get_variable\\(_install_dir dbus-1 .*\\)")
176 (string-append "set(_install_dir \""
177 "${CMAKE_INSTALL_PREFIX}"
178 "/share/dbus-1/services\")")))
179 (substitute* "dolphin/CMakeLists.txt"
180 ;; Make sure, that Qt modules are installed under
181 ;; $prefix.
182 (("ON CACHE") "OFF CACHE")))))
183 (add-after 'unpack 'unpack-3rd_party-sources
184 (lambda* (#:key inputs #:allow-other-keys)
185 (copy-recursively (assoc-ref inputs "libcrashreporter-qt")
186 "src/3rdparty/libcrashreporter-qt")))
187 ;; Tests write to $HOME.
188 (add-before 'check 'set-home-directory
189 (lambda _
190 (setenv "HOME" (getcwd))))
191 (add-after 'install 'glib-or-gtk-compile-schemas
192 (assoc-ref glib-or-gtk:%standard-phases
193 'glib-or-gtk-compile-schemas))
194 (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
195 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
196 (native-inputs
197 (list cmocka
198 desktop-file-utils
199 graphviz
200 doxygen
201 extra-cmake-modules
202 `(,glib "bin")
203 (origin
204 (method git-fetch)
205 (uri
206 (git-reference
207 (url "https://github.com/dschmidt/libcrashreporter-qt")
208 (commit "96da2900d590218b745ea79cd7aa794856e1d7ba")))
209 (file-name "libcrashreporter-qt")
210 (sha256
211 (base32 "0r14abym96fk9zwalyvyzl5igwsrpgmk2hsfxshzh2av4riq0lmk")))
212 (librsvg-for-system)
213 perl
214 pkg-config
215 python-wrapper
216 python-sphinx
217 qttools
218 ruby))
219 (inputs
220 (list appstream
221 dbus
222 glib
223 karchive
224 kconfig
225 kcoreaddons
226 kguiaddons
227 kio
228 kjs
229 kwidgetsaddons
230 libcloudproviders
231 libp11
232 libzip
233 openssl
234 qt5compat
235 qtdeclarative
236 qtkeychain-qt6
237 qtsvg
238 qtwayland
239 qtwebchannel
240 qtwebengine
241 qtwebsockets
242 sqlite
243 xdg-utils
244 zlib))
245 (synopsis "Desktop sync client for Nextcloud")
246 (description "Nextcloud-Desktop is a tool to synchronize files from
247Nextcloud Server with your computer.")
248 (home-page "https://nextcloud.com")
249 (license (list license:expat ; QProgressIndicator
250 license:gpl2+))))
251
252(define-public megacmd
253 (package
254 (name "megacmd")
255 (version "1.5.1")
256 (source
257 (origin
258 (method git-fetch)
259 (uri (git-reference
260 (url "https://github.com/meganz/MEGAcmd")
261 (commit (string-append version "_Linux"))
262 (recursive? #t)))
263 (sha256
264 (base32
265 "12v46jyxdgp2qqdpmd084d60hd5srjbgwpk082b3rp5dl7yg1rd8"))
266 (file-name (git-file-name name version))))
267 (build-system gnu-build-system)
268 ;; XXX: Disabling tests because they depend on libgtest.la from googletest,
269 ;; which is not installed for unclear reasons.
270 (arguments
271 (list #:tests? #f
272 #:configure-flags #~'("--with-pcre")))
273 (native-inputs
274 (list autoconf automake libtool))
275 (inputs
276 (list c-ares
277 crypto++
278 curl
279 freeimage
280 googletest
281 libuv
282 openssl
283 pcre
284 readline
285 libsodium
286 sqlite
287 zlib))
288 (home-page "https://mega.nz/cmd")
289 (synopsis
290 "Command Line Interactive and Scriptable Application to access mega.nz")
291 (description "MEGAcmd provides non UI access to MEGA services. It intends
292to offer all the functionality of a MEGA account via commands. It features
293synchronization, backup of local folders into a MEGA account and a
294webdav/streaming server.
295
296See also: megatools, a third-party alternative more commonly packaged in other
297distributions.")
298 (license (list license:bsd-2 license:gpl3+))))
299
300(define-public megatools
301 (package
302 (name "megatools")
303 (version "1.10.3")
304 (source
305 (origin
306 (method url-fetch)
307 (uri (string-append "https://megatools.megous.com/builds/megatools-"
308 version ".tar.gz"))
309 (sha256
310 (base32
311 "1nwbalc54iz6616liyxfalf5yafwx0iv6cmqgvg4kz9khqscmhcd"))))
312 (build-system gnu-build-system)
313 (arguments
314 '(#:phases
315 (modify-phases %standard-phases
316 (add-after 'install 'install-completions
317 (lambda* (#:key outputs #:allow-other-keys)
318 (install-file "contrib/bash-completion/megatools"
319 (string-append (assoc-ref outputs "out")
320 "/etc/bash_completion.d"))
321 #t)))))
322 (native-inputs
323 (list pkg-config
324 ;; For documentation
325 asciidoc))
326 (inputs
327 (list curl glib openssl))
328 (home-page "https://megatools.megous.com/")
329 (synopsis "Command line client application for mega.nz")
330 (description "Megatools is a collection of programs for accessing the mega.nz service
331from the command line.
332
333Megatools allow you to copy individual files as well as entire directory trees to and from
334the cloud. You can also perform streaming downloads for example to preview videos and
335audio files, without needing to download the entire file first.
336
337Megatools are robust and optimized for fast operation - as fast as Mega servers allow.
338Memory requirements and CPU utilization are kept at minimum.
339
340See also: megacmd, the official tool set by MEGA.")
341 (license license:gpl2)))
342
343(define-public onedrive
344 (package
345 (name "onedrive")
346 (version "2.5.11")
347 (source
348 (origin
349 (method git-fetch)
350 (uri (git-reference
351 (url "https://github.com/abraunegg/onedrive")
352 (commit (string-append "v" version))))
353 (file-name (git-file-name name version))
354 (sha256
355 (base32 "1d0hzjr40l5y6yrxqyfhcd5x1sal812wp9v3mly2k79iwib64ja9"))))
356 (build-system gnu-build-system)
357 (arguments
358 (list
359 #:configure-flags
360 #~(list "--enable-completions"
361 "--enable-notifications"
362 (string-append "--with-bash-completion-dir="
363 #$output "/share/bash-completion/completions")
364 (string-append "--with-zsh-completion-dir="
365 #$output "/share/zsh/site-functions")
366 (string-append "--with-fish-completion-dir="
367 #$output "/share/fish/vendor_completions.d"))
368 #:make-flags
369 #~(list (string-append "CC=" #$(cc-for-target)))
370 #:phases
371 #~(modify-phases %standard-phases
372 (replace 'check
373 (lambda* (#:key tests? #:allow-other-keys)
374 (when tests?
375 (invoke "./onedrive" "--version"))))
376 (add-after 'install 'remove-d-include-references
377 #$(remove-d-include-references-phase
378 (this-package-input "ldc"))))))
379 (native-inputs
380 (list pkg-config))
381 (inputs
382 (list bash-minimal
383 curl
384 dbus
385 ldc
386 libnotify
387 sqlite))
388 (home-page "https://abraunegg.github.io")
389 (synopsis "Client for OneDrive")
390 (description "OneDrive Client which supports OneDrive Personal, OneDrive for
391Business, OneDrive for Office365 and SharePoint and fully supports Azure
392National Cloud Deployments. It supports one-way and two-way sync capabilities
393and securely connects to Microsoft OneDrive services.")
394 (properties '((lint-hidden-cpe-vendors . ("microsoft"))))
395 (license license:gpl3)))
396
397(define-public lsyncd
398 (package
399 (name "lsyncd")
400 (version "2.2.2")
401 (source
402 (origin
403 (method git-fetch)
404 (uri (git-reference
405 (url "https://github.com/axkibe/lsyncd")
406 (commit (string-append "release-" version))))
407 (file-name (git-file-name name version))
408 (sha256
409 (base32 "1q2ixp52r96ckghgmxdbms6xrq8dbziimp8gmgzqfq4lk1v1w80y"))))
410 (build-system cmake-build-system)
411 (arguments
412 `(;; The "tests" target is broken and assumes that tests are run in the
413 ;; root directory.
414 #:tests? #f
415 #:phases
416 (modify-phases %standard-phases
417 (add-after 'unpack 'search-$PATH-for-binaries
418 ;; lsyncd requires and hard-codes absolute file names to binaries.
419 ;; Make it fall back to searching $PATH for relative file names.
420 (lambda _
421 (substitute* "lsyncd.c"
422 (("execv\\(") "execvp("))
423 (substitute* (list "lsyncd.lua"
424 "default-direct.lua"
425 "default-rsync.lua"
426 "default-rsyncssh.lua")
427 (("(|/usr)/bin/") ""))
428 #t))
429 (replace 'install
430 ;; No install target.
431 (lambda* (#:key outputs #:allow-other-keys)
432 (let* ((out (assoc-ref outputs "out"))
433 (bin (string-append out "/bin"))
434 (man (string-append out "/share/man/man1")))
435 (install-file "lsyncd" bin)
436 (install-file "../source/doc/manpage/lsyncd.1" man)
437 #t))))))
438 (native-inputs
439 (list lua-5.2))
440 (home-page "https://github.com/axkibe/lsyncd")
441 (synopsis "Synchronize local directories with remote targets")
442 (description "Lsyncd watches a local directory trees event monitor
443interface (inotify or fsevents). It aggregates and combines events for a few
444seconds and then spawns one (or more) process(es) to synchronize the changes.
445By default this is rsync, which must be installed on all source and target
446machines. Lsyncd is thus a light-weight live mirror solution that is
447comparatively easy to install not requiring new file systems or block devices
448and does not hamper local file system performance.")
449 (license license:gpl2+)))
450
451(define-public usync
452 (let ((revision "1")
453 (commit "09a8059a1adc22666d3ecf7872e22e6846c3ac9e"))
454 (package
455 (name "usync")
456 (version (git-version "0" revision commit))
457 (source
458 (origin
459 (method git-fetch)
460 (uri (git-reference
461 (url "https://github.com/ebzzry/usync")
462 (commit commit)))
463 (file-name (git-file-name name version))
464 (sha256
465 (base32 "16i1q8f0jmfd43rb8d70l2b383vr5ib4kh7iq3yd345q7xjz9c2j"))))
466 (build-system copy-build-system)
467 (inputs
468 (list scsh))
469 (propagated-inputs
470 (list rsync unison))
471 (arguments
472 `(#:install-plan '(("usync" "bin/usync"))
473 #:phases (modify-phases %standard-phases
474 (add-before 'install 'patch-usync-shebang
475 (lambda _
476 (substitute* "usync"
477 (("/usr/bin/env scsh")
478 (which "scsh"))))))))
479 (home-page "https://github.com/ebzzry/usync")
480 (synopsis "Command line site-to-site synchronization tool")
481 (description
482 "@command{usync} is a simple site-to-site synchronization program
483written in @command{scsh}. It makes use of @command{unison} and
484@command{rsync} for bi- and uni-directional synchronizations.")
485 (license license:expat))))
486
487(define-public casync
488 (let ((commit "99559cd1d8cea69b30022261b5ed0b8021415654")
489 (revision "0"))
490 (package
491 (name "casync")
492 (version (git-version "2" revision commit))
493 (home-page "https://github.com/systemd/casync/")
494 (source (origin
495 (method git-fetch)
496 (uri (git-reference
497 (url home-page)
498 (commit commit)))
499 (sha256
500 (base32
501 "139g82rkwv1kzss6crfmw3p01xnyjzz66b1ckprpbfncxb24047w"))
502 (file-name (string-append name "-" version "-checkout"))))
503 (build-system meson-build-system)
504 (arguments
505 `(#:configure-flags
506 (let ((out (assoc-ref %outputs "out")))
507 (list (string-append "-Dudevrulesdir="
508 out "/lib/udev/rules.d")))))
509 (native-inputs
510 (list pkg-config python python-sphinx rsync)) ;for tests
511 (inputs
512 (list xz ;for liblzma
513 `(,zstd "lib")
514 curl
515 acl
516 libselinux
517 eudev
518 fuse-2
519 openssl
520 zlib))
521 (synopsis "File synchronization and backup system")
522 (description
523 "casync is a @dfn{content-addressable data synchronizer} that can be used
524as the basis of a backup system. It is:
525
526@itemize
527@item A combination of the rsync algorithm and content-addressable storage;
528@item An efficient way to store and retrieve multiple related versions of
529large file systems or directory trees;
530@item An efficient way to deliver and update OS, VM, IoT and container images
531over the Internet in an HTTP and CDN friendly way;
532@item An efficient backup system.
533@end itemize\n")
534 (license license:lgpl2.1+))))
535
536(define-public croc
537 (package
538 (name "croc")
539 (version "10.2.5")
540 (source
541 (origin
542 (method git-fetch)
543 (uri (git-reference
544 (url "https://github.com/schollz/croc")
545 (commit (string-append "v" version))))
546 (file-name (git-file-name name version))
547 (sha256
548 (base32 "0jf8rfviy2vy9656ghss00fpvsx0iy079x906png39a52ryqjdzb"))))
549 (build-system go-build-system)
550 (arguments
551 (list
552 #:install-source? #f
553 #:import-path "github.com/schollz/croc"
554 #:test-flags
555 #~(list "-skip" "TestPublicIP|TestLocalIP|TestTCP")))
556 (native-inputs
557 (list go-github-com-cespare-xxhash-v2
558 go-github-com-chzyer-readline
559 go-github-com-denisbrodbeck-machineid
560 go-github-com-kalafut-imohash
561 go-github-com-magisterquis-connectproxy
562 go-github-com-minio-highwayhash
563 go-github-com-sabhiram-go-gitignore
564 go-github-com-schollz-cli-v2
565 go-github-com-schollz-logger
566 go-github-com-schollz-pake-v3
567 go-github-com-schollz-peerdiscovery
568 go-github-com-schollz-progressbar-v3
569 go-github-com-skip2-go-qrcode
570 go-github-com-stretchr-testify
571 go-golang-org-x-crypto
572 go-golang-org-x-net
573 go-golang-org-x-sys
574 go-golang-org-x-term
575 go-golang-org-x-time))
576 (home-page "https://github.com/schollz/croc")
577 (synopsis "Send things from one computer to another easily and securely")
578 (description
579 "This package provides @code{croc} - a tool that allows any two
580computers to simply and securely transfer files and folders.
581
582Feature:
583@itemize
584@item allows any two computers to transfer data (using a relay)
585@item provides end-to-end encryption (using PAKE)
586@item enables easy cross-platform transfers (Windows, Linux, Mac)
587@item allows multiple file transfers
588@item allows resuming transfers that are interrupted
589@item no need for local server or port-forwarding
590@item IPv6-first with IPv4 fallback
591@item can use a proxy, like Tor
592@end itemize")
593 (license license:expat)))
594
595(define-public rclone
596 (package
597 (name "rclone")
598 (version "1.72.1")
599 (source
600 (origin
601 (method git-fetch)
602 (uri (git-reference
603 (url "https://github.com/rclone/rclone")
604 (commit (string-append "v" version))))
605 (file-name (git-file-name name version))
606 (sha256
607 (base32 "1k0npx1pzi2hfg9yyg1dil0a9a1b6mip7agxpscb4qb445rhc8qb"))
608 (snippet
609 #~(begin
610 ;; XXX: This test fails to compile: `undefined: testscript.Main'
611 (delete-file "fs/logger/logger_test.go")))))
612 (build-system go-build-system)
613 (arguments
614 (list
615 #:install-source? #f
616 #:import-path "github.com/rclone/rclone"
617 #:build-flags
618 #~(list (string-append "-ldflags="
619 "-X github.com/rclone/rclone/fs.Version="
620 #$version))
621 #:embed-files
622 #~(list "Linux.gitignore"
623 "Windows.gitignore"
624 "macOS.gitignore"
625 "common.gitignore"
626 "children"
627 "nodes"
628 "text")
629 #:test-flags
630 #~(list "-short"
631 "-skip" (string-join
632 ;; Requires docker-compose
633 (list "TestIntegration"
634 "TestDockerPluginMountTCP"
635 "TestDockerPluginMountUnix"
636 ;; Requires install perms
637 "TestInstallOnLinux"
638 ;; Requires external storage cache
639 "TestInternalObjNotFound"
640 "TestInternalCachedWrittenContentMatches"
641 "TestInternalCachedUpdatedContentMatches"
642 "TestInternalDoubleWrittenContentMatches"
643 "TestInternalWrappedFsChangeNotSeen"
644 "TestInternalNotifyCreatesEmptyParts"
645 "TestInternalChangeSeenAfterDirCacheFlush"
646 "TestInternalCacheWrites"
647 "TestInternalMaxChunkSizeRespected"
648 "TestInternalBug2117"
649 "TestInternalUploadTempDirCreated"
650 "TestInternalMoveWithNotify"
651 "TestSftp"
652 "TestRc"
653 "TestCache*"
654 "TestListPlugins"
655 ;; Requires network
656 "TestZenodoRemote"
657 "TestMetadata"
658 "TestFTP"
659 ;; Requires executable to be visible
660 "TestEndToEnd"
661 "TestEndToEndMigration"
662 "TestEndToEndRepoLayoutCompat"
663 ;; Requires mount perms
664 "TestMount"
665 ;; Requires network access
666 "TestGetVersion"
667 "TestMetadataMapper"
668 "TestStatsGroupOperations"
669 "TestSorterExt"
670 ;; Bad interface conversion
671 "TestRcDu"
672 ;; Requires write access
673 "TestAddPlugin"
674 "TestRemovePlugin"
675 "TestKvConcurrency"
676 "TestKvExit"
677 "TestFileSetModTime"
678 "TestFileRename"
679 "TestItem*"
680 "TestRWFileHandle*"
681 "TestRWFileModTimeWithOpenWriters"
682 "TestRWCacheRename"
683 "TestFunctional"
684 "invalid_UTF-8")
685 "|"))
686 #:phases
687 #~(modify-phases %standard-phases
688 (add-before 'check 'pre-check
689 (lambda _
690 ;; As seen in go.mod
691 (setenv "GODEBUG" "x509negativeserial=1")
692 ;; As seen in Makefile
693 (setenv "RCLONE_CONFIG" "/notfound"))))))
694 (native-inputs
695 (append
696 ;; On aarch64-linux, Go passes '-fuse-ld=gold' when invoking
697 ;; the external linker; provide ld.gold via binutils-gold.
698 (if (target-aarch64?)
699 (list binutils-gold)
700 '())
701 (list go-bazil-org-fuse
702 go-github-com-a1ex3-zstd-seekable-format-go-pkg
703 go-github-com-a8m-tree
704 go-github-com-aalpar-deheap
705 go-github-com-abbot-go-http-auth
706 go-github-com-anacrolix-dms
707 go-github-com-anacrolix-log
708 go-github-com-atotto-clipboard
709 go-github-com-aws-aws-sdk-go-v2
710 go-github-com-aws-aws-sdk-go-v2-config
711 go-github-com-aws-aws-sdk-go-v2-credentials
712 go-github-com-aws-aws-sdk-go-v2-feature-s3-manager
713 go-github-com-aws-aws-sdk-go-v2-service-s3
714 go-github-com-aws-smithy-go
715 go-github-com-azure-azure-sdk-for-go-sdk-azcore
716 go-github-com-azure-azure-sdk-for-go-sdk-azidentity
717 go-github-com-azure-azure-sdk-for-go-sdk-storage-azblob
718 go-github-com-azure-azure-sdk-for-go-sdk-storage-azfile
719 go-github-com-azure-go-ntlmssp
720 go-github-com-buengese-sgzip
721 go-github-com-cloudinary-cloudinary-go-v2
722 go-github-com-cloudsoda-go-smb2
723 go-github-com-colinmarc-hdfs-v2
724 go-github-com-coreos-go-semver
725 go-github-com-coreos-go-systemd-v22
726 go-github-com-diskfs-go-diskfs
727 go-github-com-dop251-scsu
728 go-github-com-dropbox-dropbox-sdk-go-unofficial-v6
729 go-github-com-files-com-files-sdk-go-v3
730 go-github-com-gabriel-vasile-mimetype
731 go-github-com-gdamore-tcell-v2
732 go-github-com-go-chi-chi-v5
733 ;; go-github-com-go-darwin-apfs ;macOS only
734 go-github-com-go-git-go-billy-v5
735 go-github-com-golang-jwt-jwt-v4
736 go-github-com-google-uuid
737 go-github-com-hanwen-go-fuse-v2
738 go-github-com-henrybear327-go-proton-api
739 go-github-com-henrybear327-proton-api-bridge
740 go-github-com-ibm-go-sdk-core-v5
741 go-github-com-jcmturner-gokrb5-v8
742 go-github-com-jlaffaye-ftp
743 ;; go-github-com-josephspurrier-goversioninfo ;Windows only
744 go-github-com-jzelinskie-whirlpool
745 go-github-com-klauspost-compress
746 go-github-com-koofr-go-httpclient
747 go-github-com-koofr-go-koofrclient
748 go-github-com-lanrat-extsort
749 go-github-com-mattn-go-colorable
750 go-github-com-mattn-go-runewidth
751 go-github-com-max-sum-base32768
752 go-github-com-mholt-archives
753 go-github-com-minio-minio-go-v7
754 go-github-com-mitchellh-go-homedir
755 go-github-com-moby-sys-mountinfo
756 go-github-com-ncw-swift-v2
757 go-github-com-oracle-oci-go-sdk-v65
758 go-github-com-patrickmn-go-cache
759 go-github-com-peterh-liner
760 go-github-com-pkg-sftp
761 go-github-com-pmezard-go-difflib
762 go-github-com-pquerna-otp
763 go-github-com-prometheus-client-golang
764 go-github-com-protonmail-go-crypto
765 go-github-com-putdotio-go-putio-for-rclone
766 go-github-com-quasilyte-go-ruleguard-dsl
767 go-github-com-rclone-gofakes3
768 go-github-com-rfjakob-eme
769 go-github-com-rivo-uniseg
770 go-github-com-rogpeppe-go-internal
771 go-github-com-shirou-gopsutil-v4
772 go-github-com-skratchdot-open-golang
773 go-github-com-spf13-cobra
774 go-github-com-spf13-pflag
775 go-github-com-stretchr-testify
776 go-github-com-t3rm1n4l-go-mega
777 go-github-com-unknwon-goconfig
778 go-github-com-willscott-go-nfs
779 go-github-com-winfsp-cgofuse
780 go-github-com-wk8-go-ordered-map-v2
781 go-github-com-xanzy-ssh-agent
782 go-github-com-youmark-pkcs8
783 go-github-com-yunify-qingstor-sdk-go-v3
784 go-github-com-zeebo-blake3
785 go-github-com-zeebo-xxh3
786 go-go-etcd-io-bbolt
787 go-goftp-io-server-v2
788 go-golang-org-x-crypto
789 go-golang-org-x-mobile
790 go-golang-org-x-net
791 go-golang-org-x-oauth2
792 go-golang-org-x-sync
793 go-golang-org-x-sys
794 go-golang-org-x-term
795 go-golang-org-x-text
796 go-golang-org-x-time
797 go-google-golang-org-api
798 go-gopkg-in-natefinch-lumberjack-v2
799 go-gopkg-in-validator-v2
800 go-gopkg-in-yaml-v3
801 go-storj-io-uplink)))
802 (synopsis "@code{rsync} for cloud storage")
803 (description "@code{Rclone} is a command line program to sync files and
804directories to and from different cloud storage providers.
805
806Features include:
807@itemize
808@item MD5/SHA1 hashes checked at all times for file integrity
809@item Timestamps preserved on files
810@item Partial syncs supported on a whole file basis
811@item Copy mode to just copy new/changed files
812@item Sync (one way) mode to make a directory identical
813@item Check mode to check for file hash equality
814@item Can sync to and from network, e.g., two different cloud accounts
815@item Optional encryption (Crypt)
816@item Optional cache (Cache)
817@item Optional FUSE mount (rclone mount)
818@end itemize")
819 (home-page "https://rclone.org/")
820 (license license:expat)))