summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: c477f0dfc1c72109b6129014a72ba475f5ea2d7f (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
# Maintainer: Felix Barz <skycoder42.de@gmx.de>
pkgbase=qt5-datasync
pkgname=(qt5-datasync qt5-datasync-kwallet-keystore qt5-datasync-secret-keystore qt5-datasync-doc)
group=qt5-datasync-full
pkgver=4.0.1
pkgrel=2
pkgdesc="A simple offline-first synchronisation framework, to synchronize data of Qt applications between devices"
arch=('i686' 'x86_64')
url="https://github.com/Skycoder42/QtDataSync"
license=('BSD')
depends=('qt5-base' 'qt5-jsonserializer' 'qt5-websockets' 'qt5-scxml' 'qt5-remoteobjects>=5.11.0' 'crypto++')
makedepends=('qt5-tools' 'git' 'qpmx-qpmsource' 'qt5-declarative' 'pkg-config' 'python' 'doxygen' 'graphviz' 'libsecret' 'kwallet')
optdepends=("repkg: Automatically rebuild the package on dependency updates"
			"qt5-datasync-kwallet-keystore: Support for KWallet as keystore"
			"qt5-datasync-secret-keystore: Support for secret service as keystore (includes gnome keyring)")
_pkgfqn=$pkgname-$pkgver
source=("$_pkgfqn::git+https://github.com/Skycoder42/QtDataSync.git#tag=${pkgver}-2" #TODO temporary for Qt 5.11 rebuild
		"${pkgname}.rule"
		"subpkg.rule")
sha256sums=('SKIP'
            '4ac39788aa336a6505fc6a15cb172a48b76832d52cd2e7a68203201b7feb913e'
            '321d7d24f490983f54acb9e7f58ebc2a170b520cd978c4989e28bc1a76513f3b')

prepare() {
  mkdir -p build

  cd "$_pkgfqn"
  echo "CONFIG+=system_cryptopp" >> .qmake.conf
}

build() {
  cd build

  qmake "../$_pkgfqn/"
  make qmake_all
  make
  make lrelease
  make doxygen
}

package_qt5-datasync() {
  cd build
  cd src/datasync
  make INSTALL_ROOT="$pkgdir" install
  cd ../imports
  make INSTALL_ROOT="$pkgdir" install
  cd ../plugins/keystores/plain
  make INSTALL_ROOT="$pkgdir" install
  cd ../../../../tools
  make INSTALL_ROOT="$pkgdir" install
  cd ..

  # Drop QMAKE_PRL_BUILD_DIR because reference the build dir
  find "$pkgdir/usr/lib" -type f -name '*.prl' \
    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

  install -D -m644 "../$_pkgfqn/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  install -D -m644 "../${pkgname}.rule" "$pkgdir/etc/repkg/rules/${pkgname}.rule"
}

package_qt5-datasync-kwallet-keystore() {
  depends=('qt5-datasync' 'kwallet')
  optdepends=()

  cd build/src/plugins/keystores/kwallet
  make INSTALL_ROOT="$pkgdir" install

  cd "../../../../../$_pkgfqn"
  install -D -m644 "../subpkg.rule" "$pkgdir/etc/repkg/rules/${pkgname}.rule"
}

package_qt5-datasync-secret-keystore() {
  depends=('qt5-datasync' 'libsecret')
  optdepends=("gnome-keyring: Gnome keyring as keystore backend for libsecret")

  cd build/src/plugins/keystores/secretservice
  make INSTALL_ROOT="$pkgdir" install

  cd "../../../../../$_pkgfqn"
  install -D -m644 "../subpkg.rule" "$pkgdir/etc/repkg/rules/${pkgname}.rule"
}

package_qt5-datasync-doc() {
  depends=('qt5-datasync')
  optdepends=()

  cd build/doc
  make INSTALL_ROOT="$pkgdir" install

  # DROP file paths from doc tags
  find "$pkgdir/usr/share/doc/qt" -type f -name '*.tags' \
    -exec sed -i -e 's:<path>[^<]*<\/path>:<path>/usr/include/qt/QtDataSync</path>:g' {} \;
}