commit:     97e8dff60cf6729e421d7efb4cd80006faead8e6
Author:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  4 14:41:06 2023 +0000
Commit:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Wed Oct  4 14:41:30 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97e8dff6

net-im/swift: add 4.0.3

Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>

 net-im/swift/Manifest                              |   2 +
 .../files/swift-4.0.3-gcc11-compatibility.patch    |  13 ++
 .../files/swift-4.0.3-reproducible-build.patch     |  21 +++
 net-im/swift/swift-4.0.3.ebuild                    | 207 +++++++++++++++++++++
 4 files changed, 243 insertions(+)

diff --git a/net-im/swift/Manifest b/net-im/swift/Manifest
index 197a384ef7aa..877ecee33790 100644
--- a/net-im/swift/Manifest
+++ b/net-im/swift/Manifest
@@ -1,2 +1,4 @@
 DIST swift-4.0.2-python3-compatibility.patch.gz 14959 BLAKE2B 
17b75950bba9252bb76e30eb9fadb9eaaaad6d693a09f6fa357fe174ade1bd283d00838e87b55059e0601edc5d72c02c952f53ca16dd597010c9f0ffe955662a
 SHA512 
fac9cf0a85b55b1b9bba786cc6456ceaa6257d5f2cdd4d41c4fdee526c301de94bb6f7c71bc00aaec992d0aaf3787e2db3e9c7eed6ec88facea776db66941dba
 DIST swift-4.0.2.tar.gz 19083393 BLAKE2B 
de4ad1c3d68dfc4d693cdebdf4e18809210aa4e83af31b77bf730c7018507877852b5ea634623c037250de4005606108bd0372d39177093769c5dc5f72bd4812
 SHA512 
b7d4b90f387d5ea4ac3ca31794eabd1f12a64274628d75c7570f40269777b9003182884730a6340c5e0b5b7928a68bda5e49be623b47da9fa64fe4c3f25be167
+DIST swift-4.0.3-python3-compatibility.patch.gz 14964 BLAKE2B 
ec98bee12734eb00037433b2791817d24a0a53effa653268a886b59358fb82f8e6c05739165f2518c9c5ad5b7ddfcef90734964eb6de647a24197e69b333ebc9
 SHA512 
95e1a0c49158cbf1392442103c960e2d458a99b34c3f32cdb47fec2d195b709d6c4b0c2961b4c49d05c19e590f2e2ca836c6f559b960015030bf8375b0604c3f
+DIST swift-4.0.3.tar.bz2 15124142 BLAKE2B 
23896b72ffecc5148ade806ec6610c5edfa67ae9000e28383c7cf5a3c8bf275a6fc8208d1d6e7c7715e75bf133869ed404fd35bfb13998849209def3aab46c07
 SHA512 
59ebf69391f2cbdce538f0ee925f55eec0e8463c2f9b90899cb314f2a036f40ebdc357c4b6a6d3b71ae800ccf6ee6df5ff6011949ea0bb189cdf3e9f231e9733

