mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
adguardhome: Build from source (#411034)
This commit is contained in:
commit
c84ce50209
4 changed files with 32 additions and 73 deletions
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue