]> granicus.if.org Git - nethack/commitdiff
*** empty log message ***
authorjwalz <jwalz>
Sat, 5 Jan 2002 21:05:59 +0000 (21:05 +0000)
committerjwalz <jwalz>
Sat, 5 Jan 2002 21:05:59 +0000 (21:05 +0000)
sys/vms/Install.vms [new file with mode: 0644]

diff --git a/sys/vms/Install.vms b/sys/vms/Install.vms
new file mode 100644 (file)
index 0000000..f7568ae
--- /dev/null
@@ -0,0 +1,482 @@
+               Instructions for Installing NetHack 3.3.1
+                           on a VMS system
+               =========================================
+
+0.  Please read this entire file before trying to build or install
+    NetHack, then read it again!
+
+1.  Building NetHack requires a C compiler (either VAX C, DEC C, or GNU C)
+    and VMS version V4.6 or later (but see note #9).  This release has been
+    tested on VAX/VMS V5.5-2 and V6.2, and Alpha/VMS V6.2 and V7.1.  The
+    build procedure (vmsbuild.com) should not need to be modified; it accepts
+    an option for selecting the compiler, and it can detect different
+    versions which might require specific command qualifiers.  Versions
+    of VAXC earlier than V2.3 will produce many warning messages (about
+    200 per source file; over to 25,000 total!), but NetHack has been
+    verified to compile, link, and execute correctly when built with VAXC
+    V2.2 using vmsbuild.com.  There is also a set of Makefiles suitable
+    for use with MMS; they may or may not work with other make utilities.
+
+2.  Make sure all the NetHack files are in the appropriate directory
+    structure.  You should set up a directory--referred to as "top" below
+    and in some of the assorted files, but which may be a subdirectory--
+    that has these subdirectories
+        [.dat]          -- data files
+        [.doc]          -- documentation files
+        [.include]      -- C header files
+        [.src]          -- primary source files
+        [.sys]          -- parent for [.sys.*]
+        [.sys   .share] -- files shared by several ports, including VMS
+        [.sys   .vms]   -- VMS-specific source and support files
+        [.util]         -- sources for essential utility programs
+        [.win]          -- parent for [.win.*]
+        [.win   .tty]   -- "window" routines for ordinary terminals
+                           (including terminal windows on workstations)
+    The following subdirectories may be present, but are not useful for
+    building NetHack on VMS and are not required:
+        [.sys   .amiga] -- AmigaDOS
+        [.sys   .amiga   .splitter]
+        [.sys   .atari] -- Atari TOS
+        [.sys   .be]    -- BeBox BeOS
+        [.sys   .mac]   -- Macintosh
+        [.sys   .mac     .old]
+        [.sys   .msdos] -- MSDOS for IBM PCs and compatibles
+        [.sys   .msdos   .old]
+        [.sys   .os2]   -- OS/2
+        [.sys   .share   .sounds] -- AIFF format audio files
+        [.sys   .unix]  -- guess :-)
+        [.sys   .winnt] -- Windows NT
+        [.win   .gem]   -- window routines for Atari/GEM
+        [.win   .gnome] -- window routines for Unix/GNOME
+        [.win   .Qt]    -- window routines for Qt
+        [.win   .share] -- "tile" graphic support
+        [.win   .win32] -- Windows NT
+        [.win   .X11]   -- window routines for X-Windows; requires X11R4
+                           or later and MIT's Athena Widget set
+    You must arrange things in this structure or the supplied procedures
+    and instructions in this file will not work properly.  Several DCL
+    command files are present in the [.sys.vms] subdirectory and won't
+    work as intended if they're moved elsewhere.  The file called Files
+    in the top directory contains lists of everything that should be in
+    each subdirectory, including things that are constructed as NetHack
+    is being built.  (If you obtain the NetHack distribution via the
+    "shar" packaging used for Usenet newsgroup comp.sources.games and its
+    archives, you may have to reconstruct several files that get split
+    for posting.)
+
+3.  Prior to beginning compilation, go to the [.include] subdirectory and
+    edit vmsconf.h according to its comments.  You should set Local_WIZARD
+    and Local_HACKDIR to appropriate values, and you might want to define
+    TEXTCOLOR if you have any color VAXstations or color terminals which
+    handle ANSI-format escape sequences to set foreground and background
+    color for text characters.  (VT241/VT340 color graphics won't work.)
+    Other things which may be of interest are SECURE if you intend to
+    set up NetHack as an installed image which is granted privileges, and
+    SHELL which should be disabled if you intend to allow captive accounts
+    to run NetHack.  You may also want to edit file config.h, but that's
+    only necessary if you want or need to disable some of the game options.
+    The distributed copy of config.h will work successfully on VMS;
+    vmsconf.h has conditional code to deal with the UNIX-specific items.
+
+4.  If you have the programming utilities lex or flex and yacc or bison,
+    you may edit the procedure [.sys.vms]spec_lev.com and execute it to
+    process several source files for NetHack's special level and dungeon
+    compilers.  If you don't modify spec_lev.com, it will copy some
+    pre-processed versions of the appropriate files (dgn_lex.c, lev_lex.c,
+    dgn_yacc.c, lev_yacc.c, dgn_comp.h, and lev_comp.h) from [.sys.share]
+    into [.util]*.c and [.include]*.h.
+       $ @[.SYS.VMS]SPEC_LEV            ![OPTIONAL]
+    If you perform this step, do it prior to executing vmsbuild.com; if
+    you don't perform this step, vmsbuild.com will do so for you.
+
+5.  To build NETHACK.EXE and its auxiliary programs, execute the
+    following DCL command:
+       $ @[.SYS.VMS]VMSBUILD          !defaults to CC, either VAXC or DECC
+    or $ @[.SYS.VMS]VMSBUILD "GNUC"   !force "GCC"
+    It can take quite a bit of time for a full build to complete.
+    vmsbuild.com will display some feedback as it executes; generally
+    this will be the name of each source file that's about to be compiled
+    or the name of the executable that has just been linked.
+
+6.  If you have already started (or finished) a build and decide to start
+    over with a different compiler, you should DELETE [.SRC]CRTL.OPT;*
+    first.
+
+7.  After compilation, it's time to perform installation.  Go back to
+    the top directory.  Either edit [.sys.vms]install.com to indicate
+    where you want everything to be installed, or specify the location
+    and "playground" owner on the command line.  Then execute either
+       $ @[.SYS.VMS]INSTALL
+    or $ @[.SYS.VMS]INSTALL location owner
+    where location is a device:[directory] specification and owner is
+    either a rights identifier or UIC.  If install.com is not modified
+    and if values aren't supplied on the command line, the default values
+    used are the translation of logical name HACKDIR, if any, or else
+    [.PLAY] (relative to the current directory), and the UIC for the
+    current process.  install.com will use the auxiliary programs
+    constructed by vmsbuild.com to process quite a few data files in the
+    [.dat] subdirectory.  Then it will create the playground directory,
+    if necessary, plus the associated [.save] subdirectory.  Next it will
+    copy the data files into the playground; this step can take a while.
+    Finally it will copy nethack.exe and a few additional support files.
+
+    After it completes, the files [.src]nethack.olb, [.src]nethack.exe,
+    [.util]*.obj, [.util]*_comp.exe, and [.util]makedefs.exe can be
+    deleted in order to save disk space if desired.  The other program,
+    [.util]recover.exe, should not be deleted unless you make a copy of
+    it somewhere--perhaps in the playground directory--first.  It can be
+    used to resurrect some games disrupted by system or program crash.
+
+8.  The file nethack.com which is copied to the playground directory can
+    be used to invoke NetHack, or nethack.exe can be run directly.  Most
+    of the command-line options specified in the Unix man-page (file
+    [.doc]nethack.txt) are also applicable to VMS.  Some comments at the
+    beginning of nethack.com illustrate several of the options.  New
+    players should read the file "Guidebook.txt" which will be copied
+    into the playground directory as "Guidebook.doc".
+
+
+Notes:
+
+1.  Save files and bones files from earlier versions will not work with
+    3.3.1.  The scoreboard file (RECORD) from 3.3.0 will work; one from
+    version 3.2.x is slightly different format but should be compatible.
+
+2.  To specify user-preference options in your environment, define the
+    logical name NETHACKOPTIONS to have the value of a quoted string
+    containing a comma separated list of option values.  The option names
+    are case-insensitive.
+       $ define nethackoptions "noAutoPickup,Dog:Rover,Cat:Felix,DECgraphics"
+    One value you'll probably want to specify is "noLegacy" to turn off
+    the initial introductory passage.  The "checkpoint" option controls
+    whether or not enough data is saved to disk so that the set of level
+    files left behind after a crash contains sufficient information for
+    recover.exe to be able to construct a save file after the fact.  The
+    tradeoff for enabling checkpoint is that using it makes level changes
+    do more I/O and take longer.  The "menustyle" option controls some
+    aspects of the user interface, and can be set to "menustyle:traditional"
+    to make 3.3.1 or 3.2.x behave more like 3.1.3.
+
+    If logical name or DCL symbol NETHACKOPTIONS is not defined, NetHack
+    will try HACKOPTIONS instead.  Regardless of whether or not either
+    is defined, it will also try to find a configuration file containing
+    additional option settings.  If the value of the translation of
+    NETHACKOPTIONS--or HACKOPTIONS--begins with an "@" character then the
+    rest of the translation is assumed to be the name of the configuration
+    file.  Otherwise, the following are tried:  file specified by logical
+    name NETHACKINI, file SYS$LOGIN:NETHACK.INI, and file HOME:NETHACK.CNF
+    (note that the C run-time library sets up the value of HOME to match
+    sys$login).  Syntax for the configuration file is similar to
+    NETHACKOPTIONS, but multiple lines can be used, each must start with
+    OPTIONS=, and comments can be included by placing '#' in the first
+    column.  Several options which take more complex values (graphics
+    representation) can also be present; see the "Guidebook" for details.
+    (Guidebook.txt can be found in the [.doc] subdirectory; a copy gets
+    placed in the playground directory by install.com.  Also, an example
+    configuration file can be found in [.win.X11]nethack.rc.)
+
+3.  Instead of using vmsbuild.com to compile and link everything, you can
+    use the set of Makefiles found in the vms subdirectory, provided you
+    have an appropriate and compatible make utility.  They've been tested
+    using MMK, a freeware clone of Digital's MMS.  There are five of them,
+    and the suffix or filetype on their names indicates where they should
+    be placed.
+       $ copy [.sys.vms]Makefile.top []Makefile.
+       $ copy [.sys.vms]Makefile.src [.src]Makefile.
+       $ copy [.sys.vms]Makefile.utl [.util]Makefile.
+       $ copy [.sys.vms]Makefile.dat [.dat]Makefile.
+       $ copy [.sys.vms]Makefile.doc [.doc]Makefile.
+    After doing that, edit [.src]Makefile and [.util]Makefile to specify
+    pertinent compiler options in CFLAGS, linker options in LFLAGS, and
+    libraries in LIBS and/or MORELIBS if the default values aren't right.
+    Be sure to make compatible compilation and linking settings in both
+    files.  While in there, edit [.util]Makefile to specify the appropriate
+    values for lex and yacc, _or_ move to that directory and use MMS or
+    make to build targets no_lex and no_yacc which will copy several
+    pre-processed files from [.sys.share] into [.util].  Finally, edit
+    Makefile in the top directory to specify values for GAMEDIR and
+    GAMEOWNER.  This top Makefile invokes [.sys.vms]install.com to do
+    much of the actual installation work, so if you want to make any
+    customizations or file protection changes, edit install.com to suit.
+    Also set MAKE in all of the Makefiles to the appropriate command if
+    not using MMS or MMK.
+
+    Once the Makefiles are tailored for your site, give the command
+       $ mms all,install
+    or $ make all install
+    To compile and install everything.  The object files compiled via
+    the Makefiles are left as individual .OBJ files rather than placed
+    into an object library (in contrast to step #7 above and note #10
+    below).  These Makefiles are provided on an as-is basis; vmsbuild.com
+    is the preferred way to compile because it's guaranteed to compile
+    and link everything.
+
+4.  termcap is an ASCII data file containing descriptions of terminal
+    capabilities and the escape sequences that software must use to take
+    advantage of them.  If you do not already have a termcap file in use
+    on your system there is a small one in file [.SYS.SHARE]TERMCAP.  It
+    contains definitions for common Digital terminals, also suitable for
+    most clones and emulators.  This file is copied into the playground
+    by install.com, and NetHack will use it if it can't find any other
+    one.  NetHack uses the following sequence to attempt to locate the
+    termcap file:  translation of the logical name TERMCAP (used as-is),
+    file NETHACKDIR:TERMCAP, similar file HACKDIR:TERMCAP, GNU-Emacs file
+    EMACS_LIBRARY:[ETC]TERMCAP.DAT, file []TERMCAP, and lastly file
+    $TERMCAP (which most likely would be a logical name).  If NetHack
+    can't find the termcap file, or if the above search sequence finds a
+    different one than you'd prefer, then use the DCL ASSIGN or DEFINE
+    command to define a value for logical name TERMCAP.
+
+    NetHack also tries fairly hard to figure out what kind of terminal
+    you're using.  It checks for logical names (or symbols) NETHACK_TERM,
+    HACK_TERM, EMACS_TERM, and lastly TERM.  The last is set up by the
+    C run-time library and you cannot use a logical name or symbol for
+    it.  If all those fail, or if whichever one succeeds has a value of
+    "undefined" or "unknown" (which can happen under VMS V5.4-* and
+    V5.5-* for VT420 terminals), NetHack will query the VMS TERMTABLE
+    database used by the SMG library routines.  Whatever value NetHack
+    eventually comes up with needs to be the name of an entry in the
+    termcap file, otherwise a message about "Unknown terminal type" will
+    be printed and NetHack will exit.
+
+5.  NetHack contains code which attempts to make it secure in case it's
+    installed with privileges (to allow the playground to be protected
+    against world write access).  This has only undergone limited testing,
+    so install NetHack with privileges at your own risk.  If you discover
+    any potential security holes, please let us know so that we can take
+    steps to correct the problem(s).  NetHack always includes filename
+    punctuation when accessing files, so that it should never be affected
+    by inadvertent or malicious logical name definitions, and it always
+    deactivates installed privileges prior to spawning a subprocess.
+
+    Note to end users:  "installing with privileges" is an option for
+    system managers who set up system-wide access to the game.  Since
+    CMKRNL privilege and modification of the system boot routines are
+    both required, it is not an option for ordinary users.  There are
+    no explicit instructions on how to do such an installation, because
+    only system managers who are already familiar with the process and
+    its potential security ramifications should even consider it.
+
+    The default setup by install.com assumes no privileges and uses
+    world-writable files to allow arbitrary users to play.  This is
+    NOT secure and not advisable in any environment where there are
+    untrustworthy users, but works fine for many sites.  If you allow
+    users to run NetHack from captive accounts (VMS 5.1-* or earlier)
+    or from restricted accounts (5.2 and later), you should either make
+    sure that they do not have TMPMBX privilege or else disable NetHack's
+    ability to spawn an interactive subprocess.  To disable subprocesses,
+    disable the "!" (shell escape) command by commenting out the definition
+    of SHELL in vmsconf.h prior to building the program.  This necessity
+    may be removed in some future release, where NetHack will check for
+    captive accounts instead of spawning unconditionally.  Note that
+    disabling the SHELL command also prevents spawning MAIL when scrolls
+    of new mail are received.
+
+    In order for installed privileges to be used at all, the value of
+    HACKDIR (via Local_HACKDIR in vmsconf.h) compiled into the program
+    must correspond to the actual playground directory.  If logical name
+    HACKDIR (or NETHACKDIR) is used to override that value, installed
+    privileges will be deactivated unless its value corresponds to the
+    same device and directory as the internal value.  If that internal
+    value contains a logical name, only an executive-mode translation
+    will be honored; if there is no such translation, installed privs
+    will be deactivated.
+
+    To be able to install nethack.exe with privileges (SYSPRV or GRPPRV,
+    perhaps EXQUOTA, depending on site usage and needs), you'll need to
+    link it with debugging and tracebacks both disabled.  You can do this
+    by specifying an argument to vmsbuild.com when performing step #6
+    above; pass it "/noTrace/noDebug" as the 4th parameter.
+       $ @[.SYS.VMS]VMSBUILD "" "" "" "/noTrace/noDebug"
+    /Trace/noDebug is the linker's normal default.  If you've already
+    built NetHack, you can relink with tracebacks disabled by doing
+       $ @[.SYS.VMS]VMSBUILD "LINK" "" "" "/noTrace/noDebug"
+
+6.  If you can't or won't install nethack.exe with privileges and if you
+    don't have access to a privileged account yourself, then if you intend
+    to allow other users to access your copy of NetHack you should probably
+    place an ACL on the playground directory and its save subdirectory.
+    The access control list should contain a default protection ACE which
+    grants delete+control access to the playground owner (ie, your own
+    account if there's no special games account involved).  install.com
+    does not attempt to do this automatically at the present time.  After
+    executing install.com to create the playground directory, perform a
+    pair of commands similar to the following
+       $ SET ACL/ACL=(IDENT=your_id, OPTIONS=DEFAULT, ACCESS=R+W+E+D+C) -
+       $_ device:[playground's.parent.directory]playground.DIR
+       $ SET ACL/ACL=(IDENT=your_id, OPTIONS=DEFAULT, ACCESS=R+W+E+D+C) -
+       $_ device:[playground.directory]SAVE.DIR
+    The two commands use the same options, but SET ACL won't accept a
+    list of files to modify.  (For recent versions of VMS, SET ACL was
+    made obsolete in favor of SET FILE/ACL, which in turn has been made
+    obsolete in favor of SET SECURITY/CLASS=FILE/ACL; however, the older
+    forms will still work.)  'your_id' should be the rights identifier
+    which corresponds to the account which should retain access to those
+    files; 'device:[playground's.parent.directory]' is the name of the
+    parent directory for the playground (ie, if your playground directory
+    is disk$foo:[me.games.nethack.play], then you want to specify
+    disk$foo:[me.games.nethack]play.dir on the SET ACL command), and
+    'device:[playground.directory]' is the playground itself.  Those ACLs
+    establish a default protection scheme such that every newly created
+    file in those directories will have an ACL attached to it, and the
+    attached ACL will grant 'your_id' full access to the corresponding
+    file.  That should allow you to clear away level files from aborted
+    games, and to delete old save files if necessary.  It will not enable
+    you to run recover.exe on behalf of other users, because you won't be
+    able to create files owned by them unless you have elevated privileges.
+
+7.  Many NetHack commands can be aborted by sending it the <escape>
+    character when it wants input.  This is displayed as ESC inside the
+    game.  Digital VK201 keyboards (used by VT2xx and VT3xx and older
+    VAXstations) and VK401 keyboards (used by VT4xx, newer VAXstations,
+    and DEC's X Terminals) do not have an <escape> key.  They may
+    transmit <escape> for the <F11> key if the terminal or emulator
+    window is set to operate in VT100 mode, or there may be a setup-type
+    option for making the <` | ~> key behave as <escape>.  If your
+    terminal does not have that, or if it's set to a mode where that
+    won't work, then just use <ctrl/[> instead.  (Press the "[" key while
+    holding down the "Ctrl" key, then release both; <escape> and <ctrl/[>
+    have the same ASCII code and are indistinguishable once they reach
+    the computer; note that VAXstations and X Terminals _can_ tell the
+    difference, but that won't matter for NetHack.)
+
+    VMS NetHack is configured to use the SYS$QIOW system service for
+    reading characters from the keyboard.  This allows ^C and ^Y (as well
+    as ^X and ^O for wizard mode debugging) to be used as commands without
+    being intercepted or interpreted by the terminal driver.  The code
+    which parses arrow and function keys is not perfect, and it's possible
+    to get strange results if you hold such keys down to just type too
+    quickly, particularly on slow multiplexor lines.  Those keys are
+    never needed in actual play, and most function keys are just treated
+    as <escape> for use in aborting partial commands.
+
+    VMS NetHack also still has code to use SMG$READ_KEYSTROKE instead.
+    That can be activated by modifying vmsconf.h and recompiling, but
+    it should never be necessary.  If you use it, you'll need to press
+    either <esc> or <ctrl/[> twice to abort partial commands, or else
+    press an arbitrary function key, such as <PF4>, once.
+
+    If SUSPEND is defined in vmsconf.h, <ctrl/Z> is used for that command.
+    Since Unix-style job control is not available, it's used for connecting
+    to the parent process if NetHack is running in a subprocess.  When not
+    in a subprocess, it doesn't do anything except give a message to the
+    effect that it's not doing anything....  The suspend command does not
+    save the current game; if you use ^Z to attach to your parent process,
+    be sure to remember to eventually reattach to the NetHack subprocess;
+    otherwise the game in progress won't get saved when you logout.
+
+8.  NetHack optionally maintains a logfile which receives one line appended
+    to it whenever a game ends.  This can be disabled entirely by adding
+    an "#undef LOGFILE" directive to vmsconf.h prior to building the
+    program, or it can be disabled later by removing the file(s) LOGFILE.;*
+    from the playground directory.  If not disabled prior to compilation,
+    the logfile can be reinitialized by simply creating an empty file
+    named LOGFILE in the playground, but make sure that users are able
+    to write into it, or new entries will not be appended.
+
+9.  Some attempt at support for VMS versions earlier than V4.6 has been
+    included, but no such obsolete system was available for testing it.
+    vmsbuild.com detects the need for the extra support routines and
+    arranges automatically for them to be compiled.  The reason that
+    special support is needed is that the C Run-Time Library (VAXCRTL)
+    underwent a major revision for VMS V4.6 and several routines which
+    NetHack utilizes were not available prior to that upgrade.
+
+10. vmsbuild.com collects almost all of the object files (xxx.OBJ) into
+    an object library (NETHACK.OLB) as it compiles the source files.
+    This should prevent the quota-exceeded problems from the linker
+    that some sites have reported for prior versions.  Note that if you
+    compile any source files manually, you'll need to replace those
+    modules in the object library prior to linking the program:
+       $ cc/include=[-.include] [-.sys.vms]vmstty   !for example
+       $ libr/obj []nethack vmstty                  !replace VMSTTY
+       $ @[-.sys.vms]vmsbuild LINK                  !re-link NETHACK.EXE
+    If you forget to replace the library entry, your newly compiled code
+    will not be included in the new executable image.
+
+11. To access "wizard mode"--intended for debugging purposes, not to
+    spoil the game with unlimited wishes--you must be running from the
+    username compiled into the game via Local_WIZARD in vmsconf.h, and
+    you must specify "-D" on the command line when invoking NetHack.
+    Note that it must be uppercase, and it must be in quotes to prevent
+    the C run-time library's program startup code from converting it into
+    lowercase.
+       $ @hackdir:nethack "-D"
+    Any character name you specify will be ignored in favor of "wizard".
+
+12. At program startup time, NetHack uses the empty file PERM to prevent
+    two different processes from using the same character name (under the
+    same UIC ownership) at the same time.  It does this by temporarily
+    giving that file a second directory entry named PERM.LOCK, then
+    removing the alternate entry once started.  If the PERM file is
+    missing or inaccessible, NetHack will give a message and then quit.
+    Several possible messages and their usual causes are:
+       Can't find file perm;1 to lock!
+    PERM.;1 is missing from the playground directory.  Fix:  reinstall
+    the playground directory using install.com, or use CREATE or an editor
+    to make an empty file named PERM.  Version number must be 1.
+       Can't lock perm;1 due to directory protection.
+    The playground directory is not allowing write access.  Fix:  players
+    need to be able to write files for dungeon levels and "bones" into
+    the playground directory.  Set the protection or ACL on the xxx.DIR;1
+    file in the playground's parent directory to allow write access.
+       Can't unlink perm.lock;1.
+    The empty file PERM.;1 is protected against delete access; only matters
+    under some versions of VMS.  Fix:  set the protection or ACL on PERM.;1
+    to allow delete access to players.  Under VMS V5.5-2, delete access is
+    not necessary.  PERM does not have to remain writable.
+       Waiting for access to perm;1.  (# retries left).
+    If some other process is also starting up NetHack at about the same
+    time, you may have to wait a short period.  NetHack will retry once
+    per second, counting down to 0.  If 0 is reached, the message
+       Perhaps there is an old perm.lock;1 around?
+    will be displayed and then NetHack will give up.  Fix:  to forcibly
+    remove a stale PERM.LOCK entry, issue the following command
+       $ SET FILE/REMOVE PERM.LOCK;1
+    from the playground directory.  The file PERM should remain intact.
+    Do not use that command for real files, only alternate directory
+    entries.  If output from a DIRECTORY command on the playground reports
+       PERM.LOCK;1          no such file
+    then someone has deleted PERM.;1 while the synonym entry was still
+    in place, and PERM.LOCK was left as a dangling name which no longer
+    points at any file.  The SET FILE/REMOVE command above will fix the
+    dangling name; a new PERM.;1 will need to be created as mentioned above.
+
+    In similar fashion, synchronized access to the scoreboard file RECORD
+    is accomplished using temporary entry RECORD.LOCK and LOGFILE using
+    entry LOGFILE.LOCK.
+
+13. Unless you have both Motif and the Athena Widget set from MIT, you
+    will not be able to use the X11 interface on VMS.  Even if you do
+    have both those things, such a configuration has not been tested and
+    there are no provisions for it in vmsbuild.com.  Makefile.src does
+    have the extra source files listed, but not the necessary libraries.
+
+    The X11 port will not compile and link with DECwindows, but it will
+    be able to display on a VMS DECwindows X server provided that it and
+    its Unix X client have a compatible transport between them (either
+    TCP/IP added to VMS or DECnet added to Unix) and session security
+    is set up appropriately.  You'll need to add the contents of file
+    [.win.X11]NetHack.ad into your DECW$USER_DEFAULTS:DECW$XDEFAULTS.DAT,
+    and modify some of the lines.  The DECwindows window manager does not
+    support having input focus automatically follow the pointer, so you
+    should uncomment the "NetHack*autofocus" resource line.  (For Motif
+    this may not be necessary, depending on customization options.)
+    Uncommenting the "NetHack*slow" line is highly recommended.  You'll
+    also need to set "NetHack*fonts: fixed" (rather than "variable"), and
+    either set the map font to "fixed" too or install the "nh10" font
+    that comes in file [.win.X11]nh10.bdf.  If NetHack warns that the map
+    font is variable, then something isn't set up properly.
+
+    After creating or modifying decw$xdefaults.dat, you must restart the
+    window manager in order for any changes to take effect; it's easiest
+    to just make the session manager quit and then log in again.
+
+14. There is no support for VMS POSIX in this release of NetHack.
+
+15. If necessary, send problem reports via e-mail to
+       <devteam@nethack.org>
+    Always include version information for NetHack, the operating system,
+    and the C compiler used.
+
+ 3-AUG-2000