diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix deleted file mode 100644 index f6afcd7d884f..000000000000 --- a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix +++ /dev/null @@ -1,157 +0,0 @@ -{ lib -, writeShellScriptBin -, buildGoModule -, makeWrapper -, fetchFromGitHub -, coreutils -, nettools -, util-linux -, stdenv -, dmidecode -, bashInteractive -, nix-update-script -, testers -, ssm-agent -, overrideEtc ? true -}: - -let - # Tests use lsb_release, so we mock it (the SSM agent used to not - # read from our /etc/os-release file, but now it does) because in - # reality, it won't (shouldn't) be used when active on a system with - # /etc/os-release. If it is, we fake the only two fields it cares about. - fake-lsb-release = writeShellScriptBin "lsb_release" '' - . /etc/os-release || true - - case "$1" in - -i) echo "''${NAME:-unknown}";; - -r) echo "''${VERSION:-unknown}";; - esac - ''; - - binaries = { - "core" = "amazon-ssm-agent"; - "agent" = "ssm-agent-worker"; - "cli-main" = "ssm-cli"; - "worker" = "ssm-document-worker"; - "logging" = "ssm-session-logger"; - "sessionworker" = "ssm-session-worker"; - }; -in -buildGoModule rec { - pname = "amazon-ssm-agent"; - version = "3.2.1630.0"; - - src = fetchFromGitHub { - owner = "aws"; - repo = "amazon-ssm-agent"; - rev = "refs/tags/${version}"; - hash = "sha256-0tN0rBfz2VZ4UkYLFDGg9218O9vyyRT2Lrppu9TETao="; - }; - - vendorHash = null; - - patches = [ - # Some tests use networking, so we skip them. - ./0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch - - # They used constants from another package that I couldn't figure - # out how to resolve, so hardcoded the constants. - ./0002-version-gen-don-t-use-unnecessary-constants.patch - ]; - - nativeBuildInputs = [ makeWrapper ]; - - # See the list https://github.com/aws/amazon-ssm-agent/blob/3.2.1630.0/makefile#L120-L138 - # The updater is not built because it cannot work on NixOS - subPackages = [ - "core" - "agent" - "agent/cli-main" - "agent/framework/processor/executer/outofproc/worker" - "agent/session/logging" - "agent/framework/processor/executer/outofproc/sessionworker" - ]; - - ldflags = [ "-s" "-w" ]; - - postPatch = '' - printf "#!/bin/sh\ntrue" > ./Tools/src/checkstyle.sh - - substituteInPlace agent/platform/platform_unix.go \ - --replace "/usr/bin/uname" "${coreutils}/bin/uname" \ - --replace '"/bin", "hostname"' '"${nettools}/bin/hostname"' \ - --replace '"lsb_release"' '"${fake-lsb-release}/bin/lsb_release"' - - substituteInPlace agent/session/shell/shell_unix.go \ - --replace '"script"' '"${util-linux}/bin/script"' - - substituteInPlace agent/rebooter/rebooter_unix.go \ - --replace "/sbin/shutdown" "shutdown" - - echo "${version}" > VERSION - '' + lib.optionalString overrideEtc '' - substituteInPlace agent/appconfig/constants_unix.go \ - --replace '"/etc/amazon/ssm/"' '"${placeholder "out"}/etc/amazon/ssm/"' - '' + lib.optionalString stdenv.isLinux '' - substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \ - --replace /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode - ''; - - preBuild = '' - # Note: if this step fails, please patch the code to fix it! Please only skip - # tests if it is not feasible for the test to pass in a sandbox. - make quick-integtest - - make pre-release - make pre-build - ''; - - installPhase = '' - runHook preInstall - - declare -A map=(${builtins.concatStringsSep " " (lib.mapAttrsToList (name: value: "[\"${name}\"]=\"${value}\"") binaries)}) - - for key in ''${!map[@]}; do - install -D -m 0555 -T "$GOPATH/bin/''${key}" "$out/bin/''${map[''${key}]}" - done - - # These templates retain their `.template` extensions on installation. The - # amazon-ssm-agent.json.template is required as default configuration when an - # amazon-ssm-agent.json isn't present. Here, we retain the template to show - # we're using the default configuration. - - # seelog.xml isn't actually required to run, but it does ship as a template - # with debian packages, so it's here for reference. Future work in the nixos - # module could use this template and substitute a different log level. - - install -D -m 0444 -t $out/etc/amazon/ssm amazon-ssm-agent.json.template - install -D -m 0444 -T seelog_unix.xml $out/etc/amazon/ssm/seelog.xml.template - - runHook postInstall - ''; - - postFixup = '' - wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin - ''; - - passthru = { - updateScript = nix-update-script { }; - tests.version = testers.testVersion { - package = ssm-agent; - command = "amazon-ssm-agent --version"; - }; - }; - - meta = with lib; { - description = "Agent to enable remote management of your Amazon EC2 instance configuration"; - changelog = "https://github.com/aws/amazon-ssm-agent/releases/tag/${version}"; - homepage = "https://github.com/aws/amazon-ssm-agent"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ copumpkin manveru anthonyroussel ]; - - # Darwin support is broken - broken = stdenv.isDarwin; - }; -} |