lol

musescore: 3.6.2 -> 4.0.1

Diff: https://github.com/musescore/MuseScore/compare/v3.6.2...v4.0.1

Update license, fix nixos test and add missing inputs.

+60 -53
+36 -20
nixos/tests/musescore.nix
··· 2 2 3 3 let 4 4 # Make sure we don't have to go through the startup tutorial 5 - customMuseScoreConfig = pkgs.writeText "MuseScore3.ini" '' 5 + customMuseScoreConfig = pkgs.writeText "MuseScore4.ini" '' 6 6 [application] 7 - startup\firstStart=false 7 + hasCompletedFirstLaunchSetup=true 8 8 9 - [ui] 10 - application\startup\showTours=false 11 - application\startup\showStartCenter=false 9 + [project] 10 + preferredScoreCreationMode=1 12 11 ''; 13 12 in 14 13 { ··· 40 39 # Inject custom settings 41 40 machine.succeed("mkdir -p /root/.config/MuseScore/") 42 41 machine.succeed( 43 - "cp ${customMuseScoreConfig} /root/.config/MuseScore/MuseScore3.ini" 42 + "cp ${customMuseScoreConfig} /root/.config/MuseScore/MuseScore4.ini" 44 43 ) 45 44 46 45 # Start MuseScore window 47 46 machine.execute("DISPLAY=:0.0 mscore >&2 &") 48 47 49 48 # Wait until MuseScore has launched 50 - machine.wait_for_window("MuseScore") 49 + machine.wait_for_window("MuseScore 4") 51 50 52 51 # Wait until the window has completely initialised 53 - machine.wait_for_text("MuseScore") 52 + machine.wait_for_text("MuseScore 4") 53 + 54 + machine.screenshot("MuseScore0") 55 + 56 + # Create a new score 57 + machine.send_key("ctrl-n") 58 + 59 + # Wait until the creation wizard appears 60 + machine.wait_for_window("New score") 61 + 62 + machine.screenshot("MuseScore1") 54 63 55 - # Start entering notes 56 - machine.send_key("n") 64 + machine.send_key("tab") 65 + machine.send_key("tab") 66 + machine.send_key("tab") 67 + machine.send_key("tab") 68 + machine.send_key("right") 69 + machine.send_key("right") 70 + machine.send_key("ret") 71 + 72 + machine.sleep(1) 73 + 57 74 # Type the beginning of https://de.wikipedia.org/wiki/Alle_meine_Entchen 58 75 machine.send_chars("cdef6gg5aaaa7g") 59 - # Make sure the VM catches up with all the keys 60 76 machine.sleep(1) 61 77 62 - machine.screenshot("MuseScore0") 78 + machine.screenshot("MuseScore2") 63 79 64 80 # Go to the export dialogue and create a PDF 65 81 machine.send_key("alt-f") ··· 67 83 machine.send_key("e") 68 84 69 85 # Wait until the export dialogue appears. 70 - machine.wait_for_window("Export") 71 - machine.screenshot("MuseScore1") 72 - machine.send_key("shift-tab") 73 - machine.sleep(1) 86 + machine.wait_for_text("Export") 87 + 88 + machine.screenshot("MuseScore3") 89 + 74 90 machine.send_key("shift-tab") 75 91 machine.sleep(1) 76 92 machine.send_key("ret") 77 93 machine.sleep(1) 78 94 machine.send_key("ret") 79 95 80 - machine.screenshot("MuseScore2") 96 + machine.screenshot("MuseScore4") 81 97 82 98 # Wait until PDF is exported 83 - machine.wait_for_file("/root/Documents/MuseScore3/Scores/Untitled.pdf") 99 + machine.wait_for_file('"/root/Documents/MuseScore4/Scores/Untitled score.pdf"') 84 100 85 101 # Check that it contains the title of the score 86 - machine.succeed("pdfgrep Title /root/Documents/MuseScore3/Scores/Untitled.pdf") 102 + machine.succeed('pdfgrep "Untitled score" "/root/Documents/MuseScore4/Scores/Untitled score.pdf"') 87 103 88 - machine.screenshot("MuseScore3") 104 + machine.screenshot("MuseScore5") 89 105 ''; 90 106 })
+4 -3
pkgs/applications/audio/musescore/darwin.nix
··· 1 1 { stdenv, lib, fetchurl, undmg }: 2 2 3 3 let 4 - versionComponents = [ "3" "6" "2" "548020600" ]; 4 + versionComponents = [ "4" "0" "1" ]; 5 5 appName = "MuseScore ${builtins.head versionComponents}"; 6 + ref = "230121751"; 6 7 in 7 8 8 9 stdenv.mkDerivation rec { ··· 13 14 sourceRoot = "${appName}.app"; 14 15 15 16 src = fetchurl { 16 - url = "https://github.com/musescore/MuseScore/releases/download/v${lib.concatStringsSep "." (lib.take 3 versionComponents)}/MuseScore-${version}.dmg"; 17 - sha256 = "sha256-lHckfhTTrDzaGwlbnZ5w0O1gMPbRmrmgATIGMY517l0="; 17 + url = "https://github.com/musescore/MuseScore/releases/download/v${version}/MuseScore-${version}.${ref}.dmg"; 18 + hash = "sha256-tkIEV+tCS0SYh2TlC70/zEBUEOSg//EaSKDGA7kH/vo="; 18 19 }; 19 20 20 21 buildInputs = [ undmg ];
+20 -11
pkgs/applications/audio/musescore/default.nix
··· 1 - { mkDerivation, lib, fetchFromGitHub, cmake, pkg-config 1 + { mkDerivation, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config, ninja 2 2 , alsa-lib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis 3 - , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects 3 + , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects, flac 4 4 , qtquickcontrols2, qtscript, qtsvg, qttools 5 - , qtwebengine, qtxmlpatterns 5 + , qtwebengine, qtxmlpatterns, qtnetworkauth, qtx11extras 6 6 , nixosTests 7 7 }: 8 8 9 9 mkDerivation rec { 10 10 pname = "musescore"; 11 - version = "3.6.2"; 11 + version = "4.0.1"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "musescore"; 15 15 repo = "MuseScore"; 16 16 rev = "v${version}"; 17 - sha256 = "sha256-GBGAD/qdOhoNfDzI+O0EiKgeb86GFJxpci35T6tZ+2s="; 17 + sha256 = "sha256-Xhjjm/pYcjfZE632eP2jujqUAmzdYNa81EPrvS5UKnQ="; 18 18 }; 19 - 20 19 patches = [ 21 - ./remove_qtwebengine_install_hack.patch 20 + # See https://github.com/musescore/MuseScore/issues/15571 21 + (fetchpatch { 22 + url = "https://github.com/musescore/MuseScore/commit/365be5dfb7296ebee4677cb74b67c1721bc2cf7b.patch"; 23 + hash = "sha256-tJ2M21i3geO9OsjUQKNatSXTkJ5U9qMT4RLNdJnyoKw="; 24 + }) 22 25 ]; 23 26 24 27 cmakeFlags = [ 25 28 "-DMUSESCORE_BUILD_CONFIG=release" 29 + # Disable the _usage_ of the `/bin/crashpad_handler` utility. See: 30 + # https://github.com/musescore/MuseScore/pull/15577 31 + "-DBUILD_CRASHPAD_CLIENT=OFF" 32 + # Use our freetype 26 33 "-DUSE_SYSTEM_FREETYPE=ON" 27 34 ]; 28 35 ··· 34 41 "--set-default QT_QPA_PLATFORM xcb" 35 42 ]; 36 43 37 - nativeBuildInputs = [ cmake pkg-config ]; 44 + nativeBuildInputs = [ cmake pkg-config ninja ]; 38 45 39 46 buildInputs = [ 40 47 alsa-lib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis 41 - portaudio portmidi # tesseract 48 + portaudio portmidi flac # tesseract 42 49 qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2 43 - qtscript qtsvg qttools qtwebengine qtxmlpatterns 50 + qtscript qtsvg qttools qtwebengine qtxmlpatterns qtnetworkauth qtx11extras 44 51 ]; 45 52 46 53 passthru.tests = nixosTests.musescore; ··· 48 55 meta = with lib; { 49 56 description = "Music notation and composition software"; 50 57 homepage = "https://musescore.org/"; 51 - license = licenses.gpl2; 58 + license = licenses.gpl3Only; 52 59 maintainers = with maintainers; [ vandenoever turion doronbehar ]; 60 + # Darwin requires CoreMIDI from SDK 11.3, we use the upstream built .dmg 61 + # file in ./darwin.nix in the meantime. 53 62 platforms = platforms.linux; 54 63 }; 55 64 }
-19
pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch
··· 1 - --- a/main/CMakeLists.txt 2 - +++ b/main/CMakeLists.txt 3 - @@ -220,16 +219,0 @@ else (MINGW) 4 - - ## install qwebengine core 5 - - if (NOT APPLE AND USE_WEBENGINE) 6 - - install(PROGRAMS 7 - - ${QT_INSTALL_LIBEXECS}/QtWebEngineProcess 8 - - DESTINATION bin 9 - - ) 10 - - install(DIRECTORY 11 - - ${QT_INSTALL_DATA}/resources 12 - - DESTINATION lib/qt5 13 - - ) 14 - - install(DIRECTORY 15 - - ${QT_INSTALL_TRANSLATIONS}/qtwebengine_locales 16 - - DESTINATION lib/qt5/translations 17 - - ) 18 - - endif(NOT APPLE AND USE_WEBENGINE) 19 - -