Jacco's rdesktop page (2024)

rdesktopis a free client for the RDP protocol. It works as a "thin client"whichyou use to connect to Windows NT4TS/2000/2003/XP. rdesktop was createdby Samba team member MatthewChapmanand released under the GNU Public License.It runs on many operating systems: several flavours of Unix/Linux,Acorn, Amiga, Mac OS X, OS/2 etc. (see "Relatedportsand binaries"). It has even been ported to Win32 and Java.

My contribution consists of creating RPMS (packaged executables)for RPM based Linux distributions (e.g. RedHat and Mandrake). Thiscouldsave time for people who just want to use the program and prefer to notgo through the trouble of compiling the source code. This is mainly forolder distributions, since recent ones are now shipping with rdesktop.Ihave also made an OS/2 port of rdesktop.

Contents
  • Binary RPMS
  • Source RPMS
  • Security of these RPMS
  • OS/2 port of rdesktop
  • Related ports and binaries
  • Some rdesktop related links
  • Revision history

RPM packages of rdesktop

I have made a range of rdesktop RPM packages for your convenience.See the list below. These can be installed onLinuxdistributions using the RedHat Package Manager (RPM). Testing has been done mostly onRedHat 6.2/7.2 (x86), Mandrake 8.1 (x86) and Mandrake 8.0 (PPC).

