52 Commits (b897b353dff8138aa838bae9766ecd3de8c03280)

Author SHA1 Message Date
Richard Levitte 402dd5585e Following the license change, modify the boilerplates in last few
[skip ci]

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7836)
5 years ago
Richard Levitte 3a63dbef15 Switch to MAJOR.MINOR.PATCH versioning and version 3.0.0-dev
We're strictly use version numbers of the form MAJOR.MINOR.PATCH.
Letter releases are things of days past.

The most central change is that we now express the version number with
three macros, one for each part of the version number:


We also provide two additional macros to express pre-release and build
metadata information (also specified in semantic versioning):


To get the library's idea of all those values, we introduce the
following functions:

    unsigned int OPENSSL_version_major(void);
    unsigned int OPENSSL_version_minor(void);
    unsigned int OPENSSL_version_patch(void);
    const char *OPENSSL_version_pre_release(void);
    const char *OPENSSL_version_build_metadata(void);

Additionally, for shared library versioning (which is out of scope in
semantic versioning, but that we still need):


We also provide a macro that contains the release date.  This is not
part of the version number, but is extra information that we want to
be able to display:


Finally, also provide the following convenience functions:

    const char *OPENSSL_version_text(void);
    const char *OPENSSL_version_text_full(void);

The following macros and functions are deprecated, and while currently
existing for backward compatibility, they are expected to disappear:


Also, this function is introduced to replace OpenSSL_version() for all
indexes except for OPENSSL_VERSION:


For configuration, the option 'newversion-only' is added to disable all
the macros and functions that are mentioned as deprecated above.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7724)
5 years ago
Richard Levitte d445302418 Simplify the handling of shared library version numbers
$(SHLIB_MAJOR).$(SHLIB_MINOR) is really a synonym for
$(SHLIB_VERSION_NUMBER), and is therefore an added complexity,
so better to use $(SHLIB_VERSION_NUMBER) directly.  SHLIB_MAJOR and
SHLIB_MINOR are now unused, but are kept around purely as information
in case someone relies on their existence.

At the same time, add support for custom shared library extensions
with the three new Makefile variables SHLIB_EXT, SHLIB_EXT_SIMPLE and
SHLIB_EXT_IMPORT.  By default, they hold the variants of shared
library extensions we support.  On mingw and cygwin, SHLIB_EXT_IMPORT
is defined; on all other Unix platforms, it's empty.

An example to get shared libraries with a slightly different SOVER name:


Fixes #3902

Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3964)
6 years ago
Richard Levitte 3abcc4ac91 VMS: Don't force symbol mixed case when building DSOs
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 46117d31fe dasync is an internal testing engine, so don't install it
Unfortunately, it means that the VMS IVP gets a bit crippled.  This
will be fixed later on.

Reviewed-by: Matt Caswell <matt@openssl.org>
7 years ago
Richard Levitte 547a19cf4f VMS: have the IVP verify that a well known engine loads properly
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte fa849d738d VMS: If configured no-shared, don't provide shareable image logical names
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 7498162d75 VMS: Adjust the engines directory by adding the pointer size to its name
With OpenSSL 1.1 and on, the engines are tightly tied to the shared
library they're to be used with.  That makes them depend on the
pointer size as well as the shared library version, and this gets
reflected in the name of the directory they're installed in.

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 9481a301e4 VMS: Small cleanups
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 16dc790f47 VMS: OSSL$EXE: needs to reflect that programs are installed in two places
We're installing architecture dependent (compiled) programs in
architecture specific directories, while architecture independent
programs (scripts) get installed in the general programs directory.
OSSL$EXE: reflects that by having two values.

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 1c450706da VMS: Document the changed logical names in VMS/openssl_staryup.com.in
Since there's been quite some changes, documentation needs updating

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte a90f8d7641 VMS: Simplify the spec of the default certs & keys area.
We previously had a number of logical names for the different parts.
There's really no need for that, the default directories are in one
directory tree.  So we only define OSSL$DATAROOT: and make everything
related to that one.

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 07aaab39b2 VMS: openssl_ivp must call versioned openssl_startup and openssl_utils
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 794ad95269 VMS: defined the logical name OPENSSL at all times
This logical names permits '#include <openssl/foo.h>' to work properly.

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte e8fb12957a Versioning engines default location: the VMS case
OpenSSL engines are tied to the OpenSSL shared library versions,
starting with OpenSSL 1.1.  We therefore need to install them in
directories which have the shared library version in it's name, to
easily allow multiple OpenSSL versions to be installed at the same

