commit:     27231d632f1c4ba2d3f8e18ee85530f64e0d3ace
Author:     Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com>
AuthorDate: Wed Feb 12 20:23:07 2025 +0000
Commit:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Thu Feb 27 18:53:18 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27231d63

net-proxy/tinyproxy: enable PidFile option by default

OpenRC relies on PidFile value to detect that service is running. By
default, this option is commented out, and OpenRC marks tinyproxy
service as crashed.

Applied upstream patch that define @runstatedir@ (/run) for for PID
file instead of @localstatedir@ (/var).

Closes: https://bugs.gentoo.org/949682

Signed-off-by: Azamat H. Hackimov <azamat.hackimov <AT> gmail.com>
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>

 .../files/tinyproxy-1.11.2_use-runstatedir.patch   | 89 ++++++++++++++++++++++
 net-proxy/tinyproxy/tinyproxy-1.11.2-r1.ebuild     | 83 ++++++++++++++++++++
 2 files changed, 172 insertions(+)

diff --git a/net-proxy/tinyproxy/files/tinyproxy-1.11.2_use-runstatedir.patch 
b/net-proxy/tinyproxy/files/tinyproxy-1.11.2_use-runstatedir.patch
new file mode 100644
index 000000000000..4bc7d47a961b
--- /dev/null
+++ b/net-proxy/tinyproxy/files/tinyproxy-1.11.2_use-runstatedir.patch
@@ -0,0 +1,89 @@
+https://github.com/tinyproxy/tinyproxy/commit/942d0c6b03673ad816c42176422d7fe691143064
+From 942d0c6b03673ad816c42176422d7fe691143064 Mon Sep 17 00:00:00 2001
+From: Mohamed Akram <[email protected]>
+Date: Sun, 2 Jun 2024 18:52:59 +0400
+Subject: [PATCH] Use appropriate installation path variables
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -173,6 +173,9 @@ fi
+ dnl
+ dnl Substitute the variables into the various Makefiles
+ dnl
++# runstatedir isn't available for Autoconf < 2.70
++AS_IF([test -z "${runstatedir}"], [runstatedir='${localstatedir}/run'])
++AC_SUBST([runstatedir])
+ AC_SUBST(CFLAGS)
+ AC_SUBST(LDFLAGS)
+ AC_SUBST(CPPFLAGS)
+@@ -220,7 +223,6 @@ docs/Makefile
+ docs/man5/Makefile
+ docs/man5/tinyproxy.conf.txt
+ docs/man8/Makefile
+-docs/man8/tinyproxy.txt
+ m4macros/Makefile
+ tests/Makefile
+ tests/scripts/Makefile
+--- a/docs/man8/Makefile.am
++++ b/docs/man8/Makefile.am
+@@ -9,6 +9,17 @@ M_NAME=TINYPROXY
+ man_MANS = \
+       $(MAN8_FILES:.txt=.8)
+ 
++edit = sed \
++      -e 's|@localstatedir[@]|$(localstatedir)|g' \
++      -e 's|@runstatedir[@]|$(runstatedir)|g' \
++      -e 's|@sysconfdir[@]|$(sysconfdir)|g' \
++      -e 's|@TINYPROXY_STATHOST[@]|$(TINYPROXY_STATHOST)|g'
++
++tinyproxy.txt: $(top_srcdir)/docs/man8/tinyproxy.txt.in Makefile
++      @rm -f $@ [email protected]
++      $(AM_V_GEN) $(edit) $(top_srcdir)/docs/man8/[email protected] > [email protected]
++      @mv [email protected] $@
++
+ .txt.8:
+ if HAVE_POD2MAN
+       $(AM_V_GEN) $(POD2MAN) --center="Tinyproxy manual" \
+--- a/docs/man8/tinyproxy.txt.in
++++ b/docs/man8/tinyproxy.txt.in
+@@ -156,7 +156,11 @@ configuration variable `StatFile`.
+ 
+ =head1 FILES
+ 
+-`/etc/tinyproxy/tinyproxy.conf`, `/var/run/tinyproxy/tinyproxy.pid`, 
`/var/log/tinyproxy/tinyproxy.log`
++F<@sysconfdir@/tinyproxy/tinyproxy.conf>
++
++F<@runstatedir@/tinyproxy/tinyproxy.pid>
++
++F<@localstatedir@/log/tinyproxy/tinyproxy.log>
+ 
+ =head1 BUGS
+ 
+--- a/etc/Makefile.am
++++ b/etc/Makefile.am
+@@ -12,6 +12,7 @@ edit = sed \
+       -e 's|@datarootdir[@]|$(datarootdir)|g' \
+       -e 's|@pkgsysconfdir[@]|$(pkgsysconfdir)|g' \
+       -e 's|@localstatedir[@]|$(localstatedir)|g' \
++      -e 's|@runstatedir[@]|$(runstatedir)|g' \
+       -e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
+       -e 's|@prefix[@]|$(prefix)|g' \
+       -e 's|@TINYPROXY_STATHOST[@]|$(TINYPROXY_STATHOST)|g'
+--- a/etc/tinyproxy.conf.in
++++ b/etc/tinyproxy.conf.in
+@@ -124,7 +124,7 @@ LogLevel Info
+ # can be used for signalling purposes.
+ # If not specified, no pidfile will be written.
+ #
+-#PidFile "@localstatedir@/run/tinyproxy/tinyproxy.pid"
++#PidFile "@runstatedir@/tinyproxy/tinyproxy.pid"
+ 
+ #
+ # XTinyproxy: Tell Tinyproxy to include the X-Tinyproxy header, which
+@@ -320,6 +320,3 @@ ViaProxyName "tinyproxy"
+ # If not set then no rewriting occurs.
+ #
+ #ReverseBaseURL "http://localhost:8888/";
+-
+-
+-

