6 November 2000. SMS. Wget 1.5.3 for VMS (1.5.3g) =========================== ------------------------------------------------------------------------ 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: Alpha VMS V7.2-1, Compaq C V6.2-003, and TCPIP V5.0A - ECO 1. VAX VMS V7.2, DEC C V6.0-001, and TCPIP V5.0A. ------------------------------------------------------------------------ News ---- 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 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 --------------- ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/wget.tar.gz ------------------------------------------------------------------------ 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 "utime()" replacement function. For VMS before V7.0, "getpwuid()" and "localtime_r()". VMS.H Replacement for . 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. 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_3F.SRC.ALPHA]WGET.EXE", and a VAX executable, "[.WGET-1_5_3F.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_3F.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, home) 382 South Warwick Street (+1) 763-781-0308 (voice, work) Saint Paul MN 55105-2547 (+1) 763-781-0309 (facsimile, work) sms@antinode.org sms@provis.com (work)