For VMS, the change is a bit more involved, primarly because the top
installation directory was already versioned, *as well as* some of the
files inside.  That's a bit too much.  Version numbering in files is
also a bit different on VMS.  The engines for shared library version
1.1 will therefore end up in OSSL$INSTROOT:[ENGINES0101.'arch']

('arch' is the architecture we build for)

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 3426de2262 VMS: Add installation verification procedure
On VMS, it's customary to have a procedure to check that the software
was installed correctly and can run as advertised.

The procedure added here is fairly simple, it checks that all
libraries are in place, that the header crypto.h is in place, and that
the command 'openssl version -a' runs without trouble.

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte d17d3293d1 Fix some VMS inconsistencies
- The install top is versioned by default.  However, only the major
  version should be used.
- the default areas for certs, private keys an config files have
  changed, now all prefixed with 'OSSL$'.  This gets reflected in
- [.VMS]openssl_startup.com.in had some faults regarding creating
  rooted concealed logical names.

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte dbb3aba17e Install the openssl app with version number on VMS
This makes it possible for script writers to lock on to a specific
version if they need to.  Note that only the major version number is

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 8842005e75 Have the VMS shared library file names contain the shared version
Also, have the static library file names contain the pointer size when

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 34d5490a1d Pass down correct information to the VMS startup script templates
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 5f94746fa4 Make sure tsget.pl and c_rehash.pl get installed on VMS and Windows.
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte ee7fb55e88 Fix VMS/openssl_{startup,shutddown}.com.in
They were using the wrong variables.

Reviewed-by: Andy Polyakov <appro@openssl.org>
7 years ago
Rich Salz e0a651945c Copyright consolidation: perl files
Add copyright to most .pl files
This does NOT cover any .pl file that has other copyright in it.
Most of those are Andy's but some are public domain.
Fix typo's in some existing files.

Reviewed-by: Richard Levitte <levitte@openssl.org>
7 years ago
Richard Levitte 85112d53c5 VMS: Harmonize the paths in openssl_startup.com with what's really installed
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte af854d05a3 Misc fixes in VMS/openssl_startup.com.in
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 84af1bae68 Clean away $config{no_shared} since we have $disabled{shared}
Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 9ba96fbb25 Perl's chop / chomp considered bad, use a regexp instead
Once upon a time, there was chop, which somply chopped off the last
character of $_ or a given variable, and it was used to take off the
EOL character (\n) of strings.

... but then, you had to check for the presence of such character.

So came chomp, the better chop which checks for \n before chopping it
off.  And this worked well, as long as Perl made internally sure that
all EOLs were converted to \n.

