You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
5.1 KiB
193 lines
5.1 KiB
# Copyright 1999-2019 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 )
|
|
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."
|
|
}
|