psi-9999.ebuild 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. # Copyright 1999-2024 Gentoo Authors
  2. # Distributed under the terms of the GNU General Public License v2
  3. EAPI=8
  4. PLOCALES="be bg ca cs de el en eo es et fa fi fr he hu it ja kk mk nl pl pt_BR pt ru sk sl sr@latin sv sw uk ur_PK vi zh_CN zh_TW"
  5. PLOCALE_BACKUP="en"
  6. inherit git-r3 cmake plocale xdg
  7. DESCRIPTION="Qt XMPP client"
  8. HOMEPAGE="https://psi-im.org"
  9. PSI_URI="https://github.com/psi-im"
  10. PSI_PLUS_URI="https://github.com/psi-plus"
  11. EGIT_REPO_URI="${PSI_URI}/${PN}.git"
  12. PSI_LANGS_URI="${PSI_URI}/psi-l10n.git"
  13. PSI_PLUS_LANGS_URI="${PSI_PLUS_URI}/psi-plus-l10n.git"
  14. EGIT_MIN_CLONE_TYPE="single"
  15. LICENSE="GPL-2 iconsets? ( all-rights-reserved )"
  16. SLOT="0"
  17. #KEYWORDS=""
  18. IUSE="aspell dbus debug doc enchant extras +hunspell iconsets keyring qt6 webengine X"
  19. REQUIRED_USE="
  20. ?? ( aspell enchant hunspell )
  21. iconsets? ( extras )
  22. "
  23. BDEPEND="
  24. !qt6? ( dev-qt/linguist-tools:5 )
  25. qt6? ( dev-qt/qttools:6[linguist] )
  26. virtual/pkgconfig
  27. doc? ( app-text/doxygen )
  28. "
  29. DEPEND="
  30. net-libs/http-parser:=
  31. net-libs/usrsctp
  32. sys-libs/zlib[minizip]
  33. aspell? ( app-text/aspell )
  34. enchant? ( app-text/enchant:2 )
  35. hunspell? ( app-text/hunspell:= )
  36. !qt6? (
  37. dev-qt/qtconcurrent:5
  38. dev-qt/qtcore:5
  39. dev-qt/qtgui:5
  40. dev-qt/qtmultimedia:5
  41. dev-qt/qtnetwork:5
  42. dev-qt/qtsql:5[sqlite]
  43. dev-qt/qtsvg:5
  44. dev-qt/qtwidgets:5
  45. dev-qt/qtx11extras:5
  46. dev-qt/qtxml:5
  47. dbus? ( dev-qt/qtdbus:5 )
  48. keyring? ( dev-libs/qtkeychain:=[qt5] )
  49. webengine? (
  50. dev-qt/qtwebchannel:5
  51. dev-qt/qtwebengine:5[widgets]
  52. )
  53. )
  54. qt6? (
  55. >=dev-qt/qtbase-6.6:6[concurrent,dbus?,gui,icu,network,sqlite,widgets,X?,xml]
  56. >=dev-qt/qtsvg-6.6:6
  57. >=dev-qt/qtimageformats-6.6:6
  58. keyring? ( dev-libs/qtkeychain:=[qt6] )
  59. webengine? (
  60. >=dev-qt/qtwebchannel-6.6:6
  61. >=dev-qt/qtwebengine-6.6:6[widgets]
  62. )
  63. )
  64. X? (
  65. x11-libs/libX11
  66. x11-libs/libxcb
  67. x11-libs/libXScrnSaver
  68. )
  69. "
  70. RDEPEND="${DEPEND}
  71. !qt6? ( dev-qt/qtimageformats:5 )
  72. qt6? ( dev-qt/qtimageformats:6 )
  73. "
  74. RESTRICT="test iconsets? ( bindist )"
  75. pkg_setup() {
  76. MY_PN=psi
  77. if use extras; then
  78. MY_PN=psi-plus
  79. einfo "You're about to build a branded version of Psi called Psi+."
  80. einfo "Psi+ patches were fully merged to Psi."
  81. einfo "The only difference is the name and some artwork."
  82. if use iconsets; then
  83. ewarn
  84. ewarn "Some artwork is from open source projects, but some is provided 'as-is'"
  85. ewarn "and has not clear licensing."
  86. ewarn "Possibly this build is not redistributable in some countries."
  87. fi
  88. EGIT_REPO_URI="${PSI_PLUS_URI}/${MY_PN}-snapshots.git"
  89. fi
  90. }
  91. src_unpack() {
  92. git-r3_src_unpack
  93. unset EGIT_BRANCH EGIT_COMMIT
  94. EGIT_CHECKOUT_DIR="${S}/iris/3rdparty/qca" \
  95. EGIT_REPO_URI="${PSI_URI}/qca.git" \
  96. git-r3_src_unpack
  97. # fetch translations
  98. unset EGIT_BRANCH EGIT_COMMIT
  99. EGIT_REPO_URI=$(usex extras "${PSI_PLUS_LANGS_URI}" "${PSI_LANGS_URI}")
  100. EGIT_CHECKOUT_DIR="${WORKDIR}/psi-l10n"
  101. git-r3_src_unpack
  102. if use iconsets; then
  103. unset EGIT_BRANCH EGIT_COMMIT
  104. EGIT_CHECKOUT_DIR="${WORKDIR}/resources" \
  105. EGIT_REPO_URI="${PSI_URI}/resources.git" \
  106. git-r3_src_unpack
  107. fi
  108. }
  109. src_prepare() {
  110. cmake_src_prepare
  111. if use iconsets; then
  112. cp -a "${WORKDIR}/resources/iconsets" "${S}" || die "failed to copy additional iconsets"
  113. fi
  114. }
  115. src_configure() {
  116. local mycmakeargs=(
  117. -DPRODUCTION=OFF
  118. -DUSE_ASPELL=$(usex aspell)
  119. -DUSE_ENCHANT=$(usex enchant)
  120. -DUSE_HUNSPELL=$(usex hunspell)
  121. -DUSE_DBUS=$(usex dbus)
  122. -DINSTALL_PLUGINS_SDK=1
  123. -DUSE_KEYCHAIN=$(usex keyring)
  124. -DCHAT_TYPE=$(usex webengine webengine basic)
  125. -DUSE_XSS=$(usex X)
  126. -DUSE_X11=$(usex X)
  127. -DPSI_PLUS=$(usex extras)
  128. -DVERBOSE_PROGRAM_NAME=ON
  129. -DIRIS_BUNDLED_QCA=ON
  130. -DQT_DEFAULT_MAJOR_VERSION=$(usex qt6 6 5)
  131. )
  132. cmake_src_configure
  133. }
  134. src_compile() {
  135. cmake_src_compile
  136. use doc && emake -C doc api_public
  137. }
  138. src_install() {
  139. cmake_src_install
  140. # this way the docs will be installed in the standard gentoo dir
  141. rm "${ED}"/usr/share/${MY_PN}/{COPYING,README.html} || die "doc files set seems to have changed"
  142. newdoc iconsets/roster/README README.roster
  143. newdoc iconsets/system/README README.system
  144. newdoc certs/README README.certs
  145. dodoc README.html
  146. use doc && HTML_DOCS=( doc/api/. )
  147. einstalldocs
  148. # install translations
  149. local qtbin=${EPREFIX}/usr/$(get_libdir)/qt$(usex qt6 6 5)/bin
  150. local mylrelease="$qtbin"/lrelease
  151. cd "${WORKDIR}/psi-l10n" || die
  152. insinto /usr/share/${MY_PN}
  153. install_locale() {
  154. "${mylrelease}" "translations/${PN}_${1}.ts" || die "lrelease ${1} failed"
  155. doins "translations/${PN}_${1}.qm"
  156. }
  157. plocale_for_each_locale install_locale
  158. }