diff options
Diffstat (limited to 'net-im/swift')
-rw-r--r-- | net-im/swift/Manifest | 2 | ||||
-rw-r--r-- | net-im/swift/files/swift-4.0.3-gcc11-compatibility.patch | 13 | ||||
-rw-r--r-- | net-im/swift/files/swift-4.0.3-reproducible-build.patch | 21 | ||||
-rw-r--r-- | net-im/swift/swift-4.0.3.ebuild | 207 |
4 files changed, 243 insertions, 0 deletions
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 <git@rxv.cc> +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 +} |