1 # $Id: junkbuster-rh.spec,v 1.33 2002/03/05 13:13:57 morcego Exp $
3 # Written by and Copyright (C) 2001 the SourceForge
4 # IJBSWA team. http://ijbswa.sourceforge.net
6 # Based on the Internet Junkbuster originally written
7 # by and Copyright (C) 1997 Anonymous Coders and
8 # Junkbusters Corporation. http://www.junkbusters.com
10 # This program is free software; you can redistribute it
11 # and/or modify it under the terms of the GNU General
12 # Public License as published by the Free Software
13 # Foundation; either version 2 of the License, or (at
14 # your option) any later version.
16 # This program is distributed in the hope that it will
17 # be useful, but WITHOUT ANY WARRANTY; without even the
18 # implied warranty of MERCHANTABILITY or FITNESS FOR A
19 # PARTICULAR PURPOSE. See the GNU General Public
20 # License for more details.
22 # The GNU General Public License should be included with
23 # this file. If not, you can view it at
24 # http://www.gnu.org/copyleft/gpl.html
25 # or write to the Free Software Foundation, Inc., 59
26 # Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28 # $Log: junkbuster-rh.spec,v $
29 # Revision 1.33 2002/03/05 13:13:57 morcego
30 # - Added "make redhat-dok" to the build phase
31 # - Added docbook-utils to BuildRequires
33 # Revision 1.32 2002/03/05 12:34:24 morcego
34 # - Changing section internaly on the manpage from 1 to 8
35 # - We now require packages, not files, to avoid issues with apt
37 # Revision 1.31 2002/03/04 18:06:09 morcego
38 # SPECFILE: fixing permissing of the init script (broken by the last change)
40 # Revision 1.30 2002/03/04 16:18:03 morcego
41 # General cleanup of the rh specfile.
44 # * Mon Mar 04 2002 Rodrigo Barbosa <rodrigob@tisbrasil.com.br>
45 # + junkbuster-2.9.11-2
46 # - General specfile fixup, using the best recomended practices, including:
47 # - Adding -q to %%setup
48 # - Using macros whereever possible
49 # - Not using wildchars on %%files section
50 # - Doubling the percentage char on changelog and comments, to
51 # avoid rpm expanding them
53 # Revision 1.29 2002/03/03 19:21:22 hal9
54 # Init script fails if shell is /bin/false.
56 # Revision 1.28 2002/01/09 18:34:03 hal9
59 # Revision 1.27 2002/01/09 18:32:02 hal9
60 # Removed RPM_OPT_FLAGS kludge.
62 # Revision 1.26 2002/01/09 18:21:10 hal9
63 # A few minor updates.
65 # Revision 1.25 2001/12/28 01:45:36 steudten
66 # Add paranoia check and BuildReq: gzip
68 # Revision 1.24 2001/12/01 21:43:14 hal9
69 # Allowed for new ijb.action file.
71 # Revision 1.23 2001/11/06 12:09:03 steudten
72 # Compress doc files. Install README and AUTHORS at last as document.
74 # Revision 1.22 2001/11/05 21:37:34 steudten
75 # Fix to include the actual version for name.
76 # Let the 'real' packager be included - sorry stefan.
78 # Revision 1.21 2001/10/31 19:27:27 swa
79 # consistent description. new name for suse since
80 # we had troubles with rpms of identical names
83 # Revision 1.20 2001/10/24 15:45:49 hal9
84 # To keep Thomas happy (aka correcting my mistakes)
86 # Revision 1.19 2001/10/15 03:23:59 hal9
89 # Revision 1.17 2001/10/10 18:59:28 hal9
90 # Minor change for init script.
92 # Revision 1.16 2001/09/24 20:56:23 hal9
95 # Revision 1.13 2001/09/10 17:44:43 swa
96 # integrate three pieces of documentation. needs work.
97 # will not build cleanly under redhat.
99 # Revision 1.12 2001/09/10 16:25:04 swa
100 # copy all templates. version updated.
102 # Revision 1.11 2001/07/03 11:00:25 sarantis
103 # replaced permissionsfile with actionsfile
105 # Revision 1.10 2001/07/03 09:34:44 sarantis
106 # bumped up version number.
108 # Revision 1.9 2001/06/12 18:15:29 swa
109 # the %% in front of configure (see tag below) confused
110 # the rpm build process on 7.1.
112 # Revision 1.8 2001/06/12 17:15:56 swa
113 # fixes, because a clean build on rh6.1 was impossible.
114 # GZIP confuses make, %% configure confuses rpm, etc.
116 # Revision 1.7 2001/06/11 12:17:26 sarantis
119 # Revision 1.6 2001/06/11 11:28:25 sarantis
120 # Further optimizations and adaptations in the spec file.
122 # Revision 1.5 2001/06/09 09:14:11 swa
123 # shamelessly adapted RPM stuff from the newest rpm that
124 # RedHat provided for the JB.
126 # Revision 1.4 2001/06/08 20:54:18 swa
127 # type with status file. remove forward et. al from file list.
129 # Revision 1.3 2001/06/07 17:28:10 swa
132 # Revision 1.2 2001/06/04 18:31:58 swa
133 # files are now prefixed with either `confdir' or `logdir'.
134 # `make redhat-dist' replaces both entries confdir and logdir
137 # Revision 1.1 2001/06/04 10:44:57 swa
138 # `make redhatr-dist' now works. Except for the paths
139 # in the config file.
144 # Defines should happen in the begining of the file
145 %define ijbconf %{_sysconfdir}/%{name}
147 Summary: The Internet Junkbuster
148 Vendor: http://ijbswa.sourceforge.net
152 Source0: http://www.waldherr.org/%{name}/ijbswa-%{version}.tar.gz
154 BuildRoot: %{_tmppath}/%{name}-%{version}-root
155 Group: Networking/Utilities
156 URL: http://ijbswa.sourceforge.net/
157 Obsoletes: junkbuster-raw junkbuster-blank
158 # Prereq: /usr/sbin/useradd , /sbin/chkconfig , /sbin/service
159 Prereq: shadow-utils, chkconfig, initscripts, sh-utils
160 BuildRequires: perl gzip sed docbook-utils
161 Conflicts: junkbuster-raw junkbuster-blank
164 Internet Junkbuster is a web proxy with advanced filtering
165 capabilities for protecting privacy, filtering web page content,
166 managing cookies, controlling access, and removing ads, banners,
167 pop-ups and other obnoxious Internet Junk. Junkbuster has a very
168 flexible configuration and can be customized to suit individual needs
169 and tastes. Internet Junkbuster has application for both stand-alone
170 systems and multi-user networks.
173 %setup -q -c -n ijbswa
180 ## Explicitily stripping is not recomended.
181 ## This is handled altomaticaly by RPM, and can couse troubles if
182 ## anyone wants to build an unstriped version - morcego
186 [ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
187 mkdir -p %{buildroot}%{_sbindir} \
188 %{buildroot}%{_mandir}/man8 \
189 %{buildroot}%{_localstatedir}/log/%{name} \
190 %{buildroot}%{ijbconf}/templates \
191 %{buildroot}%{_sysconfdir}/logrotate.d \
192 %{buildroot}%{_sysconfdir}/rc.d/init.d
194 ## Manual gziping of manpages should not be done, once it can
195 ## break the building on some distributions. Anyway, rpm does it
196 ## automagicaly these days
197 ## Gziping the documentation files is not recomended - morcego
198 #gzip README AUTHORS ChangeLog %{name}.1 || /bin/true
200 install -s -m 744 %{name} %{buildroot}%{_sbindir}/%{name}
202 ## We need to change the man section internaly on the manpage
203 ## -- morcego (sugestion by Hal Burgiss)
204 #cp -f %{name}.1 %{buildroot}%{_mandir}/man8/%{name}.8
205 sed -e 's@^.TH JUNKBUSTER 1@.TH JUNKBUSTER 8@g' %{name}.1 > %{buildroot}%{_mandir}/man8/%{name}.8
206 cp -f *.action %{buildroot}%{ijbconf}/
207 cp -f re_filterfile %{buildroot}%{ijbconf}/re_filterfile
208 cp -f trust %{buildroot}%{ijbconf}/trust
209 cp -f templates/* %{buildroot}%{ijbconf}/templates/
210 cp -f %{name}.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
211 install -m 755 %{name}.init %{buildroot}%{_sysconfdir}/rc.d/init.d/%{name}
212 install -m 711 -d %{buildroot}%{_localstatedir}/log/%{name}
214 # verify all file locations, etc. in the config file
215 # don't start with ^ or commented lines are not replaced
216 ## Changing the sed paramter delimiter to @, so we don't have to
217 ## escape the slashes
219 sed 's@^confdir.*@confdir %{_sysconfdir}/%{name}@g' | \
220 # sed 's/^permissionsfile.*/permissionsfile \/etc\/%{name}\/permissionsfile/g' | \
221 # sed 's/^re_filterfile.*/re_filterfile \/etc\/%{name}\/re_filterfile/g' | \
222 # sed 's/^logfile.*/logfile \%{_localstatedir}\/log\/%{name}\/logfile/g' | \
223 # sed 's/^jarfile.*/jarfile \%{_localstatedir}\/log\/%{name}\/jarfile/g' | \
224 # sed 's/^forward.*/forward \/etc\/%{name}\/forward/g' | \
225 # sed 's/^aclfile.*/aclfile \/etc\/%{name}\/aclfile/g' > \
226 sed 's@^logdir.*@logdir %{_localstatedir}/log/%{name}@g' > \
227 %{buildroot}%{ijbconf}/config
228 perl -pe 's/{-no-cookies}/{-no-cookies}\n\.redhat.com/' ijb.action >\
229 %{buildroot}%{ijbconf}/ijb.action
231 ## Macros are expanded even on commentaries. So, we have to use %%
236 # We check to see if the user junkbuster exists.
237 # If it does, we do nothing
238 # If we don't, we check to see if the user junkbust exist and, in case it
239 # does, we change it do junkbuster. If it also does not exist, we create the
240 # junkbuster user -- morcego
241 id junkbuster > /dev/null 2>&1 || ( id junkbust && ( /usr/sbin/usermod -l junkbuster junkbust ) || ( /usr/sbin/useradd -d /etc/%{name} -r %{name} -s "" > /dev/null 2>&1 || /bin/true )
244 # for upgrade from 2.0.x
245 [ -f %{_localstatedir}/log/%{name}/%{name} ] &&\
246 mv -f %{_localstatedir}/log/%{name}/%{name} %{_localstatedir}/log/%{name}/logfile || /bin/true
247 chown -R %{name}:%{name} %{_localstatedir}/log/%{name} 2>/dev/null
248 chown -R %{name}:%{name} /etc/%{name} 2>/dev/null
249 if [ "$1" = "1" ]; then
250 /sbin/chkconfig --add %{name}
251 /sbin/service %{name} condrestart > /dev/null 2>&1
253 # 01/09/02 HB, getting rid of any user=junkbust
254 # Changed by morcego to use the id command.
255 id junkbust > /dev/null 2>&1 && /usr/sbin/userdel junkbust || /bin/true
258 if [ "$1" = "0" ]; then
259 /sbin/service %{name} stop > /dev/null 2>&1 ||:
260 /sbin/chkconfig --del %{name}
264 #if [ "$1" -ge "1" ]; then
265 # /sbin/service %{name} condrestart > /dev/null 2>&1
269 [ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
272 %defattr(0644,root,root,0755)
273 %doc README AUTHORS ChangeLog
274 # Where are the webserver/{developer,user}-manual files ?
275 %doc doc/text/developer-manual.txt doc/text/user-manual.txt
276 %doc doc/webserver/developer-manual
277 %doc doc/webserver/user-manual
278 #%doc %{name}.weekly %{name}.monthly AUTHORS
281 %dir %{ijbconf}/templates
282 %attr(0744,junkbuster,junkbuster) %dir %{_localstatedir}/log/%{name}
284 %attr(0744,junkbuster,junkbuster)%{_sbindir}/%{name}
286 # We should not use wildchars here. This could mask missing files problems
288 %config %{ijbconf}/config
289 %config %{ijbconf}/ijb-advanced.action
290 %config %{ijbconf}/ijb-basic.action
291 %config %{ijbconf}/ijb-intermediate.action
292 %config %{ijbconf}/ijb.action
293 %config %{ijbconf}/re_filterfile
294 %config %{ijbconf}/trust
296 %config %{ijbconf}/templates/blocked
297 %config %{ijbconf}/templates/blocked-compact
298 %config %{ijbconf}/templates/cgi-error-404
299 %config %{ijbconf}/templates/cgi-error-bad-param
300 %config %{ijbconf}/templates/cgi-error-disabled
301 %config %{ijbconf}/templates/cgi-error-file
302 %config %{ijbconf}/templates/cgi-error-modified
303 %config %{ijbconf}/templates/cgi-error-parse
304 %config %{ijbconf}/templates/connect-failed
305 %config %{ijbconf}/templates/default
306 %config %{ijbconf}/templates/edit-actions-add-url-form
307 %config %{ijbconf}/templates/edit-actions-for-url
308 %config %{ijbconf}/templates/edit-actions-list
309 %config %{ijbconf}/templates/edit-actions-list-section
310 %config %{ijbconf}/templates/edit-actions-list-url
311 %config %{ijbconf}/templates/edit-actions-remove-url-form
312 %config %{ijbconf}/templates/edit-actions-url-form
313 %config %{ijbconf}/templates/no-such-domain
314 %config %{ijbconf}/templates/show-request
315 %config %{ijbconf}/templates/show-status
316 %config %{ijbconf}/templates/show-status-file
317 %config %{ijbconf}/templates/show-url-info
318 %config %{ijbconf}/templates/show-version
319 %config %{ijbconf}/templates/toggle
320 %config %{ijbconf}/templates/toggle-mini
321 %config %{ijbconf}/templates/untrusted
323 %config %{_sysconfdir}/logrotate.d/%{name}
324 %config %attr(0744,root,root) %{_sysconfdir}/rc.d/init.d/%{name}
326 %{_mandir}/man8/%{name}.8*
329 * Tue Mar 06 2002 Rodrigo Barbosa <rodrigob@tisbrasil.com.br>
330 + junkbuster-2.9.11-6
331 - Changed the routined that handle the junkbust and junkbuster users on
332 %%pre and %%post to work in a smoother manner
333 - %%files now uses hardcoded usernames, to avoid problems with package
334 name changes in the future
336 * Tue Mar 05 2002 Rodrigo Barbosa <rodrigob@tisbrasil.com.br>
337 + junkbuster-2.9.11-5
338 - Added "make redhat-dok" to the build process
339 - Added docbook-utils to BuildRequires
341 * Tue Mar 05 2002 Rodrigo Barbosa <rodrigob@tisbrasil.com.br>
342 + junkbuster-2.9.11-4
343 - Changing man section in the manpage from 1 to 8
344 - We now require packages, not files, to avoid issues with apt
346 * Mon Mar 04 2002 Rodrigo Barbosa <rodrigob@tisbrasil.com.br>
347 + junkbuster-2.9.11-3
348 - Fixing permissions of the init script
350 * Mon Mar 04 2002 Rodrigo Barbosa <rodrigob@tisbrasil.com.br>
351 + junkbuster-2.9.11-2
352 - General specfile fixup, using the best recomended practices, including:
353 - Adding -q to %%setup
354 - Using macros whereever possible
355 - Not using wildchars on %%files section
356 - Doubling the percentage char on changelog and comments, to
357 avoid rpm expanding them
359 * Sun Mar 03 2002 Hal Burgiss <hal@foobox.net>
360 - /bin/false for shell causes init script to fail. Reverting.
362 * Wed Jan 09 2002 Hal Burgiss <hal@foobox.net>
363 - Removed UID 73. Included user-manual and developer-manual in docs.
364 Include other actions files. Default shell is now /bin/false.
365 Userdel user=junkbust. ChangeLog was not zipped. Removed
366 RPM_OPT_FLAGS kludge.
368 * Fri Dec 28 2001 Thomas Steudten <thomas@steudten.ch>
369 - add paranoia check for 'rm -rf %%{buildroot}'
370 - add gzip to 'BuildRequires'
372 * Sat Dec 1 2001 Hal Burgiss <hal@foobox.net>
373 - actionsfile is now ijb.action.
375 * Tue Nov 6 2001 Thomas Steudten <thomas@steudten.ch>
377 - Add more documents for installation
378 - Add version string to name and source
380 * Wed Oct 24 2001 Hal Burigss <hal@foobox.net>
381 - Back to user 'junkbuster' and fix configure macro.
383 * Wed Oct 10 2001 Hal Burigss <hal@foobox.net>
384 - More changes for user 'junkbust'. Init script had 'junkbuster'.
386 * Sun Sep 23 2001 Hal Burgiss <hal@foobox.net>
387 - Change of $RPM_OPT_FLAGS handling. Added new HTML doc files.
388 - Changed owner of /etc/junkbuster to shut up PAM/xauth log noise.
390 * Thu Sep 13 2001 Hal Burgiss <hal@foobox.net>
391 - Added $RPM_OPT_FLAGS support, renaming of old logfile, and
392 - made sure no default shell exists for user junkbust.
394 * Sun Jun 3 2001 Stefan Waldherr <stefan@waldherr.org>
397 * Mon Sep 25 2000 Stefan Waldherr <stefan@waldherr.org>
398 - CLF Logging patch by davep@cyw.uklinux.net
399 - Hal DeVore <haldevore@earthling.net> fix akamaitech in blocklist
401 * Sun Sep 17 2000 Stefan Waldherr <stefan@waldherr.org>
402 - Steve Kemp skx@tardis.ed.ac.uk's javascript popup patch.
403 - Markus Breitenbach breitenb@rbg.informatik.tu-darmstadt.de supplied
404 numerous fixes and enhancements for Steve's patch.
405 - adamlock@netscape.com (Adam Lock) in the windows version:
406 - Taskbar activity spinner always spins even when logging is
407 turned off (which is the default) - people who don't
408 like the spinner can turn it off from a menu option.
409 - Taskbar popup menu has a options submenu - people can now
410 open the settings files for cookies, blockers etc.
411 without opening the JB window.
412 - Logging functionality works again
413 - Buffer overflow is fixed - new code uses a bigger buffer
414 and snprintf so it shouldn't overflow anymore.
415 - Fixed userid swa, group learning problem while installing.
417 - Added patch by Benjamin Low <ben@snrc.uow.edu.au> that prevents JB to
418 core dump when there is no log file.
419 - Tweaked SuSE startup with the help of mohataj@gmx.net and Doc.B@gmx.de.
420 - Fixed man page to include imagefile and popupfile.
421 - Sanity check for the statistics function added.
422 - "Patrick D'Cruze" <pdcruze@orac.iinet.net.au>: It seems Microsoft
423 are transitioning Hotmail from FreeBSD/Apache to Windows 2000/IIS.
424 With IIS/5, it appears to omit the trailing \r\n from http header
425 only messages. eg, when I visit http://www.hotmail.com, IIS/5
426 responds with a HTTP 302 redirect header. However, this header
427 message is missing the trailing \r\n. IIS/5 then closes the
428 connection. Junkbuster, unfortunately, discards the header becomes
429 it thinks it is incomplete - and it is. MS have transmitted an
431 - Added bug reports and patch submission forms in the docs.
433 * Mon Mar 20 2000 Stefan Waldherr <stefan@waldherr.org>
434 Andrew <anw@tirana.freewire.co.uk> extended the JB:
435 Display of statistics of the total number of requests and the number
436 of requests filtered by junkbuster, also the percentage of requests
437 filtered. Suppression of the listing of files on the proxy-args page.
438 All stuff optional and configurable.
440 * Sun Sep 12 1999 Stefan Waldherr <stefan@waldherr.org>
441 Jan Willamowius (jan@janhh.shnet.org) fixed a bug in the
442 code which prevented the JB from handling URLs of the form
443 user:password@www.foo.com. Fixed.
445 * Mon Aug 2 1999 Stefan Waldherr <stefan@waldherr.org>
446 Blank images are no longer cached, thanks to a hint from Markus
447 Breitenbach <breitenb@rbg.informatik.tu-darmstadt.de>. The user
448 agent is NO longer set by the Junkbuster. Sadly, many sites depend
449 on the correct browser version nowadays. Incorporated many
450 suggestions from Jan "Yenya" Kasprzak <kas@fi.muni.cz> for the
451 spec file. Fixed logging problem and since runlevel 2 does not
452 use networking, I replaced /etc/rc.d/rc2.d/S84junkbuster with
453 /etc/rc.d/rc2.d/K09junkbuster thanks to Shaw Walker
454 <walker@netgate.net>. You should now be able to build this RPM as
455 a non-root user (mathias@weidner.sem.lipsia.de).
457 * Sun Jan 31 1999 Stefan Waldherr <stefan@waldherr.org>
458 %%{_localstatedir}/log/junkbuster set to nobody. Added /etc/junkbuster/imagelist
459 to allow more sophisticated matching of blocked images. Logrotate
460 logfile. Added files for auto-updating the blocklist et al.
462 * Wed Dec 16 1998 Stefan Waldherr <stefan@waldherr.org>
463 Configure blank version via config file. No separate blank
464 version anymore. Added Roland's <roland@spinnaker.rhein.de>
465 patch to show a logo instead of a blank area. Added a suggestion
466 from Alex <alex@cocoa.demon.co.uk>: %%{_localstatedir}/lock/subsys/junkbuster.
467 More regexps in the blocklist. Prepared the forwardfile for
468 squid. Extended image regexp with help from gabriel
469 <somlo@CS.ColoState.EDU>.
471 * Thu Nov 19 1998 Stefan Waldherr <stefan@waldherr.org>
472 All RPMs now identify themselves in the show-proxy-args page.
473 Released Windoze version. Run junkbuster as nobody instead of
476 * Fri Oct 30 1998 Stefan Waldherr <stefan@waldherr.org>
477 Newest version. First release (hence the little version number
478 mixture -- 2.0.2-0 instead of 2.0-7). This version tightens
479 security over 2.0.1; some multi-user sites will need to change
480 the listen-address in the configuration file. The blank version of
481 the Internet Junkbuster has a more sophisticated way of replacing
482 images. All RPMs identify themselves in the show-proxy-args page.
484 * Thu Sep 23 1998 Stefan Waldherr <stefan@waldherr.org>
485 Modified the blocking feature, so that only GIFs and JPEGs are
486 blocked and replaced but not HTML pages. Thanks to
487 "Gerd Flender" <plgerd@informatik.uni-siegen.de> for this nice
488 idea. Added numerous stuff to the blocklist. Keep patches in
489 seperate files and no longer in diffs (easier to maintain).
491 * Tue Jun 16 1998 Stefan Waldherr <swa@cs.cmu.edu>
492 Moved config files to /etc/junkbuster directory, moved man page,
493 added BuildRoot directive (Thanks to Alexey Nogin <ayn2@cornell.edu>)
494 Made new version junkbuster-raw (which is only a stripped version of
495 the junkuster rpm, i.e. without my blocklist, etc.)
497 * Tue Jun 16 1998 (2.0-1)
498 Uhm, not that much. Just a new junkbuster version that
499 fixes a couple of bugs ... and of course a bigger
500 blocklist with the unique Now-less-ads-than-ever(SM)
502 Oh, one thing: I changed the default user agent to Linux -- no
503 need anymore to support Apple.
505 * Tue Jun 16 1998 (2.0-0)
506 Now-less-ads-than-ever (SM)
507 compiled with gcc instead of cc
508 compiled with -O3, thus it should be a little faster
509 show-proxy-args now works
510 /etc/junkbuster.init wasn't necessary
512 * Tue Jun 16 1998 (1.4)
513 some more config files were put into /etc
514 The junkbuster-blank rpm returns a 1x1 pixel image, that gets
515 displayed by Netscape instead of the blocked image.
516 Read http://www.waldherr.org/junkbuster/ for
519 * Tue Jun 16 1998 (1.3)
520 The program has been moved to /usr/sbin (from /usr/local/bin)
521 Init- and stopscripts (/etc/rc.d/rc*) have been added so
522 that the junkbuster starts automatically during bootup.
523 The /etc/blocklist file is much more sophisticated. Theoretically
524 one should e.g. browse all major US and German newspapers without
525 seeing one annoying ad.
526 junkbuster.init was modified. It now starts junkbuster with an
527 additional "-r @" flag.