Blob Blame History Raw
%global provider        github
%global provider_tld    com
%global project         influxdb
%global repo            influxdb
%global import_path     %{provider}.%{provider_tld}/%{project}/%{repo}
%global debug_package   %{nil}
%global commit          9485e99796c53635fbf179b3e973c363937de00b
%global shortcommit     %(c=%{commit}; echo ${c:0:7})

Name:           golang-github-influxdb-influxdb
Version:        0.8.5
Release:        0.1.git%{shortcommit}%{?dist}
Summary:        Scalable datastore for metrics, events, and real-time analytics
License:        MIT
URL:            http://godoc.org/%{import_path}
Source0:        https://%{import_path}/archive/%{commit}/influxdb-%{shortcommit}.tar.gz
%if 0%{?fedora} >= 19 || 0%{?rhel} >= 7
BuildArch:      noarch
%else
ExclusiveArch:  %{ix86} x86_64 %{arm}
%endif

%description
InfluxDB is an open source distributed time series database with no external
dependencies. It's useful for recording metrics, events, and performing
analytics.

It has a built-in HTTP API so you don't have to write any server side code to
get up and running.

InfluxDB is designed to be scalable, simple to install and manage, and fast to
get data in and out.

It aims to answer queries in real-time. That means every data point is indexed
as it comes in and is immediately available in queries that should return
in < 100ms.

%package datastore
BuildRequires:  golang >= 1.2.1-3
BuildRequires:  golang(code.google.com/p/goprotobuf/proto)
BuildRequires:  golang(code.google.com/p/log4go)
BuildRequires:  golang(github.com/BurntSushi/toml)
BuildRequires:  golang(github.com/influxdb/gomdb)
BuildRequires:  golang(github.com/jmhodges/levigo)
#github.com/influxdb/rocksdb rocksdb not packaged in Fedora
#github.com/influxdb/hyperleveldb-go hyperleveldb not packages in Fedora
#launchpad.net/gocheck for tests but there is no check so far
Requires:       golang >= 1.2.1-3
Requires:  golang(code.google.com/p/goprotobuf/proto)
Requires:  golang(code.google.com/p/log4go)
Requires:  golang(github.com/BurntSushi/toml)
Requires:  golang(github.com/influxdb/gomdb)
Requires:  golang(github.com/jmhodges/levigo)

Summary:        Golang datastore libs for influxdb
Provides:       golang(%{import_path}/datastore) = %{version}-%{release}
Provides:       golang(%{import_path}/datastore/storage) = %{version}-%{release}

%description datastore
%{%description}

This package contains datastore part of influxdb.
Hyperleveldb and rocksdb are not included is they are not packaged in Fedora.

%package client
BuildRequires:  golang >= 1.2.1-3
Requires:       golang >= 1.2.1-3
Summary:        Golang client libs for influxdb
Provides:       golang(%{import_path}/client) = %{version}-%{release}

%description client
%{%description}

This package contains client part of influxdb.

%package devel
BuildRequires:  golang >= 1.2.1-3
#admin,api,checkers,cluster,common,configuration,engine,integration,parser,protocol,wal: launchpad.net/gocheck
#cluster: code.google.com/p/go.crypto/bcrypt
BuildRequires:  golang(code.google.com/p/log4go)
BuildRequires:  golang(github.com/bmizerany/pat)
BuildRequires:  golang(github.com/influxdb/go-cache)
BuildRequires:  golang(github.com/BurntSushi/toml)
BuildRequires:  golang(github.com/jmhodges/levigo)
BuildRequires:  golang(code.google.com/p/goprotobuf/proto)
BuildRequires:  golang(github.com/stretchr/testify/assert)
BuildRequires:  golang(github.com/stretchr/testify/mock)
BuildRequires:  golang(github.com/rakyll/statik)
BuildRequires:  golang(github.com/dgnorton/goback)
BuildRequires:  golang(github.com/kimor79/gollectd)
Requires:       golang >= 1.2.1-3
Requires:       golang(%{import_path}/client) = %{version}-%{release}
Requires:       golang(%{import_path}/datastore) = %{version}-%{release}
Requires:       golang(code.google.com/p/log4go)
Requires:       golang(github.com/bmizerany/pat)
Requires:       golang(github.com/influxdb/go-cache)
Requires:       golang(github.com/BurntSushi/toml)
Requires:       golang(github.com/jmhodges/levigo)
Requires:       golang(code.google.com/p/goprotobuf/proto)
Requires:       golang(github.com/stretchr/testify/assert)
Requires:       golang(github.com/stretchr/testify/mock)
Requires:       golang(github.com/rakyll/statik)
Requires:       golang(github.com/dgnorton/goback)
Requires:       golang(github.com/kimor79/gollectd)
Summary:        %{summary}
Provides:       golang(%{import_path}/admin) = %{version}-%{release}
Provides:       golang(%{import_path}/api) = %{version}-%{release}
Provides:       golang(%{import_path}/api/collectd) = %{version}-%{release}
Provides:       golang(%{import_path}/api/graphite) = %{version}-%{release}
Provides:       golang(%{import_path}/api/http) = %{version}-%{release}
Provides:       golang(%{import_path}/api/udp) = %{version}-%{release}
Provides:       golang(%{import_path}/checkers) = %{version}-%{release}
Provides:       golang(%{import_path}/cluster) = %{version}-%{release}
Provides:       golang(%{import_path}/common) = %{version}-%{release}
Provides:       golang(%{import_path}/configuration) = %{version}-%{release}
Provides:       golang(%{import_path}/coordinator) = %{version}-%{release}
Provides:       golang(%{import_path}/daemon) = %{version}-%{release}
Provides:       golang(%{import_path}/engine) = %{version}-%{release}
Provides:       golang(%{import_path}/integration) = %{version}-%{release}
Provides:       golang(%{import_path}/integration/helpers) = %{version}-%{release}
Provides:       golang(%{import_path}/metastore) = %{version}-%{release}
Provides:       golang(%{import_path}/parser) = %{version}-%{release}
Provides:       golang(%{import_path}/protocol) = %{version}-%{release}
Provides:       golang(%{import_path}/server) = %{version}-%{release}
Provides:       golang(%{import_path}/tools/benchmark-multi-series) = %{version}-%{release}
Provides:       golang(%{import_path}/tools/benchmark-storage) = %{version}-%{release}
Provides:       golang(%{import_path}/tools/benchmark) = %{version}-%{release}
Provides:       golang(%{import_path}/wal) = %{version}-%{release}

