git » nextcloud-client.git » main » tree

[main] / PKGBUILD

# Maintainer: Caleb Maclennan <caleb@alerque.com>
# Maintainer: Chih-Hsuan Yen <yan12125@archlinux.org>
# Contributor: Fabian Bornschein <fabiscafe@mailbox.org>
# Contributor: Tyler Dence <tyzoid@archlinux32.org>
# Contributor: Konstantin Shalygin <k0ste@k0ste.ru>

# Upstream does not provide signed tarballs (yet), see:
# https://github.com/nextcloud/desktop/issues/1510
#
# Updates to signed Git tags requires refreshing repo once first before
# integrity checks will work:
#
#     makepkg -o --nodeps --skippgpcheck

pkgname=nextcloud-client
pkgdesc='Nextcloud desktop client'
epoch=2
pkgver=3.13.0
pkgrel=1
arch=(x86_64 'armv7h')
url='https://nextcloud.com/'
_url=https://github.com/nextcloud/desktop
license=(GPL-2.0-or-later)
depends=(hicolor-icon-theme
         karchive
 #        libcloudproviders
         openssl
         qt5-graphicaleffects
         qt5-quickcontrols
         qt5-quickcontrols2
         qt5-svg
         qt5-webengine
         qt5-websockets
         qtkeychain-qt5
         sqlite
         xdg-utils)
replaces=(nextcloud-client-cloudproviders)
conflicts=(nextcloud-client-cloudproviders)
provides=(nextcloud-client-cloudproviders)
optdepends=('kio: 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')
makedepends=(cmocka
             doxygen
             extra-cmake-modules
             git
             kio
             librsvg
             #python-sphinx
             qt5-tools)
source=("$pkgname::git+$_url.git?signed#tag=v$pkgver")
validpgpkeys=(A26B951528EA1BA1678C7AE5D406C75CEE1A36D6  # https://github.com/camilasan
              42E775EAA3E47F9E0D5CDB0E00819E3BF4177B28  # https://github.com/misch7
              17166A5275C5FA6F1A48FD78074BBBCB8DECC9E2  # https://github.com/er-vin
              0739B11EDA696A3616666F6AE04221E85C5BB816  # https://github.com/allexzander
              267BF70F7905C2723B0243267D0F74F05C22F553  # https://github.com/mgallien
              3A877D9A896A057948059DEDAD2C27357B2CB11D) # https://github.com/FlexW
sha256sums=('e37a43bcebbdd85370d6273465a61774648bce9d208e2a0cec8f5fad99f3aeb2')

prepare() {
  # tmpdir for check()
  mkdir -p tmpdir
  cd $pkgname
  # 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
}

build() {
  cd $pkgname
  # 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=OFF \
    -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 $pkgname/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() {
  cd $pkgname/build
  make DESTDIR="$pkgdir" install
}