summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/nylon-image.bbclass11
-rw-r--r--classes/rootfs_ipk.bbclass2
-rw-r--r--conf/distro/nylon.conf32
-rw-r--r--conf/machine/mtx-3.conf36
-rw-r--r--packages/boost-asio/.mtn2git_empty0
-rw-r--r--packages/boost-asio/boost-asio_0.3.7.bb39
-rw-r--r--packages/boost-asio/files/.mtn2git_empty0
-rw-r--r--packages/boost-asio/files/disable-epoll.patch11
-rw-r--r--packages/images/nylon-image-base.bb17
-rw-r--r--packages/ipkg/ipkg.inc2
-rw-r--r--packages/librcf/.mtn2git_empty0
-rw-r--r--packages/librcf/files/.mtn2git_empty0
-rw-r--r--packages/librcf/files/rcf-0.4-g++-4.1.diff1241
-rw-r--r--packages/librcf/files/rcf-0.4-openembedded.diff13
-rw-r--r--packages/librcf/librcf_0.4.bb46
-rw-r--r--packages/linux/linux-mtx-1-2.4.27/42-usb-ohci-fixes.patch9
-rw-r--r--packages/linux/linux-mtx-2-2.4.27/00-mtx-2.diff324
-rw-r--r--packages/linux/linux-mtx-2-2.4.27/42-usb-ohci-fixes.patch9
-rw-r--r--packages/linux/linux-mtx-2-2.4.27/46-otg.patch56853
-rw-r--r--packages/linux/linux-mtx-2-2.4.27/47-au1000_eth.patch163
-rw-r--r--packages/linux/linux-mtx-2-2.4.27/48-pptp.patch5092
-rw-r--r--packages/linux/linux-mtx-2-2.4.27/defconfig-mtx-2207
-rw-r--r--packages/linux/linux-mtx-2_2.4.27.bb3
-rw-r--r--packages/linux/linux-mtx-3-2.6.15.4/.mtn2git_empty0
-rw-r--r--packages/linux/linux-mtx-3-2.6.15.4/00-mtx-3.diff27080
-rw-r--r--packages/linux/linux-mtx-3-2.6.15.4/01-verbose-and-fatal-mkuboot.diff16
-rw-r--r--packages/linux/linux-mtx-3-2.6.15.4/defconfig-mtx-3960
-rw-r--r--packages/linux/linux-mtx-3-2.6.15/.mtn2git_empty0
-rw-r--r--packages/linux/linux-mtx-3-2.6.15/00-mtx-3.diff27080
-rw-r--r--packages/linux/linux-mtx-3-2.6.15/01-verbose-and-fatal-mkuboot.diff16
-rw-r--r--packages/linux/linux-mtx-3-2.6.15/defconfig-mtx-3960
-rw-r--r--packages/linux/linux-mtx-3_2.6.15.4.bb96
-rw-r--r--packages/linux/linux-mtx-3_2.6.15.bb63
-rw-r--r--packages/pciutils/pciutils-2.2.4/pcimodules-pciutils.diff2
-rw-r--r--packages/perl/libintl-perl_1.16.bb4
-rw-r--r--packages/util-linux/files/mtx-1/.mtn2git_empty0
-rw-r--r--packages/util-linux/files/mtx-1/make_include16
-rw-r--r--packages/util-linux/files/mtx-2/.mtn2git_empty0
-rw-r--r--packages/util-linux/files/mtx-2/make_include16
-rw-r--r--packages/util-linux/util-linux.inc7
40 files changed, 120014 insertions, 412 deletions
diff --git a/classes/nylon-image.bbclass b/classes/nylon-image.bbclass
index 8517c033e9..e24aa33cf4 100644
--- a/classes/nylon-image.bbclass
+++ b/classes/nylon-image.bbclass
@@ -1,5 +1,5 @@
# we dont need the kernel in the image
-ROOTFS_POSTPROCESS_COMMAND = "rm -f ${IMAGE_ROOTFS}/tmp/zImage*"
+ROOTFS_POSTPROCESS_COMMAND = "rm -f ${IMAGE_ROOTFS}/tmp/*Image*"
# create a tar.gz (.imgz) file containing the filesystem and the kernel
nylon_create_imgz() {
@@ -7,8 +7,15 @@ nylon_create_imgz() {
rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.imgz
install -d ${DEPLOY_DIR_IMAGE}/tmp
- cp ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_NAME}.flash.bin ${DEPLOY_DIR_IMAGE}/tmp/zImage.flash
+ # copy the kernel (for mips on flash) into tmp
+ FLASH_BIN=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_NAME}.flash.bin
+ test -f ${FLASH_BIN} && \
+ cp ${FLASH_BIN} ${DEPLOY_DIR_IMAGE}/tmp/zImage.flash
+
+ # copy rootfs.jffs (or so) into tmp
cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.${type} ${DEPLOY_DIR_IMAGE}/tmp/rootfs.${type}
+
+ # make an imgz out of tmp
( cd ${DEPLOY_DIR_IMAGE}/tmp; tar cvzf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.imgz * )
rm -r ${DEPLOY_DIR_IMAGE}/tmp
}
diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass
index 8cea393b43..eeb3f75e11 100644
--- a/classes/rootfs_ipk.bbclass
+++ b/classes/rootfs_ipk.bbclass
@@ -98,7 +98,7 @@ log_check() {
for keyword_die in "Cannot find package" "exit 1" ERR Fail
do
- if (echo "$lf_txt" | grep -v log_check | grep "$keyword_die") &>/dev/null
+ if (echo "$lf_txt" | grep -v log_check | grep "$keyword_die") >/dev/null 2>&1
then
echo "log_check: There were error messages in the logfile"
echo -e "log_check: Matched keyword: [$keyword_die]\n"
diff --git a/conf/distro/nylon.conf b/conf/distro/nylon.conf
index 1c76ef870b..0d21488bb0 100644
--- a/conf/distro/nylon.conf
+++ b/conf/distro/nylon.conf
@@ -20,12 +20,18 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
PREFERRED_PROVIDERS += " virtual/libx11:diet-x11"
PREFERRED_PROVIDERS += " python:python-curses"
+PREFERRED_PROVIDER_classpath = "classpath-minimal"
TARGET_FPU = "soft"
SRCDATE := "20050527"
PREFERRED_VERSION_glibc = "2.3.3"
+PREFERRED_VERSION_shorewall = "2.0.9-monolithic"
+PREFERRED_VERSION_ppp-dsl = "0.1-monolithic"
+PREFERRED_VERSION_mtd-utils = "0.0.0+cvs20041113"
+PREFERRED_VERSION_kismet = "2005-01-R1"
+
PREFERRED_VERSION_gcc-cross-initial = "3.3.4"
PREFERRED_VERSION_gcc-cross = "3.3.4"
PREFERRED_VERSION_gcc-cross-sdk = "3.3.4"
@@ -33,13 +39,30 @@ PREFERRED_VERSION_gcc = "3.3.4"
PREFERRED_VERSION_binutils-cross = "2.14.90.0.7"
PREFERRED_VERSION_binutils-cross-sdk = "2.14.90.0.7"
PREFERRED_VERSION_binutils = "2.16"
-PREFERRED_VERSION_shorewall = "2.0.9-monolithic"
-PREFERRED_VERSION_ppp-dsl = "0.1-monolithic"
-PREFERRED_VERSION_mtd-utils = "0.0.0+cvs20041113"
-PREFERRED_VERSION_kismet = "2005-01-R1"
PREFERRED_VERSION_prism54-firmware = "1.0.3.0"
+KERNEL_VERSION_mtx-1 = "2.4.27"
+KERNEL_VERSION_mtx-2 = "2.4.27"
+
+PREFERRED_VERSION_glibc_mtx-3 = "2.3.5+cvs20050627"
+PREFERRED_VERSION_gcc-cross-initial_mtx-3 = "3.4.4"
+PREFERRED_VERSION_gcc-cross_mtx-3 = "3.4.4"
+PREFERRED_VERSION_gcc-cross-sdk_mtx-3 = "3.4.4"
+PREFERRED_VERSION_gcc_mtx-3 = "3.4.4"
+### did not compile with:
+#PREFERRED_VERSION_binutils-cross_mtx-3 = "2.16.91.0.7"
+#PREFERRED_VERSION_binutils-cross-sdk_mtx-3 = "2.16.91.0.7"
+### falling back to:
+PREFERRED_VERSION_binutils-cross_mtx-3 = "2.15.94.0.1"
+PREFERRED_VERSION_binutils-cross-sdk_mtx-3 = "2.15.94.0.1"
+PREFERRED_VERSION_binutils_mtx-3 = "2.16"
+
+PREFERRED_VERSION_udev = "089"
+
+KERNEL_VERSION_mtx-3 = "2.6.15.4"
+
+
# usually overrrided from local.conf
NYLON_RELEASE = "unstable"
@@ -53,7 +76,6 @@ export FEED_URIS = " \
# image names
DISTRO_VERSION = "${NYLON_VERSION}"
BUILDNAME := "${NYLON_VERSION}"
-KERNEL_VERSION = "2.4.27"
#this does not work: ${@base_read_file('${STAGING_DIR}/${HOST_SYS}/kernel/kernel-abiversion')}
IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}_${BUILDNAME}"
KERNEL_IMAGE_NAME = "kernel-${KERNEL_VERSION}-${MACHINE}_${BUILDNAME}"
diff --git a/conf/machine/mtx-3.conf b/conf/machine/mtx-3.conf
new file mode 100644
index 0000000000..bdd39ab57f
--- /dev/null
+++ b/conf/machine/mtx-3.conf
@@ -0,0 +1,36 @@
+#@TYPE: Machine
+#@NAME: 4G Systems mtx-3
+#@DESCRIPTION: Machine configuration for the mtx-3 (aka SurfBox 3rd generation)
+
+# hint: the mtx-3 architecture is still in experimental state, no hardware
+# is yet available for it
+
+# TARGET_ARCH should be set here in the machine configuration.
+# For compiling the kernel, ARCH will be derived form it by kernel-arch.bbclass
+TARGET_ARCH = "arm"
+
+IPKG_ARCHS = "all arm ${MACHINE}"
+
+PREFERRED_PROVIDER_virtual/kernel = "linux-mtx-3"
+
+EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 -n"
+
+TARGET_CC_ARCH = "-march=armv5te"
+#-mtune=arm926ejs"
+
+USE_DEVFS = "1"
+USE_VT = "0"
+SERIAL_CONSOLE = "115200 ttyS0 vt100"
+
+BOOTSTRAP_EXTRA_RDEPENDS += ""
+
+#PREFERRED_VERSION_yamon = "2.24"
+
+
+# FIXME: old srec files as mtx-2 used to do it ... this may need to get adapted sometime!
+
+# create srec files
+#IMAGE_POSTPROCESS_COMMAND += "\
+# ${TARGET_PREFIX}objcopy -O srec -I binary --adjust-vma 0xbe000000 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.${type} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.srec; \
+# grep -v S7 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.srec > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.srec; \
+# grep -v S0 ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_NAME}.flash.srec >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.srec; "
diff --git a/packages/boost-asio/.mtn2git_empty b/packages/boost-asio/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/boost-asio/.mtn2git_empty
diff --git a/packages/boost-asio/boost-asio_0.3.7.bb b/packages/boost-asio/boost-asio_0.3.7.bb
new file mode 100644
index 0000000000..07888044f2
--- /dev/null
+++ b/packages/boost-asio/boost-asio_0.3.7.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Asio 0.3.7 for work with boost, should be moved into boost package once integrated into the boost distribution."
+HOMEPAGE = "http://asio.sf.net/"
+MAINTAINER = "Martin Dietze <dietze@4g-systems.com>"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "Boost Software License"
+PR = "r1"
+
+inherit debian
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/asio/boost_asio_0_3_7.tar.bz2"
+
+# mtx-[12] use 2.4 kernels but the kernel-libc-headers are from kernel 2.6,
+# thus the automatic epoll detection does not work in epoll_reactor_fwd.hpp.
+SRC_URI_append_mtx-1 = " file://disable-epoll.patch;patch=1"
+SRC_URI_append_mtx-2 = " file://disable-epoll.patch;patch=1"
+
+S = "${WORKDIR}/boost_asio_0_3_7"
+
+do_configure() {
+}
+
+do_compile() {
+}
+
+do_install() {
+ cd ${S}
+ install -d ${D}/usr/include
+ cp -dpR boost ${D}/usr/include
+}
+
+do_stage() {
+ cd ${S}
+ install -d -m 775 ${STAGING_INCDIR}
+ cp -dpR boost ${STAGING_INCDIR}
+}
+
+PACKAGES = "${PN}-dev"
+FILES_${PN}-dev = "/usr/include"
diff --git a/packages/boost-asio/files/.mtn2git_empty b/packages/boost-asio/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/boost-asio/files/.mtn2git_empty
diff --git a/packages/boost-asio/files/disable-epoll.patch b/packages/boost-asio/files/disable-epoll.patch
new file mode 100644
index 0000000000..2d251f6440
--- /dev/null
+++ b/packages/boost-asio/files/disable-epoll.patch
@@ -0,0 +1,11 @@
+--- boost_asio_0_3_7-orig/boost/asio/detail/epoll_reactor_fwd.hpp 2006-10-27 09:59:16.622530738 +0200
++++ boost_asio_0_3_7/boost/asio/detail/epoll_reactor_fwd.hpp 2006-10-27 09:59:41.131614794 +0200
+@@ -17,7 +17,7 @@
+
+ #include <boost/asio/detail/push_options.hpp>
+
+-#if !defined(BOOST_ASIO_DISABLE_EPOLL)
++#if !defined(BOOST_ASIO_DISABLE_EPOLL) && 0 // mtx-[12] uses 2.4 kernels!
+ #if defined(__linux__) // This service is only supported on Linux.
+
+ #include <boost/asio/detail/push_options.hpp>
diff --git a/packages/images/nylon-image-base.bb b/packages/images/nylon-image-base.bb
index bcbcc67c05..4034590822 100644
--- a/packages/images/nylon-image-base.bb
+++ b/packages/images/nylon-image-base.bb
@@ -1,24 +1,31 @@
-inherit image_ipk nylon-image
+inherit image_ipk
+inherit nylon_image
LICENSE = MIT
export IMAGE_BASENAME = "nylon-base"
NYLON_BASE = "base-files base-passwd bash busybox \
ipkg initscripts less \
- modutils modutils-initscripts mtd-utils \
+ mtd-utils \
nano ncurses netbase \
openssh sysvinit \
timezones tinylogin"
DEPENDS += "virtual/kernel less nano"
-RDEPENDS = "kernel modutils-depmod modutils-modinfo less nano elvis-tiny \
+RDEPENDS = "kernel less nano elvis-tiny \
${NYLON_BASE} ${BOOTSTRAP_EXTRA_RDEPENDS}"
+## kernel 2.4 ##
+RDEPENDS_append_mtx-1 = " modutils modutils-initscripts modutils-depmod modutils-modinfo"
+RDEPENDS_append_mtx-2 = " modutils modutils-initscripts modutils-depmod modutils-modinfo"
+## kernel 2.6 ##
+RDEPENDS_append_mtx-3 = " module-init-tools udev"
+
export IPKG_INSTALL = "${RDEPENDS}"
IMAGE_LINGUAS = ""
# we dont need the kernel in the image
-ROOTFS_POSTPROCESS_COMMAND = "rm -f ${IMAGE_ROOTFS}/tmp/zImage*"
+ROOTFS_POSTPROCESS_COMMAND = "rm -f ${IMAGE_ROOTFS}/tmp/*Image*"
+# needed?? the above line is the same as in classes/nylon-image.bbclass
-inherit image_ipk nylon-image
diff --git a/packages/ipkg/ipkg.inc b/packages/ipkg/ipkg.inc
index adc7714bea..b1e2f19267 100644
--- a/packages/ipkg/ipkg.inc
+++ b/packages/ipkg/ipkg.inc
@@ -26,7 +26,7 @@ pkg_postinst_ipkg () {
if [ "x$D" != "x" ]; then
install -d ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d
# this happens at S98 where our good 'ole packages script used to run
- echo -e "#!/bin/sh
+ echo "#!/bin/sh
ipkg-cl configure
" > ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d/S${IPKG_INIT_POSITION}configure
chmod 0755 ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d/S${IPKG_INIT_POSITION}configure
diff --git a/packages/librcf/.mtn2git_empty b/packages/librcf/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/librcf/.mtn2git_empty
diff --git a/packages/librcf/files/.mtn2git_empty b/packages/librcf/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/librcf/files/.mtn2git_empty
diff --git a/packages/librcf/files/rcf-0.4-g++-4.1.diff b/packages/librcf/files/rcf-0.4-g++-4.1.diff
new file mode 100644
index 0000000000..8316d99162
--- /dev/null
+++ b/packages/librcf/files/rcf-0.4-g++-4.1.diff
@@ -0,0 +1,1241 @@
+diff -uNr RCF-0.4-orig/Makefile RCF-0.4/Makefile
+--- RCF-0.4-orig/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ RCF-0.4/Makefile 2006-10-24 16:08:00.799705810 +0200
+@@ -0,0 +1,32 @@
++#
++# Top level Makefile for RCF library and test programs
++#
++# Martin Dietze <dietze@4g-systems.com>
++#
++
++SUBDIRS = src test
++DESTDIR =
++prefix = /usr/local
++
++.PHONY: all clean test syntax shared install uninstall
++
++all:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
++
++shared:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
++
++install:
++ $(MAKE) -C src $@
++
++uninstall:
++ $(MAKE) -C src $@
++
++syntax:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
++
++test:
++ $(MAKE) -C $@ $@
++
++clean:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
+diff -uNr RCF-0.4-orig/include/RCF/CheckRtti.hpp RCF-0.4/include/RCF/CheckRtti.hpp
+--- RCF-0.4-orig/include/RCF/CheckRtti.hpp 2006-01-11 01:06:52.000000000 +0100
++++ RCF-0.4/include/RCF/CheckRtti.hpp 2006-10-19 10:03:09.000000000 +0200
+@@ -24,7 +24,7 @@
+ {}
+ };
+
+- struct B
++ struct B : public A
+ {
+ virtual ~B()
+ {}
+@@ -35,7 +35,7 @@
+ B b;
+ // RTTI support not detected!
+ // If you're using Visual C++, set "Enable Run-Time Type Info" to true, in the Project Properties | C/C++ | Language options,
+- dynamic_cast<A &>(b);
++ (void)dynamic_cast<A &>(b);
+ }
+ };
+
+diff -uNr RCF-0.4-orig/include/RCF/EndpointBrokerService.hpp RCF-0.4/include/RCF/EndpointBrokerService.hpp
+--- RCF-0.4-orig/include/RCF/EndpointBrokerService.hpp 2006-01-11 01:06:52.000000000 +0100
++++ RCF-0.4/include/RCF/EndpointBrokerService.hpp 2006-10-19 10:16:40.000000000 +0200
+@@ -49,12 +49,12 @@
+ friend class EndpointBrokerService;
+ typedef RcfClient<I_EndpointServer> Client;
+ typedef boost::shared_ptr<Client> ClientPtr;
++ ServerTransportPtr mServerTransportPtr;
+ std::string mEndpointName;
+- std::string mEndpointServerPassword;
+ std::string mEndpointClientPassword;
++ std::string mEndpointServerPassword;
+ std::vector<SessionPtr> mConnections;
+ ClientPtr mMasterConnection;
+- ServerTransportPtr mServerTransportPtr;
+ };
+
+ class EndpointBrokerService :
+diff -uNr RCF-0.4-orig/include/RCF/IpServerTransport.hpp RCF-0.4/include/RCF/IpServerTransport.hpp
+--- RCF-0.4-orig/include/RCF/IpServerTransport.hpp 2006-02-04 01:01:22.000000000 +0100
++++ RCF-0.4/include/RCF/IpServerTransport.hpp 2006-10-19 10:17:56.000000000 +0200
+@@ -87,10 +87,10 @@
+ }
+
+ private:
++ mutable ReadWriteMutex mReadWriteMutex;
+ std::string mNetworkInterface;
+ std::vector<std::string> mAllowedIps;
+ std::vector<u_long> mAllowedAddrs;
+- mutable ReadWriteMutex mReadWriteMutex;
+ };
+
+ } // namespace RCF
+diff -uNr RCF-0.4-orig/include/RCF/OpenSslEncryptionFilter.hpp RCF-0.4/include/RCF/OpenSslEncryptionFilter.hpp
+--- RCF-0.4-orig/include/RCF/OpenSslEncryptionFilter.hpp 2006-01-11 01:06:54.000000000 +0100
++++ RCF-0.4/include/RCF/OpenSslEncryptionFilter.hpp 2006-10-19 10:44:20.000000000 +0200
+@@ -28,6 +28,8 @@
+ SslClient
+ };
+
++ class OpenSslEncryptionFilterImpl;
++
+ /// Filter implementing the SSL encryption protocol, through the OpenSSL library.
+ class OpenSslEncryptionFilter : public IdentityFilter, boost::noncopyable
+ {
+diff -uNr RCF-0.4-orig/include/RCF/PublishingService.hpp RCF-0.4/include/RCF/PublishingService.hpp
+--- RCF-0.4-orig/include/RCF/PublishingService.hpp 2006-07-27 23:30:10.000000000 +0200
++++ RCF-0.4/include/RCF/PublishingService.hpp 2006-10-19 16:24:36.000000000 +0200
+@@ -15,6 +15,7 @@
+ #include <boost/shared_ptr.hpp>
+ #include <boost/utility.hpp>
+
++#include <RCF/ClientStub.hpp>
+ #include <RCF/GetInterfaceName.hpp>
+ #include <RCF/Service.hpp>
+ #include <RCF/ThreadLibrary.hpp>
+diff -uNr RCF-0.4-orig/include/RCF/RcfServer.hpp RCF-0.4/include/RCF/RcfServer.hpp
+--- RCF-0.4-orig/include/RCF/RcfServer.hpp 2006-04-02 21:39:32.000000000 +0200
++++ RCF-0.4/include/RCF/RcfServer.hpp 2006-10-19 16:26:26.000000000 +0200
+@@ -214,12 +214,12 @@
+ ThreadSpecificSessionQueuePtr mThreadSpecificSessionQueuePtr;
+ // eventually other specialized session queues...
+
+- volatile bool mServerThreadsStopFlag;
+ Mutex mOpenedMutex;
+ bool mOpened;
+
+ Mutex mStartedMutex;
+ bool mStarted;
++ volatile bool mServerThreadsStopFlag;
+
+ public:
+
+diff -uNr RCF-0.4-orig/include/RCF/StubFactory.hpp RCF-0.4/include/RCF/StubFactory.hpp
+--- RCF-0.4-orig/include/RCF/StubFactory.hpp 2006-01-11 01:06:54.000000000 +0100
++++ RCF-0.4/include/RCF/StubFactory.hpp 2006-10-19 10:28:45.000000000 +0200
+@@ -9,6 +9,7 @@
+ #ifndef INCLUDE_RCF_STUBFACTORY_HPP
+ #define INCLUDE_RCF_STUBFACTORY_HPP
+
++#include <RCF/ServerStub.hpp>
+ #include <boost/shared_ptr.hpp>
+
+ namespace RCF {
+diff -uNr RCF-0.4-orig/include/RCF/SubscriptionService.hpp RCF-0.4/include/RCF/SubscriptionService.hpp
+--- RCF-0.4-orig/include/RCF/SubscriptionService.hpp 2006-07-27 23:30:10.000000000 +0200
++++ RCF-0.4/include/RCF/SubscriptionService.hpp 2006-10-23 11:43:31.826971900 +0200
+@@ -19,6 +19,7 @@
+
+ #include <RCF/GetInterfaceName.hpp>
+ #include <RCF/Service.hpp>
++#include <RCF/ServerStub.hpp>
+
+ namespace RCF {
+
+diff -uNr RCF-0.4-orig/include/RCF/TcpClientTransport.hpp RCF-0.4/include/RCF/TcpClientTransport.hpp
+--- RCF-0.4-orig/include/RCF/TcpClientTransport.hpp 2006-02-05 05:52:38.000000000 +0100
++++ RCF-0.4/include/RCF/TcpClientTransport.hpp 2006-10-20 16:59:45.000000000 +0200
+@@ -93,7 +93,7 @@
+ class TcpClientTransport : public I_ClientTransport
+ {
+ public:
+- TcpClientTransport::TcpClientTransport(const TcpClientTransport &rhs);
++ TcpClientTransport(const TcpClientTransport &rhs);
+ TcpClientTransport(const std::string &ip, int port);
+ TcpClientTransport(sockaddr_in remoteAddr);
+ TcpClientTransport(int fd);
+@@ -131,8 +131,8 @@
+ int fd;
+ bool own;
+
+- std::size_t mBytesTransferred;
+ int mError;
++ std::size_t mBytesTransferred;
+
+ boost::shared_ptr< CloseFunctor > mCloseFunctor;
+ std::vector<FilterPtr> mTransportFilters;
+diff -uNr RCF-0.4-orig/include/RCF/TcpServerTransport.hpp RCF-0.4/include/RCF/TcpServerTransport.hpp
+--- RCF-0.4-orig/include/RCF/TcpServerTransport.hpp 2006-02-07 21:37:16.000000000 +0100
++++ RCF-0.4/include/RCF/TcpServerTransport.hpp 2006-10-20 17:27:25.000000000 +0200
+@@ -59,12 +59,12 @@
+ WritingData,
+ };
+
++ Fd fd;
+ State state;
+ std::vector<char> readBuffer;
+ std::size_t readBufferRemaining;
+ std::vector<char> writeBuffer;
+ std::size_t writeBufferRemaining;
+- Fd fd;
+ };
+
+ typedef boost::shared_ptr<I_Session> SessionPtr;
+diff -uNr RCF-0.4-orig/include/RCF/ZlibCompressionFilter.hpp RCF-0.4/include/RCF/ZlibCompressionFilter.hpp
+--- RCF-0.4-orig/include/RCF/ZlibCompressionFilter.hpp 2006-01-11 01:06:54.000000000 +0100
++++ RCF-0.4/include/RCF/ZlibCompressionFilter.hpp 2006-10-23 16:29:58.698611358 +0200
+@@ -21,6 +21,9 @@
+ static const int RCF_FILTER_ZLIB_COMPRESSION_STATELESS = 3;
+
+ static const int RCF_FILTER_ZLIB_COMPRESSION_STATEFUL = 4;
++
++ class ZlibCompressionReadFilter;
++ class ZlibCompressionWriteFilter;
+
+ class ZlibCompressionFilter : public IdentityFilter, boost::noncopyable
+ {
+diff -uNr RCF-0.4-orig/include/RCF/util/Platform/Machine/ByteOrder.hpp RCF-0.4/include/RCF/util/Platform/Machine/ByteOrder.hpp
+--- RCF-0.4-orig/include/RCF/util/Platform/Machine/ByteOrder.hpp 2006-09-13 17:02:32.000000000 +0200
++++ RCF-0.4/include/RCF/util/Platform/Machine/ByteOrder.hpp 2006-10-24 17:40:39.917363264 +0200
+@@ -14,6 +14,8 @@
+ #include "x86/ByteOrder.hpp"
+ #elif defined(_M_IA64) || defined(_M_AMD64) || defined(_M_X64)
+ #include "x86/ByteOrder.hpp"
++#elif defined(_MIPSEL) && _MIPSEL == 1
++#include "x86/ByteOrder.hpp"
+ #else
+ #include "UnknownMachine/ByteOrder.hpp"
+ #endif
+diff -uNr RCF-0.4-orig/include/RCF/util/UnusedVariable.hpp RCF-0.4/include/RCF/util/UnusedVariable.hpp
+--- RCF-0.4-orig/include/RCF/util/UnusedVariable.hpp 2006-01-11 01:06:56.000000000 +0100
++++ RCF-0.4/include/RCF/util/UnusedVariable.hpp 2006-10-20 17:40:00.000000000 +0200
+@@ -9,6 +9,10 @@
+ #define INCLUDE_UTIL_UNUSEDVARIABLE_HPP
+
+ // Eliminate unused variable warnings, eg for scoped lock objects
++#ifndef __GNUC__
+ #define RCF_UNUSED_VARIABLE(x) ((void) x)
++#else
++#define RCF_UNUSED_VARIABLE(x)
++#endif
+
+ #endif // ! INCLUDE_UTIL_UNUSEDVARIABLE_HPP
+diff -uNr RCF-0.4-orig/include/SF/I_Stream.hpp RCF-0.4/include/SF/I_Stream.hpp
+--- RCF-0.4-orig/include/SF/I_Stream.hpp 2006-01-11 01:07:00.000000000 +0100
++++ RCF-0.4/include/SF/I_Stream.hpp 2006-10-19 10:12:54.000000000 +0200
+@@ -19,6 +19,7 @@
+ class I_ContextRead
+ {
+ public:
++ virtual ~I_ContextRead(void) {}
+ virtual void add(SF::UInt32 nid, const ObjectId &id) = 0;
+ virtual void add(void *ptr, const std::type_info &objType, void *pObj ) = 0;
+ virtual bool query(SF::UInt32 nid, ObjectId &id) = 0;
+@@ -29,6 +30,7 @@
+ class I_ContextWrite
+ {
+ public:
++ virtual ~I_ContextWrite(void) {}
+ virtual void setEnabled(bool enable) = 0;
+ virtual bool getEnabled() = 0;
+ virtual void add(const ObjectId &id, SF::UInt32 &nid) = 0;
+@@ -38,28 +40,33 @@
+
+ class I_WithContextRead {
+ public:
++ virtual ~I_WithContextRead(void) {}
+ virtual I_ContextRead &getContext() = 0;
+ };
+
+ class I_WithContextWrite {
+ public:
++ virtual ~I_WithContextWrite(void) {}
+ virtual I_ContextWrite &getContext() = 0;
+ };
+
+ class I_LocalStorage {
+ public:
++ virtual ~I_LocalStorage(void) {}
+ virtual void set(const std::type_info &objType, void *) = 0;
+ virtual void *get(const std::type_info &objType) = 0;
+ };
+
+ class I_WithLocalStorage {
+ public:
++ virtual ~I_WithLocalStorage(void) {}
+ virtual I_LocalStorage &getLocalStorage() = 0;
+ };
+
+ class I_Encoding
+ {
+ public:
++ virtual ~I_Encoding(void) {}
+ virtual UInt32 getCount(DataPtr &data, const std::type_info &type) = 0;
+ virtual void toData(DataPtr &data, void *pvObject, const std::type_info &type, int nCount) = 0;
+ virtual void toObject(DataPtr &data, void *pvObject, const std::type_info &type, int nCount) = 0;
+@@ -68,6 +75,7 @@
+ class I_WithEncoding
+ {
+ public:
++ virtual ~I_WithEncoding(void) {}
+ virtual I_Encoding &getEncoding() = 0;
+ };
+
+@@ -80,6 +88,7 @@
+ class WithFormatWrite
+ {
+ public:
++ virtual ~WithFormatWrite(void) {}
+ virtual void begin(const Node &) = 0;
+ virtual void put(const DataPtr &) = 0;
+ virtual void end() = 0;
+@@ -88,6 +97,7 @@
+ class WithFormatRead
+ {
+ public:
++ virtual ~WithFormatRead(void) {}
+ virtual bool begin(Node &) = 0;
+ virtual bool get(DataPtr &) = 0;
+ virtual void end() = 0;
+diff -uNr RCF-0.4-orig/include/SF/SerializeSmartPtr.hpp RCF-0.4/include/SF/SerializeSmartPtr.hpp
+--- RCF-0.4-orig/include/SF/SerializeSmartPtr.hpp 2006-01-19 07:44:30.000000000 +0100
++++ RCF-0.4/include/SF/SerializeSmartPtr.hpp 2006-10-24 12:50:50.039809323 +0200
+@@ -20,7 +20,6 @@
+ template< template<typename> class SmartPtr, typename T >
+ inline bool serializeSimpleSmartPtr(SmartPtr<T> **pps, SF::Archive &ar)
+ {
+- bool bRet = false;
+ if (ar.isRead()) {
+ if (ar.isFlagSet(Archive::POINTER)) *pps = new SmartPtr<T>;
+ T *pt = NULL;
+diff -uNr RCF-0.4-orig/include/SF/SerializeStaticArray.hpp RCF-0.4/include/SF/SerializeStaticArray.hpp
+--- RCF-0.4-orig/include/SF/SerializeStaticArray.hpp 2006-01-11 01:07:00.000000000 +0100
++++ RCF-0.4/include/SF/SerializeStaticArray.hpp 2006-10-23 17:02:39.489476120 +0200
+@@ -2,6 +2,8 @@
+ #ifndef INCLUDE_SF_SERIALIZESTATICARRAY_HPP
+ #define INCLUDE_SF_SERIALIZESTATICARRAY_HPP
+
++#include <boost/type_traits.hpp>
++
+ #include <SF/Archive.hpp>
+
+ namespace SF {
+diff -uNr RCF-0.4-orig/include/SF/Stream.hpp RCF-0.4/include/SF/Stream.hpp
+--- RCF-0.4-orig/include/SF/Stream.hpp 2006-09-19 11:53:44.000000000 +0200
++++ RCF-0.4/include/SF/Stream.hpp 2006-10-19 10:14:35.000000000 +0200
+@@ -221,7 +221,7 @@
+ {
+ public:
+ OStream(std::ostream &os);
+- UInt32 OStream::writeRaw(const Byte8 *pBytes, UInt32 nLength);
++ UInt32 writeRaw(const Byte8 *pBytes, UInt32 nLength);
+
+ private:
+ void begin(const Node &node);
+diff -uNr RCF-0.4-orig/include/SF/vector.hpp RCF-0.4/include/SF/vector.hpp
+--- RCF-0.4-orig/include/SF/vector.hpp 2006-09-19 11:53:46.000000000 +0200
++++ RCF-0.4/include/SF/vector.hpp 2006-10-23 17:05:37.129355307 +0200
+@@ -7,6 +7,7 @@
+ #include <SF/SerializeDynamicArray.hpp>
+ #include <SF/SerializeStl.hpp>
+ #include <SF/Tools.hpp>
++#include <SF/Stream.hpp>
+
+ namespace SF {
+
+diff -uNr RCF-0.4-orig/src/Makefile RCF-0.4/src/Makefile
+--- RCF-0.4-orig/src/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ RCF-0.4/src/Makefile 2006-10-24 16:08:09.684099349 +0200
+@@ -0,0 +1,29 @@
++#
++# Makefile for RCF library
++#
++# Martin Dietze <dietze@4g-systems.com>
++#
++
++SUBDIRS = SF RCF
++DESTDIR =
++prefix = /usr/local
++
++.PHONY: all clean syntax shared install uninstall
++
++all:
++ $(MAKE) -C RCF $@
++
++shared:
++ $(MAKE) -C RCF $@
++
++install:
++ $(MAKE) -C RCF $@
++
++uninstall:
++ $(MAKE) -C RCF $@
++
++syntax:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
++
++clean:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
+diff -uNr RCF-0.4-orig/src/RCF/AsyncFilter.cpp RCF-0.4/src/RCF/AsyncFilter.cpp
+--- RCF-0.4-orig/src/RCF/AsyncFilter.cpp 2006-01-11 01:07:02.000000000 +0100
++++ RCF-0.4/src/RCF/AsyncFilter.cpp 2006-10-19 10:00:18.000000000 +0200
+@@ -149,8 +149,8 @@
+ ReadProxy(const std::string &buffer, FilterPtr filterPtr) :
+ mBuffer(buffer),
+ mchBuffer(mBuffer.c_str()),
+- mchBufferLength( static_cast<int>(mBuffer.length()) ),
+ mchBufferPos(),
++ mchBufferLength( static_cast<int>(mBuffer.length()) ),
+ mFilterPtr(filterPtr)
+ {}
+
+diff -uNr RCF-0.4-orig/src/RCF/Makefil