Lokesh Mandvekar ebae72
%global debug_package   %{nil}
Lokesh Mandvekar ebae72
%global provider        github
Lokesh Mandvekar ebae72
%global provider_tld    com
Lokesh Mandvekar ebae72
%global project         coreos
Lokesh Mandvekar ebae72
%global repo            etcd
cypret deee4e
Lokesh Mandvekar ebae72
%global import_path     %{provider}.%{provider_tld}/%{project}/%{repo}
cypret deee4e
Lokesh Mandvekar ebae72
Name:		%{repo}
Lokesh Mandvekar ebae72
Version:	2.0.0
Jan Chaloupka 05b7ad
Release:	0.4%{?dist}
Lokesh Mandvekar ebae72
Summary:	A highly-available key value store for shared configuration
cypret deee4e
License:	ASL 2.0
Lokesh Mandvekar ebae72
URL:		https://%{import_path}
Jan Chaloupka 05b7ad
Source0:	https://%{import_path}/archive/v%{version}.tar.gz
Lokesh Mandvekar ebae72
Source1:	%{name}.service
Lokesh Mandvekar ebae72
Source2:	%{name}.conf
Jan Chaloupka 25a0f4
ExclusiveArch:  %{ix86} x86_64 %{arm}
cypret deee4e
Lokesh Mandvekar ebae72
BuildRequires:	golang >= 1.3.3
Jan Chaloupka 88090d
BuildRequires:	golang(code.google.com/p/gogoprotobuf)
Lokesh Mandvekar ebae72
BuildRequires:	golang(github.com/codegangsta/cli)
Lokesh Mandvekar ebae72
BuildRequires:	golang(github.com/coreos/go-etcd/etcd)
Lokesh Mandvekar ebae72
BuildRequires:  golang(golang.org/x/net/context)
Jan Chaloupka b0027b
BuildRequires:  golang(github.com/jonboulle/clockwork)
Jan Chaloupka b0027b
BuildRequires:  golang(github.com/stretchr/testify/assert)
Peter Lemenkov 2cd176
BuildRequires:	systemd
Jan Chaloupka 88090d
Requires(pre):	shadow-utils
Peter Lemenkov 2cd176
Requires(post): systemd
Peter Lemenkov 2cd176
Requires(preun): systemd
Peter Lemenkov 2cd176
Requires(postun): systemd
cypret deee4e
cypret deee4e
%description
cypret deee4e
A highly-available key value store for shared configuration.
cypret deee4e
Jan Chaloupka 88090d
%package devel
Lokesh Mandvekar ebae72
BuildRequires:  golang >= 1.2.1-3
Jan Chaloupka b0027b
BuildRequires:	golang(code.google.com/p/gogoprotobuf)
Jan Chaloupka b0027b
BuildRequires:	golang(github.com/codegangsta/cli)
Jan Chaloupka b0027b
BuildRequires:	golang(github.com/coreos/go-etcd/etcd)
Jan Chaloupka b0027b
BuildRequires:  golang(golang.org/x/net/context)
Jan Chaloupka b0027b
BuildRequires:  golang(github.com/jonboulle/clockwork)
Lokesh Mandvekar ebae72
BuildRequires:  golang(github.com/stretchr/testify/assert)
Lokesh Mandvekar ebae72
Requires:       golang >= 1.2.1-3
Jan Chaloupka b0027b
Provides:       golang(%{import_path}) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/client) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/discovery) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/error) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/etcdctl) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/etcdctl/command) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/etcdmain) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/etcdserver) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/etcdserver/etcdhttp) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/etcdserver/etcdhttp/httptypes) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/etcdserver/etcdserverpb) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/etcdserver/stats) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/migrate) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/cors) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/crc) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/fileutil) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/flags) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/ioutils) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/pbutil) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/testutil) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/transport) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/types) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/pkg/wait) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/proxy) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/raft) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/raft/raftpb) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/rafthttp) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/snap) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/snap/snappb) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/store) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/wal) = %{version}-%{release}
Jan Chaloupka b0027b
Provides:       golang(%{import_path}/wal/walpb) = %{version}-%{release}
Jan Chaloupka b0027b
Summary:        etcd golang devel libraries
Jan Chaloupka b0027b
ExclusiveArch:  %{ix86} x86_64 %{arm}
Jan Chaloupka 88090d
Jan Chaloupka 88090d
%description devel
Jan Chaloupka 88090d
golang development libraries for etcd, a highly-available key value store for
Jan Chaloupka 88090d
shared configuration.
Jan Chaloupka 88090d
cypret deee4e
%prep
Jan Chaloupka 05b7ad
%setup -qn %{name}-%{version}
Jan Chaloupka b0027b
rm -rf Godeps/_workspace/src/github.com/{codegangsta,coreos,stretchr,jonboulle}
Jan Chaloupka b0027b
rm -rf Godeps/_workspace/src/{code.google.com,bitbucket.org,golang.org}
Lokesh Mandvekar ebae72
Lokesh Mandvekar ebae72
find . -name "*.go" \
Lokesh Mandvekar ebae72
       -print |\
