# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 PLOCALES="be bg ca cs de en eo es et fa fi fr he hu it ja kk mk nl pl pt pt_BR ru sk sl sr@latin sv sw uk ur_PK vi zh_CN zh_TW" PLOCALE_BACKUP="en" inherit l10n git-r3 qmake-utils xdg DESCRIPTION="Qt XMPP client" HOMEPAGE="https://psi-im.org" PSI_URI="https://github.com/psi-im" PSI_PLUS_URI="https://github.com/psi-plus" EGIT_REPO_URI="${PSI_URI}/${PN}.git" PSI_LANGS_URI="${PSI_URI}/psi-l10n.git" PSI_PLUS_LANGS_URI="${PSI_PLUS_URI}/psi-plus-l10n.git" EGIT_MIN_CLONE_TYPE="single" LICENSE="GPL-2" SLOT="0" KEYWORDS="" IUSE="aspell crypt dbus debug doc enchant extras +hunspell iconsets sql webengine webkit whiteboarding xscreensaver" REQUIRED_USE=" ?? ( aspell enchant hunspell ) iconsets? ( extras ) sql? ( extras ) webengine? ( !webkit ) " BDEPEND=" dev-qt/linguist-tools:5 virtual/pkgconfig doc? ( app-doc/doxygen ) extras? ( >=sys-devel/qconf-2.4 ) " DEPEND=" app-crypt/qca:2[ssl] dev-qt/qtconcurrent:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtmultimedia:5 dev-qt/qtnetwork:5 dev-qt/qtsql:5[sqlite] dev-qt/qtwidgets:5 dev-qt/qtx11extras:5 dev-qt/qtxml:5 net-dns/libidn:0 sys-libs/zlib[minizip] x11-libs/libX11 x11-libs/libxcb aspell? ( app-text/aspell ) dbus? ( dev-qt/qtdbus:5 ) enchant? ( >=app-text/enchant-1.3.0:0 ) hunspell? ( app-text/hunspell:= ) webengine? ( dev-qt/qtwebchannel:5 dev-qt/qtwebengine:5[widgets] net-libs/http-parser ) webkit? ( dev-qt/qtwebkit:5 ) whiteboarding? ( dev-qt/qtsvg:5 ) xscreensaver? ( x11-libs/libXScrnSaver ) " RDEPEND="${DEPEND} dev-qt/qtimageformats " RESTRICT="test iconsets? ( bindist )" pkg_setup() { MY_PN=psi if use extras; then MY_PN=psi-plus ewarn "You're about to build patched version of Psi called Psi+." ewarn "It has new nice features not yet included to Psi." ewarn "Take a look at homepage for more info: http://psi-plus.com/" if use iconsets; then ewarn ewarn "Some artwork is from open source projects, but some is provided 'as-is'" ewarn "and has not clear licensing." ewarn "Possibly this build is not redistributable in some countries." fi fi } src_unpack() { git-r3_src_unpack # fetch translations unset EGIT_BRANCH EGIT_COMMIT EGIT_REPO_URI=$(usex extras "${PSI_PLUS_LANGS_URI}" "${PSI_LANGS_URI}") EGIT_CHECKOUT_DIR="${WORKDIR}/psi-l10n" git-r3_src_unpack if use extras; then unset EGIT_BRANCH EGIT_COMMIT EGIT_CHECKOUT_DIR="${WORKDIR}/psi-plus" \ EGIT_REPO_URI="${PSI_PLUS_URI}/main.git" \ git-r3_src_unpack if use iconsets; then unset EGIT_BRANCH EGIT_COMMIT EGIT_CHECKOUT_DIR="${WORKDIR}/resources" \ EGIT_REPO_URI="${PSI_PLUS_URI}/resources.git" \ git-r3_src_unpack fi fi } src_prepare() { default if use extras; then cp -a "${WORKDIR}/psi-plus/iconsets" "${S}" || die "failed to copy iconsets" if use iconsets; then cp -a "${WORKDIR}/resources/iconsets" "${S}" || die "failed to copy additional iconsets" fi eapply "${WORKDIR}/psi-plus/patches"/*.diff use sql && eapply "${WORKDIR}/psi-plus/patches/dev/psi-new-history.patch" vergen="${WORKDIR}/psi-plus/admin/psi-plus-nightly-version" features="$(use webkit && echo '--webkit') $(use webengine && echo '--webengine') $(use sql && echo '--sql')" NIGHTLY_VER=$("${vergen}" ./ $features) elog "Prepared version: ${NIGHTLY_VER}" echo "${NIGHTLY_VER}" > version || die "Failed to write version file" qconf || die "Failed to create ./configure." fi } src_configure() { CONF=( --prefix="${EPREFIX}"/usr --libdir="${EPREFIX}"/usr/$(get_libdir) --no-separate-debug-info --qtdir="$(qt5_get_bindir)/.." $(use_enable aspell) $(use_enable dbus qdbus) $(use_enable enchant) $(use_enable hunspell) $(use_enable xscreensaver xss) $(use_enable whiteboarding) ) use debug && CONF+=("--debug") use webengine && CONF+=("--enable-webkit" "--with-webkit=qtwebengine") use webkit && CONF+=("--enable-webkit" "--with-webkit=qtwebkit") # This may generate warnings if passed option already matches with default. # Just ignore them. It's how qconf-based configure works and will be fixed in # future qconf versions. ./configure "${CONF[@]}" || die "configure failed" eqmake5 psi.pro } src_compile() { emake use doc && emake -C doc api_public } src_install() { emake INSTALL_ROOT="${D}" install # this way the docs will be installed in the standard gentoo dir rm "${ED}"/usr/share/${MY_PN}/{COPYING,README.html} || die "doc files set seems to have changed" newdoc iconsets/roster/README README.roster newdoc iconsets/system/README README.system newdoc certs/README README.certs dodoc README.html use doc && HTML_DOCS=( doc/api/. ) einstalldocs # install translations local mylrelease="$(qt5_get_bindir)"/lrelease cd "${WORKDIR}/psi-l10n" || die insinto /usr/share/${MY_PN} install_locale() { "${mylrelease}" "translations/${PN}_${1}.ts" || die "lrelease ${1} failed" doins "translations/${PN}_${1}.qm" } l10n_for_each_locale_do install_locale } pkg_postinst() { xdg_pkg_postinst einfo "For GPG support make sure app-crypt/qca is compiled with gpg USE flag." }