You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by William A Rowe Jr <wr...@rowe-clan.net> on 2018/02/26 21:41:57 UTC

Re: svn commit: r1825219 - /httpd/site/trunk/tools/release.sh

My approach has been to skim the http://www.apache.org/dist/apr/ tree
for the version-sorted latest number. Your solution also seems sound.

But we should mention to dev@apr that we are counting on these behaviors :)

On Sat, Feb 24, 2018 at 5:43 AM, Daniel Ruggeri <DR...@primary.net> wrote:
> Just dropping a line to point this out and seek feedback since I know we have several folks on the APR project here as well.
>
> With this option, I assume the APR/APU download URL...
> * Is stable
> * Will always point out which version is best to use
> * Is updated along with the release process
>
> It's a bit clunky, but this method has worked for me for a long time in my own builds, so I figured I would share the recipe. The goal, of course, is to remove as much manual care and feeding of files needed to do a release. If any of the above assumptions are awful, I can revert or take a different tact.
>
> --
> Daniel Ruggeri
>
>> -----Original Message-----
>> From: druggeri@apache.org [mailto:druggeri@apache.org]
>> Sent: Saturday, February 24, 2018 5:39 AM
>> To: cvs@httpd.apache.org
>> Subject: svn commit: r1825219 - /httpd/site/trunk/tools/release.sh
>>
>> Author: druggeri
>> Date: Sat Feb 24 11:38:37 2018
>> New Revision: 1825219
>>
>> URL: http://svn.apache.org/viewvc?rev=1825219&view=rev
>> Log:
>> Add option to interrogate APX download URL for best version
>>
>> Modified:
>>     httpd/site/trunk/tools/release.sh
>>
>> Modified: httpd/site/trunk/tools/release.sh
>> URL:
>> http://svn.apache.org/viewvc/httpd/site/trunk/tools/release.sh?rev=18252
>> 19&r1=1825218&r2=1825219&view=diff
>> ==========================================================
>> ====================
>> --- httpd/site/trunk/tools/release.sh (original)
>> +++ httpd/site/trunk/tools/release.sh Sat Feb 24 11:38:37 2018
>> @@ -3,7 +3,8 @@
>>  # release.sh : build a release tarball
>>  #
>>  # USAGE: release.sh [--security] [--tag TAG POSTFIX] [--postfix POSTFIX]
>> -#                   [--rev REV] [--europe] PROJECT VERSION [SIGNING-USER]
>> +#                   [--rev REV] [--europe] [--latestapxxx]
>> +#                   PROJECT VERSION [SIGNING-USER]
>>  #
>>  #   The project is either 'httpd-2.2', 'httpd-2.4, httpd-2.5'
>>  #
>> @@ -13,6 +14,10 @@
>>  #   directory). Next, it will run the appropriate commands to prepare and
>>  #   construct the tarball. The subdirectory will be cleaned up upon exit.
>>  #
>> +#   If latestapxxx is specified, the apr/apu download URL is checked with
>> +#   curl to determine the best available version. This assumes access to
>> +#   the Internet is available directly or via proxy (as used by curl)
>> +#
>>  #   The "signing user" is the name of the key that you'll be signing the
>>  #   release with.
>>  #
>> @@ -59,6 +64,21 @@ do
>>        shift
>>        ;;
>>
>> +    --latestapxxx)
>> +      get_latest_aprxxx=1
>> +      shift
>> +
>> +      if ! curl --version >/dev/null 2>&1;then
>> +        echo "ERROR: curl must be available to use latestapxxx option."
>> +        exit 1
>> +      fi
>> +
>> +      if test "`echo 'test-1.2.3' | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+'`" !=
>> "1.2.3";then
>> +        echo "ERROR: your system must support 'grep -o' to use latestapxxx
>> option."
>> +        exit 1
>> +      fi
>> +      ;;
>> +
>>      --*)
>>       echo "Unknown option '$1'" >&2
>>       echo "USAGE: $0 [--security] [--tag TAG POSTFIX] [--postfix POSTFIX] [--
>> rev REV] [--europe] PROJECT VERSION [SIGNING-USER]" >&2
>> @@ -137,6 +157,29 @@ case "$1" in
>>      exit 1
>>  esac
>>
>> +if test $get_latest_aprxxx; then
>> +  download_url="https://apr.apache.org/download.cgi"
>> +  echo "Determining latest APR and APU versions from $download_url..."
>> +
>> +  apr_tag=''
>> +  apr_tag=`curl -s $download_url | grep 'APR [0-9].*is the best available
>> version' | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+'`
>> +  if test -z "$apr_tag"; then
>> +    echo "ERROR: Failed to determine latest APR version from
>> $download_url"
>> +    exit 1
>> +  else
>> +    echo "  APR: $apr_tag"
>> +  fi
>> +
>> +  apu_tag=''
>> +  apu_tag=`curl -s $download_url | grep 'APR-util [0-9].*is the best available
>> version' | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+'`
>> +  if test -z "$apu_tag"; then
>> +    echo "ERROR: Failed to determine latest APR version from
>> $download_url"
>> +    exit 1
>> +  else
>> +    echo "  APU: $apu_tag"
>> +  fi
>> +fi
>> +
>>  major="`echo ${version} | sed 's/\..*$//'`"
>>  minor="`echo ${version} | sed 's/^[0-9]*\.\([0-9]*\)\..*$/\1/'`"
>>  patch="`echo ${version} | sed 's/^.*\.//'`"
>>
>
>