Add HTTPS inspection support
authorIan Silvester <iansilvester@fastmail.fm>
Tue, 7 Feb 2023 13:45:35 +0000 (08:45 -0500)
committerIan Silvester <iansilvester@fastmail.fm>
Tue, 7 Feb 2023 13:45:35 +0000 (08:45 -0500)
OS X 10.11+ PCRE&HTTPS.pkgproj
OS X 10.6+ PCRE.pkgproj
OS X Package Builder HOWTO.txt
build.sh
common.sh
pkg content skeleton/Applications/Privoxy/readme.pdf
pkg content skeleton/Applications/Privoxy/readme.rtfd/TXT.rtf
pkg resources/interface texts/ReadMe64.txt

index ce89fe6..4f90f86 100755 (executable)
                                <key>LOCATION</key>
                                <integer>0</integer>
                                <key>NAME</key>
-                               <string>OS X 10.6+ PCRE &amp; HTTPS</string>
+                               <string>OS X 10.11+ PCRE &amp; HTTPS</string>
                                <key>OVERWRITE_PERMISSIONS</key>
                                <false/>
                                <key>PAYLOAD_SIZE</key>
index 9a90058..8c25641 100755 (executable)
                                                                                                                                                        <key>UID</key>
                                                                                                                                                        <integer>0</integer>
                                                                                                                                                </dict>
-                                                                                                                                               <dict>
-                                                                                                                                                       <key>CHILDREN</key>
-                                                                                                                                                       <array/>
-                                                                                                                                                       <key>GID</key>
-                                                                                                                                                       <integer>0</integer>
-                                                                                                                                                       <key>PATH</key>
-                                                                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/etc/privoxy/vanilla/templates/edit-actions-for-url-string-filter</string>
-                                                                                                                                                       <key>PATH_TYPE</key>
-                                                                                                                                                       <integer>0</integer>
-                                                                                                                                                       <key>PERMISSIONS</key>
-                                                                                                                                                       <integer>420</integer>
-                                                                                                                                                       <key>TYPE</key>
-                                                                                                                                                       <integer>3</integer>
-                                                                                                                                                       <key>UID</key>
-                                                                                                                                                       <integer>0</integer>
-                                                                                                                                               </dict>
                                                                                                                                                <dict>
                                                                                                                                                        <key>CHILDREN</key>
                                                                                                                                                        <array/>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre.1.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre.1.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-8.0.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-8.0.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-8.a</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-8.a</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-8.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-8.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-16.0.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-16.0.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-16.a</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-16.a</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-16.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-16.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-32.0.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-32.0.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-32.a</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-32.a</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-32.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-32.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-posix.3.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-posix.3.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-posix.a</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-posix.a</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                                                                                        <key>GID</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PATH</key>
-                                                                                                       <string>/Users/steph/code/OSXPackageBuilder/pkg content/usr/local/lib/libpcre2-posix.dylib</string>
+                                                                                                       <string>/usr/local/lib/libpcre2-posix.dylib</string>
                                                                                                        <key>PATH_TYPE</key>
                                                                                                        <integer>0</integer>
                                                                                                        <key>PERMISSIONS</key>
                                <key>USE_HFS+_COMPRESSION</key>
                                <false/>
                                <key>VERSION</key>
-                               <string>3.0.32</string>
+                               <string>3.0.33</string>
                        </dict>
                        <key>TYPE</key>
                        <integer>0</integer>
@@ -3715,7 +3699,7 @@ This release includes a bundled copy of PCRE 8.21.</string>
                                </dict>
                        </array>
                        <key>NAME</key>
-                       <string>Privoxy 3.0.32 64 bit</string>
+                       <string>Privoxy 3.0.33 64 bit</string>
                        <key>PAYLOAD_ONLY</key>
                        <false/>
                        <key>TREAT_MISSING_PRESENTATION_DOCUMENTS_AS_WARNING</key>
index 4707761..1c8ff2e 100644 (file)
@@ -7,7 +7,7 @@ ASSUMPTIONS
 
 1. That the Privoxy Git project is available in a folder parallel to the one containing this file.
 - If building for release it MUST have been checked out from Git at whichever release tag you intend to build (as per the instructions in the Privoxy developer manual, i.e. git checkout v_X_Y_Z)
-2. That you have Xcode installed, including the SDKs for each OS X version you intend your package(s) to support.
+2. That you have Command Line Tools for Xcode installed, including the SDKs for each OS X version you intend your package(s) to support.
 3. That your build machine runs Snow Leopard (OS X 10.6) or a more recent release. PackageMaker is substantially different in Tiger and earlier versions of OS X (even the project file format is different).
 4. All references to files and folders in this document should be assumed to be within the OSXPackageBuilder folder unless stated otherwise.
 
@@ -29,17 +29,19 @@ DETAILS
 
 Use privoxy-create.sh (run via sudo) to create the privoxy group and user; these are a prerequisite for the build process.
 
-Use build.sh to build a privoxy binary for the desired (range of) platform(s) and to control whether or not to compile against the external PCRE library (see 1.1 below). The most compatible usage is:
+Use build.sh to build a privoxy binary for the desired (range of) platform(s) and to control whether or not to compile against the external PCRE library (see 1.1 below) or to support HTTPS URL inspection (see 1.2 below).
+
+The most compatible usage is:
 
 ./build.sh leopardupwards
 
-which will build a Universal binary containing targets for PPC, i386 and x86_64 processor architectures that'll run on all Macintosh OS X versions from 10.5 (Leopard) and upwards. The disadvantage of bundling multiple processor architectures is that the build is consequently limited to using the bundled PCRE implementation, which is a Bad Idea™ (see section 1.1 for details).
+which will build a Universal binary containing targets for PPC, i386 and x86_64 processor architectures that'll run on all Macintosh OS X versions from 10.5 (Leopard) and upwards, and has no dependency on an external PCRE or HTTPS library. The disadvantage of bundling multiple processor architectures is that the build is limited to using the bundled PCRE implementation, which is a Bad Idea™ (see section 1.1 for details).
 
