diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2018-09-08 14:19:24 +0200 |
---|---|---|
committer | xeji <36407913+xeji@users.noreply.github.com> | 2018-09-08 14:19:24 +0200 |
commit | 37032db5835aec5b04a0c1201e504a878a5aabb7 (patch) | |
tree | 79ce600817eb56a0d89fa1da970103fa3f410032 /pkgs/games/chessx | |
parent | 28a46c2c6f5eb6a98f6411831329ad5772811275 (diff) |
chessx: fix build (#46359)
See https://hydra.nixos.org/build/80998335.
Upstream doesn't support QT 5.11 ATM which broke compilation:
```
src/dialogs/savedialog.cpp: In constructor ‘SaveDialog::SaveDialog(QWidget*, Qt::WindowFlags)’:
src/dialogs/savedialog.cpp:37:34: error: invalid use of incomplete type ‘class QButtonGroup’
group = new QButtonGroup(this);
```
The Arch community recommends to use an older QT version to fix
this (https://aur.archlinux.org/packages/chessx/).
Furthermore the `QT_PLUGIN_PATH` wasn't set properly which broke the
runtime since QT coudln't find the `xcb` plugin:
```
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized.
Reinstalling the application may fix this problem.
```
Finally, some minor style fixes were made for consistent indentation.
Addresses #45960
Diffstat (limited to 'pkgs/games/chessx')
-rw-r--r-- | pkgs/games/chessx/default.nix | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/pkgs/games/chessx/default.nix b/pkgs/games/chessx/default.nix index c8d23fcc9de6..e4ec4dffa1db 100644 --- a/pkgs/games/chessx/default.nix +++ b/pkgs/games/chessx/default.nix @@ -1,30 +1,41 @@ -{ stdenv, pkgconfig, zlib, qtbase, qtsvg, qttools, qtmultimedia, qmake, fetchurl }: +{ stdenv, pkgconfig, zlib, qtbase, qtsvg, qttools, qtmultimedia, qmake, fetchurl, makeWrapper +, lib +}: + stdenv.mkDerivation rec { name = "chessx-${version}"; version = "1.4.6"; + src = fetchurl { url = "mirror://sourceforge/chessx/chessx-${version}.tgz"; sha256 = "1vb838byzmnyglm9mq3khh3kddb9g4g111cybxjzalxxlc81k5dd"; }; + buildInputs = [ - qtbase - qtsvg - qttools - qtmultimedia - zlib + qtbase + qtsvg + qttools + qtmultimedia + zlib ]; - nativeBuildInputs = [ pkgconfig qmake ]; + + nativeBuildInputs = [ pkgconfig qmake makeWrapper ]; # RCC: Error in 'resources.qrc': Cannot find file 'i18n/chessx_da.qm' enableParallelBuilding = false; installPhase = '' - runHook preInstall - mkdir -p "$out/bin" - mkdir -p "$out/share/applications" - cp -pr release/chessx "$out/bin" - cp -pr unix/chessx.desktop "$out/share/applications" - runHook postInstall + runHook preInstall + + mkdir -p "$out/bin" + mkdir -p "$out/share/applications" + cp -pr release/chessx "$out/bin" + cp -pr unix/chessx.desktop "$out/share/applications" + + wrapProgram $out/bin/chessx \ + --prefix QT_PLUGIN_PATH : ${qtbase}/lib/qt-5.${lib.versions.minor qtbase.version}/plugins + + runHook postInstall ''; meta = with stdenv.lib; { @@ -32,5 +43,6 @@ stdenv.mkDerivation rec { description = "ChessX allows you to browse and analyse chess games"; license = licenses.gpl2; maintainers = [maintainers.luispedro]; + platforms = platforms.linux; }; } |