• [gentoo-dev] [PATCH 2/4] cvs.eclass: Rewrite the ssh wrapper script in

    From =?UTF-8?q?Ulrich=20M=C3=BCller?=@21:1/5 to All on Thu Oct 17 08:00:01 2024
    OpenSSH version 8.4 and later supports the SSH_ASKPASS_REQUIRE
    environment variable which allows to force the use of the SSH_ASKPASS
    program. This makes detaching the process from its controlling terminal (TIOCNOTTY ioctl) unnecessary, as well as setting the DISPLAY variable.

    Signed-off-by: Ulrich Müller <ulm@gentoo.org>
    ---
    eclass/cvs.eclass | 62 +++++++++++++----------------------------------
    1 file changed, 17 insertions(+), 45 deletions(-)

    diff --git a/eclass/cvs.eclass b/eclass/cvs.eclass
    index ec0ad2ec8f71..1289ee54cc3b 100644
    --- a/eclass/cvs.eclass
    +++ b/eclass/cvs.eclass
    @@ -192,7 +192,7 @@ if [[ ${ECVS_AUTH} == "ext" ]] ; then
    if [[ ${CVS_RSH} != "ssh" ]] ; then
    die "Support for ext auth with clients other than ssh has not been implemented yet"
    fi
    - BDEPEND+=" net-misc/openssh"
    + BDEPEND+=" >=net-misc/openssh-8.4"
    fi

    # @FUNCTION: cvs_fetch
    @@ -362,40 +362,9 @@ cvs_fetch() {
    # Hack to support SSH password authentication

    if [[ ${CVS_RSH} == "ssh" ]] ; then
    - # Force SSH to use SSH_ASKPASS by creating python wrapper
    -
    - local -x CVS_RSH="${T}/cvs_sshwrapper"
    - cat > "${CVS_RSH}" <<EOF || die -#!${EPREFIX}/usr/bin/python
    -import fcntl
    -import os
    -import sys
    -try:
    - fd = os.open('/dev/tty', 2)
    - TIOCNOTTY=0x5422
    - try:
    - fcntl.ioctl(fd, TIOCNOTTY)
    - except:
    -