FS#42890 - [freerdp] 1.2.0_beta1+android9-1 breaks krdc

Attached to Project: Community Packages
Opened by Damien Gombault (Desintegr) - Monday, 24 November 2014, 09:07 GMT
Last edited by Andrea Scarpino (BaSh) - Sunday, 04 January 2015, 13:43 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Andrea Scarpino (BaSh)
Felix Yan (felixonmars)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 11
Private No

Details

Hi.

I try to connect to my Windows servers with RDP and krdc.
I use kdenetwork-krdc-4.14.3-1 (installed this morning).

It works with :
- freerdp-1.0.2-7
- freerdp-1.1.0_beta+2013071101-1

It does not work with :
- 1.2.0_beta1+android9-1 (nothing happens, no log)

I notice the CLI interface has changed with the new versions.
The 1.0.2 version uses a -o/--option UNIX style options.
The new versions use a /option Windows style options.
I attached the xfreerdp --help outputs.

KRDC is written to use the 1.0.2 version and it was not adapted to the new cli interface.
The code uses the -/--option style :
https://projects.kde.org/projects/kde/kdenetwork/krdc/repository/revisions/bae83f78003f532a34e618cc862b726a9c7004be/entry/rdp/rdpview.cpp

I think Arch should stick to version 1.0.2 or create multiple version the package freerdp10, freerdp 11, freerdp 12.




This task depends upon

Closed by  Andrea Scarpino (BaSh)
Sunday, 04 January 2015, 13:43 GMT
Reason for closing:  Fixed
Additional comments about closing:  kdenetwork-krdc 4.14.3-2
Comment by ceri (ceri) - Wednesday, 26 November 2014, 00:57 GMT
I can confirm this. Should we file a bug upstream to support freerdp 1.0.2?
Comment by Moritz Bunkus (mbunkus) - Wednesday, 26 November 2014, 09:25 GMT
I just did: https://bugs.kde.org/show_bug.cgi?id=341284

In the meantime I've decided to roll my own zsh script that translates old into new options (limited to the options I regularly use, mind you). Here it is in case it helps someone. Put it into a directory in $PATH that is located before /usr/bin and call it »xfreerdp« so that the script gets executed by krdc and not the original /usr/bin/xfreerdp.

--snip------------------------------------------------------------------------
#!/bin/zsh

# -g 1800x1000 -k 0x00000409 -u mosu -p EvilPassword -D -X 104857884 -a 24 -x l --ignore-certificate --plugin cliprdr -t 3389 ketani

typeset -a args

function error {
kdialog --error "${(pj: :)@}; arguments so far: ${(pj: :)args}"
exit 2
}

host=
port=3389
while [[ -n $1 ]]; do
case $1 in
-g) args+=(/size:$2) ; shift ;;
-k) args+=(/kbd:$2) ; shift ;;
-u) args+=(/u:$2) ; shift ;;
-d) args+=(/d:$2) ; shift ;;
-p) args+=(/p:$2) ; shift ;;
-a) args+=(/bpp:$2) ; shift ;;
-t) port=$2 ; shift ;;
-D) ;;
-X) args+=(/parent-window:$2) ; shift ;;
--ignore-certificate) args+=(/cert-ignore) ;;
-x)
case $2 in
m) args+=(-fonts -aero -themes -wallpaper) ;;
b) args+=(+fonts -aero -themes -wallpaper) ;;
l) args+=(+fonts +aero -themes +wallpaper) ;;
*) error "Unknown experience option $2; remaining args:" $@ ;;
esac
shift
;;
--plugin)
case $2 in
cliprdr) args+=(+clipboard) ;;
*) error "Unknown plugin option $2; remaining args:" $@ ;;
esac
shift
;;
*)
if [[ -z $host ]]; then
host=$1
else
error "Host already set; unknown option? host=$host; remaining args:" $@
fi
;;
esac
shift
done

args+=(/v:${host}:${port})

exec /usr/bin/xfreerdp $args
--snip------------------------------------------------------------------------
Comment by Jameson Pugh (ImNtReal) - Thursday, 04 December 2014, 14:11 GMT
I've set up a PKGBUILD that uses the patch from https://git.reviewboard.kde.org/r/115059/ that will fix the issue. http://pastebin.com/dbzkfSCL
Comment by Jameson Pugh (ImNtReal) - Thursday, 04 December 2014, 14:15 GMT
And, I just realized you can make it a little easier by replacing 'rb115059.patch' in the sources array with 'rb115059.patch::https://git.reviewboard.kde.org/r/115059/diff/raw/'.
Comment by Urs Wolfer (uwolfer) - Thursday, 04 December 2014, 14:31 GMT
As the maintainer of KRDC (and also a happy Arch Linux user), I'm curious about the reasons for switching to a beta release of Freerdp.

