diff options
Diffstat (limited to 'pkgs/tools/virtualization/google-guest-oslogin/default.nix')
-rw-r--r-- | pkgs/tools/virtualization/google-guest-oslogin/default.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/pkgs/tools/virtualization/google-guest-oslogin/default.nix b/pkgs/tools/virtualization/google-guest-oslogin/default.nix new file mode 100644 index 00000000000..6dceeecfd6e --- /dev/null +++ b/pkgs/tools/virtualization/google-guest-oslogin/default.nix @@ -0,0 +1,58 @@ +{ stdenv +, lib +, bashInteractive +, curl +, fetchFromGitHub +, json_c +, nixosTests +, pam +}: + +stdenv.mkDerivation rec { + pname = "google-guest-oslogin"; + version = "20211213.00"; + + src = fetchFromGitHub { + owner = "GoogleCloudPlatform"; + repo = "guest-oslogin"; + rev = version; + sha256 = "sha256-8RuLYdWfk8zPfoF06r5E/6eHQ7tziZbgGhZlLCUW600="; + }; + + postPatch = '' + # change sudoers dir from /var/google-sudoers.d to /run/google-sudoers.d (managed through systemd-tmpfiles) + substituteInPlace src/pam/pam_oslogin_admin.cc --replace /var/google-sudoers.d /run/google-sudoers.d + # fix "User foo not allowed because shell /bin/bash does not exist" + substituteInPlace src/include/compat.h --replace /bin/bash /run/current-system/sw/bin/bash + ''; + + buildInputs = [ curl.dev pam json_c ]; + + NIX_CFLAGS_COMPILE = [ "-I${json_c.dev}/include/json-c" ]; + + makeFlags = [ + "VERSION=${version}" + "PREFIX=$(out)" + "MANDIR=$(out)/share/man" + "SYSTEMDDIR=$(out)/etc/systemd/system" + "PRESETDIR=$(out)/etc/systemd/system-preset" + ]; + + postInstall = '' + sed -i "s,/usr/bin/,$out/bin/,g" $out/etc/systemd/system/google-oslogin-cache.service + ''; + + enableParallelBuilding = true; + + passthru.tests = { + inherit (nixosTests) google-oslogin; + }; + + meta = with lib; { + homepage = "https://github.com/GoogleCloudPlatform/compute-image-packages"; + description = "OS Login Guest Environment for Google Compute Engine"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ flokli ]; + }; +} |