diff --git a/net-misc/megasync/Manifest b/net-misc/megasync/Manifest index 83e7694885..c58f0e2af5 100644 --- a/net-misc/megasync/Manifest +++ b/net-misc/megasync/Manifest @@ -1,2 +1,4 @@ DIST megasync-6.1.1.0.tar.gz 20281265 BLAKE2B 074e91c7c18ea6dfeea769aebf5789a6a3c01e7ceb25e18bfa805237c2ffa16b7a57b52762f837f54603711cf7aeecce2ff66801412c3841a6cd50130d5a44eb SHA512 291d2d376846a4fa8c96aa97ea5102162e988ac7ca7553ab6c8a1d9aed1584451e95fce5bb8ceb60c6e216f3dcb6cc84da94e2626d988653681995c9f1c21b55 +DIST megasync-6.2.2.0.tar.gz 21454411 BLAKE2B f2009417269fc072578561720c17aad92769947102097cf3d7afadc47579441836c0eedc15310a2579a36f4dc54918f1eb56a39fc26af7cc3349cc9b40dd14e4 SHA512 d7d1fcbabb6e5c2d46cc2d958c30a62a79e2a80a51e849617b70477c584bb052383ef0b46bd85bab5fb0ed97ff7f8376432474b9e17c3de0513dca301656155b DIST megasync-sdk-6.1.1.0.tar.gz 4424990 BLAKE2B f8ab0e8bc851f14d1793a96ee985ca4865bde26011db798e7221402bd2cd2b594d1ef410f28408dc68ce05f40ec527c24bc51193a30c404b113ce6e74fbe0ad5 SHA512 dafc1fdf993af320bd025242440228112f67a8cb5af8966eeb58548844e5924f729489e41b50fd2071c69a5046f97d6a14b8c24bcbe3bbe20bc891bf8744c83e +DIST megasync-sdk-6.2.2.0.tar.gz 4509500 BLAKE2B 49aa8e999742c5878f2eb3ce997a0ccdc8c92dcd8b8e0ef04fad21d490253d9c48728ac83b1b3bc2fd2b59418202caed4b4bc864a18517751bd0b9c0d90e8ba8 SHA512 0cf8b183b278b6c5acf9626cb4e0bb8a98bd90f62b099a9c95ab220caf9469b17c7d8a30dcd4a9c80af1441cecb6832e1250e63313d461cdd5e58a15eb725cf6 diff --git a/net-misc/megasync/files/megasync-6.2.2.0-link-icu.patch b/net-misc/megasync/files/megasync-6.2.2.0-link-icu.patch new file mode 100644 index 0000000000..910a291f5f --- /dev/null +++ b/net-misc/megasync/files/megasync-6.2.2.0-link-icu.patch @@ -0,0 +1,22 @@ +Add a missing link for icu-i18n. + +``` +/usr/x86_64-pc-linux-gnu/binutils-bin/2.46.0/ld: src/MEGASync/mega/libSDKlib.a(utils.cpp.o): undefined reference to symbol '_ZN3icu8Collator14createInstanceERKNS_6LocaleER10UErrorCode' +/usr/x86_64-pc-linux-gnu/binutils-bin/2.46.0/ld: /usr/lib64/libicui18n.so.78: error adding symbols: DSO missing from command line +``` + +Fixes: https://github.com/meganz/sdk/commit/1f5c9cf8bd98a165aa65a9b05a6db118e35353e9 +Patch: https://github.com/meganz/sdk/pull/2768 +--- a/src/MEGASync/mega/cmake/modules/sdklib_libraries.cmake ++++ b/src/MEGASync/mega/cmake/modules/sdklib_libraries.cmake +@@ -110,8 +110,8 @@ macro(load_sdklib_libraries) + pkg_check_modules(curl REQUIRED IMPORTED_TARGET libcurl) + target_link_libraries(SDKlib PRIVATE PkgConfig::curl) + +- find_package(ICU COMPONENTS uc data REQUIRED) +- target_link_libraries(SDKlib PRIVATE ICU::uc ICU::data) ++ find_package(ICU COMPONENTS i18n uc data REQUIRED) ++ target_link_libraries(SDKlib PRIVATE ICU::i18n ICU::uc ICU::data) + + if(USE_OPENSSL) + find_package(OpenSSL REQUIRED) diff --git a/net-misc/megasync/files/megasync-6.2.2.0-static-internal-libs.patch b/net-misc/megasync/files/megasync-6.2.2.0-static-internal-libs.patch new file mode 100644 index 0000000000..aa55ed018d --- /dev/null +++ b/net-misc/megasync/files/megasync-6.2.2.0-static-internal-libs.patch @@ -0,0 +1,19 @@ +Build the SDK as static libraries. +Do not set BUILD_SHARED_LIBS=OFF globally, so plugins can still be built as shared libraries. +--- a/src/MEGASync/mega/bindings/qt/CMakeLists.txt ++++ b/src/MEGASync/mega/bindings/qt/CMakeLists.txt +@@ -1,4 +1,4 @@ +-add_library(SDKQtBindings) ++add_library(SDKQtBindings STATIC) + add_library(MEGA::SDKQtBindings ALIAS SDKQtBindings) + + target_sources(SDKQtBindings +--- a/src/MEGASync/mega/cmake/modules/sdklib_target.cmake ++++ b/src/MEGASync/mega/cmake/modules/sdklib_target.cmake +@@ -1,5 +1,5 @@ + ## SDKlib target ## +-add_library(SDKlib) ++add_library(SDKlib STATIC) + add_library(MEGA::SDKlib ALIAS SDKlib) + + set(SDKLIB_PUB_HEADERS diff --git a/net-misc/megasync/megasync-6.2.2.0.ebuild b/net-misc/megasync/megasync-6.2.2.0.ebuild new file mode 100644 index 0000000000..716cb4322d --- /dev/null +++ b/net-misc/megasync/megasync-6.2.2.0.ebuild @@ -0,0 +1,140 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic xdg + +DESCRIPTION="The official Qt-based program for syncing your MEGA account in your PC" +HOMEPAGE=" + https://mega.io + https://github.com/meganz/MEGAsync +" + +MEGA_SDK_REV="f7d7a1c1c563448b196e950b78c5cd4b1284a2ca" # commit of src/MEGASync/mega submodule +MEGA_TAG_SUFFIX="Linux" +SRC_URI=" + https://github.com/meganz/MEGAsync/archive/v${PV}_${MEGA_TAG_SUFFIX}.tar.gz -> ${P}.tar.gz + https://github.com/meganz/sdk/archive/${MEGA_SDK_REV}.tar.gz -> ${PN}-sdk-${PV}.tar.gz +" +S="${WORKDIR}"/MEGAsync-${PV}_${MEGA_TAG_SUFFIX} + +LICENSE="MEGA" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="dolphin mediainfo nautilus nemo thumbnail thunar" + +# Qt6 issue: https://github.com/meganz/MEGAsync/issues/954 +DEPEND=" + dev-db/sqlite:3 + dev-libs/crypto++:= + dev-libs/icu:= + dev-libs/libsodium:= + dev-libs/libuv:= + dev-libs/openssl:0= + dev-qt/qtconcurrent:5 + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtdeclarative:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + net-misc/curl[ssl] + virtual/zlib:= + x11-libs/libxcb:= + dolphin? ( + dev-qt/qtbase:6[network,widgets] + kde-apps/dolphin:6 + kde-frameworks/kcoreaddons:6 + kde-frameworks/kio:6 + kde-frameworks/kwidgetsaddons:6 + ) + mediainfo? ( + media-libs/libmediainfo + media-libs/libzen + ) + nautilus? ( + dev-libs/glib:2 + >=gnome-base/nautilus-43 + ) + nemo? ( + dev-libs/glib:2 + gnome-extra/nemo + ) + thumbnail? ( + media-libs/freeimage + media-video/ffmpeg:= + ) + thunar? ( + dev-libs/glib:2 + xfce-base/thunar:= + ) +" +RDEPEND=" + ${DEPEND} + dev-qt/qtquickcontrols:5 + dev-qt/qtquickcontrols2:5 +" +BDEPEND=" + dev-qt/linguist-tools:5 + virtual/pkgconfig + dolphin? ( kde-frameworks/extra-cmake-modules ) +" + +PATCHES=( + "${FILESDIR}/${PN}-5.6.0.0-remove-clang-format.patch" + "${FILESDIR}/${PN}-6.0.0.3-disable-forced-options.patch" + "${FILESDIR}/${PN}-5.7.0.0-fix-install-dir.patch" + "${FILESDIR}/${PN}-5.7.0.0-rename-libcryptopp.patch" + "${FILESDIR}/${PN}-5.10.0.2-link-zlib.patch" + "${FILESDIR}/${PN}-6.0.0.3-cmake4.patch" + "${FILESDIR}/${PN}-6.2.2.0-link-icu.patch" + "${FILESDIR}/${PN}-6.2.2.0-static-internal-libs.patch" +) + +src_prepare() { + rmdir src/MEGASync/mega || die + mv "${WORKDIR}/sdk-${MEGA_SDK_REV}" src/MEGASync/mega || die + + for ext in {dolphin,nautilus,thunar,nemo}; do + if use "!$ext"; then + cmake_comment_add_subdirectory -f src "MEGAShellExt${ext^}" + fi + done + + cmake_src_prepare +} + +src_configure() { + # https://github.com/meganz/sdk/issues/2679 + append-cppflags -DNDEBUG + + local mycmakeargs=( + -DCMAKE_MODULE_PATH="${S}/src/MEGASync/mega/cmake/modules/packages" + -DENABLE_DESKTOP_APP_TESTS=OFF + -DENABLE_DESKTOP_APP_WERROR=OFF + -DENABLE_DESKTOP_UPDATE_GEN=OFF + -DENABLE_DESIGN_TOKENS_IMPORTER=OFF + -DUSE_BREAKPAD=OFF + -DENABLE_ISOLATED_GFX=$(usex thumbnail) + -DENABLE_LINUX_EXT=ON + -DUSE_FFMPEG=$(usex thumbnail) + -DUSE_FREEIMAGE=$(usex thumbnail) + -DENABLE_MEDIA_FILE_METADATA=$(usex mediainfo) + -DUSE_PDFIUM=OFF + -DUSE_READLINE=OFF + ) + if use dolphin; then + mycmakeargs+=( + -DKF_VER=6 + ) + fi + if use nemo; then + mycmakeargs+=( + -Dno_desktop=ON + ) + fi + cmake_src_configure +}