As a short term solution, I support the suggested change by Jameson Pugh.
Comment by Dennis (slaecker) - Thursday, 04 December 2014, 20:17 GMT
Any chance of including the patch in the official KRDC Arch build?
From a user perspective installing an application with its dependencies should provide a working piece of software which is not the case in the current scenario.
The user is "forced" to update to a beta build of freerdp through the normal upgrade procedure which makes KRDC not working for RDP connections anymore.
Not including the patch not seems like "keep it simple" :P
Or make the maintainer of freerdp go back to the stable release ... ;)
Comment by Urs Wolfer (uwolfer) - Friday, 05 December 2014, 13:26 GMT
As a temporary workaround, you can downgrade freerdp to freerdp-1.0.2-7-i686.pkg.tar.xz / freerdp-1.0.2-7-x86_64.pkg.tar.xz (you can find these files with google if you do not have them anymore in /var/cache/pacman/pkg).
Comment by Urs Wolfer (uwolfer) - Friday, 26 December 2014, 19:57 GMT
@Sergej Pupykin (sergej): Do you plan to change anything related to this issue? I get almost daily reports from archlinux users complaining that KRDC RDP support does not work anymore.
Comment by Sergej Pupykin (sergej) - Saturday, 27 December 2014, 19:46 GMT
@Urs Wolfer, I think the best solution is provide patched version of krdc in Arch. But I have no access to [extra] repository. I'll try to ask someone to do it. Or I'll add wrapper for freerdp binary as suggested here. Hopefully it will be done during next week.
Comment by Urs Wolfer (uwolfer) - Sunday, 28 December 2014, 10:55 GMT
@Sergej Pupykin: Patching KRDC would be the best solution IMHO. I don't know if the wrapper script is complete for every possible command KRDC requires. What's the reason for upgrading freerdp to a beta version? Is downgrading to the last stable release not a solution for you?

Oh, and why isn't freerdp in [extra]? It's a (optional) dependency for KRDC which probably is installed by almost every KRDC user.
Comment by Moritz Bunkus (mbunkus) - Monday, 29 December 2014, 09:44 GMT
The wrapper script I've posted does definitely not cover all possible switches, just the ones that I use regularly (most notably shared folders aren't supported). I've also added support for some more switches, but even then it's not complete.

It also uses zsh, and I don't think you want to force zsh as a dependency on everyone using krdc.

It was just meant as a quick band-aid for others who don't want to downgrade arbitrarily.

I believe that using one of the patches suggested in the KDE bug tracker is the right thing to do here; they do look complete, and all technical objections so far revolve around krdc needing to support both old and new-style interfaces in general – but that's not a problem for us on Arch as we only need the new one.
Comment by Urs Wolfer (uwolfer) - Saturday, 03 January 2015, 16:56 GMT
KRDC Git master and Applications/14.12 contain fixes for freerdp 1.2 support.

Do you also need these fixes in KDE/4.14 branch?
Comment by Sergej Pupykin (sergej) - Saturday, 03 January 2015, 20:40 GMT
kdenetwork-krdc is orphaned and I have no permissions to fix it, so I've added maintainer from PKGBUILD and last packager to assignee list.
Comment by Andrea Scarpino (BaSh) - Sunday, 04 January 2015, 09:19 GMT
Should be fixed with 4.14.3-2.
Comment by imraro (imraro) - Sunday, 04 January 2015, 11:07 GMT
To @BaSh: blue screen with freerdp-1.1.0_beta+2013071101-1 and 1.2.0_beta1+android9-1

EDIT: Please ignore this comment.
Comment by Urs Wolfer (uwolfer) - Sunday, 04 January 2015, 12:36 GMT
@imraro: The patched version of kdenetwork-krdc looks good to me. Your bluescreen problem is probably caused by another issues (probably rdp host down - which is fixed by another KRDC patch). Please try to connect to this host with xfreerdp only.

@BaSh: Thanks for applying the patch.

Loading...