<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/092dd0344ed7b154d11fbffe4d3229119c6f3841">https://github.com/macports/macports-ports/commit/092dd0344ed7b154d11fbffe4d3229119c6f3841</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 092dd0344ed openssh: restore launchd support in ssh-agent
</span>092dd0344ed is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 092dd0344ed7b154d11fbffe4d3229119c6f3841
</span>Author: Bill Neubauer <bill.neubauer@gmail.com>
AuthorDate: Mon Dec 21 08:27:27 2020 -0800

<span style='display:block; white-space:pre;color:#404040;'>    openssh: restore launchd support in ssh-agent
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * update to revision 1
</span><span style='display:block; white-space:pre;color:#404040;'>    * restore partial contents of previously deleted patch
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/61888
</span>---
 net/openssh/Portfile          |   9 ++-
 net/openssh/files/agent.patch | 152 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 160 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/openssh/Portfile b/net/openssh/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ae6060f9355..3072530c648 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/openssh/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/openssh/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ PortGroup           compiler_blacklist_versions 1.0
</span> 
 name                openssh
 version             8.4p1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> categories          net
 platforms           darwin
 maintainers         nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,6 +47,7 @@ if {${name} eq ${subport}} {
</span>     # the HPN patch needs this, so rewrite all other patches to support it, too
     patch.args          -p1
     patchfiles          launchd.patch \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                        agent.patch \
</span>                         pam.patch \
                         patch-sandbox-darwin.c-apple-sandbox-named-external.diff \
                         patch-sshd.c-apple-sandbox-named-external.diff \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -65,6 +66,8 @@ if {${name} eq ${subport}} {
</span>     # - macports-config.patch
     #   Changes the default configuration from the upstream-provided one by popular
     #   request.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # - agent.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #   Adds -l flag to ssh-agent to work with launchd.
</span> 
     post-patch {
         # reinplace prefix in path to sandbox definition added by
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -81,6 +84,10 @@ if {${name} eq ${subport}} {
</span>     # Use Apple's sandboxing feature
     configure.cppflags-append   -D__APPLE_SANDBOX_NAMED_EXTERNAL__ \
                                 -D__APPLE_API_STRICT_CONFORMANCE
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Support Apple's launchd in ssh-agent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cppflags-append -D__APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.ldflags-append  -Wl,-search_paths_first
     configure.args      --with-ssl-dir=${prefix} \
                         --sysconfdir=${prefix}/etc/ssh \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/openssh/files/agent.patch b/net/openssh/files/agent.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..32ff7767569
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/openssh/files/agent.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,152 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ssh-agent.c  2019-10-09 02:31:03.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ssh-agent.c  2019-11-02 05:54:35.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -70,6 +70,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <time.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <launch.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef HAVE_UTIL_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <util.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1088,6 +1092,9 @@ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ main(int ac, char **av)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int c_flag = 0, d_flag = 0, D_flag = 0, k_flag = 0, s_flag = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #ifdef __APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int l_flag = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int sock, fd, ch, result, saved_errno;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char *shell, *format, *pidstr, *agentsocket = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef HAVE_SETRLIMIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1119,7 +1126,11 @@ main(int ac, char **av)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   __progname = ssh_get_progname(av[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   seed_rng();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  while ((ch = getopt(ac, av, "cDdklsE:a:O:P:t:")) != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   while ((ch = getopt(ac, av, "cDdksE:a:O:P:t:")) != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           switch (ch) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           case 'E':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   fingerprint_hash = ssh_digest_alg_by_name(optarg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1139,6 +1150,11 @@ main(int ac, char **av)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           fatal("-P option already specified");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   pkcs11_whitelist = xstrdup(optarg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case 'l':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  l_flag++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           case 's':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (c_flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           usage();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1241,6 +1257,75 @@ main(int ac, char **av)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * Create socket early so it will exist before command gets run from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * the parent.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (l_flag) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if ((defined (MAC_OS_X_VERSION_10_11)) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          int *fds = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          size_t count = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          result = launch_activate_socket("Listeners", &fds, &count);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (result != 0 || fds == NULL || count < 1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  errno = result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  perror("launch_activate_socket()");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          size_t i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          for (i = 0; i < count; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  new_socket(AUTH_SOCKET, fds[i]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (fds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  free(fds);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          goto skip2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else /* ((defined (MAC_OS_X_VERSION_10_11)) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11)) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          launch_data_t resp, msg, tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          size_t listeners_i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          msg = launch_data_new_string(LAUNCH_KEY_CHECKIN);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          resp = launch_msg(msg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (NULL == resp) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  perror("launch_msg");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          launch_data_free(msg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          switch (launch_data_get_type(resp)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case LAUNCH_DATA_ERRNO:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  errno = launch_data_get_errno(resp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  perror("launch_msg response");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case LAUNCH_DATA_DICTIONARY:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  fprintf(stderr, "launch_msg unknown response");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          tmp = launch_data_dict_lookup(resp, LAUNCH_JOBKEY_SOCKETS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (NULL == tmp) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  fprintf(stderr, "no sockets\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          tmp = launch_data_dict_lookup(tmp, "Listeners");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (NULL == tmp) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  fprintf(stderr, "no known listeners\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          for (listeners_i = 0; listeners_i < launch_data_array_get_count(tmp); listeners_i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  launch_data_t obj_at_ind = launch_data_array_get_index(tmp, listeners_i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  new_socket(AUTH_SOCKET, launch_data_get_fd(obj_at_ind));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          launch_data_free(resp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* ((defined (MAC_OS_X_VERSION_10_11)) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11)) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   prev_mask = umask(0177);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sock = unix_listener(socket_name, SSH_LISTEN_BACKLOG, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (sock < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1248,7 +1333,18 @@ main(int ac, char **av)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           *socket_name = '\0'; /* Don't unlink any existing file */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           cleanup_exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   umask(prev_mask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if ((!(defined (MAC_OS_X_VERSION_10_11))) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (l_flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          goto skip2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* ((!(defined (MAC_OS_X_VERSION_10_11))) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11)) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* defined (__APPLE_LAUNCHD__) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * Fork, and have the parent execute the command, if any, or present
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1326,6 +1422,9 @@ skip:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pkcs11_init(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   new_socket(AUTH_SOCKET, sock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE_LAUNCHD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++skip2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ac > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           parent_alive_interval = 10;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   idtab_init();
</span></pre><pre style='margin:0'>

</pre>