-The most common usage therefore would be as follows:
+The most common usage is:
 
-./build.sh current -pcre
+./build.sh current -pcre -https
 
-which will build a binary targeting only x86_64 processors (note that OS X has supported only x86_64 since Snow Leopard).
+which will build a binary targeting only x86_64 processors (note that OS X has supported only x86_64 since Snow Leopard) and compiles in support from an external PCRE and OpenSSL library.
 
 Running build.sh without supplying any parameters will cause it to list all the possible options, should you have an alternative target requirement.
 
@@ -63,17 +65,20 @@ A sample command line that will build Privoxy with external PCRE to run on Snow
 This example assumes that a valid build of PCRE supporting x86_64 processors and a minimum OS X version of 10.6 is present in /usr/local/lib.
 
 
-1.2 Builds for the Privoxy project release set
+1.2 HTTPS Inspection
 
-Three packages are built for this target release set:
+Privoxy by default can only inspect and act upon HTTP URLs. The web is increasingly using HTTPS by default, so to ensure filtering can work for the widest set of web sites, support needs to be enabled for the HTTPS protocol. This means having an external OpenSSL library available (usually via Homebrew):
 
-./build.sh snowleopardx64 -pcre
+./build.sh current -https
+
+
+1.3 Builds for older macOS versions
+
+If you desire to build privacy to support 32 bit Intel or Motorola PPC processors, the following options exist but have not been tested in some years.
 ./build.sh tigeri386 -pcre
 ./build.sh tigerppc -pcre
 
-The rationale is that the first one will support 64 bit systems running 10.6 and higher, the second 32 bit Intel running 10.4 or 10.5, and the last one PPC systems running 10.4 or 10.5.
-
-Note that in order to build each version, the pcre library fileset must be changed to match the architecture being built.
+Note that in order to build each version, the pcre library fileset must be changed to match the architecture being built. It is up to you to build and manage the pcre library filesets.
 
 
 2. Construct the package contents hierarchy
@@ -86,7 +91,7 @@ This comprises two steps:
 
 The file 'pkg resources/interface texts/ReadMe.txt' is displayed on one of the installer screens; it will need to be edited to give a precis of what this release of Privoxy brings. This can be distilled from the README for the latest Privoxy project release.
 
-If there is any late-breaking or important info, it should be added to 'pkg content skeleton/Applications/Privoxy/readme.rtfd. This file MUST be edited with TextEdit, however BEWARE! TextEdit rtfd documents are actually a folder with files within (right-click and choose 'Show package contents' to see within). Inside you'll see a CVS folder that the cvs file storage repository software uses to keep track of that folder's files. If you save an .rtfd document in TextEdit, it will delete the CVS folder! The workaround then is to move that folder elsewhere, make the necessary file edits and save, close TextEdit and then move the folder back in place before committing the files back with cvs.
+If there is any late-breaking or important info, it should be added to 'pkg content skeleton/Applications/Privoxy/readme.rtfd. This file MUST be edited with TextEdit. Once you've saved changes, please also save the file out as a PDF version.
 
 2.2 Bring together all the contents ready to package
 
@@ -95,10 +100,11 @@ Use constructPkgContent.sh to build the hierarchy of folders and files necessary
 ./constructPkgContent.sh -pcre
 
 
-3. Build the package
+3. Build the macOS installation Package
 
-Project files are available for both Apple's Packagemaker and the freeware Whitebox Packages app from http://s.sudre.free.fr/Packaging.html; I highly recommend the latter, for which the project files are:
+Project files are available for the freeware Packages app from http://s.sudre.free.fr/Packaging.html:
 
+- OS X 10.11+ PCRE&HTTPS.pkgproj - if you have built Privoxy against an external PCRE and HTTPS library (see 1.1 & 1.2 above).
 - OS X 10.6+ PCRE.pkgproj - if you have built Privoxy against an external PCRE library (see 1.1 above).
 - OS X 10.4+ PPC PCRE.pkgproj - if you have built Privoxy against an external PCRE library (see 1.1 above) and are targeting PowerPC Macs running 10.4 or 10.5.
 - OS X 10.4+ PPC PCRE.pkgproj - if you have built Privoxy against an external PCRE library (see 1.1 above) and are targeting 32 bit Intel Macs running 10.4 or 10.5.
@@ -113,8 +119,9 @@ If using Apple's Packagemaker, several different project files are supplied thou
 - OS X 10.4+ PCRE.pmdoc - if you have built Privoxy against an external PCRE library (see 1.1 above) but wish to target a minimum OS X version of 10.4.
 - OS X 10.4.pmdoc - for OS X 10.4-minumum builds with the bundled PCRE library.
 
-Refer to the separate document "Packagemaker Instructions.txt" for complete instructions if using Apple's Packagemaker, however the following item is all that needs to be changed if you are building a package for a newer version of Privoxy:
+Refer to the separate document "Packagemaker Instructions.txt" for complete instructions if using Apple's Packagemaker, or else with Packages just alter:
 
-'pkg content left-menu item>pkg content>Configuration>Package Version'
+'Project' left menu->Settings tab->Update the Build Name
+Package name left menu->Settings tab->Update the Tag Version number
 
-Finally click the 'Build' button at screen top-left. The package filename is up to you but I recommend "Privoxy <version> <architecture>.pkg", e.g. "Privoxy 3.0.19 64 bit.pkg".
\ No newline at end of file
+Finally 'Build' menu, 'Build' to, uh, build the package itself. The package file is written to the ./build subfolder.
\ No newline at end of file
index 2f00841..f94ba5e 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -35,8 +35,8 @@
 #
 # must provide target
 #
