Package: guix-patches;
Reported by: Tim Magee <timothy <at> eastlincoln.net>
Date: Tue, 14 Jul 2020 22:36:02 UTC
Severity: normal
Tags: patch
Done: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Hartmut Goebel <h.goebel <at> crazy-compilers.com> Cc: tracker <at> debbugs.gnu.org Subject: bug#42357: closed ([PATCH] add package definition for Nextcloud Desktop) Date: Thu, 18 May 2023 15:13:03 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 18 May 2023 17:12:36 +0200 with message-id <01772934-bd8c-7889-1fc0-9f47a57f4aef <at> crazy-compilers.com> and subject line [PATCH] add package definition for Nextcloud Desktop has caused the debbugs.gnu.org bug report #42357, regarding [PATCH] add package definition for Nextcloud Desktop to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 42357: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=42357 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Tim Magee <timothy <at> eastlincoln.net> To: guix-patches <at> gnu.org Subject: [PATCH] add package definition for Nextcloud Desktop Date: Tue, 14 Jul 2020 18:13:04 -0400--- gnu/local.mk | 2 + gnu/packages/nextcloud.scm | 397 ++++++++++++++++++ .../patches/nextcloud-fix-filenames.patch | 22 + 3 files changed, 421 insertions(+) create mode 100644 gnu/packages/nextcloud.scm create mode 100644 gnu/packages/patches/nextcloud-fix-filenames.patch diff --git a/gnu/local.mk b/gnu/local.mk index ddd024677a..34fd318115 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -384,6 +384,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/netpbm.scm \ %D%/packages/nettle.scm \ %D%/packages/networking.scm \ + %D%/packages/nextcloud.scm \ %D%/packages/nfs.scm \ %D%/packages/nickle.scm \ %D%/packages/nim.scm \ @@ -1318,6 +1319,7 @@ dist_patch_DATA = \ %D%/packages/patches/netsurf-system-utf8proc.patch \ %D%/packages/patches/netsurf-y2038-tests.patch \ %D%/packages/patches/netsurf-longer-test-timeout.patch \ + %D%/packages/patches/nextxcloud-fix-filenames.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/network-manager-plugin-path.patch \ %D%/packages/patches/nsis-env-passthru.patch \ diff --git a/gnu/packages/nextcloud.scm b/gnu/packages/nextcloud.scm new file mode 100644 index 0000000000..b20d1a1148 --- /dev/null +++ b/gnu/packages/nextcloud.scm @@ -0,0 +1,397 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim <at> flashner.co.il> +;;; Copyright © 2017 Ricardo Wurmus <rekado <at> elephly.net> +;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me <at> tobias.gr> +;;; Copyright © 2018 Ludovic Courtès <ludo <at> gnu.org> +;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail <at> nicolasgoaziou.fr> +;;; Copyright © 2019 Clément Lassieur <clement <at> lassieur.org> +;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net> +;;; Copyright © 2020 Tim Magee <timothy <at> eastlincoln.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages nextcloud) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix build-system go) + #:use-module (guix build-system meson) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages acl) + #:use-module (gnu packages adns) + #:use-module (gnu packages autotools) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) + #:use-module (gnu packages curl) + #:use-module (gnu packages documentation) + #:use-module (gnu packages glib) + #:use-module (gnu packages golang) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages lua) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages qt) + #:use-module (gnu packages readline) + #:use-module (gnu packages rsync) + #:use-module (gnu packages selinux) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages tls)) + +(define-public megacmd + (package + (name "megacmd") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/meganz/MEGAcmd.git") + (commit (string-append version "_Linux")) + (recursive? #t))) + (sha256 + (base32 + "004j8m3xs6slx03g2g6wzr97myl2v3zc09wxnfar5c62a625pd53")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + ;; XXX: Disabling tests because they depend on libgtest.la from googletest, + ;; which is not installed for unclear reasons. + (arguments + `(#:tests? #f + #:configure-flags '("--with-pcre"))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (inputs + `(("c-ares" ,c-ares) + ("crypto++" ,crypto++) + ("curl" ,curl) + ("freeimage" ,freeimage) + ("gtest" ,googletest) + ("openssl" ,openssl) + ("pcre" ,pcre) + ("readline" ,readline) + ("sodium" ,libsodium) + ("sqlite3" ,sqlite) + ("zlib" ,zlib))) + (home-page "https://mega.nz/cmd") + (synopsis + "Command Line Interactive and Scriptable Application to access mega.nz") + (description "MEGAcmd provides non UI access to MEGA services. It intends +to offer all the functionality of a MEGA account via commands. It features +synchronization, backup of local folders into a MEGA account and a +webdav/streaming server. + +See also: megatools, a third-party alternative more commonly packaged in other +distributions.") + (license (list license:bsd-2 license:gpl3+)))) + +(define-public megatools + (package + (name "megatools") + (version "1.10.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://megatools.megous.com/builds/megatools-" + version ".tar.gz")) + (sha256 + (base32 + "12n32w5mqvpk0hvh9yg9qkj9i0g2wp7jp9rq28bnqs94iv3897hp")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ;; For documentation + ("asciidoc" ,asciidoc))) + (inputs + `(("curl" ,curl) + ("glib" ,glib) + ("openssl" ,openssl))) + (home-page "https://megatools.megous.com/") + (synopsis "Command line client application for mega.nz") + (description "Megatools is a collection of programs for accessing the mega.nz service +from the command line. + +Megatools allow you to copy individual files as well as entire directory trees to and from +the cloud. You can also perform streaming downloads for example to preview videos and +audio files, without needing to download the entire file first. + +Megatools are robust and optimized for fast operation - as fast as Mega servers allow. +Memory requirements and CPU utilization are kept at minimum. + +See also: megacmd, the official tool set by MEGA.") + (license license:gpl2))) + +(define-public nextcloud-desktop + (package + (name "nextcloud-desktop") + (version "2.6.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/" + "nextcloud/desktop/archive/v" version ".tar.gz")) + (sha256 + (base32 "121ji36ahk52z0n5p1k81s6smd5fd78a9vflqa2lsjhp0zzqalwk")) + ;; I cherry picked this patch from Nextcloud + (patches (search-patches "nextcloud-fix-filenames.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; libcrashreporter-qt has its own bundled dependencies + (delete-file-recursively "src/3rdparty/libcrashreporter-qt") + (delete-file-recursively "src/3rdparty/sqlite3") + ;; qprogessindicator, qlockedfile, qtokenizer and + ;; qtsingleapplication have not yet been packaged, but all are + ;; explicitly used from the 3rdparty folder during build. + #t)))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-failing-utility-test + ;; "Could not create autostart folder" + (lambda _ + (substitute* "test/CMakeLists.txt" + (("nextcloud_add_test\\(Utility \"\"\\)" test) + (string-append "#" test))) + #t)) + (add-after 'unpack 'delete-failing-files-test + (lambda _ + (substitute* "test/CMakeLists.txt" + (("nextcloud_add_test\\(AllFilesDeleted \"syncenginetestutils.h\"\\)" test) + (string-append "#" test))) + #t)) + (delete 'patch-dot-desktop-files)) + #:configure-flags '("-DUNIT_TESTING=ON"))) + (native-inputs + `(("cmocka" ,cmocka) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("qtlinguist" ,qttools))) + (inputs + `(("openssl" , openssl) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtkeychain" ,qtkeychain) +;; ("qtquickcontrols" ,qtquickcontrols) +;; ("qtquickcontrols2" ,qtquickcontrols2) + ("qtwebchannel", qtwebchannel) + ("qtwebengine" ,qtwebengine) + ("qtwebkit" ,qtwebkit) + ("sqlite" ,sqlite) + ("zlib" ,zlib))) + (home-page "https://nextcloud.org") + (synopsis "Folder synchronization with a Nextcloud server") + (description "Use the Nextcloud desktop client to keep your files synchronized between your Nextcloud server and your desktop. Select one or more directories on your local machine and always have access to your latest files wherever you are.") + (license license:gpl2+))) + +(define-public qsyncthingtray + (package + (name "qsyncthingtray") + (version "0.5.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sieren/QSyncthingTray") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1n9g4j7qznvg9zl6x163pi9f7wsc3x6q76i33psnm7x2v1i22x5w")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DQST_BUILD_WEBKIT=1") + #:phases + (modify-phases %standard-phases + ;; The program is meant to be run from the git repo or source tarball. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "QSyncthingTray" bin) + (mkdir-p (string-append out "/share/pixmaps")) + (copy-file "../source/resources/images/Icon1024.png" + (string-append + out "/share/pixmaps/QSyncthingTray.png")) + #t)))) + #:tests? #f)) ; no test target + (inputs + `(("qtbase" ,qtbase) + ("qtwebkit" ,qtwebkit))) + (home-page "https://github.com/sieren/QSyncthingTray") + (synopsis "Traybar Application for Syncthing") + (description + "A traybar application for syncthing. +@enumerate +@item Shows number of connections at a glance. +@item Traffic statistics about incoming, outgoing and total throughput. +@item Launches Syncthing and Syncthing-iNotifier if specified. +@item Quickly pause Syncthing with one click. +@item Last Synced Files - Quickly see the recently synchronised files and open +their folder. +@item Quick Access to all shared folders. +@item Presents Syncthing UI in a separate view instead of using the browser. +@item Supports authenticated HTTPS connections. +@item Uses System Notifications about current connection status. +@item Toggle for monochrome icon. +@end enumerate\n") + (license license:lgpl3+))) + +(define-public lsyncd + (package + (name "lsyncd") + (version "2.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/axkibe/lsyncd.git") + (commit (string-append "release-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q2ixp52r96ckghgmxdbms6xrq8dbziimp8gmgzqfq4lk1v1w80y")))) + (build-system cmake-build-system) + (arguments + `(;; The "tests" target is broken and assumes that tests are run in the + ;; root directory. + #:tests? #f + #:test-target "tests" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'search-$PATH-for-binaries + ;; lsyncd requires and hard-codes absolute file names to binaries. + ;; Make it fall back to searching $PATH for relative file names. + (lambda _ + (substitute* "lsyncd.c" + (("execv\\(") "execvp(")) + (substitute* (list "lsyncd.lua" + "default-direct.lua" + "default-rsync.lua" + "default-rsyncssh.lua") + (("(|/usr)/bin/") "")) + #t)) + (replace 'install + ;; No install target. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man (string-append out "/share/man/man1"))) + (install-file "lsyncd" bin) + (install-file "../source/doc/manpage/lsyncd.1" man) + #t)))))) + (native-inputs + `(("lua" ,lua-5.2))) + (home-page "https://github.com/axkibe/lsyncd") + (synopsis "Synchronize local directories with remote targets") + (description "Lsyncd watches a local directory trees event monitor +interface (inotify or fsevents). It aggregates and combines events for a few +seconds and then spawns one (or more) process(es) to synchronize the changes. +By default this is rsync, which must be installed on all source and target +machines. Lsyncd is thus a light-weight live mirror solution that is +comparatively easy to install not requiring new file systems or block devices +and does not hamper local file system performance.") + (license license:gpl2+))) + +(define-public casync + (package + (name "casync") + (version "2") + (home-page "https://github.com/systemd/casync/") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 + "0znkp3fcksrykcsv06y2mjvf2lbwmin25snmvfa8i5qfm3f4rm88")) + (file-name (string-append name "-" version "-checkout")) + (patches (search-patches "casync-renameat2-declaration.patch")))) + (build-system meson-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python-sphinx" ,python-sphinx) + ("rsync" ,rsync))) ;for tests + (inputs + `(("xz" ,xz) ;for liblzma + ("zstd" ,zstd "lib") + ("curl" ,curl) + ("acl" ,acl) + ("libselinux" ,libselinux) + ("fuse" ,fuse) + ("zlib" ,zlib))) + (synopsis "File synchronization and backup system") + (description + "casync is a @dfn{content-addressable data synchronizer} that can be used +as the basis of a backup system. It is: + +@itemize +@item A combination of the rsync algorithm and content-addressable storage; +@item An efficient way to store and retrieve multiple related versions of +large file systems or directory trees; +@item An efficient way to deliver and update OS, VM, IoT and container images +over the Internet in an HTTP and CDN friendly way; +@item An efficient backup system. +@end itemize\n") + (license license:lgpl2.1+))) + +(define-public rclone + (package + (name "rclone") + (version "1.52.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/rclone/rclone/releases/download/" + "v" version "/rclone-v" version ".tar.gz")) + (sha256 + (base32 "1y0ysdbqqb1dj8daziwwhz531c7kfr7f9fsvc7xyg4ysppz1qxfq")))) + ;; FIXME: Rclone bundles some libraries Guix already provides. Need to + ;; un-bundle them. + (build-system go-build-system) + (arguments + '(#:import-path "github.com/rclone/rclone" + #:install-source? #f)) + (synopsis "@code{rsync} for cloud storage") + (description "@code{Rclone} is a command line program to sync files and +directories to and from different cloud storage providers. + +Features include: +@itemize +@item MD5/SHA1 hashes checked at all times for file integrity +@item Timestamps preserved on files +@item Partial syncs supported on a whole file basis +@item Copy mode to just copy new/changed files +@item Sync (one way) mode to make a directory identical +@item Check mode to check for file hash equality +@item Can sync to and from network, e.g., two different cloud accounts +@item Optional encryption (Crypt) +@item Optional cache (Cache) +@item Optional FUSE mount (rclone mount) +@end itemize") + (home-page "https://rclone.org/") + (license license:expat))) + +nextcloud-desktop diff --git a/gnu/packages/patches/nextcloud-fix-filenames.patch b/gnu/packages/patches/nextcloud-fix-filenames.patch new file mode 100644 index 0000000000..da8423022b --- /dev/null +++ b/gnu/packages/patches/nextcloud-fix-filenames.patch @@ -0,0 +1,22 @@ +From f9c6449c050cad673cf37971d9815a35e6ffb5dd Mon Sep 17 00:00:00 2001 +From: tuxmaster5000 <837503+tuxmaster5000 <at> users.noreply.github.com> +Date: Fri, 12 Oct 2018 15:56:26 +0200 +Subject: [PATCH] Fix include file + +--- + test/testnextcloudpropagator.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/testnextcloudpropagator.cpp b/test/testnextcloudpropagator.cpp +index 6ad1a6b37..dc2e476ad 100644 +--- a/test/testnextcloudpropagator.cpp ++++ b/test/testnextcloudpropagator.cpp +@@ -8,7 +8,7 @@ + #include <QDebug> + + #include "propagatedownload.h" +-#include "nextcloudpropagator_p.h" ++#include "owncloudpropagator_p.h" + + using namespace OCC; + namespace OCC { -- 2.27.0
[Message part 3 (message/rfc822, inline)]
From: Hartmut Goebel <h.goebel <at> crazy-compilers.com> To: 42357-close <at> debbugs.gnu.org Subject: [PATCH] add package definition for Nextcloud Desktop Date: Thu, 18 May 2023 17:12:36 +0200[Message part 4 (text/plain, inline)]This patch is obsolete since nextcloud-client is in guix since 2021-03-09 alreadyand was updated, too. Closing -- Regards Hartmut Goebel | Hartmut Goebel |h.goebel <at> crazy-compilers.com | |www.crazy-compilers.com | compilers which you thought are impossible |[Message part 5 (text/html, inline)]
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.