aboutsummaryrefslogtreecommitdiff
/!\ ALART /!\ ALPHA PROOF OF CONCEPT /!\ ALART /!\

Currently the SM/MMS side of things builds exclusively against SDK 2013 Multiplayer. Accordingly, there are some underlying 32-bit assumptions.

srcds-nix

This is a Nix package set and library for dedicated server hosting and general content authoring with the Source Engine.

It currently features:

  • fetchers for Steam content: fetchDepotCache, fetchDepotFile, mkDepot
    • Courtesy of a patched DepotDownloader, derivations are fixed-output on the contents of deterministic manifests, then on the SHA1 hashes within.
    • This is quite distinct from the usual steamcmd approach, but yields a far more reproducible server environment. Additionally, the network traffic between lib.fakeHash and trust-on-first-use is measured in kilobytes, not potential gigabytes as with steam-fetcher.
  • AMBuild
  • MetaMod: Source
  • SourceMod
    • a standard extensible package set for plugins and extensions, including:
      • mkDerivation analogue: buildSMPlugin
      • setup hook for spcomp include paths
      • coming soon: development shells to replicate your server setup
  • vtex2, Strata Source's VTF converter, which uses a heavily improved fork of VTFLib built against AMD Compressonator, which gets rid of the infamous green tint among other things.
  • a less ambitious Linux port of VTFLib for compatibility

Usage

  • default.nix lets you callPackage this repository the old-fashioned way to get the top-level package set.
  • overlay.nix adds it as srcdsPackages to the target. srcdsPackages is considered its canonical place in nixpkgs.
  • flake.nix exposes:
  • packages.${system}.default is the top-level package set.
  • overlays.default points to overlay.nix.