[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Patch for jennifer to propagate binary-only uploads to other suites



This patch, although it seems-to-work-for-me(tm), is not yet very well
tested, and also I'm myself not yet confident enough of it to vouch for
its correctness.

The problem:

Suppose a package (for example, pcre3[1]) has version A in testing, B in
testing-propopsed-updates, and C in unstable. One binary is still
testingversion == unstableversion, because of a FTBFS on that
architecture. t-p-u is built on most architectures, including the
problematic (for pcre3) ia64 architecture. However, the ia64 autobuilder
cannot upload its version, because it'd then be newer than what's in
unstable.

To solve this, katie should accept the t-p-u binary-only upload of ia64
regardless, and just propagate it into unstable, disregarding that
unstable has meanwhile a even newer source -- the package is newer than
the ia64 version currently in unstable anyway.

To do this, I introduce a new mapping, propup-binary, that will
propagate up binary-only uploads for (for now) t-p-u to unstable if
needed.

Note that the source version check has been relaxed for the original
target distribution too.

Anyway, as said above, I'm not (yet) confident that this patch[2] is
correct and won't introduce other problems etc, but I'll share it now
already for people to look over it. Also, I only glanced over kelly, not
more, and I *think* she's safe, but am not sure. Someone needs to verify
that.

Regards,
--Jeroen

[1] (note: a bit simplified for simpleness sake)

     pcre3 |    4.5-1.1 | testing  | source, 10archs, ia64
     pcre3 |    4.5-1.2 | t-p-u    | source, 10archs
     pcre3 |    4.5-1.1 | unstable | ia64
     pcre3 |      5.0-1 | unstable | source, 10archs

[2] The patch:

--- /org/ftp.debian.org/katie/jennifer	Fri Jan 14 09:59:27 2005
+++ ../jennifer	Wed May 18 21:08:15 2005
@@ -302,6 +302,12 @@
             if changes["distribution"].has_key(args[1]):
                 changes.setdefault("distribution-version", {})
                 for suite in args[2:]: changes["distribution-version"][suite]=suite
+        elif type == "propup-binary":
+            # Only for sourceless uploads, to not confuse buildd's with
+            # unbuilt same version sources in multiple suites
+            if not changes["architecture"].has_key("source") and changes["distribution"].has_key(args[1]):
+                changes.setdefault("distribution-version", {})
+                for suite in args[2:]: changes["distribution-version"][suite]=suite
 
     # Ensure there is (still) a target distribution
     if changes["distribution"].keys() == []:
@@ -488,7 +494,15 @@
                         files[file]["byhand"] = 1;
                     elif os.path.exists(Cnf["Dir::Queue::New"] + '/' + dsc_filename):
                         files[file]["new"] = 1;
-                    elif not os.path.exists(Cnf["Dir::Queue::Accepted"] + '/' + dsc_filename):
+                    elif os.path.exists(Cnf["Dir::Queue::Accepted"] + '/' + dsc_filename):
+                        pass
+                    elif changes.has_key("distribution-version") and Katie.source_exists(source_package, source_version):
+                        # For propup, we don't care that this binary-only
+                        # upload isn't actually for the latest source in the
+                        # given distribution, as long as there actually is a
+                        # source somewhere in the database.
+                        reject("Source found in the database somewhere", "Warning: ")
+                    else:
                         reject("no source found for %s %s (%s)." % (source_package, source_version, file));
             # Check the version and for file overwrites
             reject(Katie.check_binary_against_db(file),"");
--- /org/ftp.debian.org/katie/katie.conf	Sun May  1 17:31:57 2005
+++ ../katie.conf	Wed May 18 20:23:06 2005
@@ -416,6 +425,7 @@
  "map-unreleased proposed-updates unstable";
  "map testing testing-proposed-updates";
  "map testing-security testing-proposed-updates";
+ "propup-binary testing-proposed-updates unstable";
  "map-unreleased testing unstable";
  "map-unreleased testing-proposed-updates unstable";
 };


-- 
Jeroen van Wolffelaar
Jeroen@wolffelaar.nl (also for Jabber & MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl



Reply to: