]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - derivation.nix
mapserv: initial commit
[xonotic/xonotic.git] / derivation.nix
index a12eee9d90300320490ad980608c349c15e01d3b..2a1fc83e1aaae7428fdf1d6a43c485e4dc0962d1 100644 (file)
@@ -229,14 +229,12 @@ let
                     chmod +w bin/*
                     cd bin
 
-                    for exe in darkplaces-sdl; do
-                        rpath=$(patchelf --print-rpath $exe)
-                        rpath=''${rpath:+$rpath:}${lib.makeLibraryPath runtimeInputs}
-                        patchelf --set-rpath $rpath $exe
-                    done
-
                     for exe in dedicated sdl; do
-                        cp darkplaces-$exe $out/bin/xonotic-linux64-$exe
+                        f=darkplaces-$exe
+                        rpath=$(patchelf --print-rpath $f)
+                        rpath=''${rpath:+$rpath:}${lib.makeLibraryPath runtimeInputs}
+                        patchelf --set-rpath $rpath $f
+                        cp $f $out/bin/xonotic-linux64-$exe
                     done
                 '';
             };
@@ -345,6 +343,24 @@ let
                 mkdir $out
                 cp -r $src/. $out
             '';
+
+            passthru.dance = mkDerivation rec {
+                name = "dance";
+                version = "xonotic-${VERSION}";
+
+                src = pkgs.fetchurl {
+                    url = http://beta.xonotic.org/autobuild-bsp/dance-full-88c416b8c11bdcecfdb889af2a2b97b4c0e2b8de-319ee7234504199da56f07ce25185f6d6cb889cd.pk3;
+                    sha256 = "1jgdg4mz56kbxcy3mwn4h5qlf3ahm1cmarp9l70fz9nfn6cnaknq";
+                };
+
+                phases = [ "installPhase" ];
+
+                installPhase = ''
+                    mkdir -p $out
+                    cd $out
+                    ${pkgs.unzip}/bin/unzip $src
+                '';
+            };
         };
 
         xonotic-music = mkDerivation rec {
@@ -375,6 +391,23 @@ let
             '';
         };
 
+        mapserv = mkDerivation rec {
+            name = "mapserv-${version}";
+            version = "xonotic-${VERSION}";
+
+            src = "${srcs."xonotic"}/server/mapserv";
+
+            buildInputs = with pkgs; [
+                python3
+                mypy
+            ];
+            phases = [ "installPhase" ];
+            installPhase = ''
+                mkdir $out
+                cp -r $src/. $out
+            '';
+        };
+
         xonotic = mkDerivation rec {
             name = "xonotic-${version}";
             version = VERSION;
@@ -397,6 +430,9 @@ let
                     xonotic-music
                     xonotic-nexcompat
                 ;
+                inherit (xonotic-maps)
+                    dance
+                ;
             };
 
             phases = [ "installPhase" ];
@@ -429,7 +465,7 @@ let
                         cat > $out/init <<EOF
                         #!${stdenv.shell}
                         ${pkgs.coreutils}/bin/ls -l /data
-                        exec ${darkplaces}/bin/xonotic-linux64-dedicated
+                        exec ${darkplaces}/bin/xonotic-linux64-dedicated "\''${@}"
                         EOF
                         chmod +x $out/init
                     '';
@@ -492,8 +528,8 @@ let
 
     shell = let inputs = (lib.mapAttrsToList (k: v: v) targets); in stdenv.mkDerivation (rec {
         name = "xonotic-shell";
-        nativeBuildInputs = builtins.map (it: it.nativeBuildInputs) (builtins.filter (it: it?nativeBuildInputs) inputs);
-        buildInputs = builtins.map (it: it.buildInputs) (builtins.filter (it: it?buildInputs) inputs);
+        nativeBuildInputs = lib.unique (builtins.map (it: it.nativeBuildInputs) (builtins.filter (it: it?nativeBuildInputs) inputs));
+        buildInputs = lib.unique (builtins.map (it: it.buildInputs) (builtins.filter (it: it?buildInputs) inputs));
         shellHook = builtins.map (it: it.shellHook) (builtins.filter (it: it?shellHook) inputs);
     });
 in { inherit shell; } // targets