Rebuild user manual
[privoxy.git] / doc / webserver / announce.txt
1                Announcing Privoxy 3.0.31 stable
2 --------------------------------------------------------------------
3
4 Privoxy 3.0.31 fixes two security issues that were discovered while
5 preparing the 3.0.30 release. The issues also affect earlier Privoxy
6 releases.
7
8 --------------------------------------------------------------------
9 ChangeLog for Privoxy 3.0.31
10 --------------------------------------------------------------------
11 - Security/Reliability:
12   - Prevent an assertion from getting triggered by a crafted CGI request.
13     Commit 5bba5b89193fa. OVE-20210130-0001.
14     Reported by: Joshua Rogers (Opera)
15   - Fixed a memory leak when decompression fails "unexpectedly".
16     Commit f431d61740cc0. OVE-20210128-0001.
17
18 - Bug fixes:
19   - Fixed detection of insufficient data for decompression.
20     Previously Privoxy could try to decompress a partly
21     uninitialized buffer.
22
23 --------------------------------------------------------------------
24 ChangeLog for Privoxy 3.0.30
25 --------------------------------------------------------------------
26
27 - Bug fixes:
28   - Check the actual URL for redirects when https inspecting requests.
29     Previously Privoxy would only check the path which resulted in
30     rewrite results being rejected as invalid URLs.
31     Reported by withoutname in #1736.
32   - Let the hide-referrer code tolerate Referer headers with https:// URLs.
33     Previously they would always be treated like a changed host.
34   - Use the https headers if the show-request handler is reached through
35     https://. Previously Privoxy would use the http headers which
36     may be empty on a reused connection.
37   - Make CGI_PREFIX protocol-relative when building with FEATURE_HTTPS_INSPECTION.
38     This unbreaks (at least) https://config.privoxy.org/client-tags whose
39     buttons would previously use a http:// URL resulting in browser warnings.
40   - Support using https-inspection and client-header-order at the same time.
41     Previously Privoxy would crash.
42     Reported by: Kai Raven
43   - Properly reject rewrites from http to https as they currently
44     aren't supported. Previously Privoxy would wait for the client
45     to establish an encrypted connection which obviously would not happen.
46   - When https inspection is enabled and Privoxy has been compiled with
47     FEATURE_GRACEFUL_TERMINATION (not recommended for production builds),
48     the TLS backend resources are free'd later on and only if no active
49     connections are left. Prevents crashes when exiting "gracefully" at the
50     wrong time.
51   - Let the uninstall target remove the config file even if DESTDIR
52     is set and properly announce the deletion of the configuration files.
53
54 - General improvements:
55   - Allow to rewrite the request destination for https-inspected
56     requests behind the client's back. The documentation already sort
57     of claimed that it was supported by not especially mentioning that
58     it didn't work for https-inspected requests.
59     Fixes SF bug #923 reported by withoutname.
60   - Add support for filtering client request bodies by using
61     CLIENT-BODY-FILTER filters which can be enabled with the
62     client-body-filter action.
63     Patch submitted by Maxim Antonov.
64     Sponsored by: Robert Klemme
65   - Add the new action suppress-tag{} which can be used to prevent
66     a tagger from adding a tag. Patch submitted by Maxim Antonov.
67     Sponsored by: Robert Klemme
68   - Gracefully handle existing website keys without matching certificates.
69     This can happen if Privoxy was previously running with an invalid
70     TLS configuration that didn't allow it to create a certificate.
71   - Recycle debug bit 4 for Tagging-related messages.
72   - Improve the message shown when the client-tags CGI page
73     is requested with no tags configured.
74   - Shorten the 'donate' and 'participate' links used by templates
75     using redirects. Currently the redirects lead to the FAQ entries
76     but in the future we may want to relocate the content and using
77     redirects makes this more convenient.
78   - Log an error when a PCRE-HOST-PATTERN is used with
79     FEATURE_PCRE_HOST_PATTERNS disabled. Don't treat this a
80     fatal error so the regression tests can be used with and
81     without FEATURE_PCRE_HOST_PATTERNS.
82   - The code compiles with older C compilers again.
83   - The chdir() return code is checked to fix a compiler warning.
84   - The packages feed has been removed from the source tarball.
85     It's usually out of date when the source tarball is generated
86     for the release.
87   - Fixed harmless compiler warnings from GCC9 with -D_FORTIFY_SOURCE=2.
88   - windows: Remove obsolete '$(DEST)/doc/images' target.
89   - windows: Install the images referenced in the user manual.
90   - Remove obsolete 'gnu_regex.@OBJEXT@' target.
91   - When installing from the GNUMAkefile, don't create an 'images'
92     directory which is no longer used. The images were relocated to
93     the user-manual directory years ago.
94   - Add new FEATURES to the show-status page and resort list.
95   - Remove unused variable in the OpenSSL-specific code.
96   - Update bug tracker URL in cgi_error_unknown().
97   - Saved a couple of memory allocations when sorting client headers.
98   - Improved a couple of error messages.
99   - Saved memory allocations when using OpenSSL and checking if a
100     key already exists.
101   - The configure script will bail out if OpenSSL and mbedTLS are
102     enabled at the same time.
103   - Log a message right before exiting gracefully.
104   - A couple of structures have been rearranged to require slightly
105     less memory.
106   - When https inspection is enabled and the certificate is invalid
107     the error message is now sent with status code 403 instead of 200.
108   - The Slackware rc script template has been renamed to
109     slackware/rc.privoxy.in to silence complaints when building
110     Debian packages.
111   - When building with MbedTLS support, mbedtls_md5_ret() is used
112     instead of mbedtls_md5() which is deprecated and causes a warning
113     on Debian GNU/Linux.
114
115 - Action file improvements:
116   - Block requests to eu-tlp03.kameleoon.com/.
117   - Unblock metrics.sr.ht/.
118   - Disable fast-redirects for .fsf.org/.
119   - Disable fast-redirects for .gravater.com/.
120   - Disable fast-redirects for .ksta.de/.
121   - Block requests to tag.crsspxl.com/.
122   - Block requests to analytics.slashdotmedia.com/.
123   - Block requests to ml314.com/.
124   - Block requests to .adroll.com/.
125   - Block requests to fastlane.rubiconproject.com/.
126   - Block requests to api.theadex.com/.
127   - Block requests to ih.adscale.de/.
128   - Block requests to .s400.meetrics.net/.
129   - Block requests for pp.lp4.io/.
130   - Block requests for trc-events.taboola.com/.
131
132 - Filter file improvements:
133   - A allow-autocompletion filter has been added which changes
134     autocomplete="off" to "on" on input fields to allow autocompletion.
135     Requested by Jamie Zawinski in #370.
136     Filter based on a submission by Aaron Linville.
137   - Added an imdb filter.
138   - Added a sourceforge filter that reduces the amount of ads
139     for proprietary software.
140   - Added a github filter that removes the annoying "Sign-Up"
141     banner and the Cookie disclaimer.
142   - Removed a duplicated pcrs command from the js-annoyances filter.
143   - The crude-parental filter now provides a short reason when blocking,
144     inserts a link to Privoxy's webinterface and adds a new line at
145     the end of the generated page.
146
147 - Privoxy-Log-Parser:
148   - Highlight a few more messages.
149   - Add a handler for tagging messages.
150   - Properly deal with 'Certificate error' crunches
151     Previously the error description was highlighted as 'host'.
152   - Log truncated LOG_LEVEL_CLF messages more gracefully
153     and note that the statistics will be imprecise.
154   - Fixed perldoc typo.
155   - Bump version to 0.9.2.
156
157 - Privoxy-Regression-Test:
158   - Use http://127.0.0.1:8118/ as default Privoxy address
159     unless http_proxy is set through the environment.
160   - Add a --privoxy-cgi-prefix option that specifies the prefix
161     to use when building URLs that are supposed to reach Privoxy's
162     CGI interface. If it's not set, http://p.p/ is used, which is
163     supposed to work with the default Privoxy configuration.
164     If Privoxy has been built with FEATURE_HTTPS_INSPECTION enabled,
165     and if https inspection is activated with the +https-inspection
166     action, this option can be used with "https://p.p/" provided the
167     system running Privoxy-Regression-Test has been configured to
168     trust the certificate used by Privoxy.
169     Note that there are currently two tests in the official
170     regression-tests.action file that are expected to fail
171     when using "https://p.p/" as privoxy-cgi-prefix.
172   - Skip the connection-established response in get_status_code()
173     when looking for the status code with a CGI prefix
174     that starts with https://. We care about the status code
175     sent by the impersonated web server.
176   - Use --proxy-header when using a CGI prefix with https://
177     and a "Host:" header.
178   - Allow '|' in tokens and values to allow tag patterns like
179     "TAG:^(application|text)/(x-)?javascript$".
180   - When get_cgi_page_or_else() fails, include the URL of the
181     requested page in the log message.
182   - Added a --check-bad-ssl option that can be used to verify that
183     Privoxy detects certificate problems when accessing the test
184     sites from badssl.com.
185   - Bumped version to 0.7.2
186
187 - uagen:
188   - Update example output.
189   - Recommend the use of the https-inspection action in the documentation.
190   - Upgrade a couple of URLs to https://.
191   - Add ElectroBSD to the list of operating systems.
192   - Bumped generated Firefox version to 78 (ESR).
193   - Bumped version to 1.2.2.
194
195  - User documentation:
196   - Remove reference to 'How to Report Bugs Effectively'.
197     It was only rendered as text without URL in the README anyway
198     and there's no indication that users read it ...
199   - Let the dok-readme target fix the location embedded into the
200     README file. This used to be done by CVS but since the git migration
201     it has to be done through other means.
202   - Remove 'experimental' warning for client-specific-tag-related directives.
203     They seem to work reliably and there is no obvious reason
204     why we would change the syntax in the near future.
205   - Describe how to check if Privoxy has been built with
206     FEATURE_HTTPS_INSPECTION.
207   - Add a link to the trusted-cas-file documentation
208     that explains how the user can create the file herself.
209   - Don't explicitly mention the license for the code coming from
210     'Anonymous Coders' and Junkbusters. It's obviously licensed under
211     the GNU GPL like the rest of Privoxy or we wouldn't be allowed to
212     distribute it.
213   - Update the +hide-user-agent example with uagen output.
214   - Slightly improve the wording of the ca-key-file documentation.
215   - Explicitly mention Windows 10 as supported so search engines and
216     users looking for it can find it.
217   - Import a bunch of contributors from the ChangeLog.
218   - Remove obsolete doc/gpl.html.
219   - Upgrade a couple of links to https://.
220   - Don't prefer the SourceForge patch tracker over the
221     privoxy-devel mailing list. While at it, link to the
222     SourceForge patch tracker.
223   - Mention http-inspection in the 'my browser warns me about
224     unauthenticated content' FAQ entry.
225   - Simplify the 'Is there is a license or fee?' FAQ entry.
226   - Add another +redirect{} example.
227   - Explicitly mention that interested sponsors should include
228     the link target in their first mail.
229   - Clarify that only Privoxy team members can object to new sponsors
230     and link to the list of current team members.
231   - Note that sponsor URLs may not contain keyword spam.
232   - Garbage collect doc/webserver/images which isn't referenced anymore.
233   - Update the method to reach the proxy settings in Firefox.
234   - Update proxy_setup.jpg description to refer to Firefox.
235   - Regenerate proxy_setup.jpg with a more recent Firefox (78.0).
236   - Regenerate files-in-use.jpg without obsolete standard.action
237     with modern colors and a slightly better quality.
238   - Update URL to the actionsfile tracker.
239   - Update a support request URL.
240   - Rephrase the 'Can Privoxy run as service' FAQ entry and
241     remove an obsolete paragraph.
242   - Let the 'Where can I get updated Actions Files?' entry link to
243     the gitweb version of default.action.master.
244   - Update a link to the default.action file.
245   - Update URLs for trackers and mailing lists.
246   - Replace CVS reference with git.
247   - Mention regression-tests.action in the config file.
248   - Explicitly mention in the config file that access to the
249     CA key should be limited to Privoxy.
250   - List more client-specific-tag examples for inspiration.
251   - Add additional headers to the client-header-order example.
252   - Note that actions aren't updated after rewrites.
253   - Explicitly mention that upgrading from http to https with
254     a client-header filter is not supported
255   - Note that protocol and host have to be added when rewriting
256     the destination host for https-inspected requests.
257   - Explicitly mention that the CA key is used to sign certificates.
258   - Put openssl command in 'command' tags.
259   - The man page has been moved from section 1 to man section 8.
260
261 - Developer manual:
262   - Flesh out the build instructions for Debian.
263   - Remove the packaging instructions for RPM-based systems.
264     They don't work and we don't release RPM packages anymore anyway.
265   - Remove the packaging instructions for Solaris.
266     They don't work and we don't release Solaris packages anymore anyway.
267   - Update the suggested subject for the announce mails.
268   - Update upload instructions.
269     ftp://upload.sourceforge.net is no longer functional.
270   - Remove a couple of package-dependent upload instructions
271     that don't actually work.
272   - Remove 'cd current' that no longer works.
273   - Add regression-tests.action to the list of files that should be installed.
274   - Stop claiming that there are text versions of the manuals.
275     We stopped building them in 2008 (9ed36a3c5e6f12).
276   - Note that the 'webserver' target creates the link needed for the user-manual.
277   - Suggest to use the master branch as reference when creating
278     the ChangeLog so the steps work when the current branch differs
279     from master which is likely as the developer manual
280     suggests to use a local branch for development.
281   - Add the -s flag to the suggested 'git tag' command.  We prefer signed tags.
282   - Mention that merges into 'master' should be avoided.
283   - Add git commands that should result in a merge-free history.
284   - Mention Privoxy-Regression-Test.
285   - Add a section id to reduce link churn.
286   - Recommend the dok-tidy target when building docs for the webserver.
287   - Add another plug for the privoxy-devel mailing list.
288   - Let the intro link the copyright section in the user manual instead
289     of giving an incomplete summary of the license status.
290   - Clarify that the webserver target uploads to the SourceForge webserver.
291   - Mark the documentation for the Mac OS X installers as out of date and
292     change the SCM name back to CVS.
293   - Fix the location of the installer modules for Mac OS X.
294     They are not actually available through git (yet).
295   - Don't speak of Privoxy version 3 in the past tense.
296   - Update the list of programs required for the release process.
297   - Update description of the webserver target which uses ssh, not scp.
298   - Remove obsolete reference to config.new.
299
300 - Tests:
301   - Add another hide-referrer{conditional-block} test.
302   - Add another hide-referrer{conditional-forge} test.
303   - Fix a hide-referrer{conditional-forge} test
304     that expected an acceptable header to be forged.
305   - Fix a hide-referrer{conditional-block} test
306     that expected an acceptable Referer to be removed.
307   - Explain why the "Set Header = Host: whatever.example.org" test is
308     expected to fail when using a CGI prefix that starts with "https://".
309   - Explain why a connection-sharing test is known to fail
310     when using "https://p.p/" as CGI prefix.
311   - Add a link to Privoxy-Regression-Test to regression-tests.action
312     in case it isn't packaged.
313   - Add regression tests for pcre host patterns.
314   - Fixed a regression test that is executed when
315     FEATURE_GRACEFUL_TERMINATION is enabled.
316
317 - Privoxy infrastructure:
318   - Import a Privoxy logo for the website.
319   - Update Tor onion service to HiddenServiceVersion 3.
320   - Display the "model" photos in a single row and remove placeholder images.
321   - Regenerate homepage with updated sponsor list.
322   - Use the '/sponsor' redirect for the link to the sponsor page.
323   - Git commit messages are sent to the Privoxy-commits mailing list.
324
325 -----------------------------------------------------------------
326 About Privoxy:
327 -----------------------------------------------------------------
328
329 Privoxy is a non-caching web proxy with advanced filtering capabilities for
330 enhancing privacy, modifying web page data and HTTP headers, controlling
331 access, and removing ads and other obnoxious Internet junk. Privoxy has a
332 flexible configuration and can be customized to suit individual needs and
333 tastes. It has application for both stand-alone systems and multi-user
334 networks.
335
336 Privoxy is Free Software and licensed under the GNU GPLv2.
337
338 Our TODO list is rather long. Helping hands and donations are welcome:
339
340   * https://www.privoxy.org/participate
341
342   * https://www.privoxy.org/donate
343
344 At present, Privoxy is known to run on Windows 95 and later versions
345 (98, ME, 2000, XP, Vista, Windows 7, Windows 10 etc.), GNU/Linux
346 (RedHat, SuSE, Debian, Fedora, Gentoo, Slackware and others),
347 Mac OS X (10.4 and upwards on PPC and Intel processors), Haiku,
348 DragonFly, ElectroBSD, FreeBSD, NetBSD, OpenBSD, Solaris,
349 and various other flavors of Unix.
350
351 In addition to the core features of ad blocking and cookie management,
352 Privoxy provides many supplemental features, that give the end-user
353 more control, more privacy and more freedom:
354
355   *  Supports "Connection: keep-alive". Outgoing connections can be kept
356      alive independently from the client. Currently not available on all
357      platforms.
358
359   *  Supports IPv6, provided the operating system does so too,
360      and the configure script detects it.
361
362   *  Supports tagging which allows to change the behaviour based on client
363      and server headers.
364
365   *  Supports https inspection which allows to filter https requests.
366
367   *  Can be run as an "intercepting" proxy, which obviates the need to
368      configure browsers individually.
369
370   *  Sophisticated actions and filters for manipulating both server and
371      client headers.
372
373   *  Can be chained with other proxies.
374
375   *  Integrated browser based configuration and control utility at
376      http://config.privoxy.org/ (shortcut: http://p.p/). Browser-based
377      tracing of rule and filter effects. Remote toggling.
378
379   *  Web page filtering (text replacements, removes banners based on size,
380      invisible "web-bugs" and HTML annoyances, etc.)
381
382   *  Modularized configuration that allows for standard settings and user
383      settings to reside in separate files, so that installing updated actions
384      files won't overwrite individual user settings.
385
386   *  Support for Perl Compatible Regular Expressions in the configuration
387      files, and a more sophisticated and flexible configuration syntax.
388
389   *  GIF de-animation.
390
391   *  Bypass many click-tracking scripts (avoids script redirection).
392
393   *  User-customizable HTML templates for most proxy-generated pages (e.g.
394      "blocked" page).
395
396   *  Auto-detection and re-reading of config file changes.
397     
398   *  Most features are controllable on a per-site or per-location basis.
399
400
401 Home Page: 
402    https://www.privoxy.org/
403
404   - Privoxy Developers <privoxy-devel@lists.privoxy.org>