From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id SFWHDRE0Dl8RLAAA0tVLHw (envelope-from ) for ; Tue, 14 Jul 2020 22:39:13 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 0NxiCRE0Dl8VdwAA1q6Kng (envelope-from ) for ; Tue, 14 Jul 2020 22:39:13 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2AE6894005D for ; Tue, 14 Jul 2020 22:39:11 +0000 (UTC) Received: from localhost ([::1]:43524 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jvTZu-0004TO-Gt for larch@yhetil.org; Tue, 14 Jul 2020 18:39:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60976) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jvTWs-000462-ON for guix-patches@gnu.org; Tue, 14 Jul 2020 18:36:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:40185) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jvTWs-0001sS-FF for guix-patches@gnu.org; Tue, 14 Jul 2020 18:36:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jvTWs-00062r-Au for guix-patches@gnu.org; Tue, 14 Jul 2020 18:36:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#42357] [PATCH] add package definition for Nextcloud Desktop Resent-From: Tim Magee Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 14 Jul 2020 22:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 42357 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42357@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.159476613023113 (code B ref -1); Tue, 14 Jul 2020 22:36:02 +0000 Received: (at submit) by debbugs.gnu.org; 14 Jul 2020 22:35:30 +0000 Received: from localhost ([127.0.0.1]:51731 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jvTWG-00060Q-QP for submit@debbugs.gnu.org; Tue, 14 Jul 2020 18:35:30 -0400 Received: from lists.gnu.org ([209.51.188.17]:33156) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jvTAq-0004Lr-Vs for submit@debbugs.gnu.org; Tue, 14 Jul 2020 18:13:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42950) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jvTAq-0005x1-H3 for guix-patches@gnu.org; Tue, 14 Jul 2020 18:13:16 -0400 Received: from sonic312-27.consmr.mail.bf2.yahoo.com ([74.6.128.89]:34397) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jvTAm-0001M6-3q for guix-patches@gnu.org; Tue, 14 Jul 2020 18:13:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1594764789; bh=FXG7VbW30O8KRqCCAfhqT8v+a86cDhbpsS68pKQrDS4=; h=From:Subject:To:Date:References:From:Subject; b=jZujAEykuNl4rWC/GWSc9HofMgFBwl6Nfx4CYT7QzA3rnin6SHsf6kL7g0h3GZ1OkaBI+BmwesmS+BU5wE72lUiJ4T3TMXVRF1QzhmP5YvKKzdAHYBQD7+slwt2r3zDxKUZrJjRNkSuvEIj2NnMxJRBIWWB+QTUxGTyp3jYXrPctWledGsS9mi0d5aQMWdErfV+p0ZfFzjPcFxy925iqL9OOhq8RITOZGSO5aWjVf4EqZbih91tBLUhKIFp9gTiUvSfzM7+U4rI+CWacDYfYb7/xCqOFXlvN3jPPspd9IcQU5IWRU9IBu8NJBc7iv6T8AW7TwF8c8f1K59+gZRQSnA== X-YMail-OSG: BjODVPcVM1lxtWeObMpI2HIBVaK68aEsPU5xqTsvAUNyRrmqzQf6jhpx1dI8Nw6 zXMeT1JmasdL4BEZf2739Yk38MuSyztrgq9G1Bv.fSLFhPem9.Zc5247qVIuLS6zC2MQ.X3QY8Go 89M51XiMiy9F3YacZRa6AzRNV2RyE7KrnJ2bAMbNu8TipKrBHxxQwWJRJyJ0L6333qTegOLZXk8S pW1rV107HGnl5Y3umbH8rRsGW1ERLHNWAI475Gf9roaba5GB8qjv2iO1WsG7HTLkItqRBYVqOSn1 stu8IV37NmcMsivzhpPv51e7yhf58T.v2BgulGxvujSagpWJ_ttwofLRYD1eyFQH8u_elIv53EgQ Yf0081m5R1ZCtnmCOfzbw8gJ.ZEMWloKjA4VnGjZkFgZhsEe_1GeiUZ4cRn8X8IGpequbMCFy87q awMQAzAiwWXnLqQAtkIxgyg5xDezD.kJrCbIqMuMlSZ7Pdu7Y4WPY853Vya5ASqiEm.LI8TH4kCt Cws6n6sllx2TV8qkNMgXkea1x4aZzG3TmTb0kilm98FUSOIFWXnuePHFRKzBuHeeWgDdHUQdIxMk OLYU60haeRZlAY3hpM.97PAJmaAo0V7_9rJq5ueE3m6sHEFp1904FdlEyrQH4j8BWjJeCYrHlHQh y_52UPB86cKRvKBcQDlss5i11uf1djPE9SUMAQmVK4ndBPfUH2n8uwyb6zcPvDVLuePiowMnaufK i1XoSLbyFG.TyTk1GBiRjAAVkJxbTpb3B7QLTtwVuInjaNg9h.TXY6kpXkpnyMmdlxSUKKHsieNw M1ilRcc5HSMa2bHwvQ5mJhGOqoizquqVY8gG72Hfvhqy52G12T_CuegzmXcjaITMQHeioWLkOV1Y kD8ILAuoe5VieukXJdA0_wNFdIo37Rdiz7tSc1aOfDFHNjKeOzI7Mt.1OTdERUnVtbHpZ0t0pGfX _mOsmAeaK_eOzACR10RGBN.R4UynwKYDFTHblCz9mq1pF5YqChOW2Q7G6mplRRYwUl4Rss6Zl96T EiY2po4x2qdT6BA7MTfmV6mH.4g7zSis9MyRLhJuDNxn3J3jO8cJiHB7_Xn2EKNMykqFMwIDit8C qXqoMIxXAxB96Kxa_rksoycn_RgVSgFgZMvsib.LR3hAboPpsopej2fFwVVJDyq_MHeUpufeoJWL J6lMU3rGRmPry4dwHEgYxeSpRzDu0EkMARh9Um2tHgP0GJnl_VvWDCrLqEzDcKBHf0pSVz5y7Eyg _fhDnX67yyW0tT87qMTvnqSaKm1LhysZxDgQbi1zfrlXbleUgBw_m7fUhhA4cCvQtQuhfCXtnLCH 6V3ot.JKYvqcTVvj6N7AAcFpX3SeSXMu5aHy5JSpE5H4mQ2UHS5DMkc9DPgUOBwDKDTdXMHHqDMg - Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.bf2.yahoo.com with HTTP; Tue, 14 Jul 2020 22:13:09 +0000 Received: by smtp426.mail.gq1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 3775ef5dcdf1c9c7ef2979a7555d15d5; Tue, 14 Jul 2020 22:13:05 +0000 (UTC) From: Tim Magee Autocrypt: addr=timothy@eastlincoln.net; keydata= mDMEXw4nvhYJKwYBBAHaRw8BAQdA3V+jyg072pxdwq6EXkLmys0iZs8csyUfPCvwELWmpWa0 I1RpbSBNYWdlZSA8dGltb3RoeUBlYXN0bGluY29sbi5uZXQ+iJAEExYIADgWIQSGTqdkPMID vyhN+a5qWhqW9TfxWwUCXw4nvgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRBqWhqW 9TfxW0vfAQDXg2bBVIwxzZQ8mz6rqE7NRjT9UV1pzqszMtkyQuU0qwEA4pne0TCojCLthRNP 3V+X2Tly+vH2EpwhQJz23Arr9Au4OARfDie+EgorBgEEAZdVAQUBAQdAMpvs0vBpk8aVQeDf p3xR6BR6w5tzW11YAWeOyUl6pUMDAQgHiHgEGBYIACAWIQSGTqdkPMIDvyhN+a5qWhqW9Tfx WwUCXw4nvgIbDAAKCRBqWhqW9TfxWxhKAQCg7bh/n/oKOqMCgvQHemGP8U2DB6LHrvqwzsyw DFyTRAEAsJbzh38Mz2eGidyLuNukQrptsZoICW8rXcfcOrgWrA8= Message-ID: Date: Tue, 14 Jul 2020 18:13:04 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Icedove/68.10.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit References: X-Mailer: WebService/1.1.16271 hermes_yahoo Apache-HttpAsyncClient/4.1.4 (Java/11.0.7) Received-SPF: none client-ip=74.6.128.89; envelope-from=timothy@eastlincoln.net; helo=sonic312-27.consmr.mail.bf2.yahoo.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/14 18:13:09 X-ACL-Warn: Detected OS = Linux 3.1-3.10 [fuzzy] X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-1, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Mailman-Approved-At: Tue, 14 Jul 2020 18:35:23 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -3.3 (---) X-Mailman-Approved-At: Tue, 14 Jul 2020 18:39:03 -0400 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=yahoo.com header.s=s2048 header.b=jZujAEyk; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: 1.49 X-TUID: sg6NMo1R/j3/ --- 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 +;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2018 Ludovic Courtès +;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou +;;; Copyright © 2019 Clément Lassieur +;;; Copyright © 2020 Jakub Kądziołka +;;; Copyright © 2020 Tim Magee +;;; +;;; 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 . + +(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@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 + + #include "propagatedownload.h" +-#include "nextcloudpropagator_p.h" ++#include "owncloudpropagator_p.h" + + using namespace OCC; + namespace OCC { -- 2.27.0