from samba_utils import *
dist_dirs = None
+dist_files = None
dist_blacklist = ""
def add_symlink(tar, fname, abspath, basedir):
fname = dist_base + '/' + f
add_tarfile(tar, fname, abspath, dir)
+ if dist_files:
+ for file in dist_files.split():
+ if file.find(':') != -1:
+ destfile = file.split(':')[1]
+ file = file.split(':')[0]
+ else:
+ destfile = file
+
+ absfile = os.path.join(srcdir, file)
+
+ if destfile != file:
+ file = destfile
+
+ fname = dist_base + '/' + file
+ add_tarfile(tar, fname, absfile, file)
+
tar.close()
if Options.options.SIGN_RELEASE:
if not dist_dirs:
dist_dirs = dirs
+@conf
+def DIST_FILES(files):
+ '''set additional files for packaging, relative to top srcdir'''
+ global dist_files
+ if not dist_files:
+ dist_files = files
+
@conf
def DIST_BLACKLIST(blacklist):
'''set the files to exclude from packaging, relative to top srcdir'''
return (ret, fields)
+def distversion_version_summary(path):
+ #get version from .distversion file
+ f = open(path + '/.distversion', 'r')
+ suffix = None
+ fields = {}
+
+ for line in f:
+ line = line.strip()
+ if line == '':
+ continue
+ if line.startswith("#"):
+ continue
+ try:
+ split_line = line.split("=")
+ if split_line[1] != "":
+ key = split_line[0]
+ value = split_line[1]
+ if key == "SUFFIX":
+ suffix = value
+ continue
+ fields[key] = value
+ except:
+ print("Failed to parse line %s from .distversion file." % (line))
+ raise
+ f.close()
+
+ if "COMMIT_TIME" in fields:
+ fields["COMMIT_TIME"] = int(fields["COMMIT_TIME"])
+
+ if suffix is None:
+ return ("UNKNOWN", fields)
+
+ return (suffix, fields)
+
+
class SambaVersion(object):
def __init__(self, version_dict, path, env=None, is_install=True):
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)
+ elif os.path.exists(os.path.join(path, ".distversion")):
+ suffix, self.vcs_fields = distversion_version_summary(path)
else:
suffix = "UNKNOWN"
self.vcs_fields = {}
+ self.vcs_fields["SUFFIX"] = suffix
SAMBA_VERSION_STRING += "-" + suffix
else:
self.vcs_fields = {}
def dist():
'''makes a tarball for distribution'''
- samba_version.load_version(env=None)
+ sambaversion = samba_version.load_version(env=None)
+
+ if sambaversion.IS_SNAPSHOT:
+ # write .distversion file and add to tar
+ f = '.distversion'
+ distversionf = open(f, 'w')
+ for field in sambaversion.vcs_fields:
+ distveroption = field + '=' + str(sambaversion.vcs_fields[field])
+ distversionf.write(distveroption + '\n')
+ distversionf.close()
+ samba_dist.DIST_FILES('.distversion')
+
samba_dist.dist()
def distcheck():