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