From bde2c0027ea474bbd286a81b31f90d96fabf5d85 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Wed, 19 Mar 2025 22:33:46 +0100 Subject: [PATCH] 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 --- pkgs/by-name/ne/netbird-ui/package.nix | 5 ++ .../ne/netbird/package.nix} | 71 +++++++++---------- pkgs/top-level/all-packages.nix | 9 --- 3 files changed, 38 insertions(+), 47 deletions(-) create mode 100644 pkgs/by-name/ne/netbird-ui/package.nix rename pkgs/{tools/networking/netbird/default.nix => by-name/ne/netbird/package.nix} (66%) diff --git a/pkgs/by-name/ne/netbird-ui/package.nix b/pkgs/by-name/ne/netbird-ui/package.nix new file mode 100644 index 000000000000..8a5ad19846b0 --- /dev/null +++ b/pkgs/by-name/ne/netbird-ui/package.nix @@ -0,0 +1,5 @@ +{ netbird }: + +netbird.override { + ui = true; +} diff --git a/pkgs/tools/networking/netbird/default.nix b/pkgs/by-name/ne/netbird/package.nix similarity index 66% rename from pkgs/tools/networking/netbird/default.nix rename to pkgs/by-name/ne/netbird/package.nix index 4325ad1a5210..121728929232 100644 --- a/pkgs/tools/networking/netbird/default.nix +++ b/pkgs/by-name/ne/netbird/package.nix @@ -12,13 +12,9 @@ libX11, libXcursor, libXxf86vm, - Cocoa, - IOKit, - Kernel, - UserNotifications, - WebKit, ui ? false, netbird-ui, + versionCheckHook, }: let modules = @@ -33,43 +29,35 @@ let signal = "netbird-signal"; }; in -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "netbird"; - version = "0.37.1"; + version = "0.38.2"; src = fetchFromGitHub { owner = "netbirdio"; repo = "netbird"; - tag = "v${version}"; - hash = "sha256-5+R0Y/xPgnVH53p1vtY65tOqePWQVOMR4oY1yOOFHK4="; + tag = "v${finalAttrs.version}"; + hash = "sha256-8uxRR8XkomUB9dMN9h1M4/K09wxy5E+XhXVbNc0g6xQ="; }; - vendorHash = "sha256-DGvDkkdM8WaaR5FQwZgKn2n1JEDeqUegZxeAIxniJ5A="; + vendorHash = "sha256-m5ou5p2/ubDDMLr0M2F+9qgkqKjhXRJ6HpizwxJhmtU="; nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config; - buildInputs = - lib.optionals (stdenv.hostPlatform.isLinux && ui) [ - gtk3 - libayatana-appindicator - libX11 - libXcursor - libXxf86vm - ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin && ui) [ - Cocoa - IOKit - Kernel - UserNotifications - WebKit - ]; + buildInputs = lib.optionals (stdenv.hostPlatform.isLinux && ui) [ + gtk3 + libayatana-appindicator + libX11 + libXcursor + libXxf86vm + ]; subPackages = lib.attrNames modules; ldflags = [ "-s" "-w" - "-X github.com/netbirdio/netbird/version.version=${version}" + "-X github.com/netbirdio/netbird/version.version=${finalAttrs.version}" "-X main.builtBy=nix" ]; @@ -100,31 +88,38 @@ buildGoModule rec { ) modules ) + lib.optionalString (stdenv.hostPlatform.isLinux && ui) '' - mkdir -p $out/share/pixmaps - cp $src/client/ui/netbird-systemtray-connected.png $out/share/pixmaps/netbird.png - - mkdir -p $out/share/applications - cp $src/client/ui/netbird.desktop $out/share/applications/netbird.desktop + install -Dm644 "$src/client/ui/assets/netbird-systemtray-connected.png" "$out/share/pixmaps/netbird.png" + install -Dm644 "$src/client/ui/build/netbird.desktop" "$out/share/applications/netbird.desktop" substituteInPlace $out/share/applications/netbird.desktop \ --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 = { - tests.netbird = nixosTests.netbird; - tests.netbird-ui = netbird-ui; + tests = { + nixos = nixosTests.netbird; + withUI = netbird-ui; + }; updateScript = nix-update-script { }; }; - meta = with lib; { + meta = { 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"; - license = licenses.bsd3; - maintainers = with maintainers; [ + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ vrifox saturn745 ]; mainProgram = if ui then "netbird-ui" else "netbird"; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a79484845fb5..f66a0a029f86 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2815,15 +2815,6 @@ with pkgs; 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 { }; ibus = callPackage ../tools/inputmethods/ibus { };