... |
... |
@@ -464,7 +464,7 @@ class BinaryCheck(Check): |
464
|
464
|
field, control,
|
465
|
465
|
dependency_parser=apt_pkg.parse_depends,
|
466
|
466
|
allow_alternatives=True,
|
467
|
|
- require_strict_dependency=False):
|
|
467
|
+ allow_relations=('', '<', '<=', '=', '>=', '>')):
|
468
|
468
|
value = control.get(field)
|
469
|
469
|
if value is not None:
|
470
|
470
|
if value.strip() == '':
|
... |
... |
@@ -476,9 +476,9 @@ class BinaryCheck(Check): |
476
|
476
|
for group in depends:
|
477
|
477
|
if not allow_alternatives and len(group) != 1:
|
478
|
478
|
raise Reject('{0}: {1}: alternatives are not allowed'.format(fn))
|
479
|
|
- if require_strict_dependency \
|
480
|
|
- and any(dependency[2] != '=' for dependency in group):
|
481
|
|
- raise Reject('{0}: {1}: only strict dependencies ("=") are allowed'.format(fn, field))
|
|
479
|
+ for dep_pkg, dep_ver, dep_rel in group:
|
|
480
|
+ if dep_rel not in allow_relations:
|
|
481
|
+ raise Reject('{}: {}: depends on {}, but only relations {} are allowed for this field'.format(fn, field, " ".join(dep_pkg, dep_rel, dep_ver), allow_relations))
|
482
|
482
|
|
483
|
483
|
for field in ('Breaks', 'Conflicts', 'Depends', 'Enhances', 'Pre-Depends',
|
484
|
484
|
'Recommends', 'Replaces', 'Suggests'):
|
... |
... |
@@ -486,11 +486,11 @@ class BinaryCheck(Check): |
486
|
486
|
|
487
|
487
|
check_dependency_field("Provides", control,
|
488
|
488
|
allow_alternatives=False,
|
489
|
|
- require_strict_dependency=True)
|
|
489
|
+ allow_relations=('', '='))
|
490
|
490
|
check_dependency_field("Built-Using", control,
|
491
|
491
|
dependency_parser=apt_pkg.parse_src_depends,
|
492
|
492
|
allow_alternatives=False,
|
493
|
|
- require_strict_dependency=True)
|
|
493
|
+ allow_relations=('=',))
|
494
|
494
|
|
495
|
495
|
|
496
|
496
|
class BinaryTimestampCheck(Check):
|