Example #1
0
    def _verifyShaAndGetSourcePath(self, source, package, index=0):
        cmdUtils = CommandUtils()
        # Fetch/verify sources if sha1 not None.
        sha1 = SPECS.getData().getSHA1(package, source, index)
        if sha1 is not None:
            PullSources.get(package, source, sha1, constants.sourcePath,
                            constants.pullsourcesConfig, self.logger)

        sourcePath = cmdUtils.findFile(source, constants.sourcePath)
        if not sourcePath:
            sourcePath = cmdUtils.findFile(source, constants.specPath)
            if not sourcePath:
                if sha1 is None:
                    self.logger.error("No sha1 found or missing source for " + source)
                    raise Exception("No sha1 found or missing source for " + source)
                else:
                    self.logger.error("Missing source: " + source +
                                      ". Cannot find sources for package: " + package)
                    raise Exception("Missing source")
        else:
            if sha1 is None:
                self.logger.error("No sha1 found for "+source)
                raise Exception("No sha1 found")
        if len(sourcePath) > 1:
            self.logger.error("Multiple sources found for source:" + source + "\n" +
                              ",".join(sourcePath) +"\nUnable to determine one.")
            raise Exception("Multiple sources found")
        return sourcePath
Example #2
0
    def copySourcesTobuildroot(self, listSourceFiles, package, destDir):
        cmdUtils = CommandUtils()
        for source in listSourceFiles:
            # Fetch/verify sources if sha1 not None.
            sha1 = constants.specData.getSHA1(package, source)
            if sha1 is not None:
                PullSources.get(source, sha1, constants.sourcePath,
                                constants.pullsourcesConfig)

            sourcePath = cmdUtils.findFile(source, constants.sourcePath)
            if sourcePath is None or len(sourcePath) == 0:
                sourcePath = cmdUtils.findFile(source, constants.specPath)
                if sourcePath is None or len(sourcePath) == 0:
                    if sha1 is None:
                        self.logger.error(
                            "No sha1 found or missing source for " + source)
                        raise Exception("No sha1 found or missing source")
                    else:
                        self.logger.error(
                            "Missing source: " + source +
                            ". Cannot find sources for package: " + package)
                        raise Exception("Missing source")
            else:
                if sha1 is None:
                    self.logger.error("No sha1 found for " + source)
                    raise Exception("No sha1 found")
            if len(sourcePath) > 1:
                self.logger.error("Multiple sources found for source:" +
                                  source + "\n" + ",".join(sourcePath) +
                                  "\nUnable to determine one.")
                raise Exception("Multiple sources found")
            self.logger.info("Copying... Source path :" + source +
                             " Source filename: " + sourcePath[0])
            shutil.copy2(sourcePath[0], destDir)
Example #3
0
    def copySourcesTobuildroot(self,listSourceFiles,package,destDir):
        cmdUtils = CommandUtils()
        for source in listSourceFiles:
            # Fetch/verify sources if sha1 not None.
            sha1 = constants.specData.getSHA1(package, source)
            if sha1 is not None:
                PullSources.get(source, sha1, constants.sourcePath, constants.pullsourcesConfig)

            sourcePath = cmdUtils.findFile(source,constants.sourcePath)
            if sourcePath is None or len(sourcePath) == 0:
                sourcePath = cmdUtils.findFile(source,constants.specPath)
                if sourcePath is None or len(sourcePath) == 0:
                    if sha1 is None:
                        self.logger.error("No sha1 found or missing source for "+source)
                        raise Exception("No sha1 found or missing source")
                    else:
                        self.logger.error("Missing source: "+source+". Cannot find sources for package: "+package)
                        raise Exception("Missing source")
            else:
                if sha1 is None:
                    self.logger.error("No sha1 found for "+source)
                    raise Exception("No sha1 found")
            if len(sourcePath) > 1:
                self.logger.error("Multiple sources found for source:"+source+"\n"+ ",".join(sourcePath) +"\nUnable to determine one.")
                raise Exception("Multiple sources found")
            self.logger.info("Copying... Source path :" + source + " Source filename: " + sourcePath[0])
            shutil.copy2(sourcePath[0], destDir)
