diff --git a/flake.nix b/flake.nix index 50120fa..852cf06 100644 --- a/flake.nix +++ b/flake.nix @@ -57,7 +57,7 @@ "sourcemod-include-steamworks" "srcds-tf2" "sourcemod-addon-curl" - "sourcemod-plugin-steamworks" + "sourcemod-addon-steamworks" "sourcemod-plugin-soap-tf2dm" "sourcemod-plugin-progressive-ruleset-timer" "sourcemod-plugin-socket" @@ -82,6 +82,7 @@ sourcemod = true; plugins = with pkgs; [ sourcemod-addon-curl + sourcemod-addon-steamworks sourcemod-plugin-mapdownloader sourcemod-plugin-whitelist sourcemod-plugin-nocheats diff --git a/nix/sourcemod/hl2sdks.json b/nix/sourcemod/hl2sdks.json index 13673d6..6692b8c 100644 --- a/nix/sourcemod/hl2sdks.json +++ b/nix/sourcemod/hl2sdks.json @@ -105,7 +105,7 @@ "sdk2013": { "rev": "4c56ee5bc8bfe00793abb7d40eb3f6fb040f10d2", "sha256": "sha256-aWrQt7XIpXiomDICcSSqyxYsRZgpHnwX7eIX4o2V5jE=", - "platforms": ["i686-linux"] + "platforms": ["i686-linux", "x86_64-linux"] }, "hl2dm": { "rev": "af883d5052349f09fbe641c99149b84769a62d01", diff --git a/nix/sourcemod/plugins/overlay.nix b/nix/sourcemod/plugins/overlay.nix index 90acd3d..2b96314 100644 --- a/nix/sourcemod/plugins/overlay.nix +++ b/nix/sourcemod/plugins/overlay.nix @@ -1,7 +1,7 @@ final: prev: { mkSpirePlugin = final.callPackage ./builder/spire-plugin.nix {}; sourcemod-addon-curl = final.callPackage ./curl.nix {}; - sourcemod-plugin-steamworks = final.callPackage ./steamworks.nix {}; + sourcemod-addon-steamworks = final.callPackage ./steamworks.nix {}; sourcemod-plugin-soap-tf2dm = final.callPackage ./soap-tf2dm.nix {}; sourcemod-plugin-progressive-ruleset-timer = final.callPackage ./progressive-ruleset-timer.nix {}; sourcemod-plugin-socket = final.callPackage ./socket.nix {}; diff --git a/nix/sourcemod/plugins/steamworks.nix b/nix/sourcemod/plugins/steamworks.nix index 122a13b..feeb0ac 100644 --- a/nix/sourcemod/plugins/steamworks.nix +++ b/nix/sourcemod/plugins/steamworks.nix @@ -1,31 +1,49 @@ { - fetchurl, - stdenvNoCC, - nix-update-script, -}: -stdenvNoCC.mkDerivation (finalAttrs: { - pname = "sourcemod-plugin-steamworks"; - version = "1.2.3c"; - src = fetchurl { - url = "https://github.com/KyleSanderson/SteamWorks/releases/download/${finalAttrs.version}/package-lin.tgz"; - sha256 = "sha256-Znnm39GdTHinHSJP8/fXLZvsvCVggu1LzoXLqh4BJxM="; + fetchFromGitHub, + stdenv, + writeScript, + ambuild, + hl2sdk, + sourcemod, + metamod-source, +}: let + steamworks-sdk = fetchFromGitHub { + owner = "rlabrecque"; + repo = "SteamworksSDK"; + rev = "be6107f4b75bf996531415c53a6488a33a2a1be3"; + hash = "sha256-7+s2BKyNMCyiMRoj46DWDWGWZM+melUfuoMzvKDuYUo="; }; - - installPhase = '' - runHook preInstall - - mkdir $out - mv addons $out/ - - runHook postInstall - ''; - - passthru = { - updateScript = nix-update-script { - extraArgs = [ - "--flake" - "--version=1.2.3c" # https://github.com/Mic92/nix-update/issues/435 - ]; +in + stdenv.mkDerivation (finalAttrs: { + pname = "sourcemod-addon-steamworks"; + version = "1.2.3c-64bit-compat"; + src = fetchFromGitHub { + owner = "moonexpr"; + repo = "SteamWorks"; + tag = "x86_64-support"; + hash = "sha256-SvyXsVL+JuJmxO0ox5fyAlmt9Ir52U/uCJ8HbUNA5Oc="; }; - }; -}) + + nativeBuildInputs = [ambuild]; + + NIX_CFLAGS_COMPILE = "-Wno-error=format-security"; + + installPhase = '' + runHook preInstall + + mkdir build + cd build + cp ../AMBuildScript ../../ + python ../configure.py -s tf2 --hl2sdk-root ${hl2sdk.tf2} --sm-path ${sourcemod.src} --mms-path ${metamod-source.src} --steamworks-path ${steamworks-sdk} + ambuild + + cp -r package $out + + runHook postInstall + ''; + + passthru = { + # https://github.com/KyleSanderson/SteamWorks/pull/39 needs to be merged before we can auto-update + updateScript = writeScript "update-null" ""; + }; + })