diff --git a/net-im/swift/files/swift-4.0.3-gcc11-compatibility.patch 
b/net-im/swift/files/swift-4.0.3-gcc11-compatibility.patch
new file mode 100644
index 000000000000..4d94c2d10503
--- /dev/null
+++ b/net-im/swift/files/swift-4.0.3-gcc11-compatibility.patch
@@ -0,0 +1,13 @@
+diff --git a/Swift/Controllers/ShowProfileController.h 
b/Swift/Controllers/ShowProfileController.h
+index 0d01ba1a0..5dc7197ff 100644
+--- a/Swift/Controllers/ShowProfileController.h
++++ b/Swift/Controllers/ShowProfileController.h
+@@ -18,6 +18,8 @@
+ 
+ #include <Swift/Controllers/UIEvents/UIEvent.h>
+ 
++#include <map>
++
+ namespace Swift {
+     class VCardManager;
+     class ProfileWindow;

diff --git a/net-im/swift/files/swift-4.0.3-reproducible-build.patch 
b/net-im/swift/files/swift-4.0.3-reproducible-build.patch
new file mode 100644
index 000000000000..951678f2303f
--- /dev/null
+++ b/net-im/swift/files/swift-4.0.3-reproducible-build.patch
@@ -0,0 +1,21 @@
+commit 39a684108ae5938105498e7744e70962308cde7b
+Author: kpcyrd <[email protected]>
+Date:   Wed Aug 25 23:30:17 2021 +0200
+
+    Reproducible Builds: Sort directory contents at build
+
+diff --git a/Swiften/SConscript b/Swiften/SConscript
+index f52637bdb..334f4489e 100644
+--- a/Swiften/SConscript
++++ b/Swiften/SConscript
+@@ -567,7 +567,9 @@ if env["SCONS_STAGE"] == "build" :
+     swiften_includes = []
+     swiften_public_includes = []
+     top_path = env.Dir("..").abspath
+-    for root, dirs, files in os.walk(env.Dir(".").abspath) :
++    for root, dirs, files in sorted(os.walk(env.Dir(".").abspath)) :
++        dirs.sort()
++        files.sort()
+         if root.endswith("UnitTest") :
+             continue
+         for file in files :

diff --git a/net-im/swift/swift-4.0.3.ebuild b/net-im/swift/swift-4.0.3.ebuild
new file mode 100644
index 000000000000..36ac7c1ee8ed
--- /dev/null
+++ b/net-im/swift/swift-4.0.3.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-{1..2} luajit )
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit lua-single python-any-r1 scons-utils toolchain-funcs
+
+DESCRIPTION="An elegant, secure, adaptable and intuitive XMPP Client"
+HOMEPAGE="https://www.swift.im/";
+SRC_URI="
+       https://swift.im/git/${PN}/snapshot/${PN}-${P}.tar.bz2 -> ${P}.tar.bz2
+       
https://dev.gentoo.org/~conikost/distfiles/patches/${P}-python3-compatibility.patch.gz
+"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="BSD BSD-1 CC-BY-3.0 GPL-3 OFL-1.1"
+SLOT="4/0"
+KEYWORDS="~amd64"
+IUSE="expat +icu +idn lua test zeroconf"
+REQUIRED_USE="
+       || ( icu idn )
+       lua? ( ${LUA_REQUIRED_USE} )
+"
+
+RDEPEND="
+       dev-db/sqlite:3
+       dev-libs/boost:=
+       dev-libs/openssl:0=
+       net-libs/libnatpmp
+       net-libs/miniupnpc:=
+       sys-libs/zlib
+       expat? ( dev-libs/expat )
+       !expat? ( dev-libs/libxml2:2 )
+       icu? ( dev-libs/icu:= )
+       idn? ( net-dns/libidn:= )
+       lua? ( ${LUA_DEPS} )
+"
+
+DEPEND="
+       ${RDEPEND}
+       >=dev-util/scons-3.0.1-r3
+       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}"/${PN}-4.0.2-boost-1.69-compatibility.patch
+       "${FILESDIR}"/${PN}-4.0.2-qt-5.15-compatibility.patch
+       "${FILESDIR}"/${PN}-4.0.3-gcc11-compatibility.patch
+       "${WORKDIR}"/${PN}-4.0.3-python3-compatibility.patch
+       "${FILESDIR}"/${PN}-4.0.3-reproducible-build.patch
+)
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+       use lua && lua-single_pkg_setup
+}
+
+src_prepare() {
+       default
+
+       # Don't include '/usr/lib*' in the link command line for 
`swiften-config`
+       sed -e '/_LIBDIRFLAGS/d' -i Swiften/Config/SConscript || die
+
+       # Use correct LIBDIR for Lua
+       sed -e "s/lib/$(get_libdir)/g" -i Sluift/SConscript.variant || die
+
+       # 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
+       rm -fr Swift Slimber || die
+       if ! use lua; then rm -fr Sluift || die; fi
+       if ! use zeroconf; then rm -fr Limber || die; 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="no"
+               experimental_ft="yes"
+               hunspell_enable="no"
+               icu="$(usex icu)"
+               install_git_hooks="no"
+               # Use 'DISABLE' as an invalid lib name, so no editline lib is 
used,
+               # as current version is not compatible and compilation will 
fail.
+               editline_libname="DISABLE"
+               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="no"
+               swiften_dll="true"
+               swift_mobile="no"
+               target="native"
+               test="none"
+               try_avahi="no"
+               try_expat="$(usex expat)"
+               try_gconf="no"
+               try_libidn="$(usex idn)"
+               try_libxml="$(usex !expat)"
+               tls_backend="openssl"
+               unbound="no"
+               V="1"
+               valgrind="no"
+               zlib_bundled_enable="false"
+       )
+
+       if use lua; then
+               MYSCONS+=(
+                       lua_includedir="$(lua_get_include_dir)"
+                       lua_libdir="${EPREFIX}/usr/$(get_libdir)"
+                       lua_libname="$(basename -s '.so' $(lua_get_shared_lib))"
+               )
+       fi
+}
+
+src_compile() {
+       local myesconsinstall=(
+               Swiften
+               $(usex lua Sluift '')
+               $(usex zeroconf Limber '')
+       )
+
+       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 lua "SLUIFT_DIR=${ED}/usr" '')
+               $(usex lua "SLUIFT_INSTALLDIR=${ED}/usr" '')
+               "${ED}"
+       )
+
+       escons "${MYSCONS[@]}" "${myesconsinstall[@]}"
+
+       use zeroconf && dobin Limber/limber
+
+       einstalldocs
+}

Reply via email to