X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Farchive.py;h=bfab2c64e832ba63f64806a633bb0fc177cbc8b7;hb=391f5ec09a119131dc846b796ca791f4cecc69e4;hp=e3bf91267e14f0d9ff64b2067abf9d41ae4c2a4f;hpb=283a1be8a19c9f89987dd96ec6247217973ac5a7;p=dak.git diff --git a/daklib/archive.py b/daklib/archive.py index e3bf9126..bfab2c64 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -274,7 +274,6 @@ class ArchiveTransaction(object): ) rest = dict( maintainer=maintainer, - #install_date=datetime.now().date(), poolfile=db_file_dsc, dm_upload_allowed=(control.get('DM-Upload-Allowed', 'no') == 'yes'), ) @@ -298,8 +297,6 @@ class ArchiveTransaction(object): setattr(db_source, key, value) for key, value in rest2.iteritems(): setattr(db_source, key, value) - # XXX: set as default in postgres? - db_source.install_date = datetime.now().date() session.add(db_source) session.flush() @@ -781,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 @@ -812,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 @@ -847,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) @@ -954,6 +961,7 @@ class ArchiveUpload(object): checks.BinaryCheck, checks.BinaryTimestampCheck, checks.SingleDistributionCheck, + checks.ArchAllBinNMUCheck, ): chk().check(self) @@ -973,6 +981,7 @@ class ArchiveUpload(object): chk().check(self) for chk in ( + checks.SuiteCheck, checks.ACLCheck, checks.SourceFormatCheck, checks.SuiteArchitectureCheck, @@ -1059,6 +1068,8 @@ class ArchiveUpload(object): dst = os.path.join(suite.archive.path, 'dists', suite.suite_name, self.changes.filename) self.transaction.fs.copy(src, dst, mode=suite.archive.mode) + suite.update_last_changed() + return (db_source, db_binaries) def _install_changes(self): @@ -1173,7 +1184,7 @@ class ArchiveUpload(object): continue script = rule['Script'] - retcode = daklib.daksubprocess.call([script, os.path.join(self.directory, f.filename), control['Version'], arch, os.path.join(self.directory, self.changes.filename)], shell=False) + retcode = daklib.daksubprocess.call([script, os.path.join(self.directory, f.filename), control['Version'], arch, os.path.join(self.directory, self.changes.filename), suite.suite_name], shell=False) if retcode != 0: print "W: error processing {0}.".format(f.filename) remaining.append(f) @@ -1275,7 +1286,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])