summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2009-11-02 01:30:28 -0800
committerDustin Sallings <dustin@spy.net>2009-11-02 02:42:55 -0800
commit2906fae0f13c79d696bc01a2c3de0854798fd9d6 (patch)
treee945ecc11308c139c44ed8f7e97de551dff5bdfa
parentf966dbad8c56d4fcfd6cbb51da5db91c6a22e91f (diff)
downloadmemcached-2906fae0f13c79d696bc01a2c3de0854798fd9d6.tar.gz
Make autoversioning/spec gen work better.
issue #98 is about how our specfiles for rc's aren't upgradeable. Now they should be.
-rwxr-xr-xautogen.sh2
-rw-r--r--memcached.spec.in11
-rwxr-xr-xversion.pl59
3 files changed, 67 insertions, 5 deletions
diff --git a/autogen.sh b/autogen.sh
index 3db9801..6559e9e 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 4563c53..f473d8f 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 <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.
diff --git a/version.pl b/version.pl
new file mode 100755
index 0000000..6f08faf
--- /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;
+}