-
Christopher J. Morrone authored
This patch overhauls how version numbers are handled. The biggest change is removing the two independent places where versions were being generated (LB_BUILDID and lustre_tag*.pl) with a single script named LUSTRE-VERSION-GEN at the top level of the tree. LUSTRE-VERSION-GEN is based on the GIT-VERSION-GEN script that git's own source code build system uses. LUSTRE-VERSION-GEN generates the lustre version string from either git, or if git is not available from the LUSTRE-VERSION-FILE file, or if _that_ is not available, its own internal DEFAULT_VERSION default version number. This allows building the lustre code under all reasonable conditions. The new method uses LUSTRE-VERSION-GEN to supply the correct full lustre version (which may contain git --describe information) to AC_INIT. This means that the autotools actually know the correct version number. Some benefits of this are: * We can use standard {AC_}PACKAGE_VERSION macros and variables instead of inventing our own * ./configure --version and other commands will list the correct version of Lustre * The lustre tarball created by "make dist" will contain the full version number The lustre/autoconf/lustre-version.ac file was replaced with a new config/lustre-version.m4 file. We no longer need to work with m4-only macros prefore AC_INIT is called, so the new file defines a LUSTRE_VERSION_VARIABLES function for us to call from configure.ac. The new lustre-version.m4 derives the derive LUSTRE_{MAJOR,MINOR,PATCH,FIX} from AC_PACKAGE_VERSION rather than being yet another source of version numbers. The LUSTRE_VER_ALLOWED_OFFSET and LUSTRE_CLI_VER_OFFSET_WARN m4 macros were dropped, and the OBD_OCD_VERSION strings stored directly in lustre_ver.h.in instead. LB_CHECK_VERSION was removed (no longer necessary). AC_LUSTRE_VERSION_STRING was drop. It is no longer necessary now that we can set LUSTRE_VERSION_STRING directly to @PACKAGE_VERSION@ in lustre_ver.h.in. The DOWNSTREAM_RELEASE configure argument is deprecated and all related code removed. The lustre/doc/VERSIONING documenation is relocated to Documentation/versioning.txt and updated to reflect the new versioning method and practices. The META file and BUILDID variables and related code are removed since they are no longer used under the new versioning method. Note that this patch makes lustre only look at the dotted version tags in git, so we can finally stop using three to five tags for every release. Now we can just use one clear tag. The tags with underscores are obsolete. Change-Id: I7196f92ed4975776cc8e73fd3ebf436b5921f83e Signed-off-by:
Christopher J. Morrone <morrone2@llnl.gov> Reviewed-on: http://review.whamcloud.com/18107 Tested-by: Jenkins Reviewed-by:
James Simmons <uja.ornl@yahoo.com> Reviewed-by:
Dmitry Eremin <dmitry.eremin@intel.com> Tested-by:
Maloo <hpdd-maloo@intel.com> Reviewed-by:
Oleg Drokin <oleg.drokin@intel.com>
Christopher J. Morrone authoredThis patch overhauls how version numbers are handled. The biggest change is removing the two independent places where versions were being generated (LB_BUILDID and lustre_tag*.pl) with a single script named LUSTRE-VERSION-GEN at the top level of the tree. LUSTRE-VERSION-GEN is based on the GIT-VERSION-GEN script that git's own source code build system uses. LUSTRE-VERSION-GEN generates the lustre version string from either git, or if git is not available from the LUSTRE-VERSION-FILE file, or if _that_ is not available, its own internal DEFAULT_VERSION default version number. This allows building the lustre code under all reasonable conditions. The new method uses LUSTRE-VERSION-GEN to supply the correct full lustre version (which may contain git --describe information) to AC_INIT. This means that the autotools actually know the correct version number. Some benefits of this are: * We can use standard {AC_}PACKAGE_VERSION macros and variables instead of inventing our own * ./configure --version and other commands will list the correct version of Lustre * The lustre tarball created by "make dist" will contain the full version number The lustre/autoconf/lustre-version.ac file was replaced with a new config/lustre-version.m4 file. We no longer need to work with m4-only macros prefore AC_INIT is called, so the new file defines a LUSTRE_VERSION_VARIABLES function for us to call from configure.ac. The new lustre-version.m4 derives the derive LUSTRE_{MAJOR,MINOR,PATCH,FIX} from AC_PACKAGE_VERSION rather than being yet another source of version numbers. The LUSTRE_VER_ALLOWED_OFFSET and LUSTRE_CLI_VER_OFFSET_WARN m4 macros were dropped, and the OBD_OCD_VERSION strings stored directly in lustre_ver.h.in instead. LB_CHECK_VERSION was removed (no longer necessary). AC_LUSTRE_VERSION_STRING was drop. It is no longer necessary now that we can set LUSTRE_VERSION_STRING directly to @PACKAGE_VERSION@ in lustre_ver.h.in. The DOWNSTREAM_RELEASE configure argument is deprecated and all related code removed. The lustre/doc/VERSIONING documenation is relocated to Documentation/versioning.txt and updated to reflect the new versioning method and practices. The META file and BUILDID variables and related code are removed since they are no longer used under the new versioning method. Note that this patch makes lustre only look at the dotted version tags in git, so we can finally stop using three to five tags for every release. Now we can just use one clear tag. The tags with underscores are obsolete. Change-Id: I7196f92ed4975776cc8e73fd3ebf436b5921f83e Signed-off-by:
Christopher J. Morrone <morrone2@llnl.gov> Reviewed-on: http://review.whamcloud.com/18107 Tested-by: Jenkins Reviewed-by:
James Simmons <uja.ornl@yahoo.com> Reviewed-by:
Dmitry Eremin <dmitry.eremin@intel.com> Tested-by:
Maloo <hpdd-maloo@intel.com> Reviewed-by:
Oleg Drokin <oleg.drokin@intel.com>