summary refs log tree commit diff
path: root/pkgs/games/chessx
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2018-09-08 14:19:24 +0200
committerxeji <36407913+xeji@users.noreply.github.com>2018-09-08 14:19:24 +0200
commit37032db5835aec5b04a0c1201e504a878a5aabb7 (patch)
tree79ce600817eb56a0d89fa1da970103fa3f410032 /pkgs/games/chessx
parent28a46c2c6f5eb6a98f6411831329ad5772811275 (diff)
downloadnixpkgs-37032db5835aec5b04a0c1201e504a878a5aabb7.tar
nixpkgs-37032db5835aec5b04a0c1201e504a878a5aabb7.tar.gz
nixpkgs-37032db5835aec5b04a0c1201e504a878a5aabb7.tar.bz2
nixpkgs-37032db5835aec5b04a0c1201e504a878a5aabb7.tar.lz
nixpkgs-37032db5835aec5b04a0c1201e504a878a5aabb7.tar.xz
nixpkgs-37032db5835aec5b04a0c1201e504a878a5aabb7.tar.zst
nixpkgs-37032db5835aec5b04a0c1201e504a878a5aabb7.zip
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.nix38
1 files changed, 25 insertions, 13 deletions
diff --git a/pkgs/games/chessx/default.nix b/pkgs/games/chessx/default.nix
index c8d23fcc9de..e4ec4dffa1d 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;
   };
 }