%global debug_package %{nil} %global import_path github.com/coreos/etcd %global gopath %{_datadir}/gocode Name: etcd Version: 0.4.6 Release: 6%{?dist} Summary: A highly-available key value store for shared configuration License: ASL 2.0 URL: https://github.com/coreos/etcd/ Source0: https://github.com/coreos/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: etcd.service Source2: etcd.conf Patch0: 0001-De-bundle-third_party.patch BuildRequires: golang BuildRequires: golang(code.google.com/p/gogoprotobuf) BuildRequires: golang(github.com/BurntSushi/toml) BuildRequires: golang(github.com/gorilla/mux) BuildRequires: golang(github.com/mreiferson/go-httpclient) BuildRequires: golang(bitbucket.org/kardianos/osext) BuildRequires: golang(github.com/coreos/go-log/log) BuildRequires: golang(github.com/coreos/go-systemd) BuildRequires: golang(github.com/rcrowley/go-metrics) BuildRequires: systemd Requires(pre): shadow-utils Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description A highly-available key value store for shared configuration. %package devel BuildRequires: golang BuildRequires: golang(code.google.com/p/gogoprotobuf) BuildRequires: golang(github.com/BurntSushi/toml) BuildRequires: golang(github.com/gorilla/mux) BuildRequires: golang(github.com/mreiferson/go-httpclient) BuildRequires: golang(bitbucket.org/kardianos/osext) BuildRequires: golang(github.com/coreos/go-log/log) BuildRequires: golang(github.com/coreos/go-systemd) BuildRequires: golang(github.com/rcrowley/go-metrics) Requires: golang Summary: etcd golang devel libraries Provides: golang(%{import_path}) = %{version}-%{release} %description devel golang development libraries for etcd, a highly-available key value store for shared configuration. %prep %setup -q -n %{name}-%{version} %patch0 -p1 echo "package main const releaseVersion = \"%{version}\"" > release_version.go # etcd has its own fork of the client API mkdir tmp mv third_party/github.com/coreos/go-etcd tmp # And a raft fork: https://bugzilla.redhat.com/show_bug.cgi?id=1047194#c12 mv third_party/github.com/goraft tmp # Nuke everything else though rm -rf third_party # And restore the third party bits we're keeping mkdir -p third_party/github.com/coreos/ mv tmp/go-etcd third_party/github.com/coreos/ mv tmp/goraft third_party/github.com/ rmdir tmp # Make link for etcd itself mkdir -p src/github.com/coreos ln -s ../../../ src/github.com/coreos/etcd %build GOPATH="${PWD}:%{_datadir}/gocode" go build -v -x -o etcd.bin %install install -d -m 0755 %{buildroot}%{_sysconfdir}/etcd install -m 644 -t %{buildroot}%{_sysconfdir}/etcd %{SOURCE2} install -D -p -m 0755 etcd.bin %{buildroot}%{_bindir}/etcd install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service # And create /var/lib/etcd install -d -m 0755 %{buildroot}%{_localstatedir}/lib/etcd # Install files for devel sub-package install -d %{buildroot}/%{gopath}/src/%{import_path} cp -av main.go %{buildroot}/%{gopath}/src/%{import_path}/ cp -av go_version.go %{buildroot}/%{gopath}/src/%{import_path}/ for dir in bench config discovery Documentation error etcd fixtures http log \ metrics mod pkg server store tests do cp -av ${dir} %{buildroot}/%{gopath}/src/%{import_path}/ done %check # empty for now %pre getent group etcd >/dev/null || groupadd -r etcd getent passwd etcd >/dev/null || useradd -r -g etcd -d %{_localstatedir}/lib/etcd \ -s /sbin/nologin -c "etcd user" etcd %post %systemd_post %{name}.service %preun %systemd_preun %{name}.service %postun %systemd_postun %{name}.service %files %config(noreplace) %{_sysconfdir}/etcd %{_bindir}/etcd %dir %attr(-,etcd,etcd) %{_localstatedir}/lib/etcd %{_unitdir}/%{name}.service %doc LICENSE README.md Documentation/internal-protocol-versioning.md %files devel %doc LICENSE README.md Documentation/internal-protocol-versioning.md %dir %attr(755,root,root) %{gopath}/src/github.com/coreos %dir %attr(755,root,root) %{gopath}/src/%{import_path} %{gopath}/src/%{import_path}/* %changelog * Mon Oct 06 2014 jchaloup - 0.4.6-6 - related: #1047194 Remove dependency on go.net * Mon Oct 06 2014 jchaloup - 0.4.6-5 - Fix the .service file so it can launch! related: #1047194 * Mon Sep 22 2014 jchaloup - 0.4.6-4 - resolves: #1047194 Update to 0.4.6 from https://github.com/projectatomic/etcd-package * Tue Aug 19 2014 Adam Miller - 0.4.6-3 - Add devel sub-package * Wed Aug 13 2014 Eric Paris - 0.4.6-2 - Bump to 0.4.6 - run as etcd, not root * Sat Jun 07 2014 Fedora Release Engineering - 0.1.2-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Sun Oct 20 2013 Peter Lemenkov - 0.1.2-5 - goprotobuf library unbundled (see rhbz #1018477) - go-log library unbundled (see rhbz #1018478) - go-raft library unbundled (see rhbz #1018479) - go-systemd library unbundled (see rhbz #1018480) - kardianos library unbundled (see rhbz #1018481) * Sun Oct 13 2013 Peter Lemenkov - 0.1.2-4 - go.net library unbundled (see rhbz #1018476) * Sat Oct 12 2013 Peter Lemenkov - 0.1.2-3 - Prepare for packages unbundling - Verbose build * Sat Oct 12 2013 Peter Lemenkov - 0.1.2-2 - Fix typo in the etc.service file * Sat Oct 12 2013 Peter Lemenkov - 0.1.2-1 - Ver. 0.1.2 - Integrate with systemd * Mon Aug 26 2013 Luke Cypret - 0.1.1-1 - Initial creation