google-compute-engine: 20190124 -> 20200113.0 (#131761)

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
This commit is contained in:
Phillip Cloud 2021-08-26 23:21:48 -04:00 committed by GitHub
parent 6a9ecf048d
commit 1748291445
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,26 +3,85 @@
, buildPythonPackage
, bash
, bashInteractive
, systemd
, util-linux
, boto
, setuptools
, distro
, stdenv
, pythonOlder
, pytestCheckHook
}:
let
guest-configs = stdenv.mkDerivation rec {
pname = "guest-configs";
version = "20210702.00";
src = fetchFromGitHub {
owner = "GoogleCloudPlatform";
repo = "guest-configs";
rev = version;
sha256 = "1965kdrb1ig3z4qwzvyzx1fb4282ak5vgxcvvg5k9c759pzbc5nn";
};
buildInputs = [ bash ];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
# allows to install the package in `services.udev.packages` in NixOS
mkdir -p $out/lib/udev $out/bin
cp -r "src/lib/udev/rules.d" $out/lib/udev
cp "src/lib/udev/google_nvme_id" $out/bin
for rules in $out/lib/udev/*.rules; do
substituteInPlace "$rules" \
--replace /bin/sh "${bash}/bin/sh" \
--replace /bin/umount "${util-linux}/bin/umount" \
--replace /usr/bin/logger "${util-linux}/bin/logger"
done
# sysctl snippets will be used by google-compute-config.nix
cp -r "src/etc/sysctl.d" $out
patchShebangs $out/bin/*
runHook postInstall
'';
};
in
buildPythonPackage rec {
pname = "google-compute-engine";
version = "20190124";
version = "20200113.0";
src = fetchFromGitHub {
owner = "GoogleCloudPlatform";
repo = "compute-image-packages";
rev = version;
sha256 = "08cy0jd463kng6hwbd3nfldsp4dpd2lknlvdm88cq795wy0kh4wp";
rev = "506b9a0dbffec5620887660cd42c57b3cbbadba6";
sha256 = "0lmc426mvrajghpavhs6hwl19mgnnh08ziqx5yi15fzpnvwmb8vz";
};
buildInputs = [ bash ];
propagatedBuildInputs = [ boto setuptools distro ];
buildInputs = [ bash guest-configs ];
propagatedBuildInputs = [ (if pythonOlder "3.7" then boto else distro) setuptools ];
preBuild = ''
cd packages/python-google-compute-engine
'';
disabledTests = [
"testExtractInterfaceMetadata"
"testCallDhclientIpv6"
"testWriteConfig"
"testCreateInterfaceMapNetifaces"
"testCreateInterfaceMapSysfs"
"testGetNetworkInterface"
];
checkInputs = [ pytestCheckHook ];
postPatch = ''
for file in $(find google_compute_engine -type f); do
@ -32,33 +91,15 @@ buildPythonPackage rec {
--replace /sbin/hwclock "${util-linux}/bin/hwclock"
# SELinux tool ??? /sbin/restorecon
done
substituteInPlace google_config/udev/64-gce-disk-removal.rules \
--replace /bin/sh "${bash}/bin/sh" \
--replace /bin/umount "${util-linux}/bin/umount" \
--replace /usr/bin/logger "${util-linux}/bin/logger"
'';
postInstall = ''
# allows to install the package in `services.udev.packages` in NixOS
mkdir -p $out/lib/udev/rules.d
cp -r google_config/udev/*.rules $out/lib/udev/rules.d
# sysctl snippets will be used by google-compute-config.nix
mkdir -p $out/sysctl.d
cp google_config/sysctl/*.conf $out/sysctl.d
patchShebangs $out/bin/*
'';
doCheck = false;
pythonImportsCheck = [ "google_compute_engine" ];
meta = with lib; {
description = "Google Compute Engine tools and services";
homepage = "https://github.com/GoogleCloudPlatform/compute-image-packages";
license = licenses.asl20;
maintainers = with maintainers; [ zimbatm ];
maintainers = with maintainers; [ cpcloud zimbatm ];
platforms = platforms.linux;
};
}