From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 7EEFB138CD8 for ; Thu, 4 Jun 2015 18:51:29 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 96705E09CF; Thu, 4 Jun 2015 18:45:24 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 047AFE09CC for ; Thu, 4 Jun 2015 18:45:11 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 39E28340E85 for ; Thu, 4 Jun 2015 18:45:01 +0000 (UTC) Received: by oystercatcher.gentoo.org (Postfix, from userid 2323) id 14982AB7; Thu, 4 Jun 2015 18:44:52 +0000 (UTC) From: "Michael Palimaka (kensington)" To: gentoo-commits@lists.gentoo.org Reply-To: gentoo-dev@lists.gentoo.org, kensington@gentoo.org Subject: [gentoo-commits] gentoo-x86 commit in kde-apps/krdc/files: krdc-4.13.1-freerdp.patch X-VCS-Repository: gentoo-x86 X-VCS-Files: krdc-4.13.1-freerdp.patch X-VCS-Directories: kde-apps/krdc/files X-VCS-Committer: kensington X-VCS-Committer-Name: Michael Palimaka Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Message-Id: <20150604184452.14982AB7@oystercatcher.gentoo.org> Date: Thu, 4 Jun 2015 18:44:52 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: c06f4f04-9634-4d94-a099-1488b3d83d16 X-Archives-Hash: f1d6ca04e9c303bc3b66bb77d8234bc4 kensington 15/06/04 18:44:52 Added: krdc-4.13.1-freerdp.patch Log: Moved package from kde-base to kde-apps. (Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key 0x06B1F38DCA45A1EC!) Revision Changes Path 1.1 kde-apps/krdc/files/krdc-4.13.1-freerdp.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/kde-apps/krdc/files/krdc-4.13.1-freerdp.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/kde-apps/krdc/files/krdc-4.13.1-freerdp.patch?rev=1.1&content-type=text/plain Index: krdc-4.13.1-freerdp.patch =================================================================== Support >=free-rdp-1.1.0. https://git.reviewboard.kde.org/r/115059/ diff --git a/rdp/rdpview.cpp b/rdp/rdpview.cpp index 0d14e04691549e084b58501cd10ca2382ef25c63..9062ba5fa060284a679f0c9bc211ab7dd6972c0a 100644 --- a/rdp/rdpview.cpp +++ b/rdp/rdpview.cpp @@ -158,71 +158,58 @@ bool RdpView::start() width = this->parentWidget()->size().width(); height = this->parentWidget()->size().height(); } - arguments << "-g" << QString::number(width) + 'x' + QString::number(height); + arguments << "-decorations"; // put this option first so we can detect xfreerdp < 1.1 + arguments << "/w:" + QString::number(width); + arguments << "/h:" + QString::number(height); - arguments << "-k" << keymapToXfreerdp(m_hostPreferences->keyboardLayout()); + arguments << "/kbd:" + keymapToXfreerdp(m_hostPreferences->keyboardLayout()); if (!m_url.userName().isEmpty()) { // if username contains a domain, it needs to be set with another parameter if (m_url.userName().contains('\\')) { const QStringList splittedName = m_url.userName().split('\\'); - arguments << "-d" << splittedName.at(0); - arguments << "-u" << splittedName.at(1); + arguments << "/d:" + splittedName.at(0); + arguments << "/u:" + splittedName.at(1); } else { - arguments << "-u" << m_url.userName(); + arguments << "/u:" + m_url.userName(); } } else { - arguments << "-u" << ""; + arguments << "-u:"; } - if (!m_url.password().isNull()) - arguments << "-p" << m_url.password(); - - arguments << "-D"; // request the window has no decorations - arguments << "-X" << QString::number(m_container->winId()); - arguments << "-a" << QString::number((m_hostPreferences->colorDepth() + 1) * 8); - - switch (m_hostPreferences->sound()) { - case 1: - arguments << "-o"; - break; - case 0: - arguments << "--plugin" << "rdpsnd"; - break; - case 2: - default: - break; - } + arguments << "/parent-window:" + QString::number(m_container->winId()); + arguments << "/bpp:" + QString::number((m_hostPreferences->colorDepth() + 1) * 8); + arguments << "/audio-mode:" + m_hostPreferences->sound(); if (!m_hostPreferences->shareMedia().isEmpty()) { QStringList shareMedia; - shareMedia << "--plugin" << "rdpdr" << "--data" << "disk:media:" + m_hostPreferences->shareMedia() << "--"; + shareMedia << "/drive:media," + m_hostPreferences->shareMedia(); arguments += shareMedia; } QString performance; switch (m_hostPreferences->performance()) { case 0: - performance = 'm'; + performance = "modem"; break; case 1: - performance = 'b'; + performance = "broadband"; break; case 2: - performance = 'l'; + performance = "lan"; break; default: break; } - arguments << "-x" << performance; + arguments << "/network:" + performance; if (m_hostPreferences->console()) { - arguments << "-0"; + arguments << "/admin"; } if (m_hostPreferences->remoteFX()) { - arguments << "--rfx"; + arguments << "/rfx"; } if (!m_hostPreferences->extraOptions().isEmpty()) { @@ -233,16 +220,21 @@ bool RdpView::start() // krdc has no support for certificate management yet; it would not be possbile to connect to any host: // "The host key for example.com has changed" ... // "Add correct host key in ~/.freerdp/known_hosts to get rid of this message." - arguments << "--ignore-certificate"; + arguments << "/cert-ignore"; // clipboard sharing is activated in KRDC; user can disable it at runtime - arguments << "--plugin" << "cliprdr"; + arguments << "/clipboard"; - arguments << "-t" << QString::number(m_port); - arguments << m_host; + arguments << "/port:" + QString::number(m_port); + arguments << "/v:" + m_host; kDebug(5012) << "Starting xfreerdp with arguments:" << arguments; + //avoid printing the password in debug + if (!m_url.password().isNull()) { + arguments << "/p:" + m_url.password(); + } + setStatus(Connecting); connect(m_process, SIGNAL(error(QProcess::ProcessError)), SLOT(processError(QProcess::ProcessError))); @@ -302,7 +294,7 @@ void RdpView::connectionError() void RdpView::processError(QProcess::ProcessError error) { - kDebug(5012) << "processError:" << error; + kDebug(5012) << error; if (m_quitFlag) // do not try to show error messages while quitting (prevent crashes) return; @@ -319,33 +311,13 @@ void RdpView::processError(QProcess::ProcessError error) void RdpView::receivedStandardError() { const QString output(m_process->readAllStandardError()); - kDebug(5012) << "receivedStandardError:" << output; - QString line; - int i = 0; - while (!(line = output.section('\n', i, i)).isEmpty()) { - - // the following error is issued by freerdp because of a bug in freerdp 1.0.1 and below; - // see: https://github.com/FreeRDP/FreeRDP/pull/576 - //"X Error of failed request: BadWindow (invalid Window parameter) - // Major opcode of failed request: 7 (X_ReparentWindow) - // Resource id in failed request: 0x71303348 - // Serial number of failed request: 36 - // Current serial number in output stream: 36" - if (line.contains(QLatin1String("X_ReparentWindow"))) { - KMessageBox::error(0, i18n("The version of \"xfreerdp\" you are using is too old.\n" - "xfreerdp 1.0.2 or greater is required."), - i18n("RDP Failure")); - connectionError(); - return; - } - i++; - } + kDebug(5012) << output; } void RdpView::receivedStandardOutput() { const QString output(m_process->readAllStandardOutput()); - kDebug(5012) << "receivedStandardOutput:" << output; + kDebug(5012) << output; QString line; int i = 0; while (!(line = output.section('\n', i, i)).isEmpty()) { @@ -373,6 +345,14 @@ void RdpView::receivedStandardOutput() return; } + // we no longer support freerdp < 1.1, we only support versions with the new interface + if (line.contains(QLatin1String("invalid option: -decorations"))) { + KMessageBox::error(0, i18n("The version of \"xfreerdp\" you are using is too old.\n" + "xfreerdp 1.1 or greater is required."), + i18n("RDP Failure")); + connectionError(); + return; + } i++; } }