nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildGoModule,
4 fetchFromGitHub,
5 fetchurl,
6 versionCheckHook,
7 nix-update-script,
8 pkg-config,
9 libusb1,
10 libnfc,
11}:
12
13buildGoModule (finalAttrs: {
14 pname = "zaparoo";
15 version = "2.5.1";
16
17 src = fetchFromGitHub {
18 owner = "ZaparooProject";
19 repo = "zaparoo-core";
20 tag = "v${finalAttrs.version}";
21 hash = "sha256-U/MNK8K7XAEuIa06mjJdUJRKHUFWqH7BFhAgJCbdj/s=";
22 };
23
24 vendorHash = "sha256-UTMYZ8la4VsxIVjcRg8l1yGy52CRjv/6WZQgHJ+oFdE=";
25
26 webUIVersion = "1.8.0";
27 webUI = fetchurl {
28 url = "https://github.com/ZaparooProject/zaparoo-app/releases/download/v${finalAttrs.webUIVersion}/zaparoo_app-web-${finalAttrs.webUIVersion}.tar.gz";
29 hash = "sha256-77QyMFbx73vaKIRDCnhdqDXBb8MfQSsCWghe3XEL0tk=";
30 };
31
32 subPackages = [ "cmd/linux" ];
33
34 tags = [
35 "netgo"
36 "osusergo"
37 "sqlite_omit_load_extension"
38 ];
39
40 ldflags = [
41 "-s"
42 "-X github.com/ZaparooProject/zaparoo-core/pkg/config.AppVersion=${finalAttrs.version}"
43 ];
44
45 env.CGO_ENABLED = 1;
46
47 nativeBuildInputs = [
48 pkg-config
49 ];
50
51 buildInputs = [
52 libusb1
53 libnfc
54 ];
55
56 postPatch = ''
57 mkdir -p pkg/assets/_app/dist
58 tar xf ${finalAttrs.webUI} -C pkg/assets/_app/dist/
59 '';
60
61 postInstall = ''
62 mv $out/bin/linux $out/bin/zaparoo
63 '';
64
65 nativeInstallCheckInputs = [
66 versionCheckHook
67 ];
68
69 doInstallCheck = true;
70
71 passthru = {
72 updateScript = nix-update-script { };
73 };
74
75 meta = {
76 description = "Launch games and cores on your MiSTer, emulators and handhelds using NFC tags or cards";
77 homepage = "https://zaparoo.org/";
78 changelog = "https://github.com/ZaparooProject/zaparoo-core/releases/tag/v${finalAttrs.version}";
79 license = lib.licenses.gpl3Only;
80 maintainers = with lib.maintainers; [ liberodark ];
81 mainProgram = "zaparoo";
82 };
83})