X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Farchive.py;h=6577d3591f479e960a0ae23b213e1f5c75ccfef3;hb=6b05407646140b4ce2b16463bb96bf471dd5e646;hp=4226ce9c6e11eb6ebf3761c65fd07783e9a14efc;hpb=878f326ae708fa5c918e5e63c274fe012ac038f8;p=dak.git diff --git a/daklib/archive.py b/daklib/archive.py index 4226ce9c..6577d359 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -778,29 +778,39 @@ class ArchiveUpload(object): suites = session.query(Suite).filter(Suite.suite_name.in_(suite_names)) return suites - def _check_new_binary_overrides(self, suite): + def _check_new_binary_overrides(self, suite, overridesuite): new = False - - binaries = self.changes.binaries source = self.changes.source + if source is not None and not source.package_list.fallback: packages = source.package_list.packages_for_suite(suite) binaries = [ entry for entry in packages ] - - for b in binaries: - override = self._binary_override(suite, b) - if override is None: - self.warnings.append('binary:{0} is NEW.'.format(b.name)) - new = True + for b in binaries: + override = self._binary_override(overridesuite, b) + if override is None: + self.warnings.append('binary:{0} is NEW.'.format(b.name)) + new = True + else: + binaries = self.changes.binaries + for b in binaries: + if utils.is_in_debug_section(b.control) and suite.debug_suite is not None: + continue + override = self._binary_override(overridesuite, b) + if override is None: + self.warnings.append('binary:{0} is NEW.'.format(b.name)) + new = True return new - def _check_new(self, suite): + def _check_new(self, suite, overridesuite): """Check if upload is NEW An upload is NEW if it has binary or source packages that do not have - an override in C{suite} OR if it references files ONLY in a tainted - archive (eg. when it references files in NEW). + an override in C{overridesuite} OR if it references files ONLY in a + tainted archive (eg. when it references files in NEW). + + Debug packages (*-dbgsym in Section: debug) are not considered as NEW + if C{suite} has a seperate debug suite. @rtype: bool @return: C{True} if the upload is NEW, C{False} otherwise @@ -809,10 +819,10 @@ class ArchiveUpload(object): new = False # Check for missing overrides - if self._check_new_binary_overrides(suite): + if self._check_new_binary_overrides(suite, overridesuite): new = True if self.changes.source is not None: - override = self._source_override(suite, self.changes.source) + override = self._source_override(overridesuite, self.changes.source) if override is None: self.warnings.append('source:{0} is NEW.'.format(self.changes.source.dsc['Source'])) new = True @@ -844,7 +854,7 @@ class ArchiveUpload(object): overridesuite = suite if suite.overridesuite is not None: overridesuite = session.query(Suite).filter_by(suite_name=suite.overridesuite).one() - if self._check_new(overridesuite): + if self._check_new(suite, overridesuite): self.new = True final_suites.add(suite) @@ -962,6 +972,7 @@ class ArchiveUpload(object): self.final_suites = final_suites for chk in ( + checks.SuiteCheck, checks.TransitionCheck, checks.ACLCheck, checks.NoSourceOnlyCheck, @@ -1272,7 +1283,7 @@ class ArchiveUpload(object): source_suites = self.session.query(Suite).filter(Suite.suite_id.in_(source_suite_ids)).subquery() source_component_func = lambda source: self._source_override(overridesuite, source).component - binary_component_func = lambda binary: self._binary_component(overridesuite, binary) + binary_component_func = lambda binary: self._binary_component(overridesuite, binary, only_overrides=False) (db_source, db_binaries) = self._install_to_suite(redirected_suite, source_component_func, binary_component_func, source_suites=source_suites, extra_source_archives=[suite.archive])