diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 904216bfc377..851f20ca4b43 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -85,6 +85,7 @@ in ecryptfs = handleTest ./ecryptfs.nix {}; ejabberd = handleTest ./xmpp/ejabberd.nix {}; elk = handleTestOn ["x86_64-linux"] ./elk.nix {}; + enlightenment = handleTest ./enlightenment.nix {}; env = handleTest ./env.nix {}; etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {}; etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {}; diff --git a/nixos/tests/enlightenment.nix b/nixos/tests/enlightenment.nix new file mode 100644 index 000000000000..5fa8d765dd1f --- /dev/null +++ b/nixos/tests/enlightenment.nix @@ -0,0 +1,101 @@ +import ./make-test-python.nix ({ pkgs, ...} : +{ + name = "enlightenment"; + + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ romildo ]; + }; + + machine = { ... }: + { + imports = [ ./common/user-account.nix ]; + services.xserver.enable = true; + services.xserver.desktopManager.enlightenment.enable = true; + services.xserver.displayManager.lightdm = { + enable = true; + autoLogin = { + enable = true; + user = "alice"; + }; + }; + hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then + virtualisation.memorySize = 1024; + environment.systemPackages = [ pkgs.xdotool ]; + services.acpid.enable = true; + services.connman.enable = true; + services.connman.package = pkgs.connmanMinimal; + }; + + enableOCR = true; + + testScript = { nodes, ... }: let + user = nodes.machine.config.users.users.alice; + in '' + with subtest("Ensure x starts"): + machine.wait_for_x() + machine.wait_for_file("${user.home}/.Xauthority") + machine.succeed("xauth merge ${user.home}/.Xauthority") + + with subtest("Check that logging in has given the user ownership of devices"): + machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") + + with subtest("First time wizard"): + machine.wait_for_text("Default") # Language + machine.succeed("xdotool mousemove 512 185 click 1") # Default Language + machine.screenshot("wizard1") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("English") # Keyboard (default) + machine.screenshot("wizard2") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("Standard") # Profile (default) + machine.screenshot("wizard3") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("Title") # Sizing (default) + machine.screenshot("wizard4") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("clicked") # Windows Phocus + machine.succeed("xdotool mousemove 512 370 click 1") # Click + machine.screenshot("wizard5") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("bindings") # Mouse Modifiers (default) + machine.screenshot("wizard6") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("Connman") # Network Management (default) + machine.screenshot("wizard7") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("BlusZ") # Bluetooh Management (default) + machine.screenshot("wizard8") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("Compositing") # Compositing (default) + machine.screenshot("wizard9") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("update") # Updates + machine.succeed("xdotool mousemove 512 495 click 1") # Disable + machine.screenshot("wizard10") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("taskbar") # Taskbar + machine.succeed("xdotool mousemove 480 410 click 1") # Enable + machine.screenshot("wizard11") + machine.succeed("xdotool mousemove 512 740 click 1") # Next + + machine.wait_for_text("Home") # The desktop + machine.screenshot("wizard12") + + with subtest("Run Terminology"): + machine.succeed("terminology &") + machine.sleep(5) + machine.send_chars("ls --color -alF\n") + machine.sleep(2) + machine.screenshot("terminology") + ''; +}) diff --git a/pkgs/desktops/enlightenment/econnman.nix b/pkgs/desktops/enlightenment/econnman.nix index dfe294ef5c6a..1979b4518a70 100644 --- a/pkgs/desktops/enlightenment/econnman.nix +++ b/pkgs/desktops/enlightenment/econnman.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, efl, python2Packages, dbus, makeWrapper }: +{ stdenv, fetchurl, pkgconfig, efl, python3Packages, dbus, makeWrapper }: stdenv.mkDerivation rec { pname = "econnman"; @@ -9,11 +9,11 @@ stdenv.mkDerivation rec { sha256 = "057pwwavlvrrq26bncqnfrf449zzaim0zq717xv86av4n940gwv0"; }; - nativeBuildInputs = [ makeWrapper pkgconfig python2Packages.wrapPython ]; + nativeBuildInputs = [ makeWrapper pkgconfig python3Packages.wrapPython ]; - buildInputs = [ efl python2Packages.python dbus ]; + buildInputs = [ efl python3Packages.python dbus ]; - pythonPath = [ python2Packages.pythonefl python2Packages.dbus-python ]; + pythonPath = [ python3Packages.pythonefl python3Packages.dbus-python ]; postInstall = '' wrapPythonPrograms diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix index d3b0e43e4764..bd6c0529925a 100644 --- a/pkgs/desktops/enlightenment/efl.nix +++ b/pkgs/desktops/enlightenment/efl.nix @@ -1,19 +1,65 @@ -{ stdenv, fetchurl, meson, ninja, pkgconfig, SDL, SDL2, alsaLib, - avahi, bullet, check, curl, dbus, doxygen, expat, fontconfig, - freetype, fribidi, ghostscript, giflib, glib, gst_all_1, gtk3, - harfbuzz, hicolor-icon-theme, ibus, jbig2dec, libGL, libdrm, - libinput, libjpeg, libpng, libpulseaudio, libraw, librsvg, - libsndfile, libspectre, libtiff, libwebp, libxkbcommon, luajit, lz4, - mesa, openjpeg, openssl, poppler, python27Packages, systemd, udev, - utillinux, writeText, xorg, zlib }: +{ stdenv +, fetchurl +, meson +, ninja +, pkgconfig +, SDL +, SDL2 +, alsaLib +, avahi +, bullet +, check +, curl +, dbus +, doxygen +, expat +, fontconfig +, freetype +, fribidi +, ghostscript +, giflib +, glib +, gst_all_1 +, gtk3 +, harfbuzz +, hicolor-icon-theme +, ibus +, jbig2dec +, libGL +, libdrm +, libinput +, libjpeg +, libpng +, libpulseaudio +, libraw +, librsvg +, libsndfile +, libspectre +, libtiff +, libwebp +, libxkbcommon +, luajit +, lz4 +, mesa +, openjpeg +, openssl +, poppler +, python3Packages +, systemd +, udev +, utillinux +, writeText +, xorg +, zlib +}: stdenv.mkDerivation rec { pname = "efl"; - version = "1.23.3"; + version = "1.24.0"; src = fetchurl { url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz"; - sha256 = "00b9lp3h65254kdb1ys15fv7p3ln7qsvf15jkw4kli5ymagadkjk"; + sha256 = "1yhck2g4rwlzgnzqa4wjxw3lf6k6rd730hz4bwzajdjy7i26xfdk"; }; nativeBuildInputs = [ @@ -77,7 +123,7 @@ stdenv.mkDerivation rec { luajit openjpeg poppler - python27Packages.dbus-python + python3Packages.dbus-python utillinux xorg.libXScrnSaver xorg.libXcomposite @@ -102,6 +148,7 @@ stdenv.mkDerivation rec { "-D build-tests=false" # disable build tests, which are not working "-D drm=true" "-D embedded-lz4=false" + "-D ecore-imf-loaders-disabler=ibus,scim" # ibus is disalbed by default, scim is not availabe in nixpkgs "-D evas-loaders-disabler=json" "-D fb=true" "-D opengl=full" diff --git a/pkgs/development/python-modules/python-efl/default.nix b/pkgs/development/python-modules/python-efl/default.nix index 0657c6277700..419b49064873 100644 --- a/pkgs/development/python-modules/python-efl/default.nix +++ b/pkgs/development/python-modules/python-efl/default.nix @@ -1,29 +1,40 @@ -{ stdenv, fetchurl, buildPythonPackage, pkgconfig, python, enlightenment }: +{ stdenv +, fetchurl +, buildPythonPackage +, pkgconfig +, python +, dbus-python +, enlightenment +}: # Should be bumped along with EFL! buildPythonPackage rec { pname = "python-efl"; - version = "1.23.0"; + version = "1.24.0"; src = fetchurl { url = "http://download.enlightenment.org/rel/bindings/python/${pname}-${version}.tar.xz"; - sha256 = "16yn6a1b9167nfmryyi44ma40m20ansfpwgrvqzfvwix7qaz9pib"; + sha256 = "1vk1cdd959gia4a9qzyq56a9zw3lqf9ck66k8c9g3c631mp5cfpy"; }; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ enlightenment.efl ]; - propagatedBuildInputs = [ python.pkgs.dbus-python ]; + propagatedBuildInputs = [ dbus-python ]; preConfigure = '' - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags efl) -I${stdenv.lib.getDev python.pkgs.dbus-python}/include/dbus-1.0 $NIX_CFLAGS_COMPILE" + NIX_CFLAGS_COMPILE="$(pkg-config --cflags efl evas) $NIX_CFLAGS_COMPILE" ''; - preBuild = "${python.interpreter} setup.py build_ext"; + preBuild = '' + ${python.interpreter} setup.py build_ext + ''; - installPhase= "${python.interpreter} setup.py install --prefix=$out"; + installPhase = '' + ${python.interpreter} setup.py install --prefix=$out + ''; doCheck = false;