diff --git a/pkgs/by-name/os/osgqt/package.nix b/pkgs/by-name/os/osgqt/package.nix index bb6277c1cb8e4..d2dd9ef77083d 100644 --- a/pkgs/by-name/os/osgqt/package.nix +++ b/pkgs/by-name/os/osgqt/package.nix @@ -1,12 +1,18 @@ { cmake, fetchFromGitHub, + fetchpatch, lib, libsForQt5, + qt6Packages, openscenegraph, stdenv, -}: + qt6Support ? false, +}: +let + qt = if qt6Support then qt6Packages else libsForQt5; +in stdenv.mkDerivation (finalAttrs: { pname = "osgQt"; version = "3.5.7-unstable-2025-10-08"; @@ -18,17 +24,38 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-+rjy2a266p755Mbfk6jRApiERpOL8axHklK0cYokX40="; }; - buildInputs = [ libsForQt5.qtbase ]; + patches = lib.optionals qt6Support [ + (fetchpatch { + url = "https://github.com/DeadParrot/osgQt/commit/c4d48d1f05fda1dcb210418b89c75edf2157d85b.patch"; + hash = "sha256-oq6R7BwXagXhxz3ClkD4qVSaNyfKawU5JK4Pq3QBKvU="; + }) + (fetchpatch { + url = "https://github.com/DeadParrot/osgQt/commit/acbcdbec0026ad4b3979b6fa9311a1576f06b2cc.patch"; + hash = "sha256-OJSITx/Lr4DwWM9vrLUiKh/cXZW+3jSAyNXLeyHPm3k="; + }) + ]; + + postPatch = lib.optionalString qt6Support '' + mv include/osgQOpenGL/GraphicsWindowEx{,.h} + mv include/osgQOpenGL/OSGRenderer{,.h} + mv include/osgQOpenGL/RenderStageEx{,.h} + mv include/osgQOpenGL/StateEx{,.h} + mv include/osgQOpenGL/osgQOpenGLWidget{,.h} + mv include/osgQOpenGL/osgQOpenGLWindow{,.h} + ''; + + buildInputs = [ qt.qtbase ]; nativeBuildInputs = [ cmake - libsForQt5.wrapQtAppsHook + qt.wrapQtAppsHook ]; propagatedBuildInputs = [ openscenegraph ]; cmakeFlags = [ - "-DDESIRED_QT_VERSION=5" + "-DBUILD_OSG_EXAMPLES=OFF" + "-DDESIRED_QT_VERSION=${if qt6Support then "6" else "5"}" "-DOpenGL_GL_PREFERENCE=GLVND" ]; diff --git a/pkgs/top-level/qt5-packages.nix b/pkgs/top-level/qt5-packages.nix index c70f900e794b9..e51ceba4ed4ae 100644 --- a/pkgs/top-level/qt5-packages.nix +++ b/pkgs/top-level/qt5-packages.nix @@ -138,6 +138,8 @@ makeScopeWithSplicing' { qt = qt5; }; + osgqt = pkgs.osgqt.override { qt6Support = false; }; + phonon = callPackage ../development/libraries/phonon { }; phonon-backend-gstreamer = callPackage ../development/libraries/phonon/backends/gstreamer.nix { }; diff --git a/pkgs/top-level/qt6-packages.nix b/pkgs/top-level/qt6-packages.nix index 1f47e74579e3a..b61ad6127293d 100644 --- a/pkgs/top-level/qt6-packages.nix +++ b/pkgs/top-level/qt6-packages.nix @@ -82,6 +82,8 @@ makeScopeWithSplicing' { maplibre-native-qt = callPackage ../development/libraries/maplibre-native-qt { }; + osgqt = pkgs.osgqt.override { qt6Support = true; }; + qca = callPackage ../development/libraries/qca { inherit (qt6) qtbase qt5compat; };