Add HTTPS inspection support
[OSXPackageBuilder.git] / OS X Package Builder HOWTO.txt
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