Lokesh Mandvekar ebae72
       xargs sed -i 's/github.com\/coreos\/etcd\/Godeps\/_workspace\/src\///g'
Jan Chaloupka 88090d
Lokesh Mandvekar ebae72
%build
Peter Lemenkov eeea1a
# Make link for etcd itself
Peter Lemenkov cf242a
mkdir -p src/github.com/coreos
Peter Lemenkov cf242a
ln -s ../../../ src/github.com/coreos/etcd
cypret deee4e
Jan Chaloupka 05b7ad
export GOPATH=$(pwd):%{gopath}:$GOPATH
Lokesh Mandvekar ebae72
go build -v -x -o bin/etcd %{import_path}
Lokesh Mandvekar ebae72
go build -a -ldflags '-s' -o bin/etcdctl %{import_path}/etcdctl
Jan Chaloupka 05b7ad
go build -v -x -o bin/etcd-migrate %{import_path}/tools/%{name}-migrate
Lokesh Mandvekar ebae72
cypret deee4e
cypret deee4e
%install
Lokesh Mandvekar ebae72
install -D -p -m 0755 bin/%{name} %{buildroot}%{_bindir}/%{name}
Lokesh Mandvekar ebae72
install -D -p -m 0755 bin/%{name}ctl %{buildroot}%{_bindir}/%{name}ctl
Lokesh Mandvekar ebae72
install -D -p -m 0755 bin/%{name}-migrate %{buildroot}%{_bindir}/%{name}-migrate
Peter Lemenkov 2cd176
install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
Lokesh Mandvekar ebae72
install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/%{name}
Jan Chaloupka 88090d
Jan Chaloupka 88090d
# And create /var/lib/etcd
Lokesh Mandvekar ebae72
install -d -m 0755 %{buildroot}%{_sharedstatedir}/%{name}
Jan Chaloupka 88090d
Jan Chaloupka 88090d
# Install files for devel sub-package
Jan Chaloupka 88090d
install -d %{buildroot}/%{gopath}/src/%{import_path}
Lokesh Mandvekar ebae72
cp -pav main.go %{buildroot}/%{gopath}/src/%{import_path}/
Lokesh Mandvekar ebae72
for dir in client discovery error etcdctl etcdmain etcdserver \
Jan Chaloupka b0027b
        migrate pkg proxy raft rafthttp snap store version wal \
Jan Chaloupka b0027b
	integration
Jan Chaloupka 88090d
do
Lokesh Mandvekar ebae72
    cp -rpav ${dir} %{buildroot}/%{gopath}/src/%{import_path}/
