def createRepacks(sourceRepo, revision, l10nRepoDir, l10nBaseRepo, mozconfigPath, objdir, makeDirs, locales, ftpProduct, appName, version, appVersion, buildNumber, stageServer, stageUsername, stageSshKey, compareLocalesRepo, merge, platform, stage_platform, brand, mobileDirName): sourceRepoName = path.split(sourceRepo)[-1] nightlyDir = "candidates" localeSrcDir = path.join(sourceRepoName, objdir, mobileDirName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, mobileDirName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "MOZ_PKG_VERSION": version, "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", # Android signing "JARSIGNER": os.path.join(os.getcwd(), "scripts", "release", "signing", "mozpass.py") } build.misc.cleanupObjdir(sourceRepoName, objdir, mobileDirName) retry(mercurial, args=(sourceRepo, sourceRepoName)) update(sourceRepoName, revision=revision) l10nRepackPrep(sourceRepoName, objdir, mozconfigPath, l10nRepoDir, makeDirs, localeSrcDir, env) fullCandidatesDir = makeCandidatesDir(appName, version, buildNumber, protocol='http', server=stageServer, nightlyDir=nightlyDir) input_env = retry(downloadReleaseBuilds, args=(stageServer, ftpProduct, brand, version, buildNumber, stage_platform, fullCandidatesDir)) env.update(input_env) print "env pre-locale: %s" % str(env) failed = [] for l in locales: try: # adding locale into builddir env["POST_UPLOAD_CMD"] = postUploadCmdPrefix( to_mobile_candidates=True, product=appName, version=version, builddir='%s/%s' % (stage_platform, l), buildNumber=buildNumber, nightly_dir=nightlyDir,) print "env post-locale: %s" % str(env) repackLocale(str(l), l10nRepoDir, l10nBaseRepo, revision, localeSrcDir, l10nIni, compareLocalesRepo, env, merge) except Exception, e: failed.append((l, format_exc()))
def createRepacks(sourceRepo, l10nRepoDir, l10nBaseRepo, mozconfigPath, objdir, makeDirs, locales, ftpProduct, stageServer, stageUsername, stageSshKey, compareLocalesRepo, merge, platform, stage_platform, mobileDirName, en_us_binary_url): sourceRepoName = path.split(sourceRepo)[-1] localeSrcDir = path.join(sourceRepoName, objdir, mobileDirName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, mobileDirName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", "EN_US_BINARY_URL": en_us_binary_url, # Android signing "JARSIGNER": os.path.join(os.getcwd(), "scripts", "release", "signing", "mozpass.py") } build.misc.cleanupObjdir(sourceRepoName, objdir, mobileDirName) mercurial(sourceRepo, sourceRepoName) l10nRepackPrep(sourceRepoName, objdir, mozconfigPath, l10nRepoDir, makeDirs, localeSrcDir, env) buildInfo = downloadNightlyBuild(localeSrcDir, env) run_cmd(["hg", "update", "-r", buildInfo["gecko_revision"]], cwd=sourceRepoName) env["POST_UPLOAD_CMD"] = postUploadCmdPrefix( to_latest=True, branch="%s-%s-l10n" % (sourceRepoName, stage_platform), product=ftpProduct) err = False for l in locales: try: repackLocale(l, l10nRepoDir, l10nBaseRepo, "default", localeSrcDir, l10nIni, compareLocalesRepo, env, merge) except Exception, e: err = True log.error("Error creating locale '%s': %s", l, e) pass
def createRepacks(sourceRepo,l10nRepoDir, l10nBaseRepo, mozconfigPath, objdir, makeDirs, locales, ftpProduct, stageServer, stageUsername, stageSshKey, compareLocalesRepo, merge, platform, stage_platform, mobileDirName, en_us_binary_url): sourceRepoName = path.split(sourceRepo)[-1] localeSrcDir = path.join(sourceRepoName, objdir, mobileDirName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, mobileDirName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", "EN_US_BINARY_URL": en_us_binary_url, # Android signing "JARSIGNER": os.path.join(os.getcwd(), "scripts", "release", "signing", "mozpass.py") } build.misc.cleanupObjdir(sourceRepoName, objdir, mobileDirName) mercurial(sourceRepo, sourceRepoName) l10nRepackPrep(sourceRepoName, objdir, mozconfigPath, l10nRepoDir, makeDirs, localeSrcDir, env) buildInfo = downloadNightlyBuild(localeSrcDir, env) run_cmd(["hg", "update", "-r", buildInfo["gecko_revision"]], cwd=sourceRepoName) env["POST_UPLOAD_CMD"] = postUploadCmdPrefix( to_latest=True, branch="%s-%s-l10n" % (sourceRepoName, stage_platform), product=ftpProduct ) err = False for l in locales: try: repackLocale(l, l10nRepoDir, l10nBaseRepo, "default", localeSrcDir, l10nIni, compareLocalesRepo, env, merge) except Exception, e: err = True log.error("Error creating locale '%s': %s", l, e) pass
def createRepacks(sourceRepo, revision, l10nRepoDir, l10nBaseRepo, mozconfigPath, objdir, makeDirs, appName, locales, product, version, buildNumber, stageServer, stageUsername, stageSshKey, compareLocalesRepo, merge, platform, brand, generatePartials=False, oldVersion=None, oldBuildNumber=None, appVersion=None): sourceRepoName = path.split(sourceRepo)[-1] localeSrcDir = path.join(sourceRepoName, objdir, appName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, appName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "MOZ_MAKE_COMPLETE_MAR": "1", "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", "MOZ_PKG_PRETTYNAMES": "1", } if appVersion is None or version != appVersion: env["MOZ_PKG_VERSION"] = version signed = False if os.environ.get('MOZ_SIGN_CMD'): env['MOZ_SIGN_CMD'] = os.environ['MOZ_SIGN_CMD'] signed = True env['POST_UPLOAD_CMD'] = postUploadCmdPrefix( to_candidates=True, product=product, version=version, buildNumber=buildNumber, signed=signed, ) build.misc.cleanupObjdir(sourceRepoName, objdir, appName) retry(mercurial, args=(sourceRepo, sourceRepoName)) update(sourceRepoName, revision=revision) l10nRepackPrep(sourceRepoName, objdir, mozconfigPath, l10nRepoDir, makeDirs, localeSrcDir, env) input_env = retry(downloadReleaseBuilds, args=(stageServer, product, brand, version, buildNumber, platform), kwargs={'signed': signed}) env.update(input_env) failed = [] for l in locales: try: prevMar = None if generatePartials: prevMar = retry( downloadUpdateIgnore404, args=(stageServer, product, oldVersion, oldBuildNumber, platform, l) ) repackLocale(locale=l, l10nRepoDir=l10nRepoDir, l10nBaseRepo=l10nBaseRepo, revision=revision, localeSrcDir=localeSrcDir, l10nIni=l10nIni, compareLocalesRepo=compareLocalesRepo, env=env, merge=merge, prevMar=prevMar, productName=product, platform=platform, version=version, oldVersion=oldVersion) except Exception, e: failed.append((l, format_exc()))
def createRepacks(sourceRepo, revision, l10nRepoDir, l10nBaseRepo, mozconfigPath, srcMozconfigPath, objdir, makeDirs, appName, locales, product, version, buildNumber, stageServer, stageUsername, stageSshKey, ftpServer, compareLocalesRepo, merge, platform, brand, appVersion, generatePartials=False, partialUpdates=None, usePymake=False, tooltoolManifest=None, tooltool_script=None, tooltool_urls=None, balrog_submitter=None, balrog_hash="sha512", mozillaDir=None, mozillaSrcDir=None, bucket_prefix=None): buildid = retry(getBuildID, args=(platform, product, version, buildNumber, 'candidates', ftpServer)) log.info('Got buildid: %s' % buildid) sourceRepoName = path.split(sourceRepo)[-1] absObjdir = path.abspath(path.join(sourceRepoName, objdir)) localeSrcDir = path.join(absObjdir, appName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, appName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "MOZ_MAKE_COMPLETE_MAR": "1", "DOWNLOAD_HOST": ftpServer, "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", "MOZ_PKG_PRETTYNAMES": "1", "MOZILLA_REV": os.getenv('MOZILLA_REV', ''), "COMM_REV": os.getenv('COMM_REV', ''), "LD_LIBRARY_PATH": os.getenv("LD_LIBRARY_PATH", ""), "MBSDIFF_HOOK": os.getenv("MBSDIFF_HOOK", ""), } if appVersion is None or version != appVersion: env["MOZ_PKG_VERSION"] = version signed = False if os.environ.get('MOZ_SIGN_CMD'): env['MOZ_SIGN_CMD'] = os.environ['MOZ_SIGN_CMD'] signed = True env['POST_UPLOAD_CMD'] = postUploadCmdPrefix( to_candidates=True, product=product, version=version, buildNumber=buildNumber, signed=signed, bucket_prefix=bucket_prefix, ) if usePymake: env['USE_PYMAKE'] = "1" env['MOZILLA_OFFICIAL'] = "1" env["MOZ_SIGN_CMD"] = "python " + \ path.join(os.getcwd(), "scripts", "release", "signing", "signtool.py").replace('\\', '\\\\\\\\') + \ " --cachedir " + \ path.join(os.getcwd(), "signing_cache").replace('\\', '\\\\\\\\') + \ " -t " + \ path.join(os.getcwd(), "token").replace('\\', '\\\\\\\\') + \ " -n " + \ path.join(os.getcwd(), "nonce").replace('\\', '\\\\\\\\') + \ " -c " + \ path.join(os.getcwd(), "scripts", "release", "signing", "host.cert").replace('\\', '\\\\\\\\') signingServers = os.environ["MOZ_SIGN_CMD"].split("-H", 1)[1].split("-H") for s in signingServers: env["MOZ_SIGN_CMD"] += " -H %s" % s.strip() build.misc.cleanupObjdir(sourceRepoName, objdir, appName) mercurial(sourceRepo, sourceRepoName) update(sourceRepoName, revision=revision) l10nRepackPrep(sourceRepoName, objdir, mozconfigPath, srcMozconfigPath, l10nRepoDir, makeDirs, env, tooltoolManifest, tooltool_script, tooltool_urls) input_env = retry(downloadReleaseBuilds, args=(ftpServer, product, brand, version, buildNumber, platform), kwargs={ 'signed': signed, 'usePymake': usePymake }) env.update(input_env) if product == "thunderbird" and platform == "macosx64": # TODO: FIXME: HACK: KILLME: # Terrible, terrible, terrible hack to work around bug 1234935 and make # the build system happier absMozillaSrcDir = path.abspath( path.join(sourceRepoName, mozillaSrcDir)) run_cmd(['ln', '-sf', '../obj-l10n', absMozillaSrcDir]) failed = [] for l in locales: try: if generatePartials: for oldVersion in partialUpdates: oldBuildNumber = partialUpdates[oldVersion]['buildNumber'] partialUpdates[oldVersion]['mar'] = retry( downloadUpdateIgnore404, args=(ftpServer, product, oldVersion, oldBuildNumber, platform, l)) checksums_file = repackLocale( locale=l, l10nRepoDir=l10nRepoDir, l10nBaseRepo=l10nBaseRepo, revision=revision, localeSrcDir=localeSrcDir, l10nIni=l10nIni, compareLocalesRepo=compareLocalesRepo, env=env, absObjdir=absObjdir, merge=merge, productName=product, platform=platform, version=version, partialUpdates=partialUpdates, buildNumber=buildNumber, stageServer=ftpServer, mozillaDir=mozillaDir, mozillaSrcDir=mozillaSrcDir) if balrog_submitter: # TODO: partials, after bug 797033 is fixed checksums = parseChecksumsFile(open(checksums_file).read()) completeInfo = [] partialInfo = [] for f, info in checksums.iteritems(): if f.endswith('.complete.mar'): completeInfo.append({ "size": info["size"], "hash": info["hashes"][balrog_hash], }) if f.endswith('.partial.mar'): pathInfo = fileInfo(f, product.lower()) previousVersion = pathInfo["previousVersion"] partialInfo.append({ "previousVersion": previousVersion, "previousBuildNumber": partialUpdates[previousVersion]['buildNumber'], "size": info["size"], "hash": info["hashes"][balrog_hash], }) if not completeInfo: raise Exception("Couldn't find complete mar info") retry(balrog_submitter.run, kwargs={ 'platform': platform, 'productName': product.capitalize(), 'appVersion': appVersion, 'version': version, 'build_number': buildNumber, 'locale': l, 'hashFunction': balrog_hash, 'extVersion': appVersion, 'buildID': buildid, 'completeInfo': completeInfo, 'partialInfo': partialInfo, }) except Exception, e: print_exc() failed.append((l, format_exc()))
def createRepacks(sourceRepo, revision, l10nRepoDir, l10nBaseRepo, mozconfigPath, srcMozconfigPath, objdir, makeDirs, appName, locales, product, version, buildNumber, stageServer, stageUsername, stageSshKey, ftpServer, compareLocalesRepo, merge, platform, brand, appVersion, generatePartials=False, partialUpdates=None, usePymake=False, tooltoolManifest=None, tooltool_script=None, tooltool_urls=None, balrog_submitter=None, balrog_hash="sha512", mozillaDir=None, mozillaSrcDir=None, bucket_prefix=None): buildid = retry(getBuildID, args=(platform, product, version, buildNumber, 'candidates', ftpServer)) log.info('Got buildid: %s' % buildid) sourceRepoName = path.split(sourceRepo)[-1] absObjdir = path.abspath(path.join(sourceRepoName, objdir)) localeSrcDir = path.join(absObjdir, appName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, appName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "MOZ_MAKE_COMPLETE_MAR": "1", "DOWNLOAD_HOST": ftpServer, "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", "MOZ_PKG_PRETTYNAMES": "1", "MOZILLA_REV": os.getenv('MOZILLA_REV', ''), "COMM_REV": os.getenv('COMM_REV', ''), "LD_LIBRARY_PATH": os.getenv("LD_LIBRARY_PATH", ""), "MBSDIFF_HOOK": os.getenv("MBSDIFF_HOOK", ""), } if appVersion is None or version != appVersion: env["MOZ_PKG_VERSION"] = version signed = False if os.environ.get('MOZ_SIGN_CMD'): env['MOZ_SIGN_CMD'] = os.environ['MOZ_SIGN_CMD'] signed = True env['POST_UPLOAD_CMD'] = postUploadCmdPrefix( to_candidates=True, product=product, version=version, buildNumber=buildNumber, signed=signed, bucket_prefix=bucket_prefix, ) if usePymake: env['USE_PYMAKE'] = "1" env['MOZILLA_OFFICIAL'] = "1" env["MOZ_SIGN_CMD"] = "python " + \ path.join(os.getcwd(), "scripts", "release", "signing", "signtool.py").replace('\\', '\\\\\\\\') + \ " --cachedir " + \ path.join(os.getcwd(), "signing_cache").replace('\\', '\\\\\\\\') + \ " -t " + \ path.join(os.getcwd(), "token").replace('\\', '\\\\\\\\') + \ " -n " + \ path.join(os.getcwd(), "nonce").replace('\\', '\\\\\\\\') + \ " -c " + \ path.join(os.getcwd(), "scripts", "release", "signing", "host.cert").replace('\\', '\\\\\\\\') signingServers = os.environ["MOZ_SIGN_CMD"].split("-H", 1)[1].split("-H") for s in signingServers: env["MOZ_SIGN_CMD"] += " -H %s" % s.strip() build.misc.cleanupObjdir(sourceRepoName, objdir, appName) mercurial(sourceRepo, sourceRepoName) update(sourceRepoName, revision=revision) l10nRepackPrep( sourceRepoName, objdir, mozconfigPath, srcMozconfigPath, l10nRepoDir, makeDirs, env, tooltoolManifest, tooltool_script, tooltool_urls) input_env = retry(downloadReleaseBuilds, args=(ftpServer, product, brand, version, buildNumber, platform), kwargs={'signed': signed, 'usePymake': usePymake}) env.update(input_env) failed = [] for l in locales: try: if generatePartials: for oldVersion in partialUpdates: oldBuildNumber = partialUpdates[oldVersion]['buildNumber'] partialUpdates[oldVersion]['mar'] = retry( downloadUpdateIgnore404, args=(ftpServer, product, oldVersion, oldBuildNumber, platform, l) ) checksums_file = repackLocale(locale=l, l10nRepoDir=l10nRepoDir, l10nBaseRepo=l10nBaseRepo, revision=revision, localeSrcDir=localeSrcDir, l10nIni=l10nIni, compareLocalesRepo=compareLocalesRepo, env=env, absObjdir=absObjdir, merge=merge, productName=product, platform=platform, version=version, partialUpdates=partialUpdates, buildNumber=buildNumber, stageServer=ftpServer, mozillaDir=mozillaDir, mozillaSrcDir=mozillaSrcDir) if balrog_submitter: # TODO: partials, after bug 797033 is fixed checksums = parseChecksumsFile(open(checksums_file).read()) completeInfo = [] partialInfo = [] for f, info in checksums.iteritems(): if f.endswith('.complete.mar'): completeInfo.append({ "size": info["size"], "hash": info["hashes"][balrog_hash], }) if f.endswith('.partial.mar'): pathInfo = fileInfo(f, product.lower()) previousVersion = pathInfo["previousVersion"] partialInfo.append({ "previousVersion": previousVersion, "previousBuildNumber": partialUpdates[previousVersion]['buildNumber'], "size": info["size"], "hash": info["hashes"][balrog_hash], }) if not completeInfo: raise Exception("Couldn't find complete mar info") retry(balrog_submitter.run, kwargs={ 'platform': platform, 'productName': product.capitalize(), 'appVersion': appVersion, 'version': version, 'build_number': buildNumber, 'locale': l, 'hashFunction': balrog_hash, 'extVersion': appVersion, 'buildID': buildid, 'completeInfo': completeInfo, 'partialInfo': partialInfo, } ) except Exception, e: print_exc() failed.append((l, format_exc()))
def createRepacks(sourceRepo, revision, l10nRepoDir, l10nBaseRepo, mozconfigPath, objdir, makeDirs, locales, ftpProduct, appName, version, appVersion, buildNumber, stageServer, stageUsername, stageSshKey, compareLocalesRepo, merge, platform, stage_platform, brand, mobileDirName): sourceRepoName = path.split(sourceRepo)[-1] nightlyDir = "candidates" localeSrcDir = path.join(sourceRepoName, objdir, mobileDirName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, mobileDirName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "MOZ_PKG_VERSION": version, "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", # Android signing "JARSIGNER": os.path.join(os.getcwd(), "scripts", "release", "signing", "mozpass.py") } build.misc.cleanupObjdir(sourceRepoName, objdir, mobileDirName) retry(mercurial, args=(sourceRepo, sourceRepoName)) update(sourceRepoName, revision=revision) l10nRepackPrep(sourceRepoName, objdir, mozconfigPath, l10nRepoDir, makeDirs, localeSrcDir, env) fullCandidatesDir = makeCandidatesDir(appName, version, buildNumber, protocol='http', server=stageServer, nightlyDir=nightlyDir) input_env = retry(downloadReleaseBuilds, args=(stageServer, ftpProduct, brand, version, buildNumber, stage_platform, fullCandidatesDir)) env.update(input_env) print "env pre-locale: %s" % str(env) failed = [] for l in locales: try: # adding locale into builddir env["POST_UPLOAD_CMD"] = postUploadCmdPrefix( to_mobile_candidates=True, product=appName, version=version, builddir='%s/%s' % (stage_platform, l), buildNumber=buildNumber, nightly_dir=nightlyDir, ) print "env post-locale: %s" % str(env) repackLocale(str(l), l10nRepoDir, l10nBaseRepo, revision, localeSrcDir, l10nIni, compareLocalesRepo, env, merge) except Exception, e: failed.append((l, format_exc()))
def createRepacks(sourceRepo, revision, l10nRepoDir, l10nBaseRepo, mozconfigPath, objdir, makeDirs, appName, locales, product, version, buildNumber, stageServer, stageUsername, stageSshKey, compareLocalesRepo, merge, platform, brand, generatePartials=False, oldVersion=None, oldBuildNumber=None): sourceRepoName = path.split(sourceRepo)[-1] localeSrcDir = path.join(sourceRepoName, objdir, appName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, appName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "MOZ_MAKE_COMPLETE_MAR": "1", "MOZ_PKG_VERSION": version, "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", "MOZ_PKG_PRETTYNAMES": "1", } signed = False if os.environ.get('MOZ_SIGN_CMD'): env['MOZ_SIGN_CMD'] = os.environ['MOZ_SIGN_CMD'] signed = True env['POST_UPLOAD_CMD'] = postUploadCmdPrefix( to_candidates=True, product=product, version=version, buildNumber=buildNumber, signed=signed, ) build.misc.cleanupObjdir(sourceRepoName, objdir, appName) retry(mercurial, args=(sourceRepo, sourceRepoName)) update(sourceRepoName, revision=revision) l10nRepackPrep(sourceRepoName, objdir, mozconfigPath, l10nRepoDir, makeDirs, localeSrcDir, env) input_env = retry(downloadReleaseBuilds, args=(stageServer, product, brand, version, buildNumber, platform), kwargs={'signed': signed}) env.update(input_env) failed = [] for l in locales: try: prevMar = None if generatePartials: prevMar = retry( downloadUpdateIgnore404, args=(stageServer, product, oldVersion, oldBuildNumber, platform, l) ) repackLocale(locale=l, l10nRepoDir=l10nRepoDir, l10nBaseRepo=l10nBaseRepo, revision=revision, localeSrcDir=localeSrcDir, l10nIni=l10nIni, compareLocalesRepo=compareLocalesRepo, env=env, merge=merge, prevMar=prevMar, productName=product, platform=platform, version=version, oldVersion=oldVersion) except Exception, e: failed.append((l, format_exc()))
def createRepacks(sourceRepo, revision, l10nRepoDir, l10nBaseRepo, mozconfigPath, srcMozconfigPath, objdir, makeDirs, appName, locales, product, version, buildNumber, stageServer, stageUsername, stageSshKey, compareLocalesRepo, merge, platform, brand, generatePartials=False, partialUpdates=None, appVersion=None, usePymake=False, tooltoolManifest=None, tooltool_script=None, tooltool_urls=None): sourceRepoName = path.split(sourceRepo)[-1] localeSrcDir = path.join(sourceRepoName, objdir, appName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, appName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "MOZ_MAKE_COMPLETE_MAR": "1", "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", "MOZ_PKG_PRETTYNAMES": "1", "MOZILLA_REV": os.getenv('MOZILLA_REV', ''), "COMM_REV": os.getenv('COMM_REV', ''), "LD_LIBRARY_PATH": os.getenv("LD_LIBRARY_PATH", "") } if appVersion is None or version != appVersion: env["MOZ_PKG_VERSION"] = version signed = False if os.environ.get('MOZ_SIGN_CMD'): env['MOZ_SIGN_CMD'] = os.environ['MOZ_SIGN_CMD'] signed = True env['POST_UPLOAD_CMD'] = postUploadCmdPrefix( to_candidates=True, product=product, version=version, buildNumber=buildNumber, signed=signed, ) if usePymake: env['USE_PYMAKE'] = "1" env['MOZILLA_OFFICIAL'] = "1" env["MOZ_SIGN_CMD"] = "python " + \ path.join(os.getcwd(), "scripts", "release", "signing", "signtool.py").replace('\\', '\\\\\\\\') + \ " --cachedir " + \ path.join(os.getcwd(), "signing_cache").replace('\\', '\\\\\\\\') + \ " -t " + \ path.join(os.getcwd(), "token").replace('\\', '\\\\\\\\') + \ " -n " + \ path.join(os.getcwd(), "nonce").replace('\\', '\\\\\\\\') + \ " -c " + \ path.join(os.getcwd(), "scripts", "release", "signing", "host.cert").replace('\\', '\\\\\\\\') + \ " -H " + \ os.environ['MOZ_SIGN_CMD'].split(' ')[-1] build.misc.cleanupObjdir(sourceRepoName, objdir, appName) retry(mercurial, args=(sourceRepo, sourceRepoName)) update(sourceRepoName, revision=revision) l10nRepackPrep( sourceRepoName, objdir, mozconfigPath, srcMozconfigPath, l10nRepoDir, makeDirs, localeSrcDir, env, tooltoolManifest, tooltool_script, tooltool_urls) input_env = retry(downloadReleaseBuilds, args=(stageServer, product, brand, version, buildNumber, platform), kwargs={'signed': signed, 'usePymake': usePymake}) env.update(input_env) failed = [] for l in locales: try: if generatePartials: for oldVersion in partialUpdates: oldBuildNumber = partialUpdates[oldVersion]['buildNumber'] partialUpdates[oldVersion]['mar'] = retry( downloadUpdateIgnore404, args=(stageServer, product, oldVersion, oldBuildNumber, platform, l) ) repackLocale(locale=l, l10nRepoDir=l10nRepoDir, l10nBaseRepo=l10nBaseRepo, revision=revision, localeSrcDir=localeSrcDir, l10nIni=l10nIni, compareLocalesRepo=compareLocalesRepo, env=env, merge=merge, productName=product, platform=platform, version=version, partialUpdates=partialUpdates, buildNumber=buildNumber, stageServer=stageServer) except Exception, e: failed.append((l, format_exc()))
def createRepacks(sourceRepo, revision, l10nRepoDir, l10nBaseRepo, mozconfigPath, srcMozconfigPath, objdir, makeDirs, appName, locales, product, version, buildNumber, stageServer, stageUsername, stageSshKey, compareLocalesRepo, merge, platform, brand, appVersion, generatePartials=False, partialUpdates=None, usePymake=False, tooltoolManifest=None, tooltool_script=None, tooltool_urls=None, balrog_submitter=None, balrog_hash="sha512", buildid=None): sourceRepoName = path.split(sourceRepo)[-1] absObjdir = path.abspath(path.join(sourceRepoName, objdir)) localeSrcDir = path.join(absObjdir, appName, "locales") # Even on Windows we need to use "/" as a separator for this because # compare-locales doesn"t work any other way l10nIni = "/".join([sourceRepoName, appName, "locales", "l10n.ini"]) env = { "MOZ_OBJDIR": objdir, "MOZ_MAKE_COMPLETE_MAR": "1", "UPLOAD_HOST": stageServer, "UPLOAD_USER": stageUsername, "UPLOAD_SSH_KEY": stageSshKey, "UPLOAD_TO_TEMP": "1", "MOZ_PKG_PRETTYNAMES": "1", "MOZILLA_REV": os.getenv('MOZILLA_REV', ''), "COMM_REV": os.getenv('COMM_REV', ''), "LD_LIBRARY_PATH": os.getenv("LD_LIBRARY_PATH", "") } if appVersion is None or version != appVersion: env["MOZ_PKG_VERSION"] = version signed = False if os.environ.get('MOZ_SIGN_CMD'): env['MOZ_SIGN_CMD'] = os.environ['MOZ_SIGN_CMD'] signed = True env['POST_UPLOAD_CMD'] = postUploadCmdPrefix( to_candidates=True, product=product, version=version, buildNumber=buildNumber, signed=signed, ) if usePymake: env['USE_PYMAKE'] = "1" env['MOZILLA_OFFICIAL'] = "1" env["MOZ_SIGN_CMD"] = "python " + \ path.join(os.getcwd(), "scripts", "release", "signing", "signtool.py").replace('\\', '\\\\\\\\') + \ " --cachedir " + \ path.join(os.getcwd(), "signing_cache").replace('\\', '\\\\\\\\') + \ " -t " + \ path.join(os.getcwd(), "token").replace('\\', '\\\\\\\\') + \ " -n " + \ path.join(os.getcwd(), "nonce").replace('\\', '\\\\\\\\') + \ " -c " + \ path.join(os.getcwd(), "scripts", "release", "signing", "host.cert").replace('\\', '\\\\\\\\') + \ " -H " + \ os.environ['MOZ_SIGN_CMD'].split(' ')[-1] build.misc.cleanupObjdir(sourceRepoName, objdir, appName) retry(mercurial, args=(sourceRepo, sourceRepoName)) update(sourceRepoName, revision=revision) l10nRepackPrep(sourceRepoName, objdir, mozconfigPath, srcMozconfigPath, l10nRepoDir, makeDirs, env, tooltoolManifest, tooltool_script, tooltool_urls) input_env = retry(downloadReleaseBuilds, args=(stageServer, product, brand, version, buildNumber, platform), kwargs={ 'signed': signed, 'usePymake': usePymake }) env.update(input_env) failed = [] for l in locales: try: if generatePartials: for oldVersion in partialUpdates: oldBuildNumber = partialUpdates[oldVersion]['buildNumber'] partialUpdates[oldVersion]['mar'] = retry( downloadUpdateIgnore404, args=(stageServer, product, oldVersion, oldBuildNumber, platform, l)) checksums_file = repackLocale( locale=l, l10nRepoDir=l10nRepoDir, l10nBaseRepo=l10nBaseRepo, revision=revision, localeSrcDir=localeSrcDir, l10nIni=l10nIni, compareLocalesRepo=compareLocalesRepo, env=env, absObjdir=absObjdir, merge=merge, productName=product, platform=platform, version=version, partialUpdates=partialUpdates, buildNumber=buildNumber, stageServer=stageServer) if balrog_submitter: # TODO: partials, after bug 797033 is fixed checksums = parseChecksumsFile(open(checksums_file).read()) marInfo = defaultdict(dict) for f, info in checksums.iteritems(): if f.endswith('.complete.mar'): marInfo['complete']['hash'] = info['hashes'][ balrog_hash] marInfo['complete']['size'] = info['size'] if not marInfo['complete']: raise Exception("Couldn't find complete mar info") retry(balrog_submitter.run, kwargs={ 'platform': platform, 'productName': product.capitalize(), 'appVersion': appVersion, 'version': version, 'build_number': buildNumber, 'locale': l, 'hashFunction': balrog_hash, 'extVersion': appVersion, 'buildID': buildid, 'completeMarSize': marInfo['complete']['size'], 'completeMarHash': marInfo['complete']['hash'], }) except Exception, e: print_exc() failed.append((l, format_exc()))