# Maintainer (Arch): Caleb Maclennan # Maintainer (Arch): Chih-Hsuan Yen # Contributor (Arch): Tyler Dence # Contributor (Arch): Konstantin Shalygin # Maintainer: David P. # Contributor: bill-auger # parabola changes and rationale: # - build without qt5-webengine # - disable tests which require networking pkgbase=nextcloud-client # Put config files for libcloudproviders integration in a separate package as # there is no simple way yet to disable it. # See: https://gitlab.gnome.org/World/libcloudproviders/-/issues/17 pkgname=(nextcloud-client nextcloud-client-cloudproviders) epoch=2 # Upstream does not provide signed tarballs (yet) # https://github.com/nextcloud/desktop/issues/1510 pkgver=3.10.0 _tag=19a02ad0b0146167949a9a06d4cb4a1137df8153 pkgrel=2 pkgrel+=.parabola1 arch=(x86_64) arch+=(i686 armv7h) url='https://nextcloud.com/' _url=https://github.com/nextcloud/desktop license=(GPL) makedepends=(cmocka doxygen extra-cmake-modules git inkscape kio5 libcloudproviders openssl python-sphinx qt5-quickcontrols2 qt5-svg qt5-tools qt5-websockets qtkeychain-qt5 sqlite) source=("$pkgbase::git+$_url.git?signed#tag=$_tag") source+=(no-webengine.patch) validpgpkeys=( A26B951528EA1BA1678C7AE5D406C75CEE1A36D6 # https://github.com/camilasan 42E775EAA3E47F9E0D5CDB0E00819E3BF4177B28 # https://github.com/misch7 17166A5275C5FA6F1A48FD78074BBBCB8DECC9E2 # https://github.com/er-vin.gpg 0739B11EDA696A3616666F6AE04221E85C5BB816 # https://github.com/allexzander 267BF70F7905C2723B0243267D0F74F05C22F553 # https://github.com/mgallien 3A877D9A896A057948059DEDAD2C27357B2CB11D # https://github.com/FlexW ) sha256sums=('SKIP' '1e6d35210a15b8dfa94582d7db875e6ede2cd6b4e70f12cda02ff0be5a6badfb') pkgver() { cd $pkgbase git describe --tags | sed 's/^v//;s/-/+/g' } _pkgver() { curl -fs https://api.github.com/repos/nextcloud/desktop/git/ref/tags/v$pkgver | jq -r .object.sha } prepare() { # tmpdir for check() mkdir -p tmpdir cd $pkgbase # Monkey patch that disables bulk upload capability which causes infinite # loops for many server/client combos. Feature is also disabled by default on # server end in v23.0.3 because it was so problematic. This can abe re-enabled # when underlying bug squashed: # https://github.com/nextcloud/desktop/issues/5726 sed -i -e '/bulkupload/s/return _.*;$/return false;/' src/libsync/capabilities.cpp # Disable tests that touch on disabled feature sed -i -e '/SyncEngine/s/^/#/' -e '/Capabilities/s/^/#/' -e '/SecureFileDrop/s/^/#/' test/CMakeLists.txt # disable tests which require networking sed -i -e '/OAuth/s/^/#/' test/CMakeLists.txt sed -i -e '/PushNotifications/s/^/#/' test/CMakeLists.txt echo "applying no-webengine.patch" patch -Np1 -i "${srcdir}"/no-webengine.patch } build() { cd $pkgbase # bundled breakpad in libcrashreporter-qt submodule is too old and does not build with glibc >= 2.26 # Upstream fix: https://github.com/google/breakpad/commit/bddcc58860f522a0d4cbaa7e9d04058caee0db9d cmake -B build -S . \ -DCMAKE_BUILD_TYPE=None \ -DCMAKE_INSTALL_PREFIX=/usr \ -DWITH_CRASHREPORTER=OFF \ -DBUILD_UPDATER=OFF \ -DUNIT_TESTING=ON \ -DPLUGINDIR=lib/qt/plugins # Fix vfs plugin install dir https://github.com/nextcloud/desktop/issues/3781#issuecomment-918918320 # TODO: fix installation of PDF and HTML documents # WIP at https://github.com/yan12125/desktop/tree/doc-install-path make -C build all doc-man } check() { cd $pkgbase/build # Tests fail if $TMPDIR is too small; specify an alternative for machines # with a small /tmp partition. # Use UTC as TestCookies is sensitive to the timezone # https://github.com/nextcloud/desktop/blob/v3.2.2/test/testcookies.cpp#L24 QT_QPA_PLATFORM=offscreen TMPDIR="$srcdir/tmpdir" TZ=UTC ARGS="--rerun-failed --output-on-failure" make test } package_nextcloud-client() { pkgdesc='Nextcloud desktop client' depends=(hicolor-icon-theme karchive5 libcloudproviders openssl qt5-graphicaleffects qt5-quickcontrols qt5-quickcontrols2 qt5-svg qt5-websockets qtkeychain-qt5 sqlite xdg-utils) optdepends=('kio5: integration with Dolphin' 'nemo-python: integration with Nemo' 'python-nautilus: integration with Nautilus' 'python-caja: integration with Caja' 'nextcloud-client-cloudproviders: cloudproviders support') backup=('etc/Nextcloud/sync-exclude.lst') cd $pkgbase/build make DESTDIR="$pkgdir" install rm -v "$pkgdir"/usr/share/cloud-providers/com.nextcloudgmbh.Nextcloud.ini rm -v "$pkgdir"/usr/share/dbus-1/services/com.nextcloudgmbh.Nextcloud.service cd "$pkgdir"/usr/share && rmdir -p cloud-providers dbus-1/services } package_nextcloud-client-cloudproviders() { pkgdesc='cloudproviders support for the Nextcloud desktop client' depends=(nextcloud-client) cd $pkgbase/build make -C shell_integration/libcloudproviders DESTDIR="$pkgdir" install }