+2007-06-18 Anthony Towns <ajt@debian.org>
+
+ * config/debian/apt.conf, config/debian/apt.conf.stable,
+ config/debian/dak.conf: update for 4.0r0 (etch), and 3.1r6
+ (sarge), support for oldstable-proposed-updates, dropping m68k
+ from etch, creating etch-m68k suite, creating lenny.
+
+ * config/debian/vars: update for lenny
+
+ * config/debian/dak.conf: typo fix for Dinstall::GPGKeyring,
+ drop upload limitations, add release postgres user
+
+ * dak/process_new.py: support for automatically accepting and rejecting
+ packages from proposed-updates holding queues via COMMENTS directory
+ * cron.daily: automatically process COMMENTS-based approvals
+ and rejections for proposed-updates holding queues
+
+ * dak/process_unchecked.py: add support for oldproposedupdates
+ holding queue
+
+ * dak/control_suite.py: allow control-suite to work with etch-m68k
+
+ * dak/generate_releases.py: unlink old Release files before updating
+ them if nlinks > 1 (ie, if two files used to be the same, maybe they
+ shouldn't be when generate-releases is run)
+
+ * dak/generate_releases.py: add a couple of commented lines to make
+ it easier to deal with point releases
+
+ * dak/make_overrides.py: generate overrides for !contrib udebs
+
+ * docs/README.stable-point-release: update docs for doing a
+ point release
+
2007-03-05 Anthony Towns <ajt@debian.org>
* config/debian/dak.conf: update for 3.1r5.
Contents::Header "/srv/ftp.debian.org/dak/config/debian/Contents.top";
};
-tree "dists/proposed-updates"
+tree "dists/oldstable-proposed-updates"
{
- FileList "/srv/ftp.debian.org/database/dists/proposed-updates_$(SECTION)_binary-$(ARCH).list";
- SourceFileList "/srv/ftp.debian.org/database/dists/proposed-updates_$(SECTION)_source.list";
+ FileList "/srv/ftp.debian.org/database/dists/oldstable-proposed-updates_$(SECTION)_binary-$(ARCH).list";
+ SourceFileList "/srv/ftp.debian.org/database/dists/oldstable-proposed-updates_$(SECTION)_source.list";
Sections "main contrib non-free";
Architectures "alpha arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc source";
BinOverride "override.sarge.$(SECTION)";
ExtraOverride "override.sarge.extra.$(SECTION)";
SrcOverride "override.sarge.$(SECTION).src";
Contents " ";
- Packages::Compress ". gzip";
- Sources::Compress "gzip";
+};
+
+tree "dists/proposed-updates"
+{
+ FileList "/srv/ftp.debian.org/database/dists/proposed-updates_$(SECTION)_binary-$(ARCH).list";
+ SourceFileList "/srv/ftp.debian.org/database/dists/proposed-updates_$(SECTION)_source.list";
+ Sections "main contrib non-free";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc source";
+ BinOverride "override.etch.$(SECTION)";
+ ExtraOverride "override.etch.extra.$(SECTION)";
+ SrcOverride "override.etch.$(SECTION).src";
+ Contents " ";
};
tree "dists/testing"
FileList "/srv/ftp.debian.org/database/dists/testing_$(SECTION)_binary-$(ARCH).list";
SourceFileList "/srv/ftp.debian.org/database/dists/testing_$(SECTION)_source.list";
Sections "main contrib non-free";
- Architectures "alpha amd64 arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc source";
- BinOverride "override.etch.$(SECTION)";
- ExtraOverride "override.etch.extra.$(SECTION)";
- SrcOverride "override.etch.$(SECTION).src";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc source";
+ BinOverride "override.lenny.$(SECTION)";
+ ExtraOverride "override.lenny.extra.$(SECTION)";
+ SrcOverride "override.lenny.$(SECTION).src";
};
tree "dists/testing-proposed-updates"
FileList "/srv/ftp.debian.org/database/dists/testing-proposed-updates_$(SECTION)_binary-$(ARCH).list";
SourceFileList "/srv/ftp.debian.org/database/dists/testing-proposed-updates_$(SECTION)_source.list";
Sections "main contrib non-free";
- Architectures "alpha amd64 arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc source";
- BinOverride "override.etch.$(SECTION)";
- ExtraOverride "override.etch.extra.$(SECTION)";
- SrcOverride "override.etch.$(SECTION).src";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc source";
+ BinOverride "override.lenny.$(SECTION)";
+ ExtraOverride "override.lenny.extra.$(SECTION)";
+ SrcOverride "override.lenny.$(SECTION).src";
Contents " ";
};
// debian-installer
-tree "dists/proposed-updates/main"
+tree "dists/oldstable-proposed-updates/main"
{
- FileList "/srv/ftp.debian.org/database/dists/proposed-updates_main_$(SECTION)_binary-$(ARCH).list";
+ FileList "/srv/ftp.debian.org/database/dists/oldstable-proposed-updates_main_$(SECTION)_binary-$(ARCH).list";
Sections "debian-installer";
Architectures "alpha arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc";
BinOverride "override.sarge.main.$(SECTION)";
BinCacheDB "packages-debian-installer-$(ARCH).db";
Packages::Extensions ".udeb";
Contents " ";
- Packages::Compress ". gzip";
- Sources::Compress "gzip";
};
-tree "dists/testing/main"
+tree "dists/proposed-updates/main"
{
- FileList "/srv/ftp.debian.org/database/dists/testing_main_$(SECTION)_binary-$(ARCH).list";
+ FileList "/srv/ftp.debian.org/database/dists/proposed-updates_main_$(SECTION)_binary-$(ARCH).list";
Sections "debian-installer";
- Architectures "alpha amd64 arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc";
BinOverride "override.etch.main.$(SECTION)";
SrcOverride "override.etch.main.src";
BinCacheDB "packages-debian-installer-$(ARCH).db";
Packages::Extensions ".udeb";
+ Contents " ";
+};
+
+tree "dists/testing/main"
+{
+ FileList "/srv/ftp.debian.org/database/dists/testing_main_$(SECTION)_binary-$(ARCH).list";
+ Sections "debian-installer";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc";
+ BinOverride "override.lenny.main.$(SECTION)";
+ SrcOverride "override.lenny.main.src";
+ BinCacheDB "packages-debian-installer-$(ARCH).db";
+ Packages::Extensions ".udeb";
Contents "$(DIST)/../Contents-udeb";
};
{
FileList "/srv/ftp.debian.org/database/dists/testing_non-free_$(SECTION)_binary-$(ARCH).list";
Sections "debian-installer";
- Architectures "alpha amd64 arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc";
- BinOverride "override.etch.main.$(SECTION)";
- SrcOverride "override.etch.main.src";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc";
+ BinOverride "override.lenny.main.$(SECTION)";
+ SrcOverride "override.lenny.main.src";
BinCacheDB "packages-debian-installer-$(ARCH).db";
Packages::Extensions ".udeb";
Contents "$(DIST)/../Contents-udeb-nf";
{
FileList "/srv/ftp.debian.org/database/dists/testing-proposed-updates_main_$(SECTION)_binary-$(ARCH).list";
Sections "debian-installer";
- Architectures "alpha amd64 arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc";
- BinOverride "override.etch.main.$(SECTION)";
- SrcOverride "override.etch.main.src";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc";
+ BinOverride "override.lenny.main.$(SECTION)";
+ SrcOverride "override.lenny.main.src";
BinCacheDB "packages-debian-installer-$(ARCH).db";
Packages::Extensions ".udeb";
Contents " ";
SrcOverride "override.sid.$(SECTION).src";
Contents " ";
};
+
+tree "dists/etch-m68k"
+{
+ FakeDI "dists/unstable";
+ FileList "/srv/ftp.debian.org/database/dists/etch-m68k_$(SECTION)_binary-$(ARCH).list";
+ SourceFileList "/srv/ftp.debian.org/database/dists/etch-m68k_$(SECTION)_source.list";
+ Sections "main contrib non-free";
+ Architectures "m68k source";
+ BinOverride "override.etch.$(SECTION)";
+ ExtraOverride "override.etch.extra.$(SECTION)";
+ SrcOverride "override.etch.$(SECTION).src";
+};
+
+tree "dists/etch-m68k/main"
+{
+ FileList "/srv/ftp.debian.org/database/dists/etch-m68k_main_$(SECTION)_binary-$(ARCH).list";
+ Sections "debian-installer";
+ Architectures "m68k";
+ BinOverride "override.etch.main.$(SECTION)";
+ SrcOverride "override.etch.main.src";
+ BinCacheDB "packages-debian-installer-$(ARCH).db";
+ Packages::Extensions ".udeb";
+ Contents "$(DIST)/../Contents-udeb";
+};
+
+tree "dists/etch-m68k/non-free"
+{
+ FileList "/srv/ftp.debian.org/database/dists/etch-m68k_non-free_$(SECTION)_binary-$(ARCH).list";
+ Sections "debian-installer";
+ Architectures "m68k";
+ BinOverride "override.etch.main.$(SECTION)";
+ SrcOverride "override.etch.main.src";
+ BinCacheDB "packages-debian-installer-$(ARCH).db";
+ Packages::Extensions ".udeb";
+ Contents "$(DIST)/../Contents-udeb-nf";
+};
Default
{
- Packages::Compress "gzip";
- Sources::Compress "gzip";
+ Packages::Compress "bzip2 gzip";
+ Sources::Compress "bzip2 gzip";
DeLinkLimit 0;
FileMode 0664;
}
Default
{
- Packages::Compress ". gzip";
- Sources::Compress "gzip";
+ Packages::Compress "gzip bzip2";
+ Sources::Compress "gzip bzip2";
Contents::Compress "gzip";
DeLinkLimit 0;
FileMode 0664;
FileList "/srv/ftp.debian.org/database/dists/stable_$(SECTION)_binary-$(ARCH).list";
SourceFileList "/srv/ftp.debian.org/database/dists/stable_$(SECTION)_source.list";
Sections "main contrib non-free";
- Architectures "alpha arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc source";
- BinOverride "override.sarge.$(SECTION)";
- ExtraOverride "override.sarge.extra.$(SECTION)";
- SrcOverride "override.sarge.$(SECTION).src";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc source";
+ BinOverride "override.etch.$(SECTION)";
+ ExtraOverride "override.etch.extra.$(SECTION)";
+ SrcOverride "override.etch.$(SECTION).src";
};
// debian-installer
{
FileList "/srv/ftp.debian.org/database/dists/stable_main_$(SECTION)_binary-$(ARCH).list";
Sections "debian-installer";
- Architectures "alpha arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc";
- BinOverride "override.sarge.main.$(SECTION)";
- SrcOverride "override.sarge.main.src";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc";
+ BinOverride "override.etch.main.$(SECTION)";
+ SrcOverride "override.etch.main.src";
BinCacheDB "packages-debian-installer-$(ARCH).db";
Packages::Extensions ".udeb";
- Contents " ";
+ Contents "$(DIST)/../Contents-udeb";
};
+
+tree "dists/stable/non-free"
+{
+ FileList "/srv/ftp.debian.org/database/dists/stable_non-free_$(SECTION)_binary-$(ARCH).list";
+ Sections "debian-installer";
+ Architectures "alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc";
+ BinOverride "override.etch.main.$(SECTION)";
+ SrcOverride "override.etch.main.src";
+ BinCacheDB "packages-debian-installer-$(ARCH).db";
+ Packages::Extensions ".udeb";
+ Contents "$(DIST)/../Contents-udeb-nf";
+};
+
################################################################################
+TS=$(($TS+1)); echo Archive maintenance timestamp $TS: $(date +%X)
+cd $queuedir/p-u-new
+date -u -R >> REPORT
+dak process-new -a -C COMMENTS >> REPORT
+echo >> REPORT
+
+################################################################################
+
TS=$(($TS+1)); echo Archive maintenance timestamp $TS: $(date +%X)
lockfile $LOCKAC
lockac=1
Dinstall
{
- GPGKeyrings {
+ GPGKeyring {
"/srv/keyring.debian.org/keyrings/debian-keyring.gpg";
"/srv/keyring.debian.org/keyrings/debian-keyring.pgp";
};
{
Components
{
- main;
- contrib;
+ //main;
+ //contrib;
+ // Yay for consensus through GRs voted on by people not actually involved in the affected architectures
+ none;
};
unstable
{
{
ValidGID "800";
// Comma separated list of users who are in Postgres but not the passwd file
- KnownPostgres "postgres,dak,katie";
+ KnownPostgres "postgres,dak,katie,release";
};
Clean-Queues
Reject-Proposed-Updates
{
StableRejector "Andreas Barth and Martin Zobel-Helas";
- MoreInfoURL "http://release.debian.org/stable/3.1/3.1r5/";
+ MoreInfoURL "http://release.debian.org/stable/3.1/3.1r6/";
};
Import-LDAP-Fingerprints
sparc;
};
Announce "debian-changes@lists.debian.org";
- Version "3.0r6";
+ Version "3.1r6";
Origin "Debian";
- Description "Debian 3.0r6 Released 31 May 2005";
- CodeName "woody";
- OverrideCodeName "woody";
- Priority "1";
+ Description "Debian 3.1r6 Released 7 April 2007";
+ CodeName "sarge";
+ OverrideCodeName "sarge";
+ Priority "2";
Untouchable "1";
+ UdebComponents
+ {
+ main;
+ };
};
- Stable
+ Oldstable-Proposed-Updates
{
Components
{
sparc;
};
Announce "debian-changes@lists.debian.org";
- Version "3.1r5";
+ CopyChanges "dists/proposed-updates/";
+ CopyDotDak "/srv/ftp.debian.org/queue/oldstable-proposed-updates/";
+ CommentsDir "/srv/ftp.debian.org/queue/o-p-u-new/COMMENTS/";
+ Version "3.1-updates";
Origin "Debian";
- Description "Debian 3.1r5 Released 17 February 2007";
- CodeName "sarge";
+ Description "Debian 3.1 Proposed Updates - Not Released";
+ CodeName "sarge-proposed-updates";
OverrideCodeName "sarge";
- Priority "3";
+ OverrideSuite "oldstable";
+ Priority "2";
+ VersionChecks
+ {
+ MustBeNewerThan
+ {
+ Oldstable;
+ };
+ MustBeOlderThan
+ {
+ Stable;
+ Testing;
+ Unstable;
+ Experimental;
+ };
+ Enhances
+ {
+ Oldstable;
+ };
+ };
+ UdebComponents
+ {
+ main;
+ };
+ };
+
+ Stable
+ {
+ Components
+ {
+ main;
+ contrib;
+ non-free;
+ };
+ Architectures
+ {
+ source;
+ all;
+ alpha;
+ amd64;
+ arm;
+ hppa;
+ i386;
+ ia64;
+ mips;
+ mipsel;
+ powerpc;
+ s390;
+ sparc;
+ };
+ Announce "debian-changes@lists.debian.org";
+ Version "4.0r0";
+ Origin "Debian";
+ Description "Debian 4.0r0 Released 8 April 2007";
+ CodeName "etch";
+ OverrideCodeName "etch";
+ Priority "5";
Untouchable "1";
- ChangeLogBase "dists/stable/";
UdebComponents
{
main;
+ non-free;
};
};
source;
all;
alpha;
+ amd64;
arm;
hppa;
i386;
ia64;
- m68k;
mips;
mipsel;
powerpc;
Announce "debian-changes@lists.debian.org";
CopyChanges "dists/proposed-updates/";
CopyDotDak "/srv/ftp.debian.org/queue/proposed-updates/";
- Version "3.1-updates";
+ CommentsDir "/srv/ftp.debian.org/queue/p-u-new/COMMENTS/";
+ Version "4.0-updates";
Origin "Debian";
- Description "Debian 3.1 Proposed Updates - Not Released";
- CodeName "proposed-updates";
- OverrideCodeName "sarge";
+ Description "Debian 4.0 Proposed Updates - Not Released";
+ CodeName "etch-proposed-updates";
+ OverrideCodeName "etch";
OverrideSuite "stable";
Priority "4";
VersionChecks
hppa;
i386;
ia64;
- m68k;
mips;
mipsel;
powerpc;
Announce "debian-testing-changes@lists.debian.org";
Origin "Debian";
Description "Debian Testing distribution - Not Released";
- CodeName "etch";
- OverrideCodeName "etch";
+ CodeName "lenny";
+ OverrideCodeName "lenny";
Priority "5";
UdebComponents
{
Origin "Debian";
Description "Debian Testing distribution updates - Not Released";
CodeName "testing-proposed-updates";
- OverrideCodeName "etch";
+ OverrideCodeName "lenny";
OverrideSuite "testing";
Priority "6";
VersionChecks
};
};
+ Etch-m68k
+ {
+ Components
+ {
+ main;
+ contrib;
+ non-free;
+ };
+ Architectures
+ {
+ source;
+ all;
+ m68k;
+ };
+ Announce "debian-testing-changes@lists.debian.org";
+ Origin "Debian";
+ Description "Debian Etch for m68k - Not Released";
+ CodeName "etch-m68k";
+ OverrideCodeName "etch";
+ Priority "5";
+ UdebComponents
+ {
+ main;
+ non-free;
+ };
+ };
+
+
Unstable
{
Components
SuiteMappings
{
+ "propup-version oldstable-security stable testing testing-proposed-updates unstable";
"propup-version stable-security testing testing-proposed-updates unstable";
"propup-version testing-security unstable";
+ "map oldstable oldstable-proposed-updates";
+ "map oldstable-security oldstable-proposed-updates";
"map stable proposed-updates";
"map stable-security proposed-updates";
+ "map-unreleased oldstable unstable";
"map-unreleased stable unstable";
"map-unreleased proposed-updates unstable";
"map testing testing-proposed-updates";
Accepted "/srv/ftp.debian.org/queue/accepted/";
Byhand "/srv/ftp.debian.org/queue/byhand/";
ProposedUpdates "/srv/ftp.debian.org/queue/p-u-new/";
+ OldProposedUpdates "/srv/ftp.debian.org/queue/o-p-u-new/";
Done "/srv/ftp.debian.org/queue/done/";
Holding "/srv/ftp.debian.org/queue/holding/";
New "/srv/ftp.debian.org/queue/new/";
Name "projectb";
Host "";
Port -1;
-
- NonUSName "projectb";
- NonUSHost "non-US.debian.org";
- NonUSPort -1;
- NonUSUser "auric";
- NonUSPassword "moo";
};
Architectures
ftpgroup=debadmin
-copyoverrides="etch.contrib etch.contrib.src etch.main etch.main.src etch.non-free etch.non-free.src etch.extra.main etch.extra.non-free etch.extra.contrib etch.main.debian-installer woody.contrib woody.contrib.src woody.main woody.main.src woody.non-free woody.non-free.src sarge.contrib sarge.contrib.src sarge.main sarge.main.src sarge.non-free sarge.non-free.src sid.contrib sid.contrib.src sid.main sid.main.debian-installer sid.main.src sid.non-free sid.non-free.src sid.extra.contrib sid.extra.main sid.extra.non-free woody.extra.contrib woody.extra.main woody.extra.non-free sarge.extra.contrib sarge.extra.main sarge.extra.non-free"
+copyoverrides="etch.contrib etch.contrib.src etch.main etch.main.src etch.non-free etch.non-free.src etch.extra.main etch.extra.non-free etch.extra.contrib etch.main.debian-installer sarge.contrib sarge.contrib.src sarge.main sarge.main.src sarge.non-free sarge.non-free.src sid.contrib sid.contrib.src sid.main sid.main.debian-installer sid.main.src sid.non-free sid.non-free.src sid.extra.contrib sid.extra.main sid.extra.non-free sarge.extra.contrib sarge.extra.main sarge.extra.non-free lenny.contrib lenny.contrib.src lenny.main lenny.main.src lenny.non-free lenny.non-free.src lenny.extra.main lenny.extra.contrib lenny.extra.non-free"
PATH=$masterdir:$PATH
umask 022
daklib.utils.fubar("No action specified.")
# Safety/Sanity check
- if action == "set" and suite != "testing":
+ if action == "set" and suite not in ["testing", "etch-m68k"]:
daklib.utils.fubar("Will not reset a suite other than testing.")
if action == "list":
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")
if not suites:
suites = Cnf.SubTree("Suite").List()
relpath = Cnf["Dir::Root"]+tree+"/"+rel
try:
+ if os.access(relpath, os.F_OK):
+ if os.stat(relpath).st_nlink > 1:
+ os.unlink(relpath)
release = open(relpath, "w")
#release = open(longsuite.replace("/","_") + "_" + arch + "_" + sec + "_Release", "w")
except IOError:
if otype == "deb":
suffix = ""
elif otype == "udeb":
- if component != "main":
+ if component == "contrib":
continue; # Ick2
suffix = ".debian-installer"
elif otype == "dsc":
Arguments = [('a',"automatic","Process-New::Options::Automatic"),
('h',"help","Process-New::Options::Help"),
+ ('C',"comments-dir","Process-New::Options::Comments-Dir", "HasArg"),
('m',"manual-reject","Process-New::Options::Manual-Reject", "HasArg"),
('n',"no-action","Process-New::Options::No-Action")]
- for i in ["automatic", "help", "manual-reject", "no-action", "version"]:
+ for i in ["automatic", "help", "manual-reject", "no-action", "version", "comments-dir"]:
if not Cnf.has_key("Process-New::Options::%s" % (i)):
Cnf["Process-New::Options::%s" % (i)] = ""
################################################################################
+def do_comments(dir, opref, npref, line, fn):
+ for comm in [ x for x in os.listdir(dir) if x.startswith(opref) ]:
+ lines = open("%s/%s" % (dir, comm)).readlines()
+ if len(lines) == 0 or lines[0] != line + "\n": continue
+ changes_files = [ x for x in os.listdir(".") if x.startswith(comm[7:]+"_")
+ and x.endswith(".changes") ]
+ changes_files = sort_changes(changes_files)
+ for f in changes_files:
+ f = daklib.utils.validate_changes_file_arg(f, 0)
+ if not f: continue
+ print "\n" + f
+ fn(f, "".join(lines[1:]))
+
+ if opref != npref and not Options["No-Action"]:
+ newcomm = npref + comm[len(opref):]
+ os.rename("%s/%s" % (dir, comm), "%s/%s" % (dir, newcomm))
+
+################################################################################
+
+def comment_accept(changes_file, comments):
+ Upload.pkg.changes_file = changes_file
+ Upload.init_vars()
+ Upload.update_vars()
+ Upload.update_subst()
+ files = Upload.pkg.files
+
+ if not recheck():
+ return
+
+ (new, byhand) = check_status(files)
+ if not new and not byhand:
+ do_accept()
+
+################################################################################
+
+def comment_reject(changes_file, comments):
+ Upload.pkg.changes_file = changes_file
+ Upload.init_vars()
+ Upload.update_vars()
+ Upload.update_subst()
+ files = Upload.pkg.files
+
+ if not recheck():
+ return
+
+ reject(comments)
+ print "REJECT\n" + reject_message,
+ if not Options["No-Action"]:
+ Upload.do_reject(0, reject_message)
+ os.unlink(Upload.pkg.changes_file[:-8]+".dak")
+
+################################################################################
+
def main():
changes_files = init()
if len(changes_files) > 50:
else:
Upload.Subst["__BCC__"] = bcc
- for changes_file in changes_files:
- changes_file = daklib.utils.validate_changes_file_arg(changes_file, 0)
- if not changes_file:
- continue
- print "\n" + changes_file
- do_pkg (changes_file)
+ commentsdir = Cnf.get("Process-New::Options::Comments-Dir","")
+ if commentsdir:
+ if changes_files != []:
+ sys.stderr.write("Can't specify any changes files if working with comments-dir")
+ sys.exit(1)
+ do_comments(commentsdir, "ACCEPT.", "ACCEPTED.", "OK", comment_accept)
+ do_comments(commentsdir, "REJECT.", "REJECTED.", "NOTOK", comment_reject)
+ else:
+ for changes_file in changes_files:
+ changes_file = daklib.utils.validate_changes_file_arg(changes_file, 0)
+ if not changes_file:
+ continue
+ print "\n" + changes_file
+ do_pkg (changes_file)
end()
# Check there isn't already a changes file of the same name in one
# of the queue directories.
base_filename = os.path.basename(filename)
- for dir in [ "Accepted", "Byhand", "Done", "New", "ProposedUpdates" ]:
+ for dir in [ "Accepted", "Byhand", "Done", "New", "ProposedUpdates", "OldProposedUpdates" ]:
if os.path.exists(Cnf["Dir::Queue::%s" % (dir) ]+'/'+base_filename):
reject("%s: a file with this name already exists in the %s directory." % (base_filename, dir))
for file in file_keys:
# Ensure the file does not already exist in one of the accepted directories
- for dir in [ "Accepted", "Byhand", "New", "ProposedUpdates" ]:
+ for dir in [ "Accepted", "Byhand", "New", "ProposedUpdates", "OldProposedUpdates" ]:
if os.path.exists(Cnf["Dir::Queue::%s" % (dir) ]+'/'+file):
reject("%s file already exists in the %s directory." % (file, dir))
if not daklib.utils.re_taint_free.match(file):
files[file]["new"] = 1
else:
dsc_file_exists = 0
- for myq in ["Accepted", "Embargoed", "Unembargoed", "ProposedUpdates"]:
+ for myq in ["Accepted", "Embargoed", "Unembargoed", "ProposedUpdates", "OldProposedUpdates"]:
if Cnf.has_key("Dir::Queue::%s" % (myq)):
if os.path.exists(Cnf["Dir::Queue::"+myq] + '/' + dsc_filename):
dsc_file_exists = 1
queue_info = {
"New": { "is": is_new, "process": acknowledge_new },
"Byhand" : { "is": is_byhand, "process": do_byhand },
+ "OldStableUpdate" : { "is": is_oldstableupdate,
+ "process": do_oldstableupdate },
"StableUpdate" : { "is": is_stableupdate, "process": do_stableupdate },
"Unembargo" : { "is": is_unembargo, "process": queue_unembargo },
"Embargo" : { "is": is_embargo, "process": queue_embargo },
if Cnf.FindB("Dinstall::SecurityQueueHandling"):
queues += [ "Unembargo", "Embargo" ]
else:
- queues += [ "StableUpdate" ]
+ queues += [ "OldStableUpdate", "StableUpdate" ]
(prompt, answer) = ("", "XXX")
if Options["No-Action"] or Options["Automatic"]:
(changes["source"], changes["version"], pusuite))
ql = q.getresult()
if ql:
- # source is already in proposed-updates
+ # source is already in proposed-updates so no need to hold
return 0
return 1
################################################################################
+def is_oldstableupdate ():
+ if not changes["distribution"].has_key("oldstable-proposed-updates"):
+ return 0
+
+ if not changes["architecture"].has_key("source"):
+ pusuite = daklib.database.get_suite_id("oldstable-proposed-updates")
+ q = Upload.projectB.query(
+ "SELECT S.source FROM source s JOIN src_associations sa ON (s.id = sa.source) WHERE s.source = '%s' AND s.version = '%s' AND sa.suite = %d" %
+ (changes["source"], changes["version"], pusuite))
+ ql = q.getresult()
+ if ql:
+ # source is already in oldstable-proposed-updates so no need to hold
+ return 0
+
+ return 1
+
+def do_oldstableupdate (summary):
+ print "Moving to OLDSTABLE-PROPOSED-UPDATES holding area."
+ Logger.log(["Moving to oldstable-proposed-updates", pkg.changes_file]);
+
+ Upload.dump_vars(Cnf["Dir::Queue::OldProposedUpdates"]);
+ move_to_dir(Cnf["Dir::Queue::OldProposedUpdates"])
+
+ # Check for override disparities
+ Upload.Subst["__SUMMARY__"] = summary;
+ Upload.check_override();
+
+################################################################################
+
def is_byhand ():
for file in files.keys():
if files[file].has_key("byhand"):
(hint: http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=ftp.debian.org&include=woody)
o Update version number in README, README.html and dists/README (ftp-master only)
o Update the 'Debian<n>.<n>r<n>' symlink in dists/
-o Clean up dists/ChangeLog (add header, basically)
-o Update version fields in dak.conf[-non-US]
+o Clean up dists/stable/ChangeLog (add header, basically)
+o Update version fields in dak.conf
o Update fields in suite table in postgresql (see below)
-o Comment out "Untouchable" in dak.conf[-non-US]
+o Comment out "Untouchable" in dak.conf
o Run 'dak make-suite-file-list -s stable'
-o Run apt-ftparchive generate apt.conf.stable[-non-US]
+o Run apt-ftparchive generate apt.conf.stable
o Run 'dak generate-releases stable' ** FIXME: requires apt.conf.stable stanza for stable in apt.conf
** FIXME: must be run as dak
-o Uncomment "Untouchable" in dak.conf[-non-US]
+o Uncomment "Untouchable" in dak.conf
Yes, this sucks and more of it should be automated.