diff mbox series

[bug#45889] Nextcloud Client (v7)

Message ID 609483b4-c583-cbf0-4b2a-4daf6c4feb98@raghavgururajan.name
State Accepted
Headers show
Series [bug#45889] Nextcloud Client (v7) | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Raghav Gururajan Feb. 1, 2021, 3:13 p.m. UTC

Comments

Leo Prikler Feb. 9, 2021, 10:22 a.m. UTC | #1
Hello,

Am Montag, den 01.02.2021, 10:13 -0500 schrieb Raghav Gururajan:
> Subject: [PATCH 1/3] gnu: Add appstream.
Mostly LGTM.

> +    (native-inputs
> +     `(("cmake" ,cmake)
Is cmake really needed?  I know that meson falls back to cmake if pkg-
config fails and also supports output to cmake, but meson/ninja should
be the default.

> Subject: [PATCH 2/3] gnu: kwayland: Disable failing tests.
LGTM, we might want to push that independently.

> +           (let ((keep '( ;; Not available in Guix.
> +                         "QProgressIndicator" "kmessagewidget"
> "qtlockedfile"
> +                         "qtokenizer" "qtsingleapplication")))
Could you try packaging those for Guix as well?

> +       #:imported-modules
> +       (,@%qt-build-system-modules
> +        (guix build glib-or-gtk-build-system))
> +       #:modules
> +       ((guix build qt-build-system)
> +        ((guix build glib-or-gtk-build-system)
> +         #:prefix glib-or-gtk:)
> +        (guix build utils))
As with your telegram patch, I personally think the ordering is wrong
here.

> +               (("PKGCONFIG_GETVAR\\(dbus-1 session_bus_services_dir
> _install_dir\\)")
> +                "set(_install_dir
> \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))
You might want to regexp the middle part in case it is changed.

> +             ;; Turn-off the use of absolute Qt paths for
> installation.
> +             (substitute* "shell_integration/dolphin/CMakeLists.txt"
> +               (("ON CACHE")
> +                "OFF CACHE"))
What does this achieve exactly?

Btw. slightly off-topic, but if you're planning to reply to this patch-
set and send v8 at roughly the same time, please collapse it to a
single message as you're already using a "patches as attachments"
style.  Having everything in a single message makes it a little easier
for me to respond and Evolution can save all attachments to a directory
just fine.

Regards,
Leo
Leo Prikler Feb. 9, 2021, 12:53 p.m. UTC | #2
Am Montag, den 01.02.2021, 10:13 -0500 schrieb Raghav Gururajan:
> Subject: [PATCH 2/3] gnu: kwayland: Disable failing tests.
It seems the test you've disabled is no longer the only failing one.
Upstream kwayland builds by disabling tests altogether, so you can skip
this patch if you don't want to investigate further.  If you do want to
investigate further, I suggest doing those patches separately from
Nextcloud.

> 17/45 Test #17: kwayland-testWindowmanagement ..............Child
> aborted***Exception:   0.17 sec
> qt.qpa.xcb: could not connect to display 
> qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even
> though it was found.
> This application failed to start because no Qt platform plugin could
> be initialized. Reinstalling the application may fix this problem.
> 
> Available platform plugins are: eglfs, linuxfb, minimal, minimalegl,
> offscreen, vnc, xcb, wayland-egl, wayland, wayland-xcomposite-egl,
> wayland-xcomposite-glx.

Regards,
Leo
diff mbox series

Patch

From d8d102622331390726068dc6f82acf23ebb97734 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Fri, 15 Jan 2021 05:04:31 -0500
Subject: [PATCH 3/3] gnu: Add nextcloud-client.

* gnu/packages/nextcloud.scm: New module.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/nextcloud.scm (nextcloud-client): New variable.
---
 gnu/local.mk               |   1 +
 gnu/packages/nextcloud.scm | 150 +++++++++++++++++++++++++++++++++++++
 2 files changed, 151 insertions(+)
 create mode 100644 gnu/packages/nextcloud.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 6679b6fb17..d1b3c1699f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -398,6 +398,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/nicotine.scm                     \
diff --git a/gnu/packages/nextcloud.scm b/gnu/packages/nextcloud.scm
new file mode 100644
index 0000000000..7c04cfcc91
--- /dev/null
+++ b/gnu/packages/nextcloud.scm
@@ -0,0 +1,150 @@ 
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;;
+;;; 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 (gnu packages)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages ruby)
+  #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system qt))
+
+(define-public nextcloud-client
+  (package
+    (name "nextcloud-client")
+    (version "3.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nextcloud/desktop")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "022k7b3c30dymrjc1g3ly2cac1c34gkqnvjya6p7w2j3qw2w1dm2"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)
+                  (srfi srfi-1)))
+       (snippet
+        `(begin
+           (let ((keep '( ;; Not available in Guix.
+                         "QProgressIndicator" "kmessagewidget" "qtlockedfile"
+                         "qtokenizer" "qtsingleapplication")))
+             (with-directory-excursion "src/3rdparty"
+               (for-each delete-file-recursively
+                         (lset-difference string=?
+                                          (scandir ".")
+                                          (cons* "." ".." keep))))
+             #t)))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DUNIT_TESTING=ON")
+       #:imported-modules
+       (,@%qt-build-system-modules
+        (guix build glib-or-gtk-build-system))
+       #:modules
+       ((guix build qt-build-system)
+        ((guix build glib-or-gtk-build-system)
+         #:prefix glib-or-gtk:)
+        (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-plugin-dirs
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Patch install directory for dbus service files.
+             (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"
+               (("PKGCONFIG_GETVAR\\(dbus-1 session_bus_services_dir _install_dir\\)")
+                "set(_install_dir \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))
+             ;; Turn-off the use of absolute Qt paths for installation.
+             (substitute* "shell_integration/dolphin/CMakeLists.txt"
+               (("ON CACHE")
+                "OFF CACHE"))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; 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)))))
+    (native-inputs
+     `(("cmocka" ,cmocka)
+       ("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("extra-cmake-modules" ,extra-cmake-modules)
+       ("glib:bin" ,glib "bin")
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)
+       ("ruby" ,ruby)))
+    (inputs
+     `(("appstream" ,appstream)
+       ("glib" ,glib)
+       ("kconfig" ,kconfig)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kio" ,kio)
+       ("libcloudproviders" ,libcloudproviders)
+       ("openssl" ,openssl)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtgraphicaleffects" ,qtgraphicaleffects)
+       ("qtkeychain" ,qtkeychain)
+       ("qtquickcontrols2" ,qtquickcontrols2)
+       ("qtsvg" ,qtsvg)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtwebkit" ,qtwebkit)
+       ("sqlite" ,sqlite)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("qtwebengine" ,qtwebengine)))
+    (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/install/#install-clients")
+    (license
+     (list
+      ;; QtProgressIndicator
+      license:expat
+      ;; All ThirdParty (except QtProgressIndicator)
+      license:lgpl2.1+
+      ;; Others
+      license:gpl2+))))
-- 
2.30.0