home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / zip21.zip / vms / 00readme.txt next >
Text File  |  1996-04-01  |  6KB  |  124 lines

  1. *****************************************
  2. ************ vms/00readme.txt ***********
  3. *****************************************
  4.  
  5. Additional information for compiling Zip for VMS:
  6.  
  7. A) Support for storing VMS specific file attributes
  8.    ================================================
  9.  
  10. The current version of Zip comes with two different types of support
  11. to store VMS file attributes in extra blocks:
  12.  
  13.   -- the traditional Info-ZIP format in vms/vms_im.c
  14. and
  15.  
  16.   -- a new PKware (ASI) type extra field structure in vms/vms_pk.c
  17.  
  18. Both versions should supply exactly the same functionality.
  19. The default configuration is to use the traditional IM style, since it is
  20. well tested and known to be stable.
  21.  
  22. IMPORTANT: To extract new PK style extra fields, Info-ZIP's
  23.            UnZip version 5.2 or newer is required, previous
  24.            versions will crash with an access violation !!!!
  25.            For this reason, it is strongly discouraged to use
  26.            PK (ASI) style extra fields for distributing VMS Zip
  27.            archives.
  28.  
  29. If you want to try the new new PK style support (to archive compatibility
  30. with the commercial VMS Zip from PKware), the preprocessor symbol
  31. VMS_PK_EXTRA has to be defined at compile time.
  32.  
  33. MMS (MMK) users have to edit vms/descrip.mms and add this symbol to
  34. the definition of the COMMON_DEFS macro; for example:
  35.  
  36. COMMON_DEFS = VMS_PK_EXTRA,
  37.  
  38. if VMS_PK_EXTRA is the only option. (NOTE the trailing comma!)
  39.  
  40. Users of the DCL make procedure can select the PK style support by defining
  41. the DCL symbol LOCAL_ZIP as a list of user specific compilation options
  42. (do not forget the trailing comma!!). Example:
  43. $ LOCAL_ZIP == "VMS_PK_EXTRA,"
  44.  
  45.  
  46. B) Notes on the compiler switches used on VMS:
  47.    ===========================================
  48.  
  49. The source has been successfully compiled on VMS 6.1, using
  50.  - DECC 5.0 for Alpha AXP
  51.  - DECC 4.0 for VMS VAX
  52.  - VAXC 3.2
  53.  
  54. 1. Discussion of the /STANDARD switch:
  55.  
  56. With the exception of some few rough spots in the VMS specific sources,
  57. the code is fully compatible with the "RELAXED_ANSI" mode of the DECC
  58. compilers. The problems found in vmsmunch.c and vms_pk.c are caused
  59. by incompatibles between the system include headers supplied for DECC
  60. (AXP) and DECC (VAX) which cannot get worked around. (Some system
  61. service structure members have type "unsigned int"  in the VAX version,
  62. but "pointer to [miscellanous]" in the AXP headers.)
  63. I consider the AXP headers to show the direction of `future developement'
  64. and have adapted the sources to match the AXP's header files.
  65. This means:
  66. On Alpha AXP, we can equally well use "/STANDARD=RELAXED" instead of
  67. "/STANDARD=VAXC" without getting any warnings.
  68. With the current release of DECC on VAX, the /STANDARD=VAXC switch is
  69. required to suppress the "assignment to incompatible type" warnings.
  70. For the Zip 2.1 release, the compiler mode for Alpha AXP has been changed
  71. to "/STANDARD=RELAX", since the "ANSI mode" executables are slightly smaller.
  72.  
  73. 2. The /PREFIX_LIBRARY_ENTRIES switch:
  74.  
  75. In (strict and relaxed) ANSI mode on Alpha AXP, only the standard ANSI
  76. RTL function names get prefixed with "DECC$" by the compiler per default.
  77. This results in unresolved references to such functions as "read()", "open()"
  78. "lseek()" at link step. (The same might be true for earlier releases of DECC
  79. on VAX.) To resolve this problem, one has to explicitely request prefixing
  80. of all DECC RTL function by applying the "/PREFIX=ALL" switch.
  81. Although this switch is not needed in "VAXC" mode, it does not hurt either.
  82. Therefore, "/PREFIX=ALL" is applied regardless of the compilation mode,
  83. to avoid any problems when switching over to ANSI standard mode in the future.
  84.  
  85. C) Support for UX extra field UTC time stamps
  86.    ==========================================
  87. Beginning with Zip 2.1 and UnZip 5.2, the Info-Zip compression utilities
  88. do principally support saving and restoring the modification time of
  89. Zipfile entries as UTC (GMT) universal time. This new information is
  90. stored in an "extra field" labeled "UX" (Unix style GMT modification/access
  91. times, ...).
  92. Previous version of Zip and UnZip used local time, stored in MSDOS compatible
  93. format (as specified by PKware for the Zip file format). This practice caused
  94. a lot of "time synchronization" trouble when transporting Zip archives world
  95. wide between largely different time zones.
  96.  
  97. Unfortunately, VMS (and the VMS C runtime environment) up to VMS 6.x does not
  98. contain support for timezone handling and assumes "local time == UTC time".
  99. This has changed with the release of VMS 7.0, which does (finally) support
  100. the concept of "universal world time" that is required time synchronization
  101. in intercontinental networks...
  102.  
  103. For this reason, the UTC time stamp support is disabled in VMS Zip by default,
  104. otherwise users would experience annoying time stamp deviations when
  105. locally transfering Zip archives between VMS nodes and other (UNIX, OS/2,
  106. WinNT/Win95, MSDOS) systems.
  107. But when compiled on a VMS 7.x system, the UTC "UX extra field" support is
  108. automatically enabled.
  109.  
  110. For users located in the GMT time zone (or a nearby timezone, like CET),
  111. it might be worthwhile to enable UTC support by hand.
  112.  
  113. The default configuration can be overridden by defining one of the
  114. following preprocessor macro:
  115.  
  116.   USE_EF_UX_TIME        includes "UX" time stamp support
  117.   NO_EF_UX_TIME         disables "UX" time stamp support
  118.  
  119. When using MMS/MMK, you should add the appropiate symbol to the "COMMON_DEFS"
  120. list in vms/descrip.mms; if the command procedure is used for compiling,
  121. you can add the macro to the "LOCAL_ZIP" DCL symbol.
  122.  
  123. 04-MAR-1996 Christian Spieler
  124.