Blob Blame History Raw
%global debug_package   %{nil}
%global import_path     github.com/influxdb/influxdb
%global commit          67f9869b82672b62c1200adaf21179565c5b75c3
%global shortcommit     %(c=%{commit}; echo ${c:0:7})

Name:           golang-github-influxdb-influxdb
Version:        0.8.0
Release:        0.3.rc4.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
ExclusiveArch:  %{ix86} x86_64 %{arm}

%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)
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)
Summary:        %{summary}
Provides:       golang(%{import_path}/admin) = %{version}-%{release}
Provides:       golang(%{import_path}/api) = %{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}/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,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
%dir %{gopath}/src/%{import_path}/client
%{gopath}/src/%{import_path}/client/*

%files datastore
%doc CHANGELOG.md LICENSE README.md Makefile.in Gemfile
%dir %{gopath}/src/%{import_path}/datastore
%{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}
%dir %{gopath}/src/%{import_path}/admin
%dir %{gopath}/src/%{import_path}/api
%dir %{gopath}/src/%{import_path}/checkers
%dir %{gopath}/src/%{import_path}/cluster
%dir %{gopath}/src/%{import_path}/common
%dir %{gopath}/src/%{import_path}/configuration
%dir %{gopath}/src/%{import_path}/coordinator
%dir %{gopath}/src/%{import_path}/daemon
%dir %{gopath}/src/%{import_path}/engine
%dir %{gopath}/src/%{import_path}/integration
%dir %{gopath}/src/%{import_path}/metastore
%dir %{gopath}/src/%{import_path}/parser
%dir %{gopath}/src/%{import_path}/protocol
%dir %{gopath}/src/%{import_path}/tools
%dir %{gopath}/src/%{import_path}/wal
%{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}/tools/*
%{gopath}/src/%{import_path}/wal/*

%changelog
* 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.