chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / wa / waagent / package.nix
blob0f643690921f9eedc0befdc98e7715091a2b3230
2   coreutils,
3   fetchFromGitHub,
4   lib,
5   python39,
6   bash,
7 }:
9 let
10   # the latest python version that waagent test against according to https://github.com/Azure/WALinuxAgent/blob/28345a55f9b21dae89472111635fd6e41809d958/.github/workflows/ci_pr.yml#L75
11   python = python39;
14 python.pkgs.buildPythonApplication rec {
15   pname = "waagent";
16   version = "2.11.1.12";
17   src = fetchFromGitHub {
18     owner = "Azure";
19     repo = "WALinuxAgent";
20     rev = "refs/tags/v${version}";
21     hash = "sha256-1MaPjz9hWb/kJxuyJAUWPk065vpSyx2jq1ZSlDB4yFo=";
22   };
23   patches = [
24     # Suppress the following error when waagent tries to configure sshd:
25     # Read-only file system: '/etc/ssh/sshd_config'
26     ./dont-configure-sshd.patch
27   ];
28   doCheck = false;
30   # Replace tools used in udev rules with their full path and ensure they are present.
31   postPatch = ''
32     substituteInPlace config/66-azure-storage.rules \
33       --replace-fail readlink ${coreutils}/bin/readlink \
34       --replace-fail cut ${coreutils}/bin/cut \
35       --replace-fail /bin/sh ${bash}/bin/sh
36     substituteInPlace config/99-azure-product-uuid.rules \
37       --replace-fail "/bin/chmod" "${coreutils}/bin/chmod"
38   '';
40   propagatedBuildInputs = [ python.pkgs.distro ];
42   # The udev rules are placed to the wrong place.
43   # Move them to their default location.
44   # Keep $out/${python.sitePackages}/usr/sbin/waagent where it is.
45   # waagent re-executes itself in UpdateHandler.run_latest, even if autoupdate
46   # is disabled, manually spawning a python interprever with argv0.
47   # We can't use the default python program wrapping mechanism, as it uses
48   # wrapProgram which doesn't support --argv0.
49   # So instead we make our own wrapper in $out/bin/waagent, setting PATH and
50   # PYTHONPATH.
51   # PATH contains our PYTHON, and PYTHONPATH stays set, so this should somewhat
52   # still work.
53   preFixup = ''
54     mv $out/${python.sitePackages}/etc $out/
56     buildPythonPath
58     mkdir -p $out/bin
59     makeWrapper $out/${python.sitePackages}/usr/sbin/waagent $out/bin/waagent \
60       --set PYTHONPATH $PYTHONPATH \
61       --prefix PATH : $program_PATH \
62       --argv0 $out/${python.sitePackages}/usr/sbin/waagent
63   '';
65   dontWrapPythonPrograms = false;
67   meta = {
68     description = "Microsoft Azure Linux Agent (waagent)";
69     mainProgram = "waagent";
70     longDescription = ''
71       The Microsoft Azure Linux Agent (waagent)
72       manages Linux provisioning and VM interaction with the Azure
73       Fabric Controller'';
74     homepage = "https://github.com/Azure/WALinuxAgent";
75     license = with lib.licenses; [ asl20 ];
76   };