# SPDX-FileCopyrightText: 2020 Luke Granger-Brown # # SPDX-License-Identifier: Apache-2.0 { pkgs, ... }: with pkgs; (buildBazelPackage rec { pname = "envoy"; version = "1.16.2"; src = fetchFromGitHub { owner = "envoyproxy"; repo = "envoy"; rev = "v${version}"; hash = "sha256:1b6nplf0pby1yjnsawbr5a6cnvs2ss38kxccgs4fvxv4b1m8h5d9"; extraPostFetch = '' chmod -R +w $out rm $out/.bazelversion echo e98e41a8e168af7acae8079fc0cd68155f699aa3 > $out/SOURCE_VERSION sed -i 's/GO_VERSION = ".*"/GO_VERSION = "host"/g' $out/bazel/dependency_imports.bzl sed -i 's,#!/usr/bin/env python3,#!${python3}/bin/python,' $out/bazel/foreign_cc/luajit.patch ''; }; patches = [ ./0001-quiche-update-QUICHE-tar-13949.patch ]; nativeBuildInputs = [ cmake python3 go ninja ]; fetchAttrs = { sha256 = "sha256:0s8gzfmpwjrv5v1l9spbkpa03x561n98qwli7qbbq4rvdsq1j45p"; dontUseCmakeConfigure = true; }; buildAttrs = { dontUseCmakeConfigure = true; dontUseNinjaInstall = true; preConfigure = '' sed -i 's,#!/usr/bin/env bash,#!${stdenv.shell},' $bazelOut/external/rules_foreign_cc/tools/build_defs/framework.bzl ''; installPhase = '' install -Dm0755 bazel-bin/source/exe/envoy-static $out/bin/envoy ''; }; fetchConfigured = true; removeRulesCC = false; removeLocalConfigCc = false; removeLocal = false; bazelTarget = "//source/exe:envoy-static"; bazelBuildFlags = [ "-c opt" "--spawn_strategy=standalone" "--verbose_failures" "--noexperimental_strict_action_env" ''--cxxopt=-Wno-maybe-uninitialized'' ]; meta = with stdenv.lib; { homepage = "https://envoyproxy.io"; description = "Cloud-native edge and service proxy"; license = licenses.asl20; maintainers = with maintainers; [ lukegb ]; }; }).overrideAttrs (old: { preConfigure = (builtins.replaceStrings [''ln -sf $(readlink "$symlink" | sed "s,NIX_BUILD_TOP,$NIX_BUILD_TOP,") "$symlink"''] [ '' if readlink "$symlink" | grep -q "NIX_BUILD_TOP"; then ln -sf $(readlink "$symlink" | sed "s,NIX_BUILD_TOP,$NIX_BUILD_TOP,") "$symlink" fi '' ] old.preConfigure); })