deskutils/kdeconnect-kde: use security/sshpass to pass passwords to sshfs

On FreeBSD sshfs does not seem to support the "-o password_stdin" option.
Work around this limitation by using security/sshpass. This should be considered
a temporary work around until a better solution is found.

With this fix sharing of files from the device should finally work.

PR:             25303
Submitted by:   Stefan Rumetshofer <sterum77@gmail.com>
This commit is contained in:
Tobias C. Berner 2019-02-10 21:04:35 +00:00
parent d2d9303975
commit b188d964ed
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=492644
2 changed files with 25 additions and 2 deletions

View File

@ -2,7 +2,7 @@
PORTNAME= kdeconnect-kde
DISTVERSION= 1.3.3
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= deskutils kde
MASTER_SITES= KDE/stable/kdeconnect/${DISTVERSION}/src/
DIST_SUBDIR= KDE
@ -15,7 +15,8 @@ LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libfakekey.so:x11/libfakekey \
libqca-qt5.so:devel/qca@qt5
RUN_DEPENDS= sshfs:sysutils/fusefs-sshfs
RUN_DEPENDS= sshpass:security/sshpass \
sshfs:sysutils/fusefs-sshfs
CONFLICTS_INSTALL= kdeconnect-kde-0.7* kdeconnect-kde-kde4-0.7.*

View File

@ -0,0 +1,22 @@
--- plugins/sftp/mounter.cpp.orig 2018-11-06 14:32:08.000000000 +0100
+++ plugins/sftp/mounter.cpp 2019-01-29 18:43:47.324002000 +0100
@@ -139,7 +139,7 @@
<< QStringLiteral("-o") << QStringLiteral("gid=") + QString::number(getgid())
<< QStringLiteral("-o") << QStringLiteral("reconnect")
<< QStringLiteral("-o") << QStringLiteral("ServerAliveInterval=30")
- << QStringLiteral("-o") << QStringLiteral("password_stdin")
+ << QStringLiteral("-o") << QStringLiteral("ssh_command=sshpass -p ") + np.get<QString>("password").toLatin1() + (" ssh")
;
m_proc->setProgram(program, arguments);
@@ -148,8 +148,8 @@
m_proc->start();
//qCDebug(KDECONNECT_PLUGIN_SFTP) << "Passing password: " << np.get<QString>("password").toLatin1();
- m_proc->write(np.get<QString>(QStringLiteral("password")).toLatin1());
- m_proc->write("\n");
+ //m_proc->write(np.get<QString>(QStringLiteral("password")).toLatin1());
+ // m_proc->write("\n");
}