On 08/14/2019 11:01 PM, drugg...@apache.org wrote:
> Author: druggeri
> Date: Wed Aug 14 21:01:56 2019
> New Revision: 1865191
> 
> URL: http://svn.apache.org/viewvc?rev=1865191&view=rev
> Log:
> Try to be more accomodating
> 
> Modified:
>     httpd/site/trunk/tools/announce.sh
> 
> Modified: httpd/site/trunk/tools/announce.sh
> URL: 
> http://svn.apache.org/viewvc/httpd/site/trunk/tools/announce.sh?rev=1865191&r1=1865190&r2=1865191&view=diff
> ==============================================================================
> --- httpd/site/trunk/tools/announce.sh (original)
> +++ httpd/site/trunk/tools/announce.sh Wed Aug 14 21:01:56 2019
> @@ -93,30 +93,29 @@ echo "Checking $dir..."
>    #Flip the bit
>    is_security_release=1
>  
> -  #If this is in the section not-yet-ready for announce, apply the
> -  # patch before moving on to announcement generation
> -  if echo "$SHORT_STATUS" | sed -n '/CHANGES READY FOR REPLACEMENT/,/##/p' | 
> grep "$dir" >/dev/null;then
> -    #Apply our CHANGES updates via CHANGES.diff or CHANGES
> -    #TODO: Verify that one and only one of the two options will be present 
> at all times
> -    if test -f "$private_base"/SECURITY/$dir/CHANGES.diff;then
> -      patch -p0 -d "$branch_base" < 
> "$private_base"/SECURITY/$dir/CHANGES.diff 
> -      patch -p0 -d "$release_base" < 
> "$private_base"/SECURITY/$dir/CHANGES.diff 
> -    elif test -f "$private_base"/SECURITY/$dir/CHANGES;then
> -      for UPDATE_FILE in "$branch_base"/CHANGES "$release_base"/CHANGES;do
> -        VERSION="$version" UPDATE_FILE="$UPDATE_FILE" STATUS_UPDATE=`cat 
> "$private_base"/SECURITY/$dir/CHANGES` perl -e '
> -          $ENV{STATUS_UPDATE} =~ s/^\s*$//g;
> -          die "Status update not found!" if !$ENV{STATUS_UPDATE};
> -          open(CHANGES, "$ENV{UPDATE_FILE}"); my @content=<CHANGES>; 
> close(CHANGES);
> -          foreach my $line (@content) {
> -            print "$line";
> -            if (!$added && $line =~ /Changes with Apache $ENV{VERSION}/i) {
> -              print "\n$ENV{STATUS_UPDATE}\n";
> -            }
> +  #Opportunisticly apply patches to CHANGES regardless of section (announce 
> ready vs changes ready)
> +  #because sometimes things are placed in announce ready even though they 
> haven't had the CHANGES fix applied
> +  if test -f "$private_base"/SECURITY/$dir/CHANGES.diff;then
> +    patch -p0 -d "$branch_base" < "$private_base"/SECURITY/$dir/CHANGES.diff 
> +    patch -p0 -d "$release_base" < 
> "$private_base"/SECURITY/$dir/CHANGES.diff 
> +  elif test -f "$private_base"/SECURITY/$dir/CHANGES;then
> +    for UPDATE_FILE in "$branch_base"/CHANGES "$release_base"/CHANGES;do
> +      VERSION="$version" UPDATE_FILE="$UPDATE_FILE" STATUS_UPDATE=`cat 
> "$private_base"/SECURITY/$dir/CHANGES` perl -e '
> +        $ENV{STATUS_UPDATE} =~ s/^\s*$//g;
> +        die "Status update not found!" if !$ENV{STATUS_UPDATE};
> +        open(CHANGES, "$ENV{UPDATE_FILE}"); my @content=<CHANGES>; 
> close(CHANGES);
> +        foreach my $line (@content) {
> +          print "$line";
> +          if (!$added && $line =~ /Changes with Apache $ENV{VERSION}/i) {

What is the purpose of the $added variable?

> +            print "\n$ENV{STATUS_UPDATE}\n";
>            }
> -        ' > "$scratch"/tmp_status
> -        mv "$scratch"/tmp_status "$UPDATE_FILE"
> -      done
> -    else
> +        }
> +      ' > "$scratch"/tmp_status
> +      mv "$scratch"/tmp_status "$UPDATE_FILE"
> +    done
> +  else
> +    #Fail if this is in the changes ready section, but we didn't find a 
> change
> +    if echo "$SHORT_STATUS" | sed -n '/CHANGES READY FOR REPLACEMENT/,/##/p' 
> | grep "$dir" >/dev/null;then
>        echo "Missing CHANGES.diff or CHANGES file for $dir"
>        exit 1
>      fi
> 

Regards

RĂ¼diger

Reply via email to