mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-24 14:41:17 +00:00
factorio-demo: init at 0.14.23 (#25265)
This commit is contained in:
parent
99c28df9e5
commit
92f53af64d
|
@ -6,12 +6,11 @@
|
||||||
, username ? "" , password ? ""
|
, username ? "" , password ? ""
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert releaseType == "alpha" || releaseType == "headless";
|
assert releaseType == "alpha" || releaseType == "headless" || releaseType == "demo";
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
let
|
let
|
||||||
version = "0.15.1";
|
version = if releaseType != "demo" then "0.15.1" else "0.14.23";
|
||||||
isHeadless = releaseType == "headless";
|
|
||||||
|
|
||||||
arch = if stdenv.system == "x86_64-linux" then {
|
arch = if stdenv.system == "x86_64-linux" then {
|
||||||
inUrl = "linux64";
|
inUrl = "linux64";
|
||||||
|
@ -24,15 +23,18 @@ let
|
||||||
authenticatedFetch = callPackage ./fetch.nix { inherit username password; };
|
authenticatedFetch = callPackage ./fetch.nix { inherit username password; };
|
||||||
|
|
||||||
fetch = rec {
|
fetch = rec {
|
||||||
|
extension = if releaseType != "demo" then "tar.xz" else "tar.gz";
|
||||||
url = "https://www.factorio.com/get-download/${version}/${releaseType}/${arch.inUrl}";
|
url = "https://www.factorio.com/get-download/${version}/${releaseType}/${arch.inUrl}";
|
||||||
name = "factorio_${releaseType}_${arch.inTar}-${version}.tar.xz";
|
name = "factorio_${releaseType}_${arch.inTar}-${version}.${extension}";
|
||||||
x64 = {
|
x64 = {
|
||||||
headless = fetchurl { inherit name url; sha256 = "1z84a9yzlld6fv53viwvswp52hlc9fkxzhb2pil7sidzkws3g49l"; };
|
headless = fetchurl { inherit name url; sha256 = "1z84a9yzlld6fv53viwvswp52hlc9fkxzhb2pil7sidzkws3g49l"; };
|
||||||
alpha = authenticatedFetch { inherit name url; sha256 = "11bxasghrhqb2yg1842v1608x3mjdjv3015jgifpv1xmcqak44jp"; };
|
alpha = authenticatedFetch { inherit name url; sha256 = "11bxasghrhqb2yg1842v1608x3mjdjv3015jgifpv1xmcqak44jp"; };
|
||||||
|
demo = fetchurl { inherit name url; sha256 = "10a2lwmspqviwgymn3zhjgpiynsa6dplgnikdirma5sl2hhcfb6s"; };
|
||||||
};
|
};
|
||||||
i386 = {
|
i386 = {
|
||||||
headless = abort "Factorio 32-bit headless binaries are not available for download.";
|
headless = abort "Factorio 32-bit headless binaries are not available for download.";
|
||||||
alpha = abort "Factorio 32-bit client is not available for this version.";
|
alpha = abort "Factorio 32-bit client is not available for this version.";
|
||||||
|
demo = abort "Factorio 32-bit demo binaries are not available for download.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -95,55 +97,62 @@ let
|
||||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
headless = base;
|
|
||||||
alpha = base // {
|
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
releases = rec {
|
||||||
|
headless = base;
|
||||||
|
demo = base // {
|
||||||
|
|
||||||
libPath = stdenv.lib.makeLibraryPath [
|
buildInputs = [ makeWrapper ];
|
||||||
alsaLib
|
|
||||||
libX11
|
|
||||||
libXcursor
|
|
||||||
libXinerama
|
|
||||||
libXrandr
|
|
||||||
libXi
|
|
||||||
mesa_noglu
|
|
||||||
];
|
|
||||||
|
|
||||||
installPhase = base.installPhase + ''
|
libPath = stdenv.lib.makeLibraryPath [
|
||||||
wrapProgram $out/bin/factorio \
|
alsaLib
|
||||||
--prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$libPath \
|
libX11
|
||||||
--run "$out/share/factorio/update-config.sh" \
|
libXcursor
|
||||||
--argv0 "" \
|
libXinerama
|
||||||
--add-flags "-c \$HOME/.factorio/config.cfg ${optionalString (mods != []) "--mod-directory=${modDir}"}"
|
libXrandr
|
||||||
|
libXi
|
||||||
|
mesa_noglu
|
||||||
|
];
|
||||||
|
|
||||||
# TODO Currently, every time a mod is changed/added/removed using the
|
installPhase = base.installPhase + ''
|
||||||
# modlist, a new derivation will take up the entire footprint of the
|
wrapProgram $out/bin/factorio \
|
||||||
# client. The only way to avoid this is to remove the mods arg from the
|
--prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$libPath \
|
||||||
# package function. The modsDir derivation will have to be built
|
--run "$out/share/factorio/update-config.sh" \
|
||||||
# separately and have the user specify it in the .factorio config or
|
--argv0 "" \
|
||||||
# right along side it using a symlink into the store I think i will
|
--add-flags "-c \$HOME/.factorio/config.cfg ${optionalString (mods != []) "--mod-directory=${modDir}"}"
|
||||||
# just remove mods for the client derivation entirely. this is much
|
|
||||||
# cleaner and more useful for headless mode.
|
|
||||||
|
|
||||||
# TODO: trying to toggle off a mod will result in read-only-fs-error.
|
# TODO Currently, every time a mod is changed/added/removed using the
|
||||||
# not much we can do about that except warn the user somewhere. In
|
# modlist, a new derivation will take up the entire footprint of the
|
||||||
# fact, no exit will be clean, since this error will happen on close
|
# client. The only way to avoid this is to remove the mods arg from the
|
||||||
# regardless. just prints an ugly stacktrace but seems to be otherwise
|
# package function. The modsDir derivation will have to be built
|
||||||
# harmless, unless maybe the user forgets and tries to use the mod
|
# separately and have the user specify it in the .factorio config or
|
||||||
# manager.
|
# right along side it using a symlink into the store I think i will
|
||||||
|
# just remove mods for the client derivation entirely. this is much
|
||||||
|
# cleaner and more useful for headless mode.
|
||||||
|
|
||||||
install -m0644 <(cat << EOF
|
# TODO: trying to toggle off a mod will result in read-only-fs-error.
|
||||||
${configBaseCfg}
|
# not much we can do about that except warn the user somewhere. In
|
||||||
EOF
|
# fact, no exit will be clean, since this error will happen on close
|
||||||
) $out/share/factorio/config-base.cfg
|
# regardless. just prints an ugly stacktrace but seems to be otherwise
|
||||||
|
# harmless, unless maybe the user forgets and tries to use the mod
|
||||||
|
# manager.
|
||||||
|
|
||||||
install -m0755 <(cat << EOF
|
install -m0644 <(cat << EOF
|
||||||
${updateConfigSh}
|
${configBaseCfg}
|
||||||
EOF
|
EOF
|
||||||
) $out/share/factorio/update-config.sh
|
) $out/share/factorio/config-base.cfg
|
||||||
|
|
||||||
cp -a doc-html $out/share/factorio
|
install -m0755 <(cat << EOF
|
||||||
'';
|
${updateConfigSh}
|
||||||
|
EOF
|
||||||
|
) $out/share/factorio/update-config.sh
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
alpha = demo // {
|
||||||
|
|
||||||
|
installPhase = demo.installPhase + ''
|
||||||
|
cp -a doc-html $out/share/factorio
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in stdenv.mkDerivation (if isHeadless then headless else alpha)
|
in stdenv.mkDerivation (releases.${releaseType})
|
||||||
|
|
|
@ -16644,6 +16644,8 @@ with pkgs;
|
||||||
|
|
||||||
factorio-headless = callPackage ../games/factorio { releaseType = "headless"; };
|
factorio-headless = callPackage ../games/factorio { releaseType = "headless"; };
|
||||||
|
|
||||||
|
factorio-demo = callPackage ../games/factorio { releaseType = "demo"; };
|
||||||
|
|
||||||
factorio-mods = callPackage ../games/factorio/mods.nix { };
|
factorio-mods = callPackage ../games/factorio/mods.nix { };
|
||||||
|
|
||||||
factorio-utils = callPackage ../games/factorio/utils.nix { };
|
factorio-utils = callPackage ../games/factorio/utils.nix { };
|
||||||
|
|
Loading…
Reference in a new issue