Unverified Commit bbea96f5 authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

lomiri.lomiri-calendar-app: init at 1.1.2 (#366949)

parents 9956bc4b 883665e9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -86,6 +86,7 @@ in
            libusermetrics
            lomiri
            lomiri-calculator-app
            lomiri-calendar-app
            lomiri-camera-app
            lomiri-clock-app
            lomiri-content-hub
+1 −0
Original line number Diff line number Diff line
@@ -564,6 +564,7 @@ in {
  #logstash = handleTest ./logstash.nix {};
  lomiri = discoverTests (import ./lomiri.nix);
  lomiri-calculator-app = runTest ./lomiri-calculator-app.nix;
  lomiri-calendar-app = runTest ./lomiri-calendar-app.nix;
  lomiri-camera-app = runTest ./lomiri-camera-app.nix;
  lomiri-clock-app = runTest ./lomiri-clock-app.nix;
  lomiri-docviewer-app = runTest ./lomiri-docviewer-app.nix;
+79 −0
Original line number Diff line number Diff line
{ pkgs, lib, ... }:
{
  name = "lomiri-calendar-app-standalone";
  meta = {
    maintainers = lib.teams.lomiri.members;
    # This needs a Linux VM
    platforms = lib.platforms.linux;
  };

  nodes.machine =
    { config, pkgs, ... }:
    {
      imports = [ ./common/x11.nix ];

      services.xserver.enable = true;

      environment = {
        systemPackages =
          with pkgs;
          [
            xdotool # mouse movement
          ]
          ++ (with pkgs.lomiri; [
            suru-icon-theme
            lomiri-calendar-app
          ]);
        variables = {
          UITK_ICON_THEME = "suru";
        };
      };

      i18n.supportedLocales = [ "all" ];

      fonts.packages = with pkgs; [
        # Intended font & helps with OCR
        ubuntu-classic
      ];
    };

  enableOCR = true;

  testScript = ''
    machine.wait_for_x()

    with subtest("lomiri calendar launches"):
        machine.succeed("lomiri-calendar-app >&2 &")
        machine.wait_for_text(r"(January|February|March|April|May|June|July|August|September|October|November|December)")
        machine.screenshot("lomiri-calendar")

    with subtest("lomiri calendar works"):
        # Switch to Agenda tab, less busy
        machine.succeed("xdotool mousemove 300 50 click 1")

        # Still on main page
        machine.succeed("xdotool mousemove 500 650 click 1")
        machine.wait_for_text(r"(Date|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|All day|Name|Details|More)")
        machine.screenshot("lomiri-calendar_newevent")

        # On New Event page
        machine.succeed("xdotool mousemove 500 230 click 1")
        machine.send_chars("foobar")
        machine.sleep(2) # make sure they're actually in there
        machine.succeed("xdotool mousemove 780 40 click 1")
        machine.wait_for_text("Agenda")
        machine.screenshot("lomiri-calendar_eventadded")

        # Back on main page
        # Event was created, does it have the correct name?
        machine.wait_for_text("foobar")
        machine.screenshot("lomiri-calendar_works")

    machine.succeed("pkill -f lomiri-calendar-app")

    with subtest("lomiri calendar localisation works"):
        machine.succeed("env LANG=de_DE.UTF-8 lomiri-calendar-app >&2 &")
        machine.wait_for_text(r"(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag)")
        machine.screenshot("lomiri-calendar_localised")
  '';
}
+120 −0
Original line number Diff line number Diff line
{
  stdenv,
  lib,
  fetchFromGitHub,
  gitUpdater,
  testers,
  libiodata,
  pcre-cpp,
  pkg-config,
  qmake,
  qtbase,
  sailfish-access-control,
  tzdata,
  wrapQtAppsHook,
}:

stdenv.mkDerivation (finalAttrs: {
  pname = "timed";
  version = "3.6.23";

  outputs = [
    "out"
    "lib"
    "dev"
  ];

  src = fetchFromGitHub {
    owner = "sailfishos";
    repo = "timed";
    tag = finalAttrs.version;
    hash = "sha256-EJ0xxAkrISQfylBneYAEOINRvMUTWWw4E5GKjbq67aU=";
  };

  postPatch = ''
    substituteInPlace src/{lib/lib,voland/voland}.pro \
      --replace-fail '$$[QT_INSTALL_LIBS]' "$lib/lib" \
      --replace-fail '/usr/include' "$dev/include" \
      --replace-fail '$$[QT_INSTALL_DATA]' "$dev"

    substituteInPlace src/server/server.pro \
      --replace-fail '/usr/bin' "$out/bin" \
      --replace-fail '/etc' "$out/etc" \
      --replace-fail '/usr/lib' "$out/lib"

    substituteInPlace tests/tests.pro \
      --replace-fail '/opt' "$dev/opt" \

    substituteInPlace tests/ut_networktime/ut_networktime.pro \
      --replace-fail '/opt' "$dev/opt" \
      --replace-fail '/etc' "$dev/etc"

    substituteInPlace tests/tst_events/tst_events.pro \
      --replace-fail '/opt' "$dev/opt"

    substituteInPlace tools/timedclient/timedclient.pro \
      --replace-fail '/usr/bin' "$out/bin"

    substituteInPlace \
      src/lib/aliases.cpp \
      src/server/settings.cpp \
      --replace-fail '/usr/share/zoneinfo' '${tzdata}/share/zoneinfo'
  '';

  # QMake doesn't handle this well
  strictDeps = false;

  nativeBuildInputs = [
    pkg-config
    qmake
    wrapQtAppsHook
  ];

  buildInputs = [
    libiodata
    pcre-cpp
    sailfish-access-control
  ];

  # Do all configuring now, not during build
  postConfigure = ''
    make qmake_all
  '';

  env = {
    TIMED_VERSION = "${finalAttrs.version}";

    # Other subprojects expect library to already be present
    NIX_CFLAGS_COMPILE = "-isystem ${placeholder "dev"}/include";
    NIX_LDFLAGS = "-L${placeholder "out"}/lib";
  };

  preBuild = ''
    pushd src/lib
    make ''${enableParallelBuilding:+-j$NIX_BUILD_CORES}
    make install
    popd
  '';

  passthru = {
    updateScript = gitUpdater { };
    tests.pkg-config = testers.hasPkgConfigModules {
      package = finalAttrs.finalPackage;
      # Version fields exclude patch-level
    };
  };

  meta = {
    description = "Time daemon managing system time, time zone and settings";
    homepage = "https://github.com/sailfishos/timed";
    changelog = "https://github.com/sailfishos/timed/releases/tag/${finalAttrs.version}";
    license = lib.licenses.lgpl21Only;
    mainProgram = "timed";
    maintainers = lib.teams.lomiri.members;
    platforms = lib.platforms.linux;
    pkgConfigModules = [
      "timed-qt${lib.versions.major qtbase.version}"
      "timed-voland-qt${lib.versions.major qtbase.version}"
    ];
  };
})
+130 −0
Original line number Diff line number Diff line
{
  stdenv,
  lib,
  fetchFromGitHub,
  gitUpdater,
  testers,
  dbus,
  doxygen,
  glib,
  libsForQt5,
  pkg-config,
  wrapGAppsHook3,
}:

stdenv.mkDerivation (finalAttrs: {
  pname = "buteo-syncfw";
  version = "0.11.8";

  outputs = [
    "out"
    "dev"
    "doc"
  ];

  src = fetchFromGitHub {
    owner = "sailfishos";
    repo = "buteo-syncfw";
    tag = finalAttrs.version;
    hash = "sha256-QQ2NG+zeKZbmZRdJgEQpx3Y/C+3j91ltC+5CRaf6qBY=";
  };

  postPatch = ''
    # Wildcard breaks file installation (tries to run ~ "install source/* target/*")
    substituteInPlace doc/doc.pri \
      --replace-fail 'htmldocs.files = $${PWD}/html/*' 'htmldocs.files = $${PWD}/html' \
      --replace-fail '/usr/share/doc' "$doc/share/doc"

    substituteInPlace declarative/declarative.pro \
      --replace-fail '$$[QT_INSTALL_QML]' "$out/${libsForQt5.qtbase.qtQmlPrefix}"

    substituteInPlace libbuteosyncfw/libbuteosyncfw.pro \
      --replace-fail '$$[QT_INSTALL_LIBS]' "$out/lib" \
      --replace-fail '/usr/include' "$dev/include"

    substituteInPlace msyncd/msyncd-app.pro \
      --replace-fail '/usr/bin' "$out/bin" \
      --replace-fail '/usr/lib/systemd' "$out/lib/systemd" \
      --replace-fail '/etc' "$out/etc" \
      --replace-fail '/usr/share' "$out/share"

    substituteInPlace oopp-runner/oopp-runner.pro \
      --replace-fail '/usr/libexec' "$out/libexec"

    # We don't have invoked (mapplauncherd)
    substituteInPlace msyncd/bin/msyncd.service \
      --replace-fail 'ExecStart=/usr/bin/invoker -G -o -s --type=qt5 /usr/bin/msyncd' "ExecStart=$out/bin/msyncd"

    substituteInPlace msyncd/com.meego.msyncd.service \
      --replace-fail 'Exec=/usr/bin/msyncd' "Exec=$out/bin/msyncd"

    # Tests expect to get installed, require excessive patching
    substituteInPlace buteo-sync.pro \
      --replace-fail 'unittests \' '\' \
      --replace-fail 'unittests.depends' '# unittests.depends'
  '';

  # QMake doesn't handle strictDeps well
  strictDeps = false;

  nativeBuildInputs =
    [
      doxygen
      glib
      pkg-config
      wrapGAppsHook3
    ]
    ++ (with libsForQt5; [
      qmake
      wrapQtAppsHook
    ]);

  buildInputs =
    [
      dbus
    ]
    ++ (with libsForQt5; [
      accounts-qt
      qtdeclarative
      signond
    ]);

  dontWrapGApps = true;

  # Do all configuring now, not during build
  postConfigure = ''
    make qmake_all
  '';

  # Tests expect to get installed, require excessive patching & managing
  doCheck = false;

  postInstall = ''
    glib-compile-schemas $out/share/glib-2.0/schemas
  '';

  preFixup = ''
    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
  '';

  passthru = {
    updateScript = gitUpdater { };
    tests.pkg-config = testers.hasPkgConfigModules {
      package = finalAttrs.finalPackage;
      # Version is hardcoded to 1.0.0
    };
  };

  meta = {
    description = "Buteo Synchronization Framework";
    homepage = "https://github.com/sailfishos/buteo-syncfw";
    changelog = "https://github.com/sailfishos/buteo-syncfw/releases/tag/${finalAttrs.version}";
    license = lib.licenses.lgpl21Only;
    mainProgram = "msyncd";
    maintainers = lib.teams.lomiri.members;
    platforms = lib.platforms.linux;
    pkgConfigModules = [
      "buteosyncfw5"
    ];
  };
})
Loading