From 2992612fb8dacbe0cf6203b8cb7d18cfdf4a7247 Mon Sep 17 00:00:00 2001 From: otolias Date: Tue, 15 Sep 2026 19:42:18 +0300 Subject: [PATCH] MEGAcmd: Update to 2.5.2, adopt --- srcpkgs/MEGAcmd/patches/autotools.patch | 119 ------------------- srcpkgs/MEGAcmd/patches/cmd_cmake.patch | 106 +++++++++++++++++ srcpkgs/MEGAcmd/patches/megaexec.patch | 10 -- srcpkgs/MEGAcmd/patches/musl.patch | 12 ++ srcpkgs/MEGAcmd/patches/sdk_cmake.patch | 37 ++++++ srcpkgs/MEGAcmd/patches/sdk_cmake.patch.args | 1 + srcpkgs/MEGAcmd/template | 54 ++++++--- 7 files changed, 196 insertions(+), 143 deletions(-) delete mode 100644 srcpkgs/MEGAcmd/patches/autotools.patch create mode 100644 srcpkgs/MEGAcmd/patches/cmd_cmake.patch delete mode 100644 srcpkgs/MEGAcmd/patches/megaexec.patch create mode 100644 srcpkgs/MEGAcmd/patches/musl.patch create mode 100644 srcpkgs/MEGAcmd/patches/sdk_cmake.patch create mode 100644 srcpkgs/MEGAcmd/patches/sdk_cmake.patch.args diff --git a/srcpkgs/MEGAcmd/patches/autotools.patch b/srcpkgs/MEGAcmd/patches/autotools.patch deleted file mode 100644 index 770cc5a89b3b94..00000000000000 --- a/srcpkgs/MEGAcmd/patches/autotools.patch +++ /dev/null @@ -1,119 +0,0 @@ ---- a/src/include.am -+++ b/src/include.am -@@ -7,9 +7,9 @@ noinst_HEADERS= - - MEGACMD = mega-cmd mega-exec mega-cmd-server - bin_PROGRAMS += $(MEGACMD) --$(MEGACMD): $(top_builddir)/sdk/src/libmega.la -+$(MEGACMD): - noinst_HEADERS += src/comunicationsmanager.h src/configurationmanager.h src/megacmd.h src/megacmdlogger.h src/megacmdsandbox.h src/megacmdutils.h src/megacmdcommonutils.h src/listeners.h src/megacmdexecuter.h src/megacmdversion.h src/megacmdplatform.h src/comunicationsmanagerportsockets.h --megacmdcompletiondir = $(sysconfdir)/bash_completion.d/ -+megacmdcompletiondir = $(datarootdir)/bash-completion/completions - megacmdcompletion_DATA = src/client/megacmd_completion.sh - megacmdscripts_bindir = $(bindir) - -@@ -20,20 +20,21 @@ mega_cmd_server_SOURCES = src/megacmd.cp - mega_cmddir=examples - - #CMDCLIENT --noinst_HEADERS += src/megacmdcommonutils.h src/megacmdshell/megacmdshellcommunications.h src/megacmdshell/megacmdshell.h sdk/include/mega/thread.h -+noinst_HEADERS += src/megacmdcommonutils.h src/megacmdshell/megacmdshellcommunications.h src/megacmdshell/megacmdshell.h - - mega_exec_SOURCES = src/megacmdcommonutils.cpp src/client/megacmdclient.cpp src/megacmdshell/megacmdshellcommunications.cpp - mega_execdir=examples - #mega_exec_CXXFLAGS = -std=c++11 -DUSE_CPPTHREAD=1 -Iinclude/ - #mega_exec_CXXFLAGS = -Iinclude/ - mega_exec_CXXFLAGS = -Isdk/include/ $(LMEGAINC) -+mega_exec_LDADD = $(RL_LDFLAGS) $(RL_LIBS) $(TERMCAP_LDFLAGS) $(TERMCAP_LIBS) $(MEGA_LIBS) - - #CMDSHELL --noinst_HEADERS += src/megacmdcommonutils.h src/megacmdshell/megacmdshellcommunications.h src/megacmdshell/megacmdshell.h sdk/include/mega/thread.h -+noinst_HEADERS += src/megacmdcommonutils.h src/megacmdshell/megacmdshellcommunications.h src/megacmdshell/megacmdshell.h - mega_cmd_SOURCES = src/megacmdcommonutils.cpp src/megacmdshell/megacmdshellcommunications.cpp src/megacmdshell/megacmdshell.cpp - - mega_cmd_CXXFLAGS = $(RL_CXXFLAGS) -Isdk/include/ $(LMEGAINC) --mega_cmd_LDADD = $(RL_LDFLAGS) $(RL_LIBS) $(TERMCAP_LDFLAGS) $(TERMCAP_LIBS) -+mega_cmd_LDADD = $(RL_LDFLAGS) $(RL_LIBS) $(TERMCAP_LDFLAGS) $(TERMCAP_LIBS) $(MEGA_LIBS) - - mega_cmd_server_CXXFLAGS = $(LMEGAINC) - if USE_PCRE -@@ -41,9 +42,7 @@ mega_cmd_server_CXXFLAGS += -DUSE_PCRE=1 - endif - - if WIN32 --noinst_HEADERS += src/megacmdshell/megacmdshellcommunicationsnamedpipes.h sdk/include/mega/thread.h sdk/include/mega/thread/win32thread.h sdk/include/mega/logging.h --mega_cmd_SOURCES += src/megacmdshell/megacmdshellcommunicationsnamedpipes.cpp sdk/src/thread/win32thread.cpp sdk/src/logging.cpp --mega_exec_SOURCES += src/megacmdshell/megacmdshellcommunicationsnamedpipes.cpp sdk/src/thread/win32thread.cpp sdk/src/logging.cpp -+noinst_HEADERS += src/megacmdshell/megacmdshellcommunicationsnamedpipes.h - mega_cmd_server_SOURCES += src/comunicationsmanagernamedpipes.cpp - - mega_cmd_server_CXXFLAGS += -D_WIN32=1 -Isdk/include/ -Isdk/include/mega/win32 -@@ -56,12 +55,10 @@ mega_cmd_LDADD += $(LIBS_EXTRA) - - else - --mega_cmd_server_LDADD=$(PCRE_LIBS) $(top_builddir)/sdk/src/libmega.la -+mega_cmd_server_LDADD=$(PCRE_LIBS) $(MEGA_LIBS) - - mega_cmd_server_SOURCES += src/comunicationsmanagerfilesockets.cpp --noinst_HEADERS += src/comunicationsmanagerfilesockets.h sdk/include/mega/thread/posixthread.h sdk/include/mega/logging.h --mega_cmd_SOURCES += sdk/src/thread/posixthread.cpp sdk/src/logging.cpp --mega_exec_SOURCES += sdk/src/thread/posixthread.cpp sdk/src/logging.cpp -+noinst_HEADERS += src/comunicationsmanagerfilesockets.h - - #mega_cmd_CXXFLAGS += -DUSE_PTHREAD=1 - #mega_exec_CXXFLAGS += -DUSE_PTHREAD=1 ---- a/Makefile.am -+++ b/Makefile.am -@@ -46,7 +46,6 @@ DISTCLEANFILES= - BUILT_SOURCES= - noinst_PROGRAMS= - --SUBDIRS = sdk - include src/include.am - - #EXTRA_DIST += autogen.sh ---- a/configure.ac -+++ b/configure.ac -@@ -18,9 +18,6 @@ - # -*- Autoconf -*- - # Process this file with autoconf to produce a configure script. - --m4_include([sdk/m4/ax_check_compile_flag.m4]) --m4_include([sdk/m4/ax_check_link_flag.m4]) --m4_include([sdk/m4/ax_cxx_compile_stdcxx.m4]) - - m4_define([megacmd_major_version], [$(cat src/megacmdversion.h | grep "define MEGACMD_MAJOR" | cut -d" " -f 3)]) - m4_define([megacmd_minor_version], [$(cat src/megacmdversion.h | grep "define MEGACMD_MINOR" | cut -d" " -f 3)]) -@@ -37,20 +34,18 @@ m4_define([megacmd_lt_age], [0]) - - AC_INIT([MEGAcmd], m4_esyscmd([ grep define < src/megacmdversion.h | awk '{print $3}' | awk 'BEGIN { RS = "" ; FS = "\n" } {printf $1"."$2"."$3}']), [https://github.com/meganz/megacmd]) - --AM_INIT_AUTOMAKE -+AM_INIT_AUTOMAKE([1.11 foreign silent-rules]) - - AC_PROG_CC - AC_CONFIG_FILES(Makefile) - AC_OUTPUT - --AC_CONFIG_SUBDIRS(sdk) - - - # Define _GNU_SOURCE - # AC_GNU_SOURCE - AC_USE_SYSTEM_EXTENSIONS - --AM_INIT_AUTOMAKE([1.11 foreign silent-rules]) - AC_CONFIG_HEADERS([src/megacmdconfig.h]) #this avoids inline definitions of stuff already defined in sdk's config.h (e.g: -DPACKAGE_NAME) - - LT_INIT([shared disable-static win32-dll]) -@@ -449,7 +444,8 @@ AM_CONDITIONAL([HAVE_PTHREAD], [test "${ - #This will simulate compilation of sdk and extract the includes defined for it. Thus we can - # take care of the configuration done for the subproject withtout having to recheck here - AC_OUTPUT --LMEGAINC=$(cd sdk; for i in $(make -n 2>/dev/null | grep "\-I" | grep megaapi ); do echo $i; done | grep "\-I" | sort | uniq | awk '{printf $0" "}') -+PKG_CHECK_MODULES([MEGA],[libmega]) -+LMEGAINC=${MEGA_CFLAGS} - AC_SUBST(LMEGAINC) - - # Output diff --git a/srcpkgs/MEGAcmd/patches/cmd_cmake.patch b/srcpkgs/MEGAcmd/patches/cmd_cmake.patch new file mode 100644 index 00000000000000..2669d716f367a8 --- /dev/null +++ b/srcpkgs/MEGAcmd/patches/cmd_cmake.patch @@ -0,0 +1,106 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 116ed62e..fa7b6484 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,6 @@ + # CMakeLists.txt file to build the MEGAcmd + cmake_minimum_required(VERSION 3.16) + +-find_package(Git REQUIRED) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/sdk +@@ -25,6 +24,7 @@ set(QT_CREATOR_SKIP_VCPKG_SETUP TRUE CACHE BOOL "") + ## Modules location + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/build/cmake/modules) # Modules from MEGAcmd + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/sdk/cmake/modules) # Modules from MEGAsdk ++list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/sdk/cmake/modules/packages) + + set(VCPKG_ROOT "${CMAKE_CURRENT_LIST_DIR}/../vcpkg" CACHE PATH "If set, it will build and use the VCPKG packages defined in the manifest file") + +@@ -39,7 +39,7 @@ execute_process( + ) + endif() + +-if((NOT WIN32 OR BASH_VERSION_RESULT EQUAL 0) AND NOT EXISTS ${VCPKG_ROOT}) ++if(VCPKG_ROOT AND (NOT WIN32 OR BASH_VERSION_RESULT EQUAL 0) AND NOT EXISTS ${VCPKG_ROOT}) + message(STATUS "vcpkg will be cloned into ${VCPKG_ROOT}") + execute_process( + #TODO: have the same for windows ... or at least check if bash is available +@@ -346,6 +346,7 @@ if (ENABLE_MEGACMD_TESTS) + ) + target_include_directories(mega-cmd-tests-integration PUBLIC ${ProjectDir}/src ${ProjectDir}/tests/common) + target_link_libraries(mega-cmd-tests-integration PUBLIC LMegacmdServer LMegacmdClient LMegacmdTestsCommon) ++ target_link_libraries(mega-cmd-tests-integration PUBLIC gmock gtest) + if(APPLE) + target_link_libraries(mega-cmd-tests-integration PRIVATE "-framework Security" ) + endif() +@@ -361,6 +362,7 @@ if (ENABLE_MEGACMD_TESTS) + "${ProjectDir}/tests/unit/UtilsTests.cpp" + "${ProjectDir}/tests/unit/main.cpp" + ) ++ target_link_libraries(mega-cmd-tests-unit PUBLIC gmock gtest) + + if(APPLE) + target_link_libraries(mega-cmd-tests-unit PRIVATE "-framework Security" ) +@@ -472,17 +474,19 @@ elseif(NOT WIN32) + DESTINATION "etc/sysctl.d" + ) + +- #Install vcpkg dynamic libraries in locations defined by GNUInstallDirs. +- if(CMAKE_BUILD_TYPE STREQUAL "Debug") +- SET(vcpkg_lib_folder "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/") +- else() +- SET(vcpkg_lib_folder "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/") +- endif() +- install(DIRECTORY "${vcpkg_lib_folder}" ++ if(VCPKG_ROOT) ++ #Install vcpkg dynamic libraries in locations defined by GNUInstallDirs. ++ if(CMAKE_BUILD_TYPE STREQUAL "Debug") ++ SET(vcpkg_lib_folder "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/") ++ else() ++ SET(vcpkg_lib_folder "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/") ++ endif() ++ install(DIRECTORY "${vcpkg_lib_folder}" + DESTINATION ${CMAKE_INSTALL_LIBDIR} + FILES_MATCHING + PATTERN "lib*.so*" + PATTERN "*dylib*" #macOS + PATTERN "manual-link" EXCLUDE + PATTERN "pkgconfig" EXCLUDE) ++ endif() + endif() #not WIN32 +diff --git a/build/cmake/modules/megacmd_configuration.cmake b/build/cmake/modules/megacmd_configuration.cmake +index 74e25cf0..6162d8fa 100644 +--- a/build/cmake/modules/megacmd_configuration.cmake ++++ b/build/cmake/modules/megacmd_configuration.cmake +@@ -24,5 +24,5 @@ else() + check_include_file(inttypes.h HAVE_INTTYPES_H) + check_include_file(dirent.h HAVE_DIRENT_H) + check_include_file(glob.h HAVE_GLOB_H) +- check_function_exists(aio_write, HAVE_AIO_RT) ++ check_function_exists(aio_write HAVE_AIO_RT) + endif() +diff --git a/build/cmake/modules/megacmd_libraries.cmake b/build/cmake/modules/megacmd_libraries.cmake +index aa3c2d73..9d1ad7b1 100644 +--- a/build/cmake/modules/megacmd_libraries.cmake ++++ b/build/cmake/modules/megacmd_libraries.cmake +@@ -15,11 +15,13 @@ macro(load_megacmdserver_libraries) + else() # No VCPKG usage. Use pkg-config + find_package(PkgConfig REQUIRED) # For libraries loaded using pkg-config + +- if(USE_PCRE) #TODO: UNTESTED! +- pkg_check_modules(pcre REQUIRED IMPORTED_TARGET libpcre) +- target_link_libraries(LMegacmdServer PRIVATE PkgConfig::pcre) +- set(USE_PCRE 1) +- endif() ++ # if(USE_PCRE) #TODO: UNTESTED! ++ # pkg_check_modules(pcre REQUIRED IMPORTED_TARGET libpcre) ++ # target_link_libraries(LMegacmdServer PRIVATE PkgConfig::pcre) ++ # set(USE_PCRE 1) ++ # endif() ++ ++ target_link_libraries(LMegacmdServer PRIVATE z pcrecpp) + endif() + + endmacro() diff --git a/srcpkgs/MEGAcmd/patches/megaexec.patch b/srcpkgs/MEGAcmd/patches/megaexec.patch deleted file mode 100644 index dfed1cc0aef7eb..00000000000000 --- a/srcpkgs/MEGAcmd/patches/megaexec.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/include.am -+++ b/src/include.am -@@ -34,6 +34,7 @@ mega_cmd_SOURCES = src/megacmdcommonutil - - mega_cmd_CXXFLAGS = $(RL_CXXFLAGS) -Isdk/include/ $(LMEGAINC) - mega_cmd_LDADD = $(RL_LDFLAGS) $(RL_LIBS) $(TERMCAP_LDFLAGS) $(TERMCAP_LIBS) $(MEGA_LIBS) -+mega_exec_LDADD = $(RL_LDFLAGS) $(RL_LIBS) $(TERMCAP_LDFLAGS) $(TERMCAP_LIBS) $(MEGA_LIBS) - - mega_cmd_server_CXXFLAGS = $(LMEGAINC) - if USE_PCRE diff --git a/srcpkgs/MEGAcmd/patches/musl.patch b/srcpkgs/MEGAcmd/patches/musl.patch new file mode 100644 index 00000000000000..5e7c60137b68ff --- /dev/null +++ b/srcpkgs/MEGAcmd/patches/musl.patch @@ -0,0 +1,12 @@ +diff --git a/src/updater/MegaUpdater.cpp b/src/updater/MegaUpdater.cpp +index 8c443f1b..99e325ff 100644 +--- a/src/updater/MegaUpdater.cpp ++++ b/src/updater/MegaUpdater.cpp +@@ -11,6 +11,7 @@ + #include //flock + #include + #include ++#include + #endif + + #include diff --git a/srcpkgs/MEGAcmd/patches/sdk_cmake.patch b/srcpkgs/MEGAcmd/patches/sdk_cmake.patch new file mode 100644 index 00000000000000..5cbec6a79ec4a9 --- /dev/null +++ b/srcpkgs/MEGAcmd/patches/sdk_cmake.patch @@ -0,0 +1,37 @@ +diff --git a/cmake/modules/configuration.cmake b/cmake/modules/configuration.cmake +index ef72c04ab..fdce4550a 100644 +--- a/cmake/modules/configuration.cmake ++++ b/cmake/modules/configuration.cmake +@@ -38,7 +38,7 @@ else() + include(CheckSymbolExists) + check_symbol_exists(glob glob.h HAVE_GLOB_H) + +- check_function_exists(aio_write, HAVE_AIO_RT) ++ check_function_exists(aio_write HAVE_AIO_RT) + + # Check if our toolchain supports TI emulation mode. + try_compile(SUPPORTS_TI_EMULATION_MODE +diff --git a/cmake/modules/sdklib_libraries.cmake b/cmake/modules/sdklib_libraries.cmake +index d50b12eca..846328035 100644 +--- a/cmake/modules/sdklib_libraries.cmake ++++ b/cmake/modules/sdklib_libraries.cmake +@@ -98,7 +98,7 @@ macro(load_sdklib_libraries) + + find_package(PkgConfig REQUIRED) # For libraries loaded using pkg-config + +- pkg_check_modules(cryptopp REQUIRED IMPORTED_TARGET libcrypto++) ++ pkg_check_modules(cryptopp REQUIRED IMPORTED_TARGET libcryptopp) + target_link_libraries(SDKlib PUBLIC PkgConfig::cryptopp) # TODO: Private for SDK core + + pkg_check_modules(sodium REQUIRED IMPORTED_TARGET libsodium) +@@ -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/srcpkgs/MEGAcmd/patches/sdk_cmake.patch.args b/srcpkgs/MEGAcmd/patches/sdk_cmake.patch.args new file mode 100644 index 00000000000000..edc7798d9fbb9b --- /dev/null +++ b/srcpkgs/MEGAcmd/patches/sdk_cmake.patch.args @@ -0,0 +1 @@ +-Np1 -d sdk diff --git a/srcpkgs/MEGAcmd/template b/srcpkgs/MEGAcmd/template index 43c7e93af83031..cca60557d60d13 100644 --- a/srcpkgs/MEGAcmd/template +++ b/srcpkgs/MEGAcmd/template @@ -1,27 +1,53 @@ # Template file for 'MEGAcmd' pkgname=MEGAcmd -version=1.4.0 -revision=2 -build_style=gnu-configure -hostmakedepends="autoconf-archive autogen gettext automake libtool pkg-config" -makedepends="MEGAsdk-devel readline-devel pcre-devel" +version=2.5.2 +revision=1 +_sdk_commit="fae76a36d60484657fbdf442b7b917ccc4fbad77" +build_style=cmake +configure_args="-DCMAKE_INSTALL_PREFIX=/ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DVCPKG_ROOT='' + -DFULL_REQS=OFF -DUSE_FFMPEG=ON -DENABLE_MEDIA_FILE_METADATA=ON + -DENABLE_MEGACMD_TESTS=ON" +hostmakedepends="pkg-config" +makedepends="libsodium-devel openssl-devel sqlite-devel libcurl-devel icu-devel + freeimage-devel libuv-devel readline-devel pcre-devel crypto++-devel + libmediainfo-devel ffmpeg-devel zlib-devel gtest-devel" short_desc="Command Line Interactive and Scriptable Application to access MEGA" -maintainer="Orphaned " +maintainer="otolias " license="BSD-2-Clause, GPL-3.0-or-later" homepage="https://github.com/meganz/MEGAcmd" -distfiles="https://github.com/meganz/MEGAcmd/archive/${version}_Linux.tar.gz" -checksum=2a3626a9f1d22303fe2123f984a8ecf3779d6d59ac6c67c1bf43c2423dcb832d +distfiles="https://github.com/meganz/MEGAcmd/archive/${version}_Linux.tar.gz + https://github.com/meganz/sdk/archive/${_sdk_commit}.tar.gz" +checksum="a088c001e9116357fcac92cd0b3d62fb53cc24ce546eb0fb4cc83c53df5eed7c + 3df9f194e2f18b64d51b325c50f852e694d232380bfc83e03f96bf6281db91eb" replaces="megacmd>=0" -CXXFLAGS=-std=c++17 -if [ "$CROSS_BUILD" ]; then - configure_args="--with-libtool-sysroot=${XBPS_CROSS_BASE}" -fi +CXXFLAGS="-fpermissive" -pre_configure() { - ./autogen.sh +case "$XBPS_TARGET_WORDSIZE" in + 32) makedepends+=" fuse3-devel" ;; + 64) makedepends+=" fuse-devel" ;; +esac + +skip_extraction="${_sdk_commit}.tar.gz" + +post_extract() { + vsrcextract -C sdk/ "${_sdk_commit}.tar.gz" +} + +do_check() { + ./build/mega-cmd-tests-unit } post_install() { + # Remove test binaries + rm ${DESTDIR}/usr/bin/mega-cmd-tests-integration + rm ${DESTDIR}/usr/bin/mega-cmd-tests-unit + + vmkdir usr/lib/sysctl.d + mv ${DESTDIR}/etc/sysctl.d/99-megacmd-inotify-limit.conf ${DESTDIR}/usr/lib/sysctl.d/ + + vcompletion ${DESTDIR}/etc/bash_completion.d/megacmd_completion.sh bash mega-cmd + rm -r ${DESTDIR}/etc/bash_completion.d + vlicense LICENSE }