Example #4
0
def buildSourcesList(specPath, sourcePath, yamlDir, logger, singleFile=True):
    strUtils = StringUtils()
    if singleFile:
        yamlFile = open(yamlDir + "sources_list.yaml", "w")
    lst = os.listdir(specPath)
    lst.sort()
    import PullSources
    for dirEntry in lst:
        specDir = os.path.join(specPath, dirEntry)
        if os.path.isdir(specDir):
            for specEntry in os.listdir(specDir):
                specFile = os.path.join(specDir, specEntry)
                if os.path.isfile(specFile) and specFile.endswith(".spec"):
                    spec = Specutils(specFile)
                    modified = len(spec.getPatchNames()) > 0
                    listSourceURLs = spec.getSourceURLs()
                    ossname = spec.getBasePackageName()
                    ossversion = spec.getVersion()
                    url = None
                    listSourceNames = spec.getSourceNames()
                    sourceName = None
                    if len(listSourceNames) > 0:
                        sourceName = listSourceNames[0]
                        sha1 = spec.getChecksumForSource(sourceName)
                        if sha1 is not None:
                            PullSources.get(sourceName, sha1, sourcePath,
                                            constants.pullsourcesConfig)

                    if len(listSourceURLs) > 0:
                        sourceURL = listSourceURLs[0]
                        if sourceURL.startswith(
                                "http") or sourceURL.startswith("ftp"):
                            url = sourceURL
                        else:
                            url = spec.getURL(ossname)
                    if not singleFile:
                        yamlFile = open(
                            yamlDir + "/" + ossname + "-" + ossversion +
                            ".yaml", "w")
                    yamlFile.write("vmwsource:" + ossname + ":" + ossversion +
                                   ":\n")
                    yamlFile.write("  repository: VMWsource\n")
                    yamlFile.write("  name: '" + ossname + "'\n")
                    yamlFile.write("  version: '" + ossversion + "'\n")
                    yamlFile.write("  url: " + str(url) + "\n")
                    yamlFile.write("  license: UNKNOWN\n")
                    if sourceName is not None:
                        yamlFile.write("  vmwsource-distribution: " +
                                       str(sourceName) + "\n")
                    if modified:
                        yamlFile.write("  modified: true\n")
                    yamlFile.write("\n")
                    if not singleFile:
                        yamlFile.close()
    if singleFile:
        yamlFile.close()
    logger.info("Generated source yaml files for all packages")
Example #5
0
def buildSourcesList(yamlDir, blackListPkgs, logger, singleFile=True):
    cmdUtils = CommandUtils()
    yamlSourceDir = os.path.join(yamlDir, "yaml_sources")
    if not os.path.isdir(yamlSourceDir):
        cmdUtils.runCommandInShell("mkdir -p " + yamlSourceDir)
    if singleFile:
        yamlFile = open(yamlSourceDir + "/sources_list.yaml", "w")
    listPackages = SPECS.getData().getListPackages()
    listPackages.sort()
    import PullSources
    for package in listPackages:
        if package in blackListPkgs:
            continue
        ossname = package
        for version in SPECS.getData().getVersions(package):
            modified = False
            listPatches = SPECS.getData().getPatches(package, version)
            if listPatches:
                modified = True
            url = SPECS.getData().getSourceURL(package, version)
            if url is None:
                url = SPECS.getData().getURL(package, version)

            sourceName = None
            listSourceNames = SPECS.getData().getSources(package, version)
            if listSourceNames:
                sourceName = listSourceNames[0]
                sha1 = SPECS.getData().getSHA1(package, version, sourceName)
                if sha1 is not None:
                    PullSources.get(package, sourceName, sha1, yamlSourceDir,
                                    constants.getPullSourcesURLs(package),
                                    logger)

            if not singleFile:
                yamlFile = open(
                    yamlSourceDir + "/" + ossname + "-" + version + ".yaml",
                    "w")
            yamlFile.write("vmwsource:" + ossname + ":" + version + ":\n")
            yamlFile.write("  repository: VMWsource\n")
            yamlFile.write("  name: '" + ossname + "'\n")
            yamlFile.write("  version: '" + version + "'\n")
            yamlFile.write("  url: " + str(url) + "\n")
            yamlFile.write("  license: UNKNOWN\n")
            if sourceName is not None:
                yamlFile.write("  vmwsource-distribution: " + str(sourceName) +
                               "\n")
            if modified:
                yamlFile.write("  modified: true\n")
            yamlFile.write("\n")
            if not singleFile:
                yamlFile.close()

    if singleFile:
        yamlFile.close()
    logger.debug("Generated source yaml files for all packages")
