*Future Lab - GPL Software for QNX 4.x* This package contains the full source code, binaries and documentation for all current Future Lab GPL applications for QNX 4.x . This version is designated 1.36-2006.09.17 which is a package version. Each application and the *Bbuuzzb* database engine also have their own versions. Any mention of /QNX/ in this document refers to the QNX 4.x OS. The /QNX 4.x/ client/server applications do not use TCP/IP and sockets for interprocess communication (*IPC*). Since /QNX/ has its own IPC method consisting of message passing, I have used this *IPC* method in the /QNX/ /GPL/ applications. The /QNX/ *C* code base has been merged with all other to form a single *C* code base. Proper compilation relies on the use of the *IPC_QNX* and *MULTIUSER* pre-processor defines. All Future Lab /GPL/ applications are currently supported under /QNX/ except for the following: * socloc - since (at this time) /socloc/ is tied to *TCP/IP* * iresolve - this applicated performs *TCP/IP* specific lookups The above applicaton code and binaries are not included but the documentation is included. Differences From Other Platforms Since this /QNX/ software is not based on *TCP/IP* all protocol specific references have been removed. /QNX/ client applications connect using the builtin *nameloc* service. /QNX/ server applications register their service name (which is the same as the socket service name that /socloc/ uses with the *nameloc* global indicator (*/*) prefixed to the name [to indicate a network global service]) with *nameloc*. Since /QNX/ *nameloc* does not allow more than one registration of the same name, the failover protection that is built into /socloc/ and the other *TCP/IP* API's is currently not available under /QNX/. All *C++* code is not included due to the Watcom compiler being pre-ANSI. The /QNX/ shell scripts are slightly different than the normal Linux/Unix scripts. In particular, references to any /socloc/ code are removed. This package includes the complete /QNX/ scripts although the documentation discusses the standard Unix scripts. System Requirements You must have enough disk space for the decompressed contents of this package which is about 4.52MB currently. You also must be running /QNX/. The binaries included in this package were compiled for /QNX/ 4.23a using Watcom C 10.6. In order to run the client/server applications, you must also have /QNX/ message passing operational. Since all of the enclosed software is extremely compact and not at all bloated , the memory requirements are minimal. I would say 1MB is more than enough to run all the servers together with one of the included client applications on a single machine. If you want to re-compile this /GPL/ code, you will need a copy of Watcom C installed under /QNX/. Re-compiling the source code <#recompile> is completely discussed below. Installing the Package The /QNX/ package is distributed in *gzip* *tar*ed format. You first will have to decompress the package and then un*tar* the decompressed package. To decompress the package, you will need to have the *gzip* program installed. All files in this package use the 8.3 naming convention except for the HTML documentation which uses the *.html* extension (for compatibility with Unix). To install the package: * create a top level directory, name it as you wish * change directory to the one you just created * copy the package into this directory * decompress the package with: o gzip -d qnx-4x.tar.gz * un*tar* the package with: o tar -xvf qnx-4x.tar Package Structure This package contains all the source code, executable programs and documentation. Files in the package are distributed with the owner *root* and group *root*. The file mode bits have been set to allow anyone read/write access. The directory structure of the package is as follows: * gpl.txt - GPL license file * index.html - re-load 'readme' * readme.html - this file * apps - binary programs * code - source code tree o apps - GPL application code o clib - GPL library code o dbeng - *Bbuuzzb* database API code o include - header files o script - QNX build scripts * css - cascading stylesheet (CSS level 1) * docs - documentation tree o apps - GPL application docs o cpp - C++ GPL documentation + apps - C++ application docs + library - C++ library docs o dbeng - *Bbuuzzb* database API docs o library - GPL library docs o script - Unix script docs o socloc - /socloc/ docs o tcl - tcl docs Recompiling the Source Code With Watcom C In order to recompile the source code included in this package, you will need to have Watcom C installed. Use the build scripts contained in the package to compile all or part of the applications. You will have to change the assumed directory structure in the scripts to the one that you are using. Running the Applications, A Quick Start Most of the single user applications can be run immediately from the command line. All of the applications are text console-based. Many of the applications have one or more configuration files that need to be read. You should execute all of the Future Lab /GPL/ applications from within the same directory where they are stored. You should also store all configuration files within this same directory. Here is a list of all Future Lab /GPL/ applications and their runtime requirements: datagen This application only has a single user form and does not require configuration files. This application can be placed into any directory and may be run from any directory. Refer to the datagen application doc for more information. datimec This is the multi user client application that interfaces with the timesync server. This application requires at least one /timesync server/ to be running. Refer to the datimec application doc for more information. db This application is the single user command line interface to the *Bbuuzzb* database engine. This application needs to be executed in a directory that also contains the *Bbuuzzb* database configuration file. Refer to the db application doc for more information. dbm This application is the multi user command line interface to the *Bbuuzzb* database server. In order to run this application, the *Bbuuzzb* database server must be running. Refer to the dbm application doc for more information. dbgen This application is the single user random data generator for the *Bbuuzzb* database engine. This application needs to be executed in a directory that also contains the *Bbuuzzb* database configuration file. Refer to the dbgen application doc for more information. dbgenm This application is the multi user random data generator for the *Bbuuzzb* database server. In order to run this application, the *Bbuuzzb* database server must be running. This application needs to be executed in a directory that also contains a *Bbuuzzb* configuration file. Refer to the dbgenm application doc for more information. dbsrv This application is the *Bbuuzzb* database server. In order to run this server, the system log server must first be running. This application needs to be executed in a directory that also contains the *Bbuuzzb* configuration file. You must be logged on as *root* to execute this application. When this server is executed, it will register the global name */Bbuuzzb* with the *nameloc* service. Refer to the dbsrv application doc for more information. dbstresm This application is the multi user database stress program. It sends operational commands to the *Bbuuzzb* database server. In order to run this application, the *Bbuuzzb* database server must be running. Refer to the dbstresm application doc for more information. dbstress This application is the single user database stress program. It sends operational commands to the *Bbuuzzb* database engine. This application needs to be executed in a directory that also contains the *Bbuuzzb* database configuration file. Refer to the dbstress application doc for more information. dumsockc This application is the command line client for the *dumsocks* server. In order to successfully run this application, a *dumsocks* server must already be running. Refer to the dumsockc application doc for more information. dumsocks This application is a simple test server. You must be logged on as *root* to execute this application. When this server is executed, it will register the global name */dumsocks* with the *nameloc* service. Refer to the dumsocks application doc for more infomation. sockc This application is a universal client which will talk to just about any server. Refer to the sockc application doc for more information. sys_log This program is the system log server. You must be logged on as *root* to execute this application. When this server is executed, it will register the global name */sys_log* with the *nameloc* service. Refer to the sys_log application doc for more information. timesync This application is the time synchronization server. Refer to the timesync application doc for more information. fxpstres This application only has a single user form and does not require and configuration files. This application can be placed into any directory and may be run from any directory. Refer to the fxpstres application doc for more information. dos2unix This application only has a single user form and does not require and configuration files. This application can be placed into any directory and may be run from any directory. Refer to the dos2unix application doc for more information. iex This application is the single user *ASCII* import program into the *Bbuuzzb* database engine. This application needs to be executed in a directory that also contains the *Bbuuzzb* database configuration file. Refer to the iex application doc for more information. iexm This application is the multi user *ASCII* import program into the *Bbuuzzb* database server. In order to run this application, the *Bbuuzzb* database server must be running. This application needs to be executed in a directory that also contains a socloc startup file and the *Bbuuzzb* configuration file. Refer to the iexm application doc for more information. rmtree This application will remove an entire directory tree from any disk. Refer to the rmtree application doc for more information. daymvdel This application will move or delete files or entire directory trees based on file age in days. This application requires a task list file before the program can be run. Refer to the daymvdel application doc for more information. sched This application will track your personal schedule of events including budget. This is a single user *Bbuuzzb* database application. This application needs to be executed in a directory that also contains a *Bbuuzzb* configuration file. Refer to the sched application doc for more information. schedm This application will track your personal schedule of events including budget. This is a client/server *Bbuuzzb* application. Refer to the sched application doc for more information. Documentation Guide Here is a complete guide to the included package documentation. Note that I have tried to make sure that most links function properly. You will find that all links that refer to the Future Lab /GPL/ software function. Links that refer to other parts of the Future Lab web site will not function properly from this readme file. In that case, please refer to the actual Future Lab web site. * Software change log * C software overview * C++ software overview * Bbuuzzb database engine and API guide * Socloc overview * Socloc API guide * GPL library guide * Unix script guide * Tcl software overview Goto Top <#top> | Contact Author | Future Lab Web Site | Feedback ------------------------------------------------------------------------ Copyright © 1999-2006 Future Lab, Last Updated Sep 20, 2006 ------------------------------------------------------------------------