Loading nixos/tests/all-tests.nix +3 −1 Original line number Diff line number Diff line Loading @@ -414,7 +414,9 @@ in { mtp = handleTest ./mtp.nix {}; multipass = handleTest ./multipass.nix {}; mumble = handleTest ./mumble.nix {}; musescore = handleTest ./musescore.nix {}; # Fails on aarch64-linux at the PDF creation step - need to debug this on an # aarch64 machine.. musescore = handleTestOn ["x86_64-linux"] ./musescore.nix {}; munin = handleTest ./munin.nix {}; mutableUsers = handleTest ./mutable-users.nix {}; mxisd = handleTest ./mxisd.nix {}; Loading nixos/tests/musescore.nix +36 −20 Original line number Diff line number Diff line Loading @@ -2,13 +2,12 @@ import ./make-test-python.nix ({ pkgs, ...} : let # Make sure we don't have to go through the startup tutorial customMuseScoreConfig = pkgs.writeText "MuseScore3.ini" '' customMuseScoreConfig = pkgs.writeText "MuseScore4.ini" '' [application] startup\firstStart=false hasCompletedFirstLaunchSetup=true [ui] application\startup\showTours=false application\startup\showStartCenter=false [project] preferredScoreCreationMode=1 ''; in { Loading Loading @@ -40,26 +39,43 @@ in # Inject custom settings machine.succeed("mkdir -p /root/.config/MuseScore/") machine.succeed( "cp ${customMuseScoreConfig} /root/.config/MuseScore/MuseScore3.ini" "cp ${customMuseScoreConfig} /root/.config/MuseScore/MuseScore4.ini" ) # Start MuseScore window machine.execute("DISPLAY=:0.0 mscore >&2 &") # Wait until MuseScore has launched machine.wait_for_window("MuseScore") machine.wait_for_window("MuseScore 4") # Wait until the window has completely initialised machine.wait_for_text("MuseScore") machine.wait_for_text("MuseScore 4") machine.screenshot("MuseScore0") # Create a new score machine.send_key("ctrl-n") # Wait until the creation wizard appears machine.wait_for_window("New score") machine.screenshot("MuseScore1") machine.send_key("tab") machine.send_key("tab") machine.send_key("tab") machine.send_key("tab") machine.send_key("right") machine.send_key("right") machine.send_key("ret") machine.sleep(1) # Start entering notes machine.send_key("n") # Type the beginning of https://de.wikipedia.org/wiki/Alle_meine_Entchen machine.send_chars("cdef6gg5aaaa7g") # Make sure the VM catches up with all the keys machine.sleep(1) machine.screenshot("MuseScore0") machine.screenshot("MuseScore2") # Go to the export dialogue and create a PDF machine.send_key("alt-f") Loading @@ -67,24 +83,24 @@ in machine.send_key("e") # Wait until the export dialogue appears. machine.wait_for_window("Export") machine.screenshot("MuseScore1") machine.send_key("shift-tab") machine.sleep(1) machine.wait_for_text("Export") machine.screenshot("MuseScore3") machine.send_key("shift-tab") machine.sleep(1) machine.send_key("ret") machine.sleep(1) machine.send_key("ret") machine.screenshot("MuseScore2") machine.screenshot("MuseScore4") # Wait until PDF is exported machine.wait_for_file("/root/Documents/MuseScore3/Scores/Untitled.pdf") machine.wait_for_file('"/root/Documents/MuseScore4/Scores/Untitled score.pdf"') # Check that it contains the title of the score machine.succeed("pdfgrep Title /root/Documents/MuseScore3/Scores/Untitled.pdf") machine.succeed('pdfgrep "Untitled score" "/root/Documents/MuseScore4/Scores/Untitled score.pdf"') machine.screenshot("MuseScore3") machine.screenshot("MuseScore5") ''; }) pkgs/applications/audio/musescore/darwin.nix +4 −3 Original line number Diff line number Diff line { stdenv, lib, fetchurl, undmg }: let versionComponents = [ "3" "6" "2" "548020600" ]; versionComponents = [ "4" "0" "1" ]; appName = "MuseScore ${builtins.head versionComponents}"; ref = "230121751"; in stdenv.mkDerivation rec { Loading @@ -13,8 +14,8 @@ stdenv.mkDerivation rec { sourceRoot = "${appName}.app"; src = fetchurl { url = "https://github.com/musescore/MuseScore/releases/download/v${lib.concatStringsSep "." (lib.take 3 versionComponents)}/MuseScore-${version}.dmg"; sha256 = "sha256-lHckfhTTrDzaGwlbnZ5w0O1gMPbRmrmgATIGMY517l0="; url = "https://github.com/musescore/MuseScore/releases/download/v${version}/MuseScore-${version}.${ref}.dmg"; hash = "sha256-tkIEV+tCS0SYh2TlC70/zEBUEOSg//EaSKDGA7kH/vo="; }; buildInputs = [ undmg ]; Loading pkgs/applications/audio/musescore/default.nix +20 −11 Original line number Diff line number Diff line { mkDerivation, lib, fetchFromGitHub, cmake, pkg-config { mkDerivation, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config, ninja , alsa-lib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects, flac , qtquickcontrols2, qtscript, qtsvg, qttools , qtwebengine, qtxmlpatterns , qtwebengine, qtxmlpatterns, qtnetworkauth, qtx11extras , nixosTests }: mkDerivation rec { pname = "musescore"; version = "3.6.2"; version = "4.0.1"; src = fetchFromGitHub { owner = "musescore"; repo = "MuseScore"; rev = "v${version}"; sha256 = "sha256-GBGAD/qdOhoNfDzI+O0EiKgeb86GFJxpci35T6tZ+2s="; sha256 = "sha256-Xhjjm/pYcjfZE632eP2jujqUAmzdYNa81EPrvS5UKnQ="; }; patches = [ ./remove_qtwebengine_install_hack.patch # See https://github.com/musescore/MuseScore/issues/15571 (fetchpatch { url = "https://github.com/musescore/MuseScore/commit/365be5dfb7296ebee4677cb74b67c1721bc2cf7b.patch"; hash = "sha256-tJ2M21i3geO9OsjUQKNatSXTkJ5U9qMT4RLNdJnyoKw="; }) ]; cmakeFlags = [ "-DMUSESCORE_BUILD_CONFIG=release" # Disable the _usage_ of the `/bin/crashpad_handler` utility. See: # https://github.com/musescore/MuseScore/pull/15577 "-DBUILD_CRASHPAD_CLIENT=OFF" # Use our freetype "-DUSE_SYSTEM_FREETYPE=ON" ]; Loading @@ -34,13 +41,13 @@ mkDerivation rec { "--set-default QT_QPA_PLATFORM xcb" ]; nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ninja ]; buildInputs = [ alsa-lib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis portaudio portmidi # tesseract portaudio portmidi flac # tesseract qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2 qtscript qtsvg qttools qtwebengine qtxmlpatterns qtscript qtsvg qttools qtwebengine qtxmlpatterns qtnetworkauth qtx11extras ]; passthru.tests = nixosTests.musescore; Loading @@ -48,8 +55,10 @@ mkDerivation rec { meta = with lib; { description = "Music notation and composition software"; homepage = "https://musescore.org/"; license = licenses.gpl2; license = licenses.gpl3Only; maintainers = with maintainers; [ vandenoever turion doronbehar ]; # Darwin requires CoreMIDI from SDK 11.3, we use the upstream built .dmg # file in ./darwin.nix in the meantime. platforms = platforms.linux; }; } pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patchdeleted 100644 → 0 +0 −19 Original line number Diff line number Diff line --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -220,16 +219,0 @@ else (MINGW) - ## install qwebengine core - if (NOT APPLE AND USE_WEBENGINE) - install(PROGRAMS - ${QT_INSTALL_LIBEXECS}/QtWebEngineProcess - DESTINATION bin - ) - install(DIRECTORY - ${QT_INSTALL_DATA}/resources - DESTINATION lib/qt5 - ) - install(DIRECTORY - ${QT_INSTALL_TRANSLATIONS}/qtwebengine_locales - DESTINATION lib/qt5/translations - ) - endif(NOT APPLE AND USE_WEBENGINE) - Loading
nixos/tests/all-tests.nix +3 −1 Original line number Diff line number Diff line Loading @@ -414,7 +414,9 @@ in { mtp = handleTest ./mtp.nix {}; multipass = handleTest ./multipass.nix {}; mumble = handleTest ./mumble.nix {}; musescore = handleTest ./musescore.nix {}; # Fails on aarch64-linux at the PDF creation step - need to debug this on an # aarch64 machine.. musescore = handleTestOn ["x86_64-linux"] ./musescore.nix {}; munin = handleTest ./munin.nix {}; mutableUsers = handleTest ./mutable-users.nix {}; mxisd = handleTest ./mxisd.nix {}; Loading
nixos/tests/musescore.nix +36 −20 Original line number Diff line number Diff line Loading @@ -2,13 +2,12 @@ import ./make-test-python.nix ({ pkgs, ...} : let # Make sure we don't have to go through the startup tutorial customMuseScoreConfig = pkgs.writeText "MuseScore3.ini" '' customMuseScoreConfig = pkgs.writeText "MuseScore4.ini" '' [application] startup\firstStart=false hasCompletedFirstLaunchSetup=true [ui] application\startup\showTours=false application\startup\showStartCenter=false [project] preferredScoreCreationMode=1 ''; in { Loading Loading @@ -40,26 +39,43 @@ in # Inject custom settings machine.succeed("mkdir -p /root/.config/MuseScore/") machine.succeed( "cp ${customMuseScoreConfig} /root/.config/MuseScore/MuseScore3.ini" "cp ${customMuseScoreConfig} /root/.config/MuseScore/MuseScore4.ini" ) # Start MuseScore window machine.execute("DISPLAY=:0.0 mscore >&2 &") # Wait until MuseScore has launched machine.wait_for_window("MuseScore") machine.wait_for_window("MuseScore 4") # Wait until the window has completely initialised machine.wait_for_text("MuseScore") machine.wait_for_text("MuseScore 4") machine.screenshot("MuseScore0") # Create a new score machine.send_key("ctrl-n") # Wait until the creation wizard appears machine.wait_for_window("New score") machine.screenshot("MuseScore1") machine.send_key("tab") machine.send_key("tab") machine.send_key("tab") machine.send_key("tab") machine.send_key("right") machine.send_key("right") machine.send_key("ret") machine.sleep(1) # Start entering notes machine.send_key("n") # Type the beginning of https://de.wikipedia.org/wiki/Alle_meine_Entchen machine.send_chars("cdef6gg5aaaa7g") # Make sure the VM catches up with all the keys machine.sleep(1) machine.screenshot("MuseScore0") machine.screenshot("MuseScore2") # Go to the export dialogue and create a PDF machine.send_key("alt-f") Loading @@ -67,24 +83,24 @@ in machine.send_key("e") # Wait until the export dialogue appears. machine.wait_for_window("Export") machine.screenshot("MuseScore1") machine.send_key("shift-tab") machine.sleep(1) machine.wait_for_text("Export") machine.screenshot("MuseScore3") machine.send_key("shift-tab") machine.sleep(1) machine.send_key("ret") machine.sleep(1) machine.send_key("ret") machine.screenshot("MuseScore2") machine.screenshot("MuseScore4") # Wait until PDF is exported machine.wait_for_file("/root/Documents/MuseScore3/Scores/Untitled.pdf") machine.wait_for_file('"/root/Documents/MuseScore4/Scores/Untitled score.pdf"') # Check that it contains the title of the score machine.succeed("pdfgrep Title /root/Documents/MuseScore3/Scores/Untitled.pdf") machine.succeed('pdfgrep "Untitled score" "/root/Documents/MuseScore4/Scores/Untitled score.pdf"') machine.screenshot("MuseScore3") machine.screenshot("MuseScore5") ''; })
pkgs/applications/audio/musescore/darwin.nix +4 −3 Original line number Diff line number Diff line { stdenv, lib, fetchurl, undmg }: let versionComponents = [ "3" "6" "2" "548020600" ]; versionComponents = [ "4" "0" "1" ]; appName = "MuseScore ${builtins.head versionComponents}"; ref = "230121751"; in stdenv.mkDerivation rec { Loading @@ -13,8 +14,8 @@ stdenv.mkDerivation rec { sourceRoot = "${appName}.app"; src = fetchurl { url = "https://github.com/musescore/MuseScore/releases/download/v${lib.concatStringsSep "." (lib.take 3 versionComponents)}/MuseScore-${version}.dmg"; sha256 = "sha256-lHckfhTTrDzaGwlbnZ5w0O1gMPbRmrmgATIGMY517l0="; url = "https://github.com/musescore/MuseScore/releases/download/v${version}/MuseScore-${version}.${ref}.dmg"; hash = "sha256-tkIEV+tCS0SYh2TlC70/zEBUEOSg//EaSKDGA7kH/vo="; }; buildInputs = [ undmg ]; Loading
pkgs/applications/audio/musescore/default.nix +20 −11 Original line number Diff line number Diff line { mkDerivation, lib, fetchFromGitHub, cmake, pkg-config { mkDerivation, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config, ninja , alsa-lib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects, flac , qtquickcontrols2, qtscript, qtsvg, qttools , qtwebengine, qtxmlpatterns , qtwebengine, qtxmlpatterns, qtnetworkauth, qtx11extras , nixosTests }: mkDerivation rec { pname = "musescore"; version = "3.6.2"; version = "4.0.1"; src = fetchFromGitHub { owner = "musescore"; repo = "MuseScore"; rev = "v${version}"; sha256 = "sha256-GBGAD/qdOhoNfDzI+O0EiKgeb86GFJxpci35T6tZ+2s="; sha256 = "sha256-Xhjjm/pYcjfZE632eP2jujqUAmzdYNa81EPrvS5UKnQ="; }; patches = [ ./remove_qtwebengine_install_hack.patch # See https://github.com/musescore/MuseScore/issues/15571 (fetchpatch { url = "https://github.com/musescore/MuseScore/commit/365be5dfb7296ebee4677cb74b67c1721bc2cf7b.patch"; hash = "sha256-tJ2M21i3geO9OsjUQKNatSXTkJ5U9qMT4RLNdJnyoKw="; }) ]; cmakeFlags = [ "-DMUSESCORE_BUILD_CONFIG=release" # Disable the _usage_ of the `/bin/crashpad_handler` utility. See: # https://github.com/musescore/MuseScore/pull/15577 "-DBUILD_CRASHPAD_CLIENT=OFF" # Use our freetype "-DUSE_SYSTEM_FREETYPE=ON" ]; Loading @@ -34,13 +41,13 @@ mkDerivation rec { "--set-default QT_QPA_PLATFORM xcb" ]; nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ninja ]; buildInputs = [ alsa-lib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis portaudio portmidi # tesseract portaudio portmidi flac # tesseract qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2 qtscript qtsvg qttools qtwebengine qtxmlpatterns qtscript qtsvg qttools qtwebengine qtxmlpatterns qtnetworkauth qtx11extras ]; passthru.tests = nixosTests.musescore; Loading @@ -48,8 +55,10 @@ mkDerivation rec { meta = with lib; { description = "Music notation and composition software"; homepage = "https://musescore.org/"; license = licenses.gpl2; license = licenses.gpl3Only; maintainers = with maintainers; [ vandenoever turion doronbehar ]; # Darwin requires CoreMIDI from SDK 11.3, we use the upstream built .dmg # file in ./darwin.nix in the meantime. platforms = platforms.linux; }; }
pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patchdeleted 100644 → 0 +0 −19 Original line number Diff line number Diff line --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -220,16 +219,0 @@ else (MINGW) - ## install qwebengine core - if (NOT APPLE AND USE_WEBENGINE) - install(PROGRAMS - ${QT_INSTALL_LIBEXECS}/QtWebEngineProcess - DESTINATION bin - ) - install(DIRECTORY - ${QT_INSTALL_DATA}/resources - DESTINATION lib/qt5 - ) - install(DIRECTORY - ${QT_INSTALL_TRANSLATIONS}/qtwebengine_locales - DESTINATION lib/qt5/translations - ) - endif(NOT APPLE AND USE_WEBENGINE) -