diff options
author | Conrad Kostecki <conrad@kostecki.com> | 2018-11-17 00:46:47 +0100 |
---|---|---|
committer | Andrey Utkin <andrey_utkin@gentoo.org> | 2018-11-24 02:44:56 +0000 |
commit | 69bd066772638de9aa56483b6dbd7b9bb5a79308 (patch) | |
tree | dd3033fb35a400b1dc8622383844a369e3a47c36 /net-im | |
parent | www-client/chromium: remove old (diff) | |
download | gentoo-69bd066772638de9aa56483b6dbd7b9bb5a79308.tar.gz gentoo-69bd066772638de9aa56483b6dbd7b9bb5a79308.tar.bz2 gentoo-69bd066772638de9aa56483b6dbd7b9bb5a79308.zip |
net-im/swift: New package
An elegant, secure, adaptable and intuitive XMPP client.
Closes: https://bugs.gentoo.org/334887
Closes: https://bugs.gentoo.org/652464
Package-Manager: Portage-2.3.51, Repoman-2.3.12
Signed-off-by: Conrad Kostecki <conrad@kostecki.com>
Signed-off-by: Andrey Utkin <andrey_utkin@gentoo.org>
Diffstat (limited to 'net-im')
-rw-r--r-- | net-im/swift/Manifest | 1 | ||||
-rw-r--r-- | net-im/swift/files/swift-4.0.2-make-generated-files-handle-unicode-characters.patch | 38 | ||||
-rw-r--r-- | net-im/swift/files/swift-4.0.2-qt-5.11-compatibility.patch | 35 | ||||
-rw-r--r-- | net-im/swift/metadata.xml | 23 | ||||
-rw-r--r-- | net-im/swift/swift-4.0.2.ebuild | 207 |
5 files changed, 304 insertions, 0 deletions
diff --git a/net-im/swift/Manifest b/net-im/swift/Manifest new file mode 100644 index 000000000000..d0e86af54c3a --- /dev/null +++ b/net-im/swift/Manifest @@ -0,0 +1 @@ +DIST swift-4.0.2.tar.gz 19083393 BLAKE2B de4ad1c3d68dfc4d693cdebdf4e18809210aa4e83af31b77bf730c7018507877852b5ea634623c037250de4005606108bd0372d39177093769c5dc5f72bd4812 SHA512 b7d4b90f387d5ea4ac3ca31794eabd1f12a64274628d75c7570f40269777b9003182884730a6340c5e0b5b7928a68bda5e49be623b47da9fa64fe4c3f25be167 diff --git a/net-im/swift/files/swift-4.0.2-make-generated-files-handle-unicode-characters.patch b/net-im/swift/files/swift-4.0.2-make-generated-files-handle-unicode-characters.patch new file mode 100644 index 000000000000..7fd2e386d9d9 --- /dev/null +++ b/net-im/swift/files/swift-4.0.2-make-generated-files-handle-unicode-characters.patch @@ -0,0 +1,38 @@ +From 39ff091cddf8fd5e01047d80c7ed60c150537705 Mon Sep 17 00:00:00 2001 +From: Thanos Doukoudakis <thanos.doukoudakis@isode.com> +Date: Fri, 11 May 2018 11:26:39 +0100 +Subject: Make generated files handle Unicode characters + +This patch handles a case where some of the files used to generate COPYING, +were containing unicode strings, which could lead to a failure when building +sid package. The code now will check the type of the string before writing to +the file, and if needed it will transform it to the appropriate format. + +Test-Information: +Generated the sid package with package_all_platforms script with no problems. +Created a debian sid box and tested the installation of the generated +packages. Validated the output generated in Windows 10 and Ubuntu 16.04 builds +through the "About" dialog in Swift. + +Change-Id: I05e518b758f316d9fbf23c1079be5a462e75106c + +diff --git a/BuildTools/SCons/Tools/textfile.py b/BuildTools/SCons/Tools/textfile.py +index 89f8963..9b424f2 100644 +--- a/BuildTools/SCons/Tools/textfile.py ++++ b/BuildTools/SCons/Tools/textfile.py +@@ -113,7 +113,11 @@ def _action(target, source, env): + lsep = None + for s in source: + if lsep: fd.write(lsep) +- fd.write(_do_subst(s, subs)) ++ stringtowrite = _do_subst(s, subs) ++ if isinstance(stringtowrite, str): ++ fd.write(stringtowrite) ++ elif isinstance(stringtowrite, unicode): ++ fd.write(stringtowrite.encode('utf-8')) + lsep = linesep + fd.close() + +-- +cgit v0.10.2-6-g49f6 + diff --git a/net-im/swift/files/swift-4.0.2-qt-5.11-compatibility.patch b/net-im/swift/files/swift-4.0.2-qt-5.11-compatibility.patch new file mode 100644 index 000000000000..db633945b49d --- /dev/null +++ b/net-im/swift/files/swift-4.0.2-qt-5.11-compatibility.patch @@ -0,0 +1,35 @@ +From 1d18148c86377787a8c77042b12ea66f20cb2ca9 Mon Sep 17 00:00:00 2001 +From: Tobias Markmann <tm@ayena.de> +Date: Thu, 21 Jun 2018 13:04:56 +0200 +Subject: Add missing include for QAbstractItemModel + +This fixes building Swift with Qt 5.11. + +Test-Information: + +Builds and tests pass on macOS 10.13.5 with Qt 5.11.0. + +Change-Id: I1be2cd081d8a520ec38ab7cca5ada0d7fc39b777 + +diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.h b/Swift/QtUI/UserSearch/QtUserSearchWindow.h +index 0714ac1..fe536ab 100644 +--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.h ++++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.h +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2010-2016 Isode Limited. ++ * Copyright (c) 2010-2018 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ +@@ -8,6 +8,7 @@ + + #include <set> + ++#include <QAbstractItemModel> + #include <QWizard> + + #include <Swiften/Base/Override.h> +-- +cgit v0.10.2-6-g49f6 + diff --git a/net-im/swift/metadata.xml b/net-im/swift/metadata.xml new file mode 100644 index 000000000000..acb7295d48a0 --- /dev/null +++ b/net-im/swift/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>ck+gentoo@bl4ckb0x.de</email> + <name>Conrad Kostecki</name> + </maintainer> + <maintainer type="project"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription> + Swift is an elegant, secure, adaptable and intuitive XMPP client, + with features that make it suitable for a wide range of use scenarios. + Swiften is a robust, high-quality, standards-compliant, + cross-platform, and performant C++ library for + implementing XMPP applications. + </longdescription> + <use> + <flag name="client">Build the full graphical XMPP client.</flag> + <flag name="gconf">Enable configuration through <pkg>gnome-base/gconf</pkg>.</flag> + </use> +</pkgmetadata> diff --git a/net-im/swift/swift-4.0.2.ebuild b/net-im/swift/swift-4.0.2.ebuild new file mode 100644 index 000000000000..c67278ade281 --- /dev/null +++ b/net-im/swift/swift-4.0.2.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit gnome2-utils scons-utils toolchain-funcs + +DESCRIPTION="An elegant, secure, adaptable and intuitive XMPP Client" +HOMEPAGE="https://www.swift.im/" +SRC_URI="https://swift.im/downloads/releases/${P}/${P}.tar.gz" + +LICENSE="BSD BSD-1 CC-BY-3.0 GPL-3 OFL-1.1" +SLOT="4/0" +KEYWORDS="~amd64" +IUSE="client expat gconf +icu +idn lua spell test zeroconf" +REQUIRED_USE=" + || ( icu idn ) + gconf? ( client ) + spell? ( client ) +" + +RDEPEND=" + dev-db/sqlite:3 + dev-libs/boost:= + dev-libs/openssl:0= + net-libs/libnatpmp + net-libs/miniupnpc:= + sys-libs/zlib:= + client? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qtmultimedia:5 + dev-qt/qtnetwork:5 + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5 + dev-qt/qtwebkit:5 + dev-qt/qtx11extras:5 + net-dns/avahi + ) + expat? ( dev-libs/expat ) + !expat? ( dev-libs/libxml2:2 ) + gconf? ( gnome-base/gconf:2 ) + icu? ( dev-libs/icu:= ) + idn? ( net-dns/libidn:= ) + lua? ( dev-lang/lua:= ) + spell? ( app-text/hunspell:= ) +" + +DEPEND=" + ${RDEPEND} + >=dev-util/scons-3.0.1-r3 + client? ( dev-qt/linguist-tools:5 ) + test? ( net-dns/avahi ) +" + +# Tests don't run, as they fail with "[QA/UnitTest/**dummy**] Error -6". +RESTRICT="test" + +DOCS=( + "DEVELOPMENT.md" + "README.md" + "Swiften/ChangeLog.md" +) + +PATCHES=( + "${FILESDIR}"/${P}-make-generated-files-handle-unicode-characters.patch + "${FILESDIR}"/${P}-qt-5.11-compatibility.patch +) + +src_prepare() { + default + + # Hack for finding Qt system libs + mkdir "${T}"/qt || die + ln -s "${EPREFIX%/}"/usr/$(get_libdir)/qt5/bin "${T}"/qt/bin || die + ln -s "${EPREFIX%/}"/usr/$(get_libdir)/qt5 "${T}"/qt/lib || die + ln -s "${EPREFIX%/}"/usr/include/qt5 "${T}"/qt/include || die + + # Remove parts of Swift, which a user don't want to compile + if ! use client; then rm -fr Swift Slimber || die; fi + if ! use lua; then rm -fr Sluift || die; fi + if ! use zeroconf; then + rm -fr Limber || die + if use client; then rm -fr Slimber || die; fi + fi + + # Remove '3rdParty', as the system libs should be used + # `CppUnit`, `GoogleTest` and `HippoMocks` are needed for tests + local my3rdparty=( + Boost + Breakpad + DocBook + Expat + LCov + Ldns + LibIDN + LibMiniUPnPc + LibNATPMP + Lua + OpenSSL + SCons + SQLite + Unbound + ZLib + ) + + if use test; then + cd 3rdParty && rm -fr "${my3rdparty[@]}" || die + else + rm -fr 3rdParty || die + fi +} + +src_configure() { + MYSCONS=( + ar="$(tc-getAR)" + allow_warnings="yes" + assertions="no" + build_examples="yes" + boost_bundled_enable="false" + boost_force_bundled="false" + cc="$(tc-getCC)" + ccache="no" + ccflags="${CFLAGS}" + coverage="no" + cxx="$(tc-getCXX)" + cxxflags="${CXXFLAGS}" + debug="no" + distcc="no" + experimental="yes" + experimental_ft="yes" + hunspell_enable="$(usex spell)" + icu="$(usex icu)" + install_git_hooks="no" + libidn_bundled_enable="false" + libminiupnpc_force_bundled="false" + libnatpmp_force_bundled="false" + link="$(tc-getCXX)" + linkflags="${LDFLAGS}" + max_jobs="no" + optimize="no" + qt="${T}/qt" + qt5="$(usex client)" + swiften_dll="true" + swift_mobile="no" + target="native" + test="none" + try_avahi="$(usex client)" + try_expat="$(usex expat)" + try_gconf="$(usex gconf)" + try_libidn="$(usex idn)" + try_libxml="$(usex !expat)" + tls_backend="openssl" + unbound="no" + V="1" + valgrind="no" + zlib_bundled_enable="false" + ) +} + +src_compile() { + local myesconsinstall=( + Swiften + $(usex client Swift '') + $(usex lua Sluift '') + $(usex zeroconf Limber '') + $(usex zeroconf "$(usex client Slimber '')" '') + ) + + escons "${MYSCONS[@]}" "${myesconsinstall[@]}" +} + +src_test() { + MYSCONS=( + V="1" + ) + + escons "${MYSCONS[@]}" test=unit QA +} + +src_install() { + local myesconsinstall=( + SWIFTEN_INSTALLDIR="${ED%/}/usr" + SWIFTEN_LIBDIR="${ED%/}/usr/$(get_libdir)" + $(usex client "SWIFT_INSTALLDIR=${ED%/}/usr" '') + $(usex lua "SLUIFT_DIR=${ED%/}/usr" '') + $(usex lua "SLUIFT_INSTALLDIR=${ED%/}/usr" '') + "${ED}" + ) + + escons "${MYSCONS[@]}" "${myesconsinstall[@]}" + + use zeroconf && dobin Limber/limber + use zeroconf && use client && newbin Slimber/CLI/slimber slimber-cli + use zeroconf && use client && newbin Slimber/Qt/slimber slimber-qt + + einstalldocs +} + +pkg_postinst() { + use client && gnome2_icon_cache_update +} + +pkg_postrm() { + use client && gnome2_icon_cache_update +} |