2 # - fix make install linking stuff over again
3 # - skip tests build if testing disabled
4 # - add gearman user/group
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
13 # google perftools available only on these
14 %ifnarch %{ix86} x86_64 ppc64 ppc64le aarch64 %{arm}
15 %undefine with_gperftools
19 %undefine with_tcmalloc
22 Summary: A distributed job system
28 Source0: https://launchpad.net/gearmand/1.2/%{version}/+download/%{name}-%{version}.tar.gz
29 # Source0-md5: 99dd0be85b181eccf7fb1ca3c2a28a9f
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
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
50 BuildRequires: curl-devel
51 BuildRequires: mysql-server
53 Requires(post,preun): /sbin/chkconfig
54 Requires(post,preun,postun): systemd-units >= 38
57 Requires: systemd-units >= 0.38
58 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60 # FIXME: add tmpfiles conf
61 %define no_install_post_check_tmpfiles 1
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.
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
80 %description -n libgearman
81 Development libraries for %{name}.
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}
91 %description -n libgearman-devel
92 Development headers for %{name}.
99 # HACK to work around boost issues.
100 #export LDFLAGS="%{rpmldflags} LDFLAGS -lboost_system"
103 --disable-silent-rules \
116 rm -rf $RPM_BUILD_ROOT
118 DESTDIR=$RPM_BUILD_ROOT
120 rm -v $RPM_BUILD_ROOT%{_libdir}/libgearman*.la
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}
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
132 rm -rf $RPM_BUILD_ROOT
136 %groupadd -r gearmand
137 %useradd -r -g gearmand -d / -s /sbin/nologin -c "Gearmand job server" gearmand
140 %systemd_post gearmand.service
142 /sbin/chkconfig --add gearmand
144 touch /var/log/gearmand.log
147 %systemd_preun gearmand.service
148 if [ "$1" = 0 ] ; then
149 %service gearmand stop
150 /sbin/chkconfig --del gearmand
154 %systemd_postun_with_restart gearmand.service
157 %post -n libgearman -p /sbin/ldconfig
158 %postun -n libgearman -p /sbin/ldconfig
161 %defattr(644,root,root,755)
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
176 %defattr(644,root,root,755)
178 %attr(755,root,root) %{_libdir}/libgearman.so.*.*.*
179 %ghost %{_libdir}/libgearman.so.8
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*