                                                21 March 2003.  SMS.

                     Wget 1.5.3 for VMS (1.5.3h)
                     ===========================

------------------------------------------------------------------------

      Disclaimer
      ----------

   No claims of any sort are made herein.  The real Wget author is
probably unaware of (or indifferent to) this effort.  Any suggestions
for improving the code in the VMS-specific sections are welcome, but low
expectations are more realistic than high ones.

------------------------------------------------------------------------

      Description
      -----------

   This note accompanies a quick VMS port of Wget version 1.5.3, a GNU
free network utility to retrieve files from the World Wide Web using
HTTP and FTP.  The most obvious features seem to work, but many have not
been tested.

   Built and tested (slightly) in these environments:

OpenVMS Alpha V7.2-1, Compaq C V6.2-003, and TCPIP V5.0A - ECO 1.

OpenVMS VAX V7.2, DEC C V6.0-001, and TCPIP V5.0A.
OpenVMS VAX V7.3, Compaq C V6.4-005, and TCPIP V5.1.

------------------------------------------------------------------------

      News
      ----

   Version 1.5.3h  2003-03-21
   --------------------------

- Changed DESCRIP.MMS to accomodate new support for "utime()" in the VMS
  V7.3 C RTL.  The VMS C RTL "utime()" function sets only the modified
  (revised) date, not the created date of a file.  The UNIX Wget code
  sets both, as does the "utime()" supplied with Wget in VMS.C.  The
  change to DESCRIP.MMS ensures that the Wget "utime()" is used, to
  preserve this behavior.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   Version 1.5.3g  2000-11-06
   --------------------------

- Changed HTTP.C and UTILS.C to avoid compiler complaints
  (CC-I-QUESTCOMPARE1) from Compaq C V6.2.

- Changed VMS.C to expect <iosbdef.h> only on Alpha.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   Version 1.5.3f  2000-03-28
   --------------------------

- Changed URL.C for VMS to translate "~" and "@" in a file name to "-"
  and "$", respectively.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   Version 1.5.3e  1999-12-29
   --------------------------

- Changed HTTP.C ("mktime_from_utc()") to fix an ACCVIO when "gmtime()"
  returned a NULL pointer.  Now, on VMS, if "gmtime()" fails, the
  routine uses "SYS$TIMEZONE_DIFFERENTIAL" to estimate the difference
  between the UTC file time and local time.  Daylight saving time
  differences can leave this result wrong by an hour.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   Version 1.5.3d  1999-12-19
   --------------------------

- Changed DESCRIP.MMS and WGET.OPT to build object and executable files
  in CPU-specific directories ([.SRC.VAX] or [.SRC.ALPHA]).  Added a new
  master build command procedure, VMS-WGET.COM, which sets MMK-MMS
  macros for CPU type and IP software, then runs MMK or MMS.  See
  comments in VMS-WGET.COM for more details.

- Added code for VMS V6.2 and for Multinet TCP/IP.  (Changed
  CONFIG.H_VMS, DESCRIP.MMS, FTP.C, HTTP.C, SYSDEP.H, VMS.C, and VMS.H. 
  Added VMS_IP.H and WGET_MULTINET.OPT.)  Thanks to Jerome Lauret for
  help with the Multinet and VMS V6.2 changes, and the HELP file
  (below).

- Added [.DOC]WGET.HLP, a very basic VMS HELP file.

- Fixed spurious '#include "vms.h"' in FTP-LS.C on non-VMS systems.

- Fixed UTC-to-local time conversion.  (Changed VMS.C.)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   Version 1.5.3c  1999-12-03
   --------------------------

- Changed FTP-LS.C:
   - Automatically senses and works with VMS DIRECTORY listings (FTP
     DIR).  This was tested with fewer than all VMS FTP servers.  Any
     problem report should include a sample FTP DIR listing and/or
     access information for the troublesome FTP server.
   - Assumes that times in the FTP DIR listing are local time, not UTC.
   - Adjusts local file times by the VMS logical name (or environment
     variable) "WGET_TIMEZONE_DIFFERENTIAL", the (signed) number of
     seconds to add to the remote file time to get the local file time. 
     For example, a user in Minnesota (US Central time) fetching files
     from an FTP server in the UK could shift the reported file times by
     six hours with "DEFINE WGET_TIMEZONE_DIFFERENTIAL -21600" before
     running WGET.