Jan Chaloupka 88090d
done
Peter Lemenkov 2cd176
Peter Lemenkov cf242a
%check
Jan Chaloupka 05b7ad
export GOPATH=%{buildroot}%{gopath}:%{gopath}
Lokesh Mandvekar ebae72
go test %{import_path}/client
Lokesh Mandvekar ebae72
go test %{import_path}/discovery
Lokesh Mandvekar ebae72
go test %{import_path}/error
Jan Chaloupka b0027b
go test %{import_path}/etcdctl/command
Lokesh Mandvekar ebae72
go test %{import_path}/etcdmain
Jan Chaloupka 05b7ad
#go test %{import_path}/etcdserver
Jan Chaloupka b0027b
#go test %{import_path}/etcdserver/etcdhttp
Jan Chaloupka b0027b
#go test %{import_path}/etcdserver/etcdhttp/httptypes
Jan Chaloupka b0027b
#go test %{import_path}/integration
Lokesh Mandvekar ebae72
go test %{import_path}/migrate
Lokesh Mandvekar ebae72
#go test %{import_path}/pkg/fileutil
Lokesh Mandvekar ebae72
go test %{import_path}/pkg/flags
Jan Chaloupka 05b7ad
go test %{import_path}/pkg/ioutil
Lokesh Mandvekar ebae72
go test %{import_path}/pkg/transport
Lokesh Mandvekar ebae72
go test %{import_path}/pkg/types
Lokesh Mandvekar ebae72
go test %{import_path}/pkg/wait
Lokesh Mandvekar ebae72
go test %{import_path}/proxy
Lokesh Mandvekar ebae72
go test %{import_path}/raft
Lokesh Mandvekar ebae72
go test %{import_path}/rafthttp
Lokesh Mandvekar ebae72
go test %{import_path}/snap
Jan Chaloupka b0027b
#go test %{import_path}/store
Lokesh Mandvekar ebae72
go test %{import_path}/wal
Peter Lemenkov cf242a
Jan Chaloupka 88090d
%pre
Lokesh Mandvekar ebae72
getent group %{name} >/dev/null || groupadd -r %{name}
Lokesh Mandvekar ebae72
getent passwd %{name} >/dev/null || useradd -r -g %{name} -d %{_sharedstatedir}/%{name} \
Lokesh Mandvekar ebae72
	-s /sbin/nologin -c "etcd user" %{name}
Lokesh Mandvekar ebae72
Peter Lemenkov 2cd176
%post
Peter Lemenkov 2cd176
%systemd_post %{name}.service
cypret deee4e
Peter Lemenkov 2cd176
%preun
Peter Lemenkov 2cd176
%systemd_preun %{name}.service
Peter Lemenkov 2cd176
Peter Lemenkov 2cd176
%postun
Peter Lemenkov 2cd176
%systemd_postun %{name}.service
cypret deee4e
cypret deee4e
%files
Lokesh Mandvekar ebae72
%config(noreplace) %{_sysconfdir}/%{name}
Lokesh Mandvekar ebae72
%{_bindir}/%{name}
Lokesh Mandvekar ebae72
%{_bindir}/%{name}ctl
Lokesh Mandvekar ebae72
%{_bindir}/%{name}-migrate
Lokesh Mandvekar ebae72
%dir %attr(-,%{name},%{name}) %{_sharedstatedir}/%{name}
Peter Lemenkov 2cd176
%{_unitdir}/%{name}.service
cypret deee4e
%doc LICENSE README.md Documentation/internal-protocol-versioning.md
cypret deee4e
Jan Chaloupka 88090d
%files devel
Jan Chaloupka 88090d
%doc LICENSE README.md Documentation/internal-protocol-versioning.md
Lokesh Mandvekar ebae72
%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
Lokesh Mandvekar ebae72
%{gopath}/src/%{import_path}
Jan Chaloupka 88090d
cypret deee4e
%changelog
Jan Chaloupka 05b7ad
* Fri Jan 30 2015 jchaloup <jchaloup@redhat.com> - 2.0.0-0.4
Jan Chaloupka 05b7ad
- Update to etcd-2.0.0
Jan Chaloupka 05b7ad
- use gopath as the last directory to search for source code
Jan Chaloupka 05b7ad
  related: #1176138
Jan Chaloupka 05b7ad
Jan Chaloupka b0027b
* Tue Jan 20 2015 jchaloup <jchaloup@redhat.com> - 2.0.0-0.2.rc1
Jan Chaloupka b0027b
- Update of BuildRequires/Requires, Provides and test
Jan Chaloupka b0027b
  Add BuildRequire on jonboulle/clockwork
Jan Chaloupka b0027b
  related: #1176138
