Now compiles in cgi.[ch]
[privoxy.git] / junkbuster-rh.spec
1 # $Id: junkbuster-rh.spec,v 1.1 2001/06/04 10:44:57 swa Exp $
2 #
3 # Written by and Copyright (C) 2001 the SourceForge
4 # IJBSWA team.  http://ijbswa.sourceforge.net
5 #
6 # Based on the Internet Junkbuster originally written
7 # by and Copyright (C) 1997 Anonymous Coders and 
8 # Junkbusters Corporation.  http://www.junkbusters.com
9 #
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.
15 #
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.
21 #
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.
27 #
28 # $Log: junkbuster-rh.spec,v $
29 # Revision 1.1  2001/06/04 10:44:57  swa
30 # `make redhatr-dist' now works. Except for the paths
31 # in the config file.
32 #
33 #
34 #
35 %define PACKAGE_NAME junkbuster
36 %define PACKAGE_URL http://ijbswa.sourceforge.net
37 Summary: The Internet Junkbuster
38 Vendor: http://ijbswa.sourceforge.net
39 Name: %PACKAGE_NAME
40 Version: 2.9
41 Release: 4
42 Source0: http://www.waldherr.org/junkbuster/ijbswa.tar.gz
43 Copyright: GPL
44 BuildRoot: /tmp/junkbuster
45 Group: Networking/Utilities
46 URL: %PACKAGE_URL
47 Packager: Stefan Waldherr <stefan@waldherr.org>
48 Distribution: defineme
49 Obsoletes: junkbuster-raw junkbuster-blank
50 Prereq: chkconfig
51
52 %changelog
53
54 * Sun Jun  3 2001 Stefan Waldherr <stefan@waldherr.org>
55 - rework of RPM
56
57 * Mon Sep 25 2000 Stefan Waldherr <stefan@waldherr.org>
58 - CLF Logging patch by davep@cyw.uklinux.net
59 - Hal DeVore <haldevore@earthling.net> fix akamaitech in blocklist
60
61 * Sun Sep 17 2000 Stefan Waldherr <stefan@waldherr.org>
62 - Steve Kemp skx@tardis.ed.ac.uk's javascript popup patch.
63 - Markus Breitenbach breitenb@rbg.informatik.tu-darmstadt.de supplied
64   numerous fixes and enhancements for Steve's patch.
65 - adamlock@netscape.com (Adam Lock) in the windows version:
66   - Taskbar activity spinner always spins even when logging is
67   turned off (which is the default) - people who don't
68   like the spinner can turn it off from a menu option.
69   - Taskbar popup menu has a options submenu - people can now
70   open the settings files for cookies, blockers etc.
71   without opening the JB window.
72   - Logging functionality works again
73   - Buffer overflow is fixed - new code uses a bigger buffer
74   and snprintf so it shouldn't overflow anymore.
75 - Fixed userid swa, group learning problem while installing.
76   root must build RPM.
77 - Added patch by Benjamin Low <ben@snrc.uow.edu.au> that prevents JB to
78   core dump when there is no log file.
79 - Tweaked SuSE startup with the help of mohataj@gmx.net and Doc.B@gmx.de.
80 - Fixed man page to include imagefile and popupfile.
81 - Sanity check for the statistics function added.
82 - "Patrick D'Cruze" <pdcruze@orac.iinet.net.au>: It seems Microsoft
83  are transitioning Hotmail from FreeBSD/Apache to Windows 2000/IIS.
84  With IIS/5, it appears to omit the trailing \r\n from http header
85  only messages.  eg, when I visit http://www.hotmail.com, IIS/5
86  responds with a HTTP 302 redirect header.  However, this header
87  message is missing the trailing \r\n.  IIS/5 then closes the
88  connection.  Junkbuster, unfortunately, discards the header becomes
89  it thinks it is incomplete - and it is.  MS have transmitted an
90  incomplete header!
91 - Added bug reports and patch submission forms in the docs.
92
93 * Mon Mar 20 2000 Stefan Waldherr <stefan@waldherr.org>
94        Andrew <anw@tirana.freewire.co.uk> extended the JB:
95        Display of statistics of the total number of requests and the number
96        of requests filtered by junkbuster, also the percentage of requests
97        filtered. Suppression of the listing of files on the proxy-args page.
98        All stuff optional and configurable.
99
100 * Sun Sep 12 1999 Stefan Waldherr <stefan@waldherr.org>
101        Jan Willamowius (jan@janhh.shnet.org) fixed a bug in the 
102        code which prevented the JB from handling URLs of the form
103        user:password@www.foo.com. Fixed.
104
105 * Mon Aug  2 1999 Stefan Waldherr <stefan@waldherr.org>
106         Blank images are no longer cached, thanks to a hint from Markus 
107         Breitenbach <breitenb@rbg.informatik.tu-darmstadt.de>. The user 
108         agent is NO longer set by the Junkbuster. Sadly, many sites depend 
109         on the correct browser version nowadays. Incorporated many 
110         suggestions from Jan "Yenya" Kasprzak <kas@fi.muni.cz> for the
111         spec file. Fixed logging problem and since runlevel 2 does not 
112         use networking, I replaced /etc/rc.d/rc2.d/S84junkbuster with
113         /etc/rc.d/rc2.d/K09junkbuster thanks to Shaw Walker 
114         <walker@netgate.net>. You should now be able to build this RPM as 
115         a non-root user (mathias@weidner.sem.lipsia.de).
116
117 * Sun Jan 31 1999 Stefan Waldherr <stefan@waldherr.org>
118         /var/log/junkbuster set to nobody. Added /etc/junkbuster/imagelist
119         to allow more sophisticated matching of blocked images. Logrotate
120         logfile. Added files for auto-updating the blocklist et al.
121
122 * Wed Dec 16 1998 Stefan Waldherr <stefan@waldherr.org>
123         Configure blank version via config file. No separate blank
124         version anymore. Added Roland's <roland@spinnaker.rhein.de>
125         patch to show a logo instead of a blank area. Added a suggestion
126         from Alex <alex@cocoa.demon.co.uk>: /var/lock/subsys/junkbuster.
127         More regexps in the blocklist. Prepared the forwardfile for
128         squid. Extended image regexp with help from gabriel 
129         <somlo@CS.ColoState.EDU>.
130
131 * Thu Nov 19 1998 Stefan Waldherr <stefan@waldherr.org>
132         All RPMs now identify themselves in the show-proxy-args page.
133         Released Windoze version. Run junkbuster as nobody instead of
134         root. 
135
136 * Fri Oct 30 1998 Stefan Waldherr <stefan@waldherr.org>
137         Newest version. First release (hence the little version number
138         mixture -- 2.0.2-0 instead of 2.0-7). This version tightens 
139         security over 2.0.1; some multi-user sites will need to change 
140         the listen-address in the configuration file. The blank version of
141         the Internet Junkbuster has a more sophisticated way of replacing
142         images. All RPMs identify themselves in the show-proxy-args page.
143
144 * Thu Sep 23 1998 Stefan Waldherr <stefan@waldherr.org>
145         Modified the blocking feature, so that only GIFs and JPEGs are
146         blocked and replaced but not HTML pages. Thanks to 
147         "Gerd Flender" <plgerd@informatik.uni-siegen.de> for this nice
148         idea. Added numerous stuff to the blocklist. Keep patches in
149         seperate files and no longer in diffs (easier to maintain).
150
151 * Tue Jun 16 1998 Stefan Waldherr <swa@cs.cmu.edu>
152         Moved config files to /etc/junkbuster directory, moved man page,
153         added BuildRoot directive (Thanks to Alexey Nogin <ayn2@cornell.edu>)
154         Made new version junkbuster-raw (which is only a stripped version of 
155         the junkuster rpm, i.e. without my blocklist, etc.)
156
157 * Tue Jun 16 1998 (2.0-1)
158         Uhm, not that much. Just a new junkbuster version that
159         fixes a couple of bugs ... and of course a bigger 
160         blocklist with the unique Now-less-ads-than-ever(SM)
161         feature.
162         Oh, one thing: I changed the default user agent to Linux -- no 
163         need anymore to support Apple.
164
165 * Tue Jun 16 1998 (2.0-0)
166         Now-less-ads-than-ever (SM)
167         compiled with gcc instead of cc
168         compiled with -O3, thus it should be a little faster
169         show-proxy-args now works
170         /etc/junkbuster.init wasn't necessary
171
172 * Tue Jun 16 1998 (1.4)
173         some more config files were put into /etc
174         The junkbuster-blank rpm returns a 1x1 pixel image, that gets 
175         displayed by Netscape instead of the blocked image.
176         Read http://www.waldherr.org/junkbuster/ for
177         further info.
178
179 * Tue Jun 16 1998 (1.3)
180         The program has been moved to /usr/sbin (from /usr/local/bin)
181         Init- and stopscripts (/etc/rc.d/rc*) have been added so
182         that the junkbuster starts automatically during bootup.
183         The /etc/blocklist file is much more sophisticated. Theoretically
184         one should e.g. browse all major US and German newspapers without
185         seeing one annoying ad.
186         junkbuster.init was modified. It now starts junkbuster with an
187         additional "-r @" flag.
188
189 Conflicts: junkbuster-raw junkbuster
190
191 %description
192 The Internet Junkbuster (TM) blocks unwanted banner ads and protects
193 your privacy from cookies and other threats. It's free under the GPL
194 (no warranty), runs under *NIX and works with almost any browser. You
195 need to clear you browser's cache and specify the proxy-server,
196 described in /usr/doc/junkbuster.  This is a modified version which
197 returns a blank GIF for blocked images by default.  But you can
198 configure this via /etc/junkbuster/config.
199
200 #
201 # -----------------------------------------------------------------------------
202 #
203
204 %prep
205
206 #
207 # -----------------------------------------------------------------------------
208 #
209
210
211 %setup -c -n ijbswa
212
213 #
214 # -----------------------------------------------------------------------------
215 #
216
217 %build
218
219 #export DISTNAME='\"%PACKAGE_NAME-%PACKAGE_VERSION-%PACKAGE_RELEASE\"'
220 #export DISTURL='\"%PACKAGE_URL\"'
221 #make MORE_CFLAGS="$RPM_OPT_FLAGS"' -D_DISTNAME="$(DISTNAME)" -D_DISTURL="$(DISTURL)"'
222 # adds 486 optimization and stuff => bad
223 #make MORE_CFLAGS=' -D_DISTNAME="DDD" -D_DISTURL="UUU"'
224 ./configure
225 make
226 strip junkbuster
227
228 #
229 # -----------------------------------------------------------------------------
230 #
231
232 %pre
233 if [ -f /etc/rc.d/init.d/junkbuster.init ]; then
234         /etc/rc.d/init.d/junkbuster.init stop
235 fi
236 if [ -f /etc/rc.d/init.d/junkbuster ]; then
237         /etc/rc.d/init.d/junkbuster stop
238 fi
239 rm -f /usr/local/bin/junkbuster
240 rm -f /usr/local/man/man1/junkbuster.1
241
242 if test -d /var/log/junkbuster
243 then
244         mv -f /var/log/junkbuster /var/log/junkbuster.rpmorig
245 fi
246
247 #
248 # -----------------------------------------------------------------------------
249 #
250
251 %install
252 rm -rf $RPM_BUILD_ROOT
253 mkdir -p $RPM_BUILD_ROOT/{var/log/junkbuster,usr/{sbin,man/man8},etc/{junkbuster,junkbuster/templates,logrotate.d,cron.weekly,cron.monthly,rc.d/{init.d,rc{0,1,2,3,5,6}.d}}}
254 install -s -m 744 junkbuster $RPM_BUILD_ROOT/usr/sbin/junkbuster
255 cp -f junkbuster.1 $RPM_BUILD_ROOT/usr/man/man8/junkbuster.8
256 cp -f permissionsfile $RPM_BUILD_ROOT/etc/junkbuster/permissionsfile
257 cp -f re_filterfile $RPM_BUILD_ROOT/etc/junkbuster/re_filterfile
258 # cp -f blocklist $RPM_BUILD_ROOT/etc/junkbuster/blocklist
259 # cp -f imagelist $RPM_BUILD_ROOT/etc/junkbuster/imagelist
260 # cp -f cookiefile $RPM_BUILD_ROOT/etc/junkbuster/cookiefile
261 cp -f aclfile $RPM_BUILD_ROOT/etc/junkbuster/aclfile
262
263 # verify all file locations, etc. in the config file
264 # don't start with ^ or commented lines are not replaced
265 cat config | \
266     sed 's/^confdir.*/confdir \/etc\/junkbuster/g' | \
267 #    sed 's/^permissionsfile.*/permissionsfile \/etc\/junkbuster\/permissionsfile/g' | \
268 #    sed 's/^re_filterfile.*/re_filterfile \/etc\/junkbuster\/re_filterfile/g' | \
269 #    sed 's/^logfile.*/logfile \/var\/log\/junkbuster\/logfile/g' | \
270 #    sed 's/^jarfile.*/jarfile \/var\/log\/junkbuster\/jarfile/g' | \
271 #    sed 's/^forward.*/forward \/etc\/junkbuster\/forward/g' | \
272 #    sed 's/^aclfile.*/aclfile \/etc\/junkbuster\/aclfile/g' > \
273     sed 's/^logdir.*/logdir \/var\/log\/junkbuster/g' > \
274     $RPM_BUILD_ROOT/etc/junkbuster/config
275
276 cp -f forward $RPM_BUILD_ROOT/etc/junkbuster/forward
277 cp -f trust $RPM_BUILD_ROOT/etc/junkbuster/trust
278 # cp -f popup $RPM_BUILD_ROOT/etc/junkbuster/popup
279 cp -f templates/default $RPM_BUILD_ROOT/etc/junkbuster/templates/
280 cp -f templates/show-status  $RPM_BUILD_ROOT/etc/junkbuster/templates/
281 cp -f templates/show-status  $RPM_BUILD_ROOT/etc/junkbuster/templates/
282
283 cp -f junkbuster.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/junkbuster
284
285 install -m 755 junkbuster.init $RPM_BUILD_ROOT/etc/rc.d/init.d/junkbuster
286 install -m 744 -d $RPM_BUILD_ROOT/var/log/junkbuster
287
288 ln -sf ../init.d/junkbuster $RPM_BUILD_ROOT/etc/rc.d/rc0.d/K09junkbuster
289 ln -sf ../init.d/junkbuster $RPM_BUILD_ROOT/etc/rc.d/rc1.d/K09junkbuster
290 ln -sf ../init.d/junkbuster $RPM_BUILD_ROOT/etc/rc.d/rc2.d/K09junkbuster
291 ln -sf ../init.d/junkbuster $RPM_BUILD_ROOT/etc/rc.d/rc3.d/S84junkbuster
292 ln -sf ../init.d/junkbuster $RPM_BUILD_ROOT/etc/rc.d/rc5.d/S84junkbuster
293 ln -sf ../init.d/junkbuster $RPM_BUILD_ROOT/etc/rc.d/rc6.d/K09junkbuster
294
295
296 #
297 # -----------------------------------------------------------------------------
298 #
299
300 %preun
301 if [ -f /etc/rc.d/init.d/junkbuster.init ]; then
302         /etc/rc.d/init.d/junkbuster.init stop
303 fi
304 if [ -f /etc/rc.d/init.d/junkbuster ]; then
305         /etc/rc.d/init.d/junkbuster stop
306 fi
307
308 #
309 # -----------------------------------------------------------------------------
310 #
311
312 %post
313 cat << EOT >&2
314
315 Now you'll need to start junkbuster with 
316
317         /etc/rc.d/init.d/junkbuster start
318
319 or simply reboot; It will be started automatically at boot time. 
320 Don't forget to add the proxy stuff in Netscape.
321
322 EOT
323
324 # check configuration of start/stop/ scripts
325 # /sbin/chkconfig --add junkbuster
326
327
328 #
329 # -----------------------------------------------------------------------------
330 #
331
332 %clean
333 rm -rf $RPM_BUILD_ROOT
334
335 #
336 # -----------------------------------------------------------------------------
337 #
338
339 %files
340 %defattr(-,root,root)
341 # %doc ijbfaq.html ijbman.html README README.TOO gpl.html 
342 %doc junkbuster.weekly junkbuster.monthly
343 %attr (-,nobody,nobody) /var/log/junkbuster
344 %config /etc/junkbuster/*
345 %config /etc/logrotate.d/junkbuster
346 %attr (-,nobody,nobody) /usr/sbin/junkbuster
347 /usr/man/man8/junkbuster.8
348 %config /etc/rc.d/init.d/junkbuster
349 %config(missingok) /etc/rc.d/rc0.d/K09junkbuster
350 %config(missingok) /etc/rc.d/rc1.d/K09junkbuster
351 %config(missingok) /etc/rc.d/rc2.d/K09junkbuster
352 %config(missingok) /etc/rc.d/rc3.d/S84junkbuster
353 %config(missingok) /etc/rc.d/rc5.d/S84junkbuster
354 %config(missingok) /etc/rc.d/rc6.d/K09junkbuster