- Redistributed the labor of UTC-to-local time conversions.  (HTTP.C and
  VMS.C)

- Added "#define OS_TYPE "VMS" to CONFIG.H (for use in MAIN.C when
  "DEBUG" is defined in CONFIG.H).

- Updated DESCRIP.MMS.  Fixed a problem creating a new CONFIG.H from
  CONFIG.H_VMS.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   Version 1.5.3b  1999-10-03
   ---------------------------

   Since the first non-release near 1999-08-19, the following changes
have been made:

- Late changes to INIT.C and NETRC.C have been included in the kit.

- HTTP.C was changed to avoid ACCVIO when the logical name
  SYS$TIMEZONE_DIFFERENTIAL or SYS$TIMEZONE_DAYLIGHT_SAVING was not
  defined.

- DESCRIP.MMS has been enhanced to add a "CLEAN" target, to specify
  explicitly the dependencies for the object files, to create
  [.SRC]CONFIG.H, if necessary, and to accomodate an optional macro,
  "DBG", which adds "/DEBUG" options to the compiler and linker
  option lists.  Use MMK (or MMS) option "/MACRO = DBG" to build the
  debug executable.

- The program version identifier was changed from "1.5.3" to
  "1.5.3b".

- This document was updated.

------------------------------------------------------------------------

      Home source URL
      ---------------

http://www.gnu.org/directory/wget.html
http://ftp.gnu.org/gnu/wget/
ftp://ftp.gnu.org/gnu/wget/


------------------------------------------------------------------------

      Changes to source files (all in [.SRC])
      ---------------------------------------

   Files new for VMS:

      CONFIG.H_VMS       VMS-specific CONFIG.H.
      DESCRIP.MMS        MMK or MMS description ("make") file.
      VMS-WGET.COM       DCL procedure to build the executable from the
                         source, using MMK or MMS (and DESCRIP.MMS).
      VMS.C              For VMS before V7.3, "utime()" replacement
                         function.  For VMS before V7.0, "getpwuid()"
                         and "localtime_r()".
      VMS.H              For VMS before V7.3, replacement for <utime.h>. 
                         Declarations of replacement data
                         types/structures and function prototypes.
      VMS_IP.H           IP software type-specific "#include"
                         directives.  Used by FTP.C and HTTP.C.
      VMS_NOTES.TXT      These notes.
      WGET.OPT           LINK options file.
      WGET_MULTINET.OPT  LINK options file supplement for Multinet.


   Files modified for VMS:

      CMPT.C            Made tidy for DEC C.
      CONNECT.C         Made tidy for DEC C.
      FTP-LS.C          Added support for VMS FTP servers.  Fixed file
                        times.  Added "WGET_TIMEZONE_DIFFERENTIAL", for
                        file time adjustment.
      FTP.C             Made tidy for DEC C.
      FTP-BASIC.C       Made tidy for DEC C.
      HTTP.C            Made tidy for DEC C.  Added code for Multinet. 
                        Added code to try using the logical name
                        "SYS$TIMEZONE_DIFFERENTIAL" for UTC-to-local
                        time conversions if "gmtime()" fails.
      INIT.C            Changed to use "SYS$LOGIN:.WGETRC" as the name
                        of the initialization file.  Changed to open
                        this file in text mode, not binary.  
      NETRC.C           Changed to use "SYS$LOGIN:.NETRC" as the name of
                        the user name and password file.
      RBUF.C            Made tidy for DEC C.
      URL.C             Added code to replace unacceptable dots (".")
                        and tildes ("~") with underscores ("_") and
                        hyphens ("-"), respectively, in URL-derived file
                        specifications.
      UTILS.C           Added VMS-specific code to work around the lack
                        of "fork()" and symbolic links.
      VERSION.C         Changed version from "1.5.3" to "1.5.3g".

