projects/guix·blob bootstrap-team · refs

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