These days, though, there seems to be a mixture of perls, so lines
from files in the "wrong" environment might have \r\n as EOL, or just
\r (Mac OS, unless I'm misinformed).

So it's time we went for the more generic variant and use s|\R$||, the
better chomp which recognises all kinds of known EOLs and chops them

A few chops were left alone, as they are use as surgical tools to
remove one last slash or one last comma.

NOTE: \R came with perl 5.10.0.  It means that from now on, our
scripts will fail with any older version.

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 0f53f939a1 clean away old VMS cruft
The old building scripts get removed, they are hopelessly gone in bit
rot by now.

Also remove the old symbol hacks.  They were needed needed to shorten
some names to 31 characters, and to resolve other symbol clashes.
Because we now compile with /NAMES=(AS_IS,SHORTENED), this is no
longer required.

Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte e84193e43d unified build scheme: add a "unified" template for VMS descrip.mms
As part of this, change util/mkdef.pl to stop adding libraries to
depend on in its output.  mkdef.pl should ONLY output a symbol

Because symbol names can't be longer than 31 characters, we use the
compiler to shorten those that are longer down to 23 characters plus
an 8 character CRC.  To make sure users of our header files will pick
up on that automatically, add the DEC C supported extra headers files
__decc_include_prologue.h and __decc_include_epilogue.h.

Furthermore, we add a config.com, so VMS people can configure just as
comfortably as any Unix folks, thusly:


Reviewed-by: Rich Salz <rsalz@openssl.org>
7 years ago
Richard Levitte 3cb8c3265f Remove the old VMS linker option file creator for shlibs
Reviewed-by: Tim Hudson <tjh@openssl.org>
8 years ago
Richard Levitte 6aaa942d53 Teach mkshared.com to have a look for disabled algorithms in opensslconf.h 12 years ago
Richard Levitte 4ec3e8ca51 For VMS, implement the possibility to choose 64-bit pointers with
different options:
"64"		The build system will choose /POINTER_SIZE=64=ARGV if
		the compiler supports it, otherwise /POINTER_SIZE=64.
"64="		The build system will force /POINTER_SIZE=64.
"64=ARGV"	The build system will force /POINTER_SIZE=64=ARGV.
12 years ago
Richard Levitte 537c982306 After some adjustments, apply the changes OpenSSL 1.0.0d on OpenVMS
submitted by Steven M. Schweda <sms@antinode.info>
12 years ago
Richard Levitte b7ef916c38 First attempt at adding the possibility to set the pointer size for the builds on VMS.
PR: 2393
13 years ago
Richard Levitte cc8cc9a3a1 Functional VMS changes submitted by sms@antinode.info (Steven M. Schweda).
Thank you\!
(note: not tested for now, a few nightly builds should give indications though)
14 years ago
Richard Levitte 78e91e7574 From branch OpenSSL_0_9_7-stable, revision, 2002-05-23 17:25:
Forgot this file.
18 years ago
Richard Levitte 2faa930bb0 Let's make life easier and have the VMS version of the configuration be
generated from the Unixly configuration file.
19 years ago
Richard Levitte bff1567623 Since we're currently assuming VMS can deal with dynamic engines,
don't include the static engine entry points in libcrypto.exe.
21 years ago
Richard Levitte 452d1595a6 End assembler macro correctly.
On VAX, all global variables are accessed through functions, so skip
doing transfer entries for variables.

Forgot the looping gotos.
22 years ago
Richard Levitte bbc206fdf7 A missing comma added. 22 years ago
Richard Levitte b31ccc362c Script to create shareable images (shared libraries in Unixly terms)
on VMS.
22 years ago
Richard Levitte 9fc2570677 It's not just VMS that needs some symbols to be hacked. Let's
centralise those hacks in crypto/symhacks.h and use it everywhere it's
23 years ago
Richard Levitte 9bc629208f With the new stack hack macros, there's no need to shorten the names
any more.
23 years ago
Richard Levitte 3e0f27f3c9 Changes to synchronise with Unix.
(actually, much more is needed, like a real config script)
24 years ago
Richard Levitte c89cb36dbf A test script to check on the header files 24 years ago
Richard Levitte e7399bf592 Beautification and a few entries added. 24 years ago
Richard Levitte 243ba4095c Another name longer than 31 chars 24 years ago
Richard Levitte b3e1a4c68c Some new names in asn1.h are longer than 31 chars, which disturbs the VMS C compilers... 24 years ago
Richard Levitte c96ab5101a Make sure installed files are world readable 24 years ago
Ulf Möller 8c197cc55e VMS updates.
Submitted by: Richard Levitte <levitte@stacken.kth.se>
24 years ago