Permalink
Browse files

Make autoversioning/spec gen work better.

issue #98 is about how our specfiles for rc's aren't upgradeable.
Now they should be.
  • Loading branch information...
1 parent f966dba commit 2906fae0f13c79d696bc01a2c3de0854798fd9d6 @dormando dormando committed with dustin Nov 2, 2009
Showing with 67 additions and 5 deletions.
  1. +1 −1 autogen.sh
  2. +7 −4 memcached.spec.in
  3. +59 −0 version.pl
View
2 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`
View
11 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 <dormando@rydia.net> - 1.4.3-1
+- Fix autogen more.
+
* Sat Aug 29 2009 Dustin Sallings <dustin@spy.net> - 1.4.1-1
- Autogenerate the version number from tags.
View
59 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;
+}

0 comments on commit 2906fae

Please sign in to comment.