diff --git a/nixos/modules/services/networking/adguardhome.nix b/nixos/modules/services/networking/adguardhome.nix index fc23d2af0b22..3d700d4584c4 100644 --- a/nixos/modules/services/networking/adguardhome.nix +++ b/nixos/modules/services/networking/adguardhome.nix @@ -36,7 +36,7 @@ let null; configFile = (settingsFormat.generate "AdGuardHome.yaml" settings).overrideAttrs (_: { - checkPhase = "${cfg.package}/bin/adguardhome -c $out --check-config"; + checkPhase = "${cfg.package}/bin/AdGuardHome -c $out --check-config"; }); in { diff --git a/pkgs/servers/adguardhome/bins.nix b/pkgs/servers/adguardhome/bins.nix deleted file mode 100644 index bd4755c451d7..000000000000 --- a/pkgs/servers/adguardhome/bins.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ fetchurl, fetchzip }: -{ - x86_64-darwin = fetchzip { - sha256 = "sha256-/xwRH9+qJQ91z2alo2sBdnLs2Z2wXUMHqJvxagptx5U="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_darwin_amd64.zip"; - }; - aarch64-darwin = fetchzip { - sha256 = "sha256-60uD8dH4Dqbey21HGx/PIzWBcN/00V1/oS1ubrucayY="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_darwin_arm64.zip"; - }; - i686-linux = fetchurl { - sha256 = "sha256-RJeU+n46IMncX5MXDedw/7DSe6pISsTJEyfI5B1pEcY="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_386.tar.gz"; - }; - x86_64-linux = fetchurl { - sha256 = "sha256-jZV/U4DUw70J1xmZLM5+gqAgpUP7fdyw46Neq8fQxT0="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_amd64.tar.gz"; - }; - aarch64-linux = fetchurl { - sha256 = "sha256-TtD8KR92Mv3Z3nCz4xIT+FcuxwqgDTq3C1lGIELrEQU="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_arm64.tar.gz"; - }; - armv6l-linux = fetchurl { - sha256 = "sha256-MosFBi72sgdZshUzAxi/ht56VpeHMguRQawU3DI5Va8="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_armv6.tar.gz"; - }; - armv7l-linux = fetchurl { - sha256 = "sha256-7YFzd6z9eCGBHlyYgDiwE+cpQzEuQIHDYfbCopapYrw="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.61/AdGuardHome_linux_armv7.tar.gz"; - }; -} diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix index 17835e373b1d..cdcddb01caba 100644 --- a/pkgs/servers/adguardhome/default.nix +++ b/pkgs/servers/adguardhome/default.nix @@ -1,23 +1,39 @@ { lib, - stdenv, - fetchurl, - fetchzip, + fetchFromGitHub, + buildGoModule, + buildNpmPackage, nixosTests, }: -let - inherit (stdenv.hostPlatform) system; - sources = import ./bins.nix { inherit fetchurl fetchzip; }; -in - -stdenv.mkDerivation rec { +buildGoModule rec { pname = "adguardhome"; version = "0.107.61"; - src = sources.${system} or (throw "Source for ${pname} is not available for ${system}"); + src = fetchFromGitHub { + owner = "AdguardTeam"; + repo = "AdGuardHome"; + tag = "v${version}"; + hash = "sha256-nKN1yr0HxUrjFD/9e87pxNqbQkNFlreJI2OHEQkbW2Q="; + }; - installPhase = '' - install -m755 -D ./AdGuardHome $out/bin/adguardhome + vendorHash = "sha256-odUfgLTSBLnzN1wsl7TOftGn7OmdbACO/83ukZ8PUaQ="; + + dashboard = buildNpmPackage { + inherit src; + name = "dashboard"; + postPatch = '' + cd client + ''; + npmDepsHash = "sha256-s7TJvGyk05HkAOgjYmozvIQ3l2zYUhWrGRJrWdp9ZJQ="; + npmBuildScript = "build-prod"; + postBuild = '' + mkdir -p $out/build/ + cp -r ../build/static/ $out/build/ + ''; + }; + + preBuild = '' + cp -r ${dashboard}/build/static build ''; passthru = { @@ -29,14 +45,13 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://github.com/AdguardTeam/AdGuardHome"; description = "Network-wide ads & trackers blocking DNS server"; - platforms = builtins.attrNames sources; maintainers = with maintainers; [ numkem iagoq rhoriguchi + baksa ]; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.gpl3Only; - mainProgram = "adguardhome"; + mainProgram = "AdGuardHome"; }; } diff --git a/pkgs/servers/adguardhome/update.sh b/pkgs/servers/adguardhome/update.sh index b85129e8289a..6583a235f4de 100755 --- a/pkgs/servers/adguardhome/update.sh +++ b/pkgs/servers/adguardhome/update.sh @@ -6,7 +6,6 @@ set -euo pipefail dirname="$(dirname "$0")" -bins="$dirname/bins.nix" latest_release=$(curl --silent https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest) version=$(jq -r '.tag_name' <<<"$latest_release") @@ -18,30 +17,6 @@ schema_version=$(curl --silent "https://raw.githubusercontent.com/AdguardTeam/Ad echo "got schema_version $schema_version" -declare -A systems -systems[linux_386]=i686-linux -systems[linux_amd64]=x86_64-linux -systems[linux_arm64]=aarch64-linux -systems[linux_armv6]=armv6l-linux -systems[linux_armv7]=armv7l-linux -systems[darwin_amd64]=x86_64-darwin -systems[darwin_arm64]=aarch64-darwin +nix-update --subpackage dashboard adguardhome --version $version -echo '{ fetchurl, fetchzip }:' > "$bins" -echo '{' >> "$bins" - -for asset in $(curl --silent https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest | jq -c '.assets[]') ; do - url="$(jq -r '.browser_download_url' <<< "$asset")" - adg_system="$(grep -Eo '(darwin|linux)_(386|amd64|arm64|armv6|armv7)' <<< "$url" || true)" - if [ -n "$adg_system" ]; then - fetch="$(grep '\.zip$' <<< "$url" > /dev/null && echo fetchzip || echo fetchurl)" - nix_system=${systems[$adg_system]} - nix_src="$(nix-prefetch --option extra-experimental-features flakes -s --output nix $fetch --url $url)" - echo "$nix_system = $fetch $nix_src;" >> $bins - fi -done - -echo '}' >> "$bins" - -sed -i -r -e "s/version\s*?=\s*?.*?;/version = \"${version#v}\";/" "$dirname/default.nix" sed -i -r -e "s/schema_version\s*?=\s*?.*?;/schema_version = ${schema_version};/" "$dirname/default.nix"