File influxdb.spec of Package influxdb

%if 0%{?rhel} >= 7
%global systemd 1
%else
%global systemd 0
%endif

%global debug_package %{nil}

Name:           influxdb
Summary:        Scalable datastore for metrics, events, and real-time analytics
License:        MIT
Group:          Productivity/Databases/Servers
Version:        1.4.2
Release:        1%{?dist}
Url:            https://github.com/influxdata/influxdb
Source:         %{name}-%{version}.tar.xz
Source1:        influxdb.service
Source2:        influxdb.tmpfiles
Source3:        influxdb.init
Source4:        Compability_note.txt
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  asciidoc
BuildRequires:  xmlto
BuildRequires:  fdupes
BuildRequires:  go >= 1.9
Requires(pre):  shadow-utils
%if 0%{?systemd}
Requires(post):     systemd
Requires(preun):    systemd
Requires(postun):   systemd
%else
Requires:           dpkg
Requires(post):     chkconfig
Requires(preun):    chkconfig
Requires(preun):    initscripts
%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.

%prep
%setup -q -n %{name}-%{version}

# Disable phone-home to usage.influxdata.com
sed -i 's/.*reporting-disabled = false/reporting-disabled = true/' etc/config.sample.toml

# Disable all log
sed -i 's/.*trace-logging-enabled = true/  trace-logging-enabled = false/' etc/config.sample.toml
sed -i 's/.*query-log-enabled = true/  query-log-enabled = false/' etc/config.sample.toml
sed -i 's/.*log-enabled = true/  log-enabled = false/' etc/config.sample.toml

%build
export GOPATH=%{_builddir}/go
%{__install} -d $GOPATH/src/github.com/influxdata/influxdb
%{__cp} -rT $(pwd) $GOPATH/src/github.com/influxdata/influxdb

go build -v -p 4 -x -buildmode=pie -ldflags="-X main.version=%{version}" github.com/influxdata/influxdb/cmd/{influxd,influx,influx_inspect,influx_stress,influx_tsm,store}
go install -ldflags="-X main.version=%{version}" github.com/influxdata/influxdb/cmd/{influxd,influx,influx_inspect,influx_stress,influx_tsm,store}

make -C ./man build

%install
mkdir -p %{buildroot}%{_sysconfdir}/influxdb
install -D -m 644 etc/config.sample.toml %{buildroot}%{_sysconfdir}/influxdb/config.toml
mkdir -p %{buildroot}%{_localstatedir}/log/influxdb
mkdir -p %{buildroot}%{_localstatedir}/lib/influxdb
mkdir -p %{buildroot}%{_localstatedir}/lib/influxdb/{data,meta,hh,wal}
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_sbindir}

%if 0%{?systemd}
install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/influxdb.service
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcinfluxdb
install -D -m 0644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/influxdb.conf
%else
%{__install} -D -m 0755 %{S:3} %{buildroot}%{_initddir}/influxdb
%{__ln_s} -f %{_sysconfdir}/init.d/influxdb %{buildroot}%{_sbindir}/rcinfluxdb
mkdir -p %{buildroot}%{_localstatedir}/run/influxdb
%endif
%{__install} -D -m 0755 %{_builddir}/go/bin/* %{buildroot}%{_bindir}

# Warn about compatibility problems with previous version
mkdir -p %{buildroot}%{_localstatedir}/adm/update-messages/
cp -v %{SOURCE4} %{buildroot}%{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}

make -C ./man install DESTDIR=%{buildroot}%{_prefix}

%check
#%%gotest github.com/influxdata/influxdb

%pre
getent group influxdb >/dev/null || groupadd -r influxdb
getent passwd influxdb >/dev/null || useradd -r -g influxdb \
	-d %{_localstatedir}/lib/influxdb \
	-s /sbin/nologin \
	-c "user for InfluxDB database server" influxdb

%preun
%if 0%{?systemd}
%systemd_preun influxdb.service
%else
if [ "$1" = 0 ]; then
  /sbin/service influxdb stop >/dev/null 2>&1 || :
  /sbin/chkconfig --del influxdb
fi
%endif

%if 0%{?systemd}
%post
%tmpfiles_create /usr/lib/tmpfiles.d/influxdb.conf
%systemd_post influxdb.service
%else
/sbin/chkconfig --add influxdb
%endif

%postun
%if 0%{?systemd}
%systemd_postun_with_restart influxdb.service
%endif

%files
%defattr(-,root,root,-)
%doc LICENSE LICENSE_OF_DEPENDENCIES.md QUERIES.md README.md CHANGELOG.md
%dir %{_sysconfdir}/influxdb
%config %{_sysconfdir}/influxdb/config.toml
%{_bindir}/*
%{_sbindir}/rcinfluxdb
%if 0%{?systemd}
%{_unitdir}/influxdb.service
%dir %{_tmpfilesdir}
%{_tmpfilesdir}/influxdb.conf
%else
%{_initddir}/influxdb
%attr(0755, influxdb, influxdb) %dir %{_localstatedir}/run/influxdb
%endif
%attr(0755, influxdb, influxdb) %dir %{_localstatedir}/log/influxdb
%attr(0755, influxdb, influxdb) %dir %{_localstatedir}/lib/influxdb
%attr(0755, influxdb, influxdb) %dir %{_localstatedir}/lib/influxdb/meta
%attr(0755, influxdb, influxdb) %dir %{_localstatedir}/lib/influxdb/data
%attr(0755, influxdb, influxdb) %dir %{_localstatedir}/lib/influxdb/hh
%attr(0700, influxdb, influxdb) %dir %{_localstatedir}/lib/influxdb/wal
%{_mandir}/man1/influx.1.gz
%{_mandir}/man1/influx_inspect.1.gz
%{_mandir}/man1/influx_stress.1.gz
%{_mandir}/man1/influx_tsm.1.gz
%{_mandir}/man1/influxd-backup.1.gz
%{_mandir}/man1/influxd-config.1.gz
%{_mandir}/man1/influxd-restore.1.gz
%{_mandir}/man1/influxd-run.1.gz
%{_mandir}/man1/influxd-version.1.gz
%{_mandir}/man1/influxd.1.gz
%{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}

%changelog
openSUSE Build Service is sponsored by