7 April 2010. SMS. Mpack 1.6 for VMS (1.6b) ======================== ------------------------------------------------------------------------ Disclaimer ---------- No claims of any sort are made herein. (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 mpack version 1.6, a pair of utilities: mpack, to "pack a file in MIME format", and munpack, "to unpack messages in MIME or split-uuencode format". Some of the most obvious features seem to work (mostly), but many have not been tested. Built and tested (slightly) in these environments: OpenVMS Alpha V8.3, HP C V7.3-009 OpenVMS IA64 V8.3-1H1, HP C V7.3-018 OpenVMS VAX V7.3, Compaq C V6.4-005 ------------------------------------------------------------------------ Mpack Web Resources ------------------- Main source kit: ftp://ftp.andrew.cmu.edu/pub/mpack/ Debian patches: http://ftp.de.debian.org/debian/pool/main/m/mpack/ ------------------------------------------------------------------------ Building Mpack on VMS --------------------- Extract the files from the distribution kit. The kit includes objects and executables for Alpha, IA64, and VAX, in the corresponding host-specific subdirectories. These builds were done with option (explained below) "LARGE" (except VAX). MMS or MMK is required. MMS commands are shown in the examples, but MMK should work. (An exception is for automatic dependency generation. See [.VMS]DESCRIP_MKDEPS.MMS for details.) Normally (starting in the main source directory): MMS /MACRO = (LARGE=1) ! Non-VAX MMS ! VAX Changes to the code should have removed all the compiler warnings, ------------------------------------------------------------------------ Installation - Foreign Commands ------------------------------- Set the symbols for the foreign commands: MPACK :== $ actual_device:[actual.directory]MPACK.EXE MUNPACK :== $ actual_device:[actual.directory]MUNPACK.EXE ------------------------------------------------------------------------ VMS Usage Notes --------------- A VMS file may need to be specified using UNIX notation. On non-VAX systems, with SET PROCESS /PARSE_STYLE = EXTENDED, mpack and munpack will preserve the case of the command line. On VAX systems (or with SET PROCESS /PARSE_STYLE = TRADITIONAL), command-line options and arguments with upper-case content must be quoted to avoid conversion to lower case by the C run-time library. ------------------------------------------------------------------------ News ---- Version 1.6b 2010-04-07 ------------------------ - Added multiple-inclusion guard to "common.h". - Minor code tidying in unixos.c (for non-VMS systems). - Changed kit packaging to preserve case of file names, obviating the old shell script, VMS_NAME_FIX.SH, which has been removed from the kit. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Version 1.6a 2009-08-29 ------------------------ - New. Bugs and limitations may abound. This version is based on the original Carnegie Mellon University version 1.6 source kit, with some patches from the Debian 1.6-5 patch kit. (The Debian 1.6-6 patch kit seems to add nothing significant.) - It's not clear that building with the large-file option matters, but it should be harmless. ------------------------------------------------------------------------ Changes to Source Files ----------------------- Files new for VMS (all in []): COLLECT_DEPS.COM Dependency collector for DESCRIP_MKDEPS.MMS. LIST_TO_OPT.COM Link options file creator. decc_ver.c Program to show build-time versions of VMS, DEC C, and the C run-time library. DESCRIP.MMS Main MMK or MMS description ("make") file. DESCRIP_DEPS.MMS Source dependency description file. DESCRIP_MKDEPS.MMS Source dependency generator description file. DESCRIP_SRC.MMS Source list description file. proto.h Combined function prototype header file. vmsos.c Various VMS-specific code: DEC C run-time initialization. VMS_NOTES.TXT These notes. Files modified for VMS (all in []): common.h Added multiple-inclusion guard. decode.c Compiler warning reduction. Function prototype reduction and extraction. Some Debian patches. encode.c Compiler warning reduction. Function prototype extraction. Some Debian patches. magic.c Compiler warning reduction. md5.h Added multiple-inclusion guard. part.c Compiler warning reduction. Function prototype extraction. Some Debian patches. part.h Added multiple-inclusion guard. Added prototypes for functions in part.c. unixos.c Compiler warning reduction (for non-VMS systems). unixpk.c Compiler warning reduction. Function prototype reduction and extraction. Changed to use vfork() instead of fork() on VMS. Some Debian patches. unixunpk.c Compiler warning reduction. Function prototype reduction. Some Debian patches. version.h Version 1.6b. xmalloc.c Compiler warning reduction. Function prototype reduction. ------------------------------------------------------------------------ When reporting problems, especially build problems, with mpack for VMS, it is often useful to reveal precise compiler, run-time library, and VMS version information. The program decc_ver.c (included in the kit) is intended to make that easier. ------------------------------------------------------------------------ Steven M. Schweda sms@antinode.info 382 South Warwick Street (+1) 651-699-9818 Saint Paul MN 55105-2547