X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=blobdiff_plain;f=dak%2Fnew_security_install.py;h=7d4603d5811ebcc21b3dc5b24e9f3a4cb77ba5eb;hp=2dd2820f2b8fee4d715fec1e703eb9d1f0ea9600;hb=0d69fff35ef45fda573467873ae2f01ca1954650;hpb=a4eef13f8450fe8b109f4fafc074d50f0fda0a7c diff --git a/dak/new_security_install.py b/dak/new_security_install.py index 2dd2820f..7d4603d5 100755 --- a/dak/new_security_install.py +++ b/dak/new_security_install.py @@ -86,34 +86,32 @@ def sudo(arg, fn, exit): def do_Approve(): sudo("A", _do_Approve, True) def _do_Approve(): - # 1. use process-policy to go through the COMMENTS dir - spawn("dak process-policy embargo") - spawn("dak process-policy disembargo") - newstage=get_policy_queue('newstage') - - # 2. sync the stuff to ftpmaster - print "Sync stuff for upload to ftpmaster" - spawn("rsync -a -q %s/. /srv/queued/ftpmaster/." % (newstage.path)) - - # 3. Now run process-upload in the newstage dir - print "Now put it into the security archive" - spawn("dak process-upload -a -d %s" % (newstage.path)) - - # 4. Run all the steps that are needed to publish the changed archive - print "Domination" - spawn("dak dominate") - print "Generating filelist for apt-ftparchive" - spawn("dak generate-filelist") - print "Updating Packages and Sources files... This may take a while, be patient" - spawn("/srv/security-master.debian.org/dak/config/debian-security/map.sh") - spawn("apt-ftparchive generate %s" % (utils.which_apt_conf_file())) - print "Updating Release files..." - spawn("dak generate-releases") - print "Triggering security mirrors... (this may take a while)" - spawn("/srv/security-master.debian.org/dak/config/debian-security/make-mirror.sh") - spawn("sudo -u archvsync -H /home/archvsync/signal_security") - print "Triggering metadata export for packages.d.o and other consumers" - spawn("/srv/security-master.debian.org/dak/config/debian-security/export.sh") + print "Locking unchecked" + lockfile='/srv/security-master.debian.org/lock/unchecked.lock' + spawn("lockfile -r42 {0}".format(lockfile)) + + try: + # 1. Install accepted packages + print "Installing accepted packages into security archive" + for queue in ("embargoed",): + spawn("dak process-policy {0}".format(queue)) + + # 3. Run all the steps that are needed to publish the changed archive + print "Domination" + spawn("dak dominate") + print "Updating Packages and Sources files... This may take a while, be patient" + spawn("/srv/security-master.debian.org/dak/config/debian-security/map.sh") + spawn("dak generate-packages-sources2 -a security") + print "Updating Release files..." + spawn("dak generate-releases -a security") + print "Triggering security mirrors... (this may take a while)" + spawn("/srv/security-master.debian.org/dak/config/debian-security/make-mirror.sh") + spawn("sudo -u archvsync -H /home/archvsync/signal_security") + print "Triggering metadata export for packages.d.o and other consumers" + spawn("/srv/security-master.debian.org/dak/config/debian-security/export.sh") + finally: + os.unlink(lockfile) + print "Lock released." ######################################################################## ######################################################################## @@ -133,9 +131,9 @@ def main(): if not cnf.has_key("Security::Options::%s" % (i)): cnf["Security::Options::%s" % (i)] = "" - changes_files = apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv) + changes_files = apt_pkg.parse_commandline(cnf.Cnf, Arguments, sys.argv) - Options = cnf.SubTree("Security::Options") + Options = cnf.subtree("Security::Options") if Options['Help']: usage() @@ -179,9 +177,11 @@ def main(): acceptfilename="%s/COMMENTS/ACCEPT.%s_%s" % (os.path.dirname(os.path.abspath(changes[0])), dbchange.source, version) acceptfiles[acceptfilename]=1 + print "Would create %s now and then go on to accept this package, if you allow me to." % (acceptfiles.keys()) if Options["No-Action"]: - print "Would create %s now and then go on to accept this package, but No-Action is set" % (acceptfiles.keys()) sys.exit(0) + else: + raw_input("Press Enter to continue") for acceptfilename in acceptfiles.keys(): accept_file = file(acceptfilename, "w")