From 941ad82de3a7a721b9f4aa3f43d1de76a4ec622d Mon Sep 17 00:00:00 2001 From: Nikolas Moya Date: Sun, 12 Jul 2026 02:39:07 +0200 Subject: [PATCH] vpxtool: init at 0.33.4 Add vpxtool, a terminal-based frontend and utility suite for the Visual Pinball ecosystem. This package builds vpxtool from source with rustPlatform.buildRustPackage and installs one public executable: vpxtool. Tables, ROMs, and the Visual Pinball executable are not packaged. Users must provide their own .vpx tables, PinMAME ROMs, and vpinball executable where required by vpxtool commands. Runtime configuration remains managed by vpxtool through its normal config file under the user's platform-specific configuration directory. The upstream source is pinned to release v0.33.4. Upstream Cargo metadata declares the package as MIT licensed, so the nixpkgs package uses lib.licenses.mit. The package enables upstream cargo tests and a version install check. It has been built and smoke-tested on x86_64-linux with: nix-build -A vpxtool ./result/bin/vpxtool --version --- maintainers/maintainer-list.nix | 6 +++++ pkgs/by-name/vp/vpxtool/package.nix | 37 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 pkgs/by-name/vp/vpxtool/package.nix diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 61211f99f36c..5bd0b0663343 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -20010,6 +20010,12 @@ githubId = 4242897; name = "Nikolai Mishin"; }; + nmoya = { + email = "nikolasmoya@gmail.com"; + github = "nmoya"; + githubId = 1767648; + name = "Nikolas Moya"; + }; noaccos = { name = "Francesco Noacco"; email = "francesco.noacco2000@gmail.com"; diff --git a/pkgs/by-name/vp/vpxtool/package.nix b/pkgs/by-name/vp/vpxtool/package.nix new file mode 100644 index 000000000000..5180b0d7fdff --- /dev/null +++ b/pkgs/by-name/vp/vpxtool/package.nix @@ -0,0 +1,37 @@ +{ + lib, + fetchFromGitHub, + nix-update-script, + rustPlatform, + versionCheckHook, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "vpxtool"; + version = "0.33.4"; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "francisdb"; + repo = "vpxtool"; + tag = "v${finalAttrs.version}"; + hash = "sha256-bXKfXBm1y4cdGvNQA8InYdsxOo4GJzSX5w24QUkeHs8="; + }; + + cargoHash = "sha256-07Muapi8zILczLgCSP/+mEqynm8Abc6EclVX4eDVZmw="; + + nativeInstallCheckInputs = [ versionCheckHook ]; + + doInstallCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Terminal based frontend and utilities for Visual Pinball"; + homepage = "https://github.com/francisdb/vpxtool"; + changelog = "https://github.com/francisdb/vpxtool/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ nmoya ]; + mainProgram = "vpxtool"; + }; +})