PKGBUILD 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. # Maintainer (arch): Jaroslav Lichtblau <svetlemodry@archlinux.org>
  2. # Contributor: Vesa Kaihlavirta <vegai@iki.fi>
  3. # Maintainer: bill-auger <bill-auger@programmer.net>
  4. # Contributer: Wael Karram <wael@waelk.tech>
  5. # parabola changes and rationale:
  6. # - repalce qt5-webengine with qt5-webkit (for URL previews)
  7. # - set duckduckgo as default search engine
  8. # - pin to strongly-coupled dependencies
  9. pkgbase=quassel
  10. pkgname=('quassel-core'
  11. 'quassel-client'
  12. 'quassel-client-qt'
  13. 'quassel-monolithic'
  14. 'quassel-monolithic-qt'
  15. 'quassel-common')
  16. pkgver=0.14.0
  17. pkgrel=3
  18. pkgrel+=.parabola2
  19. pkgdesc="Next-generation distributed IRC client"
  20. arch=('x86_64')
  21. arch+=('armv7h' 'i686')
  22. url="https://quassel-irc.org/"
  23. license=('GPL')
  24. makedepends=('qt5-base' 'qt5-tools' 'qt5-webengine' 'qca-qt5'
  25. 'qt5-multimedia' 'knotifyconfig5' 'sonnet5' 'libldap' 'cmake'
  26. 'extra-cmake-modules' 'python' 'hicolor-icon-theme' 'boost')
  27. makedepends=( ${makedepends[*]/qt5-webengine/qt5-webkit} )
  28. [[ "${CARCH}" == i686 ]] && makedepends=( ${makedepends[*]/knotifyconfig5/knotifyconfig} )
  29. [[ "${CARCH}" == i686 ]] && makedepends=( ${makedepends[*]/sonnet5/sonnet} )
  30. source=(https://quassel-irc.org/pub/$pkgbase-$pkgver.tar.bz2
  31. $pkgbase.service
  32. $pkgbase.sysusers
  33. $pkgbase.tmpfiles
  34. $pkgbase.conf)
  35. source+=(9000-search-duck.patch)
  36. sha256sums=('bbd46ca429c1518480904c9e2b0ab3a0412fe197f3ce4879974e06ed3a0093a3'
  37. '0f5adfcaf9a640a795255d6bb82d6242882a1106a7b53b86bcbee6cc1e704241'
  38. '3c72441a99e2668c6a8a751fa07beeb44f937576c8a1b5f615e4a55f841d93d9'
  39. '2afd4340c7713f6533e5d175a86b28fd118ecd907776c2b10925d1a4fb31cdca'
  40. 'f3031ea8217e01ba42cea14606169e3e27affa5918968ffd5a03c21ae92fe2b8')
  41. sha256sums+=('e1dcb63b3b4e85b3c70d2a1788dd20271608dfe715bf23487f7b492989b2b3ec')
  42. prepare() {
  43. cd $pkgbase-$pkgver
  44. # parabola patches
  45. echo "applying 9000-search-duck.patch"
  46. patch -Np1 -i ../9000-search-duck.patch
  47. }
  48. _build() (
  49. cmake -H$pkgbase-$pkgver -Bbuild-$1 \
  50. -DCMAKE_INSTALL_PREFIX=/usr \
  51. -DCMAKE_BUILD_TYPE=None \
  52. -DENABLE_SHARED=OFF \
  53. -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-suggest-override" \
  54. "${@:2}" \
  55. -Wno-dev
  56. cmake --build build-$1
  57. )
  58. _install() {
  59. DESTDIR="${pkgdir}" cmake --build build-$1 --target install
  60. }
  61. build() {
  62. _build core \
  63. -DWANT_QTCLIENT=OFF \
  64. -DWANT_MONO=OFF \
  65. -DWITH_BUNDLED_ICONS=OFF \
  66. -DWITH_WEBKIT=OFF \
  67. -DWITH_WEBENGINE=OFF
  68. _build monolithic \
  69. -DWANT_CORE=OFF \
  70. -DWANT_QTCLIENT=OFF \
  71. -DWITH_WEBKIT=ON \
  72. -DWITH_WEBENGINE=OFF \
  73. -DWITH_KDE=ON
  74. _build monolithic-qt \
  75. -DWANT_CORE=OFF \
  76. -DWANT_QTCLIENT=OFF \
  77. -DWITH_WEBKIT=OFF \
  78. -DWITH_WEBENGINE=OFF \
  79. -DCMAKE_DISABLE_FIND_PACKAGE_dbusmenu-qt5=ON \
  80. -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Multimedia=ON \
  81. -DCMAKE_DISABLE_FIND_PACKAGE_Phonon4Qt5=ON
  82. _build client \
  83. -DWANT_CORE=OFF \
  84. -DWANT_MONO=OFF \
  85. -DWITH_WEBKIT=ON \
  86. -DWITH_WEBENGINE=OFF \
  87. -DWITH_KDE=ON
  88. _build client-qt \
  89. -DWANT_CORE=OFF \
  90. -DWANT_MONO=OFF \
  91. -DWITH_WEBKIT=OFF \
  92. -DWITH_WEBENGINE=OFF \
  93. -DCMAKE_DISABLE_FIND_PACKAGE_dbusmenu-qt5=ON \
  94. -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Multimedia=ON \
  95. -DCMAKE_DISABLE_FIND_PACKAGE_Phonon4Qt5=ON
  96. }
  97. package_quassel-core() {
  98. pkgdesc="Next-generation distributed IRC client - core only"
  99. depends=('icu' 'qca' 'libldap')
  100. depends+=(libicuuc.so libicudata.so) # via 'qt5-base' -> libQt5Core.so.N -> libicuuc.so.M -> libicudata.so.M
  101. optdepends=('postgresql: PostgreSQL database support')
  102. backup=(etc/conf.d/quassel)
  103. _install core
  104. # Remove unneeded pixmap icons
  105. rm -r "${pkgdir}"/usr/share
  106. install -Dm644 $pkgbase.sysusers \
  107. "${pkgdir}"/usr/lib/sysusers.d/$pkgbase.conf
  108. install -Dm644 $pkgbase.tmpfiles \
  109. "${pkgdir}"/usr/lib/tmpfiles.d/$pkgbase.conf
  110. install -Dm644 $pkgbase.service \
  111. "${pkgdir}"/usr/lib/systemd/system/$pkgbase.service
  112. install -Dm644 $pkgbase.conf \
  113. "${pkgdir}"/etc/conf.d/$pkgbase
  114. }
  115. package_quassel-client() {
  116. pkgdesc="Next-generation distributed IRC client - client only, KDE version"
  117. depends=('quassel-common' 'qt5-base' 'qt5-webengine' 'qt5-multimedia' 'knotifyconfig5')
  118. depends=( ${depends[*]/qt5-webengine/qt5-webkit} )
  119. optdepends=('perl: for builtin /exec scripts')
  120. conflicts=('quassel-client-qt')
  121. _install client
  122. install -Dm644 $pkgbase-$pkgver/data/quasselclient.appdata.xml "$pkgdir/usr/share/metainfo/quasselclient.appdata.xml"
  123. # Split quassel-common
  124. rm -r "$pkgdir"/usr/share/{icons,knotifications5,quassel}
  125. }
  126. package_quassel-client-qt() {
  127. pkgdesc="Next-generation distributed IRC client - client only, Qt version with reduced deps"
  128. depends=('quassel-common' 'qt5-base' 'qt5-svg' 'sonnet5')
  129. optdepends=('perl: for builtin /exec scripts')
  130. conflicts=('quassel-client')
  131. replaces=('quassel-client-small' 'quassel-remote')
  132. _install client-qt
  133. # Split quassel-common
  134. rm -r "$pkgdir"/usr/share/{icons,quassel}
  135. # Ignore package by AppStream to avoid duplicated IDs
  136. echo 'X-AppStream-Ignore=true' >> "$pkgdir/usr/share/applications/quasselclient.desktop"
  137. }
  138. package_quassel-monolithic() {
  139. pkgdesc="Next-generation distributed IRC client - monolithic, KDE version"
  140. depends=('quassel-common' 'qt5-base' 'qt5-webengine' 'qt5-multimedia' 'qca-qt5'
  141. 'knotifyconfig5' 'libldap')
  142. depends=( ${depends[*]/qt5-webengine/qt5-webkit} )
  143. optdepends=('perl: for builtin /exec scripts'
  144. 'postgresql: PostgreSQL database support')
  145. conflicts=('quassel-monolithic-qt')
  146. _install monolithic
  147. install -Dm644 $pkgbase-$pkgver/data/quassel.appdata.xml "$pkgdir/usr/share/metainfo/quassel.appdata.xml"
  148. # Split quassel-common
  149. mkdir "$srcdir/quassel-common"
  150. mv "$pkgdir"/usr/share/{icons,knotifications5,quassel} \
  151. "$srcdir/quassel-common/"
  152. }
  153. package_quassel-monolithic-qt() {
  154. pkgdesc="Next-generation distributed IRC client - monolithic, Qt version with reduced deps"
  155. depends=('quassel-common' 'qca' 'qt5-base' 'qt5-svg' 'sonnet5')
  156. optdepends=('perl: for builtin /exec scripts'
  157. 'postgresql: PostgreSQL database support')
  158. conflicts=('quassel-monolithic')
  159. _install monolithic-qt
  160. # Split quassel-common
  161. rm -r "$pkgdir"/usr/share/{icons,quassel}
  162. # Ignore package by AppStream to avoid duplicated IDs
  163. echo 'X-AppStream-Ignore=true' >> "$pkgdir/usr/share/applications/quassel.desktop"
  164. }
  165. package_quassel-common() {
  166. pkgdesc="Common files for Quassel"
  167. depends=('hicolor-icon-theme')
  168. install -dm755 "$pkgdir/usr/share"
  169. mv quassel-common/* "$pkgdir/usr/share"
  170. }