From 2906fae0f13c79d696bc01a2c3de0854798fd9d6 Mon Sep 17 00:00:00 2001 From: dormando Date: Mon, 2 Nov 2009 01:30:28 -0800 Subject: [PATCH] Make autoversioning/spec gen work better. issue #98 is about how our specfiles for rc's aren't upgradeable. Now they should be. --- autogen.sh | 2 +- memcached.spec.in | 11 +++++---- version.pl | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 5 deletions(-) create mode 100755 version.pl diff --git a/autogen.sh b/autogen.sh index 3db980146d..6559e9eff5 100755 --- a/autogen.sh +++ b/autogen.sh @@ -8,7 +8,7 @@ # # Get the initial version. -sh version.sh +perl version.pl echo "aclocal..." ACLOCAL=`which aclocal-1.10 || which aclocal-1.9 || which aclocal19 || which aclocal-1.7 || which aclocal17 || which aclocal-1.5 || which aclocal15 || which aclocal || exit 1` diff --git a/memcached.spec.in b/memcached.spec.in index 4563c53f5c..f473d8fa3a 100644 --- a/memcached.spec.in +++ b/memcached.spec.in @@ -1,12 +1,12 @@ Name: memcached Version: @VERSION@ -Release: 1%{?dist} +Release: @RELEASE@%{?dist} Summary: High Performance, Distributed Memory Object Cache Group: System Environment/Daemons License: BSD URL: http://www.danga.com/memcached/ -Source0: http://www.danga.com/memcached/dist/%{name}-%{version}.tar.gz +Source0: http://memcached.googlecode.com/files/%{name}-@FULLVERSION@.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libevent-devel @@ -23,11 +23,11 @@ system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. %prep -%setup -q +%setup -q -n %{name}-@FULLVERSION@ %build -%configure --enable-threads +%configure make %{?_smp_mflags} @@ -94,6 +94,9 @@ exit 0 %{_includedir}/memcached %changelog +* Mon Nov 2 2009 Dormando - 1.4.3-1 +- Fix autogen more. + * Sat Aug 29 2009 Dustin Sallings - 1.4.1-1 - Autogenerate the version number from tags. diff --git a/version.pl b/version.pl new file mode 100755 index 0000000000..6f08fafca0 --- /dev/null +++ b/version.pl @@ -0,0 +1,59 @@ +#!/usr/bin/perl +# If you think this is stupid/overkill, blame dormando + +use warnings; +use strict; + +my $version = `git describe`; +chomp $version; +# Test the various versions. +#my $version = 'foob'; +#my $version = '1.4.2-30-gf966dba'; +#my $version = '1.4.3-rc1'; +#my $version = '1.4.3'; +unless ($version =~ m/^\d+\.\d+\.\d+/) { + write_file('version.m4', "m4_define([VERSION_NUMBER], [UNKNOWN])\n"); + exit; +} + +$version =~ s/-/_/g; +write_file('version.m4', "m4_define([VERSION_NUMBER], [$version])\n"); +my ($VERSION, $FULLVERSION, $RELEASE); + +if ($version =~ m/^(\d+\.\d+\.\d+)_rc(\d+)$/) { + $VERSION = $1; + $FULLVERSION = $version; + $RELEASE = '0.1.rc' . $2; +} elsif ($version =~ m/^(\d+\.\d+\.\d+)_(.+)$/) { + $VERSION = $1; + $FULLVERSION = $version; + $RELEASE = '1.' . $2; +} elsif ($version =~ m/^(\d+\.\d+\.\d+)$/) { + $VERSION = $1; + $FULLVERSION = $version; + $RELEASE = '1'; +} + +my $spec = read_file('memcached.spec.in'); +$spec =~ s/\@VERSION\@/$VERSION/gm; +$spec =~ s/\@FULLVERSION\@/$FULLVERSION/gm; +$spec =~ s/\@RELEASE\@/$RELEASE/gm; + +write_file('memcached.spec', $spec); + +sub write_file { + my $file = shift; + my $data = shift; + open(my $fh, "> $file") or die "Can't open $file: $!"; + print $fh $data; + close($fh); +} + +sub read_file { + my $file = shift; + local $/ = undef; + open(my $fh, "< $file") or die "Can't open $file: $!"; + my $data = <$fh>; + close($fh); + return $data; +}