~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/soyuz/model/binarypackagebuild.py

  • Committer: Launchpad Patch Queue Manager
  • Date: 2012-01-03 05:05:39 UTC
  • mfrom: (14514.3.5 new-python-apt)
  • Revision ID: launchpad@pqm.canonical.com-20120103050539-y6ipuo5e9illcrsr
[r=benji][bug=551510] Port to new python-apt API.

Show diffs side-by-side

added added

removed removed

Lines of Context:
433
433
                "It is expected to be a tuple containing only another "
434
434
                "tuple with 3 elements  (name, version, relation)."
435
435
                % (token, self.title, self.id, self.dependencies))
 
436
        # Map relations to the canonical form used in control files.
 
437
        if relation == '<':
 
438
            relation = '<<'
 
439
        elif relation == '>':
 
440
            relation = '>>'
436
441
        return (name, version, relation)
437
442
 
438
443
    def _checkDependencyVersion(self, available, required, relation):
439
444
        """Return True if the available version satisfies the context."""
440
445
        # This dict maps the package version relationship syntax in lambda
441
446
        # functions which returns boolean according the results of
442
 
        # apt_pkg.VersionCompare function (see the order above).
 
447
        # apt_pkg.version_compare function (see the order above).
443
448
        # For further information about pkg relationship syntax see:
444
449
        #
445
450
        # http://www.debian.org/doc/debian-policy/ch-relationships.html
447
452
        version_relation_map = {
448
453
            # any version is acceptable if no relationship is given
449
454
            '': lambda x: True,
450
 
            # stricly later
 
455
            # strictly later
451
456
            '>>': lambda x: x == 1,
452
457
            # later or equal
453
458
            '>=': lambda x: x >= 0,
454
 
            # stricly equal
 
459
            # strictly equal
455
460
            '=': lambda x: x == 0,
456
461
            # earlier or equal
457
462
            '<=': lambda x: x <= 0,
463
468
        # it behaves similar to cmp, i.e. returns negative
464
469
        # if first < second, zero if first == second and
465
470
        # positive if first > second.
466
 
        dep_result = apt_pkg.VersionCompare(available, required)
 
471
        dep_result = apt_pkg.version_compare(available, required)
467
472
 
468
473
        return version_relation_map[relation](dep_result)
469
474
 
500
505
    def updateDependencies(self):
501
506
        """See `IBuild`."""
502
507
 
503
 
        # apt_pkg requires InitSystem to get VersionCompare working properly.
504
 
        apt_pkg.InitSystem()
 
508
        # apt_pkg requires init_system to get version_compare working
 
509
        # properly.
 
510
        apt_pkg.init_system()
505
511
 
506
512
        # Check package build dependencies using apt_pkg
507
513
        try:
508
 
            parsed_deps = apt_pkg.ParseDepends(self.dependencies)
 
514
            parsed_deps = apt_pkg.parse_depends(self.dependencies)
509
515
        except (ValueError, TypeError):
510
516
            raise UnparsableDependencies(
511
517
                "Build dependencies for %s (%s) could not be parsed: '%s'\n"