X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fqueue_install.py;h=a9c94ae86295fcf11341db29519dd7a6a792a517;hb=a165a623caa27f8b3cbcb83eb442f1f196569f1e;hp=d53887863176972b54e7fe652eac70dbc429bb5e;hpb=117f3acf50f2d38c616f76bd8274248d849c3fd5;p=dak.git diff --git a/daklib/queue_install.py b/daklib/queue_install.py index d5388786..a9c94ae8 100755 --- a/daklib/queue_install.py +++ b/daklib/queue_install.py @@ -26,6 +26,7 @@ Utility functions for process-upload # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import os +from shutil import copyfile from daklib import utils from daklib.dbconn import * @@ -87,6 +88,12 @@ def is_unembargo(u): if not get_policy_queue("disembargo"): return False + # If we already are in newstage, then it means this just got passed through and accepted + # by a security team member. Don't try to accept it for disembargo again + dbc = get_dbchange(u.pkg.changes_file, session) + if dbc and dbc.in_queue.queue_name in [ 'newstage' ]: + return False + q = session.execute("SELECT package FROM disembargo WHERE package = :source AND version = :version", {'source': u.pkg.changes["source"], 'version': u.pkg.changes["version"]}) @@ -123,14 +130,21 @@ def do_unembargo(u, summary, short_summary, chg, session=None): suite = get_suite(suite_name, session) for q in suite.copy_queues: for f in u.pkg.files.keys(): - os.symlink(os.path.join(polq.path, f), os.path.join(q.path, f)) + copyfile(os.path.join(polq.path, f), os.path.join(q.path, f)) # ################################################################################# # def is_embargo(u): # if we are the security archive, we always have a embargo queue and its the # last in line, so if that exists, return true + # Of course do not return true when we accept from out of newstage, as that means + # it just left embargo and we want it in the archive if get_policy_queue('embargo'): + session = DBConn().session() + dbc = get_dbchange(u.pkg.changes_file, session) + if dbc and dbc.in_queue.queue_name in [ 'newstage' ]: + return False + return True def do_embargo(u, summary, short_summary, chg, session=None): @@ -142,7 +156,7 @@ def do_embargo(u, summary, short_summary, chg, session=None): suite = get_suite(suite_name, session) for q in suite.copy_queues: for f in u.pkg.files.keys(): - os.symlink(os.path.join(polq.path, f), os.path.join(q.path, f)) + copyfile(os.path.join(polq.path, f), os.path.join(q.path, f)) ################################################################################