From 1bad2e068506915983e521e1bd6f97cafc01d58a Mon Sep 17 00:00:00 2001 From: Rafael Ieda Date: Sat, 18 Oct 2025 05:42:49 -0300 Subject: [PATCH] wesnoth-devel: init at 1.19.16.1 --- pkgs/by-name/we/wesnoth/package.nix | 58 ++++++++++++++++++++++------- pkgs/top-level/all-packages.nix | 2 + 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/we/wesnoth/package.nix b/pkgs/by-name/we/wesnoth/package.nix index 16663c625477..0c03fa0d7b7f 100644 --- a/pkgs/by-name/we/wesnoth/package.nix +++ b/pkgs/by-name/we/wesnoth/package.nix @@ -23,10 +23,12 @@ lua5_4, curl, nix-update-script, + enableDevel ? false, }: let boost = boost186; + suffix = lib.optionalString enableDevel "-devel"; # wesnoth requires lua built with c++, see https://github.com/wesnoth/wesnoth/pull/8234 lua = lua5_4.override { postConfigure = '' @@ -36,14 +38,18 @@ let in stdenv.mkDerivation (finalAttrs: { - pname = "wesnoth"; - version = "1.18.5"; + pname = "wesnoth${suffix}"; + version = if enableDevel then "1.19.16.1" else "1.18.5"; src = fetchFromGitHub { owner = "wesnoth"; repo = "wesnoth"; tag = finalAttrs.version; - hash = "sha256-0VZJAmaCg12x4S07H1kl5s2NGMEo/NSVnzMniREmPJk="; + hash = + if enableDevel then + "sha256-ekpyQnP5r3jl98qyNkO6SwUGc9qvz2OTidUu0k3m28c=" + else + "sha256-0VZJAmaCg12x4S07H1kl5s2NGMEo/NSVnzMniREmPJk="; }; nativeBuildInputs = [ @@ -73,10 +79,31 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ "-DENABLE_SYSTEM_LUA=ON" + "-DBINARY_SUFFIX=${suffix}" ]; + postPatch = lib.optionalString (suffix != "") '' + mv packaging/org.wesnoth.Wesnoth.desktop packaging/org.wesnoth.Wesnoth${suffix}.desktop + mv packaging/org.wesnoth.Wesnoth.appdata.xml packaging/org.wesnoth.Wesnoth${suffix}.appdata.xml + + substituteInPlace packaging/org.wesnoth.Wesnoth${suffix}.desktop \ + --replace-fail "Name=Battle for Wesnoth" "Name=Battle for Wesnoth${suffix}" \ + --replace-fail "Exec=sh -c \"wesnoth >/dev/null 2>&1\"" "Exec=sh -c \"wesnoth${suffix} >/dev/null 2>&1\"" \ + --replace-fail "Exec=sh -c \"wesnoth -e >/dev/null 2>&1\"" "Exec=sh -c \"wesnoth${suffix} -e >/dev/null 2>&1\"" + + substituteInPlace packaging/org.wesnoth.Wesnoth${suffix}.appdata.xml \ + --replace-fail "Battle for Wesnoth" "Battle for Wesnoth${suffix}" \ + --replace-fail "org.wesnoth.Wesnoth" "org.wesnoth.Wesnoth${suffix}" \ + --replace-fail "wesnoth" "wesnoth${suffix}" \ + --replace-fail "wesnothd" "wesnothd${suffix}" + + substituteInPlace CMakeLists.txt \ + --replace-fail "org.wesnoth.Wesnoth.desktop" "org.wesnoth.Wesnoth${suffix}.desktop" \ + --replace-fail "org.wesnoth.Wesnoth.appdata.xml" "org.wesnoth.Wesnoth${suffix}.appdata.xml" + ''; + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' - app_name="The Battle for Wesnoth" + app_name="The Battle for Wesnoth${suffix}" app_bundle="$out/Applications/$app_name.app" app_contents="$app_bundle/Contents" mkdir -p "$app_contents" @@ -85,8 +112,8 @@ stdenv.mkDerivation (finalAttrs: { mv $out/share/wesnoth "$app_contents/Resources" pushd ../projectfiles/Xcode substitute Info.plist "$app_contents/Info.plist" \ - --replace-fail ''\'''${EXECUTABLE_NAME}' wesnoth \ - --replace-fail '$(PRODUCT_BUNDLE_IDENTIFIER)' org.wesnoth.Wesnoth \ + --replace-fail ''\'''${EXECUTABLE_NAME}' wesnoth${suffix} \ + --replace-fail '$(PRODUCT_BUNDLE_IDENTIFIER)' org.wesnoth.Wesnoth${suffix} \ --replace-fail ''\'''${PRODUCT_NAME}' "$app_name" cp -r Resources/SDLMain.nib "$app_contents/Resources/" install -m0644 Resources/{container-migration.plist,icon.icns} "$app_contents/Resources" @@ -94,22 +121,27 @@ stdenv.mkDerivation (finalAttrs: { # Make the game and dedicated server binary available for shell users mkdir -p "$out/bin" - ln -s "$app_contents/MacOS/wesnothd" "$out/bin/wesnothd" + ln -s "$app_contents/MacOS/wesnothd${suffix}" "$out/bin/wesnothd${suffix}" # Symlinking the game binary is unsifficient as it would be unable to # find the bundle resources - cat << EOF > "$out/bin/wesnoth" + cat << EOF > "$out/bin/wesnoth${suffix}" #!${stdenvNoCC.shell} open -na "$app_bundle" --args "\$@" EOF - chmod +x "$out/bin/wesnoth" + chmod +x "$out/bin/wesnoth${suffix}" ''; passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex" - # the minor release number also denotes if this is a beta release: - # even is stable, odd is beta - "^(\\d+\\.\\d*[02468]\\.\\d+)$" + ( + if enableDevel then + # Devel matches odd minor release numbers + "^(\\d+\\.\\d*[13579]\\.\\d+.*)$" + else + # Stable matches even minor release numbers + "^(\\d+\\.\\d*[02468]\\.\\d+)$" + ) ]; }; @@ -131,6 +163,6 @@ stdenv.mkDerivation (finalAttrs: { iedame ]; platforms = lib.platforms.unix; - mainProgram = "wesnoth"; + mainProgram = "wesnoth${suffix}"; }; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0cfb4ebc4487..73644c242404 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13644,6 +13644,8 @@ with pkgs; warsow = callPackage ../games/warsow { }; + wesnoth-devel = callPackage ../by-name/we/wesnoth/package.nix { enableDevel = true; }; + inherit (callPackage ../games/xonotic { }) xonotic-data xonotic