From 4edc3033283970d44f9b8d6d9f0db480a3ebe703 Mon Sep 17 00:00:00 2001 From: Ansgar Burchardt Date: Wed, 18 Nov 2015 14:33:30 +0100 Subject: [PATCH] debianqueued: No early notifications debianqueued used to send early warnings about invalid uploads, but relied on being able to (ab)use the setgid bit on the .changes file to keep track for which uploads it has already complained. If it was unable to set the setgid bit, it would send mails every run. This change removes the early warnings. A mail will only be sent when debianqueued gives up on the upload. --- tools/debianqueued-0.9/debianqueued | 36 +++-------------------------- 1 file changed, 3 insertions(+), 33 deletions(-) diff --git a/tools/debianqueued-0.9/debianqueued b/tools/debianqueued-0.9/debianqueued index c877aa5c..7b025518 100755 --- a/tools/debianqueued-0.9/debianqueued +++ b/tools/debianqueued-0.9/debianqueued @@ -622,7 +622,7 @@ sub process_changes($\@) { my ( $pgplines, @files, @filenames, @changes_stats, $failure_file, $retries, $last_retry, $upload_time, - $file, $do_report, $ls_l, $problems_reported, + $file, $do_report, $ls_l, $errs, $pkgname, $signator, $extralines ); local (*CHANGES); @@ -829,16 +829,6 @@ outer_loop: while () { } ## end for $file (@files) $do_report = ( time - $upload_time ) > $conf::problem_report_timeout; - $problems_reported = $changes_stats[ST_MODE] & S_ISGID; - - # if any of the files is newer than the .changes' ctime (the time - # we sent a report and set the sticky bit), send new problem reports - if ( $problems_reported && $changes_stats[ST_CTIME] < $upload_time ) { - $problems_reported = 0; - chmod +( $changes_stats[ST_MODE] &= ~S_ISGID ), $changes; - debug("upload_time>changes-ctime => resetting problems reported"); - } - debug("do_report=$do_report problems_reported=$problems_reported"); # now check all files for correct size and md5 sum for $file (@files) { @@ -847,12 +837,7 @@ outer_loop: while () { # could be an upload that isn't complete yet, be quiet, # but don't process the file; - msg( "log,mail", "$filename doesn't exist\n" ) - if $do_report && !$problems_reported; - msg( "log", "$filename doesn't exist (ignored for now)\n" ) - if !$do_report; - msg( "log", "$filename doesn't exist (already reported)\n" ) - if $problems_reported; + msg( "log", "$filename doesn't exist (ignored for now)\n" ); ++$errs; } elsif ( $file->{"stats"}->[ST_SIZE] < $file->{"size"} && !$do_report ) @@ -889,22 +874,7 @@ outer_loop: while () { msg( "log,mail", "All files it mentions are also removed:\n" ); msg( "log,mail", " ", join( ", ", @filenames ), "\n" ); rm( $changes, @filenames, $failure_file ); - } elsif ( $do_report && !$problems_reported ) { - - # otherwise, send a problem report, if not done already - msg( - "mail", - "Due to the errors above, the .changes file couldn't ", - "be processed.\n", - "Please fix the problems for the upload to happen.\n" - ); - - # remember we already have sent a mail regarding this file - debug("Sending problem report mail and setting SGID bit"); - my $mode = $changes_stats[ST_MODE] |= S_ISGID; - msg( "log", "chmod failed: $!" ) - if ( chmod( $mode, $changes ) != 1 ); - } ## end elsif ( $do_report && !$problems_reported) + } # else: be quiet -- 2.39.2