blob: 5d57543e31a4ed68e6ede36096de166bdaafe2dd (
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
# Maintainer (Arch): Caleb Maclennan <caleb@alerque.com>
# Maintainer (Arch): Chih-Hsuan Yen <yan12125@archlinux.org>
# Contributor (Arch): Tyler Dence <tyzoid@archlinux32.org>
# Contributor (Arch): Konstantin Shalygin <k0ste@k0ste.ru>
# Maintainer: David P. <megver83@parabola.nu>
# Contributor: bill-auger <bill-auger@programmer.net>
# 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
}
|