Przeglądaj źródła

add flexible ssh-askpass support

Ralf S. Engelschall 24 lat temu
rodzic
commit
82d71497c0
2 zmienionych plików z 28 dodań i 1 usunięć
  1. 6 1
      openssh/openssh.spec
  2. 22 0
      openssh/ssh-askpass

+ 6 - 1
openssh/openssh.spec

@@ -36,7 +36,7 @@ Distribution: OpenPKG [REL]
 Group:        Cryptography
 License:      BSD
 Version:      3.0.2p1
-Release:      20020110
+Release:      20020120
 
 #   list of sources
 Source0:      ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz
@@ -44,6 +44,7 @@ Source1:      fakesyslog.tar.gz
 Source2:      rc.openssh
 Source3:      sshd_config
 Source4:      ssh_config
+Source5:      ssh-askpass
 
 #   build information
 Prefix:       %{l_prefix}
@@ -137,6 +138,10 @@ AutoReqProv:  no
     strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2> /dev/null || true
     strip $RPM_BUILD_ROOT%{l_prefix}/libexec/openssh/* 2> /dev/null || true
 
+    #   install ssh-askpass wrapper
+    %{l_shtool} install -c -m 755 -e "s;@l_prefix@;%{l_prefix};g" \
+        %{SOURCE ssh-askpass} $RPM_BUILD_ROOT%{l_prefix}/libexec/openssh/
+
     #   make sure the state directory exists
     %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/openssh
 

+ 22 - 0
openssh/ssh-askpass

@@ -0,0 +1,22 @@
+#!/bin/sh
+##
+##  ssh-askpass -- Internal OpenSSH wrapper for ssh-askpass
+##
+
+ssh_askpass=""
+if [ ".$SSH_ASKPASS" != . ]; then
+    ssh_askpass="$SSH_ASKPASS"
+else
+    for p in @l_prefix@ `echo $PATH | sed -e 's/:/ /g'`; do
+        if [ -f $p/ssh-askpass ]; then
+            ssh_askpass="$p/ssh-askpass"
+            break
+        fi
+    done
+fi
+if [ ".$ssh_askpass" = . ]; then
+    echo "ssh:ERROR: neither \"ssh-askpass\" installed nor \$SSH_ASKPASS provided" 1>&2
+    exit 1
+fi
+exec $ssh_askpass "$@"
+