diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix index 9103a6f932d..bd74e1a9cdb 100644 --- a/nixos/modules/services/monitoring/prometheus/default.nix +++ b/nixos/modules/services/monitoring/prometheus/default.nix @@ -468,7 +468,7 @@ let ''; }; - value = mkOption { + values = mkOption { type = types.listOf types.str; default = []; description = '' diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 5ea7a5c0f05..773f91d8604 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -240,6 +240,7 @@ in mosquitto = handleTest ./mosquitto.nix {}; mpd = handleTest ./mpd.nix {}; mumble = handleTest ./mumble.nix {}; + musescore = handleTest ./musescore.nix {}; munin = handleTest ./munin.nix {}; mutableUsers = handleTest ./mutable-users.nix {}; mxisd = handleTest ./mxisd.nix {}; diff --git a/nixos/tests/musescore.nix b/nixos/tests/musescore.nix new file mode 100644 index 00000000000..96481a9a8bf --- /dev/null +++ b/nixos/tests/musescore.nix @@ -0,0 +1,86 @@ +import ./make-test-python.nix ({ pkgs, ...} : + +let + # Make sure we don't have to go through the startup tutorial + customMuseScoreConfig = pkgs.writeText "MuseScore3.ini" '' + [application] + startup\firstStart=false + + [ui] + application\startup\showTours=false + application\startup\showStartCenter=false + ''; +in +{ + name = "musescore"; + meta = with pkgs.lib.maintainers; { + maintainers = [ turion ]; + }; + + machine = { ... }: + + { + imports = [ + ./common/x11.nix + ]; + + services.xserver.enable = true; + environment.systemPackages = with pkgs; [ + musescore + pdfgrep + ]; + }; + + enableOCR = true; + + testScript = { ... }: '' + start_all() + machine.wait_for_x() + + # Inject custom settings + machine.succeed("mkdir -p /root/.config/MuseScore/") + machine.succeed( + "cp ${customMuseScoreConfig} /root/.config/MuseScore/MuseScore3.ini" + ) + + # Start MuseScore window + machine.execute("DISPLAY=:0.0 mscore &") + + # Wait until MuseScore has launched + machine.wait_for_window("MuseScore") + + # Wait until the window has completely initialised + machine.wait_for_text("MuseScore") + + # 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") + + # Go to the export dialogue and create a PDF + machine.send_key("alt-f") + machine.sleep(1) + machine.send_key("e") + + # Wait until the export dialogue appears. + machine.wait_for_window("Export") + machine.screenshot("MuseScore1") + machine.send_key("ret") + machine.sleep(1) + machine.send_key("ret") + + machine.screenshot("MuseScore2") + + # Wait until PDF is exported + machine.wait_for_file("/root/Documents/MuseScore3/Scores/Untitled.pdf") + + # Check that it contains the title of the score + machine.succeed("pdfgrep Title /root/Documents/MuseScore3/Scores/Untitled.pdf") + + machine.screenshot("MuseScore3") + ''; +}) diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix index 47f8e5a22e6..0c1ad144a4a 100644 --- a/pkgs/applications/audio/musescore/default.nix +++ b/pkgs/applications/audio/musescore/default.nix @@ -3,6 +3,7 @@ , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects , qtquickcontrols2, qtscript, qtsvg, qttools , qtwebengine, qtxmlpatterns +, nixosTests }: mkDerivation rec { @@ -40,6 +41,8 @@ mkDerivation rec { qtscript qtsvg qttools qtwebengine qtxmlpatterns ]; + passthru.tests = nixosTests.musescore; + meta = with lib; { description = "Music notation and composition software"; homepage = "https://musescore.org/"; diff --git a/pkgs/applications/misc/klayout/default.nix b/pkgs/applications/misc/klayout/default.nix index 60905be3b1b..33f3c4144b5 100644 --- a/pkgs/applications/misc/klayout/default.nix +++ b/pkgs/applications/misc/klayout/default.nix @@ -5,13 +5,13 @@ mkDerivation rec { pname = "klayout"; - version = "0.26.8"; + version = "0.26.9"; src = fetchFromGitHub { owner = "KLayout"; repo = "klayout"; rev = "v${version}"; - sha256 = "0pkhvxcfk70dnmgczyyq585mxrfwqai44ikshs4c1imh92z25llq"; + sha256 = "sha256-d0k8OQZ+ij+dslc3iAQkgy1TyYAL7Bf1xvSH21eTGO8="; }; postPatch = '' diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix index aa52fee0890..32e7e7e5d72 100644 --- a/pkgs/applications/science/chemistry/jmol/default.nix +++ b/pkgs/applications/science/chemistry/jmol/default.nix @@ -17,14 +17,14 @@ let }; in stdenv.mkDerivation rec { - version = "14.31.18"; + version = "14.31.24"; pname = "jmol"; src = let baseVersion = "${lib.versions.major version}.${lib.versions.minor version}"; in fetchurl { url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz"; - sha256 = "0hkc7c08azbw3k91ygwz6r5y4yw6k8l7h4gcq5p71knd5k1fa5jd"; + sha256 = "sha256-86nDeKRXSNKrmYeo1rRLfziLVnmEmdIJRfIv6DFIxcs="; }; patchPhase = '' diff --git a/pkgs/development/interpreters/jruby/default.nix b/pkgs/development/interpreters/jruby/default.nix index fb1fdd3c8e0..4d8771b93eb 100644 --- a/pkgs/development/interpreters/jruby/default.nix +++ b/pkgs/development/interpreters/jruby/default.nix @@ -6,11 +6,11 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "5" "7" ""; jruby = stdenv.mkDerivation rec { pname = "jruby"; - version = "9.2.14.0"; + version = "9.2.15.0"; src = fetchurl { url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz"; - sha256 = "1dg0fz9b8m1k0sypvpxnf4xjqwc0pyy35xw4rsg4a7pha4jkprrj"; + sha256 = "sha256-no5dc8QtHa2KeVptw5vYfoj8iGP3bgZeQJnDLQhSBbA="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/networking/webwormhole/default.nix b/pkgs/tools/networking/webwormhole/default.nix new file mode 100644 index 00000000000..8fbaf3159a2 --- /dev/null +++ b/pkgs/tools/networking/webwormhole/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "webwormhole"; + version = "unstable-2021-01-16"; + + src = fetchFromGitHub { + owner = "saljam"; + repo = pname; + rev = "c85e196c8a8a885815136aa8aee1958ad80a3bb5"; + sha256 = "D10xmBwmEbeR3nU4CmppFBzdeE4Pm2+o/Vb5Yd+pPtM="; + }; + + vendorSha256 = "sha256-yK04gjDO6JSDcJULcbJBBuPBhx792JNn+B227lDUrWk="; + + meta = with lib; { + description = "Send files using peer authenticated WebRTC"; + homepage = "https://github.com/saljam/webwormhole"; + license = licenses.bsd3; + maintainers = with maintainers; [ bbigras ]; + }; +} diff --git a/pkgs/tools/package-management/opkg/default.nix b/pkgs/tools/package-management/opkg/default.nix index c4fc804b80f..7f06cbbd3c2 100644 --- a/pkgs/tools/package-management/opkg/default.nix +++ b/pkgs/tools/package-management/opkg/default.nix @@ -2,11 +2,11 @@ , autoreconfHook }: stdenv.mkDerivation rec { - version = "0.4.3"; + version = "0.4.4"; pname = "opkg"; src = fetchurl { url = "https://downloads.yoctoproject.org/releases/opkg/opkg-${version}.tar.gz"; - sha256 = "06278gmb26b9nl8l328cc2c2mhfi0dhac65syws17kf09f2m596x"; + sha256 = "sha256-IhesxYuOsxMAYx66514iLrxwDJwc9kCAiHBdGaRyyDk="; }; nativeBuildInputs = [ pkg-config autoreconfHook ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9b01d4153e6..784178cba9c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30110,6 +30110,8 @@ in nix-store-gcs-proxy = callPackage ../tools/nix/nix-store-gcs-proxy {}; + webwormhole = callPackage ../tools/networking/webwormhole { }; + wifi-password = callPackage ../os-specific/darwin/wifi-password {}; qubes-core-vchan-xen = callPackage ../applications/qubes/qubes-core-vchan-xen {};