|
|
|
@ -3,85 +3,26 @@ |
|
|
|
|
, 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 = "20200113.0"; |
|
|
|
|
version = "20190124"; |
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "GoogleCloudPlatform"; |
|
|
|
|
repo = "compute-image-packages"; |
|
|
|
|
rev = "506b9a0dbffec5620887660cd42c57b3cbbadba6"; |
|
|
|
|
sha256 = "0lmc426mvrajghpavhs6hwl19mgnnh08ziqx5yi15fzpnvwmb8vz"; |
|
|
|
|
rev = version; |
|
|
|
|
sha256 = "08cy0jd463kng6hwbd3nfldsp4dpd2lknlvdm88cq795wy0kh4wp"; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
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 ]; |
|
|
|
|
buildInputs = [ bash ]; |
|
|
|
|
propagatedBuildInputs = [ boto setuptools distro ]; |
|
|
|
|
|
|
|
|
|
postPatch = '' |
|
|
|
|
for file in $(find google_compute_engine -type f); do |
|
|
|
@ -91,15 +32,33 @@ 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; [ cpcloud zimbatm ]; |
|
|
|
|
maintainers = with maintainers; [ zimbatm ]; |
|
|
|
|
platforms = platforms.linux; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|