The other day on the Fedora Development mailing list it was mentioned why Fedora Core still uses rdesktop 1.2 rather than 1.3. I found an interesting article about rdesktop 1.3 on NewsForge. There are many graphical frontends to rdesktop, such as grdesktop and my preference tsclient. So, if you're too eager to wait for new packages to be distrubuted, here are some simple steps to downloading and compiling the lastest version of rdesktop and tsclient.
Download the tarball rdesktop-1.3.0.tar.gz from the folowing URL:
And if you want to use tsclient, download the tarball tsclient-0.132.tar.gz or the RPM tsclient-0.132-1.i386.rpm from the following URL:
First, login in as root and move the tarball for rdesktop to the rpmbuild SOURCE directory (/usr/src/redhat/SOURCES)
[mstanley@penguin mstanley]$ su - Password: [root@penguin SOURCES]# mv (your download directory)/rdesktop-1.3.0.tar.gz ./rdesktop.tgz
The spec file for rdesktop is included in the tarball. Extact it and then build the rpm package.
[root@penguin SOURCES]# tar vxzfO rdesktop.tgz rdesktop/rdesktop.spec > ../SPECS/rdesktop.spec rdesktop/rdesktop.spec [root@penguin SOURCES]# cd ../SPECS/ [root@penguin SPECS]# rpmbuild -ba rdesktop.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.84178 + umask 022 + cd /usr/src/redhat/BUILD + LANG=C + export LANG + unset DISPLAY + rm -rf /var/tmp/rdesktop-buildroot + cd /usr/src/redhat/BUILD + rm -rf rdesktop + /usr/bin/gzip -dc /usr/src/redhat/SOURCES/rdesktop.tgz + tar -xvvf - -rw-r--r-- peter/peter 18186 2003-01-02 11:09:06 rdesktop/COPYING drwxr-xr-x Creating directory: rdesktop -rw-rw-r-- peter/peter 207 2001-09-15 05:37:14 rdesktop/crypto/README drwxr-xr-x Creating directory: rdesktop/crypto -rw-rw-r-- peter/peter 6748 2001-09-15 05:37:14 rdesktop/crypto/bn_add.c -rw-rw-r-- peter/peter 18347 2001-09-15 05:37:15 rdesktop/crypto/bn_asm.c -rw-r--r-- peter/peter 4351 2003-02-03 10:42:20 rdesktop/crypto/bn_ctx.c -rw-r--r-- peter/peter 9834 2002-09-25 06:42:07 rdesktop/crypto/bn_div.c -rw-r--r-- peter/peter 22778 2003-02-03 10:42:20 rdesktop/crypto/bn_exp.c -rw-rw-r-- peter/peter 15357 2001-09-15 05:37:15 rdesktop/crypto/bn_lib.c -rw-r--r-- peter/peter 17759 2002-09-25 06:42:07 rdesktop/crypto/bn_mul.c -rw-rw-r-- peter/peter 5333 2001-09-15 05:37:16 rdesktop/crypto/bn_shift.c -rw-r--r-- peter/peter 7293 2002-09-25 06:42:07 rdesktop/crypto/bn_sqr.c -rw-rw-r-- peter/peter 10973 2001-09-15 05:37:16 rdesktop/crypto/md5_dgst.c -rw-rw-r-- peter/peter 10531 2001-09-15 05:37:17 rdesktop/crypto/rc4_enc.c -rw-rw-r-- peter/peter 4035 2001-09-15 05:37:17 rdesktop/crypto/rc4_skey.c -rw-rw-r-- peter/peter 3347 2001-09-15 05:37:17 rdesktop/crypto/sha1dgst.c -rw-r--r-- peter/peter 17451 2003-02-03 10:42:20 rdesktop/crypto/bn.h -rw-rw-r-- peter/peter 13777 2001-09-15 05:37:15 rdesktop/crypto/bn_lcl.h -rw-r--r-- peter/peter 17523 2002-09-25 06:42:07 rdesktop/crypto/md32_common.h-rw-rw-r-- peter/peter 4590 2001-09-15 05:37:16 rdesktop/crypto/md5.h -rw-r--r-- peter/peter 7004 2002-09-25 06:42:07 rdesktop/crypto/md5_locl.h -rw-rw-r-- peter/peter 4246 2001-09-15 05:37:17 rdesktop/crypto/rc4.h -rw-rw-r-- peter/peter 4859 2001-09-15 05:37:17 rdesktop/crypto/sha.h -rw-r--r-- peter/peter 18039 2002-09-25 06:42:07 rdesktop/crypto/sha_locl.h -rw-r--r-- peter/peter 5716 2003-10-29 09:13:59 rdesktop/bitmap.c -rw-r--r-- peter/peter 4945 2003-10-29 09:13:59 rdesktop/cache.c -rw-r--r-- peter/peter 4833 2003-10-29 09:13:59 rdesktop/channels.c -rw-r--r-- peter/peter 4013 2003-10-29 09:13:59 rdesktop/cliprdr.c -rw-r--r-- peter/peter 3905 2003-10-29 09:13:59 rdesktop/ewmhints.c -rw-r--r-- peter/peter 3983 2003-10-29 09:13:59 rdesktop/iso.c -rw-r--r-- peter/peter 8484 2003-10-29 09:13:59 rdesktop/licence.c -rw-r--r-- peter/peter 8090 2003-10-29 09:13:59 rdesktop/mcs.c -rw-r--r-- peter/peter 20757 2003-10-29 09:13:59 rdesktop/orders.c -rw-rw-r-- peter/peter 557 2003-10-29 09:13:59 rdesktop/printer.c -rw-r--r-- peter/peter 15668 2003-10-29 09:13:59 rdesktop/rdesktop.c -rw-r--r-- peter/peter 2274 2003-10-29 09:13:59 rdesktop/rdp5.c -rw-r--r-- peter/peter 22404 2003-10-29 09:13:59 rdesktop/rdp.c -rw-rw-r-- peter/peter 5761 2003-10-29 09:13:59 rdesktop/rdpdr.c -rw-r--r-- peter/peter 6039 2003-10-29 09:13:59 rdesktop/rdpsnd.c -rw-r--r-- peter/peter 5031 2003-10-29 09:13:59 rdesktop/rdpsnd_oss.c -rw-r--r-- peter/peter 6142 2003-10-29 09:13:59 rdesktop/rdpsnd_sun.c -rw-r--r-- peter/peter 20454 2003-10-29 09:13:59 rdesktop/secure.c -rw-rw-r-- peter/peter 7586 2003-10-29 09:13:59 rdesktop/serial.c -rw-r--r-- peter/peter 4741 2003-10-29 09:13:59 rdesktop/tcp.c -rw-r--r-- peter/peter 9047 2003-10-29 09:13:59 rdesktop/xclip.c -rw-rw-r-- peter/peter 16580 2003-10-29 09:13:59 rdesktop/xkeymap.c -rw-r--r-- peter/peter 43043 2003-10-29 09:13:59 rdesktop/xwin.c -rw-r--r-- peter/peter 8268 2003-10-29 09:13:59 rdesktop/constants.h -rw-r--r-- peter/peter 4524 2003-10-29 09:13:59 rdesktop/orders.h -rw-r--r-- peter/peter 3637 2003-10-29 09:13:59 rdesktop/parse.h -rw-rw-r-- peter/peter 7713 2003-10-29 09:13:59 rdesktop/proto.h -rw-r--r-- peter/peter 1524 2003-10-29 09:13:59 rdesktop/rdesktop.h -rw-r--r-- peter/peter 9629 2003-10-29 09:13:59 rdesktop/scancodes.h -rw-r--r-- peter/peter 2681 2003-10-29 09:13:59 rdesktop/types.h -rw-r--r-- peter/peter 225 2003-10-29 09:13:59 rdesktop/xproto.h -rw-r--r-- peter/peter 2239 2002-10-23 03:04:30 rdesktop/keymaps/ar drwxr-xr-x Creating directory: rdesktop/keymaps -rw-r--r-- peter/peter 2576 2003-08-11 06:55:33 rdesktop/keymaps/da -rw-r--r-- peter/peter 2467 2002-11-06 11:13:48 rdesktop/keymaps/de -rw-r--r-- peter/peter 2236 2003-10-14 07:29:14 rdesktop/keymaps/es -rw-r--r-- peter/peter 2685 2002-10-23 03:04:34 rdesktop/keymaps/fi -rw-rw-r-- peter/peter 907 2003-04-16 02:35:33 rdesktop/keymaps/fo -rw-r--r-- peter/peter 2588 2003-10-14 07:13:38 rdesktop/keymaps/fr -rw-r--r-- peter/peter 2699 2002-10-23 03:04:35 rdesktop/keymaps/hr -rw-rw-r-- peter/peter 1866 2003-08-12 03:18:00 rdesktop/keymaps/hu -rw-r--r-- peter/peter 2509 2003-08-11 06:55:33 rdesktop/keymaps/it -rw-rw-r-- peter/peter 2034 2003-10-14 05:05:04 rdesktop/keymaps/ja -rw-r--r-- peter/peter 1096 2002-10-23 03:04:37 rdesktop/keymaps/lt -rw-r--r-- peter/peter 2840 2002-10-23 03:04:38 rdesktop/keymaps/lv -rw-r--r-- peter/peter 2366 2002-10-23 03:04:38 rdesktop/keymaps/mk -rw-r--r-- peter/peter 2576 2003-08-11 06:55:33 rdesktop/keymaps/no -rw-r--r-- peter/peter 2672 2003-10-14 07:55:00 rdesktop/keymaps/pl -rw-r--r-- peter/peter 2684 2002-10-23 03:04:39 rdesktop/keymaps/pt -rw-r--r-- peter/peter 2554 2002-10-23 03:04:39 rdesktop/keymaps/ru -rw-r--r-- peter/peter 2699 2002-10-23 03:04:39 rdesktop/keymaps/sl -rw-rw-r-- peter/peter 999 2003-08-27 03:40:17 rdesktop/keymaps/sv -rw-r--r-- peter/peter 3123 2002-10-23 03:04:40 rdesktop/keymaps/th -rw-r--r-- peter/peter 2649 2002-10-23 03:04:40 rdesktop/keymaps/tr -rw------- peter/peter 2541 2003-10-13 10:40:19 rdesktop/keymaps/de-ch -rw-rw-r-- peter/peter 2581 2003-01-21 15:08:45 rdesktop/keymaps/en-gb -rw-rw-r-- peter/peter 609 2003-02-28 07:15:10 rdesktop/keymaps/en-us -rw-rw-r-- peter/peter 2876 2002-10-24 04:19:31 rdesktop/keymaps/fr-be -rw------- peter/peter 934 2003-10-12 16:49:55 rdesktop/keymaps/fr-ca -rw-rw-r-- peter/peter 2471 2003-04-25 10:43:05 rdesktop/keymaps/fr-ch -rw-rw-r-- peter/peter 1354 2003-10-13 08:50:47 rdesktop/keymaps/pt-br -rw-rw-r-- peter/peter 2092 2003-02-12 07:46:32 rdesktop/keymaps/common -rw-r--r-- peter/peter 298 2003-08-31 16:03:37 rdesktop/keymaps/modifiers -rwxrwxr-x peter/peter 1811 2002-07-18 14:28:11 rdesktop/keymaps/convert-map -rw-r--r-- peter/peter 632 2003-06-09 06:38:03 rdesktop/doc/HACKING drwxr-xr-x Creating directory: rdesktop/doc -rw-r--r-- peter/peter 501 2003-10-29 08:40:35 rdesktop/doc/AUTHORS -rw-r--r-- peter/peter 358 2003-10-07 02:46:44 rdesktop/doc/TODO -rw-rw-r-- peter/peter 5242 2003-08-31 15:59:37 rdesktop/doc/keymapping.txt -rw-rw-r-- peter/peter 3199 2003-10-12 16:50:58 rdesktop/doc/keymap-names.txt-rw-rw-r-- peter/peter 1038 2003-08-17 03:34:56 rdesktop/doc/ipv6.txt -rw-r--r-- peter/peter 4137 2003-10-28 01:28:16 rdesktop/doc/rdesktop.1 -rw-r--r-- peter/peter 3102 2003-10-29 08:50:32 rdesktop/Makefile -rwxr-xr-x peter/peter 7630 2003-10-29 07:49:52 rdesktop/configure -rw-r--r-- peter/peter 875 2003-10-29 08:51:40 rdesktop/rdesktop.spec + STATUS=0 + '[' 0 -ne 0 ']' + cd rdesktop ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chown -Rhf root . ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chgrp -Rhf root . + /bin/chmod -Rf a+rX,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.84281 + umask 022 + cd /usr/src/redhat/BUILD + cd rdesktop + LANG=C + export LANG + unset DISPLAY + ./configure --prefix=/usr --bindir=/usr/bin --mandir=/usr/share/man rdesktop build configuration script X Window System: includes /usr/X11R6/include libraries /usr/X11R6/lib OpenSSL: includes /usr/include libraries /usr/lib Sound support enabled: Open Sound System configure complete - now run make + make gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o rdesktop.o -c rdesktop.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o xwin.o -c xwin.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o xkeymap.o -c xkeymap.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o ewmhints.o -c ewmhints.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o xclip.o -c xclip.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o cliprdr.o -c cliprdr.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o rdpsnd.o -c rdpsnd.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o rdpsnd_oss.o -c rdpsnd_oss.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o tcp.o -c tcp.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o iso.o -c iso.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o mcs.o -c mcs.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o secure.o -c secure.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o licence.o -c licence.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o rdp.o -c rdp.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o orders.o -c orders.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o bitmap.o -c bitmap.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o cache.o -c cache.c cache.c: In function `cache_get_text': cache.c:122: warning: comparison is always true due to limited range of data type cache.c: In function `cache_put_text': cache.c:139: warning: comparison is always true due to limited range of data type gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o rdp5.o -c rdp5.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o channels.o -c channels.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o rdpdr.o -c rdpdr.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o serial.o -c serial.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o printer.o -c printer.c gcc -DKEYMAP_PATH=\"/usr/share/rdesktop/keymaps/\" -Wall -O2 -I/usr/X11R6/include -DWITH_OPENSSL -DWITH_RDPSND -o rdesktop rdesktop.o xwin.o xkeymap.o ewmhints.o xclip.o cliprdr.o rdpsnd.o rdpsnd_oss.o tcp.o iso.o mcs.o secure.o licence.o rdp.o orders.o bitmap.o cache.o rdp5.o channels.o rdpdr.o serial.o printer.o -L/usr/X11R6/lib -lcrypto -lX11 + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.65288 + umask 022 + cd /usr/src/redhat/BUILD + cd rdesktop + LANG=C + export LANG + unset DISPLAY + make install DESTDIR=/var/tmp/rdesktop-buildroot mkdir -p /var/tmp/rdesktop-buildroot//usr/bin install rdesktop /var/tmp/rdesktop-buildroot//usr/bin strip /var/tmp/rdesktop-buildroot//usr/bin/rdesktop chmod 755 /var/tmp/rdesktop-buildroot//usr/bin/rdesktop mkdir -p /var/tmp/rdesktop-buildroot//usr/share/rdesktop/keymaps/ cp keymaps/?? keymaps/??-?? /var/tmp/rdesktop-buildroot//usr/share/rdesktop/keymaps/ cp keymaps/common /var/tmp/rdesktop-buildroot//usr/share/rdesktop/keymaps/ cp keymaps/modifiers /var/tmp/rdesktop-buildroot//usr/share/rdesktop/keymaps/ chmod 644 /var/tmp/rdesktop-buildroot//usr/share/rdesktop/keymaps//* mkdir -p /var/tmp/rdesktop-buildroot//usr/share/man/man1 cp doc/rdesktop.1 /var/tmp/rdesktop-buildroot//usr/share/man/man1 chmod 644 /var/tmp/rdesktop-buildroot//usr/share/man/man1/rdesktop.1 + /usr/lib/rpm/find-debuginfo.sh /usr/src/redhat/BUILD/rdesktop 0 blocks find: /var/tmp/rdesktop-buildroot/usr/lib/debug: No such file or directory + /usr/lib/rpm/redhat/brp-compress + /usr/lib/rpm/redhat/brp-strip /usr/bin/strip + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump Processing files: rdesktop-1.3.0-1 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.94740 + umask 022 + cd /usr/src/redhat/BUILD + cd rdesktop + DOCDIR=/var/tmp/rdesktop-buildroot/usr/share/doc/rdesktop-1.3.0 + export DOCDIR + rm -rf /var/tmp/rdesktop-buildroot/usr/share/doc/rdesktop-1.3.0 + /bin/mkdir -p /var/tmp/rdesktop-buildroot/usr/share/doc/rdesktop-1.3.0 + cp -pr COPYING doc/AUTHORS doc/keymapping.txt doc/keymap-names.txt doc/ipv6.txt /var/tmp/rdesktop-buildroot/usr/share/doc/rdesktop-1.3.0 + exit 0 Requires(interp): /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(postun): /bin/sh Requires: XFree86-libs libX11.so.6 libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.3) libcrypto.so.4 Processing files: rdesktop-debuginfo-1.3.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/rdesktop-buildroot Wrote: /usr/src/redhat/SRPMS/rdesktop-1.3.0-1.src.rpm Wrote: /usr/src/redhat/RPMS/i386/rdesktop-1.3.0-1.i386.rpm Wrote: /usr/src/redhat/RPMS/i386/rdesktop-debuginfo-1.3.0-1.i386.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.45613 + umask 022 + cd /usr/src/redhat/BUILD + cd rdesktop + rm -rf /var/tmp/rdesktop-buildroot + exit 0 [root@penguin SPECS]#
Install binary rpm package you just built with following command:
[root@penguin SPECS]# rpm -Uvh /usr/src/redhat/RPMS/i386/rdesktop-1.3.0-1.i386.rpm Preparing... ########################################### [100%] 1:rdesktop ########################################### [100%] [root@penguin SPECS]#
Now if all you want is the command line rdesktop, you are done and can just to screenshots. However, most of us like graphical frontends. If you downloaded the rpm for tsclient all you need to do is install the package. Otherwise its back to the source directory and .
Install the downloaded rpm package and your done. Time for screenshots.
[root@penguin SPECS]# rpm -Uvh (your download directory)/tsclient-0.132-1.i386.rpm Preparing... ########################################### [100%] 1:tsclient ########################################### [100%] [root@penguin SPECS]#
Move the tarball that you downloaded for tsclient.
[root@penguin SPECS]# cd /usr/src/redhat/SOURCES/ [root@penguin SOURCES]# mv (your download directory)/tsclient-0.132.tar.gz [root@penguin SOURCES]#
Install binary rpm package you just built with following command and your finally done!
[root@penguin SPECS]# rpm -Uvh /usr/src/redhat/RPMS/i386/tsclient-0.132-1.i386.rpm Preparing... ########################################### [100%] 1:tsclient ########################################### [100%] [root@penguin SPECS]#
Finally its time to use that new tool. Check out this screenshot.
Left: Terminal Server Client v0.132 and About Dialog
Center: Terminal Server Client - Display Settings and console running rdesktop
Right: rdesktop connected to Windows XP
Full screenshot click here.