commit 832cafd900ef6f4453bd5f5ef4e3cf8d7317bc26
parent f4eff0654ca69214d219e44a03b958152ef08e21
Author: Nikolay Korotkiy <sikmir@disroot.org>
Date: Mon, 29 Dec 2025 03:37:13 +0400
Add RRS
Diffstat:
4 files changed, 239 insertions(+), 0 deletions(-)
diff --git a/pkgs/by-name/rr/rrs/package.nix b/pkgs/by-name/rr/rrs/package.nix
@@ -0,0 +1,93 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ copyDesktopItems,
+ makeDesktopItem,
+ makeWrapper,
+ pkg-config,
+ qt6,
+ glslang,
+ openal,
+ sfml,
+ vulkanscenegraph,
+ vsgimgui,
+ vsgxchange,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "rrs";
+ version = "1.8.0";
+
+ src = fetchFromGitHub {
+ owner = "maisvendoo";
+ repo = "RRS";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-4CSTMC0z/uddZ0PF2bY15Jq7d7eZCiCDTIxjYPw2OZs=";
+ };
+
+ postPatch = ''
+ substituteInPlace filesystem/src/filesystem.cpp \
+ --replace-fail "QDir::currentPath().toStdString()" "\"$out/bin\"" \
+ --replace-fail "getLevelUpDirectory(workDir, 1)" "\"$out/\""
+ '';
+
+ nativeBuildInputs = [
+ cmake
+ copyDesktopItems
+ makeWrapper
+ pkg-config
+ qt6.wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ qt6.qtbase
+ qt6.qtserialbus
+ glslang
+ openal
+ sfml
+ vulkanscenegraph
+ vsgimgui
+ vsgxchange
+ ];
+
+ desktopItems = [
+ (makeDesktopItem {
+ name = "rrs-launcher";
+ type = "Application";
+ desktopName = "Russian Railway Simulator";
+ icon = "RRS_logo";
+ exec = "launcher";
+ terminal = false;
+ categories = [
+ "Simulation"
+ ];
+ })
+ ];
+
+ noAuditTmpdir = true;
+
+ postInstall = ''
+ cp -r /build/source/{bin,lib,modules,plugins} $out
+ cp -r $src/{cfg,data,docs,fonts,routes,themes} $out
+ install -Dm644 $src/launcher/resources/images/RRS_logo.png -t $out/share/icons/hicolor/48x48/apps
+ '';
+
+ postFixup = ''
+ for f in $out/bin/*; do
+ wrapProgram $f \
+ --prefix LD_LIBRARY_PATH : $out/lib
+ done
+ '';
+
+ meta = {
+ description = "Russian Railway Simulator";
+ homepage = "https://github.com/maisvendoo/RRS";
+ license = lib.licenses.gpl2;
+ maintainers = [ lib.maintainers.sikmir ];
+ platforms = lib.platforms.linux;
+ skip.ci = stdenv.isDarwin;
+ mainProgram = "launcher";
+ };
+})
diff --git a/pkgs/by-name/vs/vsgimgui/package.nix b/pkgs/by-name/vs/vsgimgui/package.nix
@@ -0,0 +1,47 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ pkg-config,
+ glslang,
+ libxcb,
+ vulkan-headers,
+ vulkan-loader,
+ vulkanscenegraph,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "vsgimgui";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "vsg-dev";
+ repo = "vsgImGui";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-GRHTpMTqK9UgvINZG2oN9zTh0lnBtNw0JdwB4ZT47gk=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ glslang
+ libxcb
+ vulkan-headers
+ vulkan-loader
+ vulkanscenegraph
+ ];
+
+ meta = {
+ description = "Integration of VulkanSceneGraph with ImGui";
+ homepage = "https://github.com/vsg-dev/vsgImGui";
+ license = lib.licenses.mit;
+ maintainers = [ lib.maintainers.sikmir ];
+ platforms = lib.platforms.linux;
+ skip.ci = stdenv.isDarwin;
+ };
+})
diff --git a/pkgs/by-name/vs/vsgxchange/package.nix b/pkgs/by-name/vs/vsgxchange/package.nix
@@ -0,0 +1,46 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ pkg-config,
+ glslang,
+ libxcb,
+ vulkan-headers,
+ vulkan-loader,
+ vulkanscenegraph,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "vsgxchange";
+ version = "1.1.8";
+
+ src = fetchFromGitHub {
+ owner = "vsg-dev";
+ repo = "vsgXchange";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-R/6D81SN7Po8tsx1vEjQHj79MjVwpEDHswMmiekeuMs=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ glslang
+ libxcb
+ vulkan-headers
+ vulkan-loader
+ vulkanscenegraph
+ ];
+
+ meta = {
+ description = "Utility library for converting data+materials to/from VulkanSceneGraph";
+ homepage = "https://github.com/vsg-dev/vsgXchange";
+ license = lib.licenses.mit;
+ maintainers = [ lib.maintainers.sikmir ];
+ platforms = lib.platforms.linux;
+ skip.ci = stdenv.isDarwin;
+ };
+})
diff --git a/pkgs/by-name/vu/vulkanscenegraph/package.nix b/pkgs/by-name/vu/vulkanscenegraph/package.nix
@@ -0,0 +1,53 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ fetchpatch,
+ cmake,
+ pkg-config,
+ glslang,
+ libxcb,
+ vulkan-headers,
+ vulkan-loader,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "vulkanscenegraph";
+ version = "1.1.12";
+
+ src = fetchFromGitHub {
+ owner = "vsg-dev";
+ repo = "VulkanSceneGraph";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-DdTfn8URLJkF5Nhkl8ZCq+brKK/T+9FipaeTON4Dsfw=";
+ };
+
+ patches = [
+ # make it compatible with glslang 16.x
+ (fetchpatch {
+ url = "https://github.com/vsg-dev/VulkanSceneGraph/commit/313865d420bba7bb3327460c367c7526f566a74e.patch";
+ hash = "sha256-hytv79AE70S/yBiI+n9RHGbHmYZW5388BiFh9l1auzU=";
+ })
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ glslang
+ libxcb
+ vulkan-headers
+ vulkan-loader
+ ];
+
+ meta = {
+ description = "Vulkan & C++17 based Scene Graph Project";
+ homepage = "http://www.vulkanscenegraph.org";
+ license = lib.licenses.mit;
+ maintainers = [ lib.maintainers.sikmir ];
+ platforms = lib.platforms.linux;
+ skip.ci = stdenv.isDarwin;
+ };
+})