Nextcloud Client

DoneSubmitted by Raghav Gururajan.
Details
3 participants
  • Nicolò Balzarotti
  • Leo Prikler
  • Raghav Gururajan
Owner
unassigned
Severity
normal
R
R
Raghav Gururajan wrote on 15 Jan 11:09 +0100
Nextcloud Desktop
(address . guix-patches@gnu.org)
faeb60b5-1a70-174c-0339-070908aeffcf@raghavgururajan.name
Hello Guix!
Please find the attached patch-set to add Nextcloud desktop application to guix.
Regards,RG.
From 61c8855b31df21363a92e8b2bbf5d70ab977d874 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 6dd37005ae..a65cc9bd90 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From aa2f1809b0d7250d10086211cd23a6e5a4e86d94 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] gnu: Add nextcloud-desktop.
* gnu/packages/nextcloud.scm: New module.* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.* gnu/packages/nextcloud.scm (nextcloud-desktop): New variable.--- gnu/local.mk | 1 + gnu/packages/nextcloud.scm | 145 +++++++++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (165 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 747cbb1da7..9c155fff73 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.scmnew file mode 100644index 0000000000..e8280feace--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,145 @@+;;; 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-desktop+ (package+ (name "nextcloud-desktop")+ (version "3.1.1")+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/nextcloud/desktop.git")+ (commit+ (string-append "v" version))))+ (file-name+ (git-file-name name version))+ (sha256+ (base32 "1ba9z1kv3wlrmaxsn442vn0inzbd0smvq4xkavarn1h8i0dm62hb"))))+ (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 'remove-thirdparty+ (lambda _+ (with-directory-excursion "src/3rdparty"+ (for-each delete-file-recursively+ (list+ "libcrashreporter-qt"+ "sqlite3")))+ #t))+ (add-after 'remove-thirdparty 'patch-plugin-dirs+ (lambda* (#:key outputs #:allow-other-keys)+ (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\")"))+ (substitute* "shell_integration/dolphin/CMakeLists.txt"+ (("ON CACHE")+ "OFF CACHE")+ (("\\$\\{KDE_INSTALL_KSERVICES5DIR\\}")+ (string-append+ (assoc-ref outputs "out")+ "/lib/qt5/plugins"))+ (("\\$\\{KDE_INSTALL_PLUGINDIR\\}")+ (string-append+ (assoc-ref outputs "out")+ "/lib/qt5/plugins")))+ #t))+ (add-before 'build 'gate+ (lambda _+ #t))+ (add-before 'check 'pre-check+ (lambda _+ (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)+ ("sphinx" ,python-sphinx)))+ (inputs+ `(("appstream" ,appstream)+ ("dbus" ,dbus)+ ("glib" ,glib)+ ("kconfig" ,kconfig)+ ("kcoreaddons" ,kcoreaddons)+ ("kio" ,kio)+ ("libcloudproviders" ,libcloudproviders)+ ("openssl" ,openssl)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebengine" ,qtwebengine)+ ("qtwebkit" ,qtwebkit)+ ("sqlite" ,sqlite)+ ("zlib" ,zlib)))+ (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 license:gpl2+)))-- 2.30.0
R
R
Raghav Gururajan wrote on 16 Jan 07:40 +0100
Nextcloud Desktop (v2)
(address . 45889@debbugs.gnu.org)
cc5c4e54-e985-c761-da29-1ea8444b246b@raghavgururajan.name
From 61c8855b31df21363a92e8b2bbf5d70ab977d874 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 6dd37005ae..a65cc9bd90 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From 4346ce4e708876e2951987c5284c8579c1ccdc2f Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] gnu: Add nextcloud-desktop.
* gnu/packages/nextcloud.scm: New module.* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.* gnu/packages/nextcloud.scm (nextcloud-desktop): New variable.--- gnu/local.mk | 1 + gnu/packages/nextcloud.scm | 146 +++++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (166 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 747cbb1da7..9c155fff73 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.scmnew file mode 100644index 0000000000..8ab1a5393f--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,146 @@+;;; 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-desktop+ (package+ (name "nextcloud-desktop")+ (version "3.1.1")+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/nextcloud/desktop.git")+ (commit+ (string-append "v" version))))+ (file-name+ (git-file-name name version))+ (sha256+ (base32 "1ba9z1kv3wlrmaxsn442vn0inzbd0smvq4xkavarn1h8i0dm62hb"))))+ (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 'remove-thirdparty+ (lambda _+ (with-directory-excursion "src/3rdparty"+ (for-each delete-file-recursively+ (list+ "libcrashreporter-qt"+ "sqlite3")))+ #t))+ (add-after 'remove-thirdparty 'patch-plugin-dirs+ (lambda* (#:key outputs #:allow-other-keys)+ (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\")"))+ (substitute* "shell_integration/dolphin/CMakeLists.txt"+ (("ON CACHE")+ "OFF CACHE")+ (("\\$\\{KDE_INSTALL_KSERVICES5DIR\\}")+ (string-append+ (assoc-ref outputs "out")+ "/lib/qt5/plugins"))+ (("\\$\\{KDE_INSTALL_PLUGINDIR\\}")+ (string-append+ (assoc-ref outputs "out")+ "/lib/qt5/plugins")))+ #t))+ (add-before 'build 'gate+ (lambda _+ #t))+ (add-before 'check 'pre-check+ (lambda _+ (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)+ ("sphinx" ,python-sphinx)))+ (inputs+ `(("appstream" ,appstream)+ ("dbus" ,dbus)+ ("glib" ,glib)+ ("kconfig" ,kconfig)+ ("kcoreaddons" ,kcoreaddons)+ ("kio" ,kio)+ ("libcloudproviders" ,libcloudproviders)+ ("openssl" ,openssl)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("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 license:gpl2+)))-- 2.30.0
R
R
Raghav Gururajan wrote on 16 Jan 09:33 +0100
Nextcloud Desktop (v3)
(address . 45889@debbugs.gnu.org)
459601fa-c064-9eb0-2796-f4882bf6ac1a@raghavgururajan.name
From 61c8855b31df21363a92e8b2bbf5d70ab977d874 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 6dd37005ae..a65cc9bd90 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From b2937fe6c61cab1fc900ba786129c458cee5bb3c Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] gnu: Add nextcloud-desktop.
* gnu/packages/nextcloud.scm: New module.* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.* gnu/packages/nextcloud.scm (nextcloud-desktop): New variable.--- gnu/local.mk | 1 + gnu/packages/nextcloud.scm | 135 +++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (155 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 747cbb1da7..9c155fff73 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.scmnew file mode 100644index 0000000000..594392605b--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,135 @@+;;; 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-desktop+ (package+ (name "nextcloud-desktop")+ (version "3.1.1")+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/nextcloud/desktop.git")+ (commit+ (string-append "v" version))))+ (file-name+ (git-file-name name version))+ (sha256+ (base32 "1ba9z1kv3wlrmaxsn442vn0inzbd0smvq4xkavarn1h8i0dm62hb"))))+ (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 'remove-thirdparty+ (lambda _+ (with-directory-excursion "src/3rdparty"+ (for-each delete-file-recursively+ (list+ "libcrashreporter-qt"+ "sqlite3")))+ #t))+ (add-after 'remove-thirdparty 'patch-plugin-dirs+ (lambda* (#:key outputs #:allow-other-keys)+ (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\")"))+ (substitute* "shell_integration/dolphin/CMakeLists.txt"+ (("ON CACHE")+ "OFF CACHE"))+ #t))+ (add-before 'check 'pre-check+ (lambda _+ (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)+ ("sphinx" ,python-sphinx)))+ (inputs+ `(("appstream" ,appstream)+ ("dbus" ,dbus)+ ("glib" ,glib)+ ("kconfig" ,kconfig)+ ("kcoreaddons" ,kcoreaddons)+ ("kio" ,kio)+ ("libcloudproviders" ,libcloudproviders)+ ("openssl" ,openssl)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("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 license:gpl2+)))-- 2.30.0
R
R
Raghav Gururajan wrote on 16 Jan 11:09 +0100
Nextcloud Desktop (v4)
(address . 45889@debbugs.gnu.org)
cbbd5681-b777-2e08-7220-3281e31db3a9@raghavgururajan.name
From 61c8855b31df21363a92e8b2bbf5d70ab977d874 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 6dd37005ae..a65cc9bd90 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From b45173115d454b635d24952236d740bb3e28bdc6 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] gnu: Add nextcloud-desktop.
* gnu/packages/nextcloud.scm: New module.* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.* gnu/packages/nextcloud.scm (nextcloud-desktop): New variable.--- gnu/local.mk | 1 + gnu/packages/nextcloud.scm | 134 +++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (154 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 747cbb1da7..9c155fff73 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.scmnew file mode 100644index 0000000000..355bf3e930--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,134 @@+;;; 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-desktop+ (package+ (name "nextcloud-desktop")+ (version "3.1.1")+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/nextcloud/desktop.git")+ (commit+ (string-append "v" version))))+ (file-name+ (git-file-name name version))+ (sha256+ (base32 "1ba9z1kv3wlrmaxsn442vn0inzbd0smvq4xkavarn1h8i0dm62hb"))))+ (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 'remove-thirdparty+ (lambda _+ (with-directory-excursion "src/3rdparty"+ (for-each delete-file-recursively+ (list+ "libcrashreporter-qt"+ "sqlite3")))+ #t))+ (add-after 'remove-thirdparty 'patch-plugin-dirs+ (lambda* (#:key outputs #:allow-other-keys)+ (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\")"))+ (substitute* "shell_integration/dolphin/CMakeLists.txt"+ (("ON CACHE")+ "OFF CACHE"))+ #t))+ (add-before 'check 'pre-check+ (lambda _+ (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)+ ("sphinx" ,python-sphinx)))+ (inputs+ `(("appstream" ,appstream)+ ("glib" ,glib)+ ("kconfig" ,kconfig)+ ("kcoreaddons" ,kcoreaddons)+ ("kio" ,kio)+ ("libcloudproviders" ,libcloudproviders)+ ("openssl" ,openssl)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("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 license:gpl2+)))-- 2.30.0
N
N
Nicolò Balzarotti wrote on 16 Jan 11:48 +0100
87o8hp6tu7.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me
Raghav Gururajan <rg@raghavgururajan.name> writes:
Hi!
Toggle quote (2 lines)> Please find the attached patch-set to add Nextcloud desktop application > to guix.
I usually don't do patch review, so don't weight too much my comments.
Why is it placed inside a new module? It should fit nicely in sync.scm
Toggle quote (1 lines)> + (url "https://github.com/nextcloud/desktop.git")
.git shouldn't be needed
Toggle quote (1 lines)> + (base32 "1ba9z1kv3wlrmaxsn442vn0inzbd0smvq4xkavarn1h8i0dm62hb"))))
This hash is wrong, I get 022k7b3c30dymrjc1g3ly2cac1c34gkqnvjya6p7w2j3qw2w1dm2
Toggle quote (5 lines)> + (with-directory-excursion "src/3rdparty"> + (for-each delete-file-recursively> + (list> + "libcrashreporter-qt"> + "sqlite3")))
This can be expressed in terms of what you you are keeping instead.
Something along the line of:
(let ((preserved-3rdparty-files '("QProgressIndicator" "qtlockedfile" "qtokenizer" "qtsingleapplication" "kmessagewidget"))) (with-directory-excursion "src/3rdparty" (for-each (lambda (directory) (simple-format #t "deleting: ~A\n" directory) (delete-file-recursively directory)) (lset-difference string=? (scandir ".") (cons* "." ".." preserved-3rdparty-files)))) #t)
Toggle quote (5 lines)> + (add-after 'remove-thirdparty 'patch-plugin-dirs> + (lambda* (#:key outputs #:allow-other-keys)> + (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"> + (("PKGCONFIG_GETVAR\\(dbus-1 session_bus_services_dir> _install_dir\\)")
This line is too long, you can use something like("PKGCONFIG_GETVAR\\(.*") instead.
Toggle quote (1 lines)> + "set(_install_dir> \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))
Other long line, maybe string-append.
Toggle quote (5 lines)> + (substitute* "shell_integration/dolphin/CMakeLists.txt"> + (("ON CACHE")> + "OFF CACHE"))> + #t))
Why?
Toggle quote (5 lines)> + (add-before 'check 'pre-check> + (lambda _> + (setenv "HOME" (getcwd))> + #t))
It's missing a comment on why this is needed (like qttest tries to create$HOME/.qttest/config/autostart/)
Toggle quote (2 lines)> + (license license:gpl2+)))
Unbundled dependencies have different licensesQprogressIndicator is under expat while others lgpl2.1+ if I'm not wrong
Also, I tried removing ruby and python-sphinx from the dependencies andit did build fine, so be sure all of them are needed (or are they usedfor some optional feature?).
Thanks
R
R
Raghav Gururajan wrote on 16 Jan 15:34 +0100
Nextcloud Desktop (v5)
(address . 45889@debbugs.gnu.org)
172c0f0e-d8c8-01e5-e8ec-8f73a64c63bf@raghavgururajan.name
From 61c8855b31df21363a92e8b2bbf5d70ab977d874 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 6dd37005ae..a65cc9bd90 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From eebddbfb83bc58f05f8926deb197839c00133a33 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] gnu: Add nextcloud-desktop.
* gnu/packages/nextcloud.scm: New module.* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.* gnu/packages/nextcloud.scm (nextcloud-desktop): New variable.--- gnu/local.mk | 1 + gnu/packages/nextcloud.scm | 148 +++++++++++++++++++++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (168 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 747cbb1da7..9c155fff73 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.scmnew file mode 100644index 0000000000..abf33cdc6b--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,148 @@+;;; 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-desktop+ (package+ (name "nextcloud-desktop")+ (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"))))+ (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 'remove-thirdparty+ (lambda _+ (with-directory-excursion "src/3rdparty"+ (for-each delete-file-recursively+ ;; Keep QProgressIndicator, KMessageWidget+ ;; QtLockedFile, Qtokenizer and QtSingleApplication,+ ;; as they are not available in Guix.+ ;; LibCrashReporter-Qt has it's own bundled 3rdparty stuff.+ ;; SQLite is available in Guix.+ (list+ "libcrashreporter-qt"+ "sqlite3")))+ #t))+ (add-after 'remove-thirdparty '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)+ ("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
R
R
Raghav Gururajan wrote on 16 Jan 15:42 +0100
Re: [bug#45889] Nextcloud Desktop (v4)
0ac1a1a7-825a-0737-268f-b41502db0045@raghavgururajan.name
Hi Nicolò!
Toggle quote (2 lines)> Why is it placed inside a new module? It should fit nicely in sync.scm
Nextcloud is a big project. There will be other packages like server, plugins etc., which can then be added to this module. Concept is similar to linphone.scm.
Toggle quote (2 lines)> .git shouldn't be needed
Updated in v5.
Toggle quote (2 lines)> This hash is wrong, I get 022k7b3c30dymrjc1g3ly2cac1c34gkqnvjya6p7w2j3qw2w1dm2
Updated in v5.
Toggle quote (15 lines)> Something along the line of:> > (let ((preserved-3rdparty-files> '("QProgressIndicator" "qtlockedfile" "qtokenizer"> "qtsingleapplication" "kmessagewidget")))> (with-directory-excursion "src/3rdparty"> (for-each> (lambda (directory)> (simple-format #t "deleting: ~A\n" directory)> (delete-file-recursively directory))> (lset-difference string=?> (scandir ".")> (cons* "." ".." preserved-3rdparty-files))))> #t)
The snippet didn't work, but I added comments in v5.
Toggle quote (3 lines)> This line is too long, you can use something like> ("PKGCONFIG_GETVAR\\(.*") instead.
If I use this, it causes parsing error.
Toggle quote (2 lines)> Other long line, maybe string-append.
Ah, I have been advised before not to break lines like this via string-append.
Toggle quote (2 lines)> Why?
Added comments in v5.
Toggle quote (4 lines)> It's missing a comment on why this is needed (like qttest tries to create> $HOME/.qttest/config/autostart/)>> + (license license:gpl2+)))
Added comments in v5.
Toggle quote (3 lines)> Unbundled dependencies have different licenses> QprogressIndicator is under expat while others lgpl2.1+ if I'm not wrong
Updated in v5.
Toggle quote (4 lines)> Also, I tried removing ruby and python-sphinx from the dependencies and> it did build fine, so be sure all of them are needed (or are they used> for some optional feature?).
Ruby is for patch-shebangs phase. Sphinx was looked for during configure phase, but doesn't seem to do anything, so I removed it in v5.
Thanks so much for the review. :-)
Regards,RG.
R
R
Raghav Gururajan wrote on 17 Jan 15:44 +0100
Nextcloud Client (v6)
(address . 45889@debbugs.gnu.org)
7d0357f6-4913-7c4d-1bfb-7af562c4041f@raghavgururajan.name
From 0f643d59bd13b07175dce772d922f216456d9025 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 15/15] 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 | 149 +++++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (169 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 747cbb1da7..9c155fff73 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.scmnew file mode 100644index 0000000000..1f0906470e--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,149 @@+;;; 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)+ ("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
From 4865aa2f435817a0cbcaddf1c75459894a63bb82 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 14/15] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 6dd37005ae..a65cc9bd90 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
R
R
Raghav Gururajan wrote on 18 Jan 10:39 +0100
Nextcloud Client
(address . control@debbugs.gnu.org)
cdf2ee01-7471-94b2-5080-06df3c8eaced@raghavgururajan.name
retitle 45889 Nextcloud Client
R
R
Raghav Gururajan wrote on 1 Feb 16:07 +0100
Re: [bug#45889] Nextcloud Client (v6)
(name . david larsson)(address . david.larsson@selfhosted.xyz)
6fed2af8-4ca6-9269-2c99-10999a1dde46@raghavgururajan.name
Hi David!
Toggle quote (6 lines)> Thank you for working on this! I have tried to package this myself but > haven't much success beyond being able to login and sync things and to > receive notifications via libnotify. However, this patch also doesn't > succeeed in a fully functional nextcloud-desktop, yet - though I hope > you do succeed!
I can confirm that this patch-set is functional. I haven't faced any issues. Please let me know which function(s) didn't work for you. I'll look into them. :-)
Toggle quote (5 lines)> I tried this out, and started it with --log-window (or similar) and it > complained about qt-graphical-effect, so I suggest you add it to > propagated-inputs to have that error go away. And as a general tip - > start nextcloud-desktop with the log-window flag.
Ah thanks! Yeah, it needed qtgraphicaleffects. Added them in v7. Also, the application excepts that the system runs either gnome-keyring or kwallet.
Regards,RG.
Attachment: OpenPGP_signature
R
R
Raghav Gururajan wrote on 1 Feb 16:13 +0100
Nextcloud Client (v7)
(address . 45889@debbugs.gnu.org)
609483b4-c583-cbf0-4b2a-4daf6c4feb98@raghavgururajan.name
From 96567208d08fc5692d721bb54488b7261eba3396 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/3] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 09db6de783..921094f6de 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From 1f8ae09541505a39e2e011bce6fb6fdf12a5bde7 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Sat, 30 Jan 2021 11:42:12 -0500Subject: [PATCH 2/3] gnu: kwayland: Disable failing tests.
* gnu/packages/kde-frameworks.scm (kwayland) [arguments]<#:phases>['disable-failing-tests]: New phase.--- gnu/packages/kde-frameworks.scm | 6 ++++++ 1 file changed, 6 insertions(+)
Toggle diff (19 lines)diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scmindex 8c2028b978..cf5840f3f3 100644--- a/gnu/packages/kde-frameworks.scm+++ b/gnu/packages/kde-frameworks.scm@@ -1049,6 +1049,12 @@ integration with a custom editor as well as a ready-to-use (arguments `(#:phases (modify-phases %standard-phases+ (add-after 'unpack 'disable-failing-tests+ (lambda _+ (substitute* "autotests/client/CMakeLists.txt"+ ((" add_test\\(NAME kwayland-testPlasmaWindowModel COMMAND testPlasmaWindowModel\\)")+ ""))+ #t)) (add-before 'check 'check-setup (lambda _ (setenv "XDG_RUNTIME_DIR" "/tmp")-- 2.30.0
From d8d102622331390726068dc6f82acf23ebb97734 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [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
Toggle diff (170 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 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.scmnew file mode 100644index 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
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 9 Feb 11:22 +0100
8b239920351c99a887835c98fd9a3892b9cfd0f5.camel@student.tugraz.at
Hello,
Am Montag, den 01.02.2021, 10:13 -0500 schrieb Raghav Gururajan:
Toggle quote (1 lines)> Subject: [PATCH 1/3] gnu: Add appstream.
Mostly LGTM.
Toggle quote (2 lines)> + (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 shouldbe the default.
Toggle quote (1 lines)> Subject: [PATCH 2/3] gnu: kwayland: Disable failing tests.
LGTM, we might want to push that independently.
Toggle quote (4 lines)> + (let ((keep '( ;; Not available in Guix.> + "QProgressIndicator" "kmessagewidget"> "qtlockedfile"> + "qtokenizer" "qtsingleapplication")))
Could you try packaging those for Guix as well?
Toggle quote (8 lines)> + #: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 wronghere.
Toggle quote (4 lines)> + (("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.
Toggle quote (5 lines)> + ;; 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 asingle message as you're already using a "patches as attachments"style. Having everything in a single message makes it a little easierfor me to respond and Evolution can save all attachments to a directoryjust fine.
Regards,Leo
L
L
Leo Prikler wrote on 9 Feb 13:53 +0100
6cb70873281335aa8dca026dcd3c91e64d2d9e93.camel@student.tugraz.at
Am Montag, den 01.02.2021, 10:13 -0500 schrieb Raghav Gururajan:
Toggle quote (1 lines)> 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 skipthis patch if you don't want to investigate further. If you do want toinvestigate further, I suggest doing those patches separately fromNextcloud.
Toggle quote (12 lines)> 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
R
R
Raghav Gururajan wrote on 13 Feb 21:36 +0100
Re: Nextcloud Client (v8)
3c07544c-97fe-88b1-2e80-ec5cfb87d4ec@raghavgururajan.name
Hi Leo!
Toggle quote (4 lines)> 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.
Yes, it is used to generate `.cmake` files inder '[out]/lib/cmake'.
Toggle quote (2 lines)> Could you try packaging those for Guix as well?
They don't have dedicated build scripts.
Toggle quote (3 lines)> As with your telegram patch, I personally think the ordering is wrong> here.
I changed it in v8.
Toggle quote (2 lines)> You might want to regexp the middle part in case it is changed.
I could use PKGCONFIG_GETVAR\\(.+\\) but that would conflict with other PKGCONFIG_GETVAR lines now or in future.
Toggle quote (2 lines)> What does this achieve exactly?
It configures the build-system to install modules in output "out" instead of Qt's (input) path.
I have attached v8 with this email.
Regards,RG.
From f1d8d53754578c01023535625d7f58ecbcd8fe96 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 56e53a73e2..e8fed74170 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From 8f8c9e98ffd7bbb16738d9bd5836fb723731c5e7 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] 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
Toggle diff (170 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex ad6e02116e..56cf470a2d 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.scmnew file mode 100644index 0000000000..2e1e694ad0--- /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+ ((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))+ #: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
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 13 Feb 22:47 +0100
73f0495c29ee82c2a16a96cc2825f19bd88b4ab4.camel@student.tugraz.at
Hi Raghav,
Am Samstag, den 13.02.2021, 15:36 -0500 schrieb Raghav Gururajan:
Toggle quote (9 lines)> Hi Leo!> > > 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.> > Yes, it is used to generate `.cmake` files inder '[out]/lib/cmake'.
Fair enough.
Toggle quote (3 lines)> > Could you try packaging those for Guix as well?> > They don't have dedicated build scripts.
That may be an issue. You might want to check which of those areperhaps optional, so that you don't need to pull them in. For exampleit appears you're also deleting libcrashreporter-qt with noreplacement.
kmessagewidget appears to be a part of KDE core. If anything there isstrictly necessary for building, we should perhaps define a packagevariant, that has a slightly patched kmessagewidget. qtlockedfile andqtsingleapplication appear to be part of [1], a sort of metapackage,from which you could spawn multiple descriptions. For qtokenizer, I amreally not sure.
Toggle quote (5 lines)> > As with your telegram patch, I personally think the ordering is> > wrong> > here.> > I changed it in v8.
LGTM.
Toggle quote (5 lines)> > You might want to regexp the middle part in case it is changed.> > I could use PKGCONFIG_GETVAR\\(.+\\) but that would conflict with> other > PKGCONFIG_GETVAR lines now or in future.
Okay, but you can do something like PKGCONFIG_GETVAR\\(.+_install_dir\\), assuming that such variables should generally only bebound once. To be honest, I don't know enough CMake to tell, whetherthat is a good idea, however.
Toggle quote (4 lines)> > What does this achieve exactly?> > It configures the build-system to install modules in output "out" > instead of Qt's (input) path.
In that case, the comment should probably read something along thelines of "Make sure, that <X> is installed under $prefix."
Regards,Leo
[1] https://github.com/qtproject/qt-solutions
R
R
Raghav Gururajan wrote on 14 Feb 00:54 +0100
8f88bef4-cf4d-5bcc-e0bb-979dc0ce1efd@raghavgururajan.name
Hi Leo!
Toggle quote (5 lines)> That may be an issue. You might want to check which of those are> perhaps optional, so that you don't need to pull them in. For example> it appears you're also deleting libcrashreporter-qt with no> replacement.
I tried building with each one of them, but build fails without them (except libcrashreporter-qt).
Toggle quote (7 lines)> kmessagewidget appears to be a part of KDE core. If anything there is> strictly necessary for building, we should perhaps define a package> variant, that has a slightly patched kmessagewidget. qtlockedfile and> qtsingleapplication appear to be part of [1], a sort of metapackage,> from which you could spawn multiple descriptions. For qtokenizer, I am> really not sure.
Thanks for the info. This package doesn't have an option or code to use packaged ones.
Toggle quote (5 lines)> Okay, but you can do something like PKGCONFIG_GETVAR\\(.+> _install_dir\\), assuming that such variables should generally only be> bound once. To be honest, I don't know enough CMake to tell, whether> that is a good idea, however.
Changed in v9.
Toggle quote (3 lines)> In that case, the comment should probably read something along the> lines of "Make sure, that <X> is installed under $prefix."
Changed in v9.
v9 is attached.
Regards,RG.
From f1d8d53754578c01023535625d7f58ecbcd8fe96 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 56e53a73e2..e8fed74170 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From 8f8c9e98ffd7bbb16738d9bd5836fb723731c5e7 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] 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
Toggle diff (170 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex ad6e02116e..56cf470a2d 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.scmnew file mode 100644index 0000000000..2e1e694ad0--- /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+ ((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))+ #: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
Attachment: OpenPGP_signature
R
R
Raghav Gururajan wrote on 14 Feb 01:47 +0100
Re: Nextcloud Client (v9)
a580c14f-a351-9d1b-345b-a882ebdd93da@raghavgururajan.name
Hi Leo!
Toggle quote (2 lines)> v9 is attached.
Attached wrong ones there, here are the correct ones.
Regards,RG.
From f1d8d53754578c01023535625d7f58ecbcd8fe96 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex 56e53a73e2..e8fed74170 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.0
From 0229444a24ba11a6764f5b6952a2aa9cd86e25eb Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] 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 | 158 +++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (178 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex ad6e02116e..56cf470a2d 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.scmnew file mode 100644index 0000000000..fac80485f7--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,158 @@+;;; 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 python-xyz)+ #: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.2")+ (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 "10f9kmbn7s3hlkg1pv4kjflzh0159psrilci56kg4s2m49andhbs"))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #: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\\(.+_install_dir\\)")+ "set(_install_dir \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("kjs" ,kjs)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("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
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 14 Feb 11:53 +0100
Re: Nextcloud Client (v8)
f831226a3e96539ceae6467436c60988a08a33c5.camel@student.tugraz.at
Hi Raghav,
Am Samstag, den 13.02.2021, 18:54 -0500 schrieb Raghav Gururajan:
Toggle quote (10 lines)> Hi Leo!> > > That may be an issue. You might want to check which of those are> > perhaps optional, so that you don't need to pull them in. For> > example> > it appears you're also deleting libcrashreporter-qt with no> > replacement.> > I tried building with each one of them, but build fails without them > (except libcrashreporter-qt).
Interesting. Is this due to CMakeLists picking up, that they'remissing and not replacing them with core stuff?
Toggle quote (13 lines)> > kmessagewidget appears to be a part of KDE core. If anything there> > is> > strictly necessary for building, we should perhaps define a package> > variant, that has a slightly patched kmessagewidget. qtlockedfile> > and> > qtsingleapplication appear to be part of [1], a sort of> > metapackage,> > from which you could spawn multiple descriptions. For qtokenizer,> > I am> > really not sure.> > Thanks for the info. This package doesn't have an option or code to> use packaged ones.
Perhaps you can patch the CMakeLists to add such support? Alternatively, you might want to delete them and unpack the upstreamones to their locations.
Toggle quote (8 lines)> > Okay, but you can do something like PKGCONFIG_GETVAR\\(.+> > _install_dir\\), assuming that such variables should generally only> > be> > bound once. To be honest, I don't know enough CMake to tell,> > whether> > that is a good idea, however.> > Changed in v9.
Note, that you're missing a space here. This would also matchPKGCONFIG_GETVAR(pkg var foobar_install_dir).
Toggle quote (4 lines)> > In that case, the comment should probably read something along the> > lines of "Make sure, that <X> is installed under $prefix."> > Changed in v9.
LGTM.
Regards,Leo
R
R
Raghav Gururajan wrote on 18 Feb 21:23 +0100
Re: Nextcloud Client (v10)
67f2ff73-c6e0-743f-d873-0a488fa05e31@raghavgururajan.name
Hi Leo!
Toggle quote (7 lines)> Interesting. Is this due to CMakeLists picking up, that they're> missing and not replacing them with core stuff?> > Perhaps you can patch the CMakeLists to add such support?> Alternatively, you might want to delete them and unpack the upstream> ones to their locations.
I have asked upstream and they are looking into providing options to use distribution packages. https://github.com/nextcloud/desktop/issues/2929#issuecomment-780548919
So once they update the source in the next-release, I will update the package and remove the 3rdparty directory completely. :-)
Toggle quote (3 lines)> Note, that you're missing a space here. This would also match> PKGCONFIG_GETVAR(pkg var foobar_install_dir).
Changed in v10.
V10 is attached.
Regards,RG.
From bd8daa06c1d956e472e40b889e4724f13a0ad2cd Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..bccd8e9b00 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From 77584aedececd4f0e364c4a5673594fb8c113937 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] 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 | 158 +++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (178 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex c3398c62fd..a9e0abe225 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.scmnew file mode 100644index 0000000000..38b3ea5e8f--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,158 @@+;;; 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 python-xyz)+ #: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.2")+ (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 "10f9kmbn7s3hlkg1pv4kjflzh0159psrilci56kg4s2m49andhbs"))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #: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\\(.+ _install_dir\\)")+ "set(_install_dir \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("kjs" ,kjs)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("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.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 18 Feb 23:26 +0100
29553b60ceb47530cd0bda7f84badb80b8daab74.camel@student.tugraz.at
Hi Raghav!
Am Donnerstag, den 18.02.2021, 15:23 -0500 schrieb Raghav Gururajan:
Toggle quote (14 lines)> Hi Leo!> > > Interesting. Is this due to CMakeLists picking up, that they're> > missing and not replacing them with core stuff?> > > > Perhaps you can patch the CMakeLists to add such support?> > Alternatively, you might want to delete them and unpack the> > upstream> > ones to their locations.> > I have asked upstream and they are looking into providing options to> use > distribution packages. > https://github.com/nextcloud/desktop/issues/2929#issuecomment-780548919
Good to know.
Toggle quote (3 lines)> So once they update the source in the next-release, I will update> the > package and remove the 3rdparty directory completely. :-)
In the meantime, would you mind packaging those 3rdparty sources fromtheir respective origins and add them in at build time? That way, allwe'd need to transition from pseudo-unbundled to actually unbundledwould be to drop one phase.
Toggle quote (4 lines)> > Note, that you're missing a space here. This would also match> > PKGCONFIG_GETVAR(pkg var foobar_install_dir).> > Changed in v10.
LGTM.
Regards,Leo
R
R
Raghav Gururajan wrote on 21 Feb 18:04 +0100
7d1a2db6-5da9-80f6-d160-128d2200935b@raghavgururajan.name
Hi Leo!
Toggle quote (5 lines)> In the meantime, would you mind packaging those 3rdparty sources from> their respective origins and add them in at build time? That way, all> we'd need to transition from pseudo-unbundled to actually unbundled> would be to drop one phase.
I was about to start doing it via 'copy-inputs, then noticed the source content differs with the ones at QtSolutions. The files of QtSingleApplication and QtLockedFile at QtSolutions were not modified for many years, whereas, the files of QtSingleApplication and QtLockedFile at nextcloud was last modified in 2020.
Regards,RG.
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 21 Feb 18:45 +0100
1c216cbfd761c8ce77b2402cf9a88ad8772b2331.camel@student.tugraz.at
Hi Raghav,
Am Sonntag, den 21.02.2021, 12:04 -0500 schrieb Raghav Gururajan:
Toggle quote (16 lines)> Hi Leo!> > > In the meantime, would you mind packaging those 3rdparty sources> > from> > their respective origins and add them in at build time? That way,> > all> > we'd need to transition from pseudo-unbundled to actually unbundled> > would be to drop one phase.> > I was about to start doing it via 'copy-inputs, then noticed the> source > content differs with the ones at QtSolutions. The files of > QtSingleApplication and QtLockedFile at QtSolutions were not> modified > for many years, whereas, the files of QtSingleApplication and > QtLockedFile at nextcloud was last modified in 2020.
Looking at QtSingleApplication, the changes made by Nextcloud seemrather cosmetic, so packaging the upstream version, which also had"cosmetic" changes to it since their shared ancestor should not be anissue.
Regards,Leo
R
R
Raghav Gururajan wrote on 21 Feb 19:09 +0100
Re: Nextcloud Client (v11)
15559ce0-8f6b-1ff7-e5d1-7c3f3f5292f9@raghavgururajan.name
Hi Leo!
Toggle quote (5 lines)> Looking at QtSingleApplication, the changes made by Nextcloud seem> rather cosmetic, so packaging the upstream version, which also had> "cosmetic" changes to it since their shared ancestor should not be an> issue.
Ah Cool!
I have attached v11.
Regards,RG.
From bd8daa06c1d956e472e40b889e4724f13a0ad2cd Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 2/3] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..bccd8e9b00 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From a6601db8975105332bfe322353ae045fff461928 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [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 | 158 +++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (178 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex c3398c62fd..a9e0abe225 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.scmnew file mode 100644index 0000000000..38b3ea5e8f--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,158 @@+;;; 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 python-xyz)+ #: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.2")+ (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 "10f9kmbn7s3hlkg1pv4kjflzh0159psrilci56kg4s2m49andhbs"))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #: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\\(.+ _install_dir\\)")+ "set(_install_dir \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("kjs" ,kjs)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("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.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 21 Feb 19:22 +0100
a12417aacdba96059634f679281904da7b321795.camel@student.tugraz.at
Hi Raghav,
Am Sonntag, den 21.02.2021, 13:09 -0500 schrieb Raghav Gururajan:
Toggle quote (9 lines)> Hi Leo!> > > Looking at QtSingleApplication, the changes made by Nextcloud seem> > rather cosmetic, so packaging the upstream version, which also had> > "cosmetic" changes to it since their shared ancestor should not be> > an> > issue.> > Ah Cool!
Just in case I've been unclear, "upstream" here means "not bundled".
Toggle quote (1 lines)> I have attached v11.
Did you by chance mess up the patch numbering?
Toggle quote (1 lines)> +(define-module (gnu packages nextcloud)
I just now noticed, that this would be a good fit for sync, whichalready hosts owncloud-client.
Toggle quote (1 lines)> + (version "3.1.2")
For the record, upstream updated to 3.1.3 three days ago. Time flies.
Regards,Leo
R
R
Raghav Gururajan wrote on 21 Feb 19:22 +0100
792b04ff-61bb-ab6f-46f7-9186be25ba7b@raghavgururajan.name
Hi Leo!
Toggle quote (2 lines)> I have attached v11.
Ignore v11. The build fails. There are missing classes in the QtSolutions source. So v10 is the viable patch-set.
Regards,RG.
Attachment: OpenPGP_signature
R
R
Raghav Gururajan wrote on 21 Feb 19:50 +0100
Re: Nextcloud Client (v12)
95a467cd-e1b8-9f68-588e-163a6105e891@raghavgururajan.name
Hi Leo!
Toggle quote (4 lines)>> +(define-module (gnu packages nextcloud)> I just now noticed, that this would be a good fit for sync, which> already hosts owncloud-client.
This new module is for nextcloud suite of packages. nextcloud-client, nextcloud-server, nextcloud-spreed, nextcloud-deck, nextcloud-news ... nextcloud-foobar.
Toggle quote (3 lines)>> + (version "3.1.2")> For the record, upstream updated to 3.1.3 three days ago. Time flies.
Wow! Okay, I have made v12.
Regards,RG.
From d4b271d3fcff56c27e6ee0222e688aad4b78a8eb Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..bccd8e9b00 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From e0b64a0f8198fb48201c17e9459df8cae1da7a04 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] 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 | 158 +++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (178 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex c3398c62fd..a9e0abe225 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.scmnew file mode 100644index 0000000000..06a6f8fe20--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,158 @@+;;; 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 python-xyz)+ #: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.3")+ (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 "15ymk3gvfmgwzmqbhlw7jjy9y65ib3391h1dlmpll65iaj2miajk"))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #: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\\(.+ _install_dir\\)")+ "set(_install_dir \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("kjs" ,kjs)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("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.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 21 Feb 20:37 +0100
f8fc183a9f28096a1f587860828ca4c30db337ab.camel@student.tugraz.at
Am Sonntag, den 21.02.2021, 13:50 -0500 schrieb Raghav Gururajan:
Toggle quote (11 lines)> Hi Leo!> > > > +(define-module (gnu packages nextcloud)> > I just now noticed, that this would be a good fit for sync, which> > already hosts owncloud-client.> > This new module is for nextcloud suite of packages. nextcloud-> client, > nextcloud-server, nextcloud-spreed, nextcloud-deck, nextcloud-news> ... > nextcloud-foobar.
Still seems pretty sync to me, especially since it's just the clientfor now.
Toggle quote (1 lines)> There are missing classes in the QtSolutions source.
(X) Doubt
It appears the Nextcloud variant has an added namespace layer, that oneshould easily be able to strip via substitute*. I do wonder where thatcomes from, though, it seems to have been there "forever".
Regards,Leo
R
R
Raghav Gururajan wrote on 22 Feb 18:29 +0100
Re: Nextcloud Client (v13)
12599035-d671-b417-d70c-89d694f3ccd9@raghavgururajan.name
Hi Leo!
Toggle quote (3 lines)> Still seems pretty sync to me, especially since it's just the client> for now.
Circular-dependency when putting it in sync.scm. So we'll keep it as is I guess.
Toggle quote (6 lines)> (X) Doubt> > It appears the Nextcloud variant has an added namespace layer, that one> should easily be able to strip via substitute*. I do wonder where that> comes from, though, it seems to have been there "forever".
No idea! Thanks for fixing the build errors.
Also, I cannot package them separately because the build script is not viable. No libraries gets built, except for .o files. Also, INSTALL.txt deals with Windows and MacOS.
I have attached v13.
Regards,RG.
From d4b271d3fcff56c27e6ee0222e688aad4b78a8eb Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..bccd8e9b00 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From dd9028ea1babf23ad23c08d19c8146c77e937479 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Fri, 15 Jan 2021 05:04:31 -0500Subject: [PATCH 2/2] 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 | 190 +++++++++++++++++++++++++++++++++++++ 2 files changed, 191 insertions(+) create mode 100644 gnu/packages/nextcloud.scm
Toggle diff (210 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex c3398c62fd..a9e0abe225 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.scmnew file mode 100644index 0000000000..d172f3214f--- /dev/null+++ b/gnu/packages/nextcloud.scm@@ -0,0 +1,190 @@+;;; 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 python-xyz)+ #: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.3")+ (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 "15ymk3gvfmgwzmqbhlw7jjy9y65ib3391h1dlmpll65iaj2miajk"))+ (modules '((guix build utils)+ (ice-9 ftw)+ (srfi srfi-1)))+ (snippet+ `(begin+ (let ((keep '( ;; Not available in Guix.+ "QProgressIndicator"+ "kmessagewidget" "qtokenizer")))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (let* ((qtsolutions (assoc-ref inputs "qtsolutions")))+ (for-each+ (lambda (dir)+ (copy-recursively+ (string-append qtsolutions "/" dir "/src")+ (string-append "src/3rdparty/" dir)))+ '("qtlockedfile" "qtsingleapplication")))+ (with-directory-excursion "src/gui"+ (substitute* `("application.h" "application.cpp")+ (("SharedTools::QtSingleApplication") "QtSingleApplication")+ (("slotParseMessage\\(const QString &(msg)?.*\\)")+ "slotParseMessage(const QString &msg)")))+ #t))+ (add-after 'unpack 'patch-cmake+ (lambda* (#:key outputs #:allow-other-keys)+ ;; Patch install directory for dbus service files.+ (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"+ (("PKGCONFIG_GETVAR\\(.+ _install_dir\\)")+ "set(_install_dir \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))+ ;; Make sure, that Qt modules are installed under $prefix.+ (substitute* "shell_integration/dolphin/CMakeLists.txt"+ (("ON CACHE")+ "OFF CACHE"))+ #t))+ (add-after 'patch-plugin-dirs 'fix-build+ (lambda _+ (with-directory-excursion "src/gui"+ (substitute* `("application.h" "application.cpp")+ (("SharedTools::")+ "")))+ #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)+ ("qtsolutions"+ ,(origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/qtproject/qt-solutions")+ (commit "9568abd142d581b67b86a5f63d823a34b0612702")))+ (file-name+ (git-file-name "qtsolutions" "9568abd"))+ (sha256+ (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n"))))+ ("qttools" ,qttools)+ ("ruby" ,ruby)))+ (inputs+ `(("appstream" ,appstream)+ ("glib" ,glib)+ ("kconfig" ,kconfig)+ ("kcoreaddons" ,kcoreaddons)+ ("kio" ,kio)+ ("kjs" ,kjs)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("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.1
Attachment: OpenPGP_signature
R
R
Raghav Gururajan wrote on 23 Feb 15:27 +0100
Re: Nextcloud Client (v14)
f6b95086-a9db-4bea-7b4d-9bb418b717e2@raghavgururajan.name
From d4b271d3fcff56c27e6ee0222e688aad4b78a8eb Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/2] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..bccd8e9b00 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From b3df8c3b3f5d3e3cc286b95df1928c81edba3556 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Tue, 23 Feb 2021 08:24:47 -0500Subject: [PATCH 2/2] gnu: Add nextcloud-client.
* gnu/packages/sync.scm (nextcloud-client): New variable.--- gnu/packages/sync.scm | 148 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+)
Toggle diff (185 lines)diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scmindex f3d6e9013c..a3a1dda240 100644--- a/gnu/packages/sync.scm+++ b/gnu/packages/sync.scm@@ -28,6 +28,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson)+ #:use-module (guix build-system qt) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages)@@ -40,8 +41,11 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages documentation)+ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib)+ #:use-module (gnu packages gnome) #:use-module (gnu packages golang)+ #:use-module (gnu packages graphviz) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux)@@ -49,14 +53,158 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config)+ #:use-module (gnu packages python)+ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages rsync)+ #:use-module (gnu packages ruby) #:use-module (gnu packages selinux) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls)) +(define-public nextcloud-client+ (package+ (name "nextcloud-client")+ (version "3.1.3")+ (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 "15ymk3gvfmgwzmqbhlw7jjy9y65ib3391h1dlmpll65iaj2miajk"))+ (modules '((guix build utils)+ (ice-9 ftw)+ (srfi srfi-1)))+ (snippet+ `(begin+ (let ((keep '( ;; Not available in Guix.+ "QProgressIndicator"+ "kmessagewidget" "qtokenizer")))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (let* ((qtsolutions (assoc-ref inputs "qtsolutions")))+ (for-each+ (lambda (dir)+ (copy-recursively+ (string-append qtsolutions "/" dir "/src")+ (string-append "src/3rdparty/" dir)))+ '("qtlockedfile" "qtsingleapplication")))+ (with-directory-excursion "src/gui"+ (substitute* `("application.h" "application.cpp")+ (("SharedTools::QtSingleApplication") "QtSingleApplication")+ (("slotParseMessage\\(const QString &(msg)?.*\\)")+ "slotParseMessage(const QString &msg)")))+ #t))+ (add-after 'patch-source 'patch-cmake+ (lambda* (#:key outputs #:allow-other-keys)+ ;; Patch install directory for dbus service files.+ (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"+ (("PKGCONFIG_GETVAR\\(.+ _install_dir\\)")+ "set(_install_dir \"${CMAKE_INSTALL_PREFIX}/share/dbus-1/services\")"))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("qtsolutions"+ ,(origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/qtproject/qt-solutions")+ (commit "9568abd142d581b67b86a5f63d823a34b0612702")))+ (file-name+ (git-file-name "qtsolutions" "9568abd"))+ (sha256+ (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n"))))+ ("qttools" ,qttools)+ ("ruby" ,ruby)))+ (inputs+ `(("appstream" ,appstream)+ ("glib" ,glib)+ ("kconfig" ,kconfig)+ ("kcoreaddons" ,kcoreaddons)+ ("kio" ,kio)+ ("kjs" ,kjs)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("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+))))+ (define-public megacmd (package (name "megacmd")-- 2.30.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 23 Feb 18:58 +0100
df1c11b05a7a2920efe4859a9cf8ad66ee4dbf93.camel@student.tugraz.at
Hi Raghav,
Am Dienstag, den 23.02.2021, 09:27 -0500 schrieb Raghav Gururajan:
Toggle quote (13 lines)> + (let* ((qtsolutions (assoc-ref inputs "qtsolutions")))> + (for-each> + (lambda (dir)> + (copy-recursively> + (string-append qtsolutions "/" dir "/src")> + (string-append "src/3rdparty/" dir)))> + '("qtlockedfile" "qtsingleapplication")))> + (with-directory-excursion "src/gui"> + (substitute* `("application.h" "application.cpp")> + (("SharedTools::QtSingleApplication")> "QtSingleApplication")> + (("slotParseMessage\\(const QString &(msg)?.*\\)")> + "slotParseMessage(const QString &msg)")))
Being the one who helped review this, I of course know, what it does,but others might not, so this probably deserves a (short) comment.
Toggle quote (12 lines)> + ("qtsolutions"> + ,(origin> + (method git-fetch)> + (uri> + (git-reference> + (url "https://github.com/qtproject/qt-solutions")> + (commit "9568abd142d581b67b86a5f63d823a34b0612702")))> + (file-name> + (git-file-name "qtsolutions" "9568abd"))> + (sha256> + (base32> "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n"))))
I'm still not convinced, that this can't be made a package or perhapsmultiple packages, one per "solution". Each of the folder seems tocontain a project file, which to be fair do have some non-Unix-relatedinstall declarations, but it should at least install a staticallylinked package *somewhere*. We can go from there.
Alternatively, as I see this as a source, that will get copied aroundin the same way I copied libgd from gedit, you can at least extract theorigin into a function in qt.scm, potentially named qt-solutions.
Regards,Leo
R
R
Raghav Gururajan wrote on 9 Mar 07:00 +0100
Re: Nextcloud Client (v15)
e6a29632-3161-a559-fc6d-fed0a928ffde@raghavgururajan.name
Hi Leo!
Toggle quote (11 lines)> I'm still not convinced, that this can't be made a package or perhaps> multiple packages, one per "solution". Each of the folder seems to> contain a project file, which to be fair do have some non-Unix-related> install declarations, but it should at least install a statically> linked package *somewhere*. We can go from there.> > Alternatively, as I see this as a source, that will get copied around> in the same way I copied libgd from gedit, you can at least extract the> origin into a function in qt.scm, potentially named qt-solutions.

In attached v15, I have:
[1] Packaged QtSolutions.[2] Removed QtLockedFile, QtSingleApplication, and KMessageWidget from 3rdparty.[3] Patched the source to use KMessageWidget from KWidgetsAddons, and, to use QtLockedFile and QtSingleApplication from QtSolutions.
\o/
Regards,RG.
From 2630078c89b3aedd305f20754502dc32467a947c Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/3] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..bccd8e9b00 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ ((" g_test_add_func \\(\"/AppStream/PoolRead\", test_pool_read\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolReadAsync\", test_pool_read_async\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/PoolEmpty\", test_pool_empty\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Cache\", test_cache\\);")+ "")+ ((" g_test_add_func \\(\"/AppStream/Merges\", test_merge_components\\);")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From 0b33f8d10fc3de8652932b46a485b78e7aa305c3 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Sun, 7 Mar 2021 10:44:55 -0500Subject: [PATCH 2/3] gnu: Add qtsolutions.
* gnu/packages/qt.scm (qtsolutions): New variable.--- gnu/packages/qt.scm | 110 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+)
Toggle diff (123 lines)diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scmindex c49251053d..66483f1c48 100644--- a/gnu/packages/qt.scm+++ b/gnu/packages/qt.scm@@ -105,6 +105,116 @@ #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) +(define-public qtsolutions+ (let ((commit "9568abd142d581b67b86a5f63d823a34b0612702")+ (revision "53"))+ (package+ (name "qtsolutions")+ (version+ (git-version "0" revision commit))+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://code.qt.io/qt-solutions/qt-solutions")+ (commit commit)))+ (file-name+ (git-file-name name version))+ (sha256+ (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n"))))+ (build-system gnu-build-system)+ (arguments+ `(#:tests? #f ; No target+ #:imported-modules+ ((guix build copy-build-system)+ ,@%gnu-build-system-modules)+ #:modules+ (((guix build copy-build-system)+ #:prefix copy:)+ (guix build gnu-build-system)+ (guix build utils))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* (find-files "." "common.pri")+ ;; Remove prefix in library names.+ (("qt5")+ "qt")+ ;; Remove suffix in library names.+ (("-head")+ "")+ ;; Generate libraries directly in output.+ (("\\$\\$PWD")+ (assoc-ref outputs "out")))+ ;; Disable building of examples.+ (substitute* (find-files "." "\\.pro$")+ (("SUBDIRS\\+=examples")+ ""))+ ;; Fix deprecated functions.+ (substitute* "qtsoap/src/qtsoap.cpp"+ (("toAscii")+ "toLatin1"))+ #t))+ (replace 'configure+ (lambda _+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (invoke "./configure" "-library")+ (invoke "qmake")))+ (list+ "qtlockedfile"+ "qtpropertybrowser"+ "qtservice"+ "qtsingleapplication"+ "qtsoap"))+ #t))+ (replace 'build+ (lambda _+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (invoke "make")))+ (list+ "qtlockedfile"+ "qtpropertybrowser"+ "qtservice"+ "qtsingleapplication"+ "qtsoap"))+ #t))+ (replace 'install+ (lambda args+ (apply (assoc-ref copy:%standard-phases 'install)+ #:install-plan+ '(("qtlockedfile/src" "include/qtlockedfile"+ #:include-regexp ("\\.h$"))+ ("qtpropertybrowser/src" "include/qtpropertybrowser"+ #:include-regexp ("\\.h$"))+ ("qtservice/src" "include/qtservice"+ #:include-regexp ("\\.h$"))+ ("qtsingleapplication/src" "include/qtsingleapplication"+ #:include-regexp ("\\.h$"))+ ("qtsoap/src" "include/qtsoap"+ #:include-regexp ("\\.h$")))+ args))))))+ (inputs+ `(("qtbase" ,qtbase)))+ (synopsis "Qt Solutions")+ (description "QtSolutions are set of components that extends Qt.+@itemize+@item QtLockedFile: A class that extends QFile with advisory locking functions.+@item QtPropertyBrowser: A framework that enables the user to edit a set of+properties.+@item QtService: A component useful for developing Windows services and Unix+daemons.+@item QtSingleApplication: A component that provides support for applications+that can be only started once per user.+@item QtSoap: A component that provides basic web service support with version+1.1 of the SOAP protocol.+@end itemize\n")+ (home-page "https://doc.qt.io/archives/qq/qq09-qt-solutions.html")+ (license license:lgpl2.1+))))+ (define-public qite (let ((commit "75fb3b6bbd5c6a5a8fc35e08a6efbfb588ed546a") (revision "74"))-- 2.30.1
From 7bc3348585c325208fab89232f720d81fbaa5d0a Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Tue, 23 Feb 2021 08:24:47 -0500Subject: [PATCH 3/3] gnu: Add nextcloud-client.
* gnu/packages/sync.scm (nextcloud-client): New variable.--- gnu/packages/sync.scm | 159 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+)
Toggle diff (196 lines)diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scmindex 76b822ecbc..964746b1b2 100644--- a/gnu/packages/sync.scm+++ b/gnu/packages/sync.scm@@ -28,6 +28,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson)+ #:use-module (guix build-system qt) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages)@@ -40,8 +41,11 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages documentation)+ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib)+ #:use-module (gnu packages gnome) #:use-module (gnu packages golang)+ #:use-module (gnu packages graphviz) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux)@@ -49,14 +53,169 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config)+ #:use-module (gnu packages python)+ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages rsync)+ #:use-module (gnu packages ruby) #:use-module (gnu packages selinux) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls)) +(define-public nextcloud-client+ (package+ (name "nextcloud-client")+ (version "3.1.3")+ (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 "15ymk3gvfmgwzmqbhlw7jjy9y65ib3391h1dlmpll65iaj2miajk"))+ (modules '((guix build utils)+ (ice-9 ftw)+ (srfi srfi-1)))+ (snippet+ `(begin+ (let* ((keep+ ;; Not available in Guix.+ (list+ "QProgressIndicator"+ "qtokenizer")))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (with-directory-excursion "src/gui"+ (substitute* "CMakeLists.txt"+ ((" \\.\\./3rdparty/qtlockedfile/?.*")+ "")+ ((" \\.\\./3rdparty/qtsingleapplication/?.*")+ "")+ ((" \\.\\./3rdparty/kmessagewidget/?.*")+ "")+ ((" list\\(APPEND 3rdparty_SRC \\.\\./3rdparty/?.*\\)")+ "")+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtlockedfile")+ (string-append (assoc-ref inputs "qtsolutions")+ "/include/qtlockedfile/"))+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtsingleapplication")+ (string-append (assoc-ref inputs "qtsolutions")+ "/include/qtsingleapplication/"))+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/kmessagewidget")+ (string-append (assoc-ref inputs "kwidgetsaddons")+ "/include/KF5/KWidgetsAddons/"))+ (("\\$\\{synclib_NAME\\}")+ (string-append "${synclib_NAME} "+ "QtSolutions_LockedFile "+ "QtSolutions_SingleApplication "+ "KF5WidgetsAddons")))+ (substitute* '("application.h" "application.cpp")+ (("SharedTools::QtSingleApplication")+ "QtSingleApplication")+ (("slotParseMessage\\(const QString &(msg)?.*\\)")+ "slotParseMessage(const QString &msg)")))+ #t))+ (add-after 'patch-source 'patch-cmake+ (lambda* (#:key outputs #:allow-other-keys)+ ;; Patch install directory for dbus service files.+ (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"+ (("PKGCONFIG_GETVAR\\(.+ _install_dir\\)")+ (string-append "set(_install_dir \"${CMAKE_INSTALL_PREFIX}"+ "/share/dbus-1/services\")")))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("kjs" ,kjs)+ ("kwidgetsaddons" ,kwidgetsaddons)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsolutions" ,qtsolutions)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("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+))))+ (define-public megacmd (package (name "megacmd")-- 2.30.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 9 Mar 08:03 +0100
31701971d849e72506ed4105c92b2ad85d3aa6be.camel@student.tugraz.at
Hi Raghav,
Toggle quote (15 lines)> Subject: [PATCH 2/3] gnu: Add qtsolutions.> + (version> + (git-version "0" revision commit))
> + (file-name> + (git-file-name name version))
> + (("qt5")> + "qt")
> + (("-head")> + "")
> + (("SUBDIRS\\+=examples")> + ""))
Try not to arbitrarily use too many new lines. If you break Schemecode in such a manner for no good reason, it will look odd.
Toggle quote (2 lines)> + (("toAscii")> + "toLatin1"))
Why not to UTF-8? Is the input already UTF-8 and we want to convert itto a single-byte character set?
Toggle quote (2 lines)> + (("\\$\\$PWD")> + (assoc-ref outputs "out")))
You should install the shared libraries in the install phase.
Toggle quote (6 lines)> + (list> + "qtlockedfile"> + "qtpropertybrowser"> + "qtservice"> + "qtsingleapplication"> + "qtsoap")
Use '(...) for fixed input.
Toggle quote (13 lines)> Subject: [PATCH 3/3] gnu: Add nextcloud-client.> + (commit> + (string-append "v" version)))
> + ((" \\.\\./3rdparty/qtlockedfile/?.*")> + "")> + ((" \\.\\./3rdparty/qtsingleapplication/?.*")> + "")> + ((" \\.\\./3rdparty/kmessagewidget/?.*")> + "")> + ((" list\\(APPEND 3rdparty_SRC> \\.\\./3rdparty/?.*\\)")> + "")
I'm starting to grow a little suspicious about matching the leadingspaces. You probably want to lead this (and similar stuff in 0001)with [ \t]*.
Toggle quote (12 lines)> + (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtlockedf> ile")> + (string-append (assoc-ref inputs "qtsolutions")> + "/include/qtlockedfile/"))> + (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtsinglea> pplication")> + (string-append (assoc-ref inputs "qtsolutions")> + "/include/qtsingleapplication/"))> + (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/kmessagew> idget")> + (string-append (assoc-ref inputs "kwidgetsaddons")> + "/include/KF5/KWidgetsAddons/"))
LGTM, but probably deserves a comment.Also, you might skip the stuff leading up to /3rdparty, i.e. have".*/3rdparty/qtlockedfile", etc. Perhaps this gives you enough wiggleroom to do lockedfile and single application on the same line, but itdoesn't hurt if it doesn't.
Toggle quote (5 lines)> + (("\\$\\{synclib_NAME\\}")> + (string-append "${synclib_NAME} "> + "QtSolutions_LockedFile "> + "QtSolutions_SingleApplication "> + "KF5WidgetsAddons")))
Definitely deserves a comment and perhaps a less broad match?
Toggle quote (5 lines)> + (substitute* '("application.h" "application.cpp")> + (("SharedTools::QtSingleApplication")> + "QtSingleApplication")> + (("slotParseMessage\\(const QString &(msg)?.*\\)")> + "slotParseMessage(const QString &msg)")))
Also deserves a comment about QtSingleApplication differences.
Toggle quote (3 lines)> + (string-append "set(_install_dir> \"${CMAKE_INSTALL_PREFIX}"> + "/share/dbus-1/services\")")))
Would the raw string here exceed a line?
Toggle quote (2 lines)> + ;; All ThirdParty (except QtProgressIndicator)> + license:lgpl2.1+
This is now just qtokenizer, right?
Regards,Leo
R
R
Raghav Gururajan wrote on 9 Mar 11:50 +0100
Re: Nextcloud Client (v16)
f6b923c8-1f26-3d57-602e-83d9488a85e8@raghavgururajan.name
Hi Leo!
Toggle quote (3 lines)> Try not to arbitrarily use too many new lines. If you break Scheme> code in such a manner for no good reason, it will look odd.
Done.
Toggle quote (2 lines)> Why not to UTF-8?
Done.
Toggle quote (2 lines)> You should install the shared libraries in the install phase.
Done.
Toggle quote (2 lines)> Use '(...) for fixed input.
Done.
Toggle quote (4 lines)> I'm starting to grow a little suspicious about matching the leading> spaces. You probably want to lead this (and similar stuff in 0001)> with [ \t]*.
Done.
Toggle quote (2 lines)> LGTM, but probably deserves a comment.
Done.
Toggle quote (2 lines)> Definitely deserves a comment and perhaps a less broad match?
Done the comment.
I think this is perfect match. The mentioned libraries will get linked wherever synclib gets linked. Also, this patch is compatible with current master, which is different from this version.
Toggle quote (2 lines)> Also deserves a comment about QtSingleApplication differences.
Done.
Toggle quote (2 lines)> Would the raw string here exceed a line?
Yep!
Toggle quote (2 lines)> This is now just qtokenizer, right?
Changed.
Please find the attached v16.
Regards,RG.
From daad8ffd22e8f000a1569ca45b415e28b4e20798 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/3] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..60fa080c9d 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolRead?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolReadAsync?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolEmpty?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/Cache?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/Merges?.*;")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From f17fadd96e03b7507aa8c6aed1054ef976ed3e45 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Tue, 9 Mar 2021 02:14:56 -0500Subject: [PATCH 2/3] gnu: Add qtsolutions.
* gnu/packages/qt.scm (qtsolutions): New variable.--- gnu/packages/qt.scm | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+)
Toggle diff (105 lines)diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scmindex 11e69ff5db..d5d4258f88 100644--- a/gnu/packages/qt.scm+++ b/gnu/packages/qt.scm@@ -105,6 +105,98 @@ #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) +(define-public qtsolutions+ (let ((commit "9568abd142d581b67b86a5f63d823a34b0612702")+ (revision "53"))+ (package+ (name "qtsolutions")+ (version+ (git-version "0" revision commit))+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://code.qt.io/cgit/qt-solutions/qt-solutions")+ (commit commit)))+ (file-name+ (git-file-name name version))+ (sha256+ (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n"))))+ (build-system gnu-build-system)+ (arguments+ `(#:tests? #f ; No target+ #:imported-modules+ ((guix build copy-build-system)+ ,@%gnu-build-system-modules)+ #:modules+ (((guix build copy-build-system)+ #:prefix copy:)+ (guix build gnu-build-system)+ (guix build utils))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* (find-files "." "common.pri")+ ;; Remove prefix in library names.+ (("qt5") "qt")+ ;; Remove suffix in library names.+ (("-head") ""))+ ;; Disable building of examples.+ (substitute* (find-files "." "\\.pro$")+ (("SUBDIRS\\+=examples") ""))+ ;; Fix deprecated functions.+ (substitute* "qtsoap/src/qtsoap.cpp"+ (("toAscii") "toUtf8"))+ #t))+ (replace 'configure+ (lambda _+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (invoke "./configure" "-library")+ (invoke "qmake")))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap"))+ #t))+ (replace 'build+ (lambda _+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (invoke "make")))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap"))+ #t))+ (replace 'install+ (lambda args+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (apply (assoc-ref copy:%standard-phases 'install)+ #:install-plan+ `(("src" ,(string-append "include/" solution)+ #:include-regexp ("\\.h$"))+ ("lib" "lib"))+ args)))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap")))))))+ (inputs+ `(("qtbase" ,qtbase)))+ (synopsis "Qt Solutions")+ (description "QtSolutions are set of components that extends Qt.+@itemize+@item QtLockedFile: A class that extends QFile with advisory locking functions.+@item QtPropertyBrowser: A framework that enables the user to edit a set of+properties.+@item QtService: A component useful for developing Windows services and Unix+daemons.+@item QtSingleApplication: A component that provides support for applications+that can be only started once per user.+@item QtSoap: A component that provides basic web service support with version+1.1 of the SOAP protocol.+@end itemize\n")+ (home-page "https://doc.qt.io/archives/qq/qq09-qt-solutions.html")+ (license license:lgpl2.1+))))+ (define-public qt5ct (package (name "qt5ct")-- 2.30.1
From e52d1d8e4a602254c68be6739a18dedaf02d9ff2 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Tue, 9 Mar 2021 02:19:00 -0500Subject: [PATCH 3/3] gnu: Add nextcloud-client.
* gnu/packages/messaging.scm (nextcloud-client): New variable.--- gnu/packages/sync.scm | 160 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+)
Toggle diff (198 lines)diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scmindex d7c9009f3b..9aa7e9f866 100644--- a/gnu/packages/sync.scm+++ b/gnu/packages/sync.scm@@ -30,6 +30,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson)+ #:use-module (guix build-system qt) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages)@@ -42,8 +43,11 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages documentation)+ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib)+ #:use-module (gnu packages gnome) #:use-module (gnu packages golang)+ #:use-module (gnu packages graphviz) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux)@@ -52,15 +56,171 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config)+ #:use-module (gnu packages python)+ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages rsync)+ #:use-module (gnu packages ruby) #:use-module (gnu packages selinux) #:use-module (gnu packages shells) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls)) +(define-public nextcloud-client+ (package+ (name "nextcloud-client")+ (version "3.1.3")+ (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 "15ymk3gvfmgwzmqbhlw7jjy9y65ib3391h1dlmpll65iaj2miajk"))+ (modules '((guix build utils)+ (ice-9 ftw)+ (srfi srfi-1)))+ (snippet+ `(begin+ ;; Not available in Guix.+ (let* ((keep '("QProgressIndicator" "qtokenizer")))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (with-directory-excursion "src/gui"+ (substitute* "CMakeLists.txt"+ ;; Remove source references of deleted 3rdparties.+ (("[ \t]*\\.\\./3rdparty/qtlockedfile/?.*\\.cpp")+ "")+ (("[ \t]*\\.\\./3rdparty/qtsingleapplication/?.*\\.cpp")+ "")+ (("[ \t]*\\.\\./3rdparty/kmessagewidget/?.*\\.cpp")+ "")+ (("[ \t]*list\\(APPEND 3rdparty_SRC \\.\\./3rdparty/?.*\\)")+ "")+ ;; Patch include references of deleted 3rdparties to inputs.+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtlockedfile")+ (string-append (assoc-ref inputs "qtsolutions")+ "/include/qtlockedfile/"))+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtsingleapplication")+ (string-append (assoc-ref inputs "qtsolutions")+ "/include/qtsingleapplication/"))+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/kmessagewidget")+ (string-append (assoc-ref inputs "kwidgetsaddons")+ "/include/KF5/KWidgetsAddons/"))+ ;; Link libraries from inputs that were deleted in 3rdparty.+ (("\\$\\{synclib_NAME\\}")+ (string-append "${synclib_NAME} "+ "QtSolutions_LockedFile "+ "QtSolutions_SingleApplication "+ "KF5WidgetsAddons")))+ ;; Fix compatibility with QtSingleApplication from QtSolutions.+ (substitute* '("application.h" "application.cpp")+ (("SharedTools::QtSingleApplication")+ "QtSingleApplication")+ (("slotParseMessage\\(const QString &(msg)?.*\\)")+ "slotParseMessage(const QString &msg)")))+ #t))+ (add-after 'patch-source 'patch-cmake+ (lambda* (#:key outputs #:allow-other-keys)+ ;; Patch install directory for dbus service files.+ (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"+ (("PKGCONFIG_GETVAR\\(.+ _install_dir\\)")+ (string-append "set(_install_dir \"${CMAKE_INSTALL_PREFIX}"+ "/share/dbus-1/services\")")))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("kjs" ,kjs)+ ("kwidgetsaddons" ,kwidgetsaddons)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsolutions" ,qtsolutions)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("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+ ;; Qtokenizer+ license:lgpl2.1++ ;; Others+ license:gpl2+))))+ (define-public megacmd (package (name "megacmd")-- 2.30.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 9 Mar 12:39 +0100
e888578e2a4f0b938040a6d6b6af611e32e72f37.camel@student.tugraz.at
Hi Raghav,
Mostly LGTM.
Am Dienstag, den 09.03.2021, 05:50 -0500 schrieb Raghav Gururajan:
Toggle quote (8 lines)> > Definitely deserves a comment and perhaps a less broad match?> > Done the comment.> > I think this is perfect match. The mentioned libraries will get> linked > wherever synclib gets linked. Also, this patch is compatible with > current master, which is different from this version.
Perhaps the comment should reflect that a little better. You mightalso want to expand that during the unvendoring in the snippet, so thatit's less confusing.
Toggle quote (3 lines)> + `(("src" ,(string-append> "include/" solution)> + #:include-regexp ("\\.h$"))
I think you should unvendor dependencies between the solutions, so thatyou can put them in "include/" directly (like putting the solutions in"/lib").
Regards,Leo
R
R
Raghav Gururajan wrote on 9 Mar 13:29 +0100
49a02ef9-be2a-1abf-3b2c-bb99471620ee@raghavgururajan.name
Hi Leo!
Toggle quote (4 lines)> Perhaps the comment should reflect that a little better. You might> also want to expand that during the unvendoring in the snippet, so that> it's less confusing.
Done.
Toggle quote (4 lines)> I think you should unvendor dependencies between the solutions, so that> you can put them in "include/" directly (like putting the solutions in> "/lib").
Done.
Please find the attached v17.
Regards,RG.
From daad8ffd22e8f000a1569ca45b415e28b4e20798 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/3] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..60fa080c9d 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolRead?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolReadAsync?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolEmpty?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/Cache?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/Merges?.*;")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From a957e967b10cb1ad87e5e01239b90b954f9eb532 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Tue, 9 Mar 2021 02:14:56 -0500Subject: [PATCH 2/3] gnu: Add qtsolutions.
* gnu/packages/qt.scm (qtsolutions): New variable.--- gnu/packages/qt.scm | 95 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+)
Toggle diff (108 lines)diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scmindex 11e69ff5db..96efbce7fc 100644--- a/gnu/packages/qt.scm+++ b/gnu/packages/qt.scm@@ -105,6 +105,101 @@ #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) +(define-public qtsolutions+ (let ((commit "9568abd142d581b67b86a5f63d823a34b0612702")+ (revision "53"))+ (package+ (name "qtsolutions")+ (version+ (git-version "0" revision commit))+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/qtproject/qt-solutions")+ (commit commit)))+ (file-name+ (git-file-name name version))+ (sha256+ (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n"))))+ (build-system gnu-build-system)+ (arguments+ `(#:tests? #f ; No target+ #:imported-modules+ ((guix build copy-build-system)+ ,@%gnu-build-system-modules)+ #:modules+ (((guix build copy-build-system)+ #:prefix copy:)+ (guix build gnu-build-system)+ (guix build utils))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* (find-files "." "common.pri")+ ;; Remove prefix in library names.+ (("qt5") "qt")+ ;; Remove suffix in library names.+ (("-head") ""))+ ;; Disable building of examples.+ (substitute* (find-files "." "\\.pro$")+ (("SUBDIRS\\+=examples") ""))+ ;; Fix deprecated functions.+ (substitute* "qtsoap/src/qtsoap.cpp"+ (("toAscii") "toUtf8"))+ #t))+ (replace 'configure+ (lambda _+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (invoke "./configure" "-library")+ (invoke "qmake")))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap"))+ #t))+ (replace 'build+ (lambda _+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (invoke "make")))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap"))+ #t))+ (replace 'install+ (lambda args+ ;; Remove an redundant header file,+ ;; before it gets attempted for installation.+ (delete-file "qtsingleapplication/src/qtlockedfile.h")+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (apply (assoc-ref copy:%standard-phases 'install)+ #:install-plan+ '(("src" "include"+ #:include-regexp ("\\.h$"))+ ("lib" "lib"))+ args)))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap")))))))+ (inputs+ `(("qtbase" ,qtbase)))+ (synopsis "Qt Solutions")+ (description "QtSolutions are set of components that extends Qt.+@itemize+@item QtLockedFile: A class that extends QFile with advisory locking functions.+@item QtPropertyBrowser: A framework that enables the user to edit a set of+properties.+@item QtService: A component useful for developing Windows services and Unix+daemons.+@item QtSingleApplication: A component that provides support for applications+that can be only started once per user.+@item QtSoap: A component that provides basic web service support with version+1.1 of the SOAP protocol.+@end itemize\n")+ (home-page "https://doc.qt.io/archives/qq/qq09-qt-solutions.html")+ (license license:lgpl2.1+))))+ (define-public qt5ct (package (name "qt5ct")-- 2.30.1
From 7264b154be9d54b451bb02fbd2b2fc8c8edf91e2 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Tue, 9 Mar 2021 02:19:00 -0500Subject: [PATCH 3/3] gnu: Add nextcloud-client.
* gnu/packages/messaging.scm (nextcloud-client): New variable.--- gnu/packages/sync.scm | 162 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+)
Toggle diff (200 lines)diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scmindex d7c9009f3b..cfeb5739fd 100644--- a/gnu/packages/sync.scm+++ b/gnu/packages/sync.scm@@ -30,6 +30,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson)+ #:use-module (guix build-system qt) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages)@@ -42,8 +43,11 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages documentation)+ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib)+ #:use-module (gnu packages gnome) #:use-module (gnu packages golang)+ #:use-module (gnu packages graphviz) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux)@@ -52,15 +56,173 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config)+ #:use-module (gnu packages python)+ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages rsync)+ #:use-module (gnu packages ruby) #:use-module (gnu packages selinux) #:use-module (gnu packages shells) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls)) +(define-public nextcloud-client+ (package+ (name "nextcloud-client")+ (version "3.1.3")+ (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 "15ymk3gvfmgwzmqbhlw7jjy9y65ib3391h1dlmpll65iaj2miajk"))+ (modules '((guix build utils)+ (ice-9 ftw)+ (srfi srfi-1)))+ (snippet+ `(begin+ ;; Not available in Guix.+ (let* ((keep '("QProgressIndicator" "qtokenizer")))+ (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"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (with-directory-excursion "src/gui"+ (substitute* "CMakeLists.txt"+ ;; Remove references of deleted 3rdparties.+ (("[ \t]*\\.\\./3rdparty/qtlockedfile/?.*\\.cpp")+ "")+ (("[ \t]*\\.\\./3rdparty/qtsingleapplication/?.*\\.cpp")+ "")+ (("[ \t]*\\.\\./3rdparty/kmessagewidget/?.*\\.cpp")+ "")+ (("[ \t]*list\\(APPEND 3rdparty_SRC \\.\\./3rdparty/?.*\\)")+ "")+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtlockedfile")+ "")+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtsingleapplication")+ "")+ ;; Patch include reference of KMessageWidget,+ ;; to point to KWidgetsAddons, instead of 3rdparty.+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/kmessagewidget")+ (string-append (assoc-ref inputs "kwidgetsaddons")+ "/include/KF5/KWidgetsAddons/"))+ ;; Link libraries from inputs, that were deleted in 3rdparty,+ ;; to wherever synclib gets linked.+ (("\\$\\{synclib_NAME\\}")+ (string-append "${synclib_NAME} "+ "QtSolutions_LockedFile "+ "QtSolutions_SingleApplication "+ "KF5WidgetsAddons")))+ ;; Fix compatibility with QtSingleApplication from QtSolutions.+ (substitute* '("application.h" "application.cpp")+ (("SharedTools::QtSingleApplication")+ "QtSingleApplication")+ (("slotParseMessage\\(const QString &(msg)?.*\\)")+ "slotParseMessage(const QString &msg)")))+ #t))+ (add-after 'patch-source 'patch-cmake+ (lambda* (#:key outputs #:allow-other-keys)+ ;; Patch install directory for dbus service files.+ (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"+ (("PKGCONFIG_GETVAR\\(.+ _install_dir\\)")+ (string-append "set(_install_dir \"${CMAKE_INSTALL_PREFIX}"+ "/share/dbus-1/services\")")))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("desktop-file-utils" ,desktop-file-utils)+ ("glib" ,glib)+ ("kconfig" ,kconfig)+ ("kcoreaddons" ,kcoreaddons)+ ("kio" ,kio)+ ("kjs" ,kjs)+ ("kwidgetsaddons" ,kwidgetsaddons)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsolutions" ,qtsolutions)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("qtwebkit" ,qtwebkit)+ ("sqlite" ,sqlite)+ ("xdg-utils" ,xdg-utils)+ ("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+ ;; Qtokenizer+ license:lgpl2.1++ ;; Others+ license:gpl2+))))+ (define-public megacmd (package (name "megacmd")-- 2.30.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 9 Mar 13:43 +0100
Re: Nextcloud Client (v17)
078fd1ea26421b2939f5691fd69f098b8bf52856.camel@student.tugraz.at
Am Dienstag, den 09.03.2021, 07:29 -0500 schrieb Raghav Gururajan:
Toggle quote (8 lines)> Hi Leo!> > > Perhaps the comment should reflect that a little better. You might> > also want to expand that during the unvendoring in the snippet, so> > that> > it's less confusing.> > Done.
The comment certainly improved FSVO improved, but it somehow does notreduce my bikeshedding mood. In particular, I feel like we ought to dothis in the snippet.
Toggle quote (7 lines)> > I think you should unvendor dependencies between the solutions, so> > that> > you can put them in "include/" directly (like putting the solutions> > in> > "/lib").> > Done.
You just masked an install error without actually unvendoringdependencies.
Regards,Leo
R
R
Raghav Gururajan wrote on 9 Mar 16:16 +0100
Re: Nextcloud Client (v18)
899fd264-18bf-44b2-2175-1dfc6a64b9c0@raghavgururajan.name
Hi Leo!
Toggle quote (4 lines)> The comment certainly improved FSVO improved, but it somehow does not> reduce my bikeshedding mood. In particular, I feel like we ought to do> this in the snippet.
Moved to snippet.
Toggle quote (3 lines)> You just masked an install error without actually unvendoring> dependencies.
Done.
Please find the attached v18.
Regards,RG.
From daad8ffd22e8f000a1569ca45b415e28b4e20798 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 14 Jan 2021 23:32:27 -0500Subject: [PATCH 1/3] gnu: Add appstream.
* gnu/packages/freedesktop.scm (appstream): New variable.--- gnu/packages/freedesktop.scm | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+)
Toggle diff (125 lines)diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scmindex e00454f7b3..60fa080c9d 100644--- a/gnu/packages/freedesktop.scm+++ b/gnu/packages/freedesktop.scm@@ -58,8 +58,10 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check)+ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup)+ #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation)@@ -75,6 +77,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image)+ #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb)@@ -101,6 +104,99 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream+ (package+ (name "appstream")+ (version "0.13.1")+ (source+ (origin+ (method url-fetch)+ (uri+ (string-append "https://www.freedesktop.org/software/"+ "appstream/releases/"+ "AppStream-" version ".tar.xz"))+ (sha256+ (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds"))))+ (build-system meson-build-system)+ (arguments+ `(#:glib-or-gtk? #t+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-libstemmer+ (lambda* (#:key inputs #:allow-other-keys)+ (substitute* "meson.build"+ (("/usr/include")+ (string-append (assoc-ref inputs "libstemmer")+ "/include")))+ #t))+ (add-after 'patch-libstemmer 'patch-docbook-xml+ (lambda* (#:key inputs #:allow-other-keys)+ (with-directory-excursion "docs/api"+ (substitute* "appstream-docs.xml"+ (("http://www.oasis-open.org/docbook/xml/4.3/")+ (string-append (assoc-ref inputs "docbook-xml-4.3")+ "/xml/dtd/docbook/"))))+ (for-each (lambda (file)+ (substitute* file+ (("http://www.oasis-open.org/docbook/xml/4.5/")+ (string-append (assoc-ref inputs "docbook-xml")+ "/xml/dtd/docbook/"))))+ (find-files "scripts/desc" "\\.xml$"))+ #t))+ (add-after 'patch-docbook-xml 'disable-failing-tests+ (lambda _+ (substitute* "tests/test-pool.c"+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolRead?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolReadAsync?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/PoolEmpty?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/Cache?.*;")+ "")+ (("[ \t]*g_test_add_func \\(\"/AppStream/Merges?.*;")+ ""))+ #t))+ (add-after 'disable-failing-tests 'patch-install-dir+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* "data/meson.build"+ (("/etc")+ (string-append (assoc-ref outputs "out")+ "/etc")))+ #t)))))+ (native-inputs+ `(("cmake" ,cmake)+ ("docbook-xml-4.3" ,docbook-xml-4.3)+ ("docbook-xml" ,docbook-xml)+ ("docbook-xsl" ,docbook-xsl)+ ("gettext" ,gettext-minimal)+ ("glib:bin" ,glib "bin")+ ("gobject-introspection" ,gobject-introspection)+ ("gperf" ,gperf)+ ("gtk-doc" ,gtk-doc)+ ("pkg-config" ,pkg-config)+ ("python" ,python-wrapper)+ ("xsltproc" ,libxslt)))+ (inputs+ `(("libsoup" ,libsoup)+ ("libstemmer" ,libstemmer)+ ("libxml2" ,libxml2)+ ("libyaml" ,libyaml)+ ("lmdb" ,lmdb)))+ (propagated-inputs+ `(("glib" ,glib)))+ (synopsis "Tools and libraries to work with AppStream metadata")+ (description "AppStream is a cross-distribution effort for enhancing the way+we interact with the software repositories provided by distributions by+standardizing software component metadata. It provides the foundation to build+software-center applications, by providing metadata necessary for an+application-centric view on package repositories. It additionally provides+specifications for things like an unified software metadata database, screenshot+services and various other things needed to create user-friendly+application-centers for distributions.")+ (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")+ (license license:gpl2+)))+ (define-public farstream (package (name "farstream")-- 2.30.1
From 583680270594522b0061d8c5a0f13067180de7a8 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Tue, 9 Mar 2021 02:14:56 -0500Subject: [PATCH 2/3] gnu: Add qtsolutions.
* gnu/packages/qt.scm (qtsolutions): New variable.--- gnu/packages/qt.scm | 120 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+)
Toggle diff (133 lines)diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scmindex 11e69ff5db..4ff1e6a005 100644--- a/gnu/packages/qt.scm+++ b/gnu/packages/qt.scm@@ -105,6 +105,126 @@ #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) +(define-public qtsolutions+ (let ((commit "9568abd142d581b67b86a5f63d823a34b0612702")+ (revision "53"))+ (package+ (name "qtsolutions")+ (version+ (git-version "0" revision commit))+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/qtproject/qt-solutions")+ (commit commit)))+ (file-name+ (git-file-name name version))+ (sha256+ (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n"))+ (modules '((guix build utils)+ (ice-9 ftw)+ (srfi srfi-1)))+ (snippet+ ;; Unvendor QtLockFile from QtSingleApplication.+ `(begin+ (with-directory-excursion "qtsingleapplication/src"+ (for-each delete-file+ (find-files "." "qtlockedfile.*\\.(h|cpp)"))+ (substitute* "qtsingleapplication.pri"+ ;; Add include path of LockedFile.+ (("INCLUDEPATH \\+=")+ "INCLUDEPATH += ../../qtlockedfile/src")+ ;; Link library of LockedFile.+ (("LIBS \\+=")+ "LIBS += -lQtSolutions_LockedFile"))+ (substitute* '("qtlocalpeer.h" "qtlocalpeer.cpp")+ ;; Remove references to deleted LockedFile sources.+ (("#include \"qtlockedfile.cpp\"")+ "")+ (("#include \"qtlockedfile_win.cpp\"")+ "")+ (("#include \"qtlockedfile_unix.cpp\"")+ "")+ ;; Fix LockedFile API.+ (("QtLP_Private::QtLockedFile")+ "QtLockedFile")))+ #t))))+ (build-system gnu-build-system)+ (arguments+ `(#:tests? #f ; No target+ #:imported-modules+ ((guix build copy-build-system)+ ,@%gnu-build-system-modules)+ #:modules+ (((guix build copy-build-system)+ #:prefix copy:)+ (guix build gnu-build-system)+ (guix build utils))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-source+ (lambda* (#:key outputs #:allow-other-keys)+ (substitute* (find-files "." "common.pri")+ ;; Remove prefix in library names.+ (("qt5") "qt")+ ;; Remove suffix in library names.+ (("-head") ""))+ ;; Disable building of examples.+ (substitute* (find-files "." "\\.pro$")+ (("SUBDIRS\\+=examples") ""))+ ;; Fix deprecated functions.+ (substitute* "qtsoap/src/qtsoap.cpp"+ (("toAscii") "toUtf8"))+ #t))+ (replace 'configure+ (lambda _+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (invoke "./configure" "-library")+ (invoke "qmake")))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap"))+ #t))+ (replace 'build+ (lambda _+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (invoke "make")))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap"))+ #t))+ (replace 'install+ (lambda args+ (for-each (lambda (solution)+ (with-directory-excursion solution+ (apply (assoc-ref copy:%standard-phases 'install)+ #:install-plan+ '(("src" "include"+ #:include-regexp ("\\.h$"))+ ("lib" "lib"))+ args)))+ '("qtlockedfile" "qtpropertybrowser" "qtservice"+ "qtsingleapplication" "qtsoap")))))))+ (inputs+ `(("qtbase" ,qtbase)))+ (synopsis "Qt Solutions")+ (description "QtSolutions are set of components that extends Qt.+@itemize+@item QtLockedFile: A class that extends QFile with advisory locking functions.+@item QtPropertyBrowser: A framework that enables the user to edit a set of+properties.+@item QtService: A component useful for developing Windows services and Unix+daemons.+@item QtSingleApplication: A component that provides support for applications+that can be only started once per user.+@item QtSoap: A component that provides basic web service support with version+1.1 of the SOAP protocol.+@end itemize\n")+ (home-page "https://doc.qt.io/archives/qq/qq09-qt-solutions.html")+ (license license:lgpl2.1+))))+ (define-public qt5ct (package (name "qt5ct")-- 2.30.1
From 573af53f9a5b69b857daefe3d6471eef42783782 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Tue, 9 Mar 2021 02:19:00 -0500Subject: [PATCH 3/3] gnu: Add nextcloud-client.
* gnu/packages/messaging.scm (nextcloud-client): New variable.--- gnu/packages/sync.scm | 158 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+)
Toggle diff (196 lines)diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scmindex d7c9009f3b..875af6da5a 100644--- a/gnu/packages/sync.scm+++ b/gnu/packages/sync.scm@@ -30,6 +30,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson)+ #:use-module (guix build-system qt) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages)@@ -42,8 +43,11 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages documentation)+ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib)+ #:use-module (gnu packages gnome) #:use-module (gnu packages golang)+ #:use-module (gnu packages graphviz) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux)@@ -52,15 +56,169 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config)+ #:use-module (gnu packages python)+ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages rsync)+ #:use-module (gnu packages ruby) #:use-module (gnu packages selinux) #:use-module (gnu packages shells) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls)) +(define-public nextcloud-client+ (package+ (name "nextcloud-client")+ (version "3.1.3")+ (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 "15ymk3gvfmgwzmqbhlw7jjy9y65ib3391h1dlmpll65iaj2miajk"))+ (modules '((guix build utils)+ (ice-9 ftw)+ (srfi srfi-1)))+ (snippet+ `(begin+ ;; Not available in Guix.+ (let* ((keep '("QProgressIndicator" "qtokenizer")))+ (with-directory-excursion "src/3rdparty"+ (for-each delete-file-recursively+ (lset-difference string=?+ (scandir ".")+ (cons* "." ".." keep)))))+ (with-directory-excursion "src/gui"+ (substitute* "CMakeLists.txt"+ ;; Remove references of deleted 3rdparties.+ (("[ \t]*\\.\\./3rdparty/qtlockedfile/?.*\\.cpp")+ "")+ (("[ \t]*\\.\\./3rdparty/qtsingleapplication/?.*\\.cpp")+ "")+ (("[ \t]*\\.\\./3rdparty/kmessagewidget/?.*\\.cpp")+ "")+ (("[ \t]*list\\(APPEND 3rdparty_SRC \\.\\./3rdparty/?.*\\)")+ "")+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtlockedfile")+ "")+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtsingleapplication")+ "")+ ;; Patch include reference of KMessageWidget,+ ;; to point to KWidgetsAddons, instead of 3rdparty.+ (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/kmessagewidget")+ "@kwidgetsaddons@/include/KF5/KWidgetsAddons/")+ ;; Link libraries from inputs, that were deleted in 3rdparty,+ ;; to wherever synclib gets linked.+ (("\\$\\{synclib_NAME\\}")+ (string-append "${synclib_NAME} "+ "QtSolutions_LockedFile "+ "QtSolutions_SingleApplication "+ "KF5WidgetsAddons")))+ ;; Fix compatibility with QtSingleApplication from QtSolutions.+ (substitute* '("application.h" "application.cpp")+ (("SharedTools::QtSingleApplication")+ "QtSingleApplication")+ (("slotParseMessage\\(const QString &(msg)?.*\\)")+ "slotParseMessage(const QString &msg)")))+ #t))))+ (build-system qt-build-system)+ (arguments+ `(#:configure-flags+ (list+ "-DUNIT_TESTING=ON"+ ;; Upstream Bug: https://github.com/nextcloud/desktop/issues/2885+ "-DNO_SHIBBOLETH=ON")+ #: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))+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'patch-cmake+ (lambda* (#:key outputs #:allow-other-keys)+ ;; Patch install directory for dbus service files.+ (substitute* "shell_integration/libcloudproviders/CMakeLists.txt"+ (("PKGCONFIG_GETVAR\\(.+ _install_dir\\)")+ (string-append "set(_install_dir \"${CMAKE_INSTALL_PREFIX}"+ "/share/dbus-1/services\")")))+ ;; Make sure, that Qt modules are installed under $prefix.+ (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)+ ("desktop-file-utils" ,desktop-file-utils)+ ("glib" ,glib)+ ("kconfig" ,kconfig)+ ("kcoreaddons" ,kcoreaddons)+ ("kio" ,kio)+ ("kjs" ,kjs)+ ("kwidgetsaddons" ,kwidgetsaddons)+ ("libcloudproviders" ,libcloudproviders)+ ("libzip" ,libzip)+ ("openssl" ,openssl)+ ("python-nautilus" ,python-nautilus)+ ("qtbase" ,qtbase)+ ("qtdeclarative" ,qtdeclarative)+ ("qtgraphicaleffects" ,qtgraphicaleffects)+ ("qtkeychain" ,qtkeychain)+ ("qtquickcontrols2" ,qtquickcontrols2)+ ("qtsolutions" ,qtsolutions)+ ("qtsvg" ,qtsvg)+ ("qtwebchannel" ,qtwebchannel)+ ("qtwebsockets" ,qtwebsockets)+ ("qtwebkit" ,qtwebkit)+ ("sqlite" ,sqlite)+ ("xdg-utils" ,xdg-utils)+ ("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+ ;; Qtokenizer+ license:lgpl2.1++ ;; Others+ license:gpl2+))))+ (define-public megacmd (package (name "megacmd")-- 2.30.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 10 Mar 00:24 +0100
9cf48e290f86798fc3c82a574ef52572a0566b7f.camel@student.tugraz.at
Am Dienstag, den 09.03.2021, 10:16 -0500 schrieb Raghav Gururajan:
Toggle quote (16 lines)> Hi Leo!> > > The comment certainly improved FSVO improved, but it somehow does> > not> > reduce my bikeshedding mood. In particular, I feel like we ought> > to do> > this in the snippet.> > Moved to snippet.> > > You just masked an install error without actually unvendoring> > dependencies.> > Done.> > Please find the attached v18.
I've applied some cosmetic and less cosmetic changes, reviewed thelicenses and pushed nextcloud as82a2f182c59cd9adef4991e0adfb575fec95e52d.
Regards,Leo
Closed
R
R
Raghav Gururajan wrote on 10 Mar 04:46 +0100
69ce413a-cb2b-b0de-d12d-0c9bfa353ade@raghavgururajan.name
Hi Leo!
Toggle quote (5 lines)>> Please find the attached v18.> I've applied some cosmetic and less cosmetic changes, reviewed the> licenses and pushed nextcloud as> 82a2f182c59cd9adef4991e0adfb575fec95e52d.
Thanks so much for helping me with every step of the way. I appreciate it. :-)
Regards,RG.
Attachment: OpenPGP_signature
Closed
R
R
Raghav Gururajan wrote on 11 Mar 07:45 +0100
b51df972-f763-3f85-0004-ca07fa9e4ea7@raghavgururajan.name
Hi Leo!
Toggle quote (8 lines)>>> Please find the attached v18.>> I've applied some cosmetic and less cosmetic changes, reviewed the>> licenses and pushed nextcloud as>> 82a2f182c59cd9adef4991e0adfb575fec95e52d.> > Thanks so much for helping me with every step of the way. I appreciate > it. :-)
I have named the package wrong. Could you please merge the attached patch please?
Thank you!
Regards,RG.
From 587bda258971642915e19b7017d99b15c3ea7308 Mon Sep 17 00:00:00 2001From: Raghav Gururajan <rg@raghavgururajan.name>Date: Thu, 11 Mar 2021 01:39:49 -0500Subject: [PATCH] gnu: Rename "nextcloud-client" to "nextcloud-desktop".
* gnu/packages/sync.scm (nextcloud-client): Rename to nextcloud-desktop.--- gnu/packages/sync.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Toggle diff (18 lines)diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scmindex 2b64117dc6..d8e0855e06 100644--- a/gnu/packages/sync.scm+++ b/gnu/packages/sync.scm@@ -68,9 +68,9 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages tls)) -(define-public nextcloud-client+(define-public nextcloud-desktop (package- (name "nextcloud-client")+ (name "nextcloud-desktop") (version "3.1.3") (source (origin-- 2.30.1
Attachment: OpenPGP_signature
L
L
Leo Prikler wrote on 11 Mar 07:49 +0100
4872912a500463eff900bd0e2d3cceb11da42e43.camel@student.tugraz.at
Am Donnerstag, den 11.03.2021, 01:45 -0500 schrieb Raghav Gururajan:
Toggle quote (14 lines)> Hi Leo!> > > > > Please find the attached v18.> > > I've applied some cosmetic and less cosmetic changes, reviewed> > > the> > > licenses and pushed nextcloud as> > > 82a2f182c59cd9adef4991e0adfb575fec95e52d.> > > > Thanks so much for helping me with every step of the way. I> > appreciate > > it. :-)> > I have named the package wrong. Could you please merge the attached > patch please?
I don't see the name "nextcloud-client" as particularly problematic. It follows the same scheme as owncloud-client, which it is a fork ofIIUC. What would be the reason to prefer nextcloud-desktop?
Regards,Leo
R
R
Raghav Gururajan wrote on 11 Mar 08:44 +0100
36cbcaf5-c39a-6bfe-52d4-5209a93a3138@raghavgururajan.name
Hi Leo!
Toggle quote (4 lines)> I don't see the name "nextcloud-client" as particularly problematic.> It follows the same scheme as owncloud-client, which it is a fork of> IIUC. What would be the reason to prefer nextcloud-desktop?
The upstream uses the name 'desktop' (nextcloud/desktop in contrast to owncloud/client).
Also, It will be distinct from nextcloud-cli, if we get one in guix.
Regards,RG.
Attachment: OpenPGP_signature
R
R
Raghav Gururajan wrote on 12 Mar 10:47 +0100
Re: bug#45889: Nextcloud Client (v18)
7998656e-341e-71b4-4217-7565b2a927d9@raghavgururajan.name
Hi David!
Toggle quote (3 lines)> This is great news! I have really been looking forward to this. Thank > you both for almost 3 months of great work on this!
Attachment: OpenPGP_signature
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send email to 45889@debbugs.gnu.org