netbird: unbreak netbird-ui build (#390989)

* netbird: 0.37.1 -> 0.38.2

* netbird: unbreak `netbird-ui` build

* netbird: add `versionCheckHook`

* netbird: use `buildGoModule`

* netbird: use `darwin.apple_sdk.framework`

* netbird: move to `pkgs/by-name`

* netbird: use `finalAttrs` pattern

* netbird: remove `with lib;` in front of the `meta` attribute set

* netbird: minor cleanup

* netbird: remove `darwin` parameter

* netbird: disable `installCheck` for `netbird-ui` only
This commit is contained in:
Pol Dellaiera 2025-03-19 22:33:46 +01:00 committed by GitHub
parent f63a963218
commit bde2c0027e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 38 additions and 47 deletions

View file

@ -0,0 +1,5 @@
{ netbird }:
netbird.override {
ui = true;
}

View file

@ -12,13 +12,9 @@
libX11, libX11,
libXcursor, libXcursor,
libXxf86vm, libXxf86vm,
Cocoa,
IOKit,
Kernel,
UserNotifications,
WebKit,
ui ? false, ui ? false,
netbird-ui, netbird-ui,
versionCheckHook,
}: }:
let let
modules = modules =
@ -33,43 +29,35 @@ let
signal = "netbird-signal"; signal = "netbird-signal";
}; };
in in
buildGoModule rec { buildGoModule (finalAttrs: {
pname = "netbird"; pname = "netbird";
version = "0.37.1"; version = "0.38.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "netbirdio"; owner = "netbirdio";
repo = "netbird"; repo = "netbird";
tag = "v${version}"; tag = "v${finalAttrs.version}";
hash = "sha256-5+R0Y/xPgnVH53p1vtY65tOqePWQVOMR4oY1yOOFHK4="; hash = "sha256-8uxRR8XkomUB9dMN9h1M4/K09wxy5E+XhXVbNc0g6xQ=";
}; };
vendorHash = "sha256-DGvDkkdM8WaaR5FQwZgKn2n1JEDeqUegZxeAIxniJ5A="; vendorHash = "sha256-m5ou5p2/ubDDMLr0M2F+9qgkqKjhXRJ6HpizwxJhmtU=";
nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config; nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config;
buildInputs = buildInputs = lib.optionals (stdenv.hostPlatform.isLinux && ui) [
lib.optionals (stdenv.hostPlatform.isLinux && ui) [ gtk3
gtk3 libayatana-appindicator
libayatana-appindicator libX11
libX11 libXcursor
libXcursor libXxf86vm
libXxf86vm ];
]
++ lib.optionals (stdenv.hostPlatform.isDarwin && ui) [
Cocoa
IOKit
Kernel
UserNotifications
WebKit
];
subPackages = lib.attrNames modules; subPackages = lib.attrNames modules;
ldflags = [ ldflags = [
"-s" "-s"
"-w" "-w"
"-X github.com/netbirdio/netbird/version.version=${version}" "-X github.com/netbirdio/netbird/version.version=${finalAttrs.version}"
"-X main.builtBy=nix" "-X main.builtBy=nix"
]; ];
@ -100,31 +88,38 @@ buildGoModule rec {
) modules ) modules
) )
+ lib.optionalString (stdenv.hostPlatform.isLinux && ui) '' + lib.optionalString (stdenv.hostPlatform.isLinux && ui) ''
mkdir -p $out/share/pixmaps install -Dm644 "$src/client/ui/assets/netbird-systemtray-connected.png" "$out/share/pixmaps/netbird.png"
cp $src/client/ui/netbird-systemtray-connected.png $out/share/pixmaps/netbird.png install -Dm644 "$src/client/ui/build/netbird.desktop" "$out/share/applications/netbird.desktop"
mkdir -p $out/share/applications
cp $src/client/ui/netbird.desktop $out/share/applications/netbird.desktop
substituteInPlace $out/share/applications/netbird.desktop \ substituteInPlace $out/share/applications/netbird.desktop \
--replace-fail "Exec=/usr/bin/netbird-ui" "Exec=$out/bin/netbird-ui" --replace-fail "Exec=/usr/bin/netbird-ui" "Exec=$out/bin/netbird-ui"
''; '';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
versionCheckProgramArg = "version";
# Disabled for the `netbird-ui` version because it does a network request.
doInstallCheck = !ui;
passthru = { passthru = {
tests.netbird = nixosTests.netbird; tests = {
tests.netbird-ui = netbird-ui; nixos = nixosTests.netbird;
withUI = netbird-ui;
};
updateScript = nix-update-script { }; updateScript = nix-update-script { };
}; };
meta = with lib; { meta = {
homepage = "https://netbird.io"; homepage = "https://netbird.io";
changelog = "https://github.com/netbirdio/netbird/releases/tag/v${version}"; changelog = "https://github.com/netbirdio/netbird/releases/tag/v${finalAttrs.version}";
description = "Connect your devices into a single secure private WireGuard®-based mesh network with SSO/MFA and simple access controls"; description = "Connect your devices into a single secure private WireGuard®-based mesh network with SSO/MFA and simple access controls";
license = licenses.bsd3; license = lib.licenses.bsd3;
maintainers = with maintainers; [ maintainers = with lib.maintainers; [
vrifox vrifox
saturn745 saturn745
]; ];
mainProgram = if ui then "netbird-ui" else "netbird"; mainProgram = if ui then "netbird-ui" else "netbird";
}; };
} })

View file

@ -2815,15 +2815,6 @@ with pkgs;
libotf = callPackage ../tools/inputmethods/m17n-lib/otf.nix { }; libotf = callPackage ../tools/inputmethods/m17n-lib/otf.nix { };
netbird = callPackage ../tools/networking/netbird {
inherit (darwin.apple_sdk_11_0.frameworks) Cocoa IOKit Kernel UserNotifications WebKit;
buildGoModule = buildGo123Module;
};
netbird-ui = netbird.override {
ui = true;
};
skkDictionaries = callPackages ../tools/inputmethods/skk/skk-dicts { }; skkDictionaries = callPackages ../tools/inputmethods/skk/skk-dicts { };
ibus = callPackage ../tools/inputmethods/ibus { }; ibus = callPackage ../tools/inputmethods/ibus { };