megasync: 4.9.1.0 -> 5.6.1.0 (#352162)

This commit is contained in:
Arne Keller
2025-01-01 13:06:45 +01:00
committed by GitHub
5 changed files with 109 additions and 108 deletions
+87 -74
View File
@@ -1,51 +1,69 @@
{ lib
, stdenv
, autoconf
, automake
, c-ares
, cryptopp
, curl
, doxygen
, fetchFromGitHub
, ffmpeg
, libmediainfo
, libraw
, libsodium
, libtool
, libuv
, libzen
, lsb-release
, mkDerivation
, pkg-config
, qtbase
, qttools
, qtx11extras
, sqlite
, swig
, unzip
, wget
{
lib,
stdenv,
c-ares,
cmake,
cryptopp,
curl,
fetchFromGitHub,
fetchpatch,
ffmpeg,
hicolor-icon-theme,
icu,
libmediainfo,
libsodium,
libtool,
libuv,
libxcb,
libzen,
mkDerivation,
openssl,
pkg-config,
qtbase,
qtdeclarative,
qtgraphicaleffects,
qttools,
qtquickcontrols,
qtquickcontrols2,
qtsvg,
qtx11extras,
readline,
sqlite,
unzip,
wget,
xorg,
zlib,
qt5,
}:
mkDerivation rec {
pname = "megasync";
version = "4.9.1.0";
version = "5.6.1.0";
src = fetchFromGitHub {
src = fetchFromGitHub rec {
owner = "meganz";
repo = "MEGAsync";
rev = "v${version}_Linux";
hash = "sha256-Y1nfY5iP64iSCYwzqxbjZAQNHyj4yVbSudSInm+yJzY=";
fetchSubmodules = true;
hash = "sha256-EjXmx+beYH3J60RidkEbZHFS5ZAOpJKmNC+WCIM84RA=";
fetchSubmodules = false; # DesignTokensImporter cannot be fetched, see #1010 in github:meganz/megasync
leaveDotGit = true;
postFetch = ''
cd $out
git remote add origin $url
git fetch origin
git clean -fdx
git checkout ${rev}
git submodule update --init src/MEGASync/mega
rm -rf .git
''; # Why so complicated, I just want a single submodule
};
nativeBuildInputs = [
autoconf
automake
doxygen
cmake
libtool
lsb-release
pkg-config
qttools
swig
unzip
];
buildInputs = [
@@ -53,23 +71,40 @@ mkDerivation rec {
cryptopp
curl
ffmpeg
hicolor-icon-theme
icu
libmediainfo
libraw
libsodium
libuv
libxcb
libzen
openssl
qtbase
qtdeclarative
qtgraphicaleffects
qtquickcontrols
qtquickcontrols2
qtsvg
qtx11extras
readline
sqlite
wget
zlib
];
patches = [
# Distro and version targets attempt to use lsb_release which is broken
# (see issue: https://github.com/NixOS/nixpkgs/issues/22729)
./noinstall-distro-version.patch
# megasync target is not part of the install rule thanks to a commented block
./install-megasync.patch
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/020-megasync-sdk-fix-cmake-dependencies-detection.patch?h=megasync&id=4b1eca5bc0d75709dee3a1260264d1b6386d3398";
hash = "sha256-y3WhLkawFzQRzzRBpioiyAT3F1NDQvYBOm2888g5V5c=";
extraPrefix = "src/MEGASync/mega/";
stripLen = true;
})
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/030-megasync-app-fix-cmake-dependencies-detection.patch?h=megasync&id=4b1eca5bc0d75709dee3a1260264d1b6386d3398";
hash = "sha256-11XWctv1veUEguc9Xvz2hMYw26CaCwu6M4hyA+5r81U=";
})
./megasync-fix-cmake-install-bindir.patch
./dont-fetch-clang-format.patch
];
postPatch = ''
@@ -81,46 +116,24 @@ mkDerivation rec {
dontUseQmakeConfigure = true;
enableParallelBuilding = true;
preConfigure = ''
cd src/MEGASync/mega
./autogen.sh
'';
configureFlags = [
"--disable-examples"
"--disable-java"
"--disable-php"
"--enable-chat"
"--with-cares"
"--with-cryptopp"
"--with-curl"
"--with-ffmpeg"
"--without-freeimage"
"--without-readline"
"--without-termcap"
"--with-sodium"
"--with-sqlite"
"--with-zlib"
cmakeFlags = [
(lib.cmakeBool "USE_PDFIUM" false) # PDFIUM is not in nixpkgs
(lib.cmakeBool "USE_FREEIMAGE" false) # freeimage is insecure
(lib.cmakeBool "ENABLE_DESIGN_TOKENS_IMPORTER" false) # cannot be fetched
];
postConfigure = ''
cd ../..
'';
preBuild = ''
qmake CONFIG+="nofreeimage release" MEGA.pro
pushd MEGASync
lrelease MEGASync.pro
DESKTOP_DESTDIR="$out" qmake PREFIX="$out" -o Makefile MEGASync.pro CONFIG+="nofreeimage release"
popd
preFixup = ''
qtWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ xorg.xrdb ]})
'';
meta = with lib; {
description =
"Easy automated syncing between your computers and your MEGA Cloud Drive";
description = "Easy automated syncing between your computers and your MEGA Cloud Drive";
homepage = "https://mega.nz/";
license = licenses.unfree;
platforms = [ "i686-linux" "x86_64-linux" ];
platforms = [
"i686-linux"
"x86_64-linux"
];
maintainers = [ ];
};
}
@@ -0,0 +1,10 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b04f57067..0f6e7b163 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -63,5 +63,3 @@ include(desktopapp_configuration)
# Load the MEGA targets
add_subdirectory(src)
-include(get_clang_format)
-get_clang_format()
@@ -1,21 +0,0 @@
Index: source/src/MEGASync/MEGASync.pro
===================================================================
--- source.orig/src/MEGASync/MEGASync.pro
+++ source/src/MEGASync/MEGASync.pro
@@ -28,11 +28,11 @@ unix:!macx {
TARGET = megasync
# Uncomment the following if "make install" doesn't copy megasync in /usr/bin directory
-# isEmpty(PREFIX) {
-# PREFIX = /usr
-# }
-# target.path = $$PREFIX/bin
-# INSTALLS += target
+ isEmpty(PREFIX) {
+ PREFIX = /usr
+ }
+ target.path = $$PREFIX/bin
+ INSTALLS += target
}
else {
TARGET = MEGAsync
@@ -0,0 +1,12 @@
diff --git a/contrib/cmake/modules/desktopapp_configuration.cmake b/contrib/cmake/modules/desktopapp_configuration.cmake
index 8e9f35cb2..b62f5a9b5 100644
--- a/contrib/cmake/modules/desktopapp_configuration.cmake
+++ b/contrib/cmake/modules/desktopapp_configuration.cmake
@@ -30,7 +30,6 @@ if(UNIX AND NOT APPLE)
# Used for building packages: in which install dir is a path construction folder that will not be there in packages
set(CMAKE_INSTALL_LIBDIR "opt/megasync/lib") # override default "lib" from GNUInstallDirs
- set(CMAKE_INSTALL_BINDIR "usr/bin") # override default "bin" from GNUInstallDirs
# Override CMAKE_INSTALL_PREFIX
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) # In consecutive runs it will always be undef/false
@@ -1,13 +0,0 @@
Index: source/src/MEGASync/platform/platform.pri
===================================================================
--- source.orig/src/MEGASync/platform/platform.pri
+++ source/src/MEGASync/platform/platform.pri
@@ -37,7 +37,7 @@ unix:!macx {
system(command -v lsb_release): version.commands = lsb_release -rs > $$version.target
version.files = $$version.target
- INSTALLS += distro version
+ # INSTALLS += distro version
QT += dbus
SOURCES += $$PWD/linux/LinuxPlatform.cpp \