Windows: Version mgmt for assemblies and thirdparty

Breakout the version data from windows/NTMakefile.config
and move it to windows/NTMakefile.version.  This new file
contains only version data.  This permits version data to
be safely referenced by third party components.

In addition, add version range information for those versions
of Heimdal for which this release is a compatible upgrade.  If
there is a forward incompatible change to the assembly ABI, it
is not a compatible upgrade.  This version data is used to specify
the Windows assembly redirect range.

Change-Id: Ic9f156212599cc4277e2be812f29a6497801046c
This commit is contained in:
Jeffrey Altman
2011-09-23 09:48:42 -04:00
parent 269cf69f42
commit bad61548dd
5 changed files with 64 additions and 34 deletions

View File

@@ -34,6 +34,7 @@ RELDIR=include
SUBDIRS=kadm5 hcrypto gssapi
!include ../windows/NTMakefile.w32
!include ../windows/NTMakefile.version
!include ../windows/NTMakefile.config
INCFILES= \
@@ -50,7 +51,7 @@ $(OBJ)\bits.exe: $(OBJ)\bits.obj
$(EXECONLINK)
$(EXEPREP_NODIST)
$(INCDIR)\config.h: config.h.w32 ..\windows\NTMakefile.config NTMakefile
$(INCDIR)\config.h: config.h.w32 ..\windows\NTMakefile.config ..\windows\NTMakefile.version NTMakefile
$(PERL) << < config.h.w32 > $@
while(<>) {
@@ -105,7 +106,7 @@ while(<>) {
<<
$(INCDIR)\version.h: ..\windows\NTMakefile.config NTMakefile
$(INCDIR)\version.h: ..\windows\NTMakefile.version NTMakefile
$(CP) << $@
const char *heimdal_long_version = "@(#)$$Version: $(VER_PACKAGE_NAME) $(VER_PACKAGE_VERSION) by $(USERNAME) on $(COMPUTERNAME) ($(CPU)-pc-windows) $$";
const char *heimdal_version = "$(VER_PACKAGE_NAME) $(VER_PACKAGE_VERSION)";

View File

@@ -51,6 +51,8 @@ prep:: mk-asm-dirs
ASMKRBDIR=$(ASMDIR)\Heimdal.Kerberos
ASMKRBVER=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX).$(VER_PRODUCT_PATCH)
ASMKRBVER_OLD_BEGIN=$(VER_OLD_BEGIN_MAJOR).$(VER_OLD_BEGIN_MINOR).$(VER_OLD_BEGIN_AUX).$(VER_OLD_BEGIN_PATCH)
ASMKRBVER_OLD_END=$(VER_OLD_END_MAJOR).$(VER_OLD_END_MINOR).$(VER_OLD_END_AUX).$(VER_OLD_END_PATCH)
ASMKRBMAN=$(ASMKRBNAME).manifest
ASMKRBBINS=\
@@ -132,7 +134,8 @@ POLKRBCAT=$(POLKRBDIR)\$(ASMKRBVER).cat
$(POLKRBFILE): policy.Heimdal.Kerberos.in
$(SED) -e "s,[@]krbname[@],$(ASMKRBNAME),g" \
-e "s,[@]krbversion[@],$(ASMKRBVER),g" \
-e "s,[@]krbverfrom[@],$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR),g" \
-e "s,[@]krbverfrom_begin[@],$(ASMKRBVER_OLD_BEGIN),g" \
-e "s,[@]krbverfrom_end[@],$(ASMKRBVER_OLD_END),g" \
-e "s,[@]krbpolname[@],$(POLKRB),g" \
-e "s,[@]cpu[@],$(MCPU),g" \
-e "s,[@]pkt[@],$(CODESIGN_PKT),g" < $** > $@

View File

@@ -12,7 +12,7 @@
name="@krbname@"
language="*"
processorArchitecture="@cpu@"/>
<bindingRedirect oldVersion="@krbverfrom@.0.0-@krbversion@"
<bindingRedirect oldVersion="@krbverfrom_begin@-@krbverfrom_end@"
newVersion="@krbversion@"/>
</dependentAssembly>
</dependency>

View File

@@ -1,33 +1,12 @@
# Version strings
VER_PACKAGE=heimdal
VER_PACKAGE_NAME=Heimdal
VER_PACKAGE_BUGREPORT=heimdal-bugs@h5l.org
VER_PACKAGE_COPYRIGHT=Copyright (C) 1995-2011 Royal Institute of Technology, Stockholm, Sweden
VER_PACKAGE_COMPANY=www.h5l.org
VER_PRODUCT_MAJOR=1
VER_PRODUCT_MINOR=5
VER_PRODUCT_AUX=9900
VER_PRODUCT_PATCH=0
VER_PACKAGE_VERSION=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX)
# Define to 1 if this is a pre-release build. Undefine otherwise
VER_PRERELEASE=1
# Define to a valid string if this build DOES NOT follow normal
# release procedures. I.e. this is a private build whose version
# numbers are not co-ordinated with mainline development.
#VER_PRIVATE=Private build for MyCompany
# Define to a valid string if this build DOES follow normal release
# procedures, but is a variation of the standard files of the same
# version numbers.
#VER_SPECIAL=Special build for testing ticket 12345
!if exist (..\..\..\windows\NTMakefile.version)
! include <..\..\..\windows\NTMakefile.version>
!elseif exist (..\..\windows\NTMakefile.version)
! include <..\..\windows\NTMakefile.version>
!elseif exist (..\windows\NTMakefile.version)
! include <..\windows\NTMakefile.version>
!else
! include <windows\NTMakefile.version>
!endif
# ------------------------------------------------------------
# Features

View File

@@ -0,0 +1,47 @@
# Version strings
VER_PACKAGE=heimdal
VER_PACKAGE_NAME=Heimdal
VER_PACKAGE_BUGREPORT=heimdal-bugs@h5l.org
VER_PACKAGE_COPYRIGHT=Copyright (C) 1995-2011 Royal Institute of Technology, Stockholm, Sweden
VER_PACKAGE_COMPANY=www.h5l.org
VER_PRODUCT_MAJOR=1
VER_PRODUCT_MINOR=5
VER_PRODUCT_AUX=9900
VER_PRODUCT_PATCH=0
# ------------------------------------------------------------
# The VER_OLD_BEGIN and VER_OLD_END version values are used in
# constructing the assembly publisher configuration. The end
# must be less than the VER_PRODUCT value. If the current
# version is 1.5.100.0 then VER_OLD_END version is
# 1.5.99.65535.
VER_OLD_BEGIN_MAJOR=1
VER_OLD_BEGIN_MINOR=5
VER_OLD_BEGIN_AUX=0
VER_OLD_BEGIN_PATCH=0
VER_OLD_END_MAJOR=1
VER_OLD_END_MINOR=5
VER_OLD_END_AUX=9949
VER_OLD_END_PATCH=65535
VER_PACKAGE_VERSION=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX)
# Define to 1 if this is a pre-release build. Undefine otherwise
VER_PRERELEASE=1
# Define to a valid string if this build DOES NOT follow normal
# release procedures. I.e. this is a private build whose version
# numbers are not co-ordinated with mainline development.
#VER_PRIVATE=Private build for MyCompany
# Define to a valid string if this build DOES follow normal release
# procedures, but is a variation of the standard files of the same
# version numbers.
#VER_SPECIAL=Special build for testing ticket 12345