summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2024-10-04 21:11:02 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2024-10-04 23:03:17 +0200
commitb0711247d6637ff1bb483708a0849a4bd21a9532 (patch)
tree75b02de6d3b5a0b0ebf0c2691d5b7195c948f71c /net-libs/signond
parentnet-libs/accounts-qt: Drop IUSE qt6, don't enable qt5 by default (diff)
downloadgentoo-b0711247d6637ff1bb483708a0849a4bd21a9532.tar.gz
gentoo-b0711247d6637ff1bb483708a0849a4bd21a9532.tar.bz2
gentoo-b0711247d6637ff1bb483708a0849a4bd21a9532.zip
net-libs/signond: Drop IUSE qt6, don't enable qt5 by default
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'net-libs/signond')
-rw-r--r--net-libs/signond/signond-8.61-r101.ebuild150
1 files changed, 150 insertions, 0 deletions
diff --git a/net-libs/signond/signond-8.61-r101.ebuild b/net-libs/signond/signond-8.61-r101.ebuild
new file mode 100644
index 000000000000..1f6aa38aae06
--- /dev/null
+++ b/net-libs/signond/signond-8.61-r101.ebuild
@@ -0,0 +1,150 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit qmake-utils multibuild
+
+if [[ ${PV} = *9999* ]] ; then
+ EGIT_REPO_URI="https://gitlab.com/nicolasfella/signond.git/"
+ EGIT_BRANCH="qt6"
+ inherit git-r3
+else
+ SRC_URI="https://gitlab.com/accounts-sso/${PN}/-/archive/VERSION_${PV}/${PN}-VERSION_${PV}.tar.bz2 -> ${P}.tar.bz2"
+ S="${WORKDIR}/${PN}-VERSION_${PV}"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="Signon daemon for libaccounts-glib"
+HOMEPAGE="https://gitlab.com/accounts-sso"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+# The qt5/qt6 situation is complicated:
+# https://gitlab.com/accounts-sso/signon-plugin-oauth2/-/merge_requests/28#note_1689621252
+# 1) the library is coinstallable for qt5/qt6
+# 2) signond (the daemon) must be built for only one Qt version, matching the
+# Qt version of all consumer plugins.
+IUSE="doc qt5 test"
+
+# tests are brittle; they all pass when stars align, bug 727666
+RESTRICT="test !test? ( test )"
+
+RDEPEND="
+ dev-qt/qtbase:6[dbus,gui,network,sql]
+ net-libs/libproxy
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtsql:5
+ )
+"
+DEPEND="${RDEPEND}
+ test? ( qt5? ( dev-qt/qttest:5 ) )
+"
+BDEPEND="
+ doc? (
+ app-text/doxygen[dot]
+ || (
+ dev-qt/qttools:6[assistant]
+ dev-qt/qthelp:5
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/0001-Don-t-forward-declare-QStringList.patch
+ "${FILESDIR}"/0002-Remove-usage-of-Q_EXTERN_C.patch
+ "${FILESDIR}"/0003-Port-from-QProcess-pid-to-processId.patch
+ "${FILESDIR}"/0004-Port-away-from-deprecated-QString-SplitBehavior.patch
+ "${FILESDIR}"/0005-Port-away-from-QtContainer-toSet.patch
+ "${FILESDIR}"/0006-Port-away-from-deprecated-QMap-unite.patch
+ "${FILESDIR}"/0008-Use-return-instead-of-reference-for-DBus-output-para.patch
+ "${FILESDIR}"/0009-Adjust-buildsystem-to-include-correct-Qt-Major-versi.patch
+ "${FILESDIR}"/0010-Fix-plugin-datastream-in-Qt6.patch
+ "${FILESDIR}"/0011-Port-away-from-deprecated-QProcess-signal.patch
+ "${FILESDIR}/${PN}-8.60-buildsystem.patch"
+ "${FILESDIR}/${PN}-8.60-unused-dep.patch" # bug 727346
+ "${FILESDIR}/${PN}-8.61-consistent-paths.patch" # bug 701142
+)
+
+pkg_setup() {
+ MULTIBUILD_VARIANTS=( $(usev qt5) qt6 )
+}
+
+src_prepare() {
+ default
+
+ local qhelpgeneratorpath
+ if has_version "dev-qt/qttools:6[assistant]"; then
+ qhelpgeneratorpath="$(qt6_get_libdir)/qt6/libexec"
+ elif has_version "dev-qt/qthelp:5"; then
+ qhelpgeneratorpath="$(qt5_get_bindir)"
+ else
+ eerror "dev-qt/qttools:6[assistant] nor dev-qt/qthelp:5 available even though in deps(?)"
+ fi
+
+ sed -e "/QHG_LOCATION/s|qhelpgenerator|${qhelpgeneratorpath}/&|" \
+ -i {lib/plugins/,lib/SignOn/,}doc/doxy.conf || die
+
+ # install docs to correct location
+ sed -e "s|share/doc/\$\${PROJECT_NAME}|share/doc/${PF}|" \
+ -i doc/doc.pri || die
+ sed -e "/^documentation.path = /c\documentation.path = \$\${INSTALL_PREFIX}/share/doc/${PF}/\$\${TARGET}/" \
+ -i lib/plugins/doc/doc.pri || die
+ sed -e "/^documentation.path = /c\documentation.path = \$\${INSTALL_PREFIX}/share/doc/${PF}/libsignon-qt/" \
+ -i lib/SignOn/doc/doc.pri || die
+
+ use doc || sed -e "/include(\s*doc\/doc.pri\s*)/d" \
+ -i signon.pro lib/SignOn/SignOn.pro lib/plugins/plugins.pro || die
+
+ use test || sed -e '/^SUBDIRS/s/tests//' \
+ -i signon.pro || die "couldn't disable tests"
+
+ multibuild_copy_sources
+}
+
+src_configure() {
+ my_src_configure() {
+ cd "${BUILD_DIR}" || die
+
+ local myqmakeargs=(
+ PREFIX="${EPREFIX}"/usr
+ LIBDIR=$(get_libdir)
+ )
+
+ if [[ ${MULTIBUILD_VARIANT} == qt6 ]]; then
+ eqmake6 "${myqmakeargs[@]}"
+ else
+ eqmake5 "${myqmakeargs[@]}"
+ fi
+ }
+
+ multibuild_foreach_variant my_src_configure
+}
+
+src_compile() {
+ my_src_compile() {
+ emake -C "${BUILD_DIR}"
+ }
+
+ multibuild_foreach_variant my_src_compile
+}
+
+src_install() {
+ my_src_install() {
+ emake -C "${BUILD_DIR}" INSTALL_ROOT="${D}" install
+ }
+
+ multibuild_foreach_variant my_src_install
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]] && \
+ ! has_version "kde-apps/signon-kwallet-extension:*"; then
+ ewarn "Without kde-apps/signon-kwallet-extension installed, passwords"
+ ewarn "will be saved in plaintext!"
+ fi
+}