%description devel
InfluxDB is an open source distributed time series database with no external
dependencies. It's useful for recording metrics, events, and performing
analytics.

It has a built-in HTTP API so you don't have to write any server side code to
get up and running.

InfluxDB is designed to be scalable, simple to install and manage, and fast to
get data in and out.

It aims to answer queries in real-time. That means every data point is indexed
as it comes in and is immediately available in queries that should return
in < 100ms.

%prep
%setup -q -n influxdb-%{commit}

%build

%install
install -d %{buildroot}%{gopath}/src/%{import_path}
cp -rpav {admin,api,checkers,client,cluster,common,configuration,coordinator,daemon,datastore,engine,integration,metastore,parser,protocol,server,tools,wal}  %{buildroot}%{gopath}/src/%{import_path}/

%check
# tests are skiped as there are unresolved dependencies

%files client
%doc CHANGELOG.md LICENSE README.md Makefile.in Gemfile
%{gopath}/src/%{import_path}/client

%files datastore
%doc CHANGELOG.md LICENSE README.md Makefile.in Gemfile
%{gopath}/src/%{import_path}/datastore

%files devel
%doc CHANGELOG.md LICENSE README.md Makefile.in Gemfile
%dir %{gopath}/src/github.com/influxdb
%dir %{gopath}/src/%{import_path}
%{gopath}/src/%{import_path}/admin
%{gopath}/src/%{import_path}/api
%{gopath}/src/%{import_path}/checkers
%{gopath}/src/%{import_path}/cluster
%{gopath}/src/%{import_path}/common
%{gopath}/src/%{import_path}/configuration
%{gopath}/src/%{import_path}/coordinator
%{gopath}/src/%{import_path}/daemon
%{gopath}/src/%{import_path}/engine
%{gopath}/src/%{import_path}/integration
%{gopath}/src/%{import_path}/metastore
%{gopath}/src/%{import_path}/parser
%{gopath}/src/%{import_path}/protocol
%{gopath}/src/%{import_path}/server
%{gopath}/src/%{import_path}/tools
%{gopath}/src/%{import_path}/wal

%changelog
* Tue Jan 06 2015 jchaloup <jchaloup@redhat.com> - 0.8.5-0.1.git9485e99
- Update to 0.8.5
  resolves: #1161618

* Sun Nov 09 2014 jchaloup <jchaloup@redhat.com> - 0.8.0-0.5.rc4.git67f9869
- Choose the correct architecture
  related: #1141892
- Bump to upstream b611d020cd78886232cfa6c2ea0606b49d307ed2
  resolves: #1161618

* Thu Oct 09 2014 jchaloup <jchaloup@redhat.com> - 0.8.0-0.3.rc4.git67f9869
- Add subpackages (client for kubernetes, datastore for databases, devel for all)
- Add dependencies (not all of them yet)
- Test still missing (missing deps and databases in Fedora), at least add them partionally later

* Mon Sep 29 2014 Lokesh Mandvekar <lsm5@fedoraproject.org> - 0.8.0-0.2.rc4.git67f9869
- Resolves: rhbz#1141892 - initial package upload
- preserve timestamps of source copied
- gopath is provided by the golang rpm

* Wed Aug 06 2014 Adam Miller <maxamillion@fedoraproject.org> - 0.8.0-0.1.rc4.git67f9869
- First package for Fedora.