Unverified Commit c669611b authored by TomaSajt's avatar TomaSajt
Browse files

actiona: init at 3.10.2

parent befc64a5
Loading
Loading
Loading
Loading
+112 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchFromGitHub,
  cmake,
  pkg-config,
  wrapQtAppsHook,

  bluez,
  libnotify,
  libXdmcp,
  libXtst,
  opencv,
  qtbase,
  qtmultimedia,
  qtscript,
  qttools,
  qtx11extras,
  qtxmlpatterns,

  # Running with TTS support causes the program to freeze for a few seconds every time at startup,
  # so it is disabled by default
  textToSpeechSupport ? false,
  qtspeech,
}:

let
  # For some reason qtscript wants to use the same version of qtbase as itself
  # This override makes it think that they are the same version
  qtscript' = qtscript.overrideAttrs (oldAttrs: {
    inherit (qtbase) version;
    postPatch = ''
      substituteInPlace .qmake.conf \
          --replace-fail ${oldAttrs.version} ${qtbase.version}
    '';
  });
in
stdenv.mkDerivation (finalAttrs: {
  pname = "actiona";
  version = "3.10.2";

  src = fetchFromGitHub {
    owner = "Jmgr";
    repo = "actiona";
    rev = "v${finalAttrs.version}";
    hash = "sha256-4RKCNEniBBx0kDwdHVZOqXYeGCsH8g6SfVc8JdDV0hI=";
    fetchSubmodules = true;
  };

  patches =
    [
      # Sets the proper search location for the `.so` files and the translations
      ./fix-paths.patch
    ]
    ++ lib.optionals (!textToSpeechSupport) [
      # Removes TTS support
      ./disable-tts.patch
    ];

  postPatch = ''
    substituteInPlace gui/src/mainwindow.cpp executer/src/executer.cpp tools/src/languages.cpp \
        --subst-var out
  '';

  nativeBuildInputs = [
    cmake
    pkg-config
    wrapQtAppsHook
  ];

  buildInputs = [
    bluez
    libnotify
    libXdmcp
    libXtst
    opencv
    qtbase
    qtmultimedia
    qtscript'
    qttools
    qtx11extras
    qtxmlpatterns
  ] ++ lib.optionals textToSpeechSupport [ qtspeech ];

  # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
  cmakeFlags = [ (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) ];

  # udev is used by the system-actionpack
  env.NIX_LDFLAGS = "-ludev";

  installPhase = ''
    runHook preInstall

    install -Dm755 {execution,actiontools,tools}/*.so -t $out/lib
    install -Dm755 actions/actionpack*.so -t $out/lib/actions
    install -Dm755 actiona actexec -t $out/bin
    install -Dm644 translations/*.qm -t $out/share/actiona/translations
    install -Dm644 $src/actiona.desktop -t $out/share/applications
    install -Dm644 $src/gui/icons/actiona.png -t $out/share/icons/hicolor/48x48/apps

    runHook postInstall
  '';

  meta = {
    description = "A cross-platform automation tool";
    homepage = "https://github.com/Jmgr/actiona";
    license = lib.licenses.gpl3Only;
    mainProgram = "actiona";
    maintainers = with lib.maintainers; [ tomasajt ];
    platforms = lib.platforms.linux;
  };
})
+54 −0
Original line number Diff line number Diff line
diff --git a/actions/system/CMakeLists.txt b/actions/system/CMakeLists.txt
index ca861145..3e3d3d3b 100644
--- a/actions/system/CMakeLists.txt
+++ b/actions/system/CMakeLists.txt
@@ -66,8 +66,6 @@ set(HEADERS
     ${HEADERS_PREFIX}/actions/playsoundinstance.hpp
     ${HEADERS_PREFIX}/actions/systemdefinition.hpp
     ${HEADERS_PREFIX}/actions/systeminstance.hpp
-    ${HEADERS_PREFIX}/actions/texttospeechdefinition.hpp
-    ${HEADERS_PREFIX}/actions/texttospeechinstance.hpp
     ${HEADERS_PREFIX}/code/mediaplaylist.hpp
     ${HEADERS_PREFIX}/code/notify.hpp
     ${HEADERS_PREFIX}/code/process.hpp
@@ -131,7 +129,6 @@ find_package(Qt5 ${ACT_MINIMUM_QT_VERSION} COMPONENTS
     DBus
     Multimedia
     MultimediaWidgets
-    TextToSpeech
 REQUIRED)
 
 target_include_directories(${PROJECT}
@@ -153,7 +150,6 @@ target_link_libraries(${PROJECT}
     Qt5::DBus
     Qt5::Multimedia
     Qt5::MultimediaWidgets
-    Qt5::TextToSpeech
     ${LIBNOTIFY_LIBRARIES}
     ${BLUEZ_LIBRARIES}
     ${UDEV_LIBRARIES}
diff --git a/actions/system/src/actionpacksystem.hpp b/actions/system/src/actionpacksystem.hpp
index c5768415..27a899d6 100644
--- a/actions/system/src/actionpacksystem.hpp
+++ b/actions/system/src/actionpacksystem.hpp
@@ -31,10 +31,6 @@
 #include "actions/playsounddefinition.hpp"
 #include "actions/findimagedefinition.hpp"
 
-#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
-#include "actions/texttospeechdefinition.hpp"
-#endif
-
 #include "code/system.hpp"
 #include "code/mediaplaylist.hpp"
 #include "code/notify.hpp"
@@ -67,9 +63,6 @@ public:
 		addActionDefinition(new Actions::DetachedCommandDefinition(this));
 		addActionDefinition(new Actions::PlaySoundDefinition(this));
 		addActionDefinition(new Actions::FindImageDefinition(this));
-#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
-        addActionDefinition(new Actions::TextToSpeechDefinition(this));
-#endif
 	}
 
 	QString id() const override							{ return QStringLiteral("system"); }
+39 −0
Original line number Diff line number Diff line
diff --git a/executer/src/executer.cpp b/executer/src/executer.cpp
index da848dad..5bd7e986 100644
--- a/executer/src/executer.cpp
+++ b/executer/src/executer.cpp
@@ -45,7 +45,7 @@ bool Executer::start(QIODevice *device, const QString &filename)
 	QSettings settings;
 	QString locale = settings.value(QStringLiteral("gui/locale"), QLocale::system().name()).toString();
 
-    mActionFactory->loadActionPacks(QApplication::applicationDirPath() + QStringLiteral("/actions"), locale);
+    mActionFactory->loadActionPacks(QStringLiteral("@out@/lib/actions"), locale);
 #ifndef Q_OS_WIN
 	if(mActionFactory->actionPackCount() == 0)
 		mActionFactory->loadActionPacks(QStringLiteral("actiona/actions/"), locale);
diff --git a/gui/src/mainwindow.cpp b/gui/src/mainwindow.cpp
index 6052648e..3c802d93 100644
--- a/gui/src/mainwindow.cpp
+++ b/gui/src/mainwindow.cpp
@@ -322,7 +322,7 @@ void MainWindow::postInit()
 	if(mSplashScreen)
 		mSplashScreen->showMessage(tr("Loading actions..."));
 
-    mActionFactory->loadActionPacks(QApplication::applicationDirPath() + QStringLiteral("/actions"), mUsedLocale);
+    mActionFactory->loadActionPacks(QStringLiteral("@out@/lib/actions"), mUsedLocale);
 #ifndef Q_OS_WIN
 	if(mActionFactory->actionPackCount() == 0)
 		mActionFactory->loadActionPacks(QStringLiteral("actiona/actions/"), mUsedLocale);
diff --git a/tools/src/languages.cpp b/tools/src/languages.cpp
index 4926936e..18e9aabb 100644
--- a/tools/src/languages.cpp
+++ b/tools/src/languages.cpp
@@ -79,7 +79,7 @@ namespace Tools
     void Languages::installTranslator(const QString &componentName, const QString &locale)
     {
         auto translator = new QTranslator(QCoreApplication::instance());
-		if(!translator->load(QStringLiteral("%1/translations/%2_%3").arg(QCoreApplication::applicationDirPath()).arg(componentName).arg(locale)))
+		if(!translator->load(QStringLiteral("@out@/share/actiona/translations/%1_%2").arg(componentName).arg(locale)))
         {
             auto path = QStringLiteral("%1/translations/%2_%3").arg(QDir::currentPath()).arg(componentName).arg(locale);
             if(!translator->load(path))
+2 −0
Original line number Diff line number Diff line
@@ -18026,6 +18026,8 @@ with pkgs;
  abuild = callPackage ../development/tools/abuild { };
  actiona = libsForQt5.callPackage ../applications/misc/actiona { };
  actionlint = callPackage ../development/tools/analysis/actionlint { };
  adreaper = callPackage ../tools/security/adreaper { };