net-misc/meganz-sdk: add 7.12.0

Signed-off-by: Alfred Wingate <parona@protonmail.com>
This commit is contained in:
Alfred Wingate 2024-10-18 01:05:54 +03:00
parent 7071fd4680
commit ddf957276a
No known key found for this signature in database
GPG Key ID: A12750536B5E7010
3 changed files with 152 additions and 0 deletions

View File

@ -1,2 +1,3 @@
DIST meganz-sdk-3.7.3.tar.gz 3322179 BLAKE2B c8f5f9bea8b1e030f24ae79f0fddf8027d9f770b30762caa1f013d1ca19b40a8bf7451ad6b056743c55d71c48014298f005cbc0f3b24edd932da3ba3edba62e0 SHA512 d85f04cc1cd4c1320f0e01a6d2bd52522f502f91f06ba275c8dbf0f3fb751ac195054376cf97fe7eb93934c37f68614164232486f5d3c296dc830896ca60dea9
DIST meganz-sdk-7.10.0.tar.gz 4203361 BLAKE2B b8624fa65d40086605d3debae0cea9c1d4167b2b4c54757ef5cf87f3a35cfff8d285a926b3ee12ddb03272e92a144062a1790a2189df38606d7c0741b802f4cf SHA512 6d5c648927225b01b2ef10961864093b51c3dabb2389e63a13fd2a59558ce46ac782f5bd4e16cc312c9975a3cbd8f86948f565ebd05188d6bb76693045b3ed09
DIST meganz-sdk-7.12.0.tar.gz 4229704 BLAKE2B 895a3803f9c03858ae67097b69c7fbeb94a57a4873fdb9643728a92a804614c8ec22a67f9744bb5ffc4e6b551a18e3b809549a533fa731b33c1f28e77a8d22dc SHA512 4e4a0d6822a979ef9ccd587031de61a36a82be61ef87facd5de94ae056530a9eb793b0d2a2a5db8530a7e8664b6556705bad82345c2c01c6fb3e04fe8c511af7

View File

@ -0,0 +1,27 @@
FAILED: tests/unit/CMakeFiles/test_unit.dir/utils_test.cpp.o
/usr/bin/x86_64-pc-linux-gnu-g++ -DENABLE_SYNC -DSUPPORTS_TI_EMULATION_MODE=1 -I/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/include -I/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0_build -I/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/include/mega/posix -I/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/src/fuse/common -I/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/tests -DDEBUG=1 -O3 -march=znver2 -pipe -flto=auto -fuse-linker-plugin -frecord-gcc-switches -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -std=gnu++17 -Wall -Wextra -Wconversion -Wno-unused-parameter -DGTEST_HAS_PTHREAD=1 -MD -MT tests/unit/CMakeFiles/test_unit.dir/utils_test.cpp.o -MF tests/unit/CMakeFiles/test_unit.dir/utils_test.cpp.o.d -o tests/unit/CMakeFiles/test_unit.dir/utils_test.cpp.o -c /var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/tests/unit/utils_test.cpp
/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/tests/unit/utils_test.cpp: In member function virtual void Filesystem_EscapesReservedCharacters_Test::TestBody():
/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/tests/unit/utils_test.cpp:104:26: error: setfill is not a member of std
104 | << std::setfill('0')
| ^~~~~~~
/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/tests/unit/utils_test.cpp:28:1: note: std::setfill is defined in header <iomanip>; this is probably fixable by adding #include <iomanip>
27 | #include <mega/process.h>
+++ |+#include <iomanip>
28 | #include <mega/scoped_helpers.h>
/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/tests/unit/utils_test.cpp:105:26: error: setw is not a member of std
105 | << std::setw(2)
| ^~~~
/var/tmp/portage/net-misc/meganz-sdk-7.12.0/work/sdk-7.12.0/tests/unit/utils_test.cpp:105:26: note: std::setw is defined in header <iomanip>; this is probably fixable by adding #include <iomanip>
diff --git a/tests/unit/utils_test.cpp b/tests/unit/utils_test.cpp
index f28e21623..484d20a05 100644
--- a/tests/unit/utils_test.cpp
+++ b/tests/unit/utils_test.cpp
@@ -29,6 +29,7 @@
#include <mega/utils.h>
#include <array>
+#include <iomanip>
#include <tuple>
TEST(utils, readLines)

