Including Apache 2.2.6 with Solaris October 22, 2007 Seema Alevoor 1. Summary and motivation 1.1. Introduction This project delivers an updated version of the Apache 2 Web Server [1], Apache 2.2.6. [2] According to the HTTPD Home Page [4], "The Apache HTTP Server Project is proud to announce the release of version 2.2.6 of the Apache HTTP Server ("Apache"). This version is principally a security and bugfix release. This version of Apache is a major release and the start of a new stable branch, and represents the best available version of Apache HTTP Server. New features include Smart Filtering, Improved Caching, AJP Proxy, Proxy Load Balancing, Graceful Shutdown support, Large File Support, the Event MPM, and refactored Authentication and Authorization." This case also announces the EOL of the Apache 2.0.x APR Interface [with an announcement to take place in a Solaris 10 Update], and EOFs the Apache 2.0.x APR Interface in the next Minor Release of Solaris. This case seeks Minor Release Binding. 1.2. Previous Relevant ARC Cases PSARC 2007/169 Apache 2.2.4 in Solaris (superseded) PSARC 2004/676 Apache 2.x.x in Solaris PSARC 2004/278 GSSAPI auth for Apache PSARC 2001/266 Addition of Jakarta Tomcat for Apache PSARC 2001/244 Apache moving to SFW Consolidation PSARC 2000/040 Java Servlet Support in Apache PSARC 1999/542 Apache for Solaris PSARC/1998/138 Kerberos V5 clients and PAM module PSARC/1996/060 GSS-KRB5 (Kerberos V5 GSS-API mechanism) 2. Technical description 2.1. API and ABI compatibility The Apache 2.2.x Module API/ABI is NOT binary compatible with the Apache 2.0.x Module API/ABI: "Add-in modules for Apache 1.3 or 2.0 are not compatible with Apache 2.2. If you are running third party add-in modules, you must obtain modules compiled or updated for Apache 2.2 from that third party, before you attempt to upgrade from these previous versions. Modules compiled for Apache 2.2 should continue to work for all 2.2.x releases." [5] Based on these observations we conclude that while compatibility of Apache httpd interfaces is generally good within a minor release family (such as from 2.2.4 to 2.2.6), compatibility from one minor release to the next (such as from 2.0.* to 2.2.* or in the future to 2.4.*) is unlikely. In order to accommodate the development model of the Apache community and to provide a mechanism for updating to future minor releases of Apache (such as 2.4) in the lifetime of a given minor release of [Open]Solaris, this project will deliver a file layout where the string "[version]" is expanded to "MAJOR.MINOR" (e.g. /usr/apache2/2.2/* - refer to Appendix 1 for a complete file listing). This project reclassifies most of the Apache exported interfaces to Uncommitted. Refer to the Exported Interfaces table for details. A Release Note will be submitted for the Solaris Updates documenting that the interface may change incompatibly in a subsequent release of Solaris. 2.2. Request Handling MPMs Apache 2.0.x was delivered with the prefork-mpm request handler. This project will deliver another popular request handler model, the worker-mpm along with the default prefork-mpm request handler. The binaries will be named httpd (prefork-mpm, the default) httpd.worker (worker-mpm) The worker-mpm assumes that all Apache Modules have been written thread-safe [thread-safety refers to the actual programmatic implementation of the respective modules, and is not limited to run-time binding to reentrant interfaces]. When worker-mpm model is used, Apache Modules not written with concern for thread-safety will break at runtime. Release Notes detailing the possibility of breakage will be included with this project. All the modules provided by this project will work with both prefork-mpm and worker-mpm. 2.3. Configuration and Environment Settings Apache 2.0.x did not support out-of-the-box server startup. This project will deliver httpd.conf, the default Apache configuration file under /etc/apache2/[version] directory to support out-of-the-box server startup. This project will also provide a new configuration directory /etc/apache2/[version]/conf.d which will contain server configuration files. This directory name has become the accepted standard for Apache .conf files across other distributions. Apache 2 provides a configuration file, "envvars", for the user to specify the environment variables which are passed to the server during startup. Other scripts like apachectl and apxs source this file. Apache 2 installs this file under /usr/apache2/[version]/bin directory. In order to allow administrators to modify the environment, this project will deliver a separate (empty by default) /etc/apache2/[version]/envvars suitable for editing. The /usr/apache2/[version]/bin/envvars will source this new file. Apache2 modules are installed under /usr/apache2/[version]/libexec directory. "apxs" is a tool for building and installing extension modules for the Apache. This tool provides an option "-i", which installs the user generated modules in the modules directory. In order to support modules built by the user, this project will deliver another user-writable directory /var/apache2/[version]/libexec and apxs will be modified to install the user module into this directory. 2.4. 64-bit Apache This project also delivers 64-bit support in Apache. Apache poses an interesting challenge to the coexistence of 32- and 64-bit versions. Public scripts and include files are generated at build time and these hardcode assumptions about the bitness of that build. Appendix 2 shows a sample of such differences. Apache also provides a set of scripts which assist in the compilation of 3rd party Apache modules: - The 'apxs' script - The supporting 'build' directory - The supporting makefile includes [ *.mk ] files The 'apxs' script is a Perl script which contains hardcoded information about the particular Apache build. The apxs script reads the makefile includes files from the 'build' directory produced during the build which in turn is also specific to either 32- or 64-bitness. 2.4.1. Include [ header ] files. Public Apache header files which are generated at ./configure time will be merged to include both 32- and 64-bit definitions. The differences between 32- and 64-bit datatypes will be guarded either via the _LP64 macro, or via the appropriate ISA macros: #if defined(_LP64) #define APR_SIZEOF_VOIDP 8 #else #define APR_SIZEOF_VOIDP 4 #endif #ifndef __sparcv9 typedef long long apr_int64_t; #else typedef long apr_int64_t; #endif 2.4.2. Supporting build directories and scripts [ apxs ]. Given the complexity and the number of bitness-specific support objects created by the Apache build, this project will deliver separate sets of these files for 32- and 64-bit environments. These directories will follow the Solaris naming and location convention already in existence. /usr/apache2/ [version]/build/ [version]/build/${ISAINFO}/ The correct location of these supporting objects is hardcoded at Apache configuration time by editing the appropriate 'config.layout' files delivered by the Apache distribution. Separate versions of the 'config.layout' files will have to be maintained in the source. 2.5. Directory Naming and Structure The Apache 2 distribution will install objects under three distinct directory hierarchies: /usr/apache2/[version], /etc/apache2/[version] and /var/apache2/[version]. /usr/apache2/ [version]/bin/ [version]/bin/${ISAINFO}/ [version]/build/ [version]/build/${ISAINFO}/ [version]/include/ [version]/lib/ [version]/lib/${ISAINFO}/ [version]/libexec/ [version]/libexec/${ISAINFO}/ [version]/man/ [version]/manual/ /var/apache2/ [version]/cgi-bin/ [version]/error/ [version]/htdocs/ [version]/icons/ [version]/libexec/ [version]/libexec/${ISAINFO}/ [version]/logs/ [version]/proxy/ /etc/apache2/ [version]/conf.d/ [version]/original/extra/ The detailed directory and file layout for Apache 2 is provided in Appendix 1. 2.6. Packaging and Delivery The project allows for the coexistence of multiple versions of Apache 2.MINOR by keeping each installation under a version-specific subdirectory. The following package naming convention will be followed: SUNWapch22r Apache Web Server V2 [root] SUNWapch22u Apache Web Server V2 [usr] SUNWapch22d Apache Web Server V2 [Documentation] 3. Apache 2 Modules Just as the previous versions of Apache, Apache 2.2.x supports dynamically loadable modules. This integration will include all the modules provided by the Apache canonical distribution. This project will continue to deliver the following additional modules [which are not part of the Apache canonical distribution]: /usr/apache2/[version]/libexec/mod_auth_gss.so [16] /usr/apache2/[version]/libexec/${ISAINFO}/mod_auth_gss.so /usr/apache2/[version]/libexec/mod_perl.so [12] and the Subversion modules: /usr/apache2/[version]/libexec/mod_authz_svn.so /usr/apache2/[version]/libexec/mod_dav_svn.so Currently, Subversion delivers only 32-bit version of these modules. Appendix 1 has the list of all the modules that will be delivered by this project. Additional modules will be delivered subsequent to this integration, depending on customer requests, and on the availability of the external dependencies required by these modules. These additional modules will be covered in future ARC cases. 4. Apache Internationalization. Apache2 provides GNU iconv compatible I18N support via libaprutil-1.so.0.2.11. The project relies on the GNU iconv compatibility layer available in Solaris' libc.so. 5. Apache Documentation Apache 2.2.x provides a full and complete documentation set, in UNIX manual format, as well as HTML. This project will deliver both documentation sets. 6. Interfaces 6.1. Interface Stability The Apache Project broke API and ABI compatibility between version 2.0.x and version 2.2.x of the canonical distribution. [3] We will reclassify most of the Apache2 Interfaces as Uncommitted. 6.2. Imported Interfaces Apache 2.2.x imports interfaces from the Standard C Library, the Network Services Layer Library and the Pthreads Library. In addition, the following Interfaces are imported: NAME STABILITY NOTES Apache 2 In Solaris Uncommitted PSARC/2004/676 OpenSSL External/Volatile PSARC/2003/500 PCRE Uncommitted PSARC/2007/164 Perl5 Standard PSARC/1999/192 Kerberos 5 External PSARC/2004/278 LibEXPAT Evolving LSARC/2004/324 LDAP Evolving PSARC/1997/276 et seq. Java Stable PSARC/2003/696 GSSAPI auth for Apache External PSARC/2004/278 Kerberos V4 EOF PSARC/1999/199 Kerberos V5 clients and PAM Evolving PSARC/1998/138 Kerberos V5 GSS-API mechanism Stable PSARC/1996/060 6.3. Exported Interfaces NAME STABILITY NOTES /usr/apache2/[version]/ bin/ Uncommitted Executables and Scripts location bin/${ISAINFO}/ Uncommitted 64-bit Executables and Scripts location build/ Uncommitted location of the scripts to build modules, libtool build/${ISAINFO}/ Uncommitted location of the 64-bit specific scripts to build modules, libtool include/ Uncommitted Include directory lib/ lib/${ISAINFO}/ apr.exp Uncommitted Linker Map File aprutil.exp Uncommitted Linker Map File libapr-1.so.0.2.11 Volatile Shared Library libapr-1.so -> libapr-1.so.0.2.11 Volatile Symbolic Link libapr-1.so.0 -> libapr-1.so.0.2.11 Uncommitted Symbolic Link libaprutil-1.so.0.2.11 Volatile Shared Library libaprutil-1.so -> libaprutil-1.so.0.2.11 Volatile Symbolic Link libaprutil-1.so.0 -> libaprutil-1.so.0.2.11 Uncommitted Symbolic Link libexec/ Project Private Apache Modules location libexec/${ISAINFO}/ Project Private 64-bit Apache Modules location man/ Uncommitted Manual Pages manual/ Uncommitted HTML format Manual Pages /etc/apache2/[version]/ Uncommitted Apache Configuration /var/apache2/[version]/ cgi-bin/ Uncommitted Default CGI scripts directory error/ Uncommitted Error messages htdocs/ Uncommitted Default Document Root icons/ Uncommitted Default Set of Icons libexec/ Uncommitted Location of User Modules libexec/${ISAINFO}/ Uncommitted Location of 64-bit User Modules logs/ Uncommitted Location of Log Files proxy/ Uncommitted Default Cache Root (used by the proxy module) /var/run/apache2/[version]/ Uncommitted Runtime Files svc:/network/http:apache22 Committed FMRI startup_options Committed SMF(5) Property for startup options which the apachectl script passes on to httpd executable server_type Committed SMF(5) Property for specifying the server type (prefork or worker) enable_64bit Committed SMF(5) Property determines whether the server runs as a 32-bit or 64-bit process. /lib/svc/method/http-apache2 Project Private SMF service method script /var/svc/manifest/network/http-apache2.xml Project Private SMF Manifest 7. References [1] http://www.apache.org/ [2] http://sac.sfbay/PSARC/2007/169/ [3] http://sac.sfbay/PSARC/2004/676/ [4] http://httpd.apache.org/ [5] http://httpd.apache.org/download.cgi [6] http://apr.apache.org/versioning.html [7] http://apr.apache.org/docs/apr/1.2/index.html [8] http://apr.apache.org/docs/apr-util/1.2/ [9] http://apr.apache.org/docs/apr-iconv/1.2/index.html [10] http://www.pcre.org/ [11] http://www.openssl.org/ [12] http://www.perl.org/ [13] http://www.modsecurity.org/ [14] http://www.libexpat.org/ [15] http://tomcat.apache.org/download-connectors.cgi [16] http://sac.sfbay/PSARC/2004/278/ ------------------------------------------------------------------------------ Appendix 1: Apache 2 Integration Directory and File Structure. /etc/apache2/2.2/ conf.d/ modules-32.load modules-64.load envvars httpd.conf magic mime.types original/ extra/ httpd-autoindex.conf httpd-dav.conf httpd-default.conf httpd-info.conf httpd-languages.conf httpd-manual.conf httpd-mpm.conf httpd-multilang-errordoc.conf httpd-ssl.conf httpd-userdir.conf httpd-vhosts.conf httpd.conf /lib/svc/method/http-apache2 /usr/apache2/2.2/ bin/ ab apachectl apr-1-config apu-1-config apxs checkgid dbmmanage envvars envvars-std htcacheclean htdbm htdigest htpasswd httpd httpd.worker httxt2dbm logresolve rotatelogs suexec.disabled bin/${ISAINFO}/ ab apachectl apr-1-config apu-1-config apxs checkgid dbmmanage envvars envvars-std htcacheclean htdbm htdigest htpasswd httpd httpd.worker httxt2dbm logresolve rotatelogs suexec.disabled build/ apr_rules.mk config.nice config_vars.mk instdso.sh library.mk libtool ltlib.mk make_exports.awk make_var_export.awk mkdir.sh program.mk rules.mk special.mk build/${ISAINFO}/ apr_rules.mk config.nice config_vars.mk instdso.sh library.mk libtool ltlib.mk make_exports.awk make_var_export.awk mkdir.sh program.mk rules.mk special.mk include/ ap_compat.h ap_config.h ap_config_auto.h ap_config_layout.h ap_listen.h ap_mmn.h ap_mpm.h ap_provider.h ap_regex.h ap_regkey.h ap_release.h apr.h apr_allocator.h apr_anylock.h apr_atomic.h apr_base64.h apr_buckets.h apr_date.h apr_dbd.h apr_dbm.h apr_dso.h apr_env.h apr_errno.h apr_file_info.h apr_file_io.h apr_fnmatch.h apr_general.h apr_getopt.h apr_global_mutex.h apr_hash.h apr_hooks.h apr_inherit.h apr_ldap.h apr_ldap_init.h apr_ldap_option.h apr_ldap_url.h apr_lib.h apr_md4.h apr_md5.h apr_mmap.h apr_network_io.h apr_optional.h apr_optional_hooks.h apr_poll.h apr_pools.h apr_portable.h apr_proc_mutex.h apr_queue.h apr_random.h apr_reslist.h apr_ring.h apr_rmm.h apr_sdbm.h apr_sha1.h apr_shm.h apr_signal.h apr_strings.h apr_strmatch.h apr_support.h apr_tables.h apr_thread_cond.h apr_thread_mutex.h apr_thread_proc.h apr_thread_rwlock.h apr_time.h apr_uri.h apr_user.h apr_uuid.h apr_version.h apr_want.h apr_xlate.h apr_xml.h apu.h apu_version.h apu_want.h fdqueue.h http_config.h http_connection.h http_core.h http_log.h http_main.h http_protocol.h http_request.h http_vhost.h httpd.h mod_auth.h mod_cgi.h mod_core.h mod_dav.h mod_dbd.h mod_include.h mod_log_config.h mod_proxy.h mod_ssl.h mod_status.h mpm.h mpm_common.h mpm_default.h os.h pod.h scoreboard.h unixd.h util_cfgtree.h util_charset.h util_ebcdic.h util_filter.h util_ldap.h util_md5.h util_script.h util_time.h util_xml.h lib/ apr.exp aprutil.exp libapr-1.a libapr-1.la libapr-1.so -> libapr-1.so.0.2.11* libapr-1.so.0 -> libapr-1.so.0.2.11* libapr-1.so.0.2.11 libaprutil-1.a libaprutil-1.la libaprutil-1.so -> libaprutil-1.so.0.2.11* lib2.11* libaprutil-1.so.0.2.11 pkgconfig/ apr-1.pc apr-util-1.pc lib/${ISAINFO}/ apr.exp aprutil.exp libapr-1.a libapr-1.la libapr-1.so -> libapr-1.so.0.2.11* libapr-1.so.0 -> libapr-1.so.0.2.11* libapr-1.so.0.2.11 libaprutil-1.a libaprutil-1.la libaprutil-1.so -> libaprutil-1.so.0.2.11* lib2.11* libaprutil-1.so.0.2.11 pkgconfig/ apr-1.pc apr-util-1.pc libexec/ httpd.exp mod_actions.so mod_alias.so mod_asis.so mod_auth_basic.so mod_auth_digest.so mod_auth_gss.so mod_authn_anon.so mod_authn_dbd.so mod_authn_dbm.so mod_authn_default.so mod_authn_file.so mod_authnz_ldap.so mod_authz_dbm.so mod_authz_default.so mod_authz_groupfile.so mod_authz_host.so mod_authz_owner.so mod_authz_svn.so mod_authz_user.so mod_autoindex.so mod_cache.so mod_cern_meta.so mod_cgi.so mod_cgid.so mod_dav.so mod_dav_fs.so mod_dav_svn.so mod_dbd.so mod_deflate.so mod_dir.so mod_disk_cache.so mod_dumpio.so mod_env.so mod_expires.so mod_ext_filter.so mod_file_cache.so mod_filter.so mod_headers.so mod_ident.so mod_imagemap.so mod_include.so mod_info.so mod_ldap.so mod_log_config.so mod_log_forensic.so mod_logio.so mod_mem_cache.so mod_mime.so mod_mime_magic.so mod_negotiation.so mod_perl.so mod_proxy.so mod_proxy_ajp.so mod_proxy_balancer.so mod_proxy_connect.so mod_proxy_ftp.so mod_proxy_http.so mod_rewrite.so mod_setenvif.so mod_speling.so mod_ssl.so mod_status.so mod_suexec.so mod_unique_id.so mod_userdir.so mod_usertrack.so mod_version.so mod_vhost_alias.so libexec/${ISAINFO}/ httpd.exp mod_actions.so mod_alias.so mod_asis.so mod_auth_basic.so mod_auth_digest.so mod_auth_gss.so mod_authn_anon.so mod_authn_dbd.so mod_authn_dbm.so mod_authn_default.so mod_authn_file.so mod_authnz_ldap.so mod_authz_dbm.so mod_authz_default.so mod_authz_groupfile.so mod_authz_host.so mod_authz_owner.so mod_authz_user.so mod_autoindex.so mod_cache.so mod_cern_meta.so mod_cgi.so mod_cgid.so mod_dav.so mod_dav_fs.so mod_dbd.so mod_deflate.so mod_dir.so mod_disk_cache.so mod_dumpio.so mod_env.so mod_expires.so mod_ext_filter.so mod_file_cache.so mod_filter.so mod_headers.so mod_ident.so mod_imagemap.so mod_include.so mod_info.so mod_ldap.so mod_log_config.so mod_log_forensic.so mod_logio.so mod_mem_cache.so mod_mime.so mod_mime_magic.so mod_negotiation.so mod_proxy.so mod_proxy_ajp.so mod_proxy_balancer.so mod_proxy_connect.so mod_proxy_ftp.so mod_proxy_http.so mod_rewrite.so mod_setenvif.so mod_speling.so mod_ssl.so mod_status.so mod_suexec.so mod_unique_id.so mod_userdir.so mod_usertrack.so mod_version.so mod_vhost_alias.so man/ man1/ dbmmanage.1 htdbm.1 htdigest.1 htpasswd.1 man3/ man8/ ab.8 apachectl.8 apxs.8 htcacheclean.8 httpd.8 logresolve.8 rotatelogs.8 suexec.8 manual/ LICENSE bind.html bind.html.de bind.html.en bind.html.fr bind.html.ja.euc-jp bind.html.ko.euc-kr caching.html caching.html.en configuring.html configuring.html.de configuring.html.en configuring.html.ja.euc-jp configuring.html.ko.euc-kr content-negotiation.html content-negotiation.html.en content-negotiation.html.ja.euc-jp content-negotiation.html.ko.euc-kr convenience.map custom-error.html custom-error.html.en custom-error.html.es custom-error.html.ja.euc-jp custom-error.html.ko.euc-kr developer/ API.html API.html.en debugging.html debugging.html.en documenting.html documenting.html.en filters.html filters.html.en hooks.html hooks.html.en index.html index.html.en modules.html modules.html.en modules.html.ja.euc-jp request.html request.html.en thread_safety.html thread_safety.html.en dns-caveats.html dns-caveats.html.en dns-caveats.html.ja.euc-jp dns-caveats.html.ko.euc-kr dso.html dso.html.en dso.html.ja.euc-jp dso.html.ko.euc-kr env.html env.html.en env.html.ja.euc-jp env.html.ko.euc-kr faq/ index.html index.html.en filter.html filter.html.en filter.html.es filter.html.fr filter.html.ja.euc-jp filter.html.ko.euc-kr glossary.html glossary.html.de glossary.html.en glossary.html.es glossary.html.ko.euc-kr handler.html handler.html.en handler.html.es handler.html.fr handler.html.ja.euc-jp handler.html.ko.euc-kr handler.html.ru.koi8-r howto/ access.html access.html.en auth.html auth.html.en auth.html.ja.euc-jp auth.html.ko.euc-kr cgi.html cgi.html.en cgi.html.ja.euc-jp cgi.html.ko.euc-kr htaccess.html htaccess.html.en htaccess.html.ja.euc-jp htaccess.html.ko.euc-kr htaccess.html.pt-br index.html index.html.en index.html.ja.euc-jp index.html.ko.euc-kr public_html.html public_html.html.en public_html.html.ja.euc-jp public_html.html.ko.euc-kr ssi.html ssi.html.en ssi.html.ja.euc-jp ssi.html.ko.euc-kr images/ apache_header.gif caching_fig1.gif caching_fig1.png custom_errordocs.png down.gif favicon.ico feather.gif feather.png filter_arch.png home.gif index.gif left.gif mod_filter_new.gif mod_filter_new.png mod_filter_old.gif mod_rewrite_fig1.gif mod_rewrite_fig1.png mod_rewrite_fig2.gif mod_rewrite_fig2.png pixel.gif right.gif ssl_intro_fig1.gif ssl_intro_fig1.png ssl_intro_fig2.gif ssl_intro_fig2.png ssl_intro_fig3.gif ssl_intro_fig3.png sub.gif up.gif index.html index.html.de index.html.en index.html.es index.html.fr index.html.ja.euc-jp index.html.ko.euc-kr index.html.pt-br install.html install.html.de install.html.en install.html.es install.html.fr install.html.ja.euc-jp install.html.ko.euc-kr invoking.html invoking.html.de invoking.html.en invoking.html.es invoking.html.fr invoking.html.ja.euc-jp invoking.html.ko.euc-kr invoking.html.ru.koi8-r license.html license.html.en logs.html logs.html.en logs.html.ja.euc-jp logs.html.ko.euc-kr misc/ index.html index.html.en index.html.ko.euc-kr perf-tuning.html perf-tuning.html.en perf-tuning.html.ko.euc-kr relevant_standards.html relevant_standards.html.en relevant_standards.html.ko.euc-kr rewriteguide.html rewriteguide.html.en rewriteguide.html.ko.euc-kr security_tips.html security_tips.html.en security_tips.html.ko.euc-kr mod/ beos.html beos.html.de beos.html.en beos.html.es beos.html.ko.euc-kr core.html core.html.de core.html.en core.html.ja.euc-jp directive-dict.html directive-dict.html.en directive-dict.html.ja.euc-jp directive-dict.html.ko.euc-kr directives.html directives.html.de directives.html.en directives.html.es directives.html.ja.euc-jp directives.html.ko.euc-kr directives.html.ru.koi8-r event.html event.html.en index.html index.html.de index.html.en index.html.es index.html.ja.euc-jp index.html.ko.euc-kr mod_actions.html mod_actions.html.de mod_actions.html.en mod_actions.html.ja.euc-jp mod_actions.html.ko.euc-kr mod_alias.html mod_alias.html.en mod_alias.html.ja.euc-jp mod_alias.html.ko.euc-kr mod_asis.html mod_asis.html.en mod_asis.html.ja.euc-jp mod_asis.html.ko.euc-kr mod_auth_basic.html mod_auth_basic.html.en mod_auth_basic.html.ja.euc-jp mod_auth_basic.html.ko.euc-kr mod_auth_digest.html mod_auth_digest.html.en mod_auth_digest.html.ko.euc-kr mod_authn_alias.html mod_authn_alias.html.en mod_authn_anon.html mod_authn_anon.html.en mod_authn_anon.html.ja.euc-jp mod_authn_anon.html.ko.euc-kr mod_authn_dbd.html mod_authn_dbd.html.en mod_authn_dbm.html mod_authn_dbm.html.en mod_authn_dbm.html.ja.euc-jp mod_authn_dbm.html.ko.euc-kr mod_authn_default.html mod_authn_default.html.en mod_authn_default.html.ja.euc-jp mod_authn_default.html.ko.euc-kr mod_authn_file.html mod_authn_file.html.en mod_authn_file.html.ja.euc-jp mod_authn_file.html.ko.euc-kr mod_authnz_ldap.html mod_authnz_ldap.html.en mod_authz_dbm.html mod_authz_dbm.html.en mod_authz_dbm.html.ko.euc-kr mod_authz_default.html mod_authz_default.html.en mod_authz_default.html.ja.euc-jp mod_authz_default.html.ko.euc-kr mod_authz_groupfile.html mod_authz_groupfile.html.en mod_authz_groupfile.html.ja.euc-jp mod_authz_groupfile.html.ko.euc-kr mod_authz_host.html mod_authz_host.html.en mod_authz_host.html.ja.euc-jp mod_authz_host.html.ko.euc-kr mod_authz_owner.html mod_authz_owner.html.en mod_authz_owner.html.ja.euc-jp mod_authz_owner.html.ko.euc-kr mod_authz_user.html mod_authz_user.html.en mod_authz_user.html.ja.euc-jp mod_authz_user.html.ko.euc-kr mod_autoindex.html mod_autoindex.html.en mod_autoindex.html.ja.euc-jp mod_autoindex.html.ko.euc-kr mod_cache.html mod_cache.html.en mod_cache.html.ja.euc-jp mod_cache.html.ko.euc-kr mod_cern_meta.html mod_cern_meta.html.en mod_cern_meta.html.ko.euc-kr mod_cgi.html mod_cgi.html.en mod_cgi.html.ja.euc-jp mod_cgi.html.ko.euc-kr mod_cgid.html mod_cgid.html.en mod_cgid.html.ja.euc-jp mod_cgid.html.ko.euc-kr mod_charset_lite.html mod_charset_lite.html.en mod_charset_lite.html.ko.euc-kr mod_dav.html mod_dav.html.en mod_dav.html.ja.euc-jp mod_dav.html.ko.euc-kr mod_dav_fs.html mod_dav_fs.html.en mod_dav_fs.html.ja.euc-jp mod_dav_fs.html.ko.euc-kr mod_dav_lock.html mod_dav_lock.html.en mod_dav_lock.html.ja.euc-jp mod_dbd.html mod_dbd.html.en mod_deflate.html mod_deflate.html.en mod_deflate.html.ja.euc-jp mod_deflate.html.ko.euc-kr mod_dir.html mod_dir.html.en mod_dir.html.ja.euc-jp mod_dir.html.ko.euc-kr mod_disk_cache.html mod_disk_cache.html.en mod_disk_cache.html.ja.euc-jp mod_disk_cache.html.ko.euc-kr mod_dumpio.html mod_dumpio.html.en mod_dumpio.html.ja.euc-jp mod_echo.html mod_echo.html.en mod_echo.html.ja.euc-jp mod_echo.html.ko.euc-kr mod_env.html mod_env.html.en mod_env.html.ja.euc-jp mod_env.html.ko.euc-kr mod_example.html mod_example.html.en mod_example.html.ko.euc-kr mod_expires.html mod_expires.html.en mod_expires.html.ja.euc-jp mod_expires.html.ko.euc-kr mod_ext_filter.html mod_ext_filter.html.en mod_ext_filter.html.ja.euc-jp mod_ext_filter.html.ko.euc-kr mod_file_cache.html mod_file_cache.html.en mod_file_cache.html.ko.euc-kr mod_filter.html mod_filter.html.en mod_headers.html mod_headers.html.en mod_headers.html.ja.euc-jp mod_headers.html.ko.euc-kr mod_ident.html mod_ident.html.en mod_ident.html.ko.euc-kr mod_imagemap.html mod_imagemap.html.en mod_imagemap.html.ko.euc-kr mod_include.html mod_include.html.en mod_include.html.ja.euc-jp mod_info.html mod_info.html.en mod_info.html.ja.euc-jp mod_info.html.ko.euc-kr mod_isapi.html mod_isapi.html.en mod_isapi.html.ko.euc-kr mod_ldap.html mod_ldap.html.en mod_log_config.html mod_log_config.html.en mod_log_config.html.ja.euc-jp mod_log_config.html.ko.euc-kr mod_log_forensic.html mod_log_forensic.html.en mod_log_forensic.html.ja.euc-jp mod_logio.html mod_logio.html.en mod_logio.html.ja.euc-jp mod_logio.html.ko.euc-kr mod_mem_cache.html mod_mem_cache.html.en mod_mem_cache.html.ja.euc-jp mod_mem_cache.html.ko.euc-kr mod_mime.html mod_mime.html.en mod_mime.html.ja.euc-jp mod_mime_magic.html mod_mime_magic.html.en mod_negotiation.html mod_negotiation.html.en mod_negotiation.html.ja.euc-jp mod_nw_ssl.html mod_nw_ssl.html.en mod_proxy.html mod_proxy.html.en mod_proxy.html.ja.euc-jp mod_proxy_ajp.html mod_proxy_ajp.html.en mod_proxy_ajp.html.ja.euc-jp mod_proxy_balancer.html mod_proxy_balancer.html.en mod_proxy_balancer.html.ja.euc-jp mod_proxy_connect.html mod_proxy_connect.html.en mod_proxy_ftp.html mod_proxy_ftp.html.en mod_proxy_http.html mod_proxy_http.html.en mod_rewrite.html mod_rewrite.html.en mod_setenvif.html mod_setenvif.html.en mod_setenvif.html.ja.euc-jp mod_setenvif.html.ko.euc-kr mod_so.html mod_so.html.en mod_so.html.ja.euc-jp mod_so.html.ko.euc-kr mod_speling.html mod_speling.html.en mod_speling.html.ja.euc-jp mod_speling.html.ko.euc-kr mod_ssl.html mod_ssl.html.en mod_status.html mod_status.html.en mod_status.html.ja.euc-jp mod_status.html.ko.euc-kr mod_suexec.html mod_suexec.html.en mod_suexec.html.ja.euc-jp mod_suexec.html.ko.euc-kr mod_unique_id.html mod_unique_id.html.en mod_unique_id.html.ja.euc-jp mod_unique_id.html.ko.euc-kr mod_userdir.html mod_userdir.html.en mod_userdir.html.ja.euc-jp mod_userdir.html.ko.euc-kr mod_usertrack.html mod_usertrack.html.en mod_version.html mod_version.html.en mod_version.html.ja.euc-jp mod_version.html.ko.euc-kr mod_vhost_alias.html mod_vhost_alias.html.en module-dict.html module-dict.html.en module-dict.html.ja.euc-jp module-dict.html.ko.euc-kr mpm_common.html mpm_common.html.de mpm_common.html.en mpm_common.html.ja.euc-jp mpm_netware.html mpm_netware.html.en mpm_winnt.html mpm_winnt.html.de mpm_winnt.html.en mpm_winnt.html.ja.euc-jp mpmt_os2.html mpmt_os2.html.en prefork.html prefork.html.de prefork.html.en prefork.html.ja.euc-jp quickreference.html quickreference.html.de quickreference.html.en quickreference.html.es quickreference.html.ja.euc-jp quickreference.html.ko.euc-kr quickreference.html.ru.koi8-r worker.html worker.html.de worker.html.en worker.html.ja.euc-jp mpm.html mpm.html.de mpm.html.en mpm.html.es mpm.html.fr mpm.html.ja.euc-jp mpm.html.ko.euc-kr new_features_2_0.html new_features_2_0.html.de new_features_2_0.html.en new_features_2_0.html.fr new_features_2_0.html.ja.euc-jp new_features_2_0.html.ko.euc-kr new_features_2_0.html.pt-br new_features_2_0.html.ru.koi8-r new_features_2_2.html new_features_2_2.html.en new_features_2_2.html.fr new_features_2_2.html.ko.euc-kr new_features_2_2.html.pt-br platform/ ebcdic.html ebcdic.html.en ebcdic.html.ko.euc-kr index.html index.html.en index.html.ko.euc-kr netware.html netware.html.en netware.html.ko.euc-kr perf-hp.html perf-hp.html.en perf-hp.html.ko.euc-kr win_compiling.html win_compiling.html.en win_compiling.html.ko.euc-kr windows.html windows.html.en windows.html.ko.euc-kr programs/ ab.html ab.html.en ab.html.ko.euc-kr apachectl.html apachectl.html.en apachectl.html.ko.euc-kr apxs.html apxs.html.en apxs.html.ko.euc-kr configure.html configure.html.en configure.html.ko.euc-kr dbmmanage.html dbmmanage.html.en dbmmanage.html.ko.euc-kr htcacheclean.html htcacheclean.html.en htcacheclean.html.ko.euc-kr htdbm.html htdbm.html.en htdigest.html htdigest.html.en htdigest.html.ko.euc-kr htpasswd.html htpasswd.html.en htpasswd.html.ko.euc-kr httpd.html httpd.html.en httpd.html.ko.euc-kr httxt2dbm.html httxt2dbm.html.en index.html index.html.en index.html.es index.html.ko.euc-kr index.html.ru.koi8-r logresolve.html logresolve.html.en logresolve.html.ko.euc-kr other.html other.html.en other.html.ko.euc-kr rotatelogs.html rotatelogs.html.en rotatelogs.html.ko.euc-kr suexec.html suexec.html.en suexec.html.ko.euc-kr rewrite/ index.html index.html.en rewrite_guide.html rewrite_guide.html.en rewrite_guide_advanced.html rewrite_guide_advanced.html.en rewrite_intro.html rewrite_intro.html.en rewrite_tech.html rewrite_tech.html.en sections.html sections.html.en sections.html.ja.euc-jp sections.html.ko.euc-kr server-wide.html server-wide.html.en server-wide.html.ja.euc-jp server-wide.html.ko.euc-kr sitemap.html sitemap.html.de sitemap.html.en sitemap.html.es sitemap.html.ja.euc-jp sitemap.html.ko.euc-kr ssl/ index.html index.html.en index.html.ja.euc-jp ssl_compat.html ssl_compat.html.en ssl_faq.html ssl_faq.html.en ssl_howto.html ssl_howto.html.en ssl_intro.html ssl_intro.html.en ssl_intro.html.ja.euc-jp stopping.html stopping.html.de stopping.html.en stopping.html.es stopping.html.fr stopping.html.ja.euc-jp stopping.html.ko.euc-kr style/ build.properties common.dtd css/ manual-chm.css manual-loose-100pc.css manual-print.css manual-zip-100pc.css manual-zip.css manual.css faq.dtd lang/ lang.dtd latex/ atbeginend.sty common.xsl directiveindex.xsl faq.xsl html.xsl latex.xsl manualpage.xsl moduleindex.xsl quickreference.xsl synopsis.xsl manual.de.xsl manual.en.xsl manual.es.xsl manual.fr.xsl manual.ja.xsl manual.ko.xsl manual.pt-br.xsl manual.ru.xsl manualpage.dtd modulesynopsis.dtd sitemap.dtd version.ent xsl/ common.xsl convmap.xsl directiveindex.xsl faq.xsl hhc.xsl hhp.xsl indexpage.xsl language.xsl maf.xsl manualpage.xsl moduleindex.xsl nroff.xsl quickreference.xsl sitemap.xsl synopsis.xsl typemap.xsl util/ modtrans.xsl suexec.html suexec.html.en suexec.html.ja.euc-jp suexec.html.ko.euc-kr upgrading.html upgrading.html.de upgrading.html.en upgrading.html.ja.euc-jp upgrading.html.ko.euc-kr upgrading.html.pt-br upgrading.html.ru.koi8-r urlmapping.html urlmapping.html.en urlmapping.html.ja.euc-jp urlmapping.html.ko.euc-kr vhosts/ details.html details.html.en details.html.fr details.html.ko.euc-kr examples.html examples.html.en examples.html.fr examples.html.ja.euc-jp examples.html.ko.euc-kr fd-limits.html fd-limits.html.en fd-limits.html.fr fd-limits.html.ja.euc-jp fd-limits.html.ko.euc-kr index.html index.html.de index.html.en index.html.fr index.html.ja.euc-jp index.html.ko.euc-kr index.html.ru.koi8-r ip-based.html ip-based.html.en ip-based.html.fr ip-based.html.ja.euc-jp ip-based.html.ko.euc-kr mass.html mass.html.en mass.html.ko.euc-kr name-based.html name-based.html.de name-based.html.en name-based.html.fr name-based.html.ja.euc-jp name-based.html.ko.euc-kr /var/run/apache2/2.2/ /var/apache2/2.2/ cgi-bin/ printenv test-cgi error/ HTTP_BAD_GATEWAY.html.var HTTP_BAD_REQUEST.html.var HTTP_FORBIDDEN.html.var HTTP_GONE.html.var HTTP_INTERNAL_SERVER_ERROR.html.var HTTP_LENGTH_REQUIRED.html.var HTTP_METHOD_NOT_ALLOWED.html.var HTTP_NOT_FOUND.html.var HTTP_NOT_IMPLEMENTED.html.var HTTP_PRECONDITION_FAILED.html.var HTTP_REQUEST_ENTITY_TOO_LARGE.html.var HTTP_REQUEST_TIME_OUT.html.var HTTP_REQUEST_URI_TOO_LARGE.html.var HTTP_SERVICE_UNAVAILABLE.html.var HTTP_UNAUTHORIZED.html.var HTTP_UNSUPPORTED_MEDIA_TYPE.html.var HTTP_VARIANT_ALSO_VARIES.html.var README contact.html.var include/ bottom.html spacer.html top.html htdocs/ apache_pb.gif apache_pb.png apache_pb22.gif apache_pb22.png apache_pb22_ani.gif index.html icons/ README README.html a.gif a.png alert.black.gif alert.black.png alert.red.gif alert.red.png apache_pb.gif apache_pb.png apache_pb2.gif apache_pb2.png apache_pb2_ani.gif back.gif back.png ball.gray.gif ball.gray.png ball.red.gif ball.red.png binary.gif binary.png binhex.gif binhex.png blank.gif blank.png bomb.gif bomb.png box1.gif box1.png box2.gif box2.png broken.gif broken.png burst.gif burst.png c.gif c.png comp.blue.gif comp.blue.png comp.gray.gif comp.gray.png compressed.gif compressed.png continued.gif continued.png dir.gif dir.png diskimg.gif diskimg.png down.gif down.png dvi.gif dvi.png f.gif f.png folder.gif folder.open.gif folder.open.png folder.png folder.sec.gif folder.sec.png forward.gif forward.png generic.gif generic.png generic.red.gif generic.red.png generic.sec.gif generic.sec.png hand.right.gif hand.right.png hand.up.gif hand.up.png icon.sheet.gif icon.sheet.png image1.gif image1.png image2.gif image2.png image3.gif image3.png index.gif index.png layout.gif layout.png left.gif left.png link.gif link.png movie.gif movie.png p.gif p.png patch.gif patch.png pdf.gif pdf.png pie0.gif pie0.png pie1.gif pie1.png pie2.gif pie2.png pie3.gif pie3.png pie4.gif pie4.png pie5.gif pie5.png pie6.gif pie6.png pie7.gif pie7.png pie8.gif pie8.png portal.gif portal.png ps.gif ps.png quill.gif quill.png right.gif right.png screw1.gif screw1.png screw2.gif screw2.png script.gif script.png small/ back.gif back.png binary.gif binary.png binhex.gif binhex.png blank.gif blank.png broken.gif broken.png burst.gif burst.png comp1.gif comp1.png comp2.gif comp2.png compressed.gif compressed.png continued.gif continued.png dir.gif dir.png dir2.gif dir2.png doc.gif doc.png forward.gif forward.png generic.gif generic.png generic2.gif generic2.png generic3.gif generic3.png image.gif image.png image2.gif image2.png index.gif index.png key.gif key.png movie.gif movie.png patch.gif patch.png ps.gif ps.png rainbow.gif rainbow.png sound.gif sound.png sound2.gif sound2.png tar.gif tar.png text.gif text.png transfer.gif transfer.png unknown.gif unknown.png uu.gif uu.png sound1.gif sound1.png sound2.gif sound2.png sphere1.gif sphere1.png sphere2.gif sphere2.png tar.gif tar.png tex.gif tex.png text.gif text.png transfer.gif transfer.png unknown.gif unknown.png up.gif up.png uu.gif uu.png uuencoded.gif uuencoded.png world1.gif world1.png world2.gif world2.png libexec/ libexec/${ISAINFO}/ logs/ proxy/ /var/svc/manifest/network/http-apache2.xml ------------------------------------------------------------------------------ Appendix 2: diff apr.h produced by 32- and 64-bit Apache builds --- apr.h.32 2007-03-16 01:04:16.000000000 -0400 +++ apr.h.64 2007-03-13 23:36:57.000000000 -0400 @@ -262,15 +262,15 @@ typedef int apr_int32_t; typedef unsigned int apr_uint32_t; -typedef long long apr_int64_t; -typedef unsigned long long apr_uint64_t; +typedef long apr_int64_t; +typedef unsigned long apr_uint64_t; typedef size_t apr_size_t; typedef ssize_t apr_ssize_t; typedef off_t apr_off_t; typedef socklen_t apr_socklen_t; -#define APR_SIZEOF_VOIDP 4 +#define APR_SIZEOF_VOIDP 8 /* Are we big endian? */ #define APR_IS_BIGENDIAN 0 @@ -344,25 +344,25 @@ * to find the logic for this definition search for "ssize_t_fmt" in * configure.in. */ -#define APR_SSIZE_T_FMT "d" +#define APR_SSIZE_T_FMT "ld" /* And APR_SIZE_T_FMT */ -#define APR_SIZE_T_FMT "d" +#define APR_SIZE_T_FMT "ld" /* And APR_OFF_T_FMT */ -#define APR_OFF_T_FMT APR_INT64_T_FMT +#define APR_OFF_T_FMT "ld" /* And APR_PID_T_FMT */ #define APR_PID_T_FMT "ld" /* And APR_INT64_T_FMT */ -#define APR_INT64_T_FMT "lld" +#define APR_INT64_T_FMT "ld" /* And APR_UINT64_T_FMT */ -#define APR_UINT64_T_FMT "llu" +#define APR_UINT64_T_FMT "lu" /* And APR_UINT64_T_HEX_FMT */ -#define APR_UINT64_T_HEX_FMT "llx" +#define APR_UINT64_T_HEX_FMT "lx"