net-proxy/privoxy: add 4.2.0

Since upstream remove mbedtls-2.x support, and currently building with the
mbedtls-3.x is broken, so temporarily disable mbedtls support for now,
and switch to openssl.

Signed-off-by: Yixun Lan <dlan@gentoo.org>
This commit is contained in:
Yixun Lan
2026-07-04 05:49:50 +00:00
parent a8594255fb
commit 592051c48e
3 changed files with 281 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST privoxy-3.0.34-stable-src.tar.gz 1589785 BLAKE2B d879d3827dc1e6dd6a3d13ab07b788a235a16dcc4b050f17dd43543c0fad1cf9c9ceb2a0ae1ec3885798db5041a6c1fc2c270befd4d8ecf10254a58533458dba SHA512 f963419ae2cb6dd72cd892fa043768d99a4118792833de2e666d6a800fbe9a7fcb0641f15e3211e0b01a74609c65aeb60af1051f1a19daa1048314599679b685
DIST privoxy-4.0.0-stable-src.tar.gz 1746840 BLAKE2B 194987c99fb8da78c369b354bae40557a5c6aafb6091df11b2752a013c24c43e56026e7ec51ebe168f200a5bfdf3ee28fa75867dabde8f2d2a525142b4198f2d SHA512 d89b75c486d403ce99bf439d8a5bacf59cc2c43b2acec55eddab24e818be20cfe23954ca01a20efa86c8afb38bea64bb91435b063144fd549a8c7e03a2320000
DIST privoxy-4.2.0-stable-src.tar.gz 1791064 BLAKE2B fa204d35ca6f70c8e40a97cec561f1772a8b9e790eeb263d26ef4f996d2381306cf5e3e62d6025b58033b72a554f23249c7e46b7c610d179ad4f514e2ea42580 SHA512 e727a16ead5759e3e976d42558ad0c0af137a7f74d8ccc83ed53a34320654362489a77d3bd54c9b4d5b84c5b4ecf8e375d2c1d0e3108eb26acce3014dfbefdb0

View File

@@ -0,0 +1,121 @@
diff --git a/GNUmakefile.in b/GNUmakefile.in
index 214a8e1..45ca660 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -64,8 +64,8 @@ MAN_DEST = $(MAN_DIR)/man8
PRIVOXY_TOOL_MAN_DEST = $(MAN_DIR)/man1
PRIVOXY_MAN_PAGE = privoxy.8
SHARE_DEST = @datadir@
-DOC_DEST = $(SHARE_DEST)/doc/privoxy
-VAR_DEST = @localstatedir@
+DOC_DEST = @docdir@
+VAR_DEST = /var
LOGS_DEST = $(VAR_DEST)/log/privoxy
PIDS_DEST = $(VAR_DEST)/run
@@ -902,8 +902,6 @@ install: CONF_DEST LOG_DEST PID_DEST check_doc GROUP_T
$(INSTALL) $(INSTALL_T) $(DOK_WEB)/man-page/*html $(DESTDIR)$$DOC/man-page;\
$(INSTALL) $(INSTALL_T) $(DOK_WEB)/privoxy-index.html $(DESTDIR)$$DOC/index.html;\
$(INSTALL) $(INSTALL_T) AUTHORS $(DESTDIR)$$DOC;\
- $(INSTALL) $(INSTALL_T) LICENSE $(DESTDIR)$$DOC;\
- $(INSTALL) $(INSTALL_T) LICENSE.GPLv3 $(DESTDIR)$$DOC;\
$(INSTALL) $(INSTALL_T) README $(DESTDIR)$$DOC;\
$(INSTALL) $(INSTALL_T) ChangeLog $(DESTDIR)$$DOC;\
$(INSTALL) $(INSTALL_T) $(DOK_WEB)/p_doc.css $(DESTDIR)$$DOC;\
@@ -986,34 +984,8 @@ install: CONF_DEST LOG_DEST PID_DEST check_doc GROUP_T
fi ;\
$(ECHO) Installing configuration files to $(DESTDIR)$(CONF_DEST);\
for i in $(CONFIGS); do \
- if [ "$$i" = "default.action" ] || [ "$$i" = "default.filter" ] ; then \
- $(RM) $(DESTDIR)$(CONF_DEST)/$$i ;\
- $(ECHO) Installing fresh $$i;\
$(INSTALL) $$INSTALL_CONF $$i $(DESTDIR)$(CONF_DEST) || exit 1;\
- elif [ -s "$(DESTDIR)$(CONF_DEST)/$$i" ]; then \
- $(ECHO) Installing $$i as $$i.new ;\
- $(INSTALL) $$INSTALL_CONF $$i $(DESTDIR)$(CONF_DEST)/$$i.new || exit 1;\
- NEW=1;\
- else \
- $(INSTALL) $$INSTALL_CONF $$i $(DESTDIR)$(CONF_DEST) || exit 1;\
- fi ;\
done ;\
- if [ -n "$$NEW" ]; then \
- $(CHMOD) $(RWD_MODE) $(DESTDIR)$(CONF_DEST)/*.new || exit 1 ;\
- $(ECHO) "Warning: Older config files are preserved. Check new versions for changes!" ;\
- fi ;\
- [ ! -f $(DESTDIR)$(LOG_DEST)/logfile ] && $(ECHO) Creating logfiles in $(DESTDIR)$(LOG_DEST) || \
- $(ECHO) Checking logfiles in $(DESTDIR)$(LOG_DEST) ;\
- $(TOUCH) $(DESTDIR)$(LOG_DEST)/logfile || exit 1 ;\
- if [ x$$USER != x ]; then \
- $(CHOWN) $$USER $(DESTDIR)$(LOG_DEST)/logfile || \
- $(ECHO) "** WARNING ** current install user different from configured user. Logging may fail!!" ;\
- fi ;\
- if [ x$$GROUP_T != x ]; then \
- $(CHGRP) $$GROUP_T $(DESTDIR)$(LOG_DEST)/logfile || \
- $(ECHO) "** WARNING ** current install user different from configured user. Logging may fail!!" ;\
- fi ;\
- $(CHMOD) $(RWD_MODE) $(DESTDIR)$(LOG_DEST)/logfile || exit 1 ;\
if [ "$(prefix)" = "/usr/local" ] || [ "$(prefix)" = "/usr" ]; then \
if [ -f /etc/slackware-version ] && [ -d /etc/rc.d/ ] && [ -w /etc/rc.d/ ] ; then \
$(SED) 's+%PROGRAM%+$(PROGRAM)+' slackware/rc.privoxy.in | \
diff --git a/config b/config
index d24d910..71ce49f 100644
--- a/config
+++ b/config
@@ -259,7 +259,7 @@
#
# No trailing "/", please.
#
-confdir .
+confdir /etc/privoxy
#
# 2.2. templdir
# ==============
@@ -344,7 +344,7 @@ confdir .
#
# No trailing "/", please.
#
-logdir .
+logdir /var/log/privoxy
#
# 2.5. actionsfile
# =================
@@ -478,7 +478,7 @@ filterfile user.filter # User customizations
# require additional software to do it. For details, please
# refer to the documentation for your operating system.
#
-logfile logfile
+logfile privoxy.log
#
# 2.8. trustfile
# ===============
diff --git a/default.action.master b/default.action.master
index a65de1c..8502188 100644
--- a/default.action.master
+++ b/default.action.master
@@ -557,7 +557,7 @@ allow-ads = -block -filter{banners-by-size} -filter{banners-by-link}
+client-header-tagger{range-requests} \
+hide-from-header{block} \
+server-header-tagger{content-type} \
-+set-image-blocker{pattern} \
++set-image-blocker{blank} \
}
standard.Cautious
@@ -580,7 +580,7 @@ standard.Cautious
+hide-referrer{conditional-block} \
+server-header-tagger{content-type} \
+session-cookies-only \
-+set-image-blocker{pattern} \
++set-image-blocker{blank} \
}
standard.Medium
@@ -621,7 +621,7 @@ standard.Medium
+limit-connect{,} \
+overwrite-last-modified{randomize} \
+server-header-tagger{content-type} \
-+set-image-blocker{pattern} \
++set-image-blocker{blank} \
}
standard.Advanced

View File

@@ -0,0 +1,159 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools systemd toolchain-funcs
[ "${PV##*_}" = "beta" ] &&
PRIVOXY_STATUS="beta" ||
PRIVOXY_STATUS="stable"
DESCRIPTION="A web proxy with advanced filtering capabilities for enhancing privacy"
HOMEPAGE="https://www.privoxy.org https://sourceforge.net/projects/ijbswa/"
SRC_URI="https://downloads.sourceforge.net/ijbswa/${P%_*}-${PRIVOXY_STATUS}-src.tar.gz"
S="${WORKDIR}/${P%_*}-${PRIVOXY_STATUS}"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="+acl brotli client-tags compression editor extended-host-patterns
extended-statistics external-filters +fast-redirects +force fuzz
graceful-termination +image-blocking ipv6 +jit lfs mbedtls +openssl
png-images sanitize selinux ssl +stats +threads toggle tools whitelists
+zlib +zstd"
DEPEND="
acct-group/privoxy
acct-user/privoxy
dev-libs/libpcre2
brotli? ( app-arch/brotli )
ssl? (
mbedtls? ( net-libs/mbedtls:3= )
openssl? ( dev-libs/openssl:= )
)
zlib? ( virtual/zlib:= )
zstd? ( app-arch/zstd )
"
RDEPEND="${DEPEND}
extended-host-patterns? ( dev-lang/perl )
selinux? ( sec-policy/selinux-privoxy )
tools? (
net-misc/curl
dev-lang/perl
)
"
REQUIRED_USE="
brotli? ( zlib )
client-tags? ( threads )
compression? ( zlib )
extended-statistics? ( threads )
fuzz? ( zlib )
ssl? ( ^^ ( mbedtls openssl ) threads )
toggle? ( editor )
"
PATCHES=(
"${FILESDIR}"/${PN}-4.2.0-gentoo.patch
"${FILESDIR}"/${PN}-3.0.28-strip.patch
)
pkg_pretend() {
if ! use threads; then
ewarn
ewarn "Privoxy may be very slow without threads support, consider enabling it."
ewarn "See also https://www.privoxy.org/faq/trouble.html#GENTOO-RICERS"
ewarn "Additionally some features may not build or work poperly. You are on your own."
ewarn
fi
}
src_prepare() {
default
mv configure.in configure.ac || die
sed -i "s|/p\.p/|/config.privoxy.org/|g" tools/privoxy-regression-test.pl || die
# autoreconf needs to be called even if we don't modify any autotools source files
# See main makefile
eautoreconf
}
src_configure() {
local myconf="--without-mbedtls --without-openssl"
if use ssl; then
myconf="$(use_with mbedtls) $(use_with openssl)"
fi
if use sanitize; then
myconf+=" --with-usan"
# msan is available in clang only
# asan is broken with current configure tests in gcc
tc-is-clang && myconf+=" --with-msan --with-asan"
fi
# --with-debug only enables debug CFLAGS
# --with-docbook and --with-db2html and their deps are useless,
# since docs are already pregenerated in the source tarball
econf \
--sysconfdir=/etc/privoxy \
--disable-accept-filter \
--enable-dynamic-pcre \
--without-assertions \
--with-user=privoxy \
--with-group=privoxy \
$(use_enable acl acl-support) \
$(use_enable compression) \
$(use_enable client-tags) \
$(use_enable editor) \
$(use_enable extended-host-patterns pcre-host-patterns) \
$(use_enable extended-statistics) \
$(use_enable fast-redirects) \
$(use_enable force) \
$(use_enable fuzz) \
$(use_enable graceful-termination) \
$(use_enable image-blocking) \
$(use_enable jit pcre-jit-compilation) \
$(use_enable ipv6 ipv6-support) \
$(use_enable lfs large-file-support) \
$(use_enable png-images no-gifs) \
$(use_enable stats) \
$(use_enable threads pthread) \
$(use_enable toggle) \
$(use_enable whitelists trust-files) \
$(use_enable zlib) \
$(use_with brotli) \
$(use_with zstd) \
${myconf}
}
src_install() {
default
newinitd "${FILESDIR}/privoxy.initd-3" privoxy
systemd_dounit "${FILESDIR}"/${PN}.service
insinto /etc/logrotate.d
newins "${FILESDIR}/privoxy.logrotate" privoxy
diropts -m 0750 -g privoxy -o privoxy
keepdir /var/log/privoxy
use extended-host-patterns && newbin tools/url-pattern-translator.pl privoxy-url-pattern-translator.pl
if use tools; then
dobin tools/{privoxy-log-parser.pl,privoxy-regression-test.pl}
newbin tools/uagen.pl privoxy-uagen.pl
fi
rmdir "${ED}/var/run" || die
chown privoxy:root "${ED}/etc/privoxy" || die
}
pkg_postinst() {
if use extended-host-patterns; then
ewarn
ewarn "You enabled extended-host-patterns, now you *must* convert all action files in"
ewarn "PCRE-compatible format, or privoxy will fail to start. Helper tool"
ewarn "privoxy-url-pattern-translator.pl is available."
ewarn
fi
}