Date: Friday, January 16, 2015 @ 07:42:39 Author: fyan Revision: 229294
upgpkg: kdenetwork-krdc 14.12.1-1 Modified: kdenetwork-krdc/trunk/PKGBUILD Deleted: kdenetwork-krdc/trunk/freerdp12.patch -----------------+ PKGBUILD | 14 -- freerdp12.patch | 345 ------------------------------------------------------ 2 files changed, 6 insertions(+), 353 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-01-16 06:39:14 UTC (rev 229293) +++ PKGBUILD 2015-01-16 06:42:39 UTC (rev 229294) @@ -1,9 +1,10 @@ # $Id$ -# Maintainer: Andrea Scarpino <[email protected]> +# Maintainer: Felix Yan <[email protected]> +# Contributor: Andrea Scarpino <[email protected]> pkgname=kdenetwork-krdc -pkgver=4.14.3 -pkgrel=2 +pkgver=14.12.1 +pkgrel=1 pkgdesc='Remote Desktop Client' url='http://kde.org/applications/internet/krdc/' arch=('i686' 'x86_64') @@ -14,16 +15,13 @@ optdepends=('libvncserver: VNC support' 'freerdp: RDP support' 'kdebase-keditbookmarks: to edit bookmarks') -source=("http://download.kde.org/stable/${pkgver}/src/krdc-${pkgver}.tar.xz" - 'freerdp12.patch') -sha1sums=('e18b48757ab35b51520fd2972e498fc24f6b62ad' - 'fe7478f60d9b4d8fa71cec104669abb6802efc1a') +source=("http://download.kde.org/stable/applications/${pkgver}/src/krdc-${pkgver}.tar.xz") +sha1sums=('aec1fc1f8ac1102a4dea9f120655eef7a6f13050') prepare() { mkdir build cd krdc-${pkgver} - patch -p1 -i "${srcdir}"/freerdp12.patch } build() { Deleted: freerdp12.patch =================================================================== --- freerdp12.patch 2015-01-16 06:39:14 UTC (rev 229293) +++ freerdp12.patch 2015-01-16 06:42:39 UTC (rev 229294) @@ -1,345 +0,0 @@ -From: Tony Murray <[email protected]> -Date: Fri, 02 Jan 2015 15:36:40 +0000 -Subject: Support for FreeRDP 1.0.2 and newer. Including 1.1 and 1.2. -X-Git-Url: http://quickgit.kde.org/?p=krdc.git&a=commitdiff&h=a9e514b29b5611e01c2c024157d36eaf416e0c5a ---- -Support for FreeRDP 1.0.2 and newer. Including 1.1 and 1.2. - -FEATURE: -BUG: 341284 -FIXED-IN: 14.12.1 -REVIEW: 115059 ---- - - ---- a/rdp/rdpview.cpp -+++ b/rdp/rdpview.cpp -@@ -146,102 +146,205 @@ - } - } - -+ // Check the version of FreeRDP so we can use pre-1.1 switches if needed -+ QProcess *xfreeRDPVersionCheck = new QProcess(this); -+ xfreeRDPVersionCheck->start("xfreerdp", QStringList("--version")); -+ xfreeRDPVersionCheck->waitForFinished(); -+ QString versionOutput = xfreeRDPVersionCheck->readAllStandardOutput(); -+ xfreeRDPVersionCheck->deleteLater(); -+ - m_process = new QProcess(m_container); - - QStringList arguments; - -- int width, height; -- if (m_hostPreferences->width() > 0) { -- width = m_hostPreferences->width(); -- height = m_hostPreferences->height(); -+ if (versionOutput.contains(QLatin1String(" 1.0"))) { -+ kDebug(5012) << "Use FreeRDP 1.0 compatible arguments"; -+ -+ int width, height; -+ if (m_hostPreferences->width() > 0) { -+ width = m_hostPreferences->width(); -+ height = m_hostPreferences->height(); -+ } else { -+ width = this->parentWidget()->size().width(); -+ height = this->parentWidget()->size().height(); -+ } -+ arguments << "-g" << QString::number(width) + 'x' + QString::number(height); -+ -+ arguments << "-k" << 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); -+ } else { -+ arguments << "-u" << m_url.userName(); -+ } -+ } else { -+ arguments << "-u" << ""; -+ } -+ -+ 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; -+ } -+ -+ if (!m_hostPreferences->shareMedia().isEmpty()) { -+ QStringList shareMedia; -+ shareMedia << "--plugin" << "rdpdr" << "--data" << "disk:media:" + m_hostPreferences->shareMedia() << "--"; -+ arguments += shareMedia; -+ } -+ -+ QString performance; -+ switch (m_hostPreferences->performance()) { -+ case 0: -+ performance = 'm'; -+ break; -+ case 1: -+ performance = 'b'; -+ break; -+ case 2: -+ performance = 'l'; -+ break; -+ default: -+ break; -+ } -+ -+ arguments << "-x" << performance; -+ -+ if (m_hostPreferences->console()) { -+ arguments << "-0"; -+ } -+ -+ if (m_hostPreferences->remoteFX()) { -+ arguments << "--rfx"; -+ } -+ -+ if (!m_hostPreferences->extraOptions().isEmpty()) { -+ const QStringList additionalArguments = KShell::splitArgs(m_hostPreferences->extraOptions()); -+ arguments += additionalArguments; -+ } -+ -+ // 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"; -+ -+ // clipboard sharing is activated in KRDC; user can disable it at runtime -+ arguments << "--plugin" << "cliprdr"; -+ -+ arguments << "-t" << QString::number(m_port); -+ arguments << m_host; -+ -+ kDebug(5012) << "Starting xfreerdp with arguments: " << arguments.join(" "); -+ -+ arguments.removeLast(); // host must be last, remove and re-add it after the password -+ if (!m_url.password().isNull()) -+ arguments << "-p" << m_url.password(); -+ arguments << m_host; -+ - } else { -- width = this->parentWidget()->size().width(); -- height = this->parentWidget()->size().height(); -- } -- arguments << "-g" << QString::number(width) + 'x' + QString::number(height); -- -- arguments << "-k" << 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); -+ kDebug(5012) << "Use FreeRDP 1.1+ compatible arguments"; -+ -+ int width, height; -+ if (m_hostPreferences->width() > 0) { -+ width = m_hostPreferences->width(); -+ height = m_hostPreferences->height(); - } else { -- arguments << "-u" << m_url.userName(); -- } -- } else { -- 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; -- } -- -- if (!m_hostPreferences->shareMedia().isEmpty()) { -- QStringList shareMedia; -- shareMedia << "--plugin" << "rdpdr" << "--data" << "disk:media:" + m_hostPreferences->shareMedia() << "--"; -- arguments += shareMedia; -- } -- -- QString performance; -- switch (m_hostPreferences->performance()) { -- case 0: -- performance = 'm'; -- break; -- case 1: -- performance = 'b'; -- break; -- case 2: -- performance = 'l'; -- break; -- default: -- break; -- } -- -- arguments << "-x" << performance; -- -- if (m_hostPreferences->console()) { -- arguments << "-0"; -- } -- -- if (m_hostPreferences->remoteFX()) { -- arguments << "--rfx"; -- } -- -- if (!m_hostPreferences->extraOptions().isEmpty()) { -- const QStringList additionalArguments = KShell::splitArgs(m_hostPreferences->extraOptions()); -- arguments += additionalArguments; -- } -- -- // 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"; -- -- // clipboard sharing is activated in KRDC; user can disable it at runtime -- arguments << "--plugin" << "cliprdr"; -- -- arguments << "-t" << QString::number(m_port); -- arguments << m_host; -- -- kDebug(5012) << "Starting xfreerdp with arguments:" << arguments; -+ width = this->parentWidget()->size().width(); -+ height = this->parentWidget()->size().height(); -+ } -+ arguments << "-decorations"; -+ arguments << "/w:" + QString::number(width); -+ arguments << "/h:" + QString::number(height); -+ -+ 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); -+ } else { -+ arguments << "/u:" + m_url.userName(); -+ } -+ } else { -+ arguments << "/u:"; -+ } -+ -+ arguments << "/parent-window:" + QString::number(m_container->winId()); -+ arguments << "/bpp:" + QString::number((m_hostPreferences->colorDepth() + 1) * 8); -+ arguments << "/audio-mode:" + QString::number(m_hostPreferences->sound()); -+ -+ if (!m_hostPreferences->shareMedia().isEmpty()) { -+ QStringList shareMedia; -+ shareMedia << "/drive:media," + m_hostPreferences->shareMedia(); -+ arguments += shareMedia; -+ } -+ -+ QString performance; -+ switch (m_hostPreferences->performance()) { -+ case 0: -+ performance = "modem"; -+ break; -+ case 1: -+ performance = "broadband"; -+ break; -+ case 2: -+ performance = "lan"; -+ break; -+ default: -+ break; -+ } -+ -+ arguments << "/network:" + performance; -+ -+ if (m_hostPreferences->console()) { -+ arguments << "/admin"; -+ } -+ -+ if (m_hostPreferences->remoteFX()) { -+ arguments << "/rfx"; -+ } -+ -+ if (!m_hostPreferences->extraOptions().isEmpty()) { -+ const QStringList additionalArguments = KShell::splitArgs(m_hostPreferences->extraOptions()); -+ arguments += additionalArguments; -+ } -+ -+ // 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 << "/cert-ignore"; -+ -+ // clipboard sharing is activated in KRDC; user can disable it at runtime -+ arguments << "+clipboard"; -+ -+ arguments << "/port:" + QString::number(m_port); -+ arguments << "/v:" + m_host; -+ -+ kDebug(5012) << "Starting xfreerdp with arguments: " << arguments.join(" "); -+ -+ //avoid printing the password in debug -+ if (!m_url.password().isNull()) { -+ arguments << "/p:" + m_url.password(); -+ } -+ kDebug(5012) << "Starting xfreerdp with arguments: " << arguments.join(" "); -+ -+ } - - setStatus(Connecting); - -@@ -302,7 +405,7 @@ - - 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,11 +422,11 @@ - void RdpView::receivedStandardError() - { - const QString output(m_process->readAllStandardError()); -- kDebug(5012) << "receivedStandardError:" << output; -+ kDebug(5012) << 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) -@@ -345,7 +448,7 @@ - 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()) { -
