From 3c778057515573a3202471c6fb0b3c751e7ec4ef Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 14 Mar 2025 10:05:08 +0100 Subject: [PATCH 1/3] megasync: move to by-name --- .../megasync/dont-fetch-clang-format.patch | 0 .../megasync-fix-cmake-install-bindir.patch | 0 .../me/megasync/package.nix} | 29 +++++++------------ pkgs/top-level/all-packages.nix | 2 -- 4 files changed, 11 insertions(+), 20 deletions(-) rename pkgs/{applications/misc => by-name/me}/megasync/dont-fetch-clang-format.patch (100%) rename pkgs/{applications/misc => by-name/me}/megasync/megasync-fix-cmake-install-bindir.patch (100%) rename pkgs/{applications/misc/megasync/default.nix => by-name/me/megasync/package.nix} (90%) diff --git a/pkgs/applications/misc/megasync/dont-fetch-clang-format.patch b/pkgs/by-name/me/megasync/dont-fetch-clang-format.patch similarity index 100% rename from pkgs/applications/misc/megasync/dont-fetch-clang-format.patch rename to pkgs/by-name/me/megasync/dont-fetch-clang-format.patch diff --git a/pkgs/applications/misc/megasync/megasync-fix-cmake-install-bindir.patch b/pkgs/by-name/me/megasync/megasync-fix-cmake-install-bindir.patch similarity index 100% rename from pkgs/applications/misc/megasync/megasync-fix-cmake-install-bindir.patch rename to pkgs/by-name/me/megasync/megasync-fix-cmake-install-bindir.patch diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/by-name/me/megasync/package.nix similarity index 90% rename from pkgs/applications/misc/megasync/default.nix rename to pkgs/by-name/me/megasync/package.nix index d04ef8ad66e7..a38f3421f5d8 100644 --- a/pkgs/applications/misc/megasync/default.nix +++ b/pkgs/by-name/me/megasync/package.nix @@ -16,17 +16,9 @@ libuv, libxcb, libzen, - mkDerivation, openssl, pkg-config, - qtbase, - qtdeclarative, - qtgraphicaleffects, - qttools, - qtquickcontrols, - qtquickcontrols2, - qtsvg, - qtx11extras, + libsForQt5, readline, sqlite, unzip, @@ -35,7 +27,7 @@ zlib, qt5, }: -mkDerivation rec { +stdenv.mkDerivation rec { pname = "megasync"; version = "5.7.1.0"; @@ -63,8 +55,9 @@ mkDerivation rec { cmake libtool pkg-config - qttools + libsForQt5.qttools unzip + libsForQt5.wrapQtAppsHook ]; buildInputs = [ c-ares @@ -79,13 +72,13 @@ mkDerivation rec { libxcb libzen openssl - qtbase - qtdeclarative - qtgraphicaleffects - qtquickcontrols - qtquickcontrols2 - qtsvg - qtx11extras + libsForQt5.qtbase + libsForQt5.qtdeclarative + libsForQt5.qtgraphicaleffects + libsForQt5.qtquickcontrols + libsForQt5.qtquickcontrols2 + libsForQt5.qtsvg + libsForQt5.qtx11extras readline sqlite wget diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7b1c49f932c3..365021f22862 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2445,8 +2445,6 @@ with pkgs; materialx = with python3Packages; toPythonApplication materialx; - megasync = libsForQt5.callPackage ../applications/misc/megasync { }; - # while building documentation meson may want to run binaries for host # which needs an emulator # example of an error which this fixes From 40729443b088f59e5756d5079844234c5b2b073c Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 14 Mar 2025 10:11:32 +0100 Subject: [PATCH 2/3] megasync: 5.7.1.0 -> 5.8.0.2 Diff: https://github.com/meganz/MEGAsync/compare/v5.7.1.0_Linux...v5.8.0.2_Linux --- pkgs/by-name/me/megasync/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/me/megasync/package.nix b/pkgs/by-name/me/megasync/package.nix index a38f3421f5d8..c64924058aaf 100644 --- a/pkgs/by-name/me/megasync/package.nix +++ b/pkgs/by-name/me/megasync/package.nix @@ -29,13 +29,13 @@ }: stdenv.mkDerivation rec { pname = "megasync"; - version = "5.7.1.0"; + version = "5.8.0.2"; src = fetchFromGitHub rec { owner = "meganz"; repo = "MEGAsync"; rev = "v${version}_Linux"; - hash = "sha256-lbAI17CyHrppMnxQDV5g0IE+I7Y0DwU+h5MSFZclD2A="; + hash = "sha256-/q7LD1/06+0MepDz3fVrlvGKh+rvNk6d1hm7Ng54Nmk="; fetchSubmodules = false; # DesignTokensImporter cannot be fetched, see #1010 in github:meganz/megasync leaveDotGit = true; postFetch = '' From e6b5a9e6447cdcc7e92485e9661b0e7d58b6ee89 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 14 Mar 2025 10:14:13 +0100 Subject: [PATCH 3/3] megasync: cleanup --- pkgs/by-name/me/megasync/package.nix | 121 ++++++++++++++++----------- 1 file changed, 70 insertions(+), 51 deletions(-) diff --git a/pkgs/by-name/me/megasync/package.nix b/pkgs/by-name/me/megasync/package.nix index c64924058aaf..210ca2db67c9 100644 --- a/pkgs/by-name/me/megasync/package.nix +++ b/pkgs/by-name/me/megasync/package.nix @@ -1,40 +1,45 @@ { lib, stdenv, - c-ares, - cmake, - cryptopp, - curl, fetchFromGitHub, fetchpatch, + + # nativeBuildInputs + cmake, + libsForQt5, + libtool, + pkg-config, + unzip, + + # buildInputs + c-ares, + cryptopp, + curl, ffmpeg, hicolor-icon-theme, icu, libmediainfo, libsodium, - libtool, libuv, libxcb, libzen, openssl, - pkg-config, - libsForQt5, readline, sqlite, - unzip, wget, xorg, zlib, - qt5, + + nix-update-script, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "megasync"; version = "5.8.0.2"; src = fetchFromGitHub rec { owner = "meganz"; repo = "MEGAsync"; - rev = "v${version}_Linux"; + tag = "v${finalAttrs.version}_Linux"; hash = "sha256-/q7LD1/06+0MepDz3fVrlvGKh+rvNk6d1hm7Ng54Nmk="; fetchSubmodules = false; # DesignTokensImporter cannot be fetched, see #1010 in github:meganz/megasync leaveDotGit = true; @@ -44,47 +49,13 @@ stdenv.mkDerivation rec { git remote add origin $url git fetch origin git clean -fdx - git checkout ${rev} + git checkout ${tag} git submodule update --init src/MEGASync/mega rm -rf .git ''; # Why so complicated, I just want a single submodule }; - nativeBuildInputs = [ - cmake - libtool - pkg-config - libsForQt5.qttools - unzip - libsForQt5.wrapQtAppsHook - ]; - buildInputs = [ - c-ares - cryptopp - curl - ffmpeg - hicolor-icon-theme - icu - libmediainfo - libsodium - libuv - libxcb - libzen - openssl - libsForQt5.qtbase - libsForQt5.qtdeclarative - libsForQt5.qtgraphicaleffects - libsForQt5.qtquickcontrols - libsForQt5.qtquickcontrols2 - libsForQt5.qtsvg - libsForQt5.qtx11extras - readline - sqlite - wget - zlib - ]; - patches = [ (fetchpatch { url = "https://aur.archlinux.org/cgit/aur.git/plain/020-megasync-sdk-fix-cmake-dependencies-detection.patch?h=megasync&id=ff59780039697591e7e3a966db058b23bee0451c"; @@ -101,12 +72,49 @@ stdenv.mkDerivation rec { ]; postPatch = '' - substituteInPlace cmake/modules/desktopapp_options.cmake --replace-fail "ENABLE_ISOLATED_GFX ON" "ENABLE_ISOLATED_GFX OFF" + substituteInPlace cmake/modules/desktopapp_options.cmake \ + --replace-fail "ENABLE_ISOLATED_GFX ON" "ENABLE_ISOLATED_GFX OFF" + for file in $(find src/ -type f \( -iname configure -o -iname \*.sh \) ); do - substituteInPlace "$file" --replace "/bin/bash" "${stdenv.shell}" + substituteInPlace "$file" --replace-warn "/bin/bash" "${stdenv.shell}" done ''; + nativeBuildInputs = [ + cmake + libsForQt5.qttools + libsForQt5.wrapQtAppsHook + libtool + pkg-config + unzip + ]; + + buildInputs = [ + c-ares + cryptopp + curl + ffmpeg + hicolor-icon-theme + icu + libmediainfo + libsForQt5.qtbase + libsForQt5.qtdeclarative + libsForQt5.qtgraphicaleffects + libsForQt5.qtquickcontrols + libsForQt5.qtquickcontrols2 + libsForQt5.qtsvg + libsForQt5.qtx11extras + libsodium + libuv + libxcb + libzen + openssl + readline + sqlite + wget + zlib + ]; + dontUseQmakeConfigure = true; enableParallelBuilding = true; @@ -120,14 +128,25 @@ stdenv.mkDerivation rec { qtWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ xorg.xrdb ]}) ''; - meta = with lib; { + passthru = { + updateScript = nix-update-script { + extraArgs = [ + "--version-regex=^v(.*)_Linux$" + ]; + }; + }; + + meta = { description = "Easy automated syncing between your computers and your MEGA Cloud Drive"; homepage = "https://mega.nz/"; - license = licenses.unfree; + downloadPage = "https://github.com/meganz/MEGAsync"; + changelog = "https://github.com/meganz/MEGAsync/releases/tag/v${finalAttrs.version}_Linux"; + license = lib.licenses.unfree; platforms = [ "i686-linux" "x86_64-linux" ]; maintainers = [ ]; + mainProgram = "megasync"; }; -} +})