From c38cd91cbba253b965631f63f3c3212cf3bd326b Mon Sep 17 00:00:00 2001 From: winston Date: Wed, 29 Oct 2025 15:36:58 +0100 Subject: [PATCH 1/2] opentrack: move to by-name, clean up --- .../misc => by-name/op}/opentrack/aruco.nix | 29 +++--- .../op/opentrack/package.nix} | 96 ++++++++++--------- pkgs/top-level/all-packages.nix | 2 - 3 files changed, 64 insertions(+), 63 deletions(-) rename pkgs/{applications/misc => by-name/op}/opentrack/aruco.nix (51%) rename pkgs/{applications/misc/opentrack/default.nix => by-name/op/opentrack/package.nix} (64%) diff --git a/pkgs/applications/misc/opentrack/aruco.nix b/pkgs/by-name/op/opentrack/aruco.nix similarity index 51% rename from pkgs/applications/misc/opentrack/aruco.nix rename to pkgs/by-name/op/opentrack/aruco.nix index 291ff7ad24f9..7fabda370d71 100644 --- a/pkgs/applications/misc/opentrack/aruco.nix +++ b/pkgs/by-name/op/opentrack/aruco.nix @@ -4,38 +4,39 @@ cmake, fetchFromGitHub, opencv4, + opentrack, }: stdenv.mkDerivation { pname = "opentrack-aruco"; - version = "unstable-20190303"; + version = "0-unstable-2022-03-10"; src = fetchFromGitHub { owner = "opentrack"; repo = "aruco"; - rev = "12dc60efd61149227bd05c805208d9bcce308f6d"; - sha256 = "0gkrixgfbpg8pls4qqilphbz4935mg5z4p18a0vv6kclmfccw9ad"; + rev = "e08d336bd2c70859efd19622582817fe8eabe714"; + hash = "sha256-Wf5y//vxRWIZfOxwgZsPPTsUHliA3cbt2FOjouh4/rQ="; }; + strictDeps = true; nativeBuildInputs = [ cmake ]; - buildInputs = [ opencv4 ]; env.NIX_CFLAGS_COMPILE = "-Wall -Wextra -Wpedantic -ffast-math -O3"; - preInstall = '' - mkdir -p $out/include/aruco + installPhase = '' + runHook preInstall + + install -Dt $out/include/aruco ./src/include/aruco/* + install -Dt $out/lib ./src/libaruco.a + + runHook postInstall ''; - # copy headers required by main package - postInstall = '' - cp $src/src/*.h $out/include/aruco - ''; - - meta = with lib; { + meta = { homepage = "https://github.com/opentrack/aruco"; description = "C++ library for detection of AR markers based on OpenCV"; - license = licenses.isc; - maintainers = with maintainers; [ zaninime ]; + license = lib.licenses.isc; + maintainers = opentrack.meta.maintainers; }; } diff --git a/pkgs/applications/misc/opentrack/default.nix b/pkgs/by-name/op/opentrack/package.nix similarity index 64% rename from pkgs/applications/misc/opentrack/default.nix rename to pkgs/by-name/op/opentrack/package.nix index 097378626fe3..27a8cb50c47a 100644 --- a/pkgs/applications/misc/opentrack/default.nix +++ b/pkgs/by-name/op/opentrack/package.nix @@ -1,6 +1,5 @@ { - pkgs, - mkDerivation, + stdenv, lib, callPackage, fetchzip, @@ -9,38 +8,26 @@ pkg-config, ninja, copyDesktopItems, - qtbase, - qttools, + qt5, opencv4, procps, eigen, libXdmcp, libevdev, makeDesktopItem, - fetchurl, fetchpatch, wineWowPackages, onnxruntime, + withWine ? stdenv.targetPlatform.isx86_64, }: -let - version = "2023.3.0"; - - aruco = callPackage ./aruco.nix { }; - - # license.txt inside the zip file is MIT - xplaneSdk = fetchzip { - url = "https://developer.x-plane.com/wp-content/plugins/code-sample-generation/sdk_zip_files/XPSDK401.zip"; - hash = "sha256-tUT9yV1949QVr5VebU/7esg7wwWkyak2TSA/kQSrbeo="; - }; -in -mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "opentrack"; - inherit version; + version = "2023.3.0"; src = fetchFromGitHub { owner = "opentrack"; repo = "opentrack"; - rev = "opentrack-${version}"; + tag = "opentrack-${finalAttrs.version}"; hash = "sha256-C0jLS55DcLJh/e5yM8kLG7fhhKvBNllv5HkfCWRIfc4="; }; @@ -52,49 +39,60 @@ mkDerivation { }) ]; + aruco = callPackage ./aruco.nix { }; + + xplaneSdk = fetchzip { + url = "https://developer.x-plane.com/wp-content/plugins/code-sample-generation/sdk_zip_files/XPSDK401.zip"; + hash = "sha256-tUT9yV1949QVr5VebU/7esg7wwWkyak2TSA/kQSrbeo="; + # see license.txt inside the zip file + meta.license = lib.licenses.free; + }; + + strictDeps = true; + nativeBuildInputs = [ cmake - pkg-config - ninja copyDesktopItems - ]; + ninja + pkg-config + qt5.wrapQtAppsHook + ] + ++ lib.optionals withWine [ wineWowPackages.stable ]; + buildInputs = [ - qtbase - qttools - opencv4 - procps + finalAttrs.aruco eigen libXdmcp libevdev - aruco onnxruntime - ] - ++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 [ wineWowPackages.stable ]; - - env.NIX_CFLAGS_COMPILE = "-Wall -Wextra -Wpedantic -ffast-math -O3"; - dontWrapQtApps = true; + opencv4 + procps + qt5.qtbase + qt5.qttools + ]; cmakeFlags = [ - "-GNinja" - "-DCMAKE_BUILD_TYPE=Release" - "-DSDK_ARUCO_LIBPATH=${aruco}/lib/libaruco.a" - "-DSDK_XPLANE=${xplaneSdk}" - ] - ++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 [ "-DSDK_WINE=ON" ]; + (lib.cmakeBool "SDK_WINE" withWine) + (lib.cmakeFeature "SDK_ARUCO_LIBPATH" "${finalAttrs.aruco}/lib/libaruco.a") + (lib.cmakeFeature "SDK_XPLANE" finalAttrs.xplaneSdk.outPath) + ]; postInstall = '' + install -Dt $out/share/icons/hicolor/256x256 $src/gui/images/opentrack.png + ''; + + # manually wrap just the main binary + dontWrapQtApps = true; + preFixup = '' wrapQtApp $out/bin/opentrack ''; desktopItems = [ - (makeDesktopItem rec { + (makeDesktopItem { name = "opentrack"; exec = "opentrack"; - icon = fetchurl { - url = "https://github.com/opentrack/opentrack/raw/opentrack-${version}/gui/images/opentrack.png"; - hash = "sha256-9k3jToEpdW14ErbNGHM4c0x/LH7k14RmtvY4dOYnITQ="; - }; - desktopName = name; + icon = "opentrack"; + desktopName = "opentrack"; genericName = "Head tracking software"; categories = [ "Utility" ]; }) @@ -104,8 +102,12 @@ mkDerivation { homepage = "https://github.com/opentrack/opentrack"; description = "Head tracking software for MS Windows, Linux, and Apple OSX"; mainProgram = "opentrack"; - changelog = "https://github.com/opentrack/opentrack/releases/tag/${version}"; + changelog = "https://github.com/opentrack/opentrack/releases"; license = lib.licenses.isc; - maintainers = with lib.maintainers; [ zaninime ]; + maintainers = [ + lib.maintainers.nekowinston + lib.maintainers.zaninime + ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f38323f85cb8..42dfc5a8fda2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3640,8 +3640,6 @@ with pkgs; sshd-openpgp-auth = callPackage ../by-name/ss/ssh-openpgp-auth/daemon.nix { }; - opentrack = libsForQt5.callPackage ../applications/misc/opentrack { }; - openvpn = callPackage ../tools/networking/openvpn { }; openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { }; From ce7ef4a6e21cd0f4e17caf72aeadaebdb9ceaa1c Mon Sep 17 00:00:00 2001 From: winston Date: Wed, 29 Oct 2025 16:31:30 +0100 Subject: [PATCH 2/2] opentrack: 2023.3.0 -> 2024.1.1-unstable-2025-10-29 --- pkgs/by-name/op/opentrack/package.nix | 36 +++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/pkgs/by-name/op/opentrack/package.nix b/pkgs/by-name/op/opentrack/package.nix index 27a8cb50c47a..13e21edba534 100644 --- a/pkgs/by-name/op/opentrack/package.nix +++ b/pkgs/by-name/op/opentrack/package.nix @@ -8,42 +8,34 @@ pkg-config, ninja, copyDesktopItems, - qt5, + qt6, opencv4, procps, eigen, libXdmcp, libevdev, makeDesktopItem, - fetchpatch, wineWowPackages, onnxruntime, + nix-update-script, withWine ? stdenv.targetPlatform.isx86_64, }: stdenv.mkDerivation (finalAttrs: { pname = "opentrack"; - version = "2023.3.0"; + version = "2024.1.1-unstable-2025-10-29"; src = fetchFromGitHub { owner = "opentrack"; repo = "opentrack"; - tag = "opentrack-${finalAttrs.version}"; - hash = "sha256-C0jLS55DcLJh/e5yM8kLG7fhhKvBNllv5HkfCWRIfc4="; + rev = "766808196cf63ddf9ceb102fba193582daceb9de"; + hash = "sha256-xS87LFAbnRg7uBbN7ARoGts3bNYkcpOm3xhojBepgIo="; }; - patches = [ - # https://github.com/opentrack/opentrack/pull/1754 - (fetchpatch { - url = "https://github.com/opentrack/opentrack/commit/d501d7e0b237ed0c305525788b423d842ffa356d.patch"; - hash = "sha256-XMGHV78vt/Xn3hS+4V//pqtsdBQCfJPjIXxfwtdXX+Q="; - }) - ]; - aruco = callPackage ./aruco.nix { }; xplaneSdk = fetchzip { - url = "https://developer.x-plane.com/wp-content/plugins/code-sample-generation/sdk_zip_files/XPSDK401.zip"; - hash = "sha256-tUT9yV1949QVr5VebU/7esg7wwWkyak2TSA/kQSrbeo="; + url = "https://developer.x-plane.com/wp-content/plugins/code-sample-generation/sdk_zip_files/XPSDK411.zip"; + hash = "sha256-zay5QrHJctllVFl+JhlyTDzH68h5UoxncEt+TpW3UgI="; # see license.txt inside the zip file meta.license = lib.licenses.free; }; @@ -55,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: { copyDesktopItems ninja pkg-config - qt5.wrapQtAppsHook + qt6.wrapQtAppsHook ] ++ lib.optionals withWine [ wineWowPackages.stable ]; @@ -67,8 +59,8 @@ stdenv.mkDerivation (finalAttrs: { onnxruntime opencv4 procps - qt5.qtbase - qt5.qttools + qt6.qtbase + qt6.qttools ]; cmakeFlags = [ @@ -98,6 +90,14 @@ stdenv.mkDerivation (finalAttrs: { }) ]; + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version=branch" + "--version-regex" + "^opentrack-(.+)" + ]; + }; + meta = { homepage = "https://github.com/opentrack/opentrack"; description = "Head tracking software for MS Windows, Linux, and Apple OSX";