diff --git a/.gitmodules b/.gitmodules index a10c91ea..caa21c31 100644 --- a/.gitmodules +++ b/.gitmodules @@ -26,3 +26,6 @@ path = external/obfsclient url = https://git.torproject.org/user/yawning/obfsclient.git +[submodule "external/polipo"] + path = external/polipo + url = https://github.com/jech/polipo.git diff --git a/external/Makefile b/external/Makefile index aa6922cb..899bb2f6 100644 --- a/external/Makefile +++ b/external/Makefile @@ -74,7 +74,7 @@ endif tor tor-clean \ liballium liballium-clean \ obfsclient obfsclient-clean \ - privoxy privoxy-clean + polipo polipo-clean all: assets @@ -280,37 +280,20 @@ obfsclient-clean: git clean -fdx #------------------------------------------------------------------------------# -# privoxy +# polipo +polipo-build-stamp: + $(MAKE) CC="$(CC)" -C polipo + touch polipo-build-stamp -privoxy/config.log: - tar xzvf privoxy.tar.gz - mv privoxy*stable privoxy - cp privoxy.configure.in privoxy/configure.in - cd privoxy && \ - autoheader - cd privoxy && \ - autoconf - cp config.sub privoxy - cp config.guess privoxy - cd privoxy && \ - CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ - ./configure \ - --host=arm-linux-eabi --enable-pthread -## --disable-pthread - -privoxy-build-stamp: privoxy/config.log - $(MAKE) -C privoxy - touch privoxy-build-stamp - -privoxy: privoxy-build-stamp +polipo: polipo-build-stamp test -d bin || mkdir bin - cp privoxy/privoxy bin + cp polipo/polipo bin -privoxy-clean: - -rm -f bin/privoxy - -rm -f privoxy-build-stamp - -rm -rf privoxy +polipo-clean: + -rm -f bin/polipo + -rm -f polipo-build-stamp + -rm -rf polipo #------------------------------------------------------------------------------# # JTorControl library @@ -338,16 +321,16 @@ jtorctl-clean: #in order to stop Android OS (older devices) from trying to compress/decompress it #this is related to a bug in compression of assets and resources > 1MB -assets: tor privoxy jtorctl iptables obfsclient +assets: tor polipo jtorctl iptables obfsclient install bin/jtorctl.jar ../libs install -d ../res/raw - -zip ../res/raw/privoxy.mp3 bin/privoxy + -zip ../res/raw/polipo.mp3 bin/polipo -zip ../res/raw/obfsclient.mp3 bin/obfsclient -zip ../res/raw/tor.mp3 bin/tor -zip ../res/raw/xtables.mp3 bin/xtables assets-clean: - -rm ../res/raw/privoxy.mp3 + -rm ../res/raw/polipo.mp3 -rm ../res/raw/obfsclient.mp3 -rm ../res/raw/tor.mp3 -rm ../res/raw/xtables.mp3 @@ -356,7 +339,7 @@ assets-clean: #------------------------------------------------------------------------------# # cleanup, cleanup, put the toys away -clean: openssl-clean libevent-clean tor-clean privoxy-clean jtorctl-clean liballium-clean obfsclient-clean assets-clean +clean: openssl-clean libevent-clean tor-clean polipo-clean jtorctl-clean liballium-clean obfsclient-clean assets-clean #------------------------------------------------------------------------------# # debugging stuff diff --git a/external/polipo b/external/polipo new file mode 160000 index 00000000..af08a108 --- /dev/null +++ b/external/polipo @@ -0,0 +1 @@ +Subproject commit af08a108acb9ac717f114d81c60cad0ccc0d7c21 diff --git a/external/privoxy.configure.in b/external/privoxy.configure.in deleted file mode 100644 index 2945a7a4..00000000 --- a/external/privoxy.configure.in +++ /dev/null @@ -1,1463 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -dnl -dnl $Id: configure.in,v 1.126 2009/03/21 10:45:06 fabiankeil Exp $ -dnl -dnl Written by and Copyright (C) 2001-2009 the -dnl Privoxy team. http://www.privoxy.org/ -dnl -dnl Based on the Internet Junkbuster originally written -dnl by and Copyright (C) 1997 Anonymous Coders and -dnl Junkbusters Corporation. http://www.junkbusters.com -dnl -dnl This program is free software; you can redistribute it -dnl and/or modify it under the terms of the GNU General -dnl Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at -dnl your option) any later version. -dnl -dnl This program is distributed in the hope that it will -dnl be useful, but WITHOUT ANY WARRANTY; without even the -dnl implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. See the GNU General Public -dnl License for more details. -dnl -dnl The GNU General Public License should be included with -dnl this file. If not, you can view it at -dnl http://www.gnu.org/copyleft/gpl.html -dnl or write to the Free Software Foundation, Inc., 59 -dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA. -dnl -dnl $Log: configure.in,v $ -dnl Revision 1.126 2009/03/21 10:45:06 fabiankeil -dnl Declare the code stable. -dnl -dnl Revision 1.125 2009/02/25 16:58:03 fabiankeil -dnl And the journey continues. Bump version to 3.0.12 UNRELEASED. -dnl -dnl Revision 1.124 2009/02/12 15:42:00 fabiankeil -dnl Declare the code stable. -dnl -dnl Revision 1.123 2009/02/06 18:17:32 fabiankeil -dnl Boldly enable keep-alive support where possible. -dnl -dnl Revision 1.122 2008/10/18 11:17:52 fabiankeil -dnl Connection keep-alive support is ready for testing, -dnl allow enabling it through the configure script. -dnl -dnl Revision 1.121 2008/08/30 12:03:07 fabiankeil -dnl Remove FEATURE_COOKIE_JAR. -dnl -dnl Revision 1.120 2008/08/21 17:19:50 fabiankeil -dnl Change version to 3.0.11 UNRELEASED. -dnl -dnl Revision 1.119 2008/08/13 16:53:50 fabiankeil -dnl Change version to 3.0.10 stable. -dnl -dnl Revision 1.118 2008/06/27 12:50:44 fabiankeil -dnl Here's looking at you, Gentoo Linux: Show a warning if -dnl --disable-pthread is used even though pthreads are available. -dnl -dnl Revision 1.117 2008/06/14 12:47:30 fabiankeil -dnl Set CODE_STATUS to beta. -dnl -dnl Revision 1.116 2008/06/08 11:55:09 fabiankeil -dnl - Show a warning if the soon-to-be-removed static PCRE code is used. -dnl - Hide the "using built-in static pcrs" message. With dynamic linking -dnl against PCRS disabled, the message isn't particularly useful. -dnl -dnl Revision 1.115 2008/05/25 15:50:14 fabiankeil -dnl Try to use zlib by default, but just show a warning if it's -dnl unavailable. Remove --enable-zlib, add --disable-zlib. -dnl -dnl Revision 1.114 2008/04/06 15:18:33 fabiankeil -dnl Oh well, rename the --enable-pcre-host-patterns option to -dnl --enable-extended-host-patterns as it's not really PCRE syntax. -dnl -dnl Revision 1.113 2008/04/06 14:54:26 fabiankeil -dnl Use PCRE syntax in host patterns when configured -dnl with --enable-pcre-host-patterns. -dnl -dnl Revision 1.112 2008/03/27 18:27:22 fabiankeil -dnl Remove kill-popups action. -dnl -dnl Revision 1.111 2008/02/03 14:40:47 fabiankeil -dnl Remove unused OSX_DARWIN macro. Reported by Mark Miller in #1852529. -dnl -dnl Revision 1.110 2008/01/26 10:52:13 fabiankeil -dnl Change version to 3.0.9 UNRELEASED. -dnl -dnl Revision 1.109 2008/01/20 14:07:09 fabiankeil -dnl Set CODE_STATUS to stable. -dnl -dnl Revision 1.108 2007/12/10 02:30:00 hal9 -dnl Change versioning for > 3.0.7 && < 3.0.8 -dnl -dnl Revision 1.107 2007/11/15 02:50:14 hal9 -dnl Setting to "beta" (for doc builds, etc). -dnl -dnl Revision 1.106 2007/05/11 11:49:41 fabiankeil -dnl Check for strlcat(). -dnl -dnl Revision 1.105 2007/04/09 17:34:58 fabiankeil -dnl Check for snprintf(). -dnl -dnl Revision 1.104 2007/03/31 13:35:11 fabiankeil -dnl Add checks for gettimeofday() and strlcpy(). -dnl -dnl Revision 1.103 2007/01/20 16:29:38 fabiankeil -dnl Suppress edit buttons for action files if Privoxy has -dnl no write access. Suggested by Roland in PR 1564026. -dnl -dnl Revision 1.102 2007/01/18 14:55:45 fabiankeil -dnl Check for tzset() and putenv() to make sure the -dnl replacement timegm() isn't included on systems -dnl where it fails to compile. -dnl -dnl Revision 1.101 2007/01/12 15:20:17 fabiankeil -dnl Temporarily ignore external libpcrs to prevent -dnl problems that are fixed in Privoxy's own version. -dnl -dnl Revision 1.100 2007/01/07 07:38:10 joergs -dnl Disabled -pipe for AmigaOS4. -dnl -dnl Revision 1.99 2007/01/01 19:36:37 fabiankeil -dnl Integrate a modified version of Wil Mahan's -dnl zlib patch (PR #895531). -dnl -dnl Revision 1.98 2006/12/17 19:15:26 fabiankeil -dnl Added ./configure switch for FEATURE_GRACEFUL_TERMINATION. -dnl -dnl Revision 1.97 2006/11/21 18:32:46 hal9 -dnl Setting version to 3.0.7 UNRELEASED for lack of a better setting. -dnl -dnl Revision 1.96 2006/11/18 14:42:51 fabiankeil -dnl Mark as stable. -dnl -dnl Revision 1.95 2006/11/14 02:08:59 hal9 -dnl Setting version string to 3.0.6 UNRELEASED. This needs to be reset to 3.0.6 -dnl stable just before CVS is tagged for release. -dnl -dnl Revision 1.94 2006/11/13 19:05:50 fabiankeil -dnl Make pthread mutex locking more generic. Instead of -dnl checking for OSX and OpenBSD, check for FEATURE_PTHREAD -dnl and use mutex locking unless there is an _r function -dnl available. Better safe than sorry. -dnl -dnl Fixes "./configure --disable-pthread" and should result -dnl in less threading-related problems on pthread-using platforms, -dnl but it still doesn't fix BR#1122404. -dnl -dnl Revision 1.93 2006/09/22 01:26:20 hal9 -dnl Set version to 3.0.5 BETA for hopefully release this weekend. -dnl -dnl Revision 1.92 2006/08/17 17:09:49 fabiankeil -dnl Added check for timegm(). -dnl -dnl Revision 1.91 2006/08/13 22:01:51 fabiankeil -dnl Added checks for strptime() and random() -dnl -dnl Revision 1.90 2006/07/18 14:48:45 david__schmidt -dnl Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch) -dnl with what was really the latest development (the v_3_0_branch branch) -dnl -dnl Revision 1.68.2.20 2004/01/31 16:31:46 oes -dnl Resetting version info to 0.0.0 UNRELEASED -dnl -dnl Revision 1.68.2.19 2004/01/30 09:26:03 oes -dnl Added docbook paths for debian sarge; set status for release -dnl -dnl Revision 1.68.2.18 2003/12/08 15:10:29 oes -dnl Bugfix: --with-docbook now correctly accepts its path parameter. Thanks, Roland! -dnl -dnl Revision 1.68.2.17 2003/10/18 18:41:26 david__schmidt -dnl Update to remain buildable on OS/2 - remove the failures -dnl due to missing unixisms -dnl -dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes -dnl Marked as 0.0.0 UNRELEASED -dnl -dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes -dnl Bump version for 3.0.2 -dnl -dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9 -dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl. -dnl -dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes -dnl Set version info for 3.0.1 release -dnl -dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt -dnl Wrapping all *_r functions (the non-_r versions of them) with mutex semaphores for OSX. Hopefully this will take care of all of those pesky crash reports. -dnl -dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes -dnl Fixed minor shell syntax bug -dnl -dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes -dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs -dnl -dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9 -dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org -dnl -dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes -dnl Fixed broken handling of pre-set CFLAGS -dnl -dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9 -dnl Port of make install, etc from main trunk. Needs testing! Add Slackware -dnl support, and other related changes. Update related docs. -dnl -dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes -dnl Marking as non-release -dnl -dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9 -dnl Getting ready for 3.0 release. -dnl -dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes -dnl - Set Version to 2.9.20 (beta) -dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers -dnl are located in a pcre/ subdir to the include path. -dnl -dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes -dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH -dnl -dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9 -dnl Bump version to 2.9.17. -dnl -dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes -dnl Bumped version number for 2.9.16 freeze -dnl -dnl Revision 1.68 2002/05/25 16:54:54 jongfoster -dnl Detect if the compiler supports -pthread. -dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC -dnl machine to test this!) -dnl -dnl Revision 1.67 2002/05/03 14:33:59 oes -dnl Generate doc/soucre/ldp.dsl -dnl -dnl Revision 1.66 2002/05/03 00:41:56 oes -dnl Set version to 2.9.15 to comply with new versioning scheme -dnl -dnl Revision 1.65 2002/04/25 19:13:57 morcego -dnl Removed RPM release number declaration on configure.in -dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading -dnl targets (will produce an error, explaining who to do it, if no value -dnl if provided). -dnl -dnl Revision 1.64 2002/04/22 16:32:31 morcego -dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2) -dnl -rh.spec: uid and gid are now macros -dnl -suse.spec: Changing the header Copyright to License (Copyright is -dnl deprecable) -dnl -dnl Revision 1.63 2002/04/11 11:00:21 oes -dnl Applied Moritz' fix for socklen_t on Solaris -dnl -dnl Revision 1.62 2002/04/11 10:09:20 oes -dnl Version 2.9.14 -dnl -dnl Revision 1.61 2002/04/10 18:14:45 morcego -dnl - (privoxy-rh.spec only) Relisting template files on the %%files section -dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5 -dnl -dnl Revision 1.60 2002/04/09 16:38:49 oes -dnl Added detection of missing config.h.in -dnl -dnl Revision 1.59 2002/04/06 20:23:55 jongfoster -dnl Removing unnessacery tests (C++, ranlib) -dnl -dnl Revision 1.58 2002/04/04 20:49:20 swa -dnl attempt to consolidate the -dnl different dokbook versions. -dnl -dnl Revision 1.57 2002/04/04 00:36:36 gliptak -dnl always use pcre for matching -dnl -dnl Revision 1.56 2002/04/03 22:28:03 gliptak -dnl Removed references to gnu_regex -dnl -dnl Revision 1.55 2002/04/03 03:54:38 gliptak -dnl Checking pcre version -dnl -dnl Revision 1.54 2002/04/01 00:54:24 gliptak -dnl More changes needed around regex support. -dnl -dnl Revision 1.53 2002/03/29 20:09:01 swa -dnl al's patch -dnl -dnl Revision 1.52 2002/03/29 19:51:40 gliptak -dnl Correcting compile problem with Debian -dnl -dnl Revision 1.51 2002/03/28 20:43:00 swa -dnl set make correctly -dnl -dnl Revision 1.50 2002/03/27 03:03:45 hal9 -dnl Add test for man2html -dnl -dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt -dnl More Mac OSX support: -dnl - Get rid of extraneous, noisy -pthread warnings -dnl - Define unix so we get oes' unix-tagged changes -dnl -dnl Revision 1.48 2002/03/26 22:29:54 swa -dnl we have a new homepage! -dnl -dnl Revision 1.47 2002/03/26 16:41:00 hal9 -dnl Upped RPM Release to 3 (need to build new RH packages) -dnl -dnl Revision 1.46 2002/03/24 18:55:06 jongfoster -dnl Making Docbook work under Windows -dnl -dnl Revision 1.45 2002/03/24 14:19:55 swa -dnl set rpm package release in configure.in. nowhere else. -dnl -dnl Revision 1.44 2002/03/24 13:25:43 swa -dnl name change related issues -dnl -dnl Revision 1.43 2002/03/24 12:56:21 swa -dnl name change related issues. -dnl -dnl Revision 1.42 2002/03/22 18:11:37 jongfoster -dnl Bumping version number to 2.9.12 -dnl -dnl Revision 1.41 2002/03/19 19:30:04 morcego -dnl - Fixing stylesheet checking on configure. If it is found, no further checks -dnl should be done -dnl -dnl - configure will now check for db2html or docbook2html (should work now -dnl on SuSe without the docbktls package) -dnl -dnl Revision 1.40 2002/03/09 14:33:30 oes -dnl Fixing the (harmless) AC_CHECK_FILE warnings -dnl -dnl Revision 1.39 2002/03/08 16:46:13 oes -dnl Added --enable-no-gifs -dnl -dnl Revision 1.38 2002/03/08 14:13:50 morcego -dnl Fixing configure, to remove a command not found error. -dnl -dnl Revision 1.37 2002/03/08 12:58:21 oes -dnl Tiny bugfix in AC_ARG_WITH(debug) -dnl -dnl Revision 1.36 2002/03/06 23:50:36 morcego -dnl Will not test for a text browser if we are not using docbook. -dnl -dnl Revision 1.35 2002/03/06 21:55:52 morcego -dnl New configure option: --with-docbook=(yes|no|directory) -dnl Preliminary new platform detection code included. Will work with the -dnl old one for now. No use just trowing it away -dnl -dnl Revision 1.34 2002/03/06 20:57:00 morcego -dnl Fixing detection of stylesheets on SuSe. -dnl -dnl Revision 1.33 2002/03/05 17:31:11 morcego -dnl Search for docbook.dsl. Should solve portability problems for SuSe. -dnl -dnl Revision 1.32 2002/03/05 14:07:43 morcego -dnl configure now detects rpm topdir, and change GNUmakefile acordingly -dnl (based on sugestion by Sarantis Paskalis) -dnl -dnl Revision 1.31 2002/03/05 13:43:28 morcego -dnl Checking for text browser, so redhat-dok can work. -dnl -dnl Revision 1.30 2002/03/04 17:58:01 oes -dnl Deleted _DEBUG and PID_FILE_PATH -dnl -dnl Revision 1.29 2002/02/28 14:20:53 oes -dnl Fixed detection of gethost*_r functions on Solaris -dnl -dnl Revision 1.28 2002/02/27 15:02:38 oes -dnl Incremented version number -dnl -dnl Revision 1.27 2002/01/10 12:35:18 oes -dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros -dnl to silence autoconf warnings. Numbers are for Intel/Linux. -dnl Is there a better way? -dnl -dnl Revision 1.26 2002/01/09 14:29:49 oes -dnl - Added AC_CHECK_FUNC tests for the availability of -dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and -dnl localtime_r, as well as AC_TRY_COMPILE tests to -dnl determine their signatures. -dnl -dnl - Fixed a bug with the init of CFLAGS that was -dnl reported by barsnick -dnl -dnl Revision 1.25 2002/01/04 15:27:18 oes -dnl Changed quoting of CODE_STATUS for use in make -dnl -dnl Revision 1.24 2001/12/30 14:07:31 steudten -dnl - Add signal handling (unix) -dnl - Add SIGHUP handler (unix) -dnl - Add creation of pidfile (unix) -dnl - Add action 'top' in rc file (RH) -dnl - Add entry 'SIGNALS' to manpage -dnl - Add exit message to logfile (unix) -dnl -dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt -dnl Change from "alpha" to "beta" in configure.in -dnl -dnl Revision 1.22 2001/12/01 11:24:01 jongfoster -dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of -dnl make break in a more obvious way. -dnl -dnl Revision 1.21 2001/11/30 21:35:54 jongfoster -dnl Bumping version number to 2.9.10 -dnl -dnl Revision 1.20 2001/10/23 21:24:09 jongfoster -dnl Support for FEATURE_CGI_EDIT_ACTIONS -dnl -dnl Revision 1.19 2001/10/07 15:33:14 oes -dnl Removed FEATURE_DENY_GZIP -dnl Bumped up version number -dnl -dnl Revision 1.18 2001/09/13 13:10:24 steudten -dnl -dnl PreWork for Debug Interface. -dnl Add new option "--with-debug" to enable debugging (flags aso.) -dnl -dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt -dnl Mac OSX (Darwin) support added. -dnl -dnl Revision 1.16 2001/09/12 22:55:45 joergs -dnl AmigaOS support added. -dnl -dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt -dnl -dnl OS/2 port: update autoconf'd support for the platform. -dnl -dnl Revision 1.14 2001/07/30 22:12:11 jongfoster -dnl Fixing Solaris build (I hope) and tidying up #defines: -dnl - All feature #defines are now of the form FEATURE_xxx -dnl - Permanently turned off WIN_GUI_EDIT -dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS -dnl -dnl Revision 1.13 2001/07/29 17:09:17 jongfoster -dnl Major changes to build system in order to fix these bugs: -dnl - pthreads under Linux was broken - changed -lpthread to -pthread -dnl - Compiling in MinGW32 mode under CygWin now correctly detects -dnl which shared libraries are available -dnl - Solaris support (?) (Not tested under Solaris yet) -dnl -dnl Revision 1.12 2001/07/25 19:16:27 oes -dnl Bumping version number to 2.9.8 -dnl -dnl Revision 1.11 2001/07/21 18:00:07 jongfoster -dnl Bumping version number to 2.9.7 -dnl -dnl Revision 1.10 2001/07/18 17:25:04 oes -dnl Fixed a typo -dnl -dnl Revision 1.9 2001/07/15 19:45:13 jongfoster -dnl Added support for linking with POSIX threads library -dnl -dnl Revision 1.8 2001/07/15 17:54:29 jongfoster -dnl Renaming #define STATIC to STATIC_PCRE -dnl Adding new #define FEATURE_PTHREAD that will be used to enable -dnl POSIX threads support. -dnl -dnl Revision 1.7 2001/07/13 13:58:05 oes -dnl Completely reorganized the selection scheme for -dnl pcre, pcreposix, pcrs and gnu_regex: -dnl -dnl The presence of shared pcre, pcreposix or pcrs -dnl libraried is now autodetected. Additionally, the -dnl user can enforce using the built-in static variants -dnl by specifying --disable-dynamic-(pcre|pcrs). -dnl Care is taken to avoid that pcre is dyn, while pcreposix -dnl is static, if both are used and that pcrs is static if -dnl pcrs is. -dnl -dnl The choice between pcre, gnu or no regex for actionsfile -dnl URL matching is now via -dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the -dnl default being pcre. -dnl -dnl Revision 1.6 2001/06/29 21:56:40 oes -dnl Version -> 2.9.5 -dnl -dnl Revision 1.5 2001/06/29 13:26:27 oes -dnl Introduced #define CODE_STATUS -dnl -dnl Revision 1.4 2001/05/29 09:50:24 jongfoster -dnl Unified blocklist/imagelist/permissionslist. -dnl File format is still under discussion, but the internal changes -dnl are (mostly) done. -dnl -dnl Also modified interceptor behaviour: -dnl - We now intercept all URLs beginning with one of the following -dnl prefixes (and *only* these prefixes): -dnl * http://i.j.b/ -dnl * http://ijbswa.sf.net/config/ -dnl * http://ijbswa.sourceforge.net/config/ -dnl - New interceptors "home page" - go to http://i.j.b/ to see it. -dnl - Internal changes so that intercepted and fast redirect pages -dnl are not replaced with an image. -dnl - Interceptors now have the option to send a binary page direct -dnl to the client. (i.e. ijb-send-banner uses this) -dnl - Implemented show-url-info interceptor. (Which is why I needed -dnl the above interceptors changes - a typical URL is -dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif". -dnl The previous mechanism would not have intercepted that, and -dnl if it had been intercepted then it then it would have replaced -dnl it with an image.) -dnl -dnl Revision 1.3 2001/05/22 18:46:04 oes -dnl -dnl - Enabled filtering banners by size rather than URL -dnl by adding patterns that replace all standard banner -dnl sizes with the "Junkbuster" gif to the re_filterfile -dnl -dnl - Enabled filtering WebBugs by providing a pattern -dnl which kills all 1x1 images -dnl -dnl - Added support for PCRE_UNGREEDY behaviour to pcrs, -dnl which is selected by the (nonstandard and therefore -dnl capital) letter 'U' in the option string. -dnl It causes the quantifiers to be ungreedy by default. -dnl Appending a ? turns back to greedy (!). -dnl -dnl - Added a new interceptor ijb-send-banner, which -dnl sends back the "Junkbuster" gif. Without imagelist or -dnl MSIE detection support, or if tinygif = 1, or the -dnl URL isn't recognized as an imageurl, a lame HTML -dnl explanation is sent instead. -dnl -dnl - Added new feature, which permits blocking remote -dnl script redirects and firing back a local redirect -dnl to the browser. -dnl The feature is conditionally compiled, i.e. it -dnl can be disabled with --disable-fast-redirects, -dnl plus it must be activated by a "fast-redirects" -dnl line in the config file, has its own log level -dnl and of course wants to be displayed by show-proxy-args -dnl Note: Boy, all the #ifdefs in 1001 locations and -dnl all the fumbling with configure.in and acconfig.h -dnl were *way* more work than the feature itself :-( -dnl -dnl - Because a generic redirect template was needed for -dnl this, tinygif = 3 now uses the same. -dnl -dnl - Moved GIFs, and other static HTTP response templates -dnl to project.h -dnl -dnl - Some minor fixes -dnl -dnl - Removed some >400 CRs again (Jon, you really worked -dnl a lot! ;-) -dnl -dnl Revision 1.2 2001/05/20 01:21:20 jongfoster -dnl Version 2.9.4 checkin. -dnl - Merged popupfile and cookiefile, and added control over PCRS -dnl filtering, in new "permissionsfile". -dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration -dnl file error you now get a message box (in the Win32 GUI) rather -dnl than the program exiting with no explanation. -dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header -dnl skipping. -dnl - Removed tabs from "config" -dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition. -dnl - Bumped up version number. -dnl -dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes -dnl Initial import of version 2.9.3 source tree -dnl -dnl - - -dnl ================================================================= -dnl AutoConf Initialization -dnl ================================================================= - -AC_REVISION($Revision: 1.126 $) -AC_INIT(jcc.c) - -if test ! -f config.h.in; then - echo "You need to run autoheader first. " - echo -n "Shall I do this for you now? (y/n) " - read answer - if test "$answer" != "y"; then - exit 1 - else - autoheader - fi -fi - -AC_CONFIG_HEADER([config.h]) -AC_CANONICAL_HOST - -dodk=auto -DKPREFIX=none -AC_ARG_WITH(docbook, dnl - --with-docbook=[[yes|no|directory]] - Enable docbook documentation creation - (default = yes, for gnu and linux),[dnl -case "$with_docbook" in -yes) dodk=yes;; -no) dodk=no;; -*) - dodk=yes - DKPREFIX=$withval - ;; -esac -]) -DB2HTML=false -AC_ARG_WITH(db2html, dnl - --with-db2html= - Set the location of the docbook to html converter - (default = search),[dnl -DB2HTML=$withval -]) - -dnl ================================================================= -dnl Application version number -dnl ================================================================= - -VERSION_MAJOR=3 -VERSION_MINOR=0 -VERSION_POINT=12 -CODE_STATUS="stable" - -dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be -dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED" -dnl whenever CVS in a stable branch differs from the last release. - -dnl ================================================================= -dnl Substitute the version numbers -dnl ================================================================= - -AC_SUBST(VERSION_MAJOR) -AC_SUBST(VERSION_MINOR) -AC_SUBST(VERSION_POINT) -AC_SUBST(CODE_STATUS) - -dnl -AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR}) -AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR}) -AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT}) -AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}") -AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}") - -dnl ================================================================= -dnl Checks for programs needed to build. -dnl ================================================================= - -dnl Keep AC_PROG_CC from setting its own defaults: -if test "X$CFLAGS" = "X"; then - CFLAGS=" " -fi - -AC_PROG_CC -AC_PROG_CPP -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET -AC_PROG_AWK - -AC_CHECK_PROG(GDB,gdb,yes,no) -AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin) -AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin) -AC_SUBST(ID) -AC_SUBST(BGROUPS) - -dnl ================================================================= -dnl debug, gcc and gdb support -dnl ================================================================= - -AC_ARG_WITH(debug, - [ --with-debug Enable debug mode], - [ - if test "x$withval" != "xno" ; then - if test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - if test "$GDB"; then - CFLAGS="$CFLAGS -ggdb" - else - CFLAGS="$CFLAGS -g" - fi - CFLAGS="$CFLAGS -Wshadow -Wconversion" - else - CFLAGS="$CFLAGS -g" - fi - fi - fi - ], - [ - if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above) - if test "$GCC" = yes; then - CFLAGS="-O2" - fi - fi - ] -) - -dnl ================================================================= -dnl Check for user and group validity -dnl ================================================================= - - -if test "$EMXOS2" = yes; then - echo "Skipping user and group validity stuff."; - -else - - $ID privoxy >/dev/null 2>/dev/null - if test $? -ne 0 ; then - AC_MSG_WARN(There is no user 'privoxy' on this system) - fi - AC_MSG_CHECKING([for user]) - AC_ARG_WITH(user, - [ --with-user=privoxy Set user under which privoxy will run], - [ - if test "x$withval" != "xyes"; then - if test $ID = no ; then - AC_MSG_ERROR(There is no 'id' program on this system) - else - AC_MSG_RESULT($with_user) - $ID $with_user 2>/dev/null >/dev/null - if test $? -eq 0 ; then - USER=$with_user; - else - AC_MSG_ERROR(There is no user '$with_user' on this system) - fi - fi - else - AC_MSG_ERROR(We need a user if you give me this parameter) - fi - ], - [ - if test $ID = no ; then - AC_MSG_ERROR(There is no 'id' programm on this system) - else - AC_MSG_RESULT(none specified) - USER=$with_user - fi - ] - ) - AC_SUBST(USER) - - AC_MSG_CHECKING([for group]) - AC_ARG_WITH(group, - [ --with-group=privoxy Set group for privoxy], - [ - if test "x$withval" != "xyes"; then - if test $BGROUPS = no ; then - AC_MSG_ERROR(There is no 'groups' program on this system) - else - AC_MSG_RESULT($with_group) - $BGROUPS $USER >/dev/null - if test $? -eq 0 ; then - # FIXME: this fails if valid group, but not first group - # listed. - if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then - AC_MSG_ERROR(The given value '$withval' does not match group entry) - else - GROUP=$with_group; - fi - else - AC_MSG_ERROR(There is no group entry for user '$USER') - fi - fi - else - AC_MSG_ERROR(We need a group if you give me this parameter) - fi - ], - [ - if test $BGROUPS = no ; then - AC_MSG_ERROR(There is no 'groups' programm on this system) - else - AC_MSG_RESULT(none specified) - GROUP=$with_group; - fi - ] - ) - AC_SUBST(GROUP) - -fi - -dnl ================================================================= -dnl additional gcc flags -dnl ================================================================= -dnl -if test "$GCC"; then - if test "$host" != "powerpc-unknown-amigaos"; then - CFLAGS="-pipe $CFLAGS" - fi -fi - - -dnl ================================================================= -dnl Build type -dnl ================================================================= -dnl -dnl Must do this first. -dnl -dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler -dnl into Cygwin or MinGW32 modes. Depending on the mode selected, -dnl the compiler will use completely different sets of library -dnl and include files. -dnl -dnl ================================================================= - -AC_MINGW32 -AC_CYGWIN - -if test "$MINGW32" = "yes"; then - target_type=mingw -else - if test "$CYGWIN" = "yes"; then - target_type=cygwin - else - target_type=unix - fi -fi - -if test $dodk = auto; then - dodk=no - if test $target_type = unix; then - case "$host_os" in - linux* | gnu*) - dodk=yes - ;; - esac - fi -fi - -dnl Decide what to do based on target_type -dnl Note: PTHREAD_LIB is always set, even if pthread is disabled. -dnl This is because we don't know yet whether pthread is enabled. - -AC_ARG_ENABLE(mingw32, -[ --enable-mingw32 Use mingw32 for a Windows GUI], -[if test $enableval = yes; then - target_type=mingw -fi]) - -if test $target_type = mingw; then - WIN_ONLY= - SPECIAL_CFLAGS="-mwindows -mno-cygwin" - PTHREAD_LIB=-lpthreadGC - echo "Using mingw32 (Win32 GUI)" -else - WIN_ONLY=# - if test $target_type = cygwin; then - SPECIAL_CFLAGS="-mno-win32" - PTHREAD_LIB= - echo "Using Cygnus (Win32 command line)" - else - SPECIAL_CFLAGS= -dnl PTHREAD_LIB=-lpthread - fi -fi -AC_SUBST(WIN_ONLY) - -dnl Checking which text html browser we have avaliable -if test $dodk != no; then - AC_CHECK_PROGS(WDUMP,w3m lynx links,false) - if test "$WDUMP" = false; then - AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\)) - fi - if test $DB2HTML = false; then - dnl We need to clean the variable, otherwise AC_CHECK_PROGS - dnl will fail - DB2HTML="" - AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false) - fi -fi -AC_SUBST(WDUMP) -AC_SUBST(DB2HTML) - -dnl If we use rpm, we need to check where %_topdir is -AC_CHECK_PROGS(RPMBIN,rpm,false) -if test $RPMBIN != false; then - RPM_BASE=`rpm --eval "%{_topdir}"` - if test "$RPM_BASE" = ""; then - RPM_BASE=/usr/src/redhat - fi -fi -AC_SUBST(RPM_BASE) - -dnl Check for jade, so we can build the documentation -AC_CHECK_PROGS(JADEBIN,jade openjade,false) -AC_SUBST(JADEBIN) - -dnl Check for man2html for docs. -AC_CHECK_PROGS(MAN2HTML,man2html,false) -AC_SUBST(MAN2HTML) - -dnl Set doc status flag for conditional content inclusions -DOC_STATUS=p-not-stable -if test $CODE_STATUS = stable; then - DOC_STATUS="p-stable" -fi -AC_SUBST(DOC_STATUS) - -dnl Checking for the docbook.dsl stylesheet file -dnl It is still not portable (directory slash) -JADECAT="" -if test $dodk = yes; then - if test $DKPREFIX = none; then - for i in /usr/share/sgml/docbook/dsssl-stylesheets \ - /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl \ - /usr/local/share/sgml/docbook/dsssl/modular \ - /usr/share/sgml/docbook/stylesheet/dsssl/modular/ \ - ; do -dnl echo -n does not fly with /bin/sh. -dnl echo -n "checking for $i/html/docbook.dsl..." - AC_MSG_CHECKING([for $i]) - if test -f $i/html/docbook.dsl; then - echo "yes" - DKPREFIX=$i - break - else - echo "no" - fi - done -# where are the catalogs? - for i in /usr/share/sgml/CATALOG.docbk30 \ - /usr/share/sgml/CATALOG.docbk31 \ - /usr/share/sgml/CATALOG.docbk31 \ - /usr/local/share/sgml/docbook/3.0/docbook.cat \ - /usr/local/share/sgml/docbook/3.1/docbook.cat \ - /usr/share/sgml/docbook/dtd/3.1/docbook.cat \ - ; do -dnl echo -n "checking for $i..." - AC_MSG_CHECKING([for $i]) - if test -f $i; then - echo "yes" - JADECAT="$JADECAT -c $i" - else - echo "no" - fi - done - fi -fi -AC_SUBST(JADECAT) -AC_SUBST(DKPREFIX) - -dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS -old_CFLAGS_nospecial=$CFLAGS -CFLAGS="$CFLAGS $SPECIAL_CFLAGS" - -# Hack to force AutoConf to use the CFLAGS we just set -dnl Warning: This may break with a future version of Autoconf -dnl Tested with autoconf 2.13 -ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - - -dnl ================================================================= -dnl Thread support -dnl ================================================================= - -AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no]) - -AC_ARG_ENABLE(pthread, -[ --disable-pthread Don't use POSIX threads (pthreads)], -[if test $enableval = no; then - # Disable pthreads - if test $have_pthread = yes; then - AC_MSG_WARN([pthreads seem to be available but you are using --disable-pthread.]) - AC_MSG_WARN([This is almost always a mistake and can render Privoxy unacceptable slow.]) - fi - have_pthread=no -fi]) - -if test $have_pthread = yes; then - PTHREAD_ONLY= - AC_DEFINE(FEATURE_PTHREAD) - echo Using POSIX threads - if test "$GCC" = "yes"; then - # Set a GCC specific switch: - if test "$target_type" = "unix"; then - ac_jgf_save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -pthread" - AC_TRY_LINK([#include ], - [void *p = pthread_create;], - [ - # This compiler switch makes GCC on Linux thread-safe - # However, it's not supported on most other OS. - PTHREAD_LIB= - SPECIAL_CFLAGS="-pthread" - ]) - CFLAGS=$ac_jgf_save_CFLAGS - fi - fi -else - PTHREAD_ONLY=# - echo Using native threads -fi - -AC_SUBST(PTHREAD_ONLY) - -dnl ================================================================= -dnl Support for thread-safe versions of gethostbyaddr, gethostbyname, -dnl gmtime and localtime -dnl ================================================================= - -dnl Next line needed to find the gethost*_r functions on Solaris -AC_CHECK_LIB(nsl, gethostbyname) - -AC_CHECK_FUNC(gethostbyaddr_r, [ - AC_MSG_CHECKING([signature of gethostbyaddr_r]) - AC_TRY_COMPILE([ -# include - ], [ - struct hostent *h, *hp; - char *a, *b; - int l, bl, t, e; - (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e) - ], [ - AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS) - AC_MSG_RESULT([8 args]) - ], [ - AC_TRY_COMPILE([ -# include - ], [ - struct hostent *h; - char *a, *b; - int l, bl, t, e; - (void) gethostbyaddr_r(a, l, t, h, b, bl, &e) - ], [ - AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS) - AC_MSG_RESULT([7 args]) - ], [ - AC_TRY_COMPILE([ -# include - ], [ - struct hostent_data *d; - struct hostent *h; - char a, - int l, t; - (void) gethostbyaddr_r(a, l, t, h, d) - ], [ - AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS) - AC_MSG_RESULT([5 args]) - ], [ - AC_MSG_RESULT(unrecognised) - ]) - ]) - ]) -], [ - AC_MSG_RESULT(no) -]) - -AC_CHECK_FUNC(gethostbyname_r, [ - AC_MSG_CHECKING([signature of gethostbyname_r]) - AC_TRY_COMPILE([ -# include - ], [ - struct hostent *h, *r; - char *n, *b; - int bl, e; - (void) gethostbyname_r(n, h, b, bl, &r, &e) - ], [ - AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS) - AC_MSG_RESULT([6 args]) - ], [ - AC_TRY_COMPILE([ -# include - ], [ - struct hostent *h; - char *n, *b; - int bl, e; - (void) gethostbyname_r(n, h, b, bl, &e) - ], [ - AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS) - AC_MSG_RESULT([5 args]) - ], [ - AC_TRY_COMPILE([ -# include - ], [ - struct hostent_data *d; - struct hostent *h; - char *n, - (void) gethostbyname_r(n, h, d) - ], [ - AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS) - AC_MSG_RESULT([3 args]) - ], [ - AC_MSG_RESULT(unrecognised) - ]) - ]) - ]) -], [ - AC_MSG_RESULT(no) -]) - -AC_CHECK_FUNC(gmtime_r, [ - AC_MSG_CHECKING([signature of gmtime_r]) - AC_TRY_COMPILE([ -# include - ], [ - struct time *t; - struct tm *tm; - (void) gmtime_r(t, tm) - ], [ - AC_MSG_RESULT(ok) - AC_DEFINE(HAVE_GMTIME_R) - ], [ - AC_MSG_RESULT(unrecognised) - ]) -], [ - AC_MSG_RESULT(no) -]) - -AC_CHECK_FUNC(localtime_r, [ - AC_MSG_CHECKING([signature of localtime_r]) - AC_TRY_COMPILE([ -# include - ], [ - struct time *t; - struct tm *tm; - (void) localtime_r(t, tm) - ], [ - AC_MSG_RESULT(ok) - AC_DEFINE(HAVE_LOCALTIME_R) - ], [ - AC_MSG_RESULT(unrecognised) - ]) -], [ - AC_MSG_RESULT(no) -]) - -dnl ================================================================= -dnl Solaris specific -dnl FIXME: Not tested on Solaris yet... -dnl ISFIXED: Have tested it on Solaris, but there are other ways to -dnl make these checks generic, e.g.: -dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt)) -dnl (Moritz Barsnick ) -dnl ================================================================= - - -SOCKET_LIB= - -case "$host" in -*-solaris*) SOCKET_LIB="-lsocket -lnsl" - AC_DEFINE(__EXTENSIONS__) - if test "$GCC" = "yes"; then - # Set a GCC specific switch: - # This compiler switch makes Solaris thread-safe - PTHREAD_LIB= - SPECIAL_CFLAGS="-pthreads" - else - # What do we do without GCC? Guess this: - SPECIAL_CFLAGS="-D_REENTRANT" - fi -;; -esac - -AC_SUBST(SOCKET_LIB) - -dnl ================================================================= -dnl Solaris problem, and others perhaps (socklen_t is undefined) -dnl ================================================================= - -AC_MSG_CHECKING([for socklen_t]) -AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no]) - AC_DEFINE(socklen_t,int, - [ Define to 'int' if doesn't have it. ])) - - -dnl ================================================================= -dnl OS/2 specific -dnl ================================================================= - -case "$host" in -*-os2-emx*) SOCKET_LIB=-lsocket -;; -esac - -AC_SUBST(SOCKET_LIB) - -dnl ================================================================= -dnl Mac OSX specific -dnl ================================================================= - -case "$host" in -*-apple-darwin*) SPECIAL_CFLAGS="-Dunix" -;; -esac - -dnl ================================================================= -dnl OpenBSD specific -dnl ================================================================= - -case "$host" in -*-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix" -;; -esac - -dnl ================================================================= -dnl AmigaOS specific -dnl ================================================================= - -AMIGAOS_ONLY=# - -case "$host" in -*-amigaos) AMIGAOS_ONLY= -;; -esac - -AC_SUBST(AMIGAOS_ONLY) - -dnl ================================================================= -dnl Check for standard compiler stuff -dnl ================================================================= - -AC_EXEEXT -AC_OBJEXT -AC_HEADER_STDC -AC_HEADER_DIRENT -AC_C_CONST -AC_TYPE_SIZE_T -AC_TYPE_PID_T -AC_HEADER_TIME -AC_STRUCT_TM -AC_CHECK_SIZEOF(int, 4) -AC_CHECK_SIZEOF(char *, 4) -AC_CHECK_SIZEOF(long, 4) -AC_CHECK_SIZEOF(long long, 8) -AC_CHECK_SIZEOF(size_t, 4) - -dnl Checks for header files. -dnl AC_HEADER_SYS_WAIT -dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h) -AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h]) - -dnl Checks for library functions. -dnl AC_TYPE_SIGNAL -dnl AC_CHECK_FUNC(strstr) -dnl bcopy and memmove are for PCRE -AC_CHECK_FUNCS([strerror bcopy memmove]) -AC_PROG_GCC_TRADITIONAL -dnl uncommenting does not work for swa. suse linux -dnl AC_FUNC_MALLOC -AC_FUNC_SETPGRP -AC_TYPE_SIGNAL -dnl uncommenting does not work for swa. suse linux -dnl AC_FUNC_STAT -AC_CHECK_FUNCS([access atexit getcwd gethostbyaddr gethostbyaddr_r gethostbyname gethostbyname_r gettimeofday inet_ntoa localtime_r memchr memmove memset poll putenv random regcomp select setlocale snprintf socket strchr strdup strerror strftime strlcat strlcpy strptime strstr strtoul timegm tzset]) - - -dnl ================================================================= -dnl Checks for libraries. -dnl ================================================================= -dnl Note: Some systems may have the library but not the system header -dnl file, so we must check for both. -dnl Also check for correct version -AC_CHECK_LIB(pcre, pcre_compile, [ - AC_CHECK_HEADER(pcre.h, [ - AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no]) - ], [ - AC_CHECK_HEADER(pcre/pcre.h, [ - AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes]; [AC_DEFINE(PCRE_H_IN_SUBDIR)], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no]) - ], [have_pcre=no]) - ]) -], [have_pcre=no]) - -AC_CHECK_LIB(pcreposix, regcomp, [ - AC_CHECK_HEADER(pcreposix.h, [ - AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]) - ], [ - AC_CHECK_HEADER(pcre/pcreposix.h, [ - AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)]) - ], [have_pcreposix=no]) - ]) -], [have_pcreposix=no], -lpcre) - -dnl ================================================================ -dnl libpcrs is temporarily disabled. -dnl -dnl Privoxy's own pcrs version fixes some problems that -dnl are present in libpcrs 0.3, the last pcrs release we -dnl know of, and as libpcrs seems to be currently unmaintained -dnl we can't send these fixes upstream. -dnl ================================================================ -dnl -dnl AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre) - -dnl ================================================================= -dnl Always defined -dnl ================================================================= - -AC_DEFINE(__MT__) - -dnl ================================================================= -dnl Features -dnl ================================================================= - -AC_ARG_ENABLE(toggle, -[ --disable-toggle Don't support temporary disable], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_TOGGLE) -fi],AC_DEFINE(FEATURE_TOGGLE)) - -AC_ARG_ENABLE(force, -[ --disable-force Don't allow single-page disable], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_FORCE_LOAD) -fi],AC_DEFINE(FEATURE_FORCE_LOAD)) - -AC_ARG_ENABLE(fast-redirects, -[ --disable-fast-redirects Don't support fast redirects], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_FAST_REDIRECTS) -fi], AC_DEFINE(FEATURE_FAST_REDIRECTS)) - -AC_ARG_ENABLE(stats, -[ --disable-stats Don't keep statistics], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_STATISTICS) -fi],AC_DEFINE(FEATURE_STATISTICS)) - -AC_ARG_ENABLE(ie-images, -[ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from - MS Internet Explorer are for an image or not.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE) -fi],) - -AC_ARG_ENABLE(image-blocking, -[ --disable-image-blocking Don't try to figure out whether a request is - for an image or HTML - assume HTML.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_IMAGE_BLOCKING) -fi], -AC_DEFINE(FEATURE_IMAGE_BLOCKING)) - -AC_ARG_ENABLE(acl-files, -[ --disable-acl-files Prevents the use of ACL files to control access to - Privoxy by IP address.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_ACL) -fi], -AC_DEFINE(FEATURE_ACL)) - -AC_ARG_ENABLE(trust-files, -[ --disable-trust-files Prevents the use of trust files.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_TRUST) -fi], -AC_DEFINE(FEATURE_TRUST)) - -AC_ARG_ENABLE(editor, -[ --disable-editor Prevents the use of the web-based actions file - editor and web-based temporary disable setting.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS) -fi], -AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)) - -AC_ARG_ENABLE(no-gifs, -[ --enable-no-gifs Use politically correct PNG format instead of GIF - for built-in images. May not work with all browsers.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_NO_GIFS) -fi]) - -AC_ARG_ENABLE(graceful-termination, -[ --enable-graceful-termination Allow to shutdown Privoxy through the webinterface.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_GRACEFUL_TERMINATION) -fi]) - -AC_ARG_ENABLE(extended-host-patterns, -[ --enable-extended-host-patterns Allow extended regular expressions in host patterns.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS) -fi]) - -dnl pcre/pcrs is needed for CGI anyway, so -dnl the choice is only between static and -dnl dynamic: - -AC_ARG_ENABLE(dynamic-pcre, -[ --disable-dynamic-pcre Use the built-in, static pcre, even if libpcre is available], -[ if test $enableval = "no"; then have_pcre=no; fi ]) - -dnl ================================================= -dnl libpcrs is temporarily disabled, -dnl see comment above for the reason. -dnl ================================================= -dnl AC_ARG_ENABLE(dynamic-pcrs, -dnl [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if libpcrs is available], -dnl [ if test $enableval = "no"; then have_pcrs=no; fi ]) - - -dnl ==================================================== -dnl This check is incomplete. For mingw32 zlib is found -dnl by configure, but not necessarily by the compiler. -dnl ==================================================== -AC_ARG_ENABLE(zlib, -[ --disable-zlib Don't use zlib to decompress data before filtering.], -[enableval2=$enableval], -[enableval2=yes]) -if test $enableval2 = yes; then - AC_CHECK_LIB(z, zlibVersion, [have_zlib="yes"], [have_zlib="no"]) - if test $have_zlib = "yes"; then - LIBS="$LIBS -lz" - AC_DEFINE(FEATURE_ZLIB,1,[Define to 1 to use compression through the zlib library.]) - else - AC_MSG_WARN([No zlib found. - Privoxy will not be able to filter compressed content. - This may become a fatal error in the future.]) - fi -fi - - -# If we have libpcre and either we also have pcreposix or -# we don't need pcreposix, then link pcre dynamically; else -# build it and link statically -# -if test $have_pcre = "yes"; then - echo "using libpcre" - pcre_dyn=yes - STATIC_PCRE_ONLY=# - LIBS="$LIBS -lpcre -lpcreposix" -else - AC_MSG_WARN([You are using the static PCRE code which is scheduled for removal, for details see: - https://sourceforge.net/mailarchive/message.php?msg_id=20080511195555.2dc6cfdc%40fabiankeil.de]) - pcre_dyn=no - AC_DEFINE(STATIC_PCRE) - STATIC_PCRE_ONLY= -fi - -if test $have_pthread = "yes" -o $target_type = "mingw"; then - echo Enabling keep-alive support for outgoing connections. - AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE) -fi - -dnl ================================================= -dnl libpcrs is temporarily disabled, -dnl see comment above for the reason. -dnl ================================================= -dnl # If we have libpcrs and pcre is linked dynamically -dnl # then also link pcrs dynamically, else build and link -dnl # pcrs statically -dnl -dnl if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then -dnl echo "using libpcrs" -dnl STATIC_PCRS_ONLY=# -dnl LIBS="$LIBS -lpcrs" -dnl else -dnl echo "using built-in static pcrs" - AC_DEFINE(STATIC_PCRS) - STATIC_PCRS_ONLY= -dnl fi - -AC_SUBST(STATIC_PCRE_ONLY) -AC_SUBST(STATIC_PCRS_ONLY) - -dnl ================================================================= -dnl Final cleanup and output -dnl ================================================================= - -dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately -dnl in the Makefile -CFLAGS=$old_CFLAGS_nospecial -AC_SUBST(SPECIAL_CFLAGS) - -AC_SUBST(PTHREAD_LIB) - -AC_OUTPUT(GNUmakefile doc/source/ldp.dsl) diff --git a/external/privoxy.tar.gz b/external/privoxy.tar.gz deleted file mode 100644 index 34398789..00000000 Binary files a/external/privoxy.tar.gz and /dev/null differ diff --git a/res/layout/layout_about.xml b/res/layout/layout_about.xml index ca765ff1..82f30790 100644 --- a/res/layout/layout_about.xml +++ b/res/layout/layout_about.xml @@ -94,7 +94,7 @@ android:textColorLink="#ffffff" android:paddingLeft="15px" android:textColor="#ffffff" /> - Cancel Some Orbot Details - Orbot is an open-source application that contains Tor, LibEvent and Privoxy. It provides a local HTTP proxy (8118) and a SOCKS proxy (9050) into the Tor network. Orbot also has the ability, on rooted device, to send all internet traffic through Tor. + Orbot is an open-source application that contains Tor, LibEvent and Polipo. It provides a local HTTP proxy (8118) and a SOCKS proxy (9050) into the Tor network. Orbot also has the ability, on rooted device, to send all internet traffic through Tor. Permission Granted Orbot Permissions Excellent! We\'ve detected that you have root permissions enabled for Orbot. We will use this power wisely. @@ -162,7 +162,7 @@ WARNING: error starting transparent proxying! TransProxy rules cleared Couldn\'t start Tor process: - Privoxy is running on port: + Polipo is running on port: Setting up port-based transparent proxying… Bridge Error In order to use the bridge feature, you must enter at least one bridge IP address. @@ -212,7 +212,7 @@ 3rd-Party-Software: Tor v0.2.4.21: https://www.torproject.org LibEvent v2.0.9: http://www.monkey.org/~provos/libevent/ - Privoxy v3.0.12: http://www.privoxy.org + Polipo v1.1.9: https://github.com/jech/polipo IPtables v1.4.21: http://www.netfilter.org OpenSSL v1.0.1g: http://www.openssl.org An app wants to open hidden server port %S to the Tor network. This is safe if you trust the app. diff --git a/src/org/torproject/android/service/TorResourceInstaller.java b/src/org/torproject/android/service/TorResourceInstaller.java index 1b844ca9..2744a55c 100644 --- a/src/org/torproject/android/service/TorResourceInstaller.java +++ b/src/org/torproject/android/service/TorResourceInstaller.java @@ -87,8 +87,8 @@ public class TorResourceInstaller implements TorServiceConstants { shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is, outFile, false, false); - is = context.getResources().openRawResource(R.raw.privoxy_config); - outFile = new File(installFolder, PRIVOXYCONFIG_ASSET_KEY); + is = context.getResources().openRawResource(R.raw.torpolipo); + outFile = new File(installFolder, POLIPOCONFIG_ASSET_KEY); shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, false); @@ -97,8 +97,8 @@ public class TorResourceInstaller implements TorServiceConstants { shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, true); - is = context.getResources().openRawResource(R.raw.privoxy); - outFile = new File(installFolder, PRIVOXY_ASSET_KEY); + is = context.getResources().openRawResource(R.raw.polipo); + outFile = new File(installFolder, POLIPO_ASSET_KEY); shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, true); diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java index 3bb0bc63..52643706 100644 --- a/src/org/torproject/android/service/TorService.java +++ b/src/org/torproject/android/service/TorService.java @@ -85,7 +85,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst private File appCacheHome; private File fileTor; - private File filePrivoxy; + private File filePolipo; private File fileObfsclient; private File fileXtables; @@ -483,10 +483,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst shell.add(killCommand); }*/ - while ((procId = TorServiceUtils.findProcessId(filePrivoxy.getAbsolutePath())) != -1) + while ((procId = TorServiceUtils.findProcessId(filePolipo.getAbsolutePath())) != -1) { - logNotice("Found Privoxy PID=" + procId + " - killing now..."); + logNotice("Found Polipo PID=" + procId + " - killing now..."); SimpleCommand killCommand = new SimpleCommand("toolbox kill " + procId); shell.add(killCommand); @@ -530,7 +530,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst fileTor= new File(appBinHome, TOR_ASSET_KEY); - filePrivoxy = new File(appBinHome, PRIVOXY_ASSET_KEY); + filePolipo = new File(appBinHome, POLIPO_ASSET_KEY); fileObfsclient = new File(appBinHome, OBFSCLIENT_ASSET_KEY); @@ -625,7 +625,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst } enableBinExec(fileTor); - enableBinExec(filePrivoxy); + enableBinExec(filePolipo); enableBinExec(fileObfsclient); enableBinExec(fileXtables); @@ -637,7 +637,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst sendCallbackStatusMessage(getString(R.string.status_starting_up)); runTorShellCmd(); - runPrivoxyShellCmd(); + runPolipoShellCmd(); if (mHasRoot && mEnableTransparentProxy) enableTransparentProxy(mTransProxyAll, mTransProxyTethering); @@ -796,12 +796,12 @@ public class TorService extends Service implements TorServiceConstants, TorConst } } - private void runPrivoxyShellCmd () throws Exception + private void runPolipoShellCmd () throws Exception { - logNotice( "Starting privoxy process"); + logNotice( "Starting polipo process"); - int privoxyProcId = TorServiceUtils.findProcessId(filePrivoxy.getAbsolutePath()); + int polipoProcId = TorServiceUtils.findProcessId(filePolipo.getAbsolutePath()); StringBuilder log = null; @@ -809,21 +809,21 @@ public class TorService extends Service implements TorServiceConstants, TorConst Shell shell = Shell.startShell(); - if (privoxyProcId == -1) + if (polipoProcId == -1) { log = new StringBuilder(); - String privoxyConfigPath = new File(appBinHome, PRIVOXYCONFIG_ASSET_KEY).getAbsolutePath(); - SimpleCommand cmdPrivoxy = new SimpleCommand(filePrivoxy.getAbsolutePath() + " " + privoxyConfigPath + " &"); + String polipoConfigPath = new File(appBinHome, POLIPOCONFIG_ASSET_KEY).getAbsolutePath(); + SimpleCommand cmdPolipo = new SimpleCommand(filePolipo.getAbsolutePath() + " -c " + polipoConfigPath + " &"); - shell.add(cmdPrivoxy); + shell.add(cmdPolipo); //wait one second to make sure it has started up Thread.sleep(1000); - while ((privoxyProcId = TorServiceUtils.findProcessId(filePrivoxy.getAbsolutePath())) == -1 && attempts < MAX_START_TRIES) + while ((polipoProcId = TorServiceUtils.findProcessId(filePolipo.getAbsolutePath())) == -1 && attempts < MAX_START_TRIES) { - logNotice("Couldn't find Privoxy process... retrying...\n" + log); + logNotice("Couldn't find Polipo process... retrying...\n" + log); Thread.sleep(3000); attempts++; } @@ -833,7 +833,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst sendCallbackLogMessage(getString(R.string.privoxy_is_running_on_port_) + PORT_HTTP); - logNotice("Privoxy process id=" + privoxyProcId); + logNotice("Polipo process id=" + polipoProcId); shell.close(); @@ -1713,7 +1713,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst if (obfsBridges) { - bridgeCfgKey = bridgeCfgKey + " obfs2"; + bridgeCfgKey = bridgeCfgKey + " obfsclient"; } StringTokenizer st = new StringTokenizer(bridgeList,bridgeDelim); @@ -1726,7 +1726,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst if (obfsBridges) { - mBinder.updateConfiguration("ClientTransportPlugin","obfsclient exec " + fileObfsclient.getAbsolutePath() + " --managed", false); + mBinder.updateConfiguration("ClientTransportPlugin","obfsclient exec " + fileObfsclient.getAbsolutePath(), false); } mBinder.updateConfiguration("UpdateBridgesFromAuthority", "0", false); diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java index 9dcd9725..2fe9ff86 100644 --- a/src/org/torproject/android/service/TorServiceConstants.java +++ b/src/org/torproject/android/service/TorServiceConstants.java @@ -21,10 +21,10 @@ public interface TorServiceConstants { public final static String TOR_CONTROL_COOKIE = "control_auth_cookie"; //privoxy - public final static String PRIVOXY_ASSET_KEY = "privoxy"; + public final static String POLIPO_ASSET_KEY = "polipo"; //privoxy.config - public final static String PRIVOXYCONFIG_ASSET_KEY = "privoxy.config"; + public final static String POLIPOCONFIG_ASSET_KEY = "torpolipo.conf"; //geoip data file asset key public final static String GEOIP_ASSET_KEY = "geoip";