diff options
author | Matoro Mahri <matoro_gentoo@matoro.tk> | 2023-12-15 23:28:22 -0500 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-12-19 05:20:05 +0000 |
commit | 8a20cd57141719ddaba351259d807ed827653c9c (patch) | |
tree | ea5f061274b4de74f8c8ba2212c479e5972283ca /net-p2p/amule | |
parent | dev-perl/Mojolicious: Stabilize 9.330.0-r1 ppc, #910870 (diff) | |
download | gentoo-8a20cd57141719ddaba351259d807ed827653c9c.tar.gz gentoo-8a20cd57141719ddaba351259d807ed827653c9c.tar.bz2 gentoo-8a20cd57141719ddaba351259d807ed827653c9c.zip |
net-p2p/amule: wire up tests
See: https://github.com/amule-project/amule/issues/342
See: https://github.com/amule-project/amule/pull/368
Bug: https://bugs.gentoo.org/841296
Signed-off-by: Matoro Mahri <matoro_gentoo@matoro.tk>
Closes: https://github.com/gentoo/gentoo/pull/34307
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-p2p/amule')
-rw-r--r-- | net-p2p/amule/amule-2.3.3-r2.ebuild | 159 | ||||
-rw-r--r-- | net-p2p/amule/amule-9999.ebuild | 6 | ||||
-rw-r--r-- | net-p2p/amule/files/amule-2.3.3-backport-pr368.patch | 52 |
3 files changed, 217 insertions, 0 deletions
diff --git a/net-p2p/amule/amule-2.3.3-r2.ebuild b/net-p2p/amule/amule-2.3.3-r2.ebuild new file mode 100644 index 000000000000..f4b6d406428c --- /dev/null +++ b/net-p2p/amule/amule-2.3.3-r2.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +WX_GTK_VER="3.0-gtk3" + +inherit autotools flag-o-matic wxwidgets xdg-utils + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/amule-project/amule" + inherit git-r3 +else + MY_P="${PN/m/M}-${PV}" + SRC_URI="https://download.sourceforge.net/${PN}/${MY_P}.tar.xz" + S="${WORKDIR}/${MY_P}" + KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="aMule, the all-platform eMule p2p client" +HOMEPAGE="http://www.amule.org/" + +LICENSE="GPL-2+" +SLOT="0" +IUSE="daemon debug geoip nls remote stats upnp +X" + +RDEPEND=" + dev-libs/boost:= + dev-libs/crypto++:= + sys-libs/binutils-libs:0= + sys-libs/readline:0= + sys-libs/zlib + >=x11-libs/wxGTK-3.0.4:${WX_GTK_VER}[X?] + daemon? ( acct-user/amule ) + geoip? ( dev-libs/geoip ) + nls? ( virtual/libintl ) + remote? ( + acct-user/amule + media-libs/libpng:0= + ) + stats? ( media-libs/gd:=[jpeg,png] ) + upnp? ( net-libs/libupnp:0 ) +" +DEPEND="${RDEPEND} + X? ( dev-util/desktop-file-utils ) +" +BDEPEND=" + virtual/pkgconfig + >=sys-devel/boost-m4-0.4_p20221019 + nls? ( sys-devel/gettext ) +" + +PATCHES=( + "${FILESDIR}/${PN}-2.3.2-disable-version-check.patch" + "${FILESDIR}/${PN}-2.3.3-fix-exception.patch" + "${FILESDIR}/${P}-autoconf-2.70.patch" + "${FILESDIR}/${PN}-2.3.3-backport-pr368.patch" +) + +pkg_setup() { + setup-wxwidgets +} + +src_prepare() { + default + rm m4/boost.m4 || die + + if [[ ${PV} == 9999 ]]; then + ./autogen.sh || die + else + eautoreconf + fi +} + +src_configure() { + use debug || append-cppflags -DwxDEBUG_LEVEL=0 + append-cxxflags -std=gnu++14 + + local myconf=( + --with-denoise-level=0 + --with-wx-config="${WX_CONFIG}" + --enable-amulecmd + --with-boost + $(use_enable debug) + $(use_enable daemon amule-daemon) + $(use_enable geoip) + $(use_enable nls) + $(use_enable remote webserver) + $(use_enable stats cas) + $(use_enable stats alcc) + $(use_enable upnp) + ) + + if use X; then + myconf+=( + $(use_enable remote amule-gui) + $(use_enable stats alc) + $(use_enable stats wxcas) + ) + else + myconf+=( + --disable-monolithic + --disable-amule-gui + --disable-alc + --disable-wxcas + ) + fi + + econf "${myconf[@]}" +} + +src_test() { + emake check +} + +src_install() { + default + + if use daemon; then + newconfd "${FILESDIR}"/amuled.confd-r1 amuled + newinitd "${FILESDIR}"/amuled.initd amuled + fi + if use remote; then + newconfd "${FILESDIR}"/amuleweb.confd-r1 amuleweb + newinitd "${FILESDIR}"/amuleweb.initd amuleweb + fi + + if use daemon || use remote; then + keepdir /var/lib/${PN} + fowners amule:amule /var/lib/${PN} + fperms 0750 /var/lib/${PN} + fi +} + +pkg_postinst() { + local ver + + if use daemon || use remote; then + for ver in ${REPLACING_VERSIONS}; do + if ver_test ${ver} -lt "2.3.2-r4"; then + elog "Default user under which amuled and amuleweb daemons are started" + elog "have been changed from p2p to amule. Default home directory have been" + elog "changed as well." + echo + elog "If you want to preserve old download/share location, you can create" + elog "symlink /var/lib/amule/.aMule pointing to the old location and adjust" + elog "files ownership *or* restore AMULEUSER and AMULEHOME variables in" + elog "/etc/conf.d/{amuled,amuleweb} to the old values." + + break + fi + done + fi + + use X && xdg_desktop_database_update +} + +pkg_postrm() { + use X && xdg_desktop_database_update +} diff --git a/net-p2p/amule/amule-9999.ebuild b/net-p2p/amule/amule-9999.ebuild index 1dc6203a5561..c1743eff2384 100644 --- a/net-p2p/amule/amule-9999.ebuild +++ b/net-p2p/amule/amule-9999.ebuild @@ -52,6 +52,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}/${PN}-2.3.2-disable-version-check.patch" "${FILESDIR}/${PN}-2.3.3-fix-exception.patch" + "${FILESDIR}/${PN}-2.3.3-backport-pr368.patch" ) pkg_setup() { @@ -70,6 +71,7 @@ src_prepare() { } src_configure() { + use debug || append-cppflags -DwxDEBUG_LEVEL=0 append-cxxflags -std=gnu++14 local myconf=( @@ -105,6 +107,10 @@ src_configure() { econf "${myconf[@]}" } +src_test() { + emake check +} + src_install() { default diff --git a/net-p2p/amule/files/amule-2.3.3-backport-pr368.patch b/net-p2p/amule/files/amule-2.3.3-backport-pr368.patch new file mode 100644 index 000000000000..9235276943b8 --- /dev/null +++ b/net-p2p/amule/files/amule-2.3.3-backport-pr368.patch @@ -0,0 +1,52 @@ +https://bugs.gentoo.org/841296 +https://github.com/amule-project/amule/issues/342 +https://github.com/amule-project/amule/pull/368 + +commit 1c57ce9c688d26d95fe8f9d7b7590f4670956749 +Author: matoro <matoro@users.noreply.github.com> +Date: Thu Dec 14 00:28:50 2023 -0500 + + SafeFile: do endian-swap on float tag values + + There are comments noting that writing raw float values may not be + endian-correct and indeed it is not. WX does not provide functions for + endian-swapping floats, but since amule explicitly uses exclusively + single-precision (32-bit) floats, just cast it into a uint32_t for the + swapping. + + This is a no-op on little-endian. + +diff --git a/src/SafeFile.cpp b/src/SafeFile.cpp +index 30f9a7f23..0d9c4f8e7 100644 +--- a/src/SafeFile.cpp ++++ b/src/SafeFile.cpp +@@ -31,6 +31,7 @@ + #include <common/Format.h> // Needed for CFormat + #include "CompilerSpecific.h" // Needed for __FUNCTION__ + ++#include <cstring> // For std::memcpy + + #define CHECK_BOM(size, x) ((size >= 3) && (x[0] == (char)0xEF) && (x[1] == (char)0xBB) && (x[2] == (char)0xBF)) + +@@ -189,6 +190,10 @@ float CFileDataIO::ReadFloat() const + { + float retVal; + Read(&retVal, sizeof(float)); ++ uint32_t toswap{}; ++ std::memcpy(&toswap, &retVal, sizeof(toswap)); ++ toswap = ENDIAN_SWAP_32(toswap); ++ std::memcpy(&retVal, &toswap, sizeof(retVal)); + return retVal; + } + +@@ -306,6 +311,10 @@ void CFileDataIO::WriteHash(const CMD4Hash& value) + + void CFileDataIO::WriteFloat(float value) + { ++ uint32_t toswap{}; ++ std::memcpy(&toswap, &value, sizeof(toswap)); ++ toswap = ENDIAN_SWAP_32(toswap); ++ std::memcpy(&value, &toswap, sizeof(value)); + Write(&value, sizeof(float)); + } + |