srb2k v1.3 -> v1.5

This commit is contained in:
Jill 2022-10-21 17:14:48 +02:00
parent 39ec224d05
commit 9cc11cbdbb
9 changed files with 217 additions and 57 deletions

View File

@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1652712410,
"narHash": "sha256-hMJ2TqLt0DleEnQFGUHK9sV2aAzJPU8pZeiZoqRozbE=",
"lastModified": 1665870395,
"narHash": "sha256-Tsbqb27LDNxOoPLh0gw2hIb6L/6Ow/6lIBvqcHzEKBI=",
"owner": "ryantm",
"repo": "agenix",
"rev": "7e5e58b98c3dcbf497543ff6f22591552ebfe65b",
"rev": "a630400067c6d03c9b3e0455347dc8559db14288",
"type": "github"
},
"original": {
@ -87,11 +87,11 @@
]
},
"locked": {
"lastModified": 1656169755,
"narHash": "sha256-Nlnm4jeQWEGjYrE6hxi/7HYHjBSZ/E0RtjCYifnNsWk=",
"lastModified": 1665996265,
"narHash": "sha256-/k9og6LDBQwT+f/tJ5ClcWiUl8kCX5m6ognhsAxOiCY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4a3d01fb53f52ac83194081272795aa4612c2381",
"rev": "b81e128fc053ab3159d7b464d9b7dedc9d6a6891",
"type": "github"
},
"original": {
@ -107,11 +107,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1659775351,
"narHash": "sha256-W1vRnGF4+JCr8BSempyaB2rNFlkUAzSR7RjXiF+5GnQ=",
"lastModified": 1666029887,
"narHash": "sha256-QtyGcQ9DFUqXRe5x/BEV4QQQoSaoSfmcW8dHP7CkTgY=",
"ref": "main",
"rev": "55476dce96057b62d8ff4ae666a5084c709e06d8",
"revCount": 19,
"rev": "72f30e2b8e007751731f8f1dd979f4f2e3ef8f8b",
"revCount": 27,
"type": "git",
"url": "file:///home/oatmealine/jillo"
},
@ -147,11 +147,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1661267391,
"narHash": "sha256-5u33JsRQCq6Fotjj3/+JbQNmDujLVX8i/82ruFsDbMc=",
"lastModified": 1666188576,
"narHash": "sha256-cBsCLCxT3V6wo3lJcRZSF4cngXm2VQNKzmr5EbndJrg=",
"owner": "Infinidoge",
"repo": "nix-minecraft",
"rev": "3442139e21642082000271849abb1209484e8909",
"rev": "75ac91689d19bb4944f4794082d7f13ad99ef40a",
"type": "github"
},
"original": {
@ -162,11 +162,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1660407119,
"narHash": "sha256-04lWO0pDbhAXFdL4v2VzzwgxrZ5IefKn+TmZPiPeKxg=",
"lastModified": 1665987993,
"narHash": "sha256-MvlaIYTRiqefG4dzI5p6vVCfl+9V8A1cPniUjcn6Ngc=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "12620020f76b1b5d2b0e6fbbda831ed4f5fe56e1",
"rev": "0e6593630071440eb89cd97a52921497482b22c6",
"type": "github"
},
"original": {
@ -193,11 +193,11 @@
},
"nixpkgs-master": {
"locked": {
"lastModified": 1661278267,
"narHash": "sha256-eqJH9nHQrFsAGpG7YRfUipAT0mG8ZW0AusI5MeX716s=",
"lastModified": 1666203765,
"narHash": "sha256-r/wcNaof81uEkd9cx3ijSNMzg84NdT2FI/SI6o+jARk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1ded9c47d54c1fcd3a9e6a4ed4e2bb65984ca691",
"rev": "2df2b52806129828a1dafaa093027f10817e5b3b",
"type": "github"
},
"original": {
@ -209,11 +209,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1661239211,
"narHash": "sha256-pNJzBlSNpWEiFJZnLF2oETYq8cGWx1DJPW33aMtG6n8=",
"lastModified": 1666109165,
"narHash": "sha256-BMLyNVkr0oONuq3lKlFCRVuYqF75CO68Z8EoCh81Zdk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5e804cd8a27f835a402b22e086e36e797716ef8b",
"rev": "32096899af23d49010bd8cf6a91695888d9d9e73",
"type": "github"
},
"original": {
@ -256,11 +256,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1661187878,
"narHash": "sha256-/wCqoQB1BsaVi4nb8Iz0PreeBNMTim0p78NLtyWejFE=",
"lastModified": 1666164185,
"narHash": "sha256-5v+YB4ijeUfg5LCz9ck4gIpCPhIS+qn02OyPJO48bCE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "52527082ea267fe486f0648582d57c85486b2031",
"rev": "c5203abb1329f7ea084c04acda330ca75d5b9fb5",
"type": "github"
},
"original": {

View File

@ -16,6 +16,6 @@
}
{
hostname = "mayflower@BMW-M550d-xDrive"; # car 5
ssh = "AAAAB3NzaC1yc2EAAAADAQABAAABAQCVH1q8t7fnIlS8sUFnnfTqTK2d6wmaqUE2xJ/jNFCj3hNK4uR7aU7D85M4vMgXfTqacdrmdiNlWehOjlPf2cWxAqYFqIVcBaka0lf6iUzuEJmHtdXlSHvTK/G38pC2aE9SQkYqY5pEUrniKWNdjqmqK2bYVqXIwimI5eFLRipKYXZzzIf67vu4Zu3oaxAVn02XyWasO7660vab/gMVdn/uzj56pJ1iscuOc/IuoMPQE0TdMH1OMJ8oJMR844DdTx45+vxv1u5Jz9ECbJo91tCq7kIATfHHm739pI7ZYY7oDH0OzUKFeU5y4E8o/SaJWPvBkeXZXUxPwY5I1TBfnKAV";
ssh = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCIeoFll8XBRwu6vbQHUj4LNbvRvLMTdqUP1su9hGxow8olGKIZf/nINkt+/B5w4UumLFnOOROIWVhSH/04oxGVCWdk29ibPo3yYJIAoQrqOXYWCrGpMDd0z2n/0CwyXRAqmQ4rubnUZtnlabYCLh0eWMu9ZRSsSrQ+MiaUHES/vv1MxlLWHoEGfhLzoq7SyIsK88Mirgu9lSeHd/+2JybkQ9kNEWTxnzUPKwOMT0zLGo7vNLmfPhJ1WilQoV4F8skDbbgFNRuLO13ZDn6W2jqZ+zjf3H9khzPivG+oaKfHLMDD/zCwHM3rm3JyJzX7GF9EV73AqbNkzzsf54vKhYRT";
}
]

