1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-08 21:18:16 +03:00

build: only use the git version on install, not in the build tree

having the git version in our version.h in the build tree is annoying
for developers, as every time you commit or rebase you need to spend
several minutes re-linking. This changes it to use the git version
only on install, which is much more useful as when you actually
install the binaries you may be using them in a way that reporting the
version is useful

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Fri Jun 17 08:37:06 CEST 2011 on sn-devel-104
This commit is contained in:
Andrew Tridgell 2011-06-17 15:21:39 +10:00
parent 0b3b7e3797
commit d2bc45e7ff
4 changed files with 13 additions and 9 deletions

View File

@ -10,7 +10,7 @@ def write_version_header(task):
src = task.inputs[0].srcpath(task.env)
tgt = task.outputs[0].bldpath(task.env)
version = samba_version_file(src, task.env.srcdir, env=task.env)
version = samba_version_file(src, task.env.srcdir, env=task.env, is_install=task.env.is_install)
string = str(version)
f = open(tgt, 'w')
@ -26,4 +26,5 @@ def SAMBA_MKVERSION(bld, target):
source= 'VERSION',
target=target,
always=True)
t.env.is_install = bld.is_install
Build.BuildContext.SAMBA_MKVERSION = SAMBA_MKVERSION

View File

@ -90,7 +90,7 @@ def git_version_summary(path, env=None):
class SambaVersion(object):
def __init__(self, version_dict, path, env=None):
def __init__(self, version_dict, path, env=None, is_install=True):
'''Determine the version number of samba
See VERSION for the format. Entries on that file are
@ -152,7 +152,10 @@ also accepted as dictionary entries here
SAMBA_VERSION_STRING += ("rc%u" % self.RC_RELEASE)
if self.IS_SNAPSHOT:
if os.path.exists(os.path.join(path, ".git")):
if not is_install:
suffix = "DEVELOPERBUILD"
self.vcs_fields = {}
elif os.path.exists(os.path.join(path, ".git")):
suffix, self.vcs_fields = git_version_summary(path, env=env)
elif os.path.exists(os.path.join(path, ".bzr")):
suffix, self.vcs_fields = bzr_version_summary(path)
@ -234,7 +237,7 @@ also accepted as dictionary entries here
return string
def samba_version_file(version_file, path, env=None):
def samba_version_file(version_file, path, env=None, is_install=True):
'''Parse the version information from a VERSION file'''
f = open(version_file, 'r')
@ -254,16 +257,16 @@ def samba_version_file(version_file, path, env=None):
print("Failed to parse line %s from %s" % (line, version_file))
raise
return SambaVersion(version_dict, path, env=env)
return SambaVersion(version_dict, path, env=env, is_install=is_install)
def load_version(env=None):
def load_version(env=None, is_install=True):
'''load samba versions either from ./VERSION or git
return a version object for detailed breakdown'''
if not env:
env = samba_utils.LOAD_ENVIRONMENT()
version = samba_version_file("./VERSION", ".", env)
version = samba_version_file("./VERSION", ".", env, is_install=is_install)
Utils.g_module.VERSION = version.STRING
return version

View File

@ -157,7 +157,7 @@ def ctags(ctx):
# of commands in --help
def build(bld):
'''build all targets'''
samba_version.load_version(env=bld.env)
samba_version.load_version(env=bld.env, is_install=bld.is_install)
pass

View File

@ -27,7 +27,7 @@ bld.env.public_headers_skip = ['param/param_proto.h', 'lib/ldb_compat.h']
# force headers to use SAMBA4 rules
bld.env.public_headers_replace = { '#if _SAMBA_BUILD_ == 4' : '#if 1 /* _SAMBA_BUILD_ == 4 */' }
samba_version.load_version(bld.env)
samba_version.load_version(bld.env, is_install=bld.is_install)
bld.SAMBA_MKVERSION('version.h')
# bld.ENABLE_MAGIC_ORDERING()