Exemple #1
0
    def _getLatestOfAvailableArches(self, pkgLst):
        """
        Given a list of package objects, find the latest versions of each
        package for each name/arch.
        @param pkgLst: list of packages
        @type pkgLst: [repomd.packagexml._Package, ...]
        """

        pkgLst.sort()

        pkgMap = {}
        for pkg in pkgLst:
            arch = self._getRepositoryArch(pkg.location)
            key = pkg.name + pkg.arch + arch
            if key not in pkgMap:
                pkgMap[key] = pkg
                continue

            # check if newer, first wins
            if util.packagevercmp(pkg, pkgMap[key]) in (1, ):
                pkgMap[key] = pkg

        ret = pkgMap.values()
        ret.sort()

        return ret
Exemple #2
0
    def _getLatestOfAvailableArches(self, pkgLst):
        """
        Given a list of package objects, find the latest versions of each
        package for each name/arch.
        @param pkgLst: list of packages
        @type pkgLst: [repomd.packagexml._Package, ...]
        """

        pkgLst.sort()

        pkgMap = {}
        for pkg in pkgLst:
            arch = self._getRepositoryArch(pkg.location)
            key = pkg.name + pkg.arch + arch
            if key not in pkgMap:
                pkgMap[key] = pkg
                continue

            # check if newer, first wins
            if util.packagevercmp(pkg, pkgMap[key]) in (1, ):
                pkgMap[key] = pkg

        ret = pkgMap.values()
        ret.sort()

        return ret
Exemple #3
0
                continue
            else:
                if metadata is None:
                    pkgs = self._getMetadataFromConaryRepository(nvf[0],
                                                                 version=nvf[1])
                    if pkgs:
                        metadata = util.Metadata(pkgs)
                    if metadata:
                        binPkg = metadata.locationMap[line]
                        srcPkg = metadata.binPkgMap[binPkg]
                    else:
                        raise OldVersionNotFoundError(
                            why="can't find metadata for %s" % line)

            # set needsUpdate if version changes
            if util.packagevercmp(srpm, srcPkg) == 1:
                needsUpdate = True

            # make sure new package is actually newer
            if util.packagevercmp(srpm, srcPkg) == -1:
                # In current mode we just need to build
                # attempts are made in update set to keep the latest rpm
                # the latest conary version so just let it go
                if self._cfg.updateMode == 'current':
                    srcTuple = (srcPkg.getNevra(), srpm.getNevra())
                    log.warn('running in current mode ignoring')
                    log.warn('version goes backwards %s -> %s' % srcTuple)
                    needsUpdate = True
                else:
                    srcTuple = (srcPkg.getNevra(), srpm.getNevra())
                    log.warn('version goes backwards %s -> %s' % srcTuple)
Exemple #4
0
                continue
            else:
                if metadata is None:
                    pkgs = self._getMetadataFromConaryRepository(
                        nvf[0], version=nvf[1])
                    if pkgs:
                        metadata = util.Metadata(pkgs)
                    if metadata:
                        binPkg = metadata.locationMap[line]
                        srcPkg = metadata.binPkgMap[binPkg]
                    else:
                        raise OldVersionNotFoundError(
                            why="can't find metadata for %s" % line)

            # set needsUpdate if version changes
            if util.packagevercmp(srpm, srcPkg) == 1:
                needsUpdate = True

            # make sure new package is actually newer
            if util.packagevercmp(srpm, srcPkg) == -1:
                # In current mode we just need to build
                # attempts are made in update set to keep the latest rpm
                # the latest conary version so just let it go
                if self._cfg.updateMode == 'current':
                    srcTuple = (srcPkg.getNevra(), srpm.getNevra())
                    log.warn('running in current mode ignoring')
                    log.warn('version goes backwards %s -> %s' % srcTuple)
                    needsUpdate = True
                else:
                    srcTuple = (srcPkg.getNevra(), srpm.getNevra())
                    log.warn('version goes backwards %s -> %s' % srcTuple)