-- 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.
-
tar -cf rdp.tar ./
-
gzip rdp.tar rdp.tgz