/[smeserver]/rpms/qpsmtpd/sme10/qpsmtpd.spec
ViewVC logotype

Contents of /rpms/qpsmtpd/sme10/qpsmtpd.spec

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.16 - (show annotations) (download)
Sun May 8 08:19:33 2016 UTC (8 years, 6 months ago) by vip-ire
Branch: MAIN
CVS Tags: qpsmtpd-0_96-9_el7_sme
Changes since 1.15: +7 -2 lines
* Sun May 8 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-9.sme
- Backport a fix for karma_tool so it can find its database [SME: 9462]

1 # $Id: qpsmtpd.spec,v 1.15 2016/05/06 09:11:35 vip-ire Exp $
2
3 Name: qpsmtpd
4 Version: 0.96
5 Release: 9%{?dist}
6 Summary: qpsmtpd + qpsmtpd-apache
7 License: MIT
8 Group: System Environment/Daemons
9 URL: http://smtpd.develooper.com/
10 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
11 BuildRequires: perl >= 0:5.00503
12 BuildRequires: perl(ExtUtils::MakeMaker)
13 BuildArch: noarch
14 Requires: perl(Mail::Header), perl(Net::DNS) perl(Net::IP)
15 Requires: perl(IO::Socket::SSL) >= 1.70
16 Requires(pre): coreutils, shadow-utils, perl
17
18 Source0: %{name}-%{version}.tar.gz
19 Source1: qpsmtpd-forkserver.rc
20 Source2: qpsmtpd-forkserver.sysconfig
21 Source3: qpsmtpd-xinetd
22 Source4: in.qpsmtpd
23 Source5: qpsmtpd.conf
24 Source6: README.selinux
25
26 Patch1: qpsmtpd-0.95-spamassassin_size_limit.patch
27 Patch2: qpsmtpd-0.95-qpsmtpd_forserver_keepalive.patch
28 Patch3: qpsmtpd-0.95-notls_conf.patch
29 Patch4: qpsmtpd-0.95-allow_tls_proto_from_conf.patch
30 Patch5: qpsmtpd-0.96-set_hooks.patch
31 Patch6: qpsmtpd-0.96-warn_implicit_split.patch
32 Patch7: qpsmtpd-0.96-dont_log_credentials_except_in_debug.patch
33 Patch8: qpsmtpd-0.96-uribl_data_post.patch
34 Patch9: qpsmtpd-0.96-karma_strikes.patch
35 Patch10: qpsmtpd-0.96-more_badrcptto.patch
36 Patch11: qpsmtpd-0.96-karma_tlds_conf.patch
37 Patch12: qpsmtpd-0.96-store_original_plugin_name.patch
38 Patch13: qpsmtpd-0.96-fix_karma_tool_dir_path.patch
39 Patch14: qpsmtpd-0.96-dkim_no_sign_for_others_on_symlinks.patch
40 Patch15: qpsmtpd-0.96-fix_dmarc_reject.patch
41 Patch16: qpsmtpd-0.96-add_dmarc_result_notes.patch
42 Patch17: qpsmtpd-0.96-spf_on_no_dmarc_policy.patch
43 Patch18: qpsmtpd-0.96-find_karma_db_dir.patch
44
45 %description
46 qpsmtpd is a flexible smtpd daemon written in Perl. Apart from the core
47 SMTP features, all functionality is implemented in small "extension
48 plugins" using the easy to use object oriented plugin API.
49
50 qpsmtpd was originally written as a drop-in qmail-smtpd replacement, but
51 now it also includes a smtp forward and a postfix "backend".
52
53 %package apache
54 Requires: perl(mod_perl2)
55 Summary: mod_perl-2 connection handler for qpsmtpd
56 Group: System Environment/Daemons
57
58 %description apache
59
60 This module implements a mod_perl/apache 2.0 connection handler
61 that turns Apache into an SMTP server using Qpsmtpd.
62
63
64 %prep
65 %setup -q
66 %patch1 -p1
67 %patch2 -p1
68 %patch3 -p1
69 %patch4 -p1
70 %patch5 -p1
71 %patch6 -p1
72 %patch7 -p1
73 %patch8 -p1
74 %patch9 -p1
75 %patch10 -p1
76 %patch11 -p1
77 %patch12 -p1
78 %patch13 -p1
79 %patch14 -p1
80 %patch15 -p1
81 %patch16 -p1
82 %patch17 -p1
83 %patch18 -p1
84
85 %build
86 CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLDIRS="vendor" PREFIX="%{buildroot}%{_prefix}"
87 make
88
89 %clean
90 rm -rf $RPM_BUILD_ROOT
91 %install
92
93 rm -rf $RPM_BUILD_ROOT
94 find blib/lib -name '*.pm.*' -exec rm -f {} \;
95 make pure_install
96
97 mkdir -p %{buildroot}%{_datadir}/%{name}
98 rm -f %{buildroot}%{_datadir}/%{name}/plugins/*.*
99 cp -r plugins %{buildroot}%{_datadir}/%{name}/plugins
100 mkdir -p %{buildroot}%{_sysconfdir}/%{name}
101 rm -f %{buildroot}%{_sysconfdir}/%{name}/*.*
102 cp -r config.sample/* %{buildroot}%{_sysconfdir}/%{name}/
103 echo %{_datadir}/%{name}/plugins > %{buildroot}%{_sysconfdir}/%{name}/plugin_dirs
104 echo %{_localstatedir}/spool/qpsmtpd > %{buildroot}%{_sysconfdir}/%{name}/spool_dir
105 echo logging/file_connection loglevel LOGINFO %{_localstatedir}/log/qpsmtpd/%Y-%m-%d > %{buildroot}%{_sysconfdir}/%{name}/logging
106 mkdir -p %{buildroot}%{_initrddir}
107 cp %{SOURCE1} %{buildroot}%{_initrddir}/qpsmtpd-forkserver
108 mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
109 cp %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/qpsmtpd-forkserver
110 mkdir -p %{buildroot}%{_localstatedir}/spool/qpsmtpd
111 mkdir -p %{buildroot}%{_localstatedir}/log/qpsmtpd
112 mkdir -p %{buildroot}%{_sysconfdir}/xinetd.d
113 cp %{SOURCE3} %{buildroot}%{_sysconfdir}/xinetd.d/smtp
114 mkdir -p %{buildroot}%{_sbindir}
115 cp %{SOURCE4} %{buildroot}%{_sbindir}/in.smtp
116 mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d
117 cp %{SOURCE5} %{buildroot}%{_sysconfdir}/httpd/conf.d
118 mkdir -p %{buildroot}%{_docdir}/%{name}-apache-%{version}
119 cp %{SOURCE6} %{buildroot}%{_docdir}/%{name}-apache-%{version}
120
121 [ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress
122
123 find %{buildroot}%{_prefix} \( -name perllocal.pod -o -name .packlist \) -exec rm {} \;
124 find %{buildroot}%{_prefix} -type f -print | \
125 sed "s@^%{buildroot}@@g" | \
126 grep -v [Aa]sync | \
127 grep -v packaging | \
128 grep -v README.selinux | \
129 grep -v /Apache | \
130 grep -v /Danga | \
131 grep -v Qpsmtpd/PollServer.pm > %{name}-%{version}-%{release}-filelist
132 if [ "$(cat %{name}-%{version}-%{release}-filelist)X" = "X" ] ; then
133 echo "ERROR: EMPTY FILE LIST"
134 exit -1
135 fi
136
137 %files -f %{name}-%{version}-%{release}-filelist
138 %defattr(-,root,root)
139 %doc CREDITS Changes LICENSE README.md README.plugins.md STATUS
140 %{_initrddir}/qpsmtpd-forkserver
141 %config(noreplace) %{_sysconfdir}/qpsmtpd/*
142 %config(noreplace) %{_sysconfdir}/xinetd.d/smtp
143 %config(noreplace) %{_sysconfdir}/sysconfig/qpsmtpd-forkserver
144
145 %files apache
146 %defattr(-,root,root)
147 %{_prefix}/share/perl5/vendor_perl/Apache/Qpsmtpd.pm
148 %{_mandir}/man3/Apache::Qpsmtpd.3pm.gz
149 %config(noreplace) %{_sysconfdir}/httpd/conf.d/*
150 %doc %{_docdir}/%{name}-apache-%{version}/README.selinux
151
152 %pre
153
154
155 %changelog
156 * Sun May 8 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-9.sme
157 - Backport a fix for karma_tool so it can find its database [SME: 9462]
158
159 * Fri May 6 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-8.sme
160 - Support dkim signing with symlinks [SME: 9496]
161 - Fix DMARC rejects not working [SME: 9202]
162 - Add DMARC results notes so further plugin can check it [SME: 9202]
163 - Add possibility to reject solely on SPF result if no DMARC policy is published
164 [SME: 9479]
165
166 * Fri May 6 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-7.sme
167 - Backport some minor patches from git head [SME: 9460]
168
169 * Fri Apr 22 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-6.sme
170 - badrcptto can now read another file container bad addresses [SME: 9460]
171 [SME: 4597]
172
173 * Thu Apr 21 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-5.sme
174 - Fix a typo in previous patch [SME: 9462]
175
176 * Thu Apr 21 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-4.sme
177 - Backport the karma strikes param patch [SME: 9462]
178
179 * Mon Apr 18 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-3.sme
180 - hook uribl in data_post so it has access to the body [SME: 9467]
181
182 * Sun Apr 17 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-2.sme
183 - Don't log user credentials except when using the higher log level
184 [SME: 9466]
185
186 * Sat Apr 16 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-1.sme
187 - Update to 0.96 [SME: 9460]
188
189 * Fri Mar 25 2016 Charlie Brady <charlieb@charliebrady.org> 0.84-20.sme
190 - Fix startup warnings due to Socket6 symbol import. [SME: 9386]
191
192 * Sun Feb 7 2016 stephane de labrusse <stephdl@de-labrusse.fr> 0.84-19.sme
193 - Build new rpm for sme10
194
195 * Thu Jan 7 2016 Daniel Berteaud <daniel@firewall-services.com> 0.84-18.sme
196 - Allow reading SSL_version from the tls_protocols config file (and turn
197 TLSv1 back on by default) [SME: 9162]
198
199 * Wed Jan 6 2016 Daniel Berteaud <daniel@firewall-services.com> 0.84-17.sme
200 - Correctly log login attempts with nulls in login name [SME: 9167]
201
202 * Wed Jan 6 2016 Daniel Berteaud <daniel@firewall-services.com> 0.84-16.sme
203 - Disable TLSv1 [SME: 9162]
204
205 * Fri Sep 11 2015 stephane de Labrusse <stephdl@de-labrusse.fr> 0.84-15.sme
206 - Modify whitelist_soft transaction to interact with dnsbl filter [SME: 8747]
207 - by John Crisp <jcrisp@safeandsoundit.co.uk>
208 - Added qpsmtpd-0.84-make-dnsbl-more-whitelist_soft-aware.patch
209
210 * Tue May 19 2015 Daniel Berteaud <daniel@firewall-services.com> 0.84-14.sme
211 - Disable SSLv3 [SME: 8926]
212
213 * Fri May 15 2015 Daniel Berteaud <daniel@firewall-services.com> 0.84-13.sme
214 - New notls conf to set hosts you dont want to advertize STARTTLS to [SME: 8863]
215
216 * Sun Feb 15 2015 Daniel Berteaud <daniel@firewall-services.com> 0.84-12.sme
217 - Revert forcing TLSv1 patch as it breaks some inbound delivery [SME: 8851]
218 - Revert whitelist_soft dnsbl as it hasn't been verified yet and we need to
219 push the fix for TLSv1 [SME: 8747]
220
221 * Fri Dec 26 2014 stephane de Labrusse <stephdl@de-labrusse.fr> 0.84-11.sme
222 - Modify whitelist_soft transaction to interact with dnsbl filter [SME: 8747]
223 - by John Crisp <jcrisp@safeandsoundit.co.uk>
224
225 * Mon Dec 22 2014 Daniel Berteaud <daniel@firewall-services.com> 0.84-10.sme
226 - Force usage of TLSv1 [SME: 8726]
227
228 * Thu Mar 13 2014 Daniel Berteaud <daniel@firewall-services.com> 0.84-9.sme
229 - Remove DENYSOFT on SPF softfail [SME: 8273]
230
231 * Mon Dec 9 2013 Daniel Berteaud <daniel@firewall-services.com> 0.84-8.sme
232 - Fix handling of messages with no body and no trailing \n after headers (eq was
233 used in attempted assignment). [SME: 8051, see SME: 7754]
234
235 * Fri Jul 5 2013 Ian Wells <esmith@wellsi.com> 0.84-7.sme
236 - Accept messages with no body and no trailing \n after headers [SME: 7754]
237
238 * Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84-6.sme
239 - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7561]
240
241 * Wed Apr 24 2013 Daniel Berteaud <daniel@firewall-services.com> 0.84-5.sme
242 - allows the spamassassin plugin to read the size limit from its
243 arguments [SME: 7559]
244
245 * Fri Feb 1 2013 Shad L. Lords <slords@mail.com> 0.84-4.sme
246 - Update spec so building on rhel6 works [SME: 7263]
247
248 * Fri May 04 2012 Charlie Brady <charlie_brady@mitel.com> 0.84-3.sme
249 - Set SO_KEEPALIVE option on client socket - to detect dead
250 connections. [SME: 6924]
251
252 * Sun Nov 14 2010 <slords@mail.com> 0.84-2.sme
253 - Sync with upstream git repo.
254 - Fix require_resolvable_fromhost doesn't work [SME: 6369]
255 - Fix TLS security defaults [SME: 6241]
256 - Fix fatal errors when mail has no headers [SME: 6345]
257
258 * Wed Apr 14 2010 <slords@mail.com> 0.84-0.1.sme
259 - Update to 0.84
260 - add sme specific patches
261 - Perl module rpms moved to /usr/share/perl5/vendor_perl [SME: 7223]
262
263 * Wed Mar 3 2010 <filippo.carletti@gmail.com> 0.83-0.7.sme
264 - Remove spool and log dir from package (in smeserver-qpsmtpd)
265 - Don't create smtpd user (unused in sme) [SME: 5815]
266
267 * Thu Nov 5 2009 <smeserver-contribs@snetram.nl> 0.83-0.6.sme
268 - Apply qpsmtpd git changesets to implement custom SPAM
269 subject prefix [SME: 5031]
270
271 * Tue Nov 3 2009 <slords@mail.com> 0.83-0.5.sme
272 - Update pre requires so scripts don't fail on install [SME: 5558]
273
274 * Sat Oct 31 2009 <slords@mail.com> 0.83-0.4.sme
275 - Rebase bad_rcptto patch to remove orig file [SME: 5548]
276 - Change logging in tls init to prevent warnings [SME: 5551]
277
278 * Thu Oct 29 2009 <slords@mail.com> 0.83-0.3.sme
279 - Only run/initialize plugins once [SME: 5533]
280
281 * Mon Oct 26 2009 <filippo.carletti@gmail.com> 0.83-0.2.sme
282 - Change spool dir permissions and owner to qpsmtpd:clamav
283 - Change log dir permissions and owner to smelog:smelog
284
285 * Tue Sep 22 2009 <filippo.carletti@gmail.com> 0.83-0.1.sme
286 - add sme specific patches
287
288 * Fri Sep 18 2009 <rpmbuild@robinbowes.com> 0.83-0.1
289 - Update to 0.83
290
291 * Sun Jul 12 2009 <rpmbuild@robinbowes.com> 0.82-0.1
292 - Update to latest release
293 - don't add qpsmtpd to start-up by default
294 - add apache config file to qpsmtpd-apache package
295 - remove all patches
296 - use rpm macros for dirs
297 - use a filelist for main package instead of a long list of files
298
299 * Tue Jul 15 2008 <rpmbuild@robinbowes.com> 0.43-0.7
300 - Removed SelectServer.pm from .spec file
301
302 * Tue Mar 18 2008 <rpmbuild@robinbowes.com> 0.43-0.6
303 - moved config files back to /etc/qpsmtpd following some changes
304 to the qpsmtpd src
305
306 * Tue Mar 18 2008 <rpmbuild@robinbowes.com> 0.43-0.5
307 - moved config files to /etc/qpsmtpd/config
308
309 * Tue Mar 18 2008 <rpmbuild@robinbowes.com> 0.43-0.4
310 - Moved qpsmtpd-async to /usr/bin
311 - Added qpsmtpd-async man page to async package
312 - Added async smtproute plugin to async package
313
314 * Wed Mar 12 2008 <rpmbuild@robinbowes.com> 0.43-0.3
315 - Makefile.PL now updated in svn, so remove hack
316
317 * Wed Mar 12 2008 <rpmbuild@robinbowes.com> 0.43-0.2
318 - Added qpsmtpd-prefork to qpsmtpd RPM, inc. hack to work round
319 deficiency in Makefile.PL
320
321 * Mon Mar 10 2008 <rpmbuild@robinbowes.com> 0.43-0.1
322 - Updated to work with Makefile to build from svn
323
324 * Wed Sep 12 2007 <rpmbuild@robinbowes.com> 0.40-2.0
325 - Updated to build trunk-r790
326
327 * Tue Jun 12 2007 <hjp@hjp.at> 0.40-1.0
328 - updated to 0.40 - no code change.
329
330 * Thu Jun 07 2007 <hjp@hjp.at> 0.40-0.2
331 - unset environment variables which are normally tainted in perl.
332 - updated to 0.40rc1
333 - added dependency on Net::IP (needed by some plugins)
334
335 * Sat May 05 2007 <hjp@hjp.at> 0.33-0.5
336 - moved environment cleanup into start() function, otherwise
337 LANG just gets reinitialized.
338
339 * Sat May 05 2007 <hjp@hjp.at> 0.33-0.4
340 - split qpsmtpd-async into a separate package to avoid dependency
341 on ParaDNS.
342
343 * Sat May 05 2007 <hjp@hjp.at> 0.33-0.3
344 - also unset LANG, LC_ALL and LC_TIME in startup script to prevent
345 locale specific Received headers (bug reported by Dominik Meyer)
346
347 * Sun Feb 25 2007 <hjp@hjp.at> 0.33-0.2
348 - 0.3x branch has been merged back to trunk.
349 Got current snapshot (r715) from trunk.
350
351 * Sun Feb 25 2007 <hjp@hjp.at> 0.33-0.1
352 - Start forkserver via "daemon" (Gavin Carr)
353 - Fixed 'service qpsmtpd-forkserver status' (Gavin Carr)
354 - Changed policy for config files to noreplace (Gavin Carr)
355
356 * Sun Nov 05 2006 <hjp@hjp.at> 0.33-0.0
357 - Upgraded to current snapshot from 0.3x branch (which should become
358 0.33 soon-ish)
359 - included xinetd-support again.
360
361 * Sat Mar 18 2006 <hjp@hjp.at> 0.32-2
362 - fix dnsbl to check whether answer fits query.
363 - randomize Net::DNS ids for qpsmtpd-forkserver child processes.
364
365 * Wed Mar 08 2006 <hjp@hjp.at> 0.32-1
366 - New upstream 0.32
367 - rc-file unsets PERL_UNICODE (bug #38397)
368
369 * Sat Jan 28 2006 <hjp@hjp.at> 0.31.1-3
370 - Use ${SOURCE*} macros to refer to source files
371 - Avoid invoking rpm and other cleanup in %pre section
372 - Invoke chkconfig in %post.
373 - (Thanks to Josko Plazonic for the reporting these problems and
374 suggesting fixes)
375
376 * Tue Nov 30 2005 <hjp@hjp.at> 0.31.1-2
377 - Revision 170 of plugins/loggin/file_connection:
378 Return DECLINED from open_log.
379 Open log in write_log if it isn't already open.
380
381 * Tue Nov 29 2005 <hjp@hjp.at> 0.31.1-1
382 - Commented out queue plugins from sample config
383 - Added dependencies
384 - Create smtpd user if it doesn't exist
385 - Added /var/log/qpsmtpd and /var/spool/qpsmtpd
386
387 * Sat Nov 26 2005 <hjp@hjp.at>
388 - Added file_connection plugin
389 - Startup file for qpsmtpd-forkserver now uses --detach and assumes that
390 a suitable logging module is configured (file_connection by default)
391
392 * Wed Nov 23 2005 <hjp@hjp.at>
393 - Forkserver drops privileges before loading plugins now.
394
395 * Sun Nov 20 2005 <hjp@hjp.at>
396 - New upstream 0.31.1
397
398 * Mon Nov 14 2005 <hjp@hjp.at> 0.31-8
399 - New upstream 0.31rc3.
400 - pre-connection patch slightly simplified since upstream fixed one of
401 the bugs.
402
403 * Tue Aug 23 2005 <hjp@hjp.at>
404 - forced INSTALLSITELIB=/usr/lib/perl5/site_perl as suggested by
405 Charlie Brady.
406
407 * Sat Aug 20 2005 <hjp@hjp.at> 0.31-7
408 - RC2 from upstream.
409 - Removed patches which aren't applied from spec file.
410
411 * Fri Jul 22 2005 <hjp@hjp.at> 0.31-6
412 - New upstream snapshot from 0.31 branch: svn revision 509.
413
414 * Sun Jul 17 2005 <hjp@hjp.at> 0.31-5
415 - include only /etc/init.d/qpsmtpd-forkserver, not /etc/init.d
416 it conflicts with old initscripts packages.
417
418 * Sun Jul 17 2005 <hjp@hjp.at> 0.31-4
419 - removed tabs from forkserver
420
421 * Sun Jul 17 2005 <hjp@hjp.at> 0.31-3
422 - added startup script for forkserver
423 - changed BuildArchitectures to noarch.
424
425 * Sat Jul 16 2005 <hjp@hjp.at> 0.31-2
426 - pre-connection hook is now actually called, not just defined.
427
428 * Fri Jul 15 2005 <hjp@hjp.at> 0.31-1
429 - merged with 0.31. Most of my patches are now in the official release.
430 - merged Gavin's per-user-config patch with my dirs patch, since the
431 latter needs a way to turn off logging.
432 - added /etc/qpsmtpd/plugin_dir to package.
433
434 * Mon Jun 13 2005 <hjp@hjp.at> 0.29-6
435 - fixed removal of patch backup files
436 - fixed option --pid-file
437
438 * Sun Jun 12 2005 <hjp@hjp.at>
439 - avoid installing patch backup files
440 - split Apache::Qpsmtpd into separate package to avoid dependency hell.
441 - fixed URL
442 - changed group to Daemons.
443 - Fixed installation for newer versions of ExtUtils::MakeMaker
444
445 * Wed Jun 1 2005 <hjp@hjp.at> 0.29-5
446 - Really don't reap children in signal handler.
447
448 * Tue May 31 2005 <hjp@hjp.at> 0.29-4
449 - Return 421 for DENYSOFT_DISCONNECT
450 - Don't reap children in signal handler.
451
452 * Thu May 19 2005 <hjp@hjp.at> 0.29-3
453 - removed code to accept paths without <>.
454
455 * Thu May 19 2005 <hjp@hjp.at> 0.29-2
456 - added QPSMTPD_CONFIG env variable and plugin_dir config.
457 - added supplemental groups and support for pid file
458 - added shared_connect hook
459 - changed log level for SMTP dialog from DEBUG to INFO
460
461 * Thu Apr 21 2005 hjp@hjp.at
462 - added plugins, /etc and docs.
463
464 * Mon Apr 18 2005 hjp@hjp.at
465 - Specfile autogenerated
466

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed