netware/ ................
- os2/ ....................
-
tpf/ ....................
samples/ ................
x-local-distclean:
@rm -rf autom4te.cache
-
-include $(top_srcdir)/os/os2/core.mk
echo $CMD
$CMD || exit $?
-if test "$SYS" = "OS/2"
-then
- # on OS/2, aplibtool --install doesn't copy the .la files & we can't
- # rename DLLs to have a .so extension or they won't load so none of the
- # steps below make sense.
- exit 0
-fi
-
if test -s "$TARGETDIR/$DSOARCHIVE_BASENAME"
then
DLNAME=`sed -n "/^dlname=/{s/.*='\([^']*\)'/\1/;p;}" $TARGETDIR/$DSOARCHIVE_BASENAME`
dnl Add in path to PCRE includes
APR_ADDTO(INCLUDES, $PCRE_INCLUDES)
-echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}"
-
-case $host in
- *os2*)
- # Use a custom made libtool replacement
- echo "using aplibtool"
- LIBTOOL="$abs_srcdir/srclib/apr/build/aplibtool"
- SH_LIBTOOL="$LIBTOOL --shared --export-all"
- SH_LIBS="\$(ALL_LIBS)"
- CORE_IMPLIB_FILE="ApacheCoreOS2.la"
- CORE_IMPLIB="$abs_srcdir/server/$CORE_IMPLIB_FILE"
- MK_IMPLIB="emximp"
- other_targets="$other_targets os2core"
- INSTALL_PROG_FLAGS="-e .exe"
- SHLTCFLAGS=""
- LTCFLAGS=""
- ;;
- *)
- if test "x$LTFLAGS" = "x"; then
- LTFLAGS='--silent'
- fi
- my_libtool=`$apr_config --apr-libtool`
- LIBTOOL="$my_libtool \$(LTFLAGS)"
- libtoolversion=`$my_libtool --version`
- case $libtoolversion in
- *1.[[45]]* | *[[2-9]].[[0-9]]*)
- SH_LIBTOOL='$(LIBTOOL)'
- SHLTCFLAGS="-prefer-pic"
- LTCFLAGS="-prefer-non-pic -static"
- ;;
- *)
- SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool $(LTFLAGS)'
- SHLTCFLAGS=""
- LTCFLAGS=""
- ;;
- esac
- ;;
+if test "x$LTFLAGS" = "x"; then
+ LTFLAGS='--silent'
+fi
+my_libtool=`$apr_config --apr-libtool`
+LIBTOOL="$my_libtool \$(LTFLAGS)"
+libtoolversion=`$my_libtool --version`
+case $libtoolversion in
+ *1.[[45]]* | *[[2-9]].[[0-9]]*)
+ SH_LIBTOOL='$(LIBTOOL)'
+ SHLTCFLAGS="-prefer-pic"
+ LTCFLAGS="-prefer-non-pic -static"
+ ;;
+ *)
+ SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool $(LTFLAGS)'
+ SHLTCFLAGS=""
+ LTCFLAGS=""
+ ;;
esac
APACHE_SUBST(SHLTCFLAGS)
APACHE_SUBST(LTCFLAGS)
+echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}"
+
case $host in
*-apple-aux3*)
APR_SETVAR(APACHE_MPM, [prefork])
APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
;;
- *os2-emx*)
- APR_SETVAR(APACHE_MPM, [mpmt_os2])
- APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
- ;;
*-linux-*)
case `uname -r` in
2.[[2-9]]* )
<p>The error log is usually written to a file (typically
<code>error_log</code> on Unix systems and
- <code>error.log</code> on Windows and OS/2). On Unix systems it
+ <code>error.log</code> on Windows). On Unix systems it
is also possible to have the server send errors to
<code>syslog</code> or <a href="#piped">pipe them to a
program</a>.</p>
<name>ErrorLog</name>
<description>Location where the server will log errors</description>
<syntax> ErrorLog <var>file-path</var>|syslog[:<var>facility</var>]</syntax>
-<default>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</default>
+<default>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows)</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<dd>This returns the <code>Last-Modified</code> and <code>ETag</code>
values for the listed directory in the HTTP header. It is only valid
if the operating system and file system return appropriate stat()
- results. Some Unix systems do so, as do OS2's JFS and Win32's
- NTFS volumes. OS2 and Win32 FAT volumes, for example, do not.
+ results. Some Unix systems do so, as do Win32's
+ NTFS volumes. Win32 FAT volumes, for example, do not.
Once this feature is enabled, the client or proxy can track
changes to the list of files when they perform a <code>HEAD</code>
request. Note some operating systems correctly track new and
* file with a relative pathname will have this added.
*/
#ifndef HTTPD_ROOT
-#ifdef OS2
-/** Set default for OS/2 file system */
-#define HTTPD_ROOT "/os2httpd"
-#elif defined(WIN32)
+#if defined(WIN32)
/** Set default for Windows file system */
#define HTTPD_ROOT "/apache"
#elif defined (NETWARE)
* directive.
*/
#ifndef DOCUMENT_LOCATION
-#ifdef OS2
-/* Set default for OS/2 file system */
-#define DOCUMENT_LOCATION HTTPD_ROOT "/docs"
-#else
-/* Set default for non OS/2 file system */
#define DOCUMENT_LOCATION HTTPD_ROOT "/htdocs"
-#endif
#endif /* DOCUMENT_LOCATION */
/** Maximum number of dynamically loaded modules */
/** The name of the log files */
#ifndef DEFAULT_ERRORLOG
-#if defined(OS2) || defined(WIN32)
+#if defined(WIN32)
#define DEFAULT_ERRORLOG "logs/error.log"
#else
#define DEFAULT_ERRORLOG "logs/error_log"
/** Define this to be what your per-directory security files are called */
#ifndef DEFAULT_ACCESS_FNAME
-#ifdef OS2
-/* Set default for OS/2 file system */
-#define DEFAULT_ACCESS_FNAME "htaccess"
-#else
#define DEFAULT_ACCESS_FNAME ".htaccess"
-#endif
#endif /* DEFAULT_ACCESS_FNAME */
/** The name of the server config file */
* Test if the given path has an an absolute path.
* @param p The pool to allocate from
* @param dir The directory name
- * @note The converse is not necessarily true, some OS's (Win32/OS2/Netware) have
+ * @note The converse is not necessarily true, some OS's (Win32/Netware) have
* multiple forms of absolute paths. This only reports if the path is absolute
* in a canonical sense.
*/
else
name = ap_unixd_config.user_name;
-#if !defined(OS2) && !defined(TPF)
- /* OS/2 and TPF don't support groups. */
+#if !defined(TPF)
+ /* TPF doesn't support groups. */
/*
* Set the GID before initgroups(), since on some platforms
"and Group %u", name, (unsigned)ap_unixd_config.group_id);
return -1;
}
-#endif /* !defined(OS2) && !defined(TPF) */
+#endif /* !defined(TPF) */
}
return 0;
}
ap_unixd_config.user_name = arg;
ap_unixd_config.user_id = ap_uname2id(arg);
-#if !defined (BIG_SECURITY_HOLE) && !defined (OS2)
+#if !defined (BIG_SECURITY_HOLE)
if (ap_unixd_config.user_id == 0) {
return "Error:\tApache has not been designed to serve pages while\n"
"\trunning as root. There are known race conditions that\n"
dav_fs_enable=$dav_enable
fi
-case "$host" in
- *os2*)
- # OS/2 DLLs must resolve all symbols at build time
- # and we need some from main DAV module
- dav_fs_objects="$dav_fs_objects ../main/mod_dav.la"
- ;;
-esac
-
APACHE_MODULE(dav_fs, DAV provider for the filesystem, $dav_fs_objects, , $dav_fs_enable)
APACHE_MODPATH_FINISH
dav_lock_objects="mod_dav_lock.lo locks.lo"
-case "$host" in
- *os2*)
- # OS/2 DLLs must resolve all symbols at build time
- # and we need some from main DAV module
- dav_lock_objects="$dav_lock_objects ../main/mod_dav.la"
- ;;
-esac
-
APACHE_MODULE(dav_lock, DAV provider for generic locking, $dav_lock_objects, , no)
APACHE_MODPATH_FINISH
#include "http_protocol.h"
#include "ap_config.h"
-#if !defined(OS2) && !defined(WIN32) && !defined(NETWARE)
+#if !defined(WIN32) && !defined(NETWARE)
#include "unixd.h"
#define MOD_EXIPC_SET_MUTEX_PERMS /* XXX Apache should define something */
#endif
r->handler = "default-handler";
}
else
-#if defined(OS2) || defined(WIN32) || defined(NETWARE)
+#if defined(WIN32) || defined(NETWARE)
/* These OS's don't support xbithack. This is being worked on. */
{
return DECLINED;
#endif
#ifdef DEBUG_CGI
-#ifdef OS2
- /* Under OS/2 need to use device con. */
- FILE *dbg = fopen("con", "w");
-#else
FILE *dbg = fopen("/dev/tty", "w");
-#endif
int i;
#endif
return log_scripterror(r, conf, HTTP_FORBIDDEN, 0,
"attempt to include NPH CGI script");
-#if defined(OS2) || defined(WIN32)
+#if defined(WIN32)
#error mod_cgid does not work on this platform. If you teach it to, look
#error at mod_cgi.c for required code in this path.
#else
count, kbcount);
#ifdef HAVE_TIMES
- /* Allow for OS/2 not having CPU stats */
- if (ts || tu || tcu || tcs)
- ap_rprintf(r, "CPULoad: %g\n",
- (tu + ts + tcu + tcs) / tick / up_time * 100.);
+ ap_rprintf(r, "CPULoad: %g\n",
+ (tu + ts + tcu + tcs) / tick / up_time * 100.);
#endif
ap_rprintf(r, "Uptime: %ld\n", (long) (up_time));
ap_rputs("</dt>\n", r);
#ifdef HAVE_TIMES
- /* Allow for OS/2 not having CPU stats */
ap_rprintf(r, "<dt>CPU Usage: u%g s%g cu%g cs%g",
tu / tick, ts / tick, tcu / tick, tcs / tick);
- if (ts || tu || tcu || tcs)
- ap_rprintf(r, " - %.3g%% CPU load</dt>\n",
- (tu + ts + tcu + tcs) / tick / up_time * 100.);
+ ap_rprintf(r, " - %.3g%% CPU load</dt>\n",
+ (tu + ts + tcu + tcs) / tick / up_time * 100.);
#endif
if (up_time > 0) {
break;
case CONDPAT_FILE_LINK:
-#if !defined(OS2)
if ( apr_stat(&sb, input, APR_FINFO_MIN | APR_FINFO_LINK,
r->pool) == APR_SUCCESS
&& sb.filetype == APR_LNK) {
rc = 1;
}
-#endif
break;
case CONDPAT_FILE_DIR:
#include "http_config.h"
#include "http_request.h"
-#if !defined(WIN32) && !defined(OS2) && !defined(NETWARE)
+#if !defined(WIN32) && !defined(NETWARE)
#define HAVE_UNIX_SUEXEC
#endif
proxy_ajp_objs="mod_proxy_ajp.lo ajp_header.lo ajp_link.lo ajp_msg.lo ajp_utils.lo"
proxy_balancer_objs="mod_proxy_balancer.lo"
-case "$host" in
- *os2*)
- # OS/2 DLLs must resolve all symbols at build time and
- # these sub-modules need some from the main proxy module
- proxy_connect_objs="$proxy_connect_objs mod_proxy.la"
- proxy_ftp_objs="$proxy_ftp_objs mod_proxy.la"
- proxy_http_objs="$proxy_http_objs mod_proxy.la"
- proxy_fcgi_objs="$proxy_fcgi_objs mod_proxy.la"
- proxy_scgi_objs="$proxy_scgi_objs mod_proxy.la"
- proxy_fdpass_objs="$proxy_fdpass_objs mod_proxy.la"
- proxy_ajp_objs="$proxy_ajp_objs mod_proxy.la"
- proxy_balancer_objs="$proxy_balancer_objs mod_proxy.la"
- ;;
-esac
-
APACHE_MODULE(proxy_connect, Apache proxy CONNECT module, $proxy_connect_objs, , $proxy_mods_enable)
APACHE_MODULE(proxy_ftp, Apache proxy FTP module, $proxy_ftp_objs, , $proxy_mods_enable)
APACHE_MODULE(proxy_http, Apache proxy HTTP module, $proxy_http_objs, , $proxy_mods_enable)
AC_MSG_CHECKING(for target platform)
case $host in
-*pc-os2-emx*)
- OS="os2"
- OS_DIR=$OS
- ;;
bs2000*)
OS="unix"
OS_DIR=$OS
+++ /dev/null
-
-LTLIBRARY_NAME = libos.la
-LTLIBRARY_SOURCES = util_os2.c
-
-include $(top_srcdir)/build/ltlib.mk
+++ /dev/null
-if test "$OS" = "os2" ; then
- APR_ADDTO(CFLAGS, [-DOS2 -O2])
-fi
+++ /dev/null
-# Some rules for making a shared core dll on OS/2
-
-os2core: httpd.dll $(CORE_IMPLIB)
- $(LIBTOOL) --mode=link gcc -Zstack 512 $(LDFLAGS) $(EXTRA_LDFLAGS) -o httpd $(CORE_IMPLIB)
-
-httpd.dll: $(PROGRAM_DEPENDENCIES) $(CORE_IMPLIB)
- $(LINK) -Zdll $(EXTRA_LDFLAGS) -s -o $@ server/exports.lo modules.lo $(PROGRAM_DEPENDENCIES) $(AP_LIBS) server/ApacheCoreOS2.def
+++ /dev/null
-LIBRARY httpd INITINSTANCE
-DESCRIPTION "Apache Server Core"
-DATA NONSHARED
-
-EXPORTS
- "main"
-
-; One for mod_dav from socket library
- "_swaps"
-
-; And some more for mod_unique_id
- "gethostname"
- "gethostbyname"
- "_swapl"
- "h_errno"
- "inet_ntoa"
-
-; mod_proxy needs this one
- "inet_addr"
+++ /dev/null
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file os2/os.h
- * @brief This file in included in all Apache source code. It contains definitions
- * of facilities available on _this_ operating system (HAVE_* macros),
- * and prototypes of OS specific functions defined in os.c or os-inline.c
- *
- * @defgroup APACHE_OS_OS2 os2
- * @ingroup APACHE_OS
- * @{
- */
-
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-#define PLATFORM "OS/2"
-
-/* going away shortly... */
-#define HAVE_DRIVE_LETTERS
-#define HAVE_UNC_PATHS
-#define CASE_BLIND_FILESYSTEM
-
-#endif /* ! APACHE_OS_H */
-/** @} */
+++ /dev/null
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define INCL_DOS
-#define INCL_DOSERRORS
-#include <os2.h>
-#include "ap_config.h"
-#include "httpd.h"
-#include "http_log.h"
-#include "os.h"
-#include <sys/time.h>
-#include <sys/signal.h>
-#include <ctype.h>
-#include <string.h>
-#include "apr_strings.h"
-
-
-AP_DECLARE(apr_status_t) ap_os_create_privileged_process(
- const request_rec *r,
- apr_proc_t *newproc, const char *progname,
- const char * const *args,
- const char * const *env,
- apr_procattr_t *attr, apr_pool_t *p)
-{
- return apr_proc_create(newproc, progname, args, env, attr, p);
-}
-CLEAN_TARGETS = gen_test_char test_char.h \
- ApacheCoreOS2.def httpd.exp export_files \
+CLEAN_TARGETS = gen_test_char test_char.h httpd.exp export_files \
exports.c export_vars.h
SUBDIRS = mpm
export_vars.h: export_files
$(AWK) -f $(top_srcdir)/build/make_var_export.awk `cat $?` > $@
-# Rule to make def file for OS/2 core dll
-ApacheCoreOS2.def: exports.c export_vars.h $(top_srcdir)/os/$(OS_DIR)/core_header.def
- cat $(top_srcdir)/os/$(OS_DIR)/core_header.def > $@
- $(CPP) $< $(ALL_CPPFLAGS) $(ALL_INCLUDES) | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$$/ "\1"/' >> $@
- $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep "^[a-z]" | sed -e 's/^\(.*\)$$/ "\1"/' >> $@
-
# Rule to make exp file for AIX DSOs
httpd.exp: exports.c export_vars.h
@echo "#! ." > $@
return errmsg;
}
-/* XXX: Bogus - need to do this differently (at least OS2/Netware suffer
- * the same problem!!!
+/* XXX: Bogus - need to do this differently (at least Netware suffers
+ * the same problem!!!)
* We use this in <DirectoryMatch> and <FilesMatch>, to ensure that
* people don't get bitten by wrong-cased regex matches
*/
printf("\n ");
/* escape_shell_cmd */
-#if defined(WIN32) || defined(OS2)
- /* Win32/OS2 have many of the same vulnerable characters
+#if defined(WIN32)
+ /* Win32 has many of the same vulnerable characters
* as Unix sh, plus the carriage return and percent char.
* The proper escaping of these characters varies from unix
- * since Win32/OS2 use carets or doubled-double quotes,
+ * since Win32 uses carets or doubled-double quotes,
* and neither lf nor cr can be escaped. We escape unix
* specific as well, to assure that cross-compiled unix
- * applications behave similiarly when invoked on win32/os2.
+ * applications behave similiarly when invoked on win32.
*
* Rem please keep in-sync with apr's list in win32/filesys.c
*/
#ifndef HAVE_INITGROUPS
int initgroups(const char *name, gid_t basegid)
{
-#if defined(QNX) || defined(MPE) || defined(_OSD_POSIX) || defined(TPF) || defined(__TANDEM) || defined(OS2) || defined(WIN32) || defined(NETWARE)
+#if defined(QNX) || defined(MPE) || defined(_OSD_POSIX) || defined(TPF) || defined(__TANDEM) || defined(WIN32) || defined(NETWARE)
/* QNX and MPE do not appear to support supplementary groups. */
return 0;
#else /* ndef QNX */
r->uri = r->parsed_uri.path ? r->parsed_uri.path
: apr_pstrdup(r->pool, "/");
-#if defined(OS2) || defined(WIN32)
- /* Handle path translations for OS/2 and plug security hole.
+#if defined(WIN32)
+ /* Handle path translations and plug security hole.
* This will prevent "http://www.wherever.com/..\..\/" from
* returning a directory for the root drive.
*/
for (x = r->uri; (x = strchr(x, '\\')) != NULL; )
*x = '/';
}
-#endif /* OS2 || WIN32 */
+#endif /* WIN32 */
}
else {
r->args = NULL;
/* We will never skip '0' element components, e.g. plain old
* <Directory >, and <Directory "/"> are classified as zero
- * so that Win32/Netware/OS2 etc all pick them up.
+ * so that Win32/Netware etc all pick them up.
* Otherwise, skip over the mismatches.
*/
if (entry_core->d_components
*/
#define TEST_CHAR(c, f) (test_char_table[(unsigned)(c)] & (f))
-/* Win32/NetWare/OS2 need to check for both forward and back slashes
+/* Win32/NetWare need to check for both forward and back slashes
* in ap_getparents() and ap_escape_url.
*/
#ifdef CASE_BLIND_FILESYSTEM
return status;
if (finfo.filetype != APR_REG &&
-#if defined(WIN32) || defined(OS2) || defined(NETWARE)
+#if defined(WIN32) || defined(NETWARE)
strcasecmp(apr_filepath_name_get(name), "nul") != 0) {
#else
strcmp(name, "/dev/null") != 0) {
-#endif /* WIN32 || OS2 */
+#endif /* WIN32 */
ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
"Access to file %s denied by server: not a regular file",
name);
s = (const unsigned char *)str;
for (; *s; ++s) {
-#if defined(OS2) || defined(WIN32)
+#if defined(WIN32)
/*
- * Newlines to Win32/OS2 CreateProcess() are ill advised.
+ * Newlines to Win32 CreateProcess() are ill advised.
* Convert them to spaces since they are effectively white
* space to most applications
*/
#include "apr_date.h" /* For apr_date_parse_http() */
#include "util_ebcdic.h"
-#ifdef OS2
-#define INCL_DOS
-#include <os2.h>
-#endif
-
/*
* Various utility functions which are common to a whole lot of
* script-type extensions mechanisms, and might as well be gathered
conn_rec *c = r->connection;
const char *rem_logname;
char *env_path;
-#if defined(WIN32) || defined(OS2)
+#if defined(WIN32)
char *env_temp;
#endif
const char *host;
}
#endif
-#ifdef OS2
- if ((env_temp = getenv("COMSPEC")) != NULL) {
- apr_table_addn(e, "COMSPEC", env_temp);
- }
- if ((env_temp = getenv("ETC")) != NULL) {
- apr_table_addn(e, "ETC", env_temp);
- }
- if ((env_temp = getenv("DPATH")) != NULL) {
- apr_table_addn(e, "DPATH", env_temp);
- }
- if ((env_temp = getenv("PERLLIB_PREFIX")) != NULL) {
- apr_table_addn(e, "PERLLIB_PREFIX", env_temp);
- }
-#endif
-
apr_table_addn(e, "SERVER_SIGNATURE", ap_psignature("", r));
apr_table_addn(e, "SERVER_SOFTWARE", ap_get_server_banner());
apr_table_addn(e, "SERVER_NAME",
my @cmds = ();
my $f;
foreach $f (@args) {
- # ack all potential gcc, hp/ux, win32+os2+aix and os/x extensions
+ # ack all potential gcc, hp/ux, win32, aix and os/x extensions
if ($f !~ m#(\.so$|\.la$|\.sl$|\.dll$|\.dylib$|)#) {
error("file $f is not a shared object");
exit(1);
exit_error(rv, "apr_proc_detach");
}
-#if defined(WIN32) || defined(OS2) || defined(NETWARE)
+#if defined(WIN32) || defined(NETWARE)
#error "Please implement me."
"{<rotation time in seconds>|<rotation size>(B|K|M|G)} "
"[offset minutes from UTC]\n\n",
argv0);
-#ifdef OS2
- fprintf(stderr,
- "Add this:\n\nTransferLog \"|%s.exe /some/where 86400\"\n\n",
- argv0);
-#else
fprintf(stderr,
"Add this:\n\nTransferLog \"|%s /some/where 86400\"\n\n",
argv0);
fprintf(stderr,
"or \n\nTransferLog \"|%s /some/where 5M\"\n\n", argv0);
-#endif
fprintf(stderr,
"to httpd.conf. The generated name will be /some/where.nnnn "
"where nnnn is the\nsystem time at which the log nominally "