Example #6
0
def buildSourcesList(yamlDir, blackListPkgs, logger, singleFile=True):
    cmdUtils = CommandUtils()
    yamlSourceDir = os.path.join(yamlDir, "yaml_sources")
    if not os.path.isdir(yamlSourceDir):
        cmdUtils.runCommandInShell("mkdir -p " + yamlSourceDir)
    if singleFile:
        yamlFile = open(yamlSourceDir + "/sources_list.yaml", "w")
    listPackages = SPECS.getData().getListPackages()
    listPackages.sort()
    import PullSources
    for package in listPackages:
        if package in blackListPkgs:
            continue
        ossname = package
        for version in SPECS.getData().getVersions(package):
            modified = False
            listPatches = SPECS.getData().getPatches(package, version)
            if listPatches:
                modified = True
            url = SPECS.getData().getSourceURL(package, version)
            if url is None:
                url = SPECS.getData().getURL(package, version)

            sourceName = None
            listSourceNames = SPECS.getData().getSources(package, version)
            if listSourceNames:
                sourceName = listSourceNames[0]
                sha1 = SPECS.getData().getSHA1(package, version, sourceName)
                if sha1 is not None:
                    PullSources.get(package, sourceName, sha1, yamlSourceDir,
                                    constants.getPullSourcesURLs(package),
                                    logger)

            if not singleFile:
                yamlFile = open(yamlSourceDir + "/" + ossname + "-" + version + ".yaml", "w")
            yamlFile.write("vmwsource:" + ossname + ":" + version + ":\n")
            yamlFile.write("  repository: VMWsource\n")
            yamlFile.write("  name: '" + ossname + "'\n")
            yamlFile.write("  version: '" + version + "'\n")
            yamlFile.write("  url: " + str(url) + "\n")
            yamlFile.write("  license: UNKNOWN\n")
            if sourceName is not None:
                yamlFile.write("  vmwsource-distribution: " + str(sourceName) + "\n")
            if modified:
                yamlFile.write("  modified: true\n")
            yamlFile.write("\n")
            if not singleFile:
                yamlFile.close()

    if singleFile:
        yamlFile.close()
    logger.debug("Generated source yaml files for all packages")
Example #7
0
def buildSourcesList(specPath,sourcePath, yamlDir, logger, singleFile=False):
    strUtils = StringUtils()
    if singleFile:
        yamlFile = open(yamlDir+"sources_list.yaml", "w")
    lst = os.listdir(specPath)
    lst.sort()
    import PullSources
    for dirEntry in lst:
        specDir = os.path.join(specPath, dirEntry)
        if os.path.isdir(specDir):
            for specEntry in os.listdir(specDir):
                specFile = os.path.join(specDir, specEntry)
                if os.path.isfile(specFile) and specFile.endswith(".spec"):
                    spec=Specutils(specFile)
                    modified = len(spec.getPatchNames()) > 0
                    listSourceURLs=spec.getSourceURLs()
                    ossname = spec.getBasePackageName()
                    ossversion = spec.getVersion()
                    url = None
                    listSourceNames = spec.getSourceNames()
                    sourceName = None
                    if len(listSourceNames) >0:
                        sourceName=listSourceNames[0]
                        sha1 = spec.getChecksumForSource(sourceName)                       
                        if sha1 is not None:
                            PullSources.get(sourceName, sha1, sourcePath, constants.pullsourcesConfig)

                    if len(listSourceURLs) > 0:
                        sourceURL = listSourceURLs[0]
                        if sourceURL.startswith("http") or sourceURL.startswith("ftp"):
                            url = sourceURL;
                        else:
                            url=spec.getURL(ossname)
                    if not singleFile:
                        yamlFile = open(yamlDir+"/"+ossname+"-"+ossversion+".yaml", "w")
                    yamlFile.write("vmwsource:"+ossname+":"+ossversion+":\n")
                    yamlFile.write("  repository: VMWsource\n")
                    yamlFile.write("  name: '"+ossname+"'\n")
                    yamlFile.write("  version: '"+ossversion+"'\n")
                    yamlFile.write("  url: "+str(url)+"\n")
                    yamlFile.write("  license: UNKNOWN\n")
                    if sourceName is not None:
                        yamlFile.write("  vmwsource-distribution: "+str(sourceName)+"\n")
                    if modified:
                        yamlFile.write("  modified: true\n")
                    yamlFile.write("\n")
                    if not singleFile:
                        yamlFile.close()
    if singleFile:
        yamlFile.close()
    logger.info("Generated source yaml files for all packages")