------------------------------------------------------------------------

      Instructions
      ------------

   Extract the files from the distribution kit.  The kit includes an
Alpha executable, "[.WGET-1_5_3H.SRC.ALPHA]WGET.EXE", and a VAX
executable, "[.WGET-1_5_3H.SRC.VAX]WGET.EXE".

   The command procedure VMS-WGET.COM attempts to determine the CPU type
and the IP package, defines the appropriate macros for MMK or MMS, and
then builds the appropriate executable from the source:

      SET DEFAULT [.WGET-1_5_3H.SRC]
      @ VMS-WGET CLEAN ! Deletes all object and executable files for the
                       ! current CPU type.
      @ VMS-WGET       ! Copies CONFIG.H_VMS to CONFIG.H, compiles the
                       ! source files, and links the executable,
                       ! WGET.EXE.  Add "DASHD" to this command line to
                       ! enable the Wget "-d" command-line option.  Add
                       ! "DBG" to this command line to build a debug
                       ! executable.  

   Set the symbol for the foreign command:

      WGET :== $ {actual_device_and_directory}WGET.EXE

   A very basic VMS HELP file is supplied in [.DOC]WGET.HLP.  To be
used, it must be added to a HELP library, either an existing library or
one just for Wget.  A typical command to create a new help library,
WGET.HLB, might look like this:

      LIBRARY /CREATE /HELP WGET.HLB WGET.HLP

   When a new HELP library is created, a logical name "HLP$LIBRARY_n"
may be defined to allow the HELP utility to find it.  See "HELP
/USERLIBRARY" for details.

   Try to read the original documentation to learn how to use Wget.  The
principal differences in this VMS adaptation are:

   "-b" ("background") has no effect.  (It uses "fork()".)

   Excess dots are replaced by underscores in URL-derived file
specifications.  For example, on a UNIX system, the URL
"ftp://ftp.anywhere.org/x.y.z/a.b.c" could produce the local file
"ftp.anywhere.org/x.y.z/a.b.c".  With this VMS adaptation, the local
file would be "[.FTP_ANYWHERE_ORG.X_Y_Z]A_B.C".

------------------------------------------------------------------------

   The accompanying source kit suffers from storage on an ODS2 file
system, which does not preserve case or allow multiple dots in a file
name.  Building this kit should work on VMS,  but it may be expected to
fail on other systems.  Commands like the following should restore the
original names (on a UNIX system).

   mv  authors                   AUTHORS
   mv  changelog                 ChangeLog
   mv  copying                   COPYING
   mv  install                   INSTALL
   mv  machines                  MACHINES
   mv  mailing-list              MAILING-LIST
   mv  makefile.in               Makefile.in
   mv  news                      NEWS
   mv  readme                    README
   mv  todo                      TODO

   mv  doc/changelog             doc/ChangeLog
   mv  doc/makefile.in           doc/Makefile.in

   mv  po/makefile.in_in         po/Makefile.in.in
   mv  po/potfiles.in            po/POTFILES.in
   mv  po/pt_br.gmo              po/pt_BR.gmo
   mv  po/pt_br.po               po/pt_BR.po

   mv  src/changelog             src/ChangeLog
   mv  src/config.h_in           src/config.h.in
   mv  src/makefile.in           src/Makefile.in
   mv  src/tags                  src/TAGS

   mv  util/makefile.in          util/Makefile.in
   mv  util/readme               util/README

   mv  windows/readme            windows/README 
   mv  windows/config.h_ms       windows/config.h.ms 
   mv  windows/makefile.doc      windows/Makefile.doc 
   mv  windows/config.h_bor      windows/config.h.bor 
   mv  windows/makefile.src      windows/Makefile.src 
   mv  windows/makefile.top      windows/Makefile.top 
   mv  windows/makefile.watcom   windows/Makefile.watcom 
   mv  windows/makefile.top_bor  windows/Makefile.top.bor 
   mv  windows/makefile.src_bor  windows/Makefile.src.bor 

------------------------------------------------------------------------

   Steven M. Schweda               (+1) 651-699-9818  (voice)
   382 South Warwick Street        sms@antinode.org
   Saint Paul  MN  55105-2547

