cvs.eclass: New eclass variable ECVS_SSH_EXTRA_OPTS

This allows passing additional options to ssh.

Signed-off-by: Ulrich Müller <ulm@gentoo.org>
This commit is contained in:
Ulrich Müller 2024-10-14 12:45:24 +02:00
parent d78b4c787b
commit 2a3ae6dbbb
No known key found for this signature in database
GPG Key ID: 5188335088415E2E

View File

@ -174,6 +174,12 @@ _CVS_ECLASS=1
# WARNING: If a SSH host key is not specified using this variable, the
# remote host key will not be verified.
# @ECLASS_VARIABLE: ECVS_SSH_EXTRA_OPTS
# @DEFAULT_UNSET
# @DESCRIPTION:
# If SSH is used for "ext" authentication, this array variable can be
# used to pass additional options to the SSH command.
# @ECLASS_VARIABLE: ECVS_CLEAN
# @DEFAULT_UNSET
# @DESCRIPTION:
@ -376,6 +382,11 @@ cvs_fetch() {
echo "${ECVS_SSH_HOST_KEY}" > "${known_hosts_file}" || die
fi
local i quoted_opts=()
for i in "${!ECVS_SSH_EXTRA_OPTS[@]}"; do
printf -v "quoted_opts[i]" "%q" "${ECVS_SSH_EXTRA_OPTS[i]}"
done
# Create a wrapper script to pass additional options to SSH
# Disable X11 forwarding which causes .xauth access violations
@ -387,6 +398,7 @@ cvs_fetch() {
-oUserKnownHostsFile="${known_hosts_file}" \\
-oForwardX11=no \\
-oClearAllForwardings=yes \\
${quoted_opts[*]} \\
"\$@"
EOF
chmod a+x "${CVS_RSH}" || die