def make_src_silvercity(maker, log): METHOD = "komodo" # one of "komodo" or "tarball" if METHOD == "komodo": ko_silvercity_dir = join(cfg.komodo_src, "src", "silvercity") if not isdir(ko_silvercity_dir): raise MakeError("cannot find Komodo silvercity source dir: '%s'" % ko_silvercity_dir) assert ' ' not in ko_silvercity_dir dest = join("src", "SilverCity") _cp(ko_silvercity_dir, dest, logstream=log.info) if sys.platform == "win32": for dirpath, dirnames, filenames in os.walk(dest): for filename in filenames: _run("attrib -R %s" % join(dirpath, filename), logstream=log.info) else: _run("chmod -R ug+w %s" % dest, logstream=log.info) elif METHOD == "tarball": pattern = "SilverCity-*.tar.gz" candidates = [] for src_repo in cfg.src_repositories: candidates += glob(join(src_repo, pattern)) if not candidates: raise MakeError("cannot find SilverCity source (%s) in source " "repositories: '%s'" % (pattern, "', '".join(cfg.src_repositories))) candidates.sort() pkg_path = abspath(candidates[-1]) pkg_name = basename(pkg_path)[:-len(".tar.gz")] _run_in_dir("tar xzf %s" % pkg_path, "src", logstream=log.info) _mv(xpath("src", pkg_name), xpath("src/SilverCity"), logstream=log.info) for dirname, dirs, files in os.walk("src/SilverCity"): for file in files: eol.convert_path_eol(join(dirname, file), eol.NATIVE, log=log) # Patch it. #XXX Use my patchtool thing. for patchfile in glob("src/patches/silvercity-*.patch"): _run_in_dir("patch -p0 < %s" % abspath(patchfile), "src", logstream=log.info)