diff --git a/net-proxy/tinyproxy/tinyproxy-1.11.2-r1.ebuild 
b/net-proxy/tinyproxy/tinyproxy-1.11.2-r1.ebuild
new file mode 100644
index 000000000000..ce51d00216f5
--- /dev/null
+++ b/net-proxy/tinyproxy/tinyproxy-1.11.2-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd tmpfiles
+
+DESCRIPTION="A lightweight HTTP/SSL proxy"
+HOMEPAGE="https://github.com/tinyproxy/tinyproxy/";
+SRC_URI="https://github.com/tinyproxy/tinyproxy/releases/download/${PV}/${P}.tar.xz";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~sparc ~x86"
+
+IUSE="test debug +filter-proxy reverse-proxy transparent-proxy +upstream-proxy 
+xtinyproxy-header"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( xtinyproxy-header )"
+
+DEPEND="
+       acct-group/tinyproxy
+       acct-user/tinyproxy
+"
+
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+       "${FILESDIR}/tinyproxy-1.11.2_use-runstatedir.patch"
+)
+
+src_prepare() {
+       default
+
+       # Enable and change PidFile location, OpenRC relies on it
+       sed -i \
+               -e "s|nobody|${PN}|g" \
+               -e "s|^#PidFile |PidFile |g" \
+               etc/${PN}.conf.in || die "sed failed"
+
+       sed -i -e "s# -Wp,-D_FORTIFY_SOURCE=2##" configure.ac || die "sed 
failed"
+
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               $(use_enable debug) \
+               $(use_enable filter-proxy filter)
+               $(use_enable reverse-proxy reverse)
+               $(use_enable transparent-proxy transparent)
+               $(use_enable upstream-proxy upstream)
+               $(use_enable xtinyproxy-header xtinyproxy)
+               --localstatedir=/var
+               --runstatedir=/run
+       )
+
+       econf "${myeconfargs[@]}"
+}
+
+src_test() {
+       # The make check target does not run the test suite
+       emake test
+}
+
+src_install() {
+       default
+
+       dodoc AUTHORS README.md
+
+       diropts -m0775 -o ${PN} -g ${PN}
+       keepdir /var/log/${PN}
+
+       newinitd "${FILESDIR}"/${PN}-1.10.0.initd tinyproxy
+       systemd_newunit "${FILESDIR}"/${PN}-1.10.0.service tinyproxy.service
+       dotmpfiles "${FILESDIR}"/${PN}.tmpfiles.conf
+}
+
+pkg_postinst() {
+       tmpfiles_process ${PN}.tmpfiles.conf
+
+       elog "For filtering domains and URLs, enable filter option in the 
configuration"
+       elog "file and add them to the filter file (one domain or URL per 
line)."
+}

Reply via email to