So, which RPM do you need? What are the differences?

  • version 1.2.0 or higher:
    Recent Linux distributions already contain a version of rdesktop,mostly 1.2.0. You may prefer to use that one. If none is included withyour distribution, you might want to try an RPM from me (see below).
  • version 1.1.0 versus version 1.1.0 plus unifiedpatch:
  • v1.1.0 is of course the 'official' version of rdesktop, made by MatthewChapman. This is probably the highest quality version and the moststable. However, there have been only two releases of the officialrdesktop. In the meantime, several people on the rdesktop mailinglisthave contributed new features and bugfixes. Peter Byström hascombined these into the so-called 'unified patch' which he releasesoncein a while. This is probably the most useful version. I suggesttrying this one first, and should you have great difficulties with it,fall back to plain v1.1.0. The unified patch version contains importantfeatures such as support for non-PC keyboards (e.g. Sparc or PPChardware) and non-English keyboards. The patch also has a very handyoption called --built-in-license, which emulates a Windows2000 Professional license. Naturally you still need a Terminal ServerCAL if you want to playby the book, but at least you don't have the hassle of (expiring)temporary licenses (rdesktop 1.1.0 cannot store TS CAL licenses todisk,but the CVS version rdesktop can; most distributions do not ship withthe CVSversion, however).
  • X Windows version versus SVGAlib version:
  • In most cases you would use the X Windows version. However, you mightbe interested to know that a patch was contributed by Donald Gordonwhich allows rdesktop to use SVGAlib(included with many x86 Linux distributions). That means with theSVGAlib version you don't have to run X, i.e. it even runs on low-endcomputers with little RAM. But note that this code is fairly new and isa bit rough around the edges. It's a bit slower than the X Windowsversion and I had to switch off mouse acceleration in /etc/vga/libvga.config.The SVGAlib version also needs root permissions to access the graphicscard.
  • OpenSSL static version versus non-staticversion:
  • Normally you would choose the non-static version. The static version iscompiled statically against the OpenSSL cryptographic libraries (that'sbecause RDP packets are encrypted). I believe it is better to use thenon-static version because of security, speed and size. The non-staticRPM will use the OpenSSL libraries on your system. OpenSSL is includedwith most (recent) distributions, but not always, due to export andpatent issues. In most cases an update is available from your vendor orfrom third parties. Updates for RedHat 6.2, for instance, can bedownloaded from theRedHat website or oneof its mirrors. LinuxPPC 2000 or earlier does not come with OpenSSL:check out the LinuxPPC.orgwebsite or RichWest's website. Alex de Joode has a vast FTP site with cryptographicsoftware (sed quis custodiet ipsem Alex? :-).
  • RedHat 6.2 executable:
  • This is not an RPM but only the executable, with OpenSSL staticallycompiled in. No bells or whistles. Basically, this one should work onany Linux system unless we're talking about RedHat 4.2 or so. Only usethis executable if none of RPMS work and you can't be bothered toinstall a compiler yourself...
Usage

Install the RPM of your choice from the commandline using "rpm-Uvh rdesktop*.rpm", or use your favourite graphical RPM manager.Should you get complaints about missing packages, get those from yourdistribution's CDs or download them, and try again. When you gotrdesktop installed, congratulations! Check out rdesktop's options (manrdesktop) and read the included documentation (for a list of docs,use "rpm -ql rdesktop"). In most cases you should be able tofire up rdesktop with a command as simple as:
rdesktop <server-hostname>

You would like to give rdesktop a spin but you don't have a WindowsTerminal Server available? Try this one: scylla.odyssey.securewave.com(194.7.94.93 at the time of this writing). This is a demoserver made available by security company SecureWave. The usual stuff(Internet Explorer, Office etc.) has been installed on it. The serverisprotected with SecureEXE, a product which allows only authorisedsoftware to run on a Windows server ('white list'). For each file thatis authorized, SecureEXE creates a cryptographic hash signature whichislater used to identify this file at execution time.

List of available RPMs

Note: You may need to hold 'shift' while clicking on a linkbelow! Recommended files are indicated with ->. The filesare fairly small, generally less than 200 KB.

Binary RPMS for x86:

-> Mandrake 9.x (already contains rdesktop 1.2.0 RPM)
Mandrake 8.1X Windows, 1.1.0 pl19.9.0-jdl1
Mandrake 8.1X Windows, 1.1.0 pl19.8.5-jdl1
Mandrake 8.1X Windows, 1.1.0 pl19.8.4-jdl1
Mandrake8.1 X Windows, 1.1.0 jdl1
Mandrake8.1 SVGAlib, 1.1.0 pl19.9.0-jdl1
Mandrake8.1 SVGAlib, 1.1.0 pl19.8.4-jdl1

-> RedHat 9.0 (already containsrdesktop 1.2.0 RPM)
RedHat9.0 X Windows, 1.3.0-jdl1 (modifiedoriginal, built-in licence)
RedHat 8.0 (already containsrdesktop 1.2.0 RPM)
RedHat8.0 X Windows, 1.2.0-jdl1 (modifiedoriginal, built-in licence)
RedHat 8.0X Windows, 1.1.0 pl19.9.0-jdl2
RedHat 7.3X Windows, 1.1.0 pl19.9.0-jdl1
RedHat 7.2X Windows, 1.1.0 pl19.8.4-jdl1
RedHat7.2 X Windows, 1.1.0 jdl1
(RedHat 7.x does not ship with SVGAlib)

-> RedHat6.2 X Windows, 1.1.0 pl19.9.0-jdl1
RedHat 6.2X Windows, 1.1.0 pl19.8.5-jdl1
RedHat 6.2X Windows, 1.1.0 pl19.8.4-jdl1
RedHat6.2 X Windows, 1.1.0 jdl1
RedHat 6.2SVGAlib, 1.1.0 pl19.9.0-jdl1
RedHat 6.2SVGAlib, 1.1.0 pl19.8.5-jdl1
RedHat 6.2SVGAlib, 1.1.0 pl19.8.4-jdl1

Binary RPM for PowerPC:
(Sponsored by HCC Amsterdam usergroup)

-> Mandrake8.0 X Windows, 1.0.0pl19.8.4-jdl1

Single executables:
(After downloading: tar xfvz rdesktop*.tar.gz ; chmod +x rdesktop
or tar xfvz srdesktop*.tar.gz ; chmod +x srdesktop)
(Verify GPG signatures with my GPG publickey, e.g.:
gpg --verify rdesktop-1.1.0pl19.9.0-rhl6.tar.gz.sig)

-> RedHat6.2 X Windows, 1.1.0 pl19.9.0-jdl1, static OpenSSL (GPG sig)
RedHat6.2 SVGAlib, 1.1.0 pl19.9.0-jdl1, static OpenSSL (GPG sig)

(Old versions, not recommended:)

RedHat 7.01.0.0-pl19_6_5, my release: 1
RedHat 6.21.0.0-pl19_6_5, my release: 1
RedHat6.2 (static) 1.0.0-pl19_6_5, my release: 1
Mandrake 7.21.0.0-pl19_6_5, my release: 1
Mandrake 8.01.0.0-pl19_6_5, my release: 1
LinuxPPC2000 Q4 1.0.0-pl19_6_4, my release: 1

Although I've made ready-to-run binary packages, you might prefer toget the source RPM and build the binary RPMyourself ("trust is good, control is better"). It should not be muchmore difficult to do than installing a binary RPM.

If you have a RPM based Linux distribution not yet listed, or if youuse another architecture than x86 or PPC, you might want to downloadthesource RPM anyway and build the binary RPM yourself. If that doesn'twork, please let me know. If you don't want to build an RPM yourself(you don't have a compiler installed or you just don't want to bother)and you're using the x86 platform, try the RedHat 6.2 static RPM, or ifall else fails, the RedHat 6.2 executable.

Final note: I haven't built RPMS which do not make sense, such as anSVGAlib version for PPC (doesn't have SVGAlib) or the plain v1.1.0version for PPC (keyboard won't work).

Back to top

Source files

(You can skip this if you are not interested inrecompiling the RPM).

M4 template for SPEC file(rdesktop.spec.in from rdesktop-1.1.0pl19.9.0-jdl2)
Source RPM(rdesktop-1.3.0-jdl1 modified original with built-in licence patch)
Source RPM(rdesktop-1.2.0-jdl1 modified original with built-in licence patch)
Source RPM(rdesktop-1.1.0pl19.9.0-jdl2.src.rpm)
Source RPM(rdesktop-1.1.0pl19.9.0-jdl1.src.rpm)
Source RPM(rdesktop-1.1.0pl19.8.5-jdl1.src.rpm)
Source RPM(rdesktop-1.1.0pl19.8.4-jdl2.src.rpm)
Source RPM(rdesktop-1.1.0pl19.8.4-jdl1.src.rpm)

(Old source files, not recommended):
SPEC file 1.0.0pl19-7-4
SPEC file 1.1.0 with OpenSSL
SPEC file 1.1.0 withOpenSSL
initial 1.1.0 Source RPM
old SPEC file
1.0.0pl19-7-4 SourceRPM
1.0.0-pl19_6_5Source RPM

If you wish to rebuild the source RPM, you'll need the GCC compilerand some standard GNU development utilities such as patch and the macroprocessor M4. The main file is called rdesktop.spec.in. Whenyou install the source RPM, this file will be in your SOURCESdirectory. If you run this script, it will call M4 and generate a rdesktop.spectailored to your system. You can then use this spec file (located inthecurrent directory) to build the RPM. Note that rebuilding the SRPM withrpm--rebuild rdesktop-1.1.0-jdl1.src.rpm will probably not work andneither will the included rdesktop.spec: in most cases youwill have to generate a new one with rdesktop.spec.in

For instructions on how to create a configuration for rebuildingSRPMS, I learnt a lot from the Mandrake RPMHowto. Note that it's better to rebuild not as root but as a normaluser. Basically, once you've set up the RPM environment (see thisHowto), it should be as simple as the following commands:

[download source RPM file to your SRPMS directory]
cd SRPMS
rpm --checksig rdesktop*.src.rpm
rpm -ivh rdesktop*.src.rpm
cd ../SOURCES
./rdesktop.spec.in
rpm -ba rdesktop.spec
cd ../RPMS/i386
rpm -Uvh rdesktop*.rpm

rdesktop.spec.in can take optional parameters: -NOUNIFIEDPATCH,-SVGAand -STATICOPENSSL. What these options do should be obvious,if not, see the discussion above about thedifferent types of RPMS.

Back to top


Security of these RPMS

I have signed the RPMS with my PGP key.For more information on the security of my RPMs, read this. I've checked therdesktop source and I can honestly say that I can't find a backdoor.Anysecurity risks would rather exist in the RDP protocol itself than in rdesktop,an implementation of the protocol.

Back to top

OS/2 port of rdesktop

(last update: Apr 21, 2003)

I've have made a quick (proof of concept) port of rdesktop to OS/2.It's not a native PM port. You'll need EMX and XFree86/OS2. Rdesktopversion 1.2.0 requires OpenSSL 0.9.7 or higher as well. I will nothelp you configure these. Sorry.

(BTW, if you want to connect to a Windows Terminal Server under OS/2then there are the following alternatives to this approach: runningMicrosoft's Windows 3.x Terminal Server client under WinOS/2 [reportedto be slow], or using the Java RDP client by HOB.And then there's also Citrix,but that'll cost more).

Download OS/2 executable

Several versions are available, in probable order of preference:

rdesktp3.zip (rdesktop-1.2.0-CVS-20030419) (GPG sig)
rdesktp2.zip (rdesktop-1.1.0 with unified patch 19-8-5) (GPG sig)
rdp110.zip (rdesktop-1.1.0)
rdp110u.zip (rdesktop-1.1.0 with unified patch 19-8-2)
rdesktop.zip (rdesktop-1.0.0 with unified patch 19-5-10)
Each of these zipfiles contains a ready-to-run OS/2 binary, a patchfrom me, and some extra information. You will need the EMX runtime(emxrt.zip) and XFree86/OS2 to be able to use the executable. Get themfrom Leo, Hobbes etc.

The executables were built against EMX 0.9d, with emxfix04 and anolder version of XFree86/OS2 I had lying around on CD. If that doesn'twork for you, trying rebuilding the binary yourself (see below).

Once you have unzipped the zipfile, check out the documentation.Generally, you want to run the executable and specify a WindowsTerminalServer hostname on the commandline.

Compiling the OS/2 executable

Depending on the version you want, you will need some of thefollowing pieces of software:

Instrumental in making the quick OS/2 port were:Back to top

Related ports and binaries

People have ported rdesktop to several operating systems. Others aresimply making available rdesktop binaries. You can find a list below.

  • Acorn RISC OS
  • Amiga3.x/4.x port by Martin Blom, Darren Eveland and Jörg Strohmayer.
  • Amigaport by Martin Blom (older port, older rdesktop).
  • FreeBSDport by Chris Knight.
  • Irixbinary by Roger Brown.
  • Java: a Java port means instant support for a whole slew ofplatforms (not unlike Hob JWT, Ishould add).
    • properJavaRDPby Phil Carmalt. It is an open source Java RDP client, based onrdesktop. properJavaRDP runs on Java 1.1 and up (optimised for 1.4),andworks on Linux, Windows and Mac.
    • Several people were reported to be working on a Java port butnothing much seems to have materialised. You will have to searchthe rdesktopmailinglist archive if you are interested.
  • Linux
  • MacOS X port by Sam Johnston. Note that this port depends on the Finkenvironment, which is the Debian package management tools ported to MacOS X. Currently, there is no native Quartz port for Mac OSX,such as there are for VNC.Quartz is the native windowing system of Mac OS X. If you don't want toinstall fink, a standalonebinary was made available by Andrew M. Miller, but it stillrequiresX Windows (now included with Panther).
  • MorphOSport by Martin Blom and Darren Eveland.
  • NetBSDpackage.
  • OpenBSDpackage by Joshua Stein.
  • OpenVMS/alphaport by Bryan Clingman.
  • OS/2 port by myself.
  • Solaris Sparcbinary by Max Southall.
  • SCO users: please contactyourlocal representative and tell them to stopthreatening Linux users and vendors with legal steps.
  • Win32 port by Paul Bludov. It is included as a compile target inthe unified patch. You will need a X server for Win32.
  • SharpZaurus port by Jay Sorg (other ports discussed hereand here)
The following clients are not based on rdesktop. Instead, they usesource code and information from Microsoft under a non-disclosureagreement:
  • MacOS X remotedesktop client released by Microsoft. Note: this client can makeonlyone RDP connection at a time. Rdesktop for Mac does not have thislimitation.
  • Windows remotedesktop clients released by Microsoft. There are Windows Installer(MSI), ActiveX (webbased) and standalone clients.
  • WinConnect by ThinSoftfor Linux. This client costs money (USD 50 per copy) and you don't getthe source code. And you can only hope that the binary will run onlaterLinux versions. On the plus side, it looks like a fairly completeimplementation with support for sound, printer redirection, 24-bitscreen depths etc. I have no idea whether the binary will run onnon-Linux operating systems with run-time support for Linux binaries.Note that they use some kind of obnoxious copy protection which is tiedto the Ethernet (MAC) address of the network card. Reminds me of someoneelse's copy protection...
  • DOS RDP clientbyTerminal-Services.net. Also uses a MAC address based copy protectionscheme.
  • easyRDP:DOS RDP client by Easy Networks (seems to violate the GPL).


Back to top


Some links
Back to topRevision history
  • Jan 29, 2005: Added links to Amiga and MorphOS ports.
  • May 27, 2004: New RISC OS port available. Previousports do not exist anymore.
  • Mar 14, 2004: Added link to Thinkstation.
  • Jan 8, 2004: Added link to tsclient.
  • Nov 10, 2003: Added RPMS for 1.3.0 with built-in licencepatch.
  • Nov 4, 2003: Add link to easyRDP.
  • Sep 30, 2003: Added link to rdesktop Java port.
  • Apr 25, 2003: uploaded RH8.0 binaries for 1.1.0-pl19-9-0and 1.2.0.
  • Apr 21, 2003: uploaded new OS/2 binary (rdesktop v1.2.0).
  • Apr 17, 2003: fixed some links.
  • Sep 26, 2002: added link to new Acorn port by eQ lab.
  • Aug 11, 2002: updated to patch 19-9-0. Fixes keyboardproblem with Gnome. Adds toggling between full-screen and windowed. Security bugfound in OpenSSL, but fortunately I had removed most of the staticversions on March 30. Updated the remaining static executables, linkingagainst a patched version of OpenSSL. Removed old static executables.
  • Jul 21, 2002: adding related links. Added reference toMicrosoft MacOS X client.
  • Mar 30, 2002: adding new packages and a new OS/2 portbased on v1.1.0 with patch 19-8-5. I also decided to pull the staticOpenSSL versions. I'm sorry for the inconvenience, but the zlib caseshows that statically linking can lead to problems. Most Linuxdistributions have OpenSSL these days. I am only maintaining the RedHat6.2 statically linked single executables because they are a last ditchoption anyway.
  • Mar 4, 2002: Adding French and Brazilian Portuguesetranslations by Vincent Callede and Silverio Wagner Silva,respectively.Moving the compiler flags patch to configure, not Makefile.Only source RPM at the moment. Adding references to related binaries.
  • Feb 18, 2002: added reference to SecureWave's demo server (with permission), for those who do nothave a Terminal Server readily available.
  • Feb 10, 2002: fairly large overhaul: new RPMS created;SPEC file is now generated by M4 macro processor. RPMS should be bettertailored to different distributions.
  • Jan 2002: The font caching bugin rdesktop 1.0.0 has been fixed in 1.1.0, but unfortunately popped upagain in the unified patch. (Note that this bug only occurs in someveryexotic setups, e.g. when you log in from x86 to PPC using SSH Xforwarding, or using an X server on Windows).

Back to top

Back to Jacco's homepage

Jacco's rdesktop page (2024)

References

Top Articles
Latest Posts
Article information

Author: Rueben Jacobs

Last Updated:

Views: 5702

Rating: 4.7 / 5 (77 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Rueben Jacobs

Birthday: 1999-03-14

Address: 951 Caterina Walk, Schambergerside, CA 67667-0896

Phone: +6881806848632

Job: Internal Education Planner

Hobby: Candle making, Cabaret, Poi, Gambling, Rock climbing, Wood carving, Computer programming

Introduction: My name is Rueben Jacobs, I am a cooperative, beautiful, kind, comfortable, glamorous, open, magnificent person who loves writing and wants to share my knowledge and understanding with you.