Revision: 304 http://opencsw.svn.sourceforge.net/opencsw/?rev=304&view=rev Author: wahwah Date: 2011-02-21 01:13:11 +0000 (Mon, 21 Feb 2011)
Log Message: ----------- build_all_architectures.py: Removing an obsolete script. Removed Paths: ------------- utilities/build_all_architectures.py Deleted: utilities/build_all_architectures.py =================================================================== --- utilities/build_all_architectures.py 2011-02-21 00:50:19 UTC (rev 303) +++ utilities/build_all_architectures.py 2011-02-21 01:13:11 UTC (rev 304) @@ -1,177 +0,0 @@ -#!/opt/csw/bin/python2.6 -# coding=utf-8 -# Copyright (c) 2009 OpenCSW -# Distributed under the terms of GNU GPL v2. -# vim:set sw=2 ts=2 sts=2 expandtab: -# $Id$ -# -# This script allows to build a set of packages with one keypress. For -# instance, build packages for both sparc and x86 in one go. Or build a -# modulated package with both 32- and 64-bit binaries. It's only workaround -# until Dago releases GAR with parallel builds. - -import copy -import logging -import subprocess -import optparse -import os -import os.path - -logging.basicConfig(level=logging.DEBUG) -DEFAULT_GARPATH_TMPL = "/home/%s/src/opencsw/pkg" -DEFAULT_GARPATH = DEFAULT_GARPATH_TMPL % os.environ["LOGNAME"] -DEFAULT_BRANCH = "trunk" - -class Error(Exception): - pass - -class BuildError(Error): - pass - -class SolarisBuilder(object): - - def __init__(self, software, versions_to_build, build_64_bit=False, - garpath=DEFAULT_GARPATH, - branch=DEFAULT_BRANCH, - checkpkg=True, - debug_flavor=False, - checkout=False): - self.software = software - self.versions_to_build = versions_to_build - self.build_64_bit = build_64_bit - self.garpath = garpath - self.branch = branch - self.checkpkg = checkpkg - self.debug_flavor = debug_flavor - self.checkout = checkout - - def GetBuildPath(self): - return os.path.join(self.garpath, - self.software, - self.branch) - - def BuildOne(self, sol_ver, arch, job_id, - targets=["clean", "package"], - fail_on_errors=True): - build_env = copy.copy(os.environ) - build_env["PARALLELMFLAGS"] = "-l -j 2" - host = "build%s%s" % (sol_ver, arch) - buildpath = self.GetBuildPath() - args = ["ssh", host, "gmake", - "-C", buildpath] - if not self.checkpkg: - args.append("ENABLE_CHECK=0") - build_env["ENABLE_CHECK"] = "0" - - if self.debug_flavor: - args.append("GARFLAVOR=DBG") - build_env["GARFLAVOR"] = "DBG" - - args.extend(targets) - build_proc = subprocess.Popen(args, - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - env=build_env) - logging.info("Running %s", repr(args)) - (out_stdout, out_stderr) = build_proc.communicate() - ret = build_proc.wait() - if ret: - base_file_name = "%s-%s" % (job_id, host) - fd = open("%s.stdout" % base_file_name, "w") - fd.write(out_stdout) - fd.close() - fd = open("%s.stderr" % base_file_name, "w") - fd.write(out_stderr) - fd.close() - if fail_on_errors: - raise BuildError("Build %s failed" % repr(args)) - else: - logging.info("Build %s has failed", repr(args)) - else: - logging.info("The run of %s was successful", repr(args)) - - def Build(self): - if self.checkout: - args = ["svn", "update", os.path.join(self.garpath, self.software)] - ret = subprocess.call(args) - if ret: - logging.error("Couldn't update %s", self.GetBuildPath()) - if self.build_64_bit and "10" not in self.versions_to_build: - self.BuildOne("8", "s", self.software, - targets=["clean", "package"]) - self.BuildOne("8", "x", self.software, - targets=["clean", "merge"], - fail_on_errors=False) - logging.info("It's okay if build8x merge has failed.") - self.BuildOne("10", "x", self.software, - targets=["merge"]) - self.BuildOne("8", "x", self.software, - targets=["package"], - fail_on_errors=False) - elif not self.build_64_bit: - for sol_ver in self.versions_to_build: - for arch in ("s", "x"): - self.BuildOne(sol_ver, arch, self.software) - - -def main(): - parser = optparse.OptionParser() - parser.add_option("-s", "--software", - dest="software", - help="Software name, e.g. 'cups'") - parser.add_option("", "--64bit", dest="build_64_bit", - action="store_true", default=False, - help="Build a 64-bit binary. Implies building" - " a Solaris 8 binary for sparc, and a modulated" - " binary for x86, compiled on Solaris 8 and 10.") - parser.add_option("", "--no-build-for-8", dest="build_sol_8", - action="store_false", default=True, - help="Skip building Solaris 8 binary") - parser.add_option("", "--build-for-9", dest="build_sol_9", - action="store_true", default=False, - help="Build a separate Solaris 9 binary") - parser.add_option("", "--build-for-10", dest="build_sol_10", - action="store_true", default=False, - help="Build a separate Solaris 10 binary") - parser.add_option("-b", "--branch", dest="branch", - default="trunk", - help="A branch to build, default: 'trunk'." - "To build from a subversion branch: " - "'branches/branch-name'") - parser.add_option("", "--no-check", dest="checkpkg", - action="store_false", default=True, - help="Equivalent to ENABLE_CHECK=0") - parser.add_option("", "--debug-flavor", dest="debug_flavor", - action="store_true", default=False, - help="Equivalent to passing GARFLAVOR=DBG") - parser.add_option("-g", "--gar-path", dest="garpath", - default=DEFAULT_GARPATH, - help="Absolute path to the GAR tree. " - "default: %s" % DEFAULT_GARPATH) - parser.add_option("-c", "--checkout", dest="checkout", - default=False, action="store_true", - help="Check out Subversion sources " - "before building") - (options, args) = parser.parse_args() - if not options.software: - raise Error("I need a software name. Run --help.") - versions_to_build = [] - if options.build_sol_8: - versions_to_build.append("8") - if options.build_sol_9: - versions_to_build.append("9") - if options.build_sol_10: - versions_to_build.append("10") - sb = SolarisBuilder(options.software, - versions_to_build=versions_to_build, - build_64_bit=options.build_64_bit, - branch=options.branch, - checkpkg=options.checkpkg, - debug_flavor=options.debug_flavor, - garpath=options.garpath, - checkout=options.checkout) - sb.Build() - -if __name__ == "__main__": - main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ devel mailing list devel@lists.opencsw.org https://lists.opencsw.org/mailman/listinfo/devel