From 6af4a8e6d72660344485e0300d8ef4b360fcea1b Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Wed, 19 Sep 2018 19:30:09 +0200 Subject: [PATCH 1/5] nethack: remove build-time dependency on qt Unless qtMode is enabled :) --- pkgs/games/nethack/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index 2a39e3499ed..be522b2bacf 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -64,12 +64,14 @@ in stdenv.mkDerivation rec { -e 's,^CFLAGS=-g,CFLAGS=,' \ -i sys/unix/hints/macosx10.10 sed -e '/define CHDIR/d' -i include/config.h + ${lib.optionalString qtMode '' sed \ -e 's,^QTDIR *=.*,QTDIR=${qt5.qtbase.dev},' \ -e 's,CFLAGS.*QtGui.*,CFLAGS += `pkg-config Qt5Gui --cflags`,' \ -e 's,CFLAGS+=-DCOMPRESS.*,CFLAGS+=-DCOMPRESS=\\"${gzip}/bin/gzip\\" \\\ -DCOMPRESS_EXTENSION=\\".gz\\",' \ -i sys/unix/hints/linux-qt4 + ''} ''; configurePhase = '' From 86b1f5c71098cf37fbdefafc5cb174e6cae899ea Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Thu, 20 Sep 2018 19:32:36 +0200 Subject: [PATCH 2/5] nethack: enable cross-compilation also parallel building --- pkgs/games/nethack/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index be522b2bacf..56342728b40 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -1,5 +1,6 @@ { stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison , less, makeWrapper +, buildPackages , x11Mode ? false, qtMode ? false, libXaw, libXext, mkfontdir, pkgconfig, qt5 }: @@ -72,6 +73,12 @@ in stdenv.mkDerivation rec { -DCOMPRESS_EXTENSION=\\".gz\\",' \ -i sys/unix/hints/linux-qt4 ''} + ${lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + ${buildPackages.perl}/bin/perl -p \ + -e 's,[a-z./]+/(makedefs|dgn_comp|lev_comp|dlb)(?!\.),${buildPackages.nethack}/libexec/nethack/\1,g' \ + -i sys/unix/Makefile.* + ''} + sed -i -e '/rm -f $(MAKEDEFS)/d' sys/unix/Makefile.src ''; configurePhase = '' @@ -82,6 +89,8 @@ in stdenv.mkDerivation rec { popd ''; + enableParallelBuilding = true; + postInstall = '' mkdir -p $out/games/lib/nethackuserdir for i in xlogfile logfile perm record save; do @@ -118,6 +127,7 @@ in stdenv.mkDerivation rec { chmod +x $out/bin/nethack ${lib.optionalString x11Mode "mv $out/bin/nethack $out/bin/nethack-x11"} ${lib.optionalString qtMode "mv $out/bin/nethack $out/bin/nethack-qt"} + install -Dm 555 util/{makedefs,dgn_comp,lev_comp,dlb} -t $out/libexec/nethack/ ''; postFixup = lib.optionalString qtMode '' From c9728a4dcfdcb48be27709cfd64b702525b5bab1 Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Thu, 20 Sep 2018 18:47:13 +0100 Subject: [PATCH 3/5] nethack: document cross-compilation fix --- pkgs/games/nethack/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index 56342728b40..6f60f8d0c1c 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -73,7 +73,11 @@ in stdenv.mkDerivation rec { -DCOMPRESS_EXTENSION=\\".gz\\",' \ -i sys/unix/hints/linux-qt4 ''} - ${lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + ${lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) + # If we're cross-compiling, replace the paths to the data generation tools + # with the ones from the build platform's nethack package, since we can't + # run the ones we've built here. + '' ${buildPackages.perl}/bin/perl -p \ -e 's,[a-z./]+/(makedefs|dgn_comp|lev_comp|dlb)(?!\.),${buildPackages.nethack}/libexec/nethack/\1,g' \ -i sys/unix/Makefile.* From ec42304022d1df0e2091c1c63225f12fd25380a2 Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Thu, 20 Sep 2018 20:01:36 +0200 Subject: [PATCH 4/5] nethack: add bdftopcf for GUIs --- pkgs/games/nethack/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index 6f60f8d0c1c..c1911a84c81 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison , less, makeWrapper , buildPackages -, x11Mode ? false, qtMode ? false, libXaw, libXext, mkfontdir, pkgconfig, qt5 +, x11Mode ? false, qtMode ? false, libXaw, libXext, bdftopcf, mkfontdir, pkgconfig, qt5 }: let @@ -34,10 +34,11 @@ in stdenv.mkDerivation rec { ++ lib.optionals qtMode [ gzip qt5.qtbase.bin qt5.qtmultimedia.bin ]; nativeBuildInputs = [ flex bison ] - ++ lib.optionals x11Mode [ mkfontdir ] + ++ lib.optionals x11Mode [ mkfontdir bdftopcf ] ++ lib.optionals qtMode [ pkgconfig mkfontdir qt5.qtbase.dev qt5.qtmultimedia.dev makeWrapper + bdftopcf ]; makeFlags = [ "PREFIX=$(out)" ]; From 6776bc76783cda0d83c345ef4b9423543886d79c Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Thu, 20 Sep 2018 20:01:53 +0200 Subject: [PATCH 5/5] nethack: only install dlb for text-mode --- pkgs/games/nethack/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index c1911a84c81..56904ae2dfe 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -132,7 +132,8 @@ in stdenv.mkDerivation rec { chmod +x $out/bin/nethack ${lib.optionalString x11Mode "mv $out/bin/nethack $out/bin/nethack-x11"} ${lib.optionalString qtMode "mv $out/bin/nethack $out/bin/nethack-qt"} - install -Dm 555 util/{makedefs,dgn_comp,lev_comp,dlb} -t $out/libexec/nethack/ + install -Dm 555 util/{makedefs,dgn_comp,lev_comp} -t $out/libexec/nethack/ + ${lib.optionalString (!(x11Mode || qtMode)) "install -Dm 555 util/dlb -t $out/libexec/nethack/"} ''; postFixup = lib.optionalString qtMode ''