summaryrefslogtreecommitdiff
path: root/gnu/packages/sync.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/sync.scm')
-rw-r--r--gnu/packages/sync.scm245
1 files changed, 173 insertions, 72 deletions
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index a323457615..9af85cbb51 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -50,6 +51,11 @@
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-crypto)
+ #:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages image)
#:use-module (gnu packages kde-frameworks)
@@ -74,7 +80,7 @@
(define-public nextcloud-client
(package
(name "nextcloud-client")
- (version "3.8.2")
+ (version "3.17.2")
(source
(origin
(method git-fetch)
@@ -85,14 +91,15 @@
(file-name
(git-file-name name version))
(sha256
- (base32 "0gmj217jmmx13wwb096prwzn3njv616njk1id97g6lrbn969fcnn"))
+ (base32 "0y03yldgyazqds691dzgaginnpys6alnlc9j4aimmi3zcnk93hk3"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
(snippet
'(begin
- ;; Not available in Guix.
- (let* ((keep '("QProgressIndicator" "qtokenizer" "kirigami")))
+ ;; QProgressIndicator is not available in Guix.
+ ;; FIXME: Fix building with the system kirigami.
+ (let* ((keep '("QProgressIndicator" "kirigami")))
(with-directory-excursion "src/3rdparty"
(for-each delete-file-recursively
(lset-difference string=?
@@ -119,11 +126,11 @@
"@kwidgetsaddons@")
;; Expand libraries, that used to be statically linked, but
;; no longer are post-vendoring.
- (("KF5::Archive")
- (string-append "KF5::Archive "
+ (("KF6::Archive")
+ (string-append "KF6::Archive "
"QtSolutions_LockedFile "
"QtSolutions_SingleApplication "
- "KF5WidgetsAddons")))
+ "KF6WidgetsAddons")))
;; Fix compatibility with QtSingleApplication from QtSolutions.
(substitute* '("application.h" "application.cpp")
(("SharedTools::QtSingleApplication")
@@ -133,89 +140,124 @@
#t))))
(build-system qt-build-system)
(arguments
- `(#:configure-flags
- (list
- "-DUNIT_TESTING=ON" "-DBUILD_UPDATER=OFF")
- #:imported-modules
- ((guix build glib-or-gtk-build-system)
- ,@%qt-build-system-modules)
- #:modules
- (((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
- (guix build qt-build-system)
- (guix build utils))
- #:test-exclude "SyncXAttrTest"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-cmake
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Patch install directory for dbus service files.
- (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"
- (("pkg_get_variable\\(_install_dir dbus-1 .*\\)")
- (string-append "set(_install_dir \"${CMAKE_INSTALL_PREFIX}"
- "/share/dbus-1/services\")")))
- (substitute* "shell_integration/dolphin/CMakeLists.txt"
- ;; Make sure, that Qt modules are installed under $prefix.
- (("ON CACHE") "OFF CACHE"))
- (substitute* "src/gui/CMakeLists.txt"
- (("@kwidgetsaddons@")
- (search-input-directory inputs
- "/include/KF5/KWidgetsAddons/")))))
- (add-before 'check 'pre-check
- (lambda _
- (setenv "QT_QPA_PLATFORM" "offscreen")
- ;; Tests write to $HOME.
- (setenv "HOME" (getcwd))
- #t))
- (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)))))
+ (list #:qtbase qtbase
+ #:configure-flags #~(list "-DUNIT_TESTING=ON" "-DBUILD_UPDATER=OFF")
+ #:imported-modules
+ `((guix build glib-or-gtk-build-system)
+ ,@%qt-build-system-modules)
+ #:modules
+ '(((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ (guix build qt-build-system)
+ (guix build utils))
+ ;; 72% tests passed, 17 tests failed out of 61 due to SEGFAULT.
+ #:test-exclude
+ (string-append "("
+ (string-join '("OwnSqlTest"
+ "SyncJournalDBTest"
+ "SyncFileItemTest"
+ "ConcatUrlTest"
+ "CookiesTest"
+ "XmlParseTest"
+ "ChecksumValidatorTest"
+ "ClientSideEncryptionTest"
+ "ExcludedFilesTest"
+ "UtilityTest"
+ "CapabilitiesTest"
+ "ThemeTest"
+ "IconUtilsTest"
+ "FileSystemTest"
+ "LongPathTest"
+ "AccountTest"
+ "FolderTest")
+ "|")
+ ")")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-cmake
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/gui/CMakeLists.txt"
+ (("@kwidgetsaddons@")
+ (search-input-directory inputs
+ "/include/KF6/KWidgetsAddons/")))
+ (with-directory-excursion "shell_integration"
+ ;; Patch install directory for dbus service files.
+ (substitute* "libcloudproviders/CMakeLists.txt"
+ (("pkg_get_variable\\(_install_dir dbus-1 .*\\)")
+ (string-append "set(_install_dir \""
+ "${CMAKE_INSTALL_PREFIX}"
+ "/share/dbus-1/services\")")))
+ (substitute* "dolphin/CMakeLists.txt"
+ ;; Make sure, that Qt modules are installed under
+ ;; $prefix.
+ (("ON CACHE") "OFF CACHE")))))
+ (add-after 'unpack 'unpack-3rd_party-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+ (copy-recursively (assoc-ref inputs "libcrashreporter-qt")
+ "src/3rdparty/libcrashreporter-qt")))
+ ;; Tests write to $HOME.
+ (add-before 'check 'set-home-directory
+ (lambda _
+ (setenv "HOME" (getcwd))))
+ (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
- `(("cmocka" ,cmocka)
- ("dot" ,graphviz)
- ("doxygen" ,doxygen)
- ("extra-cmake-modules" ,extra-cmake-modules)
- ("glib:bin" ,glib "bin")
- ("librsvg" ,(librsvg-for-system))
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)
- ("qttools-5" ,qttools-5)
- ("ruby" ,ruby)))
+ (list cmocka
+ desktop-file-utils
+ graphviz
+ doxygen
+ extra-cmake-modules
+ `(,glib "bin")
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/dschmidt/libcrashreporter-qt")
+ (commit "96da2900d590218b745ea79cd7aa794856e1d7ba")))
+ (file-name "libcrashreporter-qt")
+ (sha256
+ (base32 "0r14abym96fk9zwalyvyzl5igwsrpgmk2hsfxshzh2av4riq0lmk")))
+ (librsvg-for-system)
+ perl
+ pkg-config
+ python-wrapper
+ python-sphinx
+ qttools
+ ruby))
(inputs
(list appstream
dbus
- desktop-file-utils
glib
- karchive-5
- kconfig-5
- kcoreaddons-5
- kio-5
+ karchive
+ kconfig
+ kcoreaddons
+ kguiaddons
+ kio
kjs
- kwidgetsaddons-5
+ kwidgetsaddons
libcloudproviders
+ libp11
libzip
openssl
- qtbase-5
- qtdeclarative-5
- qtgraphicaleffects
- qtkeychain
- qtquickcontrols2-5
+ qt5compat
+ qtdeclarative
+ qtkeychain-qt6
qtsolutions
- qtsvg-5
- qtwebchannel-5
- qtwebsockets-5
+ qtsvg
+ qtwayland
+ qtwebchannel
+ qtwebengine
+ qtwebsockets
sqlite
xdg-utils
zlib))
- (propagated-inputs
- (list qtwebengine-5))
(synopsis "Desktop sync client for Nextcloud")
(description "Nextcloud-Desktop is a tool to synchronize files from
Nextcloud Server with your computer.")
(home-page "https://nextcloud.com")
(license (list license:expat ; QProgressIndicator
- license:lgpl2.1+ ; qtokenizer
license:gpl2+))))
(define-public megacmd
@@ -560,6 +602,65 @@ over the Internet in an HTTP and CDN friendly way;
@end itemize\n")
(license license:lgpl2.1+))))
+(define-public croc
+ (package
+ (name "croc")
+ (version "10.2.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/schollz/croc")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jf8rfviy2vy9656ghss00fpvsx0iy079x906png39a52ryqjdzb"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:install-source? #f
+ #:import-path "github.com/schollz/croc"
+ #:test-flags
+ #~(list "-skip" "TestPublicIP|TestLocalIP|TestTCP")))
+ (native-inputs
+ (list go-github-com-cespare-xxhash-v2
+ go-github-com-chzyer-readline
+ go-github-com-denisbrodbeck-machineid
+ go-github-com-kalafut-imohash
+ go-github-com-magisterquis-connectproxy
+ go-github-com-minio-highwayhash
+ go-github-com-sabhiram-go-gitignore
+ go-github-com-schollz-cli-v2
+ go-github-com-schollz-logger
+ go-github-com-schollz-pake-v3
+ go-github-com-schollz-peerdiscovery
+ go-github-com-schollz-progressbar-v3
+ go-github-com-skip2-go-qrcode
+ go-github-com-stretchr-testify
+ go-golang-org-x-crypto
+ go-golang-org-x-net
+ go-golang-org-x-sys
+ go-golang-org-x-term
+ go-golang-org-x-time))
+ (home-page "https://github.com/schollz/croc")
+ (synopsis "Send things from one computer to another easily and securely")
+ (description
+ "This package provides @code{croc} - a tool that allows any two
+computers to simply and securely transfer files and folders.
+
+Feature:
+@itemize
+@item allows any two computers to transfer data (using a relay)
+@item provides end-to-end encryption (using PAKE)
+@item enables easy cross-platform transfers (Windows, Linux, Mac)
+@item allows multiple file transfers
+@item allows resuming transfers that are interrupted
+@item no need for local server or port-forwarding
+@item IPv6-first with IPv4 fallback
+@item can use a proxy, like Tor
+@end itemize")
+ (license license:expat)))
+
(define-public rclone
(package
(name "rclone")