INSTALL.VMS 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. VMS Installation instructions
  2. written by Richard Levitte
  3. <richard@levitte.org>
  4. Intro:
  5. ======
  6. This file is divided in the following parts:
  7. Requirements - Mandatory reading.
  8. Checking the distribution - Mandatory reading.
  9. Compilation - Mandatory reading.
  10. Logical names - Mandatory reading.
  11. Test - Mandatory reading.
  12. Installation - Mandatory reading.
  13. Backward portability - Read if it's an issue.
  14. Possible bugs or quirks - A few warnings on things that
  15. may go wrong or may surprise you.
  16. TODO - Things that are to come.
  17. Requirements:
  18. =============
  19. To build and install OpenSSL, you will need:
  20. * DEC C or some other ANSI C compiler. VAX C is *not* supported.
  21. [Note: OpenSSL has only been tested with DEC C. Compiling with
  22. a different ANSI C compiler may require some work]
  23. Checking the distribution:
  24. ==========================
  25. There have been reports of places where the distribution didn't quite get
  26. through, for example if you've copied the tree from a NFS-mounted Unix
  27. mount point.
  28. The easiest way to check if everything got through as it should is to check
  29. for one of the following files:
  30. [.CRYPTO]OPENSSLCONF.H_IN
  31. [.CRYPTO]OPENSSLCONF_H.IN
  32. They should never exist both at once, but one of them should (preferably
  33. the first variant). If you can't find any of those two, something went
  34. wrong.
  35. The best way to get a correct distribution is to download the gzipped tar
  36. file from ftp://ftp.openssl.org/source/, use GUNZIP to uncompress it and
  37. use VMSTAR to unpack the resulting tar file.
  38. GUNZIP is available in many places on the net. One of the distribution
  39. points is the WKU software archive, ftp://ftp.wku.edu/vms/fileserv/ .
  40. VMSTAR is also available in many places on the net. The recommended place
  41. to find information about it is http://www.free.lp.se/vmstar/ .
  42. Compilation:
  43. ============
  44. I've used the very good command procedures written by Robert Byer
  45. <byer@mail.all-net.net>, and just slightly modified them, making
  46. them slightly more general and easier to maintain.
  47. You can actually compile in almost any directory separately. Look
  48. for a command procedure name xxx-LIB.COM (in the library directories)
  49. or MAKExxx.COM (in the program directories) and read the comments at
  50. the top to understand how to use them. However, if you want to
  51. compile all you can get, the simplest is to use MAKEVMS.COM in the top
  52. directory. The syntax is the following:
  53. @MAKEVMS <option> <rsaref-p> <debug-p> [<compiler>]
  54. <option> must be one of the following:
  55. ALL Just build "everything".
  56. CONFIG Just build the "[.CRYPTO]OPENSSLCONF.H" file.
  57. BUILDINF Just build the "[.INCLUDE]BUILDINF.H" file.
  58. SOFTLINKS Just copies some files, to simulate Unix soft links.
  59. BUILDALL Same as ALL, except CONFIG, BUILDINF and SOFTLINKS aren't done.
  60. RSAREF Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library.
  61. CRYPTO Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
  62. SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library.
  63. SSL_TASK Just build the "[.xxx.EXE.SSL]SSL_TASK.EXE" program.
  64. TEST Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
  65. APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.
  66. <rsaref-p> must be one of the following:
  67. RSAREF compile using the RSAREF Library
  68. NORSAREF compile without using RSAREF
  69. Note 0: The RSAREF library IS NO LONGER NEEDED. The RSA patent
  70. expires September 20, 2000, and RSA Security chose to make
  71. the algorithm public domain two weeks before that.
  72. Note 1: If you still want to use RSAREF, the library is NOT INCLUDED
  73. and you have to download it. RSA Security doesn't carry it
  74. any more, but there are a number of places where you can find
  75. it. You have to get the ".tar-Z" file as the ".zip" file
  76. doesn't have the directory structure stored. You have to
  77. extract the file into the [.RSAREF] directory as that is where
  78. the scripts will look for the files.
  79. Note 2: I have never done this, so I've no idea if it works or not.
  80. <debug-p> must be one of the following:
  81. DEBUG compile with debugging info (will not optimize)
  82. NODEBUG compile without debugging info (will optimize)
  83. <compiler> must be one of the following:
  84. DECC For DEC C.
  85. GNUC For GNU C.
  86. You will find the crypto library in [.xxx.EXE.CRYPTO], called LIBCRYPTO.OLB,
  87. where xxx is VAX or AXP. You will find the SSL library in [.xxx.EXE.SSL],
  88. named LIBSSL.OLB, and you will find a bunch of useful programs in
  89. [.xxx.EXE.APPS]. However, these shouldn't be used right off unless it's
  90. just to test them. For production use, make sure you install first, see
  91. Installation below.
  92. Note 1: Some programs in this package require a TCP/IP library.
  93. Note 2: if you want to compile the crypto library only, please make sure
  94. you have at least done a @MAKEVMS CONFIG, a @MAKEVMS BUILDINF and
  95. a @MAKEVMS SOFTLINKS. A lot of things will break if you don't.
  96. Logical names:
  97. ==============
  98. There are a few things that can't currently be given through the command
  99. line. Instead, logical names are used.
  100. Currently, the logical names supported are:
  101. OPENSSL_NO_ASM with value YES, the assembler parts of OpenSSL will
  102. not be used. Instead, plain C implementations are
  103. used. This is good to try if something doesn't work.
  104. OPENSSL_NO_'alg' with value YES, the corresponding crypto algorithm
  105. will not be implemented. Supported algorithms to
  106. do this with are: RSA, DSA, DH, MD2, MD4, MD5, RIPEMD,
  107. SHA, DES, MDC2, CR2, RC4, RC5, IDEA, BF, CAST, HMAC,
  108. SSL2. So, for example, having the logical name
  109. OPENSSL_NO_RSA with the value YES means that the
  110. LIBCRYPTO.OLB library will not contain an RSA
  111. implementation.
  112. Test:
  113. =====
  114. Testing is very simple, just do the following:
  115. @[.TEST]TESTS
  116. If a test fails, try with defining the logical name OPENSSL_NO_ASM (yes,
  117. it's an ugly hack!) and rebuild. Please send a bug report to
  118. <openssl-bugs@openssl.org>, including the output of "openssl version -a"
  119. and of the failed test.
  120. Installation:
  121. =============
  122. Installation is easy, just do the following:
  123. @INSTALL <root>
  124. <root> is the directory in which everything will be installed,
  125. subdirectories, libraries, header files, programs and startup command
  126. procedures.
  127. N.B.: INSTALL.COM builds a new directory structure, different from
  128. the directory tree where you have now build OpenSSL.
  129. In the [.VMS] subdirectory of the installation, you will find the
  130. following command procedures:
  131. OPENSSL_STARTUP.COM
  132. defines all needed logical names. Takes one argument that
  133. tells it in what logical name table to insert the logical
  134. names. If you insert if it SYS$MANAGER:SYSTARTUP_VMS.COM, the
  135. call should look like this:
  136. @openssldev:[openssldir.VMS]OPENSSL_STARTUP "/SYSTEM"
  137. OPENSSL_UTILS.COM
  138. sets up the symbols to the applications. Should be called
  139. from for example SYS$MANAGER:SYLOGIN.COM
  140. The logical names that are set up are the following:
  141. SSLROOT a dotted concealed logical name pointing at the
  142. root directory.
  143. SSLCERTS Initially an empty directory, this is the default
  144. location for certificate files.
  145. SSLMISC Various scripts.
  146. SSLPRIVATE Initially an empty directory, this is the default
  147. location for private key files.
  148. SSLEXE Contains the openssl binary and a few other utility
  149. programs.
  150. SSLINCLUDE Contains the header files needed if you want to
  151. compile programs with libcrypto or libssl.
  152. SSLLIB Contains the OpenSSL library files (LIBCRYPTO.OLB
  153. and LIBSSL.OLB) themselves.
  154. OPENSSL Same as SSLINCLUDE. This is because the standard
  155. way to include OpenSSL header files from version
  156. 0.9.3 and on is:
  157. #include <openssl/header.h>
  158. For more info on this issue, see the INSTALL. file
  159. (the NOTE in section 4 of "Installation in Detail").
  160. You don't need to "deleting old header files"!!!
  161. Backward portability:
  162. =====================
  163. One great problem when you build a library is making sure it will work
  164. on as many versions of VMS as possible. Especially, code compiled on
  165. OpenVMS version 7.x and above tend to be unusable in version 6.x or
  166. lower, because some C library routines have changed names internally
  167. (the C programmer won't usually see it, because the old name is
  168. maintained through C macros). One obvious solution is to make sure
  169. you have a development machine with an old enough version of OpenVMS.
  170. However, if you are stuck with a bunch of Alphas running OpenVMS version
  171. 7.1, you seem to be out of luck. Fortunately, the DEC C header files
  172. are cluttered with conditionals that make some declarations and definitions
  173. dependent on the OpenVMS version or the C library version, *and* you
  174. can use those macros to simulate older OpenVMS or C library versions,
  175. by defining the macros _VMS_V6_SOURCE, __VMS_VER and __CTRL_VER with
  176. correct values. In the compilation scripts, I've provided the possibility
  177. for the user to influence the creation of such macros, through a bunch of
  178. symbols, all having names starting with USER_. Here's the list of them:
  179. USER_CCFLAGS - Used to give additional qualifiers to the
  180. compiler. It can't be used to define macros
  181. since the scripts will do such things as well.
  182. To do such things, use USER_CCDEFS.
  183. USER_CCDEFS - Used to define macros on the command line. The
  184. value of this symbol will be inserted inside a
  185. /DEFINE=(...).
  186. USER_CCDISABLEWARNINGS - Used to disable some warnings. The value is
  187. inserted inside a /DISABLE=WARNING=(...).
  188. So, to maintain backward compatibility with older VMS versions, do the
  189. following before you start compiling:
  190. $ USER_CCDEFS := _VMS_V6_SOURCE=1,__VMS_VER=60000000,__CRTL_VER=60000000
  191. $ USER_CCDISABLEWARNINGS := PREOPTW
  192. The USER_CCDISABLEWARNINGS is there because otherwise, DEC C will complain
  193. that those macros have been changed.
  194. Note: Currently, this is only useful for library compilation. The
  195. programs will still be linked with the current version of the
  196. C library shareable image, and will thus complain if they are
  197. faced with an older version of the same C library shareable image.
  198. This will probably be fixed in a future revision of OpenSSL.
  199. Possible bugs or quirks:
  200. ========================
  201. I'm not perfectly sure all the programs will use the SSLCERTS:
  202. directory by default, it may very well be that you have to give them
  203. extra arguments. Please experiment.
  204. TODO:
  205. =====
  206. There are a few things that need to be worked out in the VMS version of
  207. OpenSSL, still:
  208. - Description files. ("Makefile's" :-))
  209. - Script code to link an already compiled build tree.
  210. - A VMSINSTALlable version (way in the future, unless someone else hacks).
  211. - shareable images (DLL for you Windows folks).
  212. There may be other things that I have missed and that may be desirable.
  213. Please send mail to <openssl-users@openssl.org> or to me directly if you
  214. have any ideas.
  215. --
  216. Richard Levitte <richard@levitte.org>
  217. 2000-02-27