Help packaging a qt application (pegasus-frontend)

Hello, I am trying to package a qt application pegasus-frontend, but I am stuck and I really don’t know how to proceed, since I don’t have much experience with c++ or qt.

I am getting an error and I don’t know how to deal with it.
error:

Project ERROR: Unknown module(s) in QT: gamepad
make[1]: *** [Makefile:75: sub-backend-make_first] Error 3
make[1]: *** Waiting for unfinished jobs....
make[2]: Entering directory '/build/source/src/frontend'
...
make[2]: Leaving directory '/build/source/src/frontend'
make[1]: Leaving directory '/build/source/src'
make: *** [Makefile:49: sub-src-make_first] Error 2

Here is the current file:

{ stdenv
, lib
, fetchFromGitHub
, cmake
# qt
, qtbase
, qmake
, wrapQtAppsHook
# optionals
, withGit ? true
, git
}:

stdenv.mkDerivation rec {
  pname = "pegasus-frontend";
  # version = "weekly_2022w30";
  version = "02458df0e1efdf3effebb8e463dcbfce86fcee2a";

  src = fetchFromGitHub {
    owner = "mmatyas";
    repo = "pegasus-frontend";
    rev = version;
    # sha256 = "sha256-7tB1lWCDY9t2SujCgJps40ha/lgJ8XB3pGhd8UDddSM=";
    sha256 = "sha256-AZQWxLXDcNPnzdFk/FhIgfAXA2btGGRhPOHm6hUkFbA=";
    fetchSubmodules = true;
    deepClone = true;
    leaveDotGit = true;
  };

  buildInputs = [ qtbase ] ++ lib.optional withGit git;
  nativeBuildInputs = [ wrapQtAppsHook qmake ];
}

How do I proceed from here?

Another question: Does wrapQtAppsHook find qt module dependencies by itself, or do I need to specify them somehow?

it finds what is in buildInputs. Normally the program checks for that via cmake/qmake.

For the missing gameoade your probably want qt5.qtgamepad in buildInputs.

1 Like

Thanks Sandro!
I have also added qtmultimedia and qtsvg, but in the build docs it is stated that qml and qt quick 2 is needed, how do I add those or are they added automatically?

I am now getting some errors with the translation files.

../../lang/pegasus_ko.ts -qm .qm/pegasus_ko.qm
../../lang/pegasus_es.ts -qm .qm/pegasus_es.qm
../../lang/pegasus_nl.ts -qm .qm/pegasus_nl.qm
/nix/store/qqa28hmysc23yy081d178jfd9a1yk8aw-bash-5.2-p15/bin/bash: line 1: ../../lang/pegasus_ko.ts: Permission denied
make[2]: *** [Makefile:389: .qm/pegasus_ko.qm] Error 126
make[2]: *** Waiting for unfinished jobs....
/nix/store/qqa28hmysc23yy081d178jfd9a1yk8aw-bash-5.2-p15/bin/bash: line 1: ../../lang/pegasus_es.ts: Permission denied
make[2]: *** [Makefile:377: .qm/pegasus_es.qm] Error 126
/nix/store/qqa28hmysc23yy081d178jfd9a1yk8aw-bash-5.2-p15/bin/bash: line 1: ../../lang/pegasus_nl.ts: Permission denied
make[2]: *** [Makefile:395: .qm/pegasus_nl.qm] Error 126
make[2]: Leaving directory '/build/source/src/app'
make[1]: *** [Makefile:50: sub-app-make_first] Error 2
make[1]: Leaving directory '/build/source/src'
make: *** [Makefile:49: sub-src-make_first] Error 2

Not sure which packages those should be. Maybe they are included in some other package. You’re issue is definitely unrelated.

I think it tries to execute the ts file. Either it is missing chmod +x or the shebang it uses is missing or wrong.