Jan Chaloupka b0027b
Jan Chaloupka b0027b
* Tue Dec 23 2014 Lokesh Mandvekar <lsm5@fedoraproject.org> - 2.0.0-0.1.rc1
Lokesh Mandvekar ebae72
- Resolves: rhbz#1176138 - update to v2.0.0-rc1
Lokesh Mandvekar ebae72
- do not redefine gopath
Lokesh Mandvekar ebae72
- use jonboulle/clockwork from within Godeps
Lokesh Mandvekar ebae72
Jan Chaloupka 25a0f4
* Fri Oct 17 2014 jchaloup <jchaloup@redhat.com> - 0.4.6-8
Jan Chaloupka 25a0f4
- Add ExclusiveArch for go_arches
Jan Chaloupka 25a0f4
Eric Paris 95ebb7
* Wed Jan 21 2015 Eric Paris <eparis@redhat.com> - 0.4.6-7
Eric Paris a2559f
- default to /var/lib/etcd/default.etcd as 2.0 uses that default
Eric Paris a2559f
Jan Chaloupka 9ea7af
* Mon Oct 06 2014 jchaloup <jchaloup@redhat.com> - 0.4.6-6
Jan Chaloupka 9ea7af
- related: #1047194
Jan Chaloupka 9ea7af
  Remove dependency on go.net
Jan Chaloupka 9ea7af
Jan Chaloupka bcb6be
* Mon Oct 06 2014 jchaloup <jchaloup@redhat.com> - 0.4.6-5
Jan Chaloupka bcb6be
- Fix the .service file so it can launch!
Jan Chaloupka bcb6be
  related: #1047194
Jan Chaloupka bcb6be
Jan Chaloupka 88090d
* Mon Sep 22 2014 jchaloup <jchaloup@redhat.com> - 0.4.6-4
Jan Chaloupka 88090d
- resolves: #1047194
Jan Chaloupka 88090d
  Update to 0.4.6 from https://github.com/projectatomic/etcd-package
Jan Chaloupka 88090d
Jan Chaloupka 88090d
* Tue Aug 19 2014 Adam Miller <maxamillion@fedoraproject.org> - 0.4.6-3
Jan Chaloupka 88090d
- Add devel sub-package
Jan Chaloupka 88090d
Jan Chaloupka 88090d
* Wed Aug 13 2014 Eric Paris <eparis@redhat.com> - 0.4.6-2
Jan Chaloupka 88090d
- Bump to 0.4.6
Jan Chaloupka 88090d
- run as etcd, not root
Peter Robinson 404796
Dennis Gilmore 80eb5e
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.2-6
Dennis Gilmore 80eb5e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
Dennis Gilmore 80eb5e
Peter Lemenkov eeea1a
* Sun Oct 20 2013 Peter Lemenkov <lemenkov@gmail.com> - 0.1.2-5
Peter Lemenkov eeea1a
- goprotobuf library unbundled (see rhbz #1018477)
Peter Lemenkov eeea1a
- go-log library unbundled (see rhbz #1018478)
Peter Lemenkov eeea1a
- go-raft library unbundled (see rhbz #1018479)
Peter Lemenkov eeea1a
- go-systemd library unbundled (see rhbz #1018480)
Peter Lemenkov eeea1a
- kardianos library unbundled (see rhbz #1018481)
Peter Lemenkov eeea1a
Peter Lemenkov 4ebcf6
* Sun Oct 13 2013 Peter Lemenkov <lemenkov@gmail.com> - 0.1.2-4
Peter Lemenkov 4ebcf6
- go.net library unbundled (see rhbz #1018476)
Peter Lemenkov 4ebcf6
Peter Lemenkov cf242a
* Sat Oct 12 2013 Peter Lemenkov <lemenkov@gmail.com> - 0.1.2-3
Peter Lemenkov cf242a
- Prepare for packages unbundling
Peter Lemenkov cf242a
- Verbose build
Peter Lemenkov cf242a
Peter Lemenkov 7c88c2
* Sat Oct 12 2013 Peter Lemenkov <lemenkov@gmail.com> - 0.1.2-2
Peter Lemenkov 7c88c2
- Fix typo in the etc.service file
Peter Lemenkov 7c88c2
Peter Lemenkov 2cd176
* Sat Oct 12 2013 Peter Lemenkov <lemenkov@gmail.com> - 0.1.2-1
Peter Lemenkov 2cd176
- Ver. 0.1.2
Peter Lemenkov 2cd176
- Integrate with systemd
Peter Lemenkov 2cd176
cypret deee4e
* Mon Aug 26 2013 Luke Cypret <cypret@fedoraproject.org> - 0.1.1-1
Peter Lemenkov cf242a
- Initial creation