View File

@ -0,0 +1,124 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake flag-o-matic
DESCRIPTION="MEGA C++ SDK"
HOMEPAGE="https://github.com/meganz/sdk"
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/meganz/sdk.git"
else
SRC_URI="https://github.com/meganz/sdk/archive/v${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/sdk-${PV}"
KEYWORDS="~amd64"
fi
LICENSE="BSD-2"
SLOT="0/${PV}"
IUSE="examples ffmpeg freeimage fuse libuv mediainfo qt test"
RESTRICT="!test? ( test )"
# <ffmpeg-6: https://github.com/meganz/sdk/issues/2635
RDEPEND="
dev-db/sqlite:3
dev-libs/crypto++:=
dev-libs/icu:=
dev-libs/libsodium:=
dev-libs/openssl:=
net-dns/c-ares:=
net-misc/curl
ffmpeg? ( <media-video/ffmpeg-6 )
freeimage? ( media-libs/freeimage )
fuse? ( sys-fs/fuse )
libuv? ( dev-libs/libuv:= )
mediainfo? (
media-libs/libmediainfo
media-libs/libzen
)
qt? ( dev-qt/qtcore:5 )
"
DEPEND="
${RDEPEND}
sys-libs/readline
"
PATCHES=(
"${FILESDIR}"/meganz-sdk-7.12.0-missing-iomanip.patch
)
src_prepare() {
# 1. Mismatched pkgconfig file names
# 2. Symbols still needed publically when linking library
sed -i \
-e '/pkg_check_modules/ s/libcrypto++/libcryptopp/' \
-e '/target_link_libraries(SDKlib/ { /\(curl\|sodium\)/ s/PRIVATE/PUBLIC/ }' \
contrib/cmake/modules/sdklib_libraries.cmake || die
sed -i \
-e 's|DESTINATION cmake|DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake|' \
-e 's|DESTINATION pkgconfig|DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig|' \
contrib/cmake/modules/sdklib_target.cmake || die
# examples use readline symbols
sed -i \
-e 's/target_link_libraries(megacli PRIVATE MEGA::SDKlib)/target_link_libraries(megacli PRIVATE MEGA::SDKlib PkgConfig::readline)/' \
examples/CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
# building with DEBUG disabled isn't tested apparently
# https://github.com/meganz/sdk/issues/2658
append-cppflags -DDEBUG=1
local mycmakeargs=(
# CMakeLists.txt
# contrib/cmake/modules/sdklib_options.cmake
-DENABLE_ISOLATED_GFX=OFF # required freeimage + doesn't properly link libz
-DENABLE_QT_BINDINGS=$(usex qt) # doesn't get installed
-DENABLE_SDKLIB_EXAMPLES=$(usex examples)
-DENABLE_SDKLIB_TESTS=$(usex test)
-DENABLE_SDKLIB_WERROR=OFF
-DUSE_FFMPEG=$(usex ffmpeg)
-DUSE_C_ARES=ON
-DUSE_FREEIMAGE=$(usex freeimage)
-DUSE_LIBUV=$(usex libuv)
-DUSE_MEDIAINFO=$(usex mediainfo)
-DUSE_OPENSSL=ON
-DUSE_PDFIUM=OFF # unpackaged
-DUSE_READLINE=ON
-DWITH_FUSE=$(usex fuse)
)
cmake_src_configure
}
src_test() {
set -- "${BUILD_DIR}"/tests/unit/test_unit
einfo ${@}
${@} || die
# integration test require a mega account and will be destructive, which is why they aren't run.
# IMPORTANT: the main account must be empty (Cloud & Rubbish) before starting the test and it will be purged at exit.
# Both main and auxiliar accounts shouldn't be contacts yet and shouldn't have any pending contact requests.
# Set your login credentials as environment variables:
# * $MEGA_EMAIL and $MEGA_PWD (and $MEGA_EMAIL_AUX / $MEGA_PWD_AUX for shares * contacts)
}
src_install() {
cmake_src_install
doheader -r include/mega
if use qt; then
dolib.so "${BUILD_DIR}"/bindings/qt/libSDKQtBindings.so
insinto /usr/share/${PN}/bindings/qt
doins bindings/qt/*.{h,cpp}
fi
}