View File

@ -27,6 +27,7 @@ in {
users.groups.yugoslavia = {};
normalUsers = {
# aether??? is that... reference.../.??? aether https://www.curseforge.com/minecraft/mc-mods/aether mod Curseforge minecraft Forge Patreon Chat twitter code license Assets license All rights reserved categories Last Updated apr 17 2021 Game Version 1.12.2 aether
aether = {
conf = {
packages = with pkgs; [ bat duf broot nftables tmux ];
@ -134,6 +135,15 @@ in {
domain = "matrix.aether.gay";
};
srb2k = with lib; with builtins; let
addonDir = "/var/lib/srb2k/firepit/";
fileNames = attrNames (readDir (/. + addonDir));
addonFileNames = filter (n: hasSuffix ".lua" n || hasSuffix ".kart" n || hasSuffix ".pk3" n || hasSuffix ".wad" n) fileNames;
in {
enable = true;
addons = map (n: "${addonDir}${n}") addonFileNames;
};
minecraft = {
enable = true;
servers = {

View File

@ -38,7 +38,7 @@ in {
locations."/srb2kaddons/" = {
extraConfig = ''
autoindex on;
alias /home/oatmealine/.srb2kart/firepit/;
alias /var/lib/srb2k/firepit/;
sub_filter </head>
'<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.css"><style>body {background: #34373c;border-bottom: 0.1rem solid #1b1c1d;padding:20px;} .header {background-color: #141518;} pre {background: #141518;} .prettyprint {color: #f2f2f2;} .prettyprint.lang-md * {color: #f2f2f2 !important;} code {background: #141518;} .prettyprint .atv { color: rgba(73, 158, 223, 1);} .poop {display: flex; width: 100%; flex-direction: row; justify-content: space-between}</style><!-- Matomo --><script>var _paq = window._paq = window._paq || [];/* tracker methods like "setCustomDimension" should be called before "trackPageView" */_paq.push(["trackPageView"]);_paq.push(["enableLinkTracking"]);(function() {var u="//analytics.oat.zone/";_paq.push(["setTrackerUrl", u+"matomo.php"]);_paq.push(["setSiteId", "2"]);var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0];g.async=true; g.src=u+"matomo.js"; s.parentNode.insertBefore(g,s);})();</script><!-- End Matomo Code --></head>';
sub_filter <pre> ' ';

View File

@ -50,6 +50,7 @@ in {
# thanks nginx
#locations."/".proxyPass = "http://127.0.0.1:${toString cfg.port};";
locations."/".extraConfig = ''
client_max_body_size 600M;
proxy_pass http://127.0.0.1:${toString cfg.port};
'';
};

View File

@ -0,0 +1,82 @@
{ lib, config, options, pkgs, ... }:
with lib;
let
cfg = config.modules.services.srb2k;
flags = [
"-dedicated"
"+advertise 1"
"-port ${toString cfg.port}"
"-serverport ${toString cfg.port}"
];
in {
options.modules.services.srb2k = {
enable = mkOption {
type = types.bool;
default = false;
};
package = mkOption {
type = types.package;
default = pkgs._.srb2kart;
};
dataDir = mkOption {
type = types.str or types.path;
default = "/var/lib/srb2k";
description = "The directory where srb2k will store addons and state information";
};
port = mkOption {
type = types.port;
default = 5029;
description = "The default port for the srb2k server to run on";
};
addons = mkOption {
type = types.listOf (types.str or types.path);
default = [];
description = "Locations of srb2k addons and also fungus spore tasty in your body they grow happy you grow happy";
};
};
config = mkIf cfg.enable {
users.users.srb2k = {
home = cfg.dataDir;
createHome = true;
isSystemUser = true;
group = "srb2k";
};
users.groups.srb2k = {};
systemd.services.srb2k = {
description = "srb2k server =)";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
User = "srb2k";
Restart = "always";
WorkingDirectory = cfg.dataDir;
ExecStart = #''
# ${getBin pkgs.tmux}/bin/tmux -S ${cfg.dataDir}/srb2k.sock new -d \
''
${cfg.package}/bin/srb2kart ${concatStringsSep " " flags} -file \
${concatStringsSep " " (map (path: "\"${path}\"") cfg.addons)}
'';
};
postStart = ''
${pkgs.coreutils}/bin/chmod 775 -R ${cfg.dataDir}
${pkgs.coreutils}/bin/chmod 660 ${cfg.dataDir}/srb2k.sock
${pkgs.coreutils}/bin/chgrp srb2k ${cfg.dataDir}/srb2k.sock
'';
};
networking.firewall = {
allowedTCPPorts = [ cfg.port ];
allowedUDPPorts = [ cfg.port ];
};
};
}

View File

@ -1,29 +0,0 @@
{ lib
, stdenv
, SDL2
, SDL2_mixer
, libgme
, fetchFromGitLab
, cmake
}:
stdenv.mkDerivation rec {
pname = "srb2k";
version = "1.3";
src = fetchFromGitLab {
owner = "himie";
repo = "kart-public";
rev = "8cd205cd2807c6a2064935c8b873972c6570e715";
sha256 = "0";
};
buldInputs = [
SDL2
SDL2_mixer
libgme
cmake
];
cmakeFlags = [ "-march=native" ];
}

View File

@ -0,0 +1,96 @@
{ lib
, stdenv
, fetchurl
, fetchFromGitLab
, writeTextFile
, substituteAll
, cmake
, curl
, nasm
, unzip
, game-music-emu
, libpng
, SDL2
, SDL2_mixer
, zlib
}:
let
releaseTag = "v1.5";
assets = fetchurl {
url = "https://github.com/STJr/Kart-Public/releases/download/${releaseTag}/AssetsLinuxOnly.zip";
sha256 = "sha256-A4HkxnDGQICucsJyHXYc5GCRbMP0M4NjreohhFOQarA=";
};
in stdenv.mkDerivation rec {
pname = "srb2kart";
version = "1.5.0";
src = fetchFromGitLab {
owner = "KartKrew";
repo = "Kart-Public";
domain = "git.do.srb2.org";
rev = "a69b3b0260665b8b0acac950a808a68e5a40894c";
sha256 = "sha256-pWnCvBb+XkUjCVmlT3MgqPWICaERFO0POFAItIyA6Ns=";
};
nativeBuildInputs = [
cmake
nasm
unzip
];
buildInputs = [
curl
game-music-emu
libpng
SDL2
SDL2_mixer
zlib
];
cmakeFlags = [
#"-DSRB2_ASSET_DIRECTORY=/build/source/assets"
"-DGME_INCLUDE_DIR=${game-music-emu}/include"
"-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
"-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2"
];
patches = [
#./disablemd5checks.patch
];
/*
postPatch = ''
substituteInPlace src/sdl/i_system.c \
--replace '@wadlocation@' $out
'';
*/
preConfigure = ''
mkdir -p assets/installer
pushd assets/installer
unzip ${assets}
popd
ls
ls assets
ls assets/installer
'';
postInstall = ''
mkdir -p $out/bin $out/share/games/SRB2Kart
mv $out/srb2kart* $out/bin/
mv $out/*.kart $out/share/games/SRB2Kart
'';
meta = with lib; {
description = "SRB2Kart is a classic styled kart racer";
homepage = "https://mb.srb2.org/threads/srb2kart.25868/";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ viric ];
};
}

2
result
View File

@ -1 +1 @@
/nix/store/js089ixiqw488kiakkbxr4kfy671f98v-nixos-system-dark-firepit-22.05.20220822.5252708
/nix/store/gzfm8qnjflwp4yd8v5ikjf7pz86957z5-nixos-system-dark-firepit-22.05.20221019.c5203ab