Example #8
0
def buildSourcesList(yamlDir, logger, singleFile=True):
    strUtils = StringUtils()
    if singleFile:
        yamlFile = open(yamlDir + "/sources_list.yaml", "w")
    listPackages = constants.specData.getListPackages()
    listPackages.sort()
    import PullSources
    for package in listPackages:
        ossname = package
        ossversion = constants.specData.getVersion(package)
        modified = False
        listPatches = constants.specData.getPatches(package)
        if listPatches is not None and len(listPatches) > 0:
            modified = True
        url = constants.specData.getSourceURL(package)
        if url is None:
            url = constants.specData.getURL(package)

        sourceName = None
        listSourceNames = constants.specData.getSources(package)
        if len(listSourceNames) > 0:
            sourceName = listSourceNames[0]
            sha1 = constants.specData.getSHA1(package, sourceName)
            if sha1 is not None:
                PullSources.get(sourceName, sha1, yamlDir,
                                constants.pullsourcesConfig)

        if not singleFile:
            yamlFile = open(
                yamlDir + "/" + ossname + "-" + ossversion + ".yaml", "w")
        yamlFile.write("vmwsource:" + ossname + ":" + ossversion + ":\n")
        yamlFile.write("  repository: VMWsource\n")
        yamlFile.write("  name: '" + ossname + "'\n")
        yamlFile.write("  version: '" + ossversion + "'\n")
        yamlFile.write("  url: " + str(url) + "\n")
        yamlFile.write("  license: UNKNOWN\n")
        if sourceName is not None:
            yamlFile.write("  vmwsource-distribution: " + str(sourceName) +
                           "\n")
        if modified:
            yamlFile.write("  modified: true\n")
        yamlFile.write("\n")
        if not singleFile:
            yamlFile.close()

    if singleFile:
        yamlFile.close()
    logger.info("Generated source yaml files for all packages")
Example #9
0
def buildSourcesList(yamlDir, logger, singleFile=True):
    strUtils = StringUtils()
    if singleFile:
        yamlFile = open(yamlDir+"/sources_list.yaml", "w")
    listPackages =  constants.specData.getListPackages()
    listPackages.sort()
    import PullSources
    for package in listPackages:
        ossname = package
        ossversion = constants.specData.getVersion(package)
        modified = False
        listPatches = constants.specData.getPatches(package)
        if listPatches is not None and len(listPatches) > 0 :
            modified = True
        url = constants.specData.getSourceURL(package)
        if url is None:
            url = constants.specData.getURL(package)

        sourceName = None
        listSourceNames = constants.specData.getSources(package)
        if len(listSourceNames) >0:
            sourceName=listSourceNames[0]
            sha1 = constants.specData.getSHA1(package, sourceName)
            if sha1 is not None:
                PullSources.get(sourceName, sha1, yamlDir, constants.pullsourcesConfig)

        if not singleFile:
            yamlFile = open(yamlDir+"/"+ossname+"-"+ossversion+".yaml", "w")
        yamlFile.write("vmwsource:"+ossname+":"+ossversion+":\n")
        yamlFile.write("  repository: VMWsource\n")
        yamlFile.write("  name: '"+ossname+"'\n")
        yamlFile.write("  version: '"+ossversion+"'\n")
        yamlFile.write("  url: "+str(url)+"\n")
        yamlFile.write("  license: UNKNOWN\n")
        if sourceName is not None:
            yamlFile.write("  vmwsource-distribution: "+str(sourceName)+"\n")
        if modified:
            yamlFile.write("  modified: true\n")
        yamlFile.write("\n")
        if not singleFile:
            yamlFile.close()

    if singleFile:
        yamlFile.close()
    logger.info("Generated source yaml files for all packages")