readme-tpf.html revision 7cebe0ba33ae904951119a6a0a9d0ea2773f18c3
4be39ac606cc80de5b28e745a94b099557387ff7vboxsync<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<HTML>
d34409ad02ea0d28e08a6c4b089a412fdb3b4c9cvboxsync<HEAD>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<TITLE>The Apache TPF Port</TITLE>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync</HEAD>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<BODY>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync<A NAME="top"></A>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<blockquote><strong>Warning:</strong>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsyncThis document has not been updated to take into account changes
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsyncmade in the 2.0 version of the Apache HTTP Server. Some of the
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsyncinformation may still be relevant, but please use it
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsyncwith care.
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync</blockquote>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<H1 align="center">Overview of the Apache TPF Port</H1>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<HR>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<CENTER>[&nbsp;<A HREF="#configuration_files">Configuration Files</A>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync &nbsp;|&nbsp;<A HREF="#whats_available">What's Available</A>
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync &nbsp;|&nbsp;<A HREF="#porting_notes">Porting Notes</A>&nbsp;]
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync</CENTER>
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync<HR>
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync<BR>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync<P>
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync This version of Apache includes changes allowing it to run on
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync IBM's EBCDIC-based
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync <A HREF="http://www.s390.ibm.com/products/tpf/tpfhp.html">TPF</A>
a9b62afc62b28da7a1a77f34259f8013892d9664vboxsync (Transaction Processing Facility) operating system.
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync Unless otherwise noted TPF version 4.1 PUT09 is required.
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <BR><BR>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync Refer to htdocs/manual/<A HREF="/install-tpf.html">install-tpf.html</A>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync for step-by-step installation instructions.
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <BR><BR>
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync As this is the first cut at making Apache run on TPF,
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync performance tuning has not been done.
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync <BR><BR>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync This port builds upon the <A HREF="/ebcdic.html">EBCDIC changes</A>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync previously made to Apache.
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <BR>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync</P>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync<A NAME="configuration_files">&nbsp;</A>
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync<H2 align=center>Apache Configuration Files</H2>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<P>
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync The distributed configuration files (httpd.conf-dist and
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync mime.types, both located in the conf subdirectory)
14771a21dfae7e828e08da0e03dec4ebb5d58631vboxsync work on TPF. Performance considerations may dictate setting KeepAlive to "Off"
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync (the default is "On") or lowering the Timeout value from the default
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync 300 seconds (5 minutes) in order to reduce the number of active ECBs on your system.
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync</P>
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<A NAME="whats_available">&nbsp;</A>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync<H2 align=center>What's Available in this Version</H2>
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync (The Apache organization provides
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync <A HREF="http://www.apache.org/docs/">online documentation</A>
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync describing the various modules and components of the server.)
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync<H3>Components/modules tested on TPF:</H3>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <multicol COLS=3><UL>
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>alloc.c
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync <LI>ap_base64.c
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync <LI>ap_checkpass.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>ap_cpystrn.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>ap_fnmatch.c
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync <LI>ap_md5c.c
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync <LI>ap_sha1.c
3f0575f3224f20f2fd9e4edc64c8cee6da6145a4vboxsync <LI>ap_signal.c
3f0575f3224f20f2fd9e4edc64c8cee6da6145a4vboxsync <LI>ap_slack.c
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <LI>ap_snprintf.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>buff.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>buildmark.c
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <LI>ebcdic.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>gen_test.char.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>gen_uri_delims.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>htpasswd.c <i><small>(requires PUT10)</small></i>
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>http_config.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>http_core.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>http_log.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>http_main.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>http_protocol.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>http_request.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>http_vhost.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>logresolve.c <i><small>(requires PUT10)</small></i>
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>mod_access.c <A HREF="#notes"> <i><small>(see note 1)</small></i></A>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>mod_actions.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>mod_alias.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>mod_asis.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>mod_auth.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>mod_auth_anon.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>mod_autoindex.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>mod_cern_meta.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>mod_cgi.c <i><small>(requires PUT10)</small></i>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>mod_digest.c
4d00469edbec74de8ddcfe9556235a6edb6c4ee6vboxsync <LI>mod_dir.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>mod_env.c
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync <LI>mod_example.c
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync <LI>mod_expires.c
f0accddfbe88e345706d1ea5d4e58146d0c9273cvboxsync <LI>mod_headers.c
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync <LI>mod_imap.c
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync <LI>mod_include.c <A HREF="#notes"> <i><small>(see note 2)</small></i></A>
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>mod_info.c
0f730ab371ac7844978aa70d4c5eaf209a8fa515vboxsync <LI>mod_log_agent.c
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <LI>mod_log_config.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>mod_log_referer.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>mod_mime.c
c91670c54497e80b8ecb805a15bdd3fb3f90dacavboxsync <LI>mod_mime_magic.c
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <LI>mod_negotiation.c
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <LI><A HREF="http://hpwww.ec-lyon.fr/~vincent/apache/mod_put.html">mod_put.c</A>
c997349d5e9e445152f214987761513c32488e90vboxsync <i> <small>(third party module)</small></i>
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <LI>mod_proxy.c
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>mod_setenvif.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>mod_speling.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>mod_status.c
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>mod_tpf_shm_static.c <i><small>(third party module, requires PUT10)</small></i>
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>mod_unique_id.c <i><small>(requires PUT10)</small></i>
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>mod_userdir.c
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>mod_usertrack.c
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>os.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>os-inline.c
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>proxy_cache.c
37f15535aede6e0dded8e53eca5bc2e9e7fb188cvboxsync <LI>proxy_connect.c
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>proxy_ftp.c
c997349d5e9e445152f214987761513c32488e90vboxsync <LI>proxy_http.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>proxy_util.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>regular expression parser
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>regular expression test tool <i><small>(requires PUT10)</small></i>
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>rfc1413.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>rotatelogs.c <i><small>(requires PUT10)</small></i>
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>util.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>util_date.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>util_md5.c
b9cae94c02c9ab8dfca4d21d7862f5f328583c04vboxsync <LI>util_script.c
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync <LI>util_uri.c
ad13c20995d0a1aafbfbd35b2d698ef2ff5fbeefvboxsync </UL></MULTICOL>
<A NAME="notes"></A><b>Notes:</b>
<ol>
<li>Use of mod_access directives &quot;<tt>Allow from</tt>&quot; &amp; &quot;<tt>Deny from</tt>&quot;
with host <i>names</i> (verses ip addresses) requires TPF version 4.1 PUT10
<li>CGI execution requires TPF version 4.1 PUT10
</ol>
<H3>Components/modules not yet supported on TPF:</H3>
<multicol COLS=3><UL>
<LI>htdigest.c
<LI>lib/expat-lite
<LI>mod_auth_digest.c
<LI>mod_rewrite.c
<LI>mod_vhost_alias.c
</UL></MULTICOL>
<H3>Components/modules that don't apply or that probably won't ever be available on TPF:</H3>
<multicol COLS=3><UL>
<LI>ab.c
<LI>ap_getpass.c
<LI>mod_auth_db.c
<LI>mod_auth_dbm.c
<LI>mod_auth_db.module
<LI>mod_mmap_static.c
<LI>mod_so.c
<LI>suexec.c
</UL></MULTICOL>
<A NAME="porting_notes">&nbsp;</A>
<H2 align=center>Porting Notes</H2>
<P>
<H3>Changes made due to differences between UNIX and
TPF's process models:</H3>
<UL>
<LI><STRONG>Signals</STRONG>: On TPF a signal that is sent to a process
remains unhandled until the process explicitly requests that signals
be handled using the <CODE>tpf_process_signals()</CODE> function.
Additionally, the default action for an alarm on TPF is to take
an OPR-7777 dump and exit. (On UNIX the default is the equivalent
of <CODE>exit()</CODE> with no dump taken.)
These differences necessitated a few modifications:
<BR><BR>
<UL>
<LI>bypass the use of <CODE>ap_block_alarms()</CODE> &amp;
<CODE>ap_unblock_alarms()</CODE>
<LI>add <CODE>tpf_process_signals()</CODE> calls
<LI>add <CODE>select()</CODE> calls to prevent blocking.
</UL>
<BR>
</UL>
<H3>Find that function...</H3>
<P>Some simple functions &amp; definitions initially needed to be added
on TPF, such as <CODE>FD_SET()</CODE>.
We've put these in src/os/tpf/os.h for now.
</P>
<H3>EBCDIC changes:</H3>
<P>TPF-specific conversion tables between US-ASCII and
EBCDIC (character set IBM-1047 to be exact) were created
and put into ebcdic.c in the src/os/tpf directory.
</P>
<H3>Miscellaneous, minor changes:</H3>
<P>Various minor changes (such as casting) were made due to
differences in how some functions are implemented on TPF.
</P>
<HR>
<CENTER>[&nbsp;<A HREF="#top">top</A>
&nbsp;|&nbsp;<A HREF="#configuration_files">Configuration Files</A>
&nbsp;|&nbsp;<A HREF="#whats_available">What's Available</A>
&nbsp;|&nbsp;<A HREF="#porting_notes">Porting Notes</A>&nbsp;]
</CENTER>
</BODY>
</HTML>