]> git.pld-linux.org Git - packages/fedmsg.git/blob - fedmsg.spec
- up to 1.1.2
[packages/fedmsg.git] / fedmsg.spec
1 # Conditional build:
2 %bcond_with     tests           # build with tests
3
4 %define         module          fedmsg
5 %define         egg_name        fedmsg
6 %define         pypi_name       fedmsg
7 Summary:        Tools for Fedora Infrastructure real-time messaging
8 Name:           fedmsg
9 Version:        1.1.2
10 Release:        1
11 License:        LGPL v2+
12 Group:          Applications/Networking
13 Source0:        https://files.pythonhosted.org/packages/source/f/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
14 # Source0-md5:  57716b3207f8ef48a796ca27b652218d
15 Source1:        %{name}-tmpfiles.conf
16 Source2:        %{name}-gateway.init
17 Source3:        %{name}-hub.init
18 Source4:        %{name}-irc.init
19 Source5:        %{name}-relay.init
20 Patch1:         config.patch
21 URL:            https://github.com/fedora-infra/fedmsg
22 BuildRequires:  python-devel
23 BuildRequires:  python-setuptools
24 BuildRequires:  rpm-pythonprov
25 BuildRequires:  rpmbuild(macros) >= 1.710
26 %if %{with tests}
27 BuildRequires:  python-mock
28 BuildRequires:  python-nose
29 BuildRequires:  python-six
30 # Only for the test-replay test which is patched out
31 BuildRequires:  python-M2Crypto
32 BuildRequires:  python-arrow
33 BuildRequires:  python-bunch
34 BuildRequires:  python-daemon
35 BuildRequires:  python-fabulous
36 BuildRequires:  python-fedora
37 BuildRequires:  python-m2ext
38 BuildRequires:  python-moksha-hub >= 1.3.2
39 BuildRequires:  python-psutil
40 BuildRequires:  python-pygments
41 BuildRequires:  python-requests
42 #BuidlRequires:  python-sqlalchemy
43 %endif
44 Requires:       python-M2Crypto >= 0.22.5
45 Requires:       python-arrow
46 #Requires:      python-daemon
47 #Requires:      python-fabulous
48 #Requires:      python-fedora
49 Requires:       python-kitchen
50 Requires:       python-m2ext
51 Requires:       python-moksha-hub >= 1.3.2
52 Requires:       python-psutil
53 Requires:       python-pygments
54 Requires:       python-requests
55 #Requires:      python-simplejson
56 Requires:       python-six
57 Requires:       python-zmq
58 BuildArch:      noarch
59 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60
61 %description
62 Python API used around Fedora Infrastructure to send and receive
63 messages with zeromq. Includes some CLI tools.
64
65 %package announce
66 Summary:        The fedmsg-announce command
67 Group:          Applications/Networking
68 Requires:       %{name} = %{version}-%{release}
69
70 %description announce
71 This package contains the fedmsg-announce command for sending
72 announcements.
73
74 %package collectd
75 Summary:        A fedmsg plugin for collectd
76 Group:          Applications/Networking
77 Requires:       %{name} = %{version}-%{release}
78
79 %description collectd
80 This package contains the fedmsg-collectd command which produces
81 output suitable for consumption by a collectd plugin.
82
83 %package hub
84 Summary:        The FedMsg Hub
85 Group:          Applications/Networking
86 Requires:       rc-scripts >= 0.4.0.20
87 Requires(post,preun):   /sbin/chkconfig
88 Requires:       %{name} = %{version}-%{release}
89
90 %description hub
91 This package contains configuration and init scripts for the FedMsg
92 hub.
93
94 %package relay
95 Summary:        The FedMsg Relay
96 Group:          Applications/Networking
97 Requires:       %{name} = %{version}-%{release}
98 Requires:       rc-scripts >= 0.4.0.20
99 Requires(post,preun):   /sbin/chkconfig
100
101 %description relay
102 This package contains configuration and init scripts for the FedMsg
103 relay.
104
105 %package irc
106 Summary:        The FedMsg IRC Bot
107 Group:          Applications/Networking
108 Requires:       %{name} = %{version}-%{release}
109 Requires:       rc-scripts >= 0.4.0.20
110 Requires(post,preun):   /sbin/chkconfig
111
112 %description irc
113 This package contains configuration and init scripts for the FedMsg
114 IRC bot.
115
116 %package gateway
117 Summary:        The FedMsg Gateway daemon
118 Group:          Applications/Networking
119 Requires:       %{name} = %{version}-%{release}
120 Requires:       rc-scripts >= 0.4.0.20
121 Requires(post,preun):   /sbin/chkconfig
122
123 %description gateway
124 This package contains configuration and init scripts for the FedMsg
125 Gateway. It will rebroadcast messages from the bus to a specially
126 designated ZMQ pub socket. Useful for repeating messages outside a
127 firewall.
128
129 %prep
130 %setup -q
131 %patch1 -p1
132
133 # This only got shipped with fedmsg-0.6.3
134 rm -f fedmsg.d/_tweet-real.py
135
136 # These are failing in mock for fedora.  Investigate why.
137 # We probably just need a new BuildReq
138 rm -f fedmsg/tests/test_replay.py
139 rm -f fedmsg/tests/test_crypto_gpg.py
140
141 # Also, sqlalchemy is required for those tests we're knocking out,
142 # so knock it out too.
143 sed -i "/'sqlalchemy.*$/d" setup.py
144
145 sed -i "/cryptography/d" setup.py
146 sed -i "/daemon/d" setup.py
147
148 # Temporarily disable signature validation while the timestamp precision bug is
149 # worked out upstream. -- https://github.com/fedora-infra/fedmsg/pull/186
150 sed -i "s/validate_signatures=True/validate_signatures=False/g" fedmsg.d/ssl.py
151
152 # Copy the development config into the tests dir for the check section
153 cp -rf fedmsg.d fedmsg/tests/
154
155 %build
156 %py_build
157
158 # Create this temporary symlink that's only needed for the test suite.
159 ln -s fedmsg/tests/test_certs dev_certs
160
161 # Unfortunately, neither of these tests will run on koji since they require
162 # some network connectivity.  With a note of sadness, we destroy them.
163 rm fedmsg/tests/test_hub.py
164 rm fedmsg/tests/test_threads.py
165
166 %if %{with tests}
167 %check
168 %if 0%{?rhel} && 0%{?rhel} <= 6
169 # Check section removed until a RHEL6 bug with python-repoze-what-plugins-sql
170 # can be fixed.  It causes a fatal error in the test suite.
171 # https://bugzilla.redhat.com/show_bug.cgi?id=813925
172 %else
173 PYTHONPATH=$(pwd) python setup.py test
174 %endif
175 %endif
176
177 %install
178 rm -rf $RPM_BUILD_ROOT
179 %py_install \
180     --install-data=%{_datadir} \
181         --root $RPM_BUILD_ROOT
182
183 %{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/%{module}/tests
184
185 %py_postclean
186
187 install -d $RPM_BUILD_ROOT{/etc/{logrotate.d,rc.d/init.d},%{_sysconfdir}/fedmsg.d,%{systemdtmpfilesdir},%{systemdunitdir},/var/{run,log}/fedmsg}
188 cp -p fedmsg.d/*.py $RPM_BUILD_ROOT%{_sysconfdir}/fedmsg.d
189
190 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/fedmsg-gateway
191 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/fedmsg-hub
192 install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/fedmsg-irc
193 install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/fedmsg-relay
194
195 cp -p initsys/systemd/fedmsg-hub.service $RPM_BUILD_ROOT%{systemdunitdir}
196 cp -p initsys/systemd/fedmsg-relay.service $RPM_BUILD_ROOT%{systemdunitdir}
197 cp -p initsys/systemd/fedmsg-irc.service $RPM_BUILD_ROOT%{systemdunitdir}
198 cp -p initsys/systemd/fedmsg-gateway.service $RPM_BUILD_ROOT%{systemdunitdir}
199
200 # Logrotate configuration
201 cp -p logrotate $RPM_BUILD_ROOT/etc/logrotate.d/fedmsg
202
203 # tmpfiles.d
204 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
205
206 %clean
207 rm -rf $RPM_BUILD_ROOT
208
209 %pre
210 %groupadd -g 313 -r fedmsg
211 %useradd -u 313  -r -s /sbin/nologin -d %{_datadir}/%{name} -M -c 'FedMsg' -g fedmsg fedmsg
212
213 %post hub
214 /sbin/chkconfig --add fedmsg-hub
215 %service fedmsg-hub restart
216
217 %preun hub
218 if [ "$1" = "0" ]; then
219         %service fedmsg-hub stop
220         /sbin/chkconfig --del fedmsg-hub
221 fi
222
223 %post relay
224 /sbin/chkconfig --add fedmsg-relay
225 %service fedmsg-relay restart
226
227 %preun relay
228 if [ "$1" = "0" ]; then
229         %service fedmsg-relay stop
230         /sbin/chkconfig --del fedmsg-relay
231 fi
232
233 %post irc
234 /sbin/chkconfig --add fedmsg-irc
235 %service fedmsg-irc restart
236
237 %preun irc
238 if [ "$1" = "0" ]; then
239         %service fedmsg-irc stop
240         /sbin/chkconfig --del fedmsg-irc
241 fi
242
243 %post gateway
244 /sbin/chkconfig --add fedmsg-gateway
245 %service fedmsg-gateway restart
246
247 %preun gateway
248 if [ "$1" = "0" ]; then
249         %service fedmsg-gateway stop
250         /sbin/chkconfig --del fedmsg-gateway
251 fi
252
253 %files
254 %defattr(644,root,root,755)
255 %doc doc/* README.rst LICENSE
256 %dir %{_sysconfdir}/fedmsg.d
257 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fedmsg.d/base.py*
258 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fedmsg.d/endpoints.py*
259 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fedmsg.d/logging.py*
260 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fedmsg.d/ssl.py*
261 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fedmsg.d/relay.py*
262 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/fedmsg
263 %attr(755,root,root) %{_bindir}/fedmsg-check
264 %attr(755,root,root) %{_bindir}/fedmsg-logger
265 %attr(755,root,root) %{_bindir}/fedmsg-tail
266 %attr(755,root,root) %{_bindir}/fedmsg-trigger
267 %attr(755,root,root) %{_bindir}/fedmsg-config
268 %attr(755,root,root) %{_bindir}/fedmsg-dg-replay
269 %attr(755,fedmsg,fedmsg) %dir /var/log/fedmsg
270 %attr(775,fedmsg,fedmsg) %dir /var/run/fedmsg
271 %dir %{py_sitescriptdir}/fedmsg
272 %{py_sitescriptdir}/%{module}/*.py[co]
273 %{py_sitescriptdir}/%{module}/commands
274 %{py_sitescriptdir}/%{module}/consumers
275 %{py_sitescriptdir}/%{module}/crypto
276 %{py_sitescriptdir}/%{module}/encoding
277 %{py_sitescriptdir}/%{module}/meta
278 %{py_sitescriptdir}/%{module}/replay
279 %{py_sitescriptdir}/%{module}/text
280 %{py_sitescriptdir}/%{egg_name}-%{version}-py*.egg-info
281 %{systemdtmpfilesdir}/%{name}.conf
282
283 %files announce
284 %defattr(644,root,root,755)
285 %attr(755,root,root) %{_bindir}/fedmsg-announce
286
287 %files collectd
288 %defattr(644,root,root,755)
289 %attr(755,root,root) %{_bindir}/fedmsg-collectd
290
291 %files hub
292 %defattr(644,root,root,755)
293 %attr(755,root,root) %{_bindir}/fedmsg-hub
294 %attr(754,root,root) /etc/rc.d/init.d/fedmsg-hub
295 %{systemdunitdir}/fedmsg-hub.service
296
297 %files relay
298 %defattr(644,root,root,755)
299 %attr(755,root,root) %{_bindir}/fedmsg-relay
300 %attr(755,root,root) %{_bindir}/fedmsg-signing-relay
301 %attr(754,root,root) /etc/rc.d/init.d/fedmsg-relay
302 %{systemdunitdir}/fedmsg-relay.service
303
304 %files irc
305 %defattr(644,root,root,755)
306 %attr(755,root,root) %{_bindir}/fedmsg-irc
307 %attr(754,root,root) /etc/rc.d/init.d/fedmsg-irc
308 %{systemdunitdir}/fedmsg-irc.service
309
310 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fedmsg.d/ircbot.py*
311
312 %files gateway
313 %defattr(644,root,root,755)
314 %attr(755,root,root) %{_bindir}/fedmsg-gateway
315 %attr(754,root,root) /etc/rc.d/init.d/fedmsg-gateway
316 %{systemdunitdir}/fedmsg-gateway.service
317 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fedmsg.d/gateway.py*
This page took 0.142131 seconds and 4 git commands to generate.