-- 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