diff options
Diffstat (limited to 'tor.spec.in')
-rw-r--r-- | tor.spec.in | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/tor.spec.in b/tor.spec.in index 4eb0eea35d..44f39b0f60 100644 --- a/tor.spec.in +++ b/tor.spec.in @@ -6,7 +6,7 @@ # This should be incremented whenever the spec file changes, but # can drop back to zero at a new Tor version -%define specver 1 +%define specver 2 ## Things users may want to change # @@ -20,14 +20,43 @@ # including any "pre<x>" or "rc<y>" suffix. This gets massaged to # create the RPM version number, in a way that depends on the Tor # numbering scheme. -%define native_version @VERSION@ +%define native_version @VERSION@ # Massage the version so that pre-releases will be treated as earlier # than release candidates which will be treated as earlier than released -# versions... while making as few confusing changes to the standard -# release naming as possible. -# XXXX009 Execept that handling cvs breaks this. -%define version %(echo %{native_version} | sed -e 's/-cvs/.cvs/' -e 's/pre/.pre./' -e 's/rc/.rc./' -e 's/([0-9])$/\1.release/') +# versions. +# +# We do this as follows: +# - If the version number has no "pre", "cvs", or "rc", we let it pass. +# - Otherwise, we mangle it heavily: +# * To make 0.0.Xpre come after 0.0.{X-1}* but before 0.0.X, we prepend +# 0.0.{X-1}.99 to the version. +# * We replace pre with .pre. and rc with .rc. +# * We replace -cvs with .cvs, and lack of -cvs with .release. +# +# Note what this scheme will break if we ever use 0 as a last digit for a +# Tor version: so don't do that. + +%define is_dev_version %(echo %{native_version} | grep 'cvs\\|pre\\|rc' > /dev/null && echo 1 || echo 0) + +%if %{is_dev_version} + +# The 0.0.X.pre.1.cvs part. +%define safe_native_version %(echo %{native_version} | sed -e 's/-cvs/.cvs/' -e 's/pre/.pre./' -e 's/rc/.rc./' -e 's/\\([0-9]\\)$/\\1.release/') +# The 0.0.X part -- the version we are leading up to. +%define stub_version %(echo %{native_version} | sed -e 's/-cvs//' -e 's/pre.*//' -e 's/rc.*//') +# The 0.0 part +%define stub_start %(echo %{stub_version} | sed -e 's/\\.[0-9]*$//') +# The X part. +%define stub_last %(echo %{stub_version} | sed -e 's/.*\\.\\([0-9]*\\)$/\\1/') +# The {X-1} part. +%define stub_newlast %(expr %{stub_last} - 1) +# The actual version: 0.0.{X-1}.99.0.0.X.pre.1.cvs +%define version %{stub_start}.%{stub_newlast}.99.%{safe_native_version} + +%else +%define version %{native_version} +%endif ## Release and OS identification song and dance # |