From 839fdd101c3749468d44348114a2994bb8414546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Tue, 15 Nov 2022 18:41:36 +0100 Subject: [PATCH 1/6] dwarf-fortress.dfhack: make overridable Currently, it is quite hard to override anything about dfhack (for example, to add plugins at build time), because 1. it is not exposed anywhere, so you have to do something like `dwarf-fortress.override (oldArgs: { dfhack = oldArgs.dfhack.override...; })` 2. the final `dfhack` derivation is a `buildEnv`, so `overrideAttrs` doesn't work as expected. This fixes 1 by adding `dfhack` to the wrapper's `passthru`, and 2 by moving `twbt.lib` (which is the only reason for the dfhack `buildEnv`) into the wrapper. Also adds an `extraPackages` argument to the wrapper, and copies `*.init` files from the env to the DF directory so that we can easily add a `dfhack.init`. With these changes, I was able to build dfhack with the dfplex plugin. --- pkgs/games/dwarf-fortress/default.nix | 2 +- pkgs/games/dwarf-fortress/dfhack/default.nix | 34 +++++++------------ pkgs/games/dwarf-fortress/wrapper/default.nix | 26 ++++++++------ pkgs/games/dwarf-fortress/wrapper/dfhack.in | 4 +-- 4 files changed, 31 insertions(+), 35 deletions(-) mode change 100644 => 100755 pkgs/games/dwarf-fortress/wrapper/dfhack.in diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 382537282748..dd8e6b5503da 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -69,7 +69,7 @@ let dfhack = callPackage ./dfhack { inherit (perlPackages) XMLLibXML XMLLibXSLT; - inherit dfVersion twbt; + inherit dfVersion; stdenv = gccStdenv; }; diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 49e8fabd45e4..57bbf0e11625 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -13,8 +13,6 @@ , allegro5 , libGLU , libGL -, enableTWBT ? true -, twbt , SDL , dfVersion }: @@ -115,9 +113,9 @@ let exit 1 fi ''; - - dfhack = stdenv.mkDerivation { - pname = "dfhack-base"; +in + stdenv.mkDerivation { + pname = "dfhack"; inherit version; # Beware of submodules @@ -166,21 +164,13 @@ let ln -s ${ruby}/lib/libruby-*.so $out/hack/libruby.so ''; - }; -in + passthru = { inherit dfVersion; }; -buildEnv { - name = "dfhack-${version}"; - - passthru = { inherit version dfVersion; }; - - paths = [ dfhack ] ++ lib.optionals enableTWBT [ twbt.lib ]; - - meta = with lib; { - description = "Memory hacking library for Dwarf Fortress and a set of tools that use it"; - homepage = "https://github.com/DFHack/dfhack/"; - license = licenses.zlib; - platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = with maintainers; [ robbinch a1russell abbradar numinit ]; - }; -} + meta = with lib; { + description = "Memory hacking library for Dwarf Fortress and a set of tools that use it"; + homepage = "https://github.com/DFHack/dfhack/"; + license = licenses.zlib; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = with maintainers; [ robbinch a1russell abbradar numinit ]; + }; + } diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 0c1fbc6ca4de..e35575a8e73a 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -16,6 +16,7 @@ , twbt , themes ? { } , theme ? null +, extraPackages ? [ ] # General config options: , enableIntro ? true , enableTruetype ? true @@ -27,7 +28,6 @@ let dfhack_ = dfhack.override { inherit enableStoneSense; - inherit enableTWBT; }; ptheme = @@ -38,16 +38,16 @@ let unBool = b: if b then "YES" else "NO"; # These are in inverse order for first packages to override the next ones. - themePkg = lib.optional (theme != null) ptheme; + themePkgs = lib.optional (theme != null) ptheme; pkgs = lib.optional enableDFHack dfhack_ ++ lib.optional enableSoundSense soundSense - ++ lib.optional enableTWBT twbt.art + ++ lib.optionals enableTWBT [ twbt.lib twbt.art ] ++ [ dwarf-fortress ]; - fixup = lib.singleton (runCommand "fixup" { } ('' + config = runCommand "dwarf-fortress-config" { } ('' mkdir -p $out/data/init '' + (if (theme != null) then '' - cp ${lib.head themePkg}/data/init/init.txt $out/data/init/init.txt + cp ${ptheme}/data/init/init.txt $out/data/init/init.txt '' else '' cp ${dwarf-fortress}/data/init/init.txt $out/data/init/init.txt '') + lib.optionalString enableDFHack '' @@ -76,21 +76,24 @@ let '' + '' substituteInPlace $out/data/init/init.txt \ --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \ - --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \ + --replace '[TRUETYPE:24]' '[TRUETYPE:${unBool enableTruetype}]' \ --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' \ --replace '[SOUND:YES]' '[SOUND:${unBool enableSound}]' - '')); + ''); env = buildEnv { name = "dwarf-fortress-env-${dwarf-fortress.dfVersion}"; - paths = fixup ++ themePkg ++ pkgs; - pathsToLink = [ "/" "/hack" "/hack/scripts" ]; + paths = extraPackages ++ [ config ] ++ themePkgs ++ pkgs; ignoreCollisions = true; }; in +lib.throwIf (enableTWBT && !enableDFHack) "dwarf-fortress: TWBT requires DFHack to be enabled" +lib.throwIf (enableStoneSense && !enableDFHack) "dwarf-fortress: StoneSense requires DFHack to be enabled" +lib.throwIf (enableTextMode && enableTWBT) "dwarf-fortress: text mode and TWBT are mutually exclusive" + stdenv.mkDerivation { pname = "dwarf-fortress"; version = dwarf-fortress.dfVersion; @@ -114,7 +117,10 @@ stdenv.mkDerivation { runDFHack = ./dfhack.in; runSoundSense = ./soundSense.in; - passthru = { inherit dwarf-fortress dwarf-therapist; }; + passthru = { + inherit dwarf-fortress dwarf-therapist twbt; + dfhack = dfhack_; + }; buildCommand = '' mkdir -p $out/bin diff --git a/pkgs/games/dwarf-fortress/wrapper/dfhack.in b/pkgs/games/dwarf-fortress/wrapper/dfhack.in old mode 100644 new mode 100755 index 026b33ab87bf..0f74674baf29 --- a/pkgs/games/dwarf-fortress/wrapper/dfhack.in +++ b/pkgs/games/dwarf-fortress/wrapper/dfhack.in @@ -2,8 +2,8 @@ source @dfInit@ -for i in dfhack.init-example dfhack-config/default hack/* stonesense/*; do - update_path "$i" +for i in *.init *.init-example dfhack-config/default dfhack-config/init hack/* stonesense/*; do + if [ -e "$i" ]; then update_path "$i"; fi done cd "$DF_DIR" From cff44486bc580eb18d243002409c1caabd600964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Wed, 16 Nov 2022 16:41:33 +0100 Subject: [PATCH 2/6] dwarf-fortress: add `settings` Adds a `settings` argument to the wrapper allowing to override settings in `data/init/*.txt`. --- pkgs/games/dwarf-fortress/lazy-pack.nix | 2 +- pkgs/games/dwarf-fortress/wrapper/default.nix | 96 ++++++++++++------- 2 files changed, 64 insertions(+), 34 deletions(-) diff --git a/pkgs/games/dwarf-fortress/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix index b34dbd3c74b8..17037dbdb278 100644 --- a/pkgs/games/dwarf-fortress/lazy-pack.nix +++ b/pkgs/games/dwarf-fortress/lazy-pack.nix @@ -19,7 +19,7 @@ , theme ? themes.phoebus # General config options: , enableIntro ? true -, enableTruetype ? true +, enableTruetype ? null # defaults to 24, see init.txt , enableFPS ? false , enableTextMode ? false , enableSound ? true diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index e35575a8e73a..89f980f8d5bc 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -4,6 +4,7 @@ , substituteAll , runCommand , coreutils +, gawk , dwarf-fortress , dwarf-therapist , enableDFHack ? false @@ -19,10 +20,14 @@ , extraPackages ? [ ] # General config options: , enableIntro ? true -, enableTruetype ? true +, enableTruetype ? null # defaults to 24, see init.txt , enableFPS ? false , enableTextMode ? false , enableSound ? true +# An attribute set of settings to override in data/init/*.txt. +# For example, `init.FOO = true;` is translated to `[FOO:YES]` in init.txt +, settings ? { } +# TODO world-gen.txt, interface.txt require special logic }: let @@ -35,27 +40,65 @@ let then builtins.getAttr theme themes else theme; - unBool = b: if b then "YES" else "NO"; + baseEnv = buildEnv { + name = "dwarf-fortress-base-env-${dwarf-fortress.dfVersion}"; - # These are in inverse order for first packages to override the next ones. - themePkgs = lib.optional (theme != null) ptheme; - pkgs = lib.optional enableDFHack dfhack_ - ++ lib.optional enableSoundSense soundSense - ++ lib.optionals enableTWBT [ twbt.lib twbt.art ] - ++ [ dwarf-fortress ]; + # These are in inverse order for first packages to override the next ones. + paths = extraPackages + ++ lib.optional (theme != null) ptheme + ++ lib.optional enableDFHack dfhack_ + ++ lib.optional enableSoundSense soundSense + ++ lib.optionals enableTWBT [ twbt.lib twbt.art ] + ++ [ dwarf-fortress ]; - config = runCommand "dwarf-fortress-config" { } ('' + ignoreCollisions = true; + }; + + settings_ = lib.recursiveUpdate { + init = { + PRINT_MODE = if enableTextMode then "TEXT" else if enableTWBT then "TWBT" else null; + INTRO = enableIntro; + TRUETYPE = enableTruetype; + FPS = enableFPS; + SOUND = enableSound; + }; + } settings; + + forEach = attrs: f: lib.concatStrings (lib.mapAttrsToList f attrs); + + toTxt = v: + if lib.isBool v then if v then "YES" else "NO" + else if lib.isInt v then toString v + else if lib.isString v then v + else throw "dwarf-fortress: unsupported configuration value ${toString v}"; + + config = runCommand "dwarf-fortress-config" { + nativeBuildInputs = [ gawk ]; + } ('' mkdir -p $out/data/init - '' + (if (theme != null) then '' - cp ${ptheme}/data/init/init.txt $out/data/init/init.txt - '' else '' - cp ${dwarf-fortress}/data/init/init.txt $out/data/init/init.txt - '') + lib.optionalString enableDFHack '' + + edit_setting() { + v=''${v//'&'/'\&'} + if ! gawk -i inplace -v RS='\r?\n' ' + { n += sub("\\[" ENVIRON["k"] ":[^]]*\\]", "[" ENVIRON["k"] ":" ENVIRON["v"] "]"); print } + END { exit(!n) } + ' "$out/$file"; then + echo "error: no setting named '$k' in $file" >&2 + exit 1 + fi + } + '' + forEach settings_ (file: kv: '' + file=data/init/${lib.escapeShellArg file}.txt + cp ${baseEnv}/"$file" "$out/$file" + '' + forEach kv (k: v: lib.optionalString (v != null) '' + export k=${lib.escapeShellArg k} v=${lib.escapeShellArg (toTxt v)} + edit_setting + '')) + lib.optionalString enableDFHack '' mkdir -p $out/hack # Patch the MD5 - orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig") - patched_md5=$(cat "${dwarf-fortress}/hash.md5") + orig_md5=$(< "${dwarf-fortress}/hash.md5.orig") + patched_md5=$(< "${dwarf-fortress}/hash.md5") input_file="${dfhack_}/hack/symbols.xml" output_file="$out/hack/symbols.xml" @@ -66,26 +109,13 @@ let echo " Replace: $patched_md5" substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5" - '' + lib.optionalString enableTWBT '' - substituteInPlace $out/data/init/init.txt \ - --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' - '' + - lib.optionalString enableTextMode '' - substituteInPlace $out/data/init/init.txt \ - --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TEXT]' - '' + '' - substituteInPlace $out/data/init/init.txt \ - --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \ - --replace '[TRUETYPE:24]' '[TRUETYPE:${unBool enableTruetype}]' \ - --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' \ - --replace '[SOUND:YES]' '[SOUND:${unBool enableSound}]' ''); + # This is a separate environment because the config files to modify may come + # from any of the paths in baseEnv. env = buildEnv { name = "dwarf-fortress-env-${dwarf-fortress.dfVersion}"; - - paths = extraPackages ++ [ config ] ++ themePkgs ++ pkgs; - + paths = [ config baseEnv ]; ignoreCollisions = true; }; in @@ -118,7 +148,7 @@ stdenv.mkDerivation { runSoundSense = ./soundSense.in; passthru = { - inherit dwarf-fortress dwarf-therapist twbt; + inherit dwarf-fortress dwarf-therapist twbt env; dfhack = dfhack_; }; From e786b3ec21bd7a722d7eb4839baaf941f8de061a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Wed, 16 Nov 2022 23:35:40 +0100 Subject: [PATCH 3/6] dwarf-fortress.dfhack: updates and fixes Updates the release number for the latest two DF versions, and fixes some older ones. Notable change from 0.47.05-r7: dfhack.init was moved into dfhack-config/init. https://github.com/DFHack/dfhack/releases/tag/0.47.05-r7 https://github.com/DFHack/dfhack/releases/tag/0.47.04-r5 --- pkgs/games/dwarf-fortress/dfhack/default.nix | 31 +++++++++++++------ .../dfhack/fix-stonesense.patch | 23 -------------- pkgs/games/dwarf-fortress/twbt/default.nix | 8 ++--- 3 files changed, 26 insertions(+), 36 deletions(-) delete mode 100644 pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 57bbf0e11625..ca7ddf4e16b5 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -2,6 +2,7 @@ , buildEnv , lib , fetchFromGitHub +, fetchpatch , cmake , writeScriptBin , perl @@ -64,22 +65,24 @@ let prerelease = true; }; "0.47.04" = { - dfHackRelease = "0.47.04-r2"; - sha256 = "18ppn1dqaxi6ahjzsvb9kw70rvca106a1hibhzc4rxmraypnqb89"; - xmlRev = "036b662a1bbc96b4911f3cbe74dfa1243b6459bc"; + dfHackRelease = "0.47.04-r5"; + sha256 = "sha256-0s+/LKbqsS/mrxKPDeniqykE5+Gy3ZzCa8yEDzMyssY="; + xmlRev = "be0444cc165a1abff053d5893dc1f780f06526b7"; prerelease = false; }; "0.47.05" = { - dfHackRelease = "0.47.05-r1"; - sha256 = "sha256-B0iv7fpIcnaO8sx9wPqI7/WuyLK15p8UYlYIcF5F5bw="; - xmlRev = "11c379ffd31255f2a1415d98106114a46245e1c3"; + dfHackRelease = "0.47.05-r7"; + sha256 = "sha256-vBKUTSjfCnalkBzfjaIKcxUuqsGGOTtoJC1RHJIDlNc="; + xmlRev = "f5019a5c6f19ef05a28bd974c3e8668b78e6e2a4"; prerelease = false; }; }; release = - if hasAttr dfVersion dfhack-releases + if lib.isAttrs dfVersion + then dfVersion + else if hasAttr dfVersion dfhack-releases then getAttr dfVersion dfhack-releases else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}"; @@ -127,10 +130,20 @@ in fetchSubmodules = true; }; - patches = [ ./fix-stonesense.patch ]; + patches = lib.optional (lib.versionOlder version "0.44.12-r3") (fetchpatch { + name = "fix-stonesense.patch"; + url = "https://github.com/DFHack/stonesense/commit/f5be6fe5fb192f01ae4551ed9217e97fd7f6a0ae.patch"; + extraPrefix = "plugins/stonesense/"; + stripLen = 1; + hash = "sha256-wje6Mkct29eyMOcJnbdefwBOLJko/s4JcJe52ojuW+8="; + }) ++ lib.optional (lib.versionOlder version "0.47.04-r1") (fetchpatch { + name = "fix-protobuf.patch"; + url = "https://github.com/DFHack/dfhack/commit/7bdf958518d2892ee89a7173224a069c4a2190d8.patch"; + hash = "sha256-p+mKhmYbnhWKNiGPMjbYO505Gcg634n0nudqH0NX3KY="; + }); # gcc 11 fix - NIX_CFLAGS_COMPILE = "-fpermissive"; + NIX_CFLAGS_COMPILE = lib.optionalString (lib.versionOlder version "0.47.05-r3") "-fpermissive"; # As of # https://github.com/DFHack/dfhack/commit/56e43a0dde023c5a4595a22b29d800153b31e3c4, diff --git a/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch b/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch deleted file mode 100644 index da860cd55624..000000000000 --- a/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch +++ /dev/null @@ -1,23 +0,0 @@ -From f5be6fe5fb192f01ae4551ed9217e97fd7f6a0ae Mon Sep 17 00:00:00 2001 -From: Herwig Hochleitner -Date: Sun, 1 Oct 2017 18:01:43 +0200 -Subject: [PATCH] include - -this fixes `GLhandleARB` not being defined ---- - plugins/stonesense/common.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/plugins/stonesense/common.h b/plugins/stonesense/common.h -index eb36691..ef45389 100644 ---- a/plugins/stonesense/common.h -+++ b/plugins/stonesense/common.h -@@ -31,6 +31,8 @@ using namespace df::enums; - #include - #include - -+#include -+ - // allegro leaks X headers, undef some of it here: - #undef TileShape - #undef None \ No newline at end of file diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index 7d2816d97a4a..1188265f7415 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -46,14 +46,14 @@ let }; "0.47.04" = { twbtRelease = "6.xx"; - dfhackRelease = "0.47.04-r2"; - sha256 = "092dgp8fh1j4nqr9wbzn89ib1nhscclr8m91lfxsvg0mgn7j8xlv"; + dfhackRelease = "0.47.04-r5"; + sha256 = "sha256-+C3g4KJShCb2VXGQ4mtkDOufXZQ1P+ebDTmUzL3tNyU="; prerelease = true; }; "0.47.05" = { twbtRelease = "6.xx"; - dfhackRelease = "0.47.05-r1"; - sha256 = "1nqhaf7271bm9rq9dmilhhk9q7v3841d0rv4y3fid40vfi4gpi3p"; + dfhackRelease = "0.47.05-r7"; + sha256 = "sha256-4xMKuSP5J6pMK+hwjTAcTI0gsLJfw+Xt+vh9CopR4tk="; prerelease = true; }; }; From ab693c7592847ca17c8c41fea0d6fbe1f6a55deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Thu, 17 Nov 2022 01:08:54 +0100 Subject: [PATCH 4/6] dwarf-fortress.dfhack: drop broken versions These versions don't build because their submodules use `git://` URLs, which are no longer supported by GitHub. I don't think there's a reasonable way to work around that since `fetchgit` doesn't allow patching the source *before* fetching submodules. --- pkgs/games/dwarf-fortress/dfhack/default.nix | 18 ------------------ pkgs/games/dwarf-fortress/twbt/default.nix | 15 --------------- 2 files changed, 33 deletions(-) diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index ca7ddf4e16b5..2c4e4b6f4230 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -22,24 +22,6 @@ with lib; let dfhack-releases = { - "0.43.05" = { - dfHackRelease = "0.43.05-r3.1"; - sha256 = "1ds366i0qcfbn62w9qv98lsqcrm38npzgvcr35hf6ihqa6nc6xrl"; - xmlRev = "860a9041a75305609643d465123a4b598140dd7f"; - prerelease = false; - }; - "0.44.05" = { - dfHackRelease = "0.44.05-r2"; - sha256 = "1cwifdhi48a976xc472nf6q2k0ibwqffil5a4llcymcxdbgxdcc9"; - xmlRev = "2794f8a6d7405d4858bac486a0bb17b94740c142"; - prerelease = false; - }; - "0.44.09" = { - dfHackRelease = "0.44.09-r1"; - sha256 = "1nkfaa43pisbyik5inj5q2hja2vza5lwidg5z02jyh136jm64hwk"; - xmlRev = "3c0bf63674d5430deadaf7befaec42f0ec1e8bc5"; - prerelease = false; - }; "0.44.10" = { dfHackRelease = "0.44.10-r2"; sha256 = "19bxsghxzw3bilhr8sm4axz7p7z8lrvbdsd1vdjf5zbg04rs866i"; diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index 1188265f7415..311a36da2bf1 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -9,21 +9,6 @@ with lib; let twbt-releases = { - "0.43.05" = { - twbtRelease = "6.22"; - sha256 = "0di5d38f6jj9smsz0wjcs1zav4zba6hrk8cbn59kwpb1wamsh5c7"; - prerelease = false; - }; - "0.44.05" = { - twbtRelease = "6.35"; - sha256 = "0qjkgl7dsqzsd7pdq8a5bihhi1wplfkv1id7sj6dp3swjpsfxp8g"; - prerelease = false; - }; - "0.44.09" = { - twbtRelease = "6.41"; - sha256 = "0nsq15z05pbhqjvw2xqs1a9b1n2ma0aalhc3vh3mi4cd4k7lxh44"; - prerelease = false; - }; "0.44.10" = { twbtRelease = "6.49"; sha256 = "1qjkc7k33qhxj2g18njzasccjqsis5y8zrw5vl90h4rs3i8ld9xz"; From a515239b521fe2fd4b0af5f4b93ef7e540ad5db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Wed, 16 Nov 2022 23:58:36 +0100 Subject: [PATCH 5/6] dwarf-fortress,dwarf-fortress.dfhack: add ncfavier as maintainer --- pkgs/games/dwarf-fortress/dfhack/default.nix | 2 +- pkgs/games/dwarf-fortress/game.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 2c4e4b6f4230..f54a0e1511df 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -166,6 +166,6 @@ in homepage = "https://github.com/DFHack/dfhack/"; license = licenses.zlib; platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = with maintainers; [ robbinch a1russell abbradar numinit ]; + maintainers = with maintainers; [ robbinch a1russell abbradar numinit ncfavier ]; }; } diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix index 42f2c6ed127b..7ce837b7b0b5 100644 --- a/pkgs/games/dwarf-fortress/game.nix +++ b/pkgs/games/dwarf-fortress/game.nix @@ -104,6 +104,6 @@ stdenv.mkDerivation { homepage = "https://www.bay12games.com/dwarves/"; license = licenses.unfreeRedistributable; platforms = attrNames platforms; - maintainers = with maintainers; [ a1russell robbinch roconnor abbradar numinit shazow ]; + maintainers = with maintainers; [ a1russell robbinch roconnor abbradar numinit shazow ncfavier ]; }; } From 34e0667b74c5055f81986c759344e3a7de6414c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Fri, 18 Nov 2022 10:29:41 +0100 Subject: [PATCH 6/6] dwarf-fortress.dfhack: use CXXFLAGS instead of NIX_CFLAGS_COMPILE See https://github.com/NixOS/nixpkgs/issues/79303. Avoids warnings about -fpermissive not being a valid C flag. --- pkgs/games/dwarf-fortress/dfhack/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index f54a0e1511df..914ccbb6ab33 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -125,7 +125,7 @@ in }); # gcc 11 fix - NIX_CFLAGS_COMPILE = lib.optionalString (lib.versionOlder version "0.47.05-r3") "-fpermissive"; + CXXFLAGS = lib.optionalString (lib.versionOlder version "0.47.05-r3") "-fpermissive"; # As of # https://github.com/DFHack/dfhack/commit/56e43a0dde023c5a4595a22b29d800153b31e3c4,