-if [ $# -eq 0 -o $# -gt 2 ]; then
-  echo "Usage: $0 current | lion | snowleopardx64 | snowleopard | snowleopardi386 | leopardupwards | leopard | leopardi386 | leopardppc | tiger | tigeri386 | tigerppc | panther  [-pcre]"
+if [ $# -eq 0 -o $# -gt 3 ]; then
+  echo "Usage: $0 current | curent-Xcode | lion | snowleopardx64 | snowleopard | snowleopardi386 | leopardupwards | leopard | leopardi386 | leopardppc | tiger | tigeri386 | tigerppc | panther  [-pcre] [-https]"
   exit 1
 fi
 
@@ -44,6 +44,8 @@ fi
 # load common settings
 #
 . ./common.sh $1
+
+# Debugging
 #echo "${XCODE_PATH}"
 #echo ${SYSROOT}
 
@@ -51,18 +53,33 @@ fi
 # must have Xcode
 #
 if [ -z ${XCODE_PATH} ]; then
-  echo "Error: Xcode is not found."
+  echo "Error: Commandline Tools for Xcode is not found."
   exit 1
 fi
 
 #
-# set configure options; include the appropriate user/group as discerned by common.sh and set pcre to dynamic (libpcre) or static (bundled)
-#
-if [ "$2" == "-pcre" ]; then
-       CFLAGS="${CFLAGS} -I/usr/local/include/"
-       LDFLAGS="${LDFLAGS} -L/usr/local/lib"
-       OPTS=${OPTS}
-else
+# set configure options based on the parameters passed at the command line
+
+for option in "$@"
+do
+       # set pcre library source to dynamic (libpcre - more up to date but requires the external library to exist for compiling) or static (bundled with privoxy - older version)
+       if [ "$option" == "-pcre" ]; then
+               CFLAGS="${CFLAGS} -I/usr/local/include/"
+               LDFLAGS="${LDFLAGS} -L/usr/local/lib"
+               OPTS="${OPTS}"
+       fi
+
+       # enable HTTPS Inspection?
+       if [ "$option" == "-https" ]; then
+               CFLAGS="${CFLAGS} -I/usr/local/opt/openssl@3/include/"
+               CPPFLAGS="${CPPFLAGS} -I/usr/local/opt/openssl@3/include/"
+               LDFLAGS="${LDFLAGS} -L/usr/local/opt/openssl@3/lib"
+               OPTS="${OPTS} --with-openssl"
+       fi
+done
+
+# if we didn't select external PCRE, set option to use the bundled one
+if [[ "${CFLAGS}" != *"-I/usr/local/include/"* ]]; then
        OPTS="${OPTS} --disable-dynamic-pcre"
 fi
 
@@ -85,6 +102,11 @@ fi
 #
 echo ""
 echo "Notice: configuring the privoxy software."
+# Debugging
+echo "${CFLAGS}"
+echo "${CPPFLAGS}"
+echo "${LDFLAGS}"
+echo "${OPTS}"
 cd ../${SOURCE_DIR}
 autoheader
 autoconf
index 45444d3..661b82e 100755 (executable)
--- a/common.sh
+++ b/common.sh
@@ -44,13 +44,22 @@ release_name=$1
 #
 # check the release name and assign the build variables accordingly
 #
-# NOTE: SYSROOT ought to be programmatically determined using XCODE_PATH, however since upgrading my build environment to El Capitan xcode-select returns a non-useful path, hence I am forced to set the SYSROOT explicitly for my build environment, which is now a hybrid of XCode 3.2.6 'running' on OS X 10.11. I am not going to risk upgrading XCode for fear of losing the ability to target down-level OS X versions.
+# NOTE: SYSROOT ought to be programmatically determined using XCODE_PATH, however it varies depending upon whether you have Xcode itself installed or the much smaller Commandline Tools for Xcode
 #
 case "${release_name}" in
-  # Mac OS X 10.11 (x86_64 only)
+  # Mac OS X 10.11-plus (x86_64 only)
   "current")
     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
-    SYSROOT="-isysroot ${XCODE_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk"
+    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX.sdk"
+    MACOSX_VERSION="-mmacosx-version-min=10.15"
+    ARCH="-arch x86_64"
+    STARTUP="LaunchDaemon"
+    CFLAGS="-mtune=x86_64 ${CFLAGS}"
+    ;;
+  # Mac OS X 10.11-plus (x86_64 only)
+  "current-Xcode")
+    XCODE_PATH="`/usr/bin/xcode-select -print-path`"
+    SYSROOT="-isysroot ${XCODE_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
     MACOSX_VERSION="-mmacosx-version-min=10.6"
     ARCH="-arch x86_64"
     STARTUP="LaunchDaemon"
@@ -225,24 +234,32 @@ esac
 cd ..
 DIRS_FOUND=0
 SOURCE_DIR=""
-if [ -d dist ]; then
+
+if [ -d privoxy ]; then
        DIRS_FOUND=1
 fi
-if [ -d current ]; then
+if [ -d dist ]; then
        DIRS_FOUND=$(( DIRS_FOUND + 10 ))
 fi
+if [ -d current ]; then
+       DIRS_FOUND=$(( DIRS_FOUND + 20 ))
+fi
 case "${DIRS_FOUND}" in
        # only 'current' found
-       10)
+       20)
                SOURCE_DIR="current"
        ;;
        # only 'dist' found
-       1)
+       10)
                SOURCE_DIR="dist"
        ;;
-       # either both or neither found
-       11|0)
-               read -p 'Could not select the Privoxy source directory (it should be in a directory parallel to that containing this build script). Please supply the directory name (e.g. current or dist): ' SOURCE_DIR
+       # only 'privoxy' found
+       1)
+               SOURCE_DIR="privoxy"
+       ;;
+       # either multiple or no folder found
+       *)
+               read -p 'Could not select the Privoxy source directory (it should be in a directory parallel to that containing this build script). Please supply the directory name (e.g. privoxy): ' SOURCE_DIR
        ;;
 esac
 cd OSXPackageBuilder
