]> git.pld-linux.org Git - packages/gearmand.git/blob - gearmand.spec
cleanups
[packages/gearmand.git] / gearmand.spec
1 # TODO
2 # - fix make install linking stuff over again
3 # - skip tests build if testing disabled
4 # - add gearman user/group
5 #
6 # Conditional build:
7 %bcond_with     tests           # build with tests
8 %bcond_without  gperftools      # gperftools
9 %bcond_without  sqlite          # sqlite
10 %bcond_without  tokyocabinet    # tokyocabinet
11 %bcond_with     tcmalloc        # tcmalloc
12
13 # google perftools available only on these
14 %ifnarch %{ix86} x86_64 ppc64 ppc64le aarch64 %{arm}
15 %undefine       with_gperftools
16 %endif
17
18 %ifarch ppc64 sparc64
19 %undefine       with_tcmalloc
20 %endif
21
22 Summary:        A distributed job system
23 Name:           gearmand
24 Version:        1.1.12
25 Release:        0.1
26 License:        BSD
27 Group:          Daemons
28 Source0:        https://launchpad.net/gearmand/1.2/%{version}/+download/%{name}-%{version}.tar.gz
29 # Source0-md5:  99dd0be85b181eccf7fb1ca3c2a28a9f
30 Source1:        %{name}.init
31 Source2:        %{name}.sysconfig
32 Source3:        %{name}.service
33 Patch0:         %{name}-1.1.12-ppc64le.patch
34 URL:            http://www.gearman.org
35 BuildRequires:  boost-devel >= 1.37.0
36 BuildRequires:  gperf
37 %{?with_gperftools:BuildRequires:       gperftools-devel}
38 BuildRequires:  libevent-devel
39 BuildRequires:  libmemcached-devel
40 BuildRequires:  libuuid-devel
41 #BuildRequires: memcached
42 BuildRequires:  mysql-devel
43 BuildRequires:  pkgconfig
44 BuildRequires:  postgresql-devel
45 BuildRequires:  rpmbuild(macros) >= 1.647
46 %{?with_sqlite:BuildRequires:   sqlite3-devel}
47 %{?with_tokyocabinet:BuildRequires:     tokyocabinet-devel}
48 BuildRequires:  zlib-devel
49 %if %{with tests}
50 BuildRequires:  curl-devel
51 BuildRequires:  mysql-server
52 %endif
53 Requires(post,preun):   /sbin/chkconfig
54 Requires(post,preun,postun):    systemd-units >= 38
55 Requires:       procps
56 Requires:       rc-scripts
57 Requires:       systemd-units >= 0.38
58 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59
60 # FIXME: add tmpfiles conf
61 %define         no_install_post_check_tmpfiles  1
62
63 %description
64 Gearman provides a generic framework to farm out work to other
65 machines or dispatch function calls to machines that are better suited
66 to do the work. It allows you to do work in parallel, to load balance
67 processing, and to call functions between languages. It can be used in
68 a variety of applications, from high-availability web sites to the
69 transport for database replication. In other words, it is the nervous
70 system for how distributed processing communicates.
71
72 %package -n libgearman
73 Summary:        Development libraries for gearman
74 Group:          Development/Libraries
75 Provides:       libgearman-1.0 = %{version}-%{release}
76 Obsoletes:      libgearman-1.0 < %{version}-%{release}
77 # gearman requires uuid_generate_time_safe, which only exists in newer e2fsprogs-libs
78 Requires:       e2fsprogs-libs >= 1.39-32
79
80 %description -n libgearman
81 Development libraries for %{name}.
82
83 %package -n libgearman-devel
84 Summary:        Development headers for libgearman
85 Group:          Development/Libraries
86 Requires:       libevent-devel
87 Requires:       libgearman = %{version}-%{release}
88 Provides:       libgearman-1.0-devel = %{version}-%{release}
89 Obsoletes:      libgearman-1.0-devel < %{version}-%{release}
90
91 %description -n libgearman-devel
92 Development headers for %{name}.
93
94 %prep
95 %setup -q
96 %patch0 -p1
97
98 %build
99 # HACK to work around boost issues.
100 #export LDFLAGS="%{rpmldflags} LDFLAGS -lboost_system"
101
102 %configure \
103         --disable-silent-rules \
104         --disable-static \
105 %if %{with tcmalloc}
106         --enable-tcmalloc \
107 %endif
108
109 %{__make}
110
111 %if %{with tests}
112 %{__make} check
113 %endif
114
115 %install
116 rm -rf $RPM_BUILD_ROOT
117 %{__make} install \
118         DESTDIR=$RPM_BUILD_ROOT
119
120 rm -v $RPM_BUILD_ROOT%{_libdir}/libgearman*.la
121
122 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
123         $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{systemdunitdir}} \
124         $RPM_BUILD_ROOT/var/{run/gearmand,log}
125
126 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/gearmand
127 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
128 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/gearmand
129 touch $RPM_BUILD_ROOT/var/log/gearmand.log
130
131 %clean
132 rm -rf $RPM_BUILD_ROOT
133
134 %if 0
135 %pre
136 %groupadd -r gearmand
137 %useradd -r -g gearmand -d / -s /sbin/nologin -c "Gearmand job server" gearmand
138
139 %post
140 %systemd_post gearmand.service
141 if [ $1 = 1 ]; then
142         /sbin/chkconfig --add gearmand
143 fi
144 touch /var/log/gearmand.log
145
146 %preun
147 %systemd_preun gearmand.service
148 if [ "$1" = 0 ] ; then
149         %service gearmand stop
150         /sbin/chkconfig --del gearmand
151 fi
152
153 %postun
154 %systemd_postun_with_restart gearmand.service
155 %endif
156
157 %post   -n libgearman -p /sbin/ldconfig
158 %postun -n libgearman -p /sbin/ldconfig
159
160 %files
161 %defattr(644,root,root,755)
162 %doc README
163 %attr(754,root,root) /etc/rc.d/init.d/gearmand
164 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/gearmand
165 %attr(755,root,root) %{_sbindir}/gearmand
166 %attr(755,root,root) %{_bindir}/gearman
167 %attr(755,root,root) %{_bindir}/gearadmin
168 %{_mandir}/man1/gearadmin.1*
169 %{_mandir}/man1/gearman.1*
170 %{_mandir}/man8/gearmand.8*
171 %{systemdunitdir}/%{name}.service
172 %dir %attr(755,gearmand,gearmand) /var/run/gearmand
173 %attr(640,gearmand,gearmand) %config(noreplace) %verify(not md5 mtime size) /var/log/gearmand.log
174
175 %files -n libgearman
176 %defattr(644,root,root,755)
177 %doc COPYING
178 %attr(755,root,root) %{_libdir}/libgearman.so.*.*.*
179 %ghost %{_libdir}/libgearman.so.8
180
181 %files -n libgearman-devel
182 %defattr(644,root,root,755)
183 %doc AUTHORS ChangeLog
184 %{_includedir}/libgearman
185 %{_pkgconfigdir}/gearmand.pc
186 %{_libdir}/libgearman.so
187 %{_includedir}/libgearman-1.0
188 %{_mandir}/man3/gearman_*
189 %{_mandir}/man3/libgearman.3*
This page took 0.073376 seconds and 3 git commands to generate.