diff --git a/pkgs/default.nix b/pkgs/default.nix index b3bc9c2a..91ea4c77 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -58,6 +58,8 @@ let zfsUnstable = ksuper.zfsUnstable.overrideAttrs (old: { meta = old.meta // { broken = false; }; }); }); + yggdrasil = self.callPackage ./yggdrasil { }; + obs-studio = super.obs-studio.override { pipewireSupport = true; }; libreelec-dvb-firmware = self.callPackage ./libreelec-dvb-firmware { }; diff --git a/pkgs/yggdrasil/default.nix b/pkgs/yggdrasil/default.nix new file mode 100644 index 00000000..8228132b --- /dev/null +++ b/pkgs/yggdrasil/default.nix @@ -0,0 +1,41 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "yggdrasil"; + version = "0.3.16"; + + src = fetchFromGitHub { + owner = "yggdrasil-network"; + repo = "yggdrasil-go"; + rev = "v${version}"; + sha256 = "sha256-uUF0zkgtzdMZB/GKOtawjn7AQBkRoiAEj9nUUmpQSVQ="; + }; + + vendorSha256 = "sha256-619PSqd7pl3Akj/kzLQhDIp1adumBGhLrzQsZvMzC7w="; + + doCheck = false; + + # Change the default location of the management socket on Linux + # systems so that the yggdrasil system service unit does not have to + # be granted write permission to /run. + patches = [ ./change-runtime-dir.patch ]; + + subPackages = [ "cmd/yggdrasil" "cmd/yggdrasilctl" ]; + + buildFlagsArray = '' + -ldflags= + -X github.com/yggdrasil-network/yggdrasil-go/src/version.buildVersion=${version} + -X github.com/yggdrasil-network/yggdrasil-go/src/version.buildName=${pname} + -s -w + ''; + + passthru.tests.basic = nixosTests.yggdrasil; + + meta = with lib; { + description = + "An experiment in scalable routing as an encrypted IPv6 overlay network"; + homepage = "https://yggdrasil-network.github.io/"; + license = licenses.lgpl3; + maintainers = with maintainers; [ ehmry gazally lassulus ]; + }; +}