index 8763244..bc5b2cc 100644 (file)
Binary files a/pkg content skeleton/Applications/Privoxy/readme.pdf and b/pkg content skeleton/Applications/Privoxy/readme.pdf differ
index 9fc1570..577c690 100644 (file)
@@ -1,29 +1,32 @@
-{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360
-{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fswiss\fcharset0 ArialMT;\f2\fnil\fcharset0 LucidaGrande;
-\f3\fmodern\fcharset0 CourierNewPSMT;}
+{\rtf1\ansi\ansicpg1252\cocoartf2513
+\cocoascreenfonts1\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;\f2\fswiss\fcharset0 Arial-BoldMT;
+\f3\fswiss\fcharset0 ArialMT;\f4\fnil\fcharset0 LucidaGrande;\f5\fmodern\fcharset0 CourierNewPSMT;
+}
 {\colortbl;\red255\green255\blue255;\red255\green19\blue25;\red126\green0\blue20;\red126\green0\blue20;
 \red10\green0\blue139;}
+{\*\expandedcolortbl;;\csgenericrgb\c100000\c7451\c9804;\csgenericrgb\c49412\c0\c7843;\csgenericrgb\c49412\c0\c7843;
+\csgenericrgb\c3922\c0\c54510;}
 \margl1440\margr1440\vieww21240\viewh13460\viewkind0
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
 \f0\b\fs34 \cf2 \
-You must make the following change in order to start using Privoxy!
-\b0\fs24 \cf0 \
+You must make the following change in order to start using Privoxy! Also see below for enabling HTTPS inspection.
+\f1\b0\fs24 \cf0 \
 \
 \
 
-\b\fs26 Setting up your web browser(s) to use Privoxy
-\b0\fs24 \
+\f0\b\fs26 Setting up your web browser(s) to use Privoxy
+\f1\b0\fs24 \
 \
 In order for Privoxy to filter web content for you, it must be set up as a proxy for your web browser. To do this for most web browsers (Safari, Chrome, Camino - see later in this readme for other browsers) go into your System Preferences.. Network.. preference pane. If the padlock at the bottom-left of the window is locked, you'll need to click it and enter your password to makes changes, then click 'Advanced' and click on the Proxies tab. In both the Web Proxy (HTTP) 
-\b and
-\b0  Secure Web Proxy (HTTPS) entries, add the value 127.0.0.1 in the Web Proxy Server box and 8118 in the box to it's right (see screenshot below). Click 'OK' and then 'Apply' and you're all set!\
+\f0\b and
+\f1\b0  Secure Web Proxy (HTTPS) entries, add the value 127.0.0.1 in the Web Proxy Server box and 8118 in the box to it's right (see screenshot below). Click 'OK' and then 'Apply' and you're all set!\
 \
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
-\cf0 {{\NeXTGraphic Screen shot 2012-01-30 at 1.12.07 PM.png \width13300 \height10400
-}¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+\cf0 {{\NeXTGraphic Screen shot 2012-01-30 at 1.12.07 PM.png \width13300 \height10400 \appleattachmentpadding0 \appleembedtype0 \appleaqc
+}¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 \cf0 \
 \
 Firefox and Opera have their proxy server settings within the application, for Firefox you'll find the settings at:\
@@ -37,160 +40,167 @@ Opera > Preferences > Advanced > Network > Proxy Servers\
 All done! To test that you've set things up correctly please follow the instructions in the next section.\
 \
 \
+\pard\pardeftab720\sa240\partightenfactor0
+
+\f2\b\fs36 \cf3 Enabling HTTPS inspection
+\f1\b0\fs24 \cf0 \
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
+\cf0 If you would like Privoxy to be able to filter the content of your HTML files even when they are HTTPS encrypted, please refer to {\field{\*\fldinst{HYPERLINK "https://www.privoxy.org/user-manual/config.html#HTTPS-INSPECTION-DIRECTIVES"}}{\fldrslt this section}} of the User Manual for the required config file changes, and {\field{\*\fldinst{HYPERLINK "https://www.privoxy.org/user-manual/actions-file.html#HTTPS-INSPECTION"}}{\fldrslt this section}} for guidance on configuring actions to control which sites it applies to.\
+\
 \
-\pard\pardeftab720\sa240\ql\qnatural
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\b\fs36 \cf3 Checking that Privoxy is working for you
-\f0\b0\fs24 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\f2\b\fs36 \cf4 Checking that Privoxy is working for you
+\f1\b0\fs24 \cf0 \
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 \cf0 Simply point your web browser here:\
 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 {\field{\*\fldinst{HYPERLINK "http://config.privoxy.org/"}}{\fldrslt \cf0 http://config.privoxy.org/}}\
 \
 If you see a page like the following screenshot then all is well and Privoxy is filtering web content for you.
-\b\fs26 \
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+\f0\b\fs26 \
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
 
-\b0\fs24 \cf0 {{\NeXTGraphic Screen shot 2012-01-30 at 1.23.15 PM.png \width25300 \height12660
-}¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+\f1\b0\fs24 \cf0 {{\NeXTGraphic Screen shot 2012-01-30 at 1.23.15 PM.png \width25300 \height12660 \appleattachmentpadding0 \appleembedtype0 \appleaqc
+}¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 \cf0 \
 \
 \
 
-\b\fs26 \
-\pard\pardeftab720\sa240\ql\qnatural
+\f0\b\fs26 \
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\fs36 \cf3 Known Problems
+\f2\fs36 \cf4 Known Problems
 \f0\fs26 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
-\b0\fs24 \cf0 The OS X 'Mavericks' & 'Yosemite' releases have a bug that causes an intermittent problem for Privoxy that a simple upgrade install will not cure. If you have a persistent problem with Privoxy not starting (in your web browser you get a "Cannot connect to proxy server" error) then the best advice is to completely uninstall Privoxy (using the guide in the readme file at /Applications/Privoxy) then reinstall from scratch. Please ensure you take a copy of your config file and filters if you have made any customisations you do not want to lose.\
+\f1\b0\fs24 \cf0 The OS X 'Mavericks' & 'Yosemite' releases have a bug that causes an intermittent problem for Privoxy that a simple upgrade install will not cure. If you have a persistent problem with Privoxy not starting (in your web browser you get a "Cannot connect to proxy server" error) then the best advice is to completely uninstall Privoxy (using the guide in the readme file at /Applications/Privoxy) then reinstall from scratch. Please ensure you take a copy of your config file and filters if you have made any customisations you do not want to lose.\
 \
 For the technically minded, the bug is that the _privoxy user & group cannot be reliably read from directory services at system startup time (there are suggestions that usernames with leading underscore are no longer properly supported), causing Privoxy to fail to load. Details can be found in these discussion threads:\
 \
 https://sourceforge.net/p/ijbswa/support-requests/1601/\
 https://sourceforge.net/p/ijbswa/support-requests/1599/\
 https://sourceforge.net/p/ijbswa/bugs/882/
-\b\fs26 \
+\f0\b\fs26 \
 \
 \
 \
-\pard\pardeftab720\sa240\ql\qnatural
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\fs36 \cf4 Is there a particular feature from our TODO list you'd like to see implemented sooner rather than later? Would you like to donate in general?\
-\pard\pardeftab720\sa240\ql\qnatural
+\f2\fs36 \cf4 Is there a particular feature from our TODO list you'd like to see implemented sooner rather than later? Would you like to donate in general?\
+\pard\pardeftab720\sa240\partightenfactor0
 
-\b0\fs24 \cf0 Donations are welcome, and you are free to discuss with us what your donation should be used for. Our {\field{\*\fldinst{HYPERLINK "http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO"}}{\fldrslt \cf5 TODO list}} is rather long and being able to pay one (or more) developers to work on Privoxy would make a huge difference, even if it was only for a couple of weeks. Donations may also be used for Privoxy-related travel expenses (for example to attend conferences), for hardware used for Privoxy development and for hosting expenses etc.\
+\f3\b0\fs24 \cf0 Donations are welcome, and you are free to discuss with us what your donation should be used for. Our {\field{\*\fldinst{HYPERLINK "http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO"}}{\fldrslt \cf5 TODO list}} is rather long and being able to pay one (or more) developers to work on Privoxy would make a huge difference, even if it was only for a couple of weeks. Donations may also be used for Privoxy-related travel expenses (for example to attend conferences), for hardware used for Privoxy development and for hosting expenses etc.\
 Privoxy is an associated project of {\field{\*\fldinst{HYPERLINK "http://www.spi-inc.org/"}}{\fldrslt \cf5 Software in the Public Interest (SPI)}}, which allows us to receive tax-deductible donations in the United States. If you want to donate through SPI, please use {\field{\*\fldinst{HYPERLINK "http://www.spi-inc.org/donations"}}{\fldrslt \cf5 SPI's donation page}} to see what the options are.\
 You can also donate to Privoxy using a bank account managed by {\field{\*\fldinst{HYPERLINK "https://www.zwiebelfreunde.de/"}}{\fldrslt \cf5 Zwiebelfreunde e.V.}}:\
 \'a0Name\'a0on\'a0Account:\'a0Zwiebelfreunde\'a0e.V.
-\f2 \uc0\u8232 
-\f1 \'a0IBAN:\'a0DE95430609671126825604
-\f2 \uc0\u8232 
-\f1 \'a0BIC:\'a0GENODEM1GLS
-\f2 \uc0\u8232 
-\f1 \'a0Bank:\'a0GLS\'a0Bank\
+\f4 \uc0\u8232 
+\f3 \'a0IBAN:\'a0DE95430609671126825604
+\f4 \uc0\u8232 
+\f3 \'a0BIC:\'a0GENODEM1GLS
+\f4 \uc0\u8232 
+\f3 \'a0Bank:\'a0GLS\'a0Bank\
 Donations made through Zwiebelfreunde e.V. are tax-deductible in Germany and other countries that recognize German charitable clubs. Feel free to use the Subject field to provide a name to be credited and a list of TODO list items you are interested in the most. For example: Max Mustermann: #16, #1, #14.\
 If you have any questions regarding donations please mail to either the public user mailing list or, if it's a private matter, to {\field{\*\fldinst{HYPERLINK "mailto:fk@fabiankeil.de"}}{\fldrslt \cf5 Fabian Keil}} (Privoxy's SPI liason) directly.\
-\pard\pardeftab720\ql\qnatural
+\pard\pardeftab720\partightenfactor0
 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
 \f0\b\fs26 \cf0 \
-\pard\pardeftab720\sa240\ql\qnatural
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\fs36 \cf3 Configuring Privoxy
-\f0\b0\fs24 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\f2\fs36 \cf4 Configuring Privoxy
+\f1\b0\fs24 \cf0 \
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 \cf0 You can access your Privoxy installation configuration at:\
 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 {\field{\*\fldinst{HYPERLINK "http://config.privoxy.org/"}}{\fldrslt \cf0 http://config.privoxy.org/}}\
 \
 Note that to make configuration changes here you first have to manually enable this feature. This is done by setting parameter enable-edit-actions to the value 1 in {\field{\*\fldinst{HYPERLINK "file:///usr/local/etc/privoxy/config"}}{\fldrslt Privoxy's config file}}, which you'll need to edit as an administrator in order to save your changes. Full documentation for Privoxy can be found here:\
 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 {\field{\*\fldinst{HYPERLINK "file:///usr/local/share/doc/privoxy/"}}{\fldrslt \cf0 file:///usr/local/share/doc/privoxy/}}  (a good place to start is index.html or README)\
 \
 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
-\b\fs26 \cf0 \
-\pard\pardeftab720\sa240\ql\qnatural
+\f0\b\fs26 \cf0 \
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\fs36 \cf3 Merging in an existing configuration
-\f0\b0\fs24 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\f2\fs36 \cf4 Merging in an existing configuration
+\f1\b0\fs24 \cf0 \
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 \cf0 If you already had Privoxy installed prior to this installation, then your configuration is unchanged. It is possible however that the configuration files supplied with this new installation contain new options that your existing configuration files do not. If you wish to manually merge your settings into the new files you will find them all at /usr/local/etc/privoxy/\
 \
 \
 \
-\pard\pardeftab720\sa240\ql\qnatural
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\b\fs36 \cf3 Starting and stopping Privoxy
+\f2\b\fs36 \cf4 Starting and stopping Privoxy
 \f0\fs26 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
-\b0\fs24 \cf0 Privoxy can be started and stopped using the two scripts in /Applications/Privoxy named startPrivoxy.sh and stopPrivoxy.sh. They must be run as sudo from an account that has administrative rights. To do this, open a Terminal window then enter the following commands:\
+\f1\b0\fs24 \cf0 Privoxy can be started and stopped using the two scripts in /Applications/Privoxy named startPrivoxy.sh and stopPrivoxy.sh. They must be run as sudo from an account that has administrative rights. To do this, open a Terminal window then enter the following commands:\
 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
-\f3 \cf0 cd /Applications/Privoxy\
+\f5 \cf0 cd /Applications/Privoxy\
 sudo ./startPrivoxy.sh\
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
-\f0 \cf0 \
+\f1 \cf0 \
 <or>
-\b \
+\f0\b \
 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
-\f3\b0 \cf0 sudo ./stopPrivoxy.sh\
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\f5\b0 \cf0 sudo ./stopPrivoxy.sh\
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
 \f0\b \cf0 \
 \
 \
-\pard\pardeftab720\sa240\ql\qnatural
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\fs36 \cf3 Uninstalling Privoxy
-\f0\b0\fs24 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\f2\fs36 \cf4 Uninstalling Privoxy
+\f1\b0\fs24 \cf0 \
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 \cf0 To remove Privoxy once it has been installed, first of all reconfigure your web browser(s) not to use Privoxy as a proxy (see the top of this file for details). Once you're happy that you're not using Privoxy any more you can run its uninstall script.\
 \
 To do this, open a Terminal window then enter the following commands:\
 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
-\f3 \cf0 cd /Applications/Privoxy\
+\f5 \cf0 cd /Applications/Privoxy\
 sudo ./uninstall.command\
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 
-\f0 \cf0 \
+\f1 \cf0 \
 You will be prompted for your password, since the script requires super-user privileges to run. If your account is not an administrator account, then the script won't work; you'll need to log in using an administrator account and try again. If you have already dragged the Privoxy application folder to the trash, use the 'Put Back' feature to restore it or else recreate the Privoxy folder in your Applications folder, drag the uninstall.command file from the trash to that folder and proceed as above.\
 \
 \
 \
-\pard\pardeftab720\sa240\ql\qnatural
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\b\fs36 \cf3 Thanks
-\f0\b0\fs24 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+\f2\b\fs36 \cf4 Thanks
+\f1\b0\fs24 \cf0 \
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
 \cf0 This installer is based on previous work done by Mark Miller, David Schmidt and John Daniels, to whom I am indebted. Thanks also to Fabian Keil for occasional technical and significant licensing guidance, and to Andrew Jones, Andreas Rutkauskas, Julien Joubert, Lizik Grelier and Steven Kolins for testing.\
 \
 \
 \
-\pard\pardeftab720\sa240\ql\qnatural
+\pard\pardeftab720\sa240\partightenfactor0
 
-\f1\b\fs36 \cf3 Copyright and licensing
-\f0\b0\fs24 \cf0 \
-\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
-\cf0 All files that comprise this installation of Privoxy are written by and Copyright (C) 2001-2012 the Privoxy team. http://www.privoxy.org/\
+\f2\b\fs36 \cf4 Copyright and licensing
+\f1\b0\fs24 \cf0 \
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
+\cf0 All files that comprise this installation of Privoxy are written by and Copyright (C) 2001-2023 the Privoxy team. http://www.privoxy.org/\
 \
-\pard\pardeftab720\ql\qnatural
+\pard\pardeftab720\partightenfactor0
 \cf0 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\
 \
 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \'a0See the GNU General Public License for more details.\
index 3bbb170..4af0135 100755 (executable)
-September 2021, Privoxy 3.0.32 (stable) macOS installer V1.0 released.
+February 2023, Privoxy 3.0.34 (stable) macOS installer V1.0 released.
 
 Version Support
 
-This installer has been tested on Macs with Intel 64 bit processors running OS X 10.11 and higher. It may work on earlier releases, but is untested.
+This installer has been tested on  macOS macOS 10.15. It is likely to work on macOS as old as 10.6, and as new as the current version.
 
 What's New
 
-Privoxy 3.0.32 fixes multiple DoS issues and a couple of other bugs. The issues also affect earlier Privoxy releases. As such is recommended for all users.
+For macOS users, the main news is that Privoxy 3.0.34 introduces HTTPS inspection support for macOS. Please read the user manual to learn how to enable this much sought-after feature. This realease also fixes a few minor bugs and comes with a couple of general improvements and new features.
 
-Full ChangeLog
 
-- Security/Reliability:
-  - ssplit(): Remove an assertion that could be triggered with a
-    crafted CGI request.
-    Commit 2256d7b4d67. OVE-20210203-0001.
-    Reported by: Joshua Rogers (Opera)
-  - cgi_send_banner(): Overrule invalid image types. Prevents a
-    crash with a crafted CGI request if Privoxy is toggled off.
-    Commit e711c505c48. OVE-20210206-0001.
-    Reported by: Joshua Rogers (Opera)
-  - socks5_connect(): Don't try to send credentials when none are
-    configured. Fixes a crash due to a NULL-pointer dereference
-    when the socks server misbehaves.
-    Commit 85817cc55b9. OVE-20210207-0001.
-    Reported by: Joshua Rogers (Opera)
-  - chunked_body_is_complete(): Prevent an invalid read of size two.
-    Commit a912ba7bc9c. OVE-20210205-0001.
-    Reported by: Joshua Rogers (Opera)
-  - Obsolete pcre: Prevent invalid memory accesses with an invalid
-    pattern passed to pcre_compile(). Note that the obsolete pcre code
-    is scheduled to be removed before the 3.0.33 release. There has been
-    a warning since 2008 already.
-    Commit 28512e5b624. OVE-20210222-0001.
-    Reported by: Joshua Rogers (Opera)
+Full ChangeLog
 
 - Bug fixes:
-  - Properly parse the client-tag-lifetime directive. Previously it was
-    not accepted as an obsolete hash value was being used.
-    Reported by: Joshua Rogers (Opera)
-  - decompress_iob(): Prevent reading of uninitialized data.
-    Reported by: Joshua Rogers (Opera).
-  - decompress_iob(): Don't advance cur past eod when looking
-    for the end of the file name and comment.
-  - decompress_iob(): Cast value to unsigned char before shifting.
-    Prevents a left-shift of a negative value which is undefined behaviour.
-    Reported by: Joshua Rogers (Opera)
-  - gif_deanimate(): Confirm that that we have enough data before doing
-    any work. Fixes a crash when fuzzing with an empty document.
-    Reported by: Joshua Rogers (Opera).
-  - buf_copy(): Fail if there's no data to write or nothing to do.
-    Prevents undefined behaviour "applying zero offset to null pointer".
-    Reported by: Joshua Rogers (Opera)
-  - log_error(): Treat LOG_LEVEL_FATAL as fatal even when --stfu is
-    being used while fuzzing.
-    Reported by: Joshua Rogers (Opera).
-  - Respect DESTDIR when considering whether or not to install
-    config files with ".new" extension.
-  - OpenSSL ssl_store_cert(): Fix two error messages.
-  - Fix a couple of format specifiers.
-  - Silence compiler warnings when compiling with NDEBUG.
-  - fuzz_server_header(): Fix compiler warning.
-  - fuzz_client_header(): Fix compiler warning.
-  - cgi_send_user_manual(): Also reject requests if the user-manual
-    directive specifies a https:// URL. Previously Privoxy would try and
-    fail to open a local file.
+  - Improve the handling of chunk-encoded responses by buffering the data
+    even if filters are disabled and properly keeping track of where the
+    various chunks are supposed to start and end. Previously Privoxy would
+    merely check the last bytes received to see if they looked like the
+    last-chunk. This failed to work if the last-chunk wasn't received in one
+    read and could also result in actual data being misdetected
+    as last-chunk.
+    Should fix: SF support request #1739.
+    Reported by: withoutname.
+  - remove_chunked_transfer_coding(): Refuse to de-chunk invalid data
+    Previously the data could get corrupted even further.
+    Now we simply pass the unmodified data to the client.
+  - gif_deanimate(): Tolerate multiple image extensions in a row.
+    This allows to deanimate all the gifs on:
+    https://commons.wikimedia.org/wiki/Category:Animated_smilies
+    Fixes SF bug #795 reported by Celejar.
+  - OpenSSL generate_host_certificate(): Use X509_get_subject_name()
+    instead of X509_get_issuer_name() to get the issuer for generated
+    website certificates so there are no warnings in the browser when using
+    an intermediate CA certificate instead of a self-signed root certificate.
+    Problem reported and patch submitted by Chakib Benziane.
+  - can_filter_request_body(): Fix a log message that contained a spurious u.
+  - handle_established_connection(): Check for pending TLS data from the client
+    before checking if data is available on the connection.
+    The TLS library may have already consumed all the data from the client
+    response in which case poll() and select() will not detect that data is
+    available to be read.
+    Sponsored by: Robert Klemme.
+  - ssl_send_certificate_error(): Don't crash if there's no certificate
+    information available. This is only relevant when Privoxy is built with
+    wolfSSL 5.0.0 or later (code not yet published). Earlier wolfSSL versions
+    or the other TLS backends don't seem to trigger the crash.
+  - socks5_connect(): Add support for target hosts specified as IPv4 address
+    Previously the IP address was sent as domain.
 
 - General improvements:
-  - Log the TLS version and the the cipher when debug 2 is enabled.
-  - ssl_send_certificate_error(): Respect HEAD requests by not sending a body.
-  - ssl_send_certificate_error(): End the body with a single new line.
-  - serve(): Increase the chances that the host is logged when closing
-    a server socket.
-  - handle_established_connection(): Add parentheses to clarify an expression
-    Suggested by: David Binderman
-  - continue_https_chat(): Explicitly unset CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE
-    if process_encrypted_request() fails. This makes it more obvious that the
-    connection will not be reused. Previously serve() relied on
-    CSP_FLAG_SERVER_CONTENT_LENGTH_SET and CSP_FLAG_CHUNKED being unset.
-    Inspired by a patch from Joshua Rogers (Opera).
-  - decompress_iob(): Add periods to a couple of log messages
-  - Terminate the body of the HTTP snipplets with a single new line
-    instead of "\r\n".
-  - configure: Add --with-assertions option and only enable assertions
-    when it is used
-  - windows build: Use --with-brotli and --with-mbedtls by default and
-    enable dynamic error checking.
-  - gif_deanimate(): Confirm we've got an image before trying to write it
-    Saves a pointless buf_copy() call.
-  - OpenSSL ssl_store_cert(): Remove a superfluous space before the serial number.
+  - Add a client-body-tagger action which creates tags based on
+    the content of the request body.
+    Sponsored by: Robert Klemme.
+  - When client-body filters are enabled, buffer the whole request
+    before opening a connection to the server.
+    Makes it less likely that the server connection times out
+    and we don't open a connection if the buffering fails anyway.
+    Sponsored by: Robert Klemme.
+  - Add periods to a couple of log messages.
+  - accept_connection(): Add missing space to a log message.
+  - Initialize ca-related defaults with strdup_or_die() so errors
+    aren't silently ignored.
+  - make_path: Use malloc_or_die() in cases where allocation errors
+    were already fatal anyway.
+  - handle_established_connection(): Improve an error message slightly.
+  - receive_client_request(): Reject https URLs without CONNECT request.
+  - Include all requests in the statistics if mutexes are available.
+    Previously in case of reused connections only the last request got
+    counted. The statistics still aren't perfect but it's an improvement.
+  - Add read_socks_reply() and start using it in socks5_connect()
+    to apply the socket timeout more consistently.
+  - socks5_connect(): Deal with domain names in the socks reply
+  - Add a filter for bundeswehr.de that hides the cookie and
+    privacy info banner.
 
 - Action file improvements:
-  - Disable fast-redirects for .golem.de/
-  - Unblock requests to adri*.
-  - Block requests for trc*.taboola.com/
-  - Disable fast-redirects for .linkedin.com/
-
-- Filter file improvements:
-  - Make the second pcrs job of the img-reorder filter greedy again.
-    The ungreedy version broke the img tags on:
-    https://bulk.fefe.de/scalability/.
+  - Disable filter{banners-by-size} for .freiheitsfoo.de/.
+  - Disable filter{banners-by-size} for freebsdfoundation.org/.
+  - Disable fast-redirects for consent.youtube.com/.
+  - Block requests to ups.xplosion.de/.
+  - Block requests for elsa.memoinsights.com/t.
+  - Fix a typo in a test.
+  - Disable fast-redirects for launchpad.net/.
+  - Unblock .eff.org/.
+  - Stop unblocking .org/.*(image|banner) which appears to be too generous
+    It let requests like:
+    https://stats.noblogs.org/piwik.php?action_name=anti%20gentrifizierungs%20fest&idsite=10175&rec=1&r=220192&h=17&m=7&s=44&url=https%3A%2F%2Fmuellemcalling.noblogs.org%2F&urlref=https%3A%2F%2Fmuellemcalling.noblogs.org%2Finfostande%2F&_id=&_idn=1&_refts=0&send_image=0&cookie=1&res=1366x768&pv_id=eqr7jX&pf_net=7&pf_srv=3&pf_tfr=2281&pf_dm1=156
+    pass.
+    The example URL http://www.gnu.org/graphics/gnu-head-banner.png is
+    already unblocked due to .gnu.org being unblocked.
+  - Unblock adfd.org/.
+  - Disable filter{banners-by-link} for .eff.org/.
+  - Block requests to odb.outbrain.com/.
+  - Disable fast-redirects for .gandi.net/.
+  - Disable fast-redirects{} for .onion/.*/status/.
+  - Disable fast-redirects{} for twitter.com/.*/status/.
+  - Unblock pinkstinks.de/.
+  - Disable fast-redirects for .hagalil.com/.
 
 - Privoxy-Log-Parser:
-  - Highlight a few more messages.
-  - Clarify the --statistics output. The shown "Reused connections"
-    are server connections so name them appropriately.
-  - Bump version to 0.9.3.
+  - Bump version to 0.9.5.
+  - Highlight more log messages.
+  - Highlight the Crunch reason only once. Previously the "crunch reason"
+    could also be highlighted when the URL contained a matching string.
+    The real crunch reason only occurs once per line, so there's no need
+    to continue looking for it after it has been found once.
+    While at it, add a comment with an example log line.
 
-- Privoxy-Regression-Test:
-  - Add the --check-bad-ssl option to the --help output.
-  - Bump version to 0.7.3.
+- uagen:
+  - Bump version to 1.2.4.
+  - Update BROWSER_VERSION and BROWSER_REVISION to 102.0
+    to match the User-Agent of the current Firefox ESR.
+  - Explicitly document that changing the 'Gecko token' is suspicious.
+  - Consistently use a lower-case 'c' as copyright symbol.
+  - Bump copyright.
+  - Add 'aarch64' as Linux architecture.
+  - Add OpenBSD architecture 'arm64'.
+  - Stop using sparc64 as FreeBSD architecture.
+    It hasn't been supported for a while now.
 
-- Documentation:
-  - Add pushing the created tag to the release steps in the developer manual.
-  - Clarify that 'debug 32768' should be used in addition to the other debug
-    directives when reporting problems.
-  - Add a 'Third-party licenses and copyrights' section to the user manual.
+- Build system:
+  - Makefile: Add a 'dok' target that depends on the 'error' target
+    to show the "You are not using GNU make or did nor run configure"
+    message.
+  - configure: Fix --with-msan option.
+    Also (probably) reported by Andrew Savchenko.
+
+- macOS build system:
+  - Enable HTTPS inspection when building the macOS binary
+    (using OpenSSL as TLS library).
 
+- Documentation:
+  - Add OpenSSL to the list of libraries that may be licensed under the
+    Apache 2.0 license in which case the linked Privoxy binary has to be
+    distributed under the GPLv3 or later.
+  - config: Fix the documented ca-directory default value.
+    Reported by avoidr.
+  - Rebuild developer-manual and tidy with 'HTML Tidy for FreeBSD version 5.8.0'.
+  - Update developer manual with new macOS packaging instructions.
+  - Note that the FreeBSD installation instructions work for
+    ElectroBSD as well.
+  - Note that FreeBSD/ElectroBSD users can try to install Privoxy
+    as binary package using 'pkg'.
 
 Please see the "What's New in this Release" section in the User Manual for details of all new features introduced and bugs fixed in this release.