anchor.diff:      '' + (optionalString cfg.agent.enableSSHSupport ''
         # SSH agent protocol doesn't support changing TTYs, so bind the agent
         # to every new TTY.
  -      ${pkgs.gnupg}/bin/gpg-connect-agent --quiet updatestartuptty /bye > /dev/null
  +      ${cfg.package}/bin/gpg-connect-agent --quiet updatestartuptty /bye > /dev/null
       '');
   
       environment.extraInit = mkIf cfg.agent.enableSSHSupport ''
         if [ -z "$SSH_AUTH_SOCK" ]; then
  -        export SSH_AUTH_SOCK=$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)
  +        export SSH_AUTH_SOCK=$(${cfg.package}/bin/gpgconf --list-dirs agent-ssh-socket)
         fi
       '';
   
  
positive.code: {
  
    options.programs.gnupg = {
      agent.enable = mkOption {
        type = types.bool;
        default = false;
  
negative.code:       wantedBy = [ "sockets.target" ];
      };
  
      systemd.packages = [ cfg.package ];
  
      environment.interactiveShellInit = ''
        # Bind gpg-agent to this TTY if gpg commands are used.
  