Skip to content

Commit

Permalink
amazon-ec2-net-utils: init at 2.5.1
Browse files Browse the repository at this point in the history
  • Loading branch information
commiterate committed Nov 19, 2024
1 parent 9bb6359 commit 8ed8c0f
Showing 1 changed file with 115 additions and 0 deletions.
115 changes: 115 additions & 0 deletions pkgs/by-name/am/amazon-ec2-net-utils/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
{
lib,
bash,
coreutils,
curl,
fetchFromGitHub,
gnugrep,
gnused,
installShellFiles,
iproute2,
makeWrapper,
nix-update-script,
stdenv,
systemd,
}:

stdenv.mkDerivation rec {
pname = "amazon-ec2-net-utils";
version = "2.5.1";

src = fetchFromGitHub {
owner = "amazonlinux";
repo = "amazon-ec2-net-utils";
rev = "refs/tags/v${version}";
hash = "sha256-Nmrhu3j3JZA7GeJsLwOfdFKfyPYl1vFiH5Zr372eAXk=";
};

strictDeps = true;

nativeBuildInputs = [
installShellFiles
makeWrapper
];

buildInputs = [
bash
];

outputs = [
"out"
"man"
];

# See https://github.com/amazonlinux/amazon-ec2-net-utils/blob/v2.5.1/GNUmakefile#L26-L37.
installPhase = ''
mkdir $out
for file in bin/*.sh; do
install -D -m 755 "$file" $out/bin/$(basename --suffix ".sh" "$file")
substituteInPlace $out/bin/$(basename --suffix ".sh" "$file") \
--replace-fail AMAZON_EC2_NET_UTILS_LIBDIR $out/share/amazon-ec2-net-utils
done
substituteInPlace $out/bin/setup-policy-routes \
--replace-fail /lib/systemd ${systemd}/lib/systemd
wrapProgram $out/bin/setup-policy-routes \
--prefix PATH : ${
lib.makeBinPath [
coreutils
# bin/setup-policy-roots.sh sources lib/lib.sh which needs these.
#
# lib/lib.sh isn't executable so we can't use it with wrapProgram.
curl
gnugrep
gnused
iproute2
systemd
]
}
for file in lib/*.sh; do
install -D -m 644 -t $out/share/amazon-ec2-net-utils "$file"
done
substituteInPlace $out/share/amazon-ec2-net-utils/lib.sh \
--replace-fail /usr/lib/systemd $out/lib/systemd
for file in udev/*.rules; do
install -D -m 644 -t $out/lib/udev/rules.d "$file"
done
substituteInPlace $out/lib/udev/rules.d/99-vpc-policy-routes.rules \
--replace-fail /usr/bin/systemctl ${systemd}/bin/systemctl
for file in systemd/network/*.network; do
install -D -m 644 -t $out/lib/systemd/network "$file"
done
for file in systemd/system/*.{service,timer}; do
install -D -m 644 -t $out/lib/systemd/system "$file"
done
substituteInPlace $out/lib/systemd/system/[email protected] \
--replace-fail /usr/bin/setup-policy-routes $out/bin/setup-policy-routes
substituteInPlace $out/lib/systemd/system/[email protected] \
--replace-fail /usr/bin/setup-policy-routes $out/bin/setup-policy-routes
installManPage doc/*.8
'';

passthru = {
updateScript = nix-update-script { };
};

meta = {
description = "Contains a set of utilities for managing elastic network interfaces on Amazon EC2";
homepage = "https://github.com/amazonlinux/amazon-ec2-net-utils";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
# TODO: Find maintainer(s).
maintainers = with lib.maintainers; [ ];
};
}

0 comments on commit 8ed8c0f

Please sign in to comment.