diff options
author | Alin Năstac <mrness@gentoo.org> | 2005-04-22 19:15:12 +0000 |
---|---|---|
committer | Alin Năstac <mrness@gentoo.org> | 2005-04-22 19:15:12 +0000 |
commit | ed2d2be3dbcac3bde000f4d89f3ae5836cd53b93 (patch) | |
tree | ea35ca7703e69b2f955232964f66c73b9338e847 /net-proxy/privoxy | |
parent | Adding pcmcia flag. Closes #90025, Cheers Georgi (diff) | |
download | gentoo-2-ed2d2be3dbcac3bde000f4d89f3ae5836cd53b93.tar.gz gentoo-2-ed2d2be3dbcac3bde000f4d89f3ae5836cd53b93.tar.bz2 gentoo-2-ed2d2be3dbcac3bde000f4d89f3ae5836cd53b93.zip |
www-proxy -> net-proxy
(Portage version: 2.0.51.19)
Diffstat (limited to 'net-proxy/privoxy')
-rw-r--r-- | net-proxy/privoxy/ChangeLog | 148 | ||||
-rw-r--r-- | net-proxy/privoxy/Manifest | 12 | ||||
-rw-r--r-- | net-proxy/privoxy/files/digest-privoxy-3.0.2 | 1 | ||||
-rw-r--r-- | net-proxy/privoxy/files/digest-privoxy-3.0.3 | 1 | ||||
-rw-r--r-- | net-proxy/privoxy/files/digest-privoxy-3.0.3-r3 | 1 | ||||
-rw-r--r-- | net-proxy/privoxy/files/privoxy-zlib.patch | 508 | ||||
-rw-r--r-- | net-proxy/privoxy/files/privoxy.logrotate | 9 | ||||
-rw-r--r-- | net-proxy/privoxy/files/privoxy.rc6 | 20 | ||||
-rw-r--r-- | net-proxy/privoxy/files/privoxy.rc7 | 22 | ||||
-rw-r--r-- | net-proxy/privoxy/metadata.xml | 6 | ||||
-rw-r--r-- | net-proxy/privoxy/privoxy-3.0.2.ebuild | 74 | ||||
-rw-r--r-- | net-proxy/privoxy/privoxy-3.0.3-r3.ebuild | 92 | ||||
-rw-r--r-- | net-proxy/privoxy/privoxy-3.0.3.ebuild | 74 |
13 files changed, 968 insertions, 0 deletions
diff --git a/net-proxy/privoxy/ChangeLog b/net-proxy/privoxy/ChangeLog new file mode 100644 index 000000000000..4ed2f8d6ea3a --- /dev/null +++ b/net-proxy/privoxy/ChangeLog @@ -0,0 +1,148 @@ +# ChangeLog for www-proxy/privoxy +# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-proxy/privoxy/ChangeLog,v 1.1 2005/04/22 19:15:11 mrness Exp $ + + 22 Apr 2005; Alin Nastac <mrness@gentoo.org> : + Rename category & herd www-proxy to net-proxy + + 08 Apr 2005; Michael Hanselmann <hansmi@gentoo.org> + privoxy-3.0.3-r3.ebuild: + Stable on ppc. + + 08 Apr 2005; Gustavo Zacarias <gustavoz@gentoo.org> + privoxy-3.0.3-r3.ebuild: + Stable on sparc + + 06 Apr 2005; Alin Nastac <mrness@gentoo.org> privoxy-3.0.3-r3.ebuild: + Stable on x86 + +*privoxy-3.0.3-r3 (27 Feb 2005) + + 27 Feb 2005; Alin Nastac <mrness@gentoo.org> -files/privoxy-3.0.3.2.patch, + -privoxy-3.0.3-r1.ebuild, -privoxy-3.0.3-r2.ebuild, + +privoxy-3.0.3-r3.ebuild: + Remove patch added from #83205. See #83278 for more info. + +*privoxy-3.0.3-r2 (27 Feb 2005) + + 27 Feb 2005; Alin Nastac <mrness@gentoo.org> +files/privoxy-3.0.3.2.patch, + +files/privoxy-zlib.patch, privoxy-3.0.2.ebuild, privoxy-3.0.3-r1.ebuild, + +privoxy-3.0.3-r2.ebuild, privoxy-3.0.3.ebuild: + Bump version to 3.0.3-2 (#83205) and add support for zlib decompression + (#83278). + +*privoxy-3.0.3-r1 (24 Feb 2005) + + 24 Feb 2005; Alin Nastac <mrness@gentoo.org> metadata.xml, + -files/privoxy-gentoo.diff, +files/privoxy.logrotate, +files/privoxy.rc7, + -privoxy-2.9.14_beta.ebuild, +privoxy-3.0.3-r1.ebuild: + Changed herd from web-apps to www-proxy. Added pcre and logrotate support, + thanks to Torsten Veller <tove@gentoo.org> (#71557). Removed old version. + + 29 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> : + Change encoding to UTF-8 for GLEP 31 compliance + + 05 Sep 2004; Sven Wegener <swegener@gentoo.org> : + Fixed ChangeLog header. + + 03 Sep 2004; Pieter Van den Abeele <pvdabeel@gentoo.org> + privoxy-3.0.2.ebuild: + Masked privoxy-3.0.2.ebuild stable for ppc + + 15 Aug 2004; Stuart Herbert <stuart@gentoo.org> privoxy-2.9.14_beta.ebuild, + privoxy-3.0.2.ebuild, privoxy-3.0.3.ebuild: + Fix pkg_preinst() -> pkg_setup() + +*privoxy-3.0.2 (08 Aug 2004) + + 08 Aug 2004; Stuart Herbert <stuart@gentoo.org> +metadata.xml, + +files/privoxy-gentoo.diff, +files/privoxy.rc6, +privoxy-2.9.14_beta.ebuild, + +privoxy-3.0.2.ebuild, +privoxy-3.0.3.ebuild: + Moved from net-www/privoxy to www-proxy/privoxy. + + 27 Jul 2004; Rob Holland <tigger@gentoo.org> privoxy-2.9.14_beta.ebuild, + privoxy-3.0.2.ebuild, privoxy-3.0.3.ebuild: + Fix user/group addition re #58526 + + 11 Jun 2004; Bryan Østergaard <kloeri@gentoo.org> privoxy-3.0.3.ebuild: + Stable on alpha. + + 26 Apr 2004; Aron Griffis <agriffis@gentoo.org> privoxy-3.0.2.ebuild, + privoxy-3.0.3.ebuild: + Add die following econf for bug 48950 + + 13 Apr 2004; Danny van Dyk <kugelfang@gentoo.org> privoxy-3.0.3.ebuild: + marked ~amd64 + + 11 Apr 2004; Jason Wever <weeve@gentoo.org> privoxy-3.0.2.ebuild: + Stable on sparc. + + 06 Apr 2004; Joshua Brindle <method@gentoo.org> privoxy-2.9.14_beta.ebuild, + privoxy-3.0.2.ebuild, privoxy-3.0.3.ebuild: + added selinux policy to rdepend + + 22 Mar 2004; Jason Wever <weeve@gentoo.org> privoxy-3.0.2.ebuild, + privoxy-3.0.3.ebuild: + Added ~sparc keywords to 3.0.2 and 3.0.3 + +*privoxy-3.0.3 (16 Feb 2004) + + 16 Feb 2004; Martin Holzer <mholzer@gentoo.org> privoxy-3.0.3.ebuild: + Version bumped. + + 03 Feb 2004; Martin Holzer <mholzer@gentoo.org> privoxy-2.9.14_beta.ebuild: + fixing .keep issue. closes 39827 + + 18 Jan 2004; Martin Holzer <mholzer@gentoo.org> privoxy-3.0.0.ebuild, + privoxy-3.0.2.ebuild: + adding keepdir for logfile and RESTRICT=nomirror + + 19 Oct 2003; Martin Holzer <mholzer@gentoo.org> privoxy-3.0.2.ebuild: + x86 stable. + + 01 Oct 2003; Tavis Ormandy <taviso@gentoo.org> privoxy-3.0.2.ebuild: + Stable on alpha + + 11 Jun 2003; Jon Portnoy <avenj@gentoo.org> privoxy-3.0.2.ebuild : + Removed textbrowser dependency to fix bug #20265. + + 09 Jun 2003; <msterret@gentoo.org> privoxy-3.0.0.ebuild, + privoxy-3.0.2.ebuild: + DEPEND on sed >= 4 + +*privoxy-3.0.2 (29 Apr 2003) + + 29 Apr 2003; Martin Holzer <mholzer@gentoo.org> privoxy-3.0.0.ebuild, + privoxy-3.0.2.ebuild, files/privoxy-3.0.0-gentoo.diff: + diff now done with sed. Version bumped. Closes #20011. + +*privoxy-3.0.0 (14 Dec 2002) + + 16 Apr 2003; Tavis Ormandy <taviso@gentoo.org> privoxy-3.0.0.ebuild: + Marking ~alpha. + + 27 Feb 2003; Martin Holzer <mholzer@gentoo.org> privoxy-3.0.0.ebuild : + Marked as stable and changed SLOT="2" to prevent broken package. + Closes #16462. + + 15 Feb 2003; Mark Guertin <gerk@gentoo.org> privoxy-3.0.0.ebuild : + set ~ppc in keywords + + 14 Dec 2002; Seemant Kulleen <seemant@gentoo.org> privoxy-3.0.0.ebuild + files/digest-privoxy-3.0.0 files/privoxy-3.0.0-gentoo.diff + files/privoxy.rc6 : + + Version bump and fixes from fridtjof@fbunet.de (Fridtjof Busse) in bug + #11835 + +*privoxy-2.9.14_beta (07 Jul 2002) + + 06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords + + 29 Aug 2002; Seemant Kulleen <seemant@gentoo.org> privoxy-2.9.14_beta : + + Cleaned up ebuild slightly, and added a virtual/textbrowser dependency, + which closes bug #7175 by: fridtjof@fbunet.de Also added a .keep file in + /var/log/privoxy + + 07 Jul 2002; Georg Sauthoff <g_sauthoff@web.de> *: Initial Ebuild! diff --git a/net-proxy/privoxy/Manifest b/net-proxy/privoxy/Manifest new file mode 100644 index 000000000000..b6dfa1bec2f9 --- /dev/null +++ b/net-proxy/privoxy/Manifest @@ -0,0 +1,12 @@ +MD5 623fd4631d3784e06924205a3c72855c privoxy-3.0.2.ebuild 1878 +MD5 0d4c0e667675cc4fd69eba5ee963957f privoxy-3.0.3-r3.ebuild 2333 +MD5 03f61f7eb4a83bf5a165d804b8e982e0 privoxy-3.0.3.ebuild 1888 +MD5 a62a59cd69d9802a895414b8be06cd69 ChangeLog 5208 +MD5 a31f52e5785898edac47ca00310413e2 metadata.xml 291 +MD5 2760360001df367f12d98ee964007363 files/privoxy.logrotate 191 +MD5 56d88e9a6970c67adde3386b83dcb2ae files/digest-privoxy-3.0.3-r3 77 +MD5 84c5590bae09be1d5419c27a1d5b676d files/privoxy.rc6 523 +MD5 ad897a8372898fe35da88ff91c90afe4 files/privoxy.rc7 579 +MD5 498b2ae85af76ed736ac4979e28bfe8a files/digest-privoxy-3.0.2 77 +MD5 56d88e9a6970c67adde3386b83dcb2ae files/digest-privoxy-3.0.3 77 +MD5 199b985be5ba80912fdd3bf5776e697f files/privoxy-zlib.patch 17945 diff --git a/net-proxy/privoxy/files/digest-privoxy-3.0.2 b/net-proxy/privoxy/files/digest-privoxy-3.0.2 new file mode 100644 index 000000000000..2e45d5b22967 --- /dev/null +++ b/net-proxy/privoxy/files/digest-privoxy-3.0.2 @@ -0,0 +1 @@ +MD5 9a9e25ad4420dac73d57a8efe6be58a0 privoxy-3.0.2-stable-src.tar.gz 1925287 diff --git a/net-proxy/privoxy/files/digest-privoxy-3.0.3 b/net-proxy/privoxy/files/digest-privoxy-3.0.3 new file mode 100644 index 000000000000..8293b5fba301 --- /dev/null +++ b/net-proxy/privoxy/files/digest-privoxy-3.0.3 @@ -0,0 +1 @@ +MD5 b0710be8af09409bfb03f52523a17010 privoxy-3.0.3-stable-src.tar.gz 1561072 diff --git a/net-proxy/privoxy/files/digest-privoxy-3.0.3-r3 b/net-proxy/privoxy/files/digest-privoxy-3.0.3-r3 new file mode 100644 index 000000000000..8293b5fba301 --- /dev/null +++ b/net-proxy/privoxy/files/digest-privoxy-3.0.3-r3 @@ -0,0 +1 @@ +MD5 b0710be8af09409bfb03f52523a17010 privoxy-3.0.3-stable-src.tar.gz 1561072 diff --git a/net-proxy/privoxy/files/privoxy-zlib.patch b/net-proxy/privoxy/files/privoxy-zlib.patch new file mode 100644 index 000000000000..174ce9182b17 --- /dev/null +++ b/net-proxy/privoxy/files/privoxy-zlib.patch @@ -0,0 +1,508 @@ +diff -Nru privoxy-3.0.3-stable.orig/actionlist.h privoxy-3.0.3-stable/actionlist.h +--- privoxy-3.0.3-stable.orig/actionlist.h 2002-09-25 18:25:25.000000000 +0300 ++++ privoxy-3.0.3-stable/actionlist.h 2005-02-27 01:01:23.072737744 +0200 +@@ -116,6 +116,7 @@ + DEFINE_ACTION_STRING ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE) + DEFINE_CGI_PARAM_RADIO ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE, "first", 0) + DEFINE_CGI_PARAM_RADIO ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE, "last", 1) ++DEFINE_ACTION_BOOL ("decompress-from-server", ACTION_DECOMPRESS_IN) + DEFINE_ACTION_BOOL ("downgrade-http-version", ACTION_DOWNGRADE) + DEFINE_ACTION_BOOL ("fast-redirects", ACTION_FAST_REDIRECTS) + DEFINE_ACTION_MULTI ("filter", ACTION_MULTI_FILTER) +diff -Nru privoxy-3.0.3-stable.orig/configure.in privoxy-3.0.3-stable/configure.in +--- privoxy-3.0.3-stable.orig/configure.in 2004-01-30 11:26:03.000000000 +0200 ++++ privoxy-3.0.3-stable/configure.in 2005-02-27 00:59:01.813373408 +0200 +@@ -1234,6 +1234,20 @@ + libpcrs is available], + [ if test $enableval = "no"; then have_pcrs=no; fi ]) + ++AC_ARG_ENABLE(zlib, ++[ --enable-zlib Use the zlib library to allow compressing or ++ decompressing data on the fly.], ++[enableval2=$enableval], ++[enableval2=no]) ++if test $enableval2 = yes; then ++ AC_CHECK_LIB(z, zlibVersion, , [ ++ AC_MSG_ERROR([Unable to find a copy of zlib. The zlib library ++is necessary to enable compresion support. ]) ++ ]) ++ AC_DEFINE(FEATURE_ZLIB,1, ++ [ Define to 1 to use compression through the zlib library. ]) ++fi ++ + + # If we have libpcre and either we also have pcreposix or + # we don't need pcreposix, then link pcre dynamically; else +diff -Nru privoxy-3.0.3-stable.orig/default.action.master privoxy-3.0.3-stable/default.action.master +--- privoxy-3.0.3-stable.orig/default.action.master 2004-01-30 17:28:45.000000000 +0200 ++++ privoxy-3.0.3-stable/default.action.master 2005-02-27 00:59:01.815373104 +0200 +@@ -452,7 +452,7 @@ + -hide-user-agent \ + -kill-popups \ + -limit-connect \ +-+prevent-compression \ ++-prevent-compression \ + -send-vanilla-wafer \ + -send-wafer \ + +session-cookies-only \ +diff -Nru privoxy-3.0.3-stable.orig/filters.c privoxy-3.0.3-stable/filters.c +--- privoxy-3.0.3-stable.orig/filters.c 2003-11-11 15:10:31.000000000 +0200 ++++ privoxy-3.0.3-stable/filters.c 2005-02-27 01:01:23.073737592 +0200 +@@ -1320,6 +1320,38 @@ + csp->flags |= CSP_FLAG_MODIFIED; + } + ++#ifdef FEATURE_ZLIB ++ /* If the body has a compressed transfer-encoding, uncompress ++ * it first, adjusting size and iob->eod. Note that ++ * decompression occurs after de-chunking. ++ */ ++ if (csp->content_type & CT_GZIP || csp->content_type & CT_DEFLATE) ++ { ++ /* Notice that we at least tried to decompress. */ ++ if (JB_ERR_OK != decompress_iob(csp)) ++ { ++ /* We failed to decompress the data; there's no point ++ * in continuing since we can't filter. This is ++ * slightly tricky because we need to remember not to ++ * modify the Content-Encoding header later; using ++ * CT_TABOO flag is a kludge for this purpose. ++ */ ++ csp->content_type |= CT_TABOO; ++ return(NULL); ++ } ++ log_error(LOG_LEVEL_RE_FILTER, "Decompressing successful"); ++ ++ /* Decompression gives us a completely new iob, so we ++ * need to update. ++ */ ++ size = csp->iob->eod - csp->iob->cur; ++ old_buf = csp->iob->cur; ++ ++ csp->flags |= CSP_FLAG_MODIFIED; ++ } ++#endif ++ ++ + /* + * For all applying +filter actions, look if a filter by that + * name exists and if yes, execute it's pcrs_joblist on the +diff -Nru privoxy-3.0.3-stable.orig/jcc.c privoxy-3.0.3-stable/jcc.c +--- privoxy-3.0.3-stable.orig/jcc.c 2003-12-12 14:52:53.000000000 +0200 ++++ privoxy-3.0.3-stable/jcc.c 2005-02-27 01:06:08.737310128 +0200 +@@ -659,6 +659,10 @@ + # include <select.h> + # endif + ++#ifdef FEATURE_ZLIB ++#include <zlib.h> ++#endif ++ + #endif + + #include "project.h" +@@ -1605,6 +1609,8 @@ + + if ((csp->content_type & CT_TEXT) && /* It's a text / * MIME-Type */ + !http->ssl && /* We talk plaintext */ ++ !(csp->content_type & CT_GZIP) && ++ !(csp->content_type & CT_DEFLATE) && + block_popups) /* Policy allows */ + { + block_popups_now = 1; +diff -Nru privoxy-3.0.3-stable.orig/parsers.c privoxy-3.0.3-stable/parsers.c +--- privoxy-3.0.3-stable.orig/parsers.c 2003-07-11 16:21:25.000000000 +0300 ++++ privoxy-3.0.3-stable/parsers.c 2005-02-27 01:01:23.078736832 +0200 +@@ -433,6 +433,10 @@ + #include <assert.h> + #include <string.h> + ++#ifdef FEATURE_ZLIB ++#include <zlib.h> ++#endif ++ + #if !defined(_WIN32) && !defined(__OS2__) + #include <unistd.h> + #endif +@@ -632,6 +636,281 @@ + } + + ++#ifdef FEATURE_ZLIB ++/********************************************************************* ++ * ++ * Function : decompress_iob ++ * ++ * Description : Decompress buffered page, expanding the ++ * buffer as necessary. csp->iob->cur ++ * should point to the the beginning of the ++ * compressed data block. ++ * ++ * Parameters : ++ * 1 : csp = Current client state (buffers, headers, etc...) ++ * ++ * Returns : JB_ERR_OK on success, JB_ERR_MEMORY if out-of-memory ++ * limit reached, JB_ERR_GENERIC if error decompressing ++ * buffer. ++ * ++ *********************************************************************/ ++jb_err decompress_iob(struct client_state *csp) ++{ ++ char *buf; /* new, uncompressed buffer */ ++ int bufsize = csp->iob->size; /* allocated size of the new buffer */ ++ /* Number of bytes at the beginning ++ * of the iob that we should NOT ++ * decompress. ++ */ ++ int skip_size = csp->iob->cur - csp->iob->buf; ++ int status; /* return status of the inflate() call */ ++ z_stream zstr; /* used by calls to zlib */ ++ ++ /* This is to protect the parsing of gzipped data, but it should(?) ++ * be valid for deflated data also. ++ */ ++ if (bufsize < 10) ++ { ++ log_error (LOG_LEVEL_ERROR, "Buffer too small decompressing iob"); ++ return JB_ERR_GENERIC; ++ } ++ ++ if (csp->content_type & CT_GZIP) ++ { ++ /* Our task is slightly complicated by the facts that data ++ * compressed by gzip does not include a zlib header, and ++ * that there is no easily accessible interface in zlib to ++ * handle a gzip header. We strip off the gzip header by ++ * hand, and later inform zlib not to expect a header. ++ */ ++ ++ /* Strip off the gzip header. Please see RFC 1952 for more ++ * explanation of the appropriate fields. ++ */ ++ if ((*csp->iob->cur++ != (char)0x1f) ++ || (*csp->iob->cur++ != (char)0x8b) ++ || (*csp->iob->cur++ != Z_DEFLATED)) ++ { ++ log_error (LOG_LEVEL_ERROR, ++ "Invalid gzip header when decompressing"); ++ return JB_ERR_GENERIC; ++ } ++ else { ++ int flags = *csp->iob->cur++; ++ if (flags & 0xe0) ++ { ++ /* The gzip header has reserved bits set; bail out. */ ++ log_error (LOG_LEVEL_ERROR, ++ "Invalid gzip header when decompressing"); ++ return JB_ERR_GENERIC; ++ } ++ csp->iob->cur += 6; ++ ++ /* Skip extra fields if necessary. */ ++ if (flags & 0x04) ++ { ++ /* Skip a given number of bytes, specified as a 16-bit ++ * little-endian value. ++ */ ++ csp->iob->cur += *csp->iob->cur++ + (*csp->iob->cur++ << 8); ++ } ++ ++ /* Skip the filename if necessary. */ ++ if (flags & 0x08) ++ { ++ /* A null-terminated string follows. */ ++ while (*csp->iob->cur++); ++ } ++ ++ /* Skip the comment if necessary. */ ++ if (flags & 0x10) ++ { ++ while (*csp->iob->cur++); ++ } ++ ++ /* Skip the CRC if necessary. */ ++ if (flags & 0x02) ++ { ++ csp->iob->cur += 2; ++ } ++ } ++ } ++ else if (csp->content_type & CT_DEFLATE) ++ { ++ log_error (LOG_LEVEL_INFO, "Decompressing deflated iob: %d", *csp->iob->cur); ++ /* In theory (that is, according to RFC 1950), deflate-compressed ++ * data should begin with a two-byte zlib header and have an ++ * adler32 checksum at the end. It seems that in practice the ++ * only the raw compressed data is sent. Note that this means that ++ * we are not RFC 1950-compliant here, but the advantage is that ++ * this actually works. :) ++ * ++ * We add a dummy null byte to tell zlib where the data ends, ++ * and later inform it not to expect a header. ++ * ++ * Fortunately, add_to_iob() has thoughtfully null-terminated ++ * the buffer; we can just increment the end pointer to include ++ * the dummy byte. ++ */ ++ csp->iob->eod++; ++ } ++ else ++ { ++ log_error (LOG_LEVEL_ERROR, ++ "Unable to determine compression format for decompression"); ++ return JB_ERR_GENERIC; ++ } ++ ++ /* Set up the fields required by zlib. */ ++ zstr.next_in = csp->iob->cur; ++ zstr.avail_in = csp->iob->eod - csp->iob->cur; ++ zstr.zalloc = Z_NULL; ++ zstr.zfree = Z_NULL; ++ zstr.opaque = Z_NULL; ++ ++ /* Passing -MAX_WBITS to inflateInit2 tells the library ++ * that there is no zlib header. ++ */ ++ if (inflateInit2 (&zstr, -MAX_WBITS) != Z_OK) ++ { ++ log_error (LOG_LEVEL_ERROR, ++ "Error initializing decompression"); ++ return JB_ERR_GENERIC; ++ } ++ ++ /* Next, we allocate new storage for the inflated data. ++ * We don't modify the existing iob yet, so in case there ++ * is error in decompression we can recover gracefully. ++ */ ++ buf = zalloc (bufsize); ++ if (NULL == buf) ++ { ++ log_error (LOG_LEVEL_ERROR, ++ "Out of memory decompressing iob"); ++ return JB_ERR_MEMORY; ++ } ++ ++ assert(bufsize >= skip_size); ++ memcpy(buf, csp->iob->buf, skip_size); ++ zstr.avail_out = bufsize - skip_size; ++ zstr.next_out = buf + skip_size; ++ ++ /* Try to decompress the whole stream in one shot. */ ++ while (Z_BUF_ERROR == (status = inflate(&zstr, Z_FINISH))) ++ { ++ /* We need to allocate more memory for the output buffer. */ ++ ++ char *tmpbuf; /* used for realloc'ing the buffer */ ++ int oldbufsize = bufsize; /* keep track of the old bufsize */ ++ ++ /* If zlib wants more data then there's a problem, because ++ * the complete compressed file should have been buffered. ++ */ ++ if (0 == zstr.avail_in) ++ { ++ log_error(LOG_LEVEL_ERROR, ++ "Unexpected end of compressed iob"); ++ return JB_ERR_GENERIC; ++ } ++ ++ /* If we tried the limit and still didn't have enough ++ * memory, just give up. ++ */ ++ if (bufsize == csp->config->buffer_limit) ++ { ++ log_error(LOG_LEVEL_ERROR, "Out of memory decompressing iob"); ++ return JB_ERR_MEMORY; ++ } ++ ++ /* Try doubling the buffer size each time. */ ++ bufsize *= 2; ++ ++ /* Don't exceed the buffer limit. */ ++ if (bufsize > csp->config->buffer_limit) ++ { ++ bufsize = csp->config->buffer_limit; ++ } ++ ++ /* Try to allocate the new buffer. */ ++ tmpbuf = realloc(buf, bufsize); ++ if (NULL == tmpbuf) ++ { ++ log_error(LOG_LEVEL_ERROR, "Out of memory decompressing iob"); ++ freez(buf); ++ return JB_ERR_MEMORY; ++ } ++ else ++ { ++ char *oldnext_out = zstr.next_out; ++ ++ /* Update the fields for inflate() to use the new ++ * buffer, which may be in a different location from ++ * the old one. ++ */ ++ zstr.avail_out += bufsize - oldbufsize; ++ zstr.next_out = tmpbuf + bufsize - zstr.avail_out; ++ ++ /* Compare with an uglier method of calculating these values ++ * that doesn't require the extra oldbufsize variable. ++ */ ++ assert(zstr.avail_out == ++ tmpbuf + bufsize - (char *)zstr.next_out); ++ assert((char *)zstr.next_out == ++ tmpbuf + ((char *)oldnext_out - buf)); ++ assert(zstr.avail_out > 0); ++ ++ buf = tmpbuf; ++ } ++ } ++ ++ inflateEnd(&zstr); ++ if (status != Z_STREAM_END) ++ { ++ /* We failed to decompress the stream. */ ++ log_error(LOG_LEVEL_ERROR, ++ "Error in decompressing to the buffer (iob): %s", ++ zstr.msg); ++ return JB_ERR_GENERIC; ++ } ++ ++ /* Finally, we can actually update the iob, since the ++ * decompression was successful. First, free the old ++ * buffer. ++ */ ++ freez(csp->iob->buf); ++ ++ /* Now, update the iob to use the new buffer. */ ++ csp->iob->buf = buf; ++ csp->iob->cur = csp->iob->buf + skip_size; ++ csp->iob->eod = zstr.next_out; ++ csp->iob->size = bufsize; ++ ++ /* Make sure the new uncompressed iob obeys some minimal ++ * consistency conditions. ++ */ ++ if ((csp->iob->buf < csp->iob->cur) ++ && (csp->iob->cur <= csp->iob->eod) ++ && (csp->iob->eod <= csp->iob->buf + csp->iob->size)) ++ { ++ char t = csp->iob->cur[100]; ++ csp->iob->cur[100] = 0; ++ log_error(LOG_LEVEL_INFO, ++ "Sucessfully decompressed: %s", csp->iob->cur); ++ csp->iob->cur[100] = t; ++ return JB_ERR_OK; ++ } ++ else ++ { ++ /* It seems that zlib did something weird. */ ++ log_error(LOG_LEVEL_ERROR, ++ "Unexpected error decompressing the buffer (iob): %d==%d, %d>%d, %d<%d", csp->iob->cur, csp->iob->buf + skip_size, csp->iob->eod, csp->iob->buf, csp->iob->eod, csp->iob->buf + csp->iob->size); ++ return JB_ERR_GENERIC; ++ } ++ ++} ++#endif /* defined(FEATURE_ZLIB) */ ++ ++ + /********************************************************************* + * + * Function : get_header +@@ -937,13 +1216,59 @@ + *********************************************************************/ + jb_err server_content_encoding(struct client_state *csp, char **header) + { ++#ifdef FEATURE_ZLIB ++ if (strstr(*header, "gzip")) ++ { ++ /* ++ * If the body was modified, we have tried to ++ * decompress it, so adjust the header if necessary. ++ */ ++ if ((csp->flags & CSP_FLAG_MODIFIED) /* we attempted to decompress */ ++ && !(csp->content_type & CT_TABOO)) /* decompression was successful */ ++ { ++ freez(*header); ++ *header = strdup("Content-Encoding: identity"); ++ return (header == NULL) ? JB_ERR_MEMORY : JB_ERR_OK; ++ } ++ else ++ { ++ csp->content_type |= CT_GZIP; ++ } ++ } ++ else if (strstr(*header, "deflate")) ++ { ++ /* ++ * If the body was modified, we have tried to ++ * decompress it, so adjust the header if necessary. ++ */ ++ if ((csp->flags & CSP_FLAG_MODIFIED) /* we attempted to decompress */ ++ && !(csp->content_type & CT_TABOO)) /* decompression was successful */ ++ { ++ freez(*header); ++ *header = strdup("Content-Encoding: identity"); ++ return (header == NULL) ? JB_ERR_MEMORY : JB_ERR_OK; ++ } ++ else ++ { ++ csp->content_type |= CT_DEFLATE; ++ } ++ } ++ else if (strstr(*header, "compress")) ++ { ++ /* We can't decompress this; therefore we can't filter ++ * it either. ++ */ ++ csp->content_type |= CT_TABOO; ++ } ++#else /* !defined(FEATURE_GZIP) */ + /* + * Turn off pcrs and gif filtering if body compressed + */ + if (strstr(*header, "gzip") || strstr(*header, "compress") || strstr(*header, "deflate")) + { +- csp->content_type = CT_TABOO; ++ csp->content_type |= CT_TABOO; + } ++#endif /* !defined(FEATURE_GZIP) */ + + return JB_ERR_OK; + +diff -Nru privoxy-3.0.3-stable.orig/parsers.h privoxy-3.0.3-stable/parsers.h +--- privoxy-3.0.3-stable.orig/parsers.h 2002-09-25 17:52:46.000000000 +0300 ++++ privoxy-3.0.3-stable/parsers.h 2005-02-27 01:01:23.079736680 +0200 +@@ -194,6 +194,7 @@ + + extern int flush_socket(jb_socket fd, struct client_state *csp); + extern jb_err add_to_iob(struct client_state *csp, char *buf, int n); ++extern jb_err decompress_iob(struct client_state *csp); + extern char *get_header(struct client_state *csp); + extern char *get_header_value(const struct list *header_list, const char *header_name); + extern char *sed(const struct parsers pats[], const add_header_func_ptr more_headers[], struct client_state *csp); +diff -Nru privoxy-3.0.3-stable.orig/project.h privoxy-3.0.3-stable/project.h +--- privoxy-3.0.3-stable.orig/project.h 2004-01-30 17:29:29.000000000 +0200 ++++ privoxy-3.0.3-stable/project.h 2005-02-27 01:01:23.081736376 +0200 +@@ -818,6 +818,15 @@ + #define CT_TABOO 4 /**< csp->content_type bitmask: + DO NOT filter, irrespective of other flags. */ + ++/* Although these are not, strictly speaking, content types ++ * (they are content encodings), it is simple to handle ++ * them as such. ++ */ ++#define CT_GZIP 8 /**< csp->content_type bitmask: ++ gzip-compressed data. */ ++#define CT_DEFLATE 16 /**< csp->content_type bitmask: ++ zlib-compressed data. */ ++ + /** + * The mask which includes all actions. + */ +@@ -862,6 +871,8 @@ + #define ACTION_VANILLA_WAFER 0x00008000UL + /** Action bitmap: Limit CONNECT requests to safe ports. */ + #define ACTION_LIMIT_CONNECT 0x00010000UL ++/** Action bitmap: Uncompress incoming text for filtering. */ ++#define ACTION_DECOMPRESS_IN 0x00020000UL + + /** Action string index: How to deanimate GIFs */ + #define ACTION_STRING_DEANIMATE 0 diff --git a/net-proxy/privoxy/files/privoxy.logrotate b/net-proxy/privoxy/files/privoxy.logrotate new file mode 100644 index 000000000000..f5d6b2b91703 --- /dev/null +++ b/net-proxy/privoxy/files/privoxy.logrotate @@ -0,0 +1,9 @@ +/var/log/privoxy/privoxy.log /var/log/privoxy/jarfile { + missingok + notifempty + create 0750 privoxy privoxy + sharedscripts + postrotate + killall -HUP privoxy 2>/dev/null || true + endscript +} diff --git a/net-proxy/privoxy/files/privoxy.rc6 b/net-proxy/privoxy/files/privoxy.rc6 new file mode 100644 index 000000000000..50650d4b8edf --- /dev/null +++ b/net-proxy/privoxy/files/privoxy.rc6 @@ -0,0 +1,20 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-proxy/privoxy/files/privoxy.rc6,v 1.1 2005/04/22 19:15:11 mrness Exp $ + +depend() { + need net +} + +start() { + ebegin "Starting privoxy" + start-stop-daemon --start --quiet --exec /usr/sbin/privoxy -- /etc/privoxy/config --user privoxy.privoxy & + eend $? +} + +stop() { + ebegin "Stopping privoxy" + start-stop-daemon --stop --quiet --exec /usr/sbin/privoxy + eend $? +} diff --git a/net-proxy/privoxy/files/privoxy.rc7 b/net-proxy/privoxy/files/privoxy.rc7 new file mode 100644 index 000000000000..b06d990b273d --- /dev/null +++ b/net-proxy/privoxy/files/privoxy.rc7 @@ -0,0 +1,22 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-proxy/privoxy/files/privoxy.rc7,v 1.1 2005/04/22 19:15:11 mrness Exp $ + +depend() { + need net +} + +start() { + ebegin "Starting privoxy" + start-stop-daemon --start --quiet --exec /usr/sbin/privoxy -- \ + --pidfile /var/run/privoxy.pid \ + --user privoxy.privoxy /etc/privoxy/config 2>/dev/null + eend $? +} + +stop() { + ebegin "Stopping privoxy" + start-stop-daemon --stop --quiet --pidfile /var/run/privoxy.pid + eend $? +} diff --git a/net-proxy/privoxy/metadata.xml b/net-proxy/privoxy/metadata.xml new file mode 100644 index 000000000000..f1810cf5c4a6 --- /dev/null +++ b/net-proxy/privoxy/metadata.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>net-proxy</herd> +<longdescription>A web proxy with advanced filtering capabilities for protecting privacy against internet junk</longdescription> +</pkgmetadata> diff --git a/net-proxy/privoxy/privoxy-3.0.2.ebuild b/net-proxy/privoxy/privoxy-3.0.2.ebuild new file mode 100644 index 000000000000..3dbb5ff0952b --- /dev/null +++ b/net-proxy/privoxy/privoxy-3.0.2.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-proxy/privoxy/privoxy-3.0.2.ebuild,v 1.1 2005/04/22 19:15:11 mrness Exp $ + +inherit eutils + +S="${WORKDIR}/${P}-stable" +HOMEPAGE="http://www.privoxy.org" +DESCRIPTION="A web proxy with advanced filtering capabilities for protecting privacy against internet junk." +SRC_URI="mirror://sourceforge/ijbswa/${P}-stable-src.tar.gz" +RESTRICT="nomirror" + +IUSE="selinux" +SLOT="0" +KEYWORDS="x86 ppc alpha sparc" +LICENSE="GPL-2" + +DEPEND=">=sys-apps/sed-4" +RDEPEND="selinux? ( sec-policy/selinux-privoxy )" + +pkg_setup() { + enewgroup privoxy + enewuser privoxy -1 /bin/false /etc/privoxy privoxy +} + +src_unpack() { + unpack ${A} + cd ${S} + sed -i 's:confdir .:confdir /etc/privoxy:' config + sed -i 's:logdir .:logdir /var/log/privoxy:' config + sed -i 's:logfile logfile:logfile privoxy.log:' config + sed -i 's:set-image-blocker{pattern}:set-image-blocker{blank}:' default.action.master + + autoheader || die "autoheader failed" + autoconf || die "autoconf failed" +} + +src_compile() { + econf \ + --sysconfdir=/etc/privoxy || die "econf failed" + + emake || die "make failed." +} + +src_install () { + diropts -m 0750 -g privoxy -o privoxy + dodir /var/log/privoxy + keepdir /var/log/privoxy + dodir /etc/privoxy /etc/privoxy/templates + + insopts -m 0640 -g privoxy -o privoxy + insinto /etc/privoxy + doins default.action default.filter config standard.action trust user.action + + insinto /etc/privoxy/templates + doins templates/* + + doman privoxy.1 + + dodoc LICENSE README AUTHORS doc/text/faq.txt ChangeLog + + insopts + for i in developer-manual faq man-page user-manual + do + insinto /usr/share/doc/${PF}/$i + doins doc/webserver/$i/* + done + + insopts -m 0750 -g root -o root + insinto /usr/sbin + doins privoxy + insinto /etc/init.d + newins ${FILESDIR}/privoxy.rc6 privoxy +} diff --git a/net-proxy/privoxy/privoxy-3.0.3-r3.ebuild b/net-proxy/privoxy/privoxy-3.0.3-r3.ebuild new file mode 100644 index 000000000000..cf538a1aa0f6 --- /dev/null +++ b/net-proxy/privoxy/privoxy-3.0.3-r3.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-proxy/privoxy/privoxy-3.0.3-r3.ebuild,v 1.1 2005/04/22 19:15:11 mrness Exp $ + +inherit toolchain-funcs eutils + +HOMEPAGE="http://www.privoxy.org" +DESCRIPTION="A web proxy with advanced filtering capabilities for protecting privacy against internet junk." +SRC_URI="mirror://sourceforge/ijbswa/${P}-stable-src.tar.gz" + +IUSE="pcre selinux" +SLOT="0" +KEYWORDS="~alpha ~amd64 ppc sparc x86" +LICENSE="GPL-2" + +DEPEND=">=sys-apps/sed-4 + =sys-devel/autoconf-2.1* + virtual/libc + pcre? ( dev-libs/libpcre )" + +RDEPEND="virtual/libc + selinux? ( sec-policy/selinux-privoxy ) + pcre? ( dev-libs/libpcre )" + +S="${WORKDIR}/${P}-stable" + +pkg_setup() { + enewgroup privoxy + enewuser privoxy -1 /bin/false /etc/privoxy privoxy +} + +src_unpack() { + unpack ${A} + cd ${S} + + # add gzip and zlib decompression + epatch ${FILESDIR}/privoxy-zlib.patch + + rm ${S}/autom4te.cache/{output.0,requests,traces.0} + + sed -e 's:confdir .:confdir /etc/privoxy:' \ + -e 's:logdir .:logdir /var/log/privoxy:' \ + -e 's:logfile logfile:logfile privoxy.log:' \ + -i ${S}/config || die "sed failed." + sed -e 's:^\+set-image-blocker{pattern}:+set-image-blocker{blank}:' \ + -i ${S}/default.action.master || die "sed 2 failed." +} + +src_compile() { + export WANT_AUTOCONF=2.1 + autoheader || die "autoheader failed" + autoconf || die "autoconf failed" + + export CC=$(tc-getCC) + econf \ + $(use_enable pcre dynamic-pcre) \ + --sysconfdir=/etc/privoxy || die "econf failed" + + emake || die "make failed." +} + +src_install () { + diropts -m 0750 -g privoxy -o privoxy + insopts -m 0640 -g privoxy -o privoxy + + keepdir /var/log/privoxy + + insinto /etc/privoxy + doins default.action default.filter config standard.action trust user.action + + insinto /etc/privoxy/templates + doins templates/* + + doman privoxy.1 + dodoc LICENSE README AUTHORS doc/text/faq.txt ChangeLog + + insopts -m 0644 -g root -o root + diropts -m 0755 -g root -o root + for i in developer-manual faq man-page user-manual + do + insinto /usr/share/doc/${PF}/$i + doins doc/webserver/$i/* + done + + insopts -m 0750 -g root -o root + insinto /usr/sbin + doins privoxy + newinitd ${FILESDIR}/privoxy.rc7 privoxy + insopts -m 0640 + insinto /etc/logrotate.d + newins ${FILESDIR}/privoxy.logrotate privoxy +} diff --git a/net-proxy/privoxy/privoxy-3.0.3.ebuild b/net-proxy/privoxy/privoxy-3.0.3.ebuild new file mode 100644 index 000000000000..69f748c9b244 --- /dev/null +++ b/net-proxy/privoxy/privoxy-3.0.3.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-proxy/privoxy/privoxy-3.0.3.ebuild,v 1.1 2005/04/22 19:15:11 mrness Exp $ + +inherit eutils + +S="${WORKDIR}/${P}-stable" +HOMEPAGE="http://www.privoxy.org" +DESCRIPTION="A web proxy with advanced filtering capabilities for protecting privacy against internet junk." +SRC_URI="mirror://sourceforge/ijbswa/${P}-stable-src.tar.gz" +RESTRICT="nomirror" + +IUSE="selinux" +SLOT="0" +KEYWORDS="~x86 ~ppc alpha ~sparc ~amd64" +LICENSE="GPL-2" + +DEPEND=">=sys-apps/sed-4" +RDEPEND="selinux? ( sec-policy/selinux-privoxy )" + +pkg_setup() { + enewgroup privoxy + enewuser privoxy -1 /bin/false /etc/privoxy privoxy +} + +src_unpack() { + unpack ${A} + cd ${S} + sed -i 's:confdir .:confdir /etc/privoxy:' config + sed -i 's:logdir .:logdir /var/log/privoxy:' config + sed -i 's:logfile logfile:logfile privoxy.log:' config + sed -i 's:set-image-blocker{pattern}:set-image-blocker{blank}:' default.action.master + + autoheader || die "autoheader failed" + autoconf || die "autoconf failed" +} + +src_compile() { + econf \ + --sysconfdir=/etc/privoxy || die "econf failed" + + emake || die "make failed." +} + +src_install () { + diropts -m 0750 -g privoxy -o privoxy + dodir /var/log/privoxy + keepdir /var/log/privoxy + dodir /etc/privoxy /etc/privoxy/templates + + insopts -m 0640 -g privoxy -o privoxy + insinto /etc/privoxy + doins default.action default.filter config standard.action trust user.action + + insinto /etc/privoxy/templates + doins templates/* + + doman privoxy.1 + + dodoc LICENSE README AUTHORS doc/text/faq.txt ChangeLog + + insopts + for i in developer-manual faq man-page user-manual + do + insinto /usr/share/doc/${PF}/$i + doins doc/webserver/$i/* + done + + insopts -m 0750 -g root -o root + insinto /usr/sbin + doins privoxy + insinto /etc/init.d + newins ${FILESDIR}/privoxy.rc6 privoxy +} |