net-misc/megacmd: new package, add 2.5.2

Signed-off-by: Takuya Wakazono <pastalian46@gmail.com>
This commit is contained in:
Takuya Wakazono
2026-06-07 18:04:04 +09:00
parent 670656cd8f
commit 9da575d6bb
8 changed files with 201 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
DIST megacmd-2.5.2.tar.gz 2123577 BLAKE2B 780115047fe509ebf3478a6c4534deb3d5fab2b74aa12ac1b9debfbf848973232f09f7185e2b9be8870d540e775cc3af767d287193dbaf0a03cc77063539b7d0 SHA512 14bae79eb8b6562bceab7be625cca71fc01f44dc4cdb72b443289e085fd87381c97f8867d9c44866c37354d83449df014b632bc30e7f00e895253f71fb7bd8d1
DIST megacmd-sdk-2.5.2.tar.gz 4528326 BLAKE2B 0856a6f05f1a010f08e5520c1606500257efd01a6d594a68216497b5a4a6a58034a587c1b02627b1187f5eb0c0f5dade18be83e512af6d54b1bead746fdb556b SHA512 88d51c533d7db16800d4620714d19b4aa2a3e81f3354ceb083037728890558011e3bd4ac220433586f47a6bfb8f8dabca7fce004da9916f6d9e3d47946df7f6b

View File

@@ -0,0 +1,13 @@
Bump cmake_minimum_required to 3.16 to silence QA warnings.
This code isn't actually used.
--- a/sdk/cmake/vcpkg_overlay_ports/jxrlib/CMakeLists.txt
+++ b/sdk/cmake/vcpkg_overlay_ports/jxrlib/CMakeLists.txt
@@ -2,7 +2,7 @@
# BSD (Same as jxrlib)
# Based on https://jxrlib.codeplex.com/discussions/440294
# and modified for vcpkg packaging
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.16)
project(jxrlib C)
# Need shared libs for ABI

View File

@@ -0,0 +1,19 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,7 +26,6 @@ set(QT_CREATOR_SKIP_VCPKG_SETUP TRUE CACHE BOOL "")
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
-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")
include(detect_host_architecture)
@@ -39,7 +38,7 @@ execute_process(
)
endif()
-if((NOT WIN32 OR BASH_VERSION_RESULT EQUAL 0) AND NOT EXISTS ${VCPKG_ROOT})
+if(0)
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

View File

@@ -0,0 +1,33 @@
Add missing links.
--- a/build/cmake/modules/megacmd_libraries.cmake
+++ b/build/cmake/modules/megacmd_libraries.cmake
@@ -16,10 +16,15 @@ macro(load_megacmdserver_libraries)
find_package(PkgConfig REQUIRED) # For libraries loaded using pkg-config
if(USE_PCRE) #TODO: UNTESTED!
- pkg_check_modules(pcre REQUIRED IMPORTED_TARGET libpcre)
+ pkg_check_modules(pcre REQUIRED IMPORTED_TARGET libpcrecpp)
target_link_libraries(LMegacmdServer PRIVATE PkgConfig::pcre)
set(USE_PCRE 1)
endif()
+
+ find_package(ZLIB REQUIRED)
+ target_link_libraries(LMegacmdServer PRIVATE ZLIB::ZLIB)
+ pkg_check_modules(readline IMPORTED_TARGET readline)
+ target_link_libraries(mega-cmd PRIVATE PkgConfig::readline)
endif()
endmacro()
--- a/sdk/cmake/modules/sdklib_libraries.cmake
+++ b/sdk/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)

View File

@@ -0,0 +1,26 @@
Fix incorrect install path (/usr/usr/bin).
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -128,7 +127,7 @@ include(CMakePackageConfigHelpers) # For the CMake package
include(target_sources_conditional) # To add files to the project without building them
include(target_platform_compile_options) # To add compile options depeding on the platform
-if(UNIX AND NOT APPLE)
+if(0)
# Set rpath and location for dirs accordingly:
# If CMAKE_INSTALL_PREFIX is set (not default), it will set rpath to to such prefix plus /opt/....
# If CMAKE_INSTALL_PREFIX is not set, it will set rpath to /opt/....
@@ -461,6 +460,7 @@ elseif(NOT WIN32)
PATTERN "python" EXCLUDE
PATTERN "win" EXCLUDE)
+ if(0)
install(FILES "${CMAKE_CURRENT_LIST_DIR}/src/client/megacmd_completion.sh"
DESTINATION "etc/bash_completion.d"
)
@@ -485,4 +485,5 @@ elseif(NOT WIN32)
PATTERN "*dylib*" #macOS
PATTERN "manual-link" EXCLUDE
PATTERN "pkgconfig" EXCLUDE)
+ endif()
endif() #not WIN32

View File

@@ -0,0 +1,11 @@
--- a/sdk/cmake/modules/sdklib_libraries.cmake
+++ b/sdk/cmake/modules/sdklib_libraries.cmake
@@ -95,7 +95,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)

View File

@@ -0,0 +1,86 @@
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 cmake flag-o-matic
DESCRIPTION="Command Line Interactive and Scriptable Application to access MEGA"
HOMEPAGE="https://github.com/meganz/MEGAcmd"
MEGA_SDK_REV="fae76a36d60484657fbdf442b7b917ccc4fbad77" # commit of sdk submodule
MEGA_TAG_SUFFIX="Linux"
SRC_URI="
https://github.com/meganz/MEGAcmd/archive/refs/tags/${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}"/MEGAcmd-${PV}_${MEGA_TAG_SUFFIX}
LICENSE="BSD-2 GPL-3+"
SLOT="0"
KEYWORDS="~amd64"
IUSE="pcre"
RDEPEND="
dev-db/sqlite:3
dev-libs/crypto++:=
dev-libs/icu:=
dev-libs/libsodium:=
dev-libs/libuv:=
dev-libs/openssl:=
net-misc/curl
sys-fs/fuse:3=
sys-libs/readline:=
virtual/zlib:=
pcre? ( dev-libs/libpcre )
"
DEPEND="
${RDEPEND}
"
BDEPEND="
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}/${P}-cmake4.patch"
"${FILESDIR}/${P}-disable-vcpkg.patch"
"${FILESDIR}/${P}-fix-link.patch"
"${FILESDIR}/${P}-fix-prefix.patch"
"${FILESDIR}/${P}-rename-libcryptopp.patch"
)
src_prepare() {
rmdir sdk || die
mv "${WORKDIR}/sdk-${MEGA_SDK_REV}" sdk || die
cmake_src_prepare
}
src_configure() {
# https://github.com/meganz/sdk/issues/2679
append-cppflags -DNDEBUG
local mycmakeargs=(
-DBUILD_SHARED_LIBS=OFF
-DFULL_REQS=OFF
-DUSE_FREEIMAGE=OFF
-DUSE_PCRE=$(usex pcre)
)
cmake_src_configure
}
src_install() {
cmake_src_install
# https://github.com/meganz/MEGAcmd/blob/4b291975aafa7332ddfbf1a689455ebd972adff4/CMakeLists.txt#L468
insinto /usr/lib/sysctl.d
newins - 30-megacmd-inotify-limit.conf <<<"fs.inotify.max_user_watches = 524288"
newbashcomp src/client/megacmd_completion.sh mega-cmd
bashcomp_alias mega-cmd mega-{attr,backup,cancel,cat,cd,cmd-server,configure,confirm,confirmcancel,cp,login} \
mega-{ftp,proxy,fuse-enable,ipc,sync,killsession,passwd,version,invite,log,mount,mv,https,session,share} \
mega-{tree,sync-ignore,quit,fuse-add,mkdir,pwd,find,exec,transfers,signup,debug,lpwd,help,deleteversions} \
mega-{sync-issues,exclude,preview,get,fuse-config,whoami,graphics,fuse-remove,webdav,sync-config,rm,reload} \
mega-{thumbnail,du,put,df,users,permissions,userattr,errorcode,ls,mediainfo,lcd,fuse-disable,export,import} \
mega-{showpcr,speedlimit,fuse-show,logout}
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>pastalian46@gmail.com</email>
<name>Takuya Wakazono</name>
</maintainer>
<upstream>
<remote-id type="github">meganz/MEGAcmd</remote-id>
</upstream>
</pkgmetadata>