+2007-12-28 Anthony Towns <ajt@debian.org>
+
+ * daklib/utils.py (check_signature): add NOTATION_DATA and
+ NOTATION_NAME to known keywords.
+
+ * daklib/queue.py (Upload.check_source_against_db):
+
+ * dak/make_suite_file_list.py: add -f/--force option.
+
+ * dak/generate_releases.py: add -a/--apt-conf=FILE and
+ -f/--force-touch options. Pull version info from the database.
+ Make suite description optional.
+
+ * config/debian/dak.conf: update
+ Reject-Proposed-Updates::MoreInfoURL. Comment out
+ Suite::Stable::Version and ::Description.
+
+ * config/debian/apt.conf: Add hurd-i386 to unstable
+ debian-installer stanza.
+
2007-12-28 Joerg Jaspert <joerg@debian.org>
* KEYEXPIRED is actually a known keyword. We do check it earlier
{
FileList "/srv/ftp.debian.org/database/dists/unstable_main_$(SECTION)_binary-$(ARCH).list";
Sections "debian-installer";
- Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel m68k powerpc s390 sparc";
+ Architectures "alpha amd64 arm hppa hurd-i386 i386 ia64 mips mipsel m68k powerpc s390 sparc";
BinOverride "override.sid.main.$(SECTION)";
SrcOverride "override.sid.main.src";
BinCacheDB "packages-debian-installer-$(ARCH).db";
Reject-Proposed-Updates
{
StableRejector "Andreas Barth and Martin Zobel-Helas";
- MoreInfoURL "http://release.debian.org/stable/4.0/4.0r1/";
+ MoreInfoURL "http://release.debian.org/stable/4.0/4.0r3/";
};
Import-LDAP-Fingerprints
sparc;
};
Announce "debian-changes@lists.debian.org";
- Version "4.0r1";
+ // Version "4.0r1";
Origin "Debian";
- Description "Debian 4.0r1 Released 15 August 2007";
+ // Description "Debian 4.0r1 Released 15 August 2007";
CodeName "etch";
OverrideCodeName "etch";
Priority "5";
################################################################################
-import sys, os, popen2, tempfile, stat, time
+import sys, os, popen2, tempfile, stat, time, pg
import apt_pkg
import daklib.utils
Generate Release files (for SUITE).
-h, --help show this help and exit
+ -a, --apt-conf FILE use FILE instead of default apt.conf
+ -f, --force-touch ignore Untouchable directives in dak.conf
If no SUITE is given Release files are generated for all suites."""
Cnf = daklib.utils.get_conf()
- Arguments = [('h',"help","Generate-Releases::Options::Help")]
- for i in [ "help" ]:
+ Arguments = [('h',"help","Generate-Releases::Options::Help"),
+ ('a',"apt-conf","Generate-Releases::Options::Apt-Conf", "HasArg"),
+ ('f',"force-touch","Generate-Releases::Options::Force-Touch"),
+ ]
+ for i in [ "help", "apt-conf", "force-touch" ]:
if not Cnf.has_key("Generate-Releases::Options::%s" % (i)):
Cnf["Generate-Releases::Options::%s" % (i)] = ""
if Options["Help"]:
usage()
+ if not Options["Apt-Conf"]:
+ Options["Apt-Conf"] = daklib.utils.which_apt_conf_file()
+
AptCnf = apt_pkg.newConfiguration()
- apt_pkg.ReadConfigFileISC(AptCnf,daklib.utils.which_apt_conf_file())
- #apt_pkg.ReadConfigFileISC(AptCnf,"/org/ftp.debian.org/dak/config/debian/apt.conf.stable")
- #apt_pkg.ReadConfigFileISC(AptCnf,"/org/ftp.debian.org/dak/config/debian/apt.conf.oldstable")
+ apt_pkg.ReadConfigFileISC(AptCnf, Options["Apt-Conf"])
+
+ projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"]))
if not suites:
suites = Cnf.SubTree("Suite").List()
print "Processing: " + suite
SuiteBlock = Cnf.SubTree("Suite::" + suite)
- if SuiteBlock.has_key("Untouchable"):
+ if SuiteBlock.has_key("Untouchable") and not Options["Force-Touch"]:
print "Skipping: " + suite + " (untouchable)"
continue
origin = SuiteBlock["Origin"]
label = SuiteBlock.get("Label", origin)
- version = SuiteBlock.get("Version", "")
codename = SuiteBlock.get("CodeName", "")
+ version = ""
+ description = ""
+
+ q = projectB.query("SELECT version, description FROM suite WHERE suite_name = '%s'" % (suite))
+ qs = q.getresult()
+ if len(qs) == 1:
+ if qs[0][0] != "-": version = qs[0][0]
+ if qs[0][1]: description = qs[0][1]
+
if SuiteBlock.has_key("NotAutomatic"):
notautomatic = "yes"
else:
if components:
out.write("Components: %s\n" % (" ".join(components)))
- out.write("Description: %s\n" % (SuiteBlock["Description"]))
+ if description:
+ out.write("Description: %s\n" % (description))
files = []
-a, --architecture=ARCH only write file lists for this architecture
-c, --component=COMPONENT only write file lists for this component
+ -f, --force ignore Untouchable suite directives in dak.conf
-h, --help show this help and exit
-n, --no-delete don't delete older versions
-s, --suite=SUITE only write file lists for this suite
delete_version = version[0]
delete_id = packages[delete_unique_id]["id"]
delete_arch = packages[delete_unique_id]["arch"]
- if not Cnf.Find("Suite::%s::Untouchable" % (suite)):
+ if not Cnf.Find("Suite::%s::Untouchable" % (suite)) or Options["Force"]:
if Options["No-Delete"]:
print "Would delete %s_%s_%s in %s in favour of %s_%s" % (pkg, delete_arch, delete_version, suite, dominant_version, dominant_arch)
else:
('c', "component", "Make-Suite-File-List::Options::Component", "HasArg"),
('h', "help", "Make-Suite-File-List::Options::Help"),
('n', "no-delete", "Make-Suite-File-List::Options::No-Delete"),
+ ('f', "force", "Make-Suite-File-List::Options::Force"),
('s', "suite", "Make-Suite-File-List::Options::Suite", "HasArg")]
- for i in ["architecture", "component", "help", "no-delete", "suite" ]:
+ for i in ["architecture", "component", "help", "no-delete", "suite", "force-touch" ]:
if not Cnf.has_key("Make-Suite-File-List::Options::%s" % (i)):
Cnf["Make-Suite-File-List::Options::%s" % (i)] = ""
apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
(reject_msg, is_in_incoming) = Upload.check_dsc_against_db(file)
reject(reject_msg)
- if reject_message:
+ if reject_message.find("Rejected") != -1:
answer = "XXX"
if Options["No-Action"] or Options["Automatic"]:
answer = 'S'
# the .orig.tar.gz is a duplicate of the one in the archive]; if
# you're iterating over 'files' and call this function as part of
# the loop, be sure to add a check to the top of the loop to
- # ensure you haven't just tried to derefernece the deleted entry.
+ # ensure you haven't just tried to dereference the deleted entry.
# **WARNING**
def check_dsc_against_db(self, file):
# Finally ensure there's not something we don't recognise
known_keywords = Dict(VALIDSIG="",SIG_ID="",GOODSIG="",BADSIG="",ERRSIG="",
SIGEXPIRED="",KEYREVOKED="",NO_PUBKEY="",BADARMOR="",
- NODATA="",KEYEXPIRED="")
+ NODATA="",NOTATION_DATA="",NOTATION_NAME="",KEYEXPIRED="")
for keyword in keywords.keys():
if not known_keywords.has_key(keyword):