summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 5b659c254698b62182d3fa041bc07f7cd162d5ba (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
# 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.2.3
pkgrel=3
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.12.0' 'qt5-service>=2.0.0' 'crypto++')
makedepends=('qt5-tools' 'git' 'qdep' '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}-4"
		"${pkgname}.rule"
		"subpkg.rule"
		"connectorstatemachine.cpp")
sha256sums=('SKIP'
            '98986bc0cb0ca9f04bf79e5337705b62c31b3a8fdd1c6ba602994ea290bd4907'
            '321d7d24f490983f54acb9e7f58ebc2a170b520cd978c4989e28bc1a76513f3b'
            'e99d925560ff52e7215af463662da74842185115766a8558568c62d458268697')
backup=('etc/qdsapp.conf')

prepare() {
  mkdir -p build
}

build() {
  cd build

  qmake "CONFIG+=system_cryptopp install_system_service" "../$_pkgfqn/"
  make || true  # will fail because of QTBUG-76521
  cp ../connectorstatemachine.cpp src/datasync/connectorstatemachine.cpp
  touch src/datasync/connectorstatemachine.cpp
  make  # now it should work
  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' {} \;

  # Set systemd service file target
  sed -i -e 's/#WantedBy=multi-user/WantedBy=multi-user/g' $pkgdir/usr/lib/systemd/system/qdsapp.service

  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/system/${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' {} \;

  # install manpages
  install -Dm644 -t "$pkgdir/usr/share/man/man3" man/man3/*.3
}