-- Main.ctucker - 08 Jan 2009

Create A Snapin Package to Update rdesktop

Most of our Neoware thin clients came equipped with a freeware RDP client called rdesktop.

You will require a Linux development environment which is compatible with the Neoware Eon platform.

Download The Latest Source Code for rdesktop

We normally obtain the most recent versions of rdesktop from the SourceForge website at the following link. http://sourceforge.net/projects/rdesktop/

Download the .tar.gz file containing the source code and transfer it to the development system. There, unpack the .tar.gz file in an appropriate work location on the development system.

Compile A Static Version of the rdesktop Binary

It is a good idea to perform this part of the development as a common user and not a super user. This way, you do not run the risk of unintensionaly installing any undesired software into Within the unpacked source code directory first configure your rdesktop package with the following command.

./configure --enable-static-openssl --enable-static-libsamplerate

This will create an appropriate Makefile which will require some additional editing. The KEYMAP_PATH should be adjected since Eons retain keymap information in an alternate location. The -static option should be added to the CFLAGS as well as the LDFLAGS variables as shown below.

KEYMAP_PATH = /usr/lib/kbd/keymaps/rdesktop/

CFLAGS      = -static -O2 -Wall -I/usr/include   -DPACKAGE_NAME=\"rdesktop\" -DPACKAGE_TARNAME=\"rdesktop\" -DPACKAGE_VERSION=\"1.6.0\" -DPACKAGE_STRING=\"rdesktop\ 1.6.0\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DL_ENDIAN=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_LOCALE_H=1 -DHAVE_LANGINFO_H=1 -Dssldir=\"/usr\" -DEGD_SOCKET=\"/var/run/egd-pool\" -DWITH_RDPSND=1 -DRDPSND_OSS=1 -DHAVE_DIRENT_H=1 -DHAVE_DIRFD=1 -DHAVE_DECL_DIRFD=1 -DHAVE_ICONV_H=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_SYS_VFS_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_SYS_STATFS_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_MOUNT_H=1 -DSTAT_STATVFS=1 -DHAVE_STRUCT_STATVFS_F_NAMEMAX=1 -DHAVE_STRUCT_STATFS_F_NAMELEN=1 -D_FILE_OFFSET_BITS=64 -DHAVE_MNTENT_H=1 -DHAVE_SETMNTENT=1 -DKEYMAP_PATH=\"$(KEYMAP_PATH)\"
LDFLAGS     = -static  /usr/lib/libcrypto.a  /usr/lib/libpthread.a -L/usr/X11R6/lib

Then the binary may be compiled using the make command. You might want to run a make clean first, if have already attempted one build already. But do not use make install.

Embed New Binary Into The rdp.tgz File

The new rdesktop binary and its accompanying keymap files must be incorporated into a gziped tar ball file in order for the new client to be deployed to the Eon terminals. Previous versions of Neoware rdesktop have been supplied in a file named rdp.tgz. The file structure of this package has two directories placed at its root /etc and /usr. We simply unpacked this file on the build server for the new version of rdesktop and replaced the old version of the rdesktop binary with our recently created new version.

The rdesktop binary should be placed at /usr/X11R6/bin/rdesktop. The keymap files for the new rdesktop binary should be added into the directory /usr/lib/kbd/keymaps/rdesktop/. Also, the following files should be edited so to reflect the new version of the RDP client. In this case, rdesktop 1.6 using RDP protocol version 6 ( RDP6).

  • /etc/cm.d/rdp.sheppard
    • type_short="RDP6"
    • type_long="rdesktop 1.6"
  • /etc/snapins/rdp
    • snapinVersion="3.0.3-2"
    • clientVersion="1.6.0"
In the root directory for this file structure ensure ownership and group of all files are set to root and make sure all files are world readable. Then run the following commands.
  1. tar -cf rdp.tar ./
  2. gzip rdp.tar rdp.tgz
Topic revision: r5 - 2013-08-07 - DrewPilcher
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback