From 9faec8f5cedbdec251314cd09d531f6820f4b519 Mon Sep 17 00:00:00 2001 From: RoGreat Date: Sun, 12 Oct 2025 21:59:29 -0500 Subject: [PATCH] pascube: init at 1.5.1 --- pkgs/by-name/pa/pascube/package.nix | 96 +++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 pkgs/by-name/pa/pascube/package.nix diff --git a/pkgs/by-name/pa/pascube/package.nix b/pkgs/by-name/pa/pascube/package.nix new file mode 100644 index 000000000000..2d8a1684bce2 --- /dev/null +++ b/pkgs/by-name/pa/pascube/package.nix @@ -0,0 +1,96 @@ +{ + autoPatchelfHook, + copyDesktopItems, + fetchFromGitHub, + fpc, + lazarus-qt6, + lib, + libGLU, + makeDesktopItem, + nix-update-script, + qt6Packages, + stdenv, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "pascube"; + version = "1.5.1"; + + src = fetchFromGitHub { + owner = "benjamimgois"; + repo = "pascube"; + tag = "v${finalAttrs.version}"; + hash = "sha256-djkrMgX3RTTXSLISYpBfdyCIh3/WWODxd473M53iFKE="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + copyDesktopItems + fpc + lazarus-qt6 + qt6Packages.wrapQtAppsHook + ]; + + buildInputs = [ + qt6Packages.libqtpas + qt6Packages.qtbase + ]; + + runtimeDependencies = [ + libGLU + ]; + + buildPhase = '' + runHook preBuild + HOME=$(mktemp -d) lazbuild \ + --lazarusdir=${lazarus-qt6}/share/lazarus \ + --widgetset=qt6 \ + pascube.lpi + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm755 pascube $out/bin/pascube + for sz in 128x128 256x256 512x512; do + install -Dm644 "data/icons/''${sz}/pascube.png" \ + "$out/share/icons/hicolor/''${sz}/apps/pascube.png" + done + install -Dm644 "data/skybox.png" "$out/share/pascube/skybox.png" + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "pascube"; + desktopName = "pasCube"; + comment = finalAttrs.meta.description; + exec = finalAttrs.meta.mainProgram; + icon = "pascube"; + terminal = false; + categories = [ + "Graphics" + "Education" + "Qt" + ]; + }) + ]; + + preFixup = '' + qtWrapperArgs+=( + --set QT_QPA_PLATFORM xcb + ) + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Simple OpenGL spinning cube written in Pascal"; + homepage = "https://github.com/benjamimgois/pascube"; + changelog = "https://github.com/benjamimgois/pascube/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ RoGreat ]; + mainProgram = "pascube"; + platforms = lib.platforms.linux; + }; +})