Beispiel #1
0
 def test_get_control_data(self):
     data = (get_control_data(self.filename))
     self.assertEqual(
         {
             'Maintainer': 'Matthieu Gallet <*****@*****.**>',
             'Description': 'Utilities for creating mutliple Debian packages.\nDebTools\n========',
             'Package': 'python-debtools',
             'Section': 'python',
             'Depends': 'python (>= 2.7), python (<< 2.8), python-stdeb, python-backports.lzma',
             'Priority': 'optional',
             'Source': 'debtools',
             'Installed-Size': '88',
             'Version': '0.3-1',
             'Architecture': 'all'
         },
         data
     )
Beispiel #2
0
 def test_get_control_data(self):
     data = (get_control_data(self.filename))
     self.assertEqual(
         {
             'Maintainer': 'Matthieu Gallet <*****@*****.**>',
             'Description':
             'Utilities for creating mutliple Debian packages.\nDebTools\n========',
             'Package': 'python-debtools',
             'Section': 'python',
             'Depends':
             'python (>= 2.7), python (<< 2.8), python-stdeb, python-backports.lzma',
             'Priority': 'optional',
             'Source': 'debtools',
             'Installed-Size': '88',
             'Version': '0.3-1',
             'Architecture': 'all'
         }, data)
Beispiel #3
0
 def add(self, file_or_package_name):
     if file_or_package_name in self.dependencies_by_package:
         return
     if not file_or_package_name.endswith(".deb"):
         proposed_filename = self.find_package(file_or_package_name)
         if proposed_filename:
             file_or_package_name = proposed_filename
         else:
             previous_content = set(os.listdir("."))
             subprocess.check_call(["apt-get", "download", file_or_package_name])
             new_content = set(os.listdir("."))
             diff = [x for x in (new_content - previous_content) if x.endswith(".deb")]
             if not diff:
                 raise ValueError("Unable to download %s" % file_or_package_name)
             elif len(diff) > 1:
                 raise ValueError("Unable to find %s in %s" % (file_or_package_name, diff))
             file_or_package_name = diff[0]
     control_data = get_control_data(file_or_package_name)
     package_name = control_data["Package"]
     deps = {}
     for key in ("Depends", "Pre-Depends"):
         if key in control_data:
             deps.update(parse_deps(control_data[key], local_packages=self.local_packages))
     self.dependencies_by_package[package_name] = deps
     if not self.recursive:
         return
     for other_package_name, version_constraints in self.dependencies_by_package[package_name].items():
         is_ignored = False
         if other_package_name in self.ignored_packages:
             ignored_version = self.ignored_packages[other_package_name]
             is_ignored = True
             for version_constraint in version_constraints:
                 if not check_version_constraint(ignored_version, version_constraint[0], version_constraint[1]):
                     is_ignored = False
         if not is_ignored:
             self.add(other_package_name)
Beispiel #4
0
 def add(self, file_or_package_name):
     if file_or_package_name in self.dependencies_by_package:
         return
     if not file_or_package_name.endswith('.deb'):
         proposed_filename = self.find_package(file_or_package_name)
         if proposed_filename:
             file_or_package_name = proposed_filename
         else:
             previous_content = set(os.listdir('.'))
             subprocess.check_call(['apt-get', 'download', file_or_package_name])
             new_content = set(os.listdir('.'))
             diff = [x for x in (new_content - previous_content) if x.endswith('.deb')]
             if not diff:
                 raise ValueError('Unable to download %s' % file_or_package_name)
             elif len(diff) > 1:
                 raise ValueError('Unable to find %s in %s' % (file_or_package_name, diff))
             file_or_package_name = diff[0]
     control_data = get_control_data(file_or_package_name)
     package_name = control_data['Package']
     deps = {}
     for key in ('Depends', 'Pre-Depends'):
         if key in control_data:
             deps.update(parse_deps(control_data[key], local_packages=self.local_packages))
     self.dependencies_by_package[package_name] = deps
     if not self.recursive:
         return
     for other_package_name, version_constraints in list(self.dependencies_by_package[package_name].items()):
         is_ignored = False
         if other_package_name in self.ignored_packages:
             ignored_version = self.ignored_packages[other_package_name]
             is_ignored = True
             for version_constraint in version_constraints:
                 if not check_version_constraint(ignored_version, version_constraint[0], version_constraint[1]):
                     is_ignored = False
         if not is_ignored:
             self.add(other_package_name)