summaryrefslogtreecommitdiff
path: root/libre/nextcloud-client/PKGBUILD
blob: c1ca0c67d5dad9957d04c95cafd57dab1d380eb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Maintainer (arch): Chih-Hsuan Yen <yan12125@archlinux.org>
# Contributor: Tyler Dence <tyzoid@archlinux32.org>
# Contributor: Konstantin Shalygin <k0ste@k0ste.ru>
# Maintainer: David P. <megver83@parabola.nu>


# parabola changes and rationale:
#  - build without qt5-webengine


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.4.1
# `git rev-parse v$pkgver`
_tag=c1e1f91309b46f46d432ea0722e301ecaa094fb5
pkgrel=1
pkgrel+=.parabola1
arch=(x86_64)
arch+=(i686 armv7h)
url='https://nextcloud.com/'
license=(GPL)
makedepends=(libcloudproviders openssl sqlite
             qt5-quickcontrols2 qt5-svg qt5-tools qt5-websockets qtkeychain-qt5
             extra-cmake-modules kio
             cmocka doxygen git inkscape python-sphinx)
source=("$pkgbase::git+https://github.com/nextcloud/desktop.git?signed#tag=$_tag"
         fix-translations.patch)
validpgpkeys=(
  A26B951528EA1BA1678C7AE5D406C75CEE1A36D6  # one of keys controlled by github.com/camilasan
  42E775EAA3E47F9E0D5CDB0E00819E3BF4177B28  # controlled by github.com/misch7
  17166A5275C5FA6F1A48FD78074BBBCB8DECC9E2  # https://github.com/er-vin.gpg
  01D736173523DFC7A7B55258C2FBEF0E1C7E72D0  # https://github.com/allexzander
  267BF70F7905C2723B0243267D0F74F05C22F553  # https://github.com/mgallien
  3A877D9A896A057948059DEDAD2C27357B2CB11D  # https://github.com/FlexW
)
sha256sums=('SKIP'
            'd112358031ddf79c08acde1f1b5e39aad9e3ee84ba161817d4f6e0259f9a5832')

pkgver() {
  cd $pkgbase
  git describe --tags | sed 's/^v//;s/-/+/g'
}

prepare() {
  # tmpdir for check()
  mkdir tmpdir

  patch -d $pkgbase -p1 < fix-translations.patch # Fix loading translations
}

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 \
    -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=(openssl sqlite qtkeychain-qt5 qt5-svg qt5-websockets xdg-utils libcloudproviders
           qt5-graphicaleffects qt5-quickcontrols2)
  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')

  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
}