commit:     187551e267d72d7ba60557439452877602488776
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 14 22:14:59 2026 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Jan 15 19:49:41 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=187551e2

net-proxy/trojan: Fix build w/ boost-1.89, fix CMake <3.10 warning

Closes: https://bugs.gentoo.org/963419
Closes: https://bugs.gentoo.org/964571
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../trojan/files/trojan-1.16.0-boost-1.89.patch    | 11 +++
 .../files/trojan-1.16.0-cmake-minreqver-3.10.patch |  8 +++
 net-proxy/trojan/trojan-1.16.0-r4.ebuild           | 79 ++++++++++++++++++++++
 3 files changed, 98 insertions(+)

diff --git a/net-proxy/trojan/files/trojan-1.16.0-boost-1.89.patch 
b/net-proxy/trojan/files/trojan-1.16.0-boost-1.89.patch
new file mode 100644
index 000000000000..43f64cdb0095
--- /dev/null
+++ b/net-proxy/trojan/files/trojan-1.16.0-boost-1.89.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36,7 +36,7 @@
+ find_package(Threads REQUIRED)
+ target_link_libraries(trojan ${CMAKE_THREAD_LIBS_INIT})
+ 
+-find_package(Boost 1.66.0 REQUIRED COMPONENTS system program_options)
++find_package(Boost 1.69.0 REQUIRED COMPONENTS program_options)
+ include_directories(${Boost_INCLUDE_DIR})
+ target_link_libraries(trojan ${Boost_LIBRARIES})
+ if(MSVC)

diff --git a/net-proxy/trojan/files/trojan-1.16.0-cmake-minreqver-3.10.patch 
b/net-proxy/trojan/files/trojan-1.16.0-cmake-minreqver-3.10.patch
new file mode 100644
index 000000000000..077914d69b7a
--- /dev/null
+++ b/net-proxy/trojan/files/trojan-1.16.0-cmake-minreqver-3.10.patch
@@ -0,0 +1,8 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required(VERSION 3.7.2)
++cmake_minimum_required(VERSION 3.10)
+ project(trojan CXX)
+ 
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")

diff --git a/net-proxy/trojan/trojan-1.16.0-r4.ebuild 
b/net-proxy/trojan/trojan-1.16.0-r4.ebuild
new file mode 100644
index 000000000000..ae77997eac17
--- /dev/null
+++ b/net-proxy/trojan/trojan-1.16.0-r4.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISABLE_AUTOFORMATTING=1
+FORCE_PRINT_ELOG=1
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit cmake python-any-r1 systemd readme.gentoo-r1
+DESCRIPTION="An unidentifiable mechanism that helps you bypass GFW"
+HOMEPAGE="https://github.com/trojan-gfw/trojan";
+if [[ "${PV}" == *9999* ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/trojan-gfw/trojan.git";
+else
+       SRC_URI="https://github.com/trojan-gfw/${PN}/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+       KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="mysql +nat +reuseport tcpfastopen test"
+
+# Some hiccups setting up local network server.
+RESTRICT="test"
+
+RDEPEND="
+       dev-libs/boost:=
+       dev-libs/openssl:0=
+       mysql? ( dev-db/mysql-connector-c:= )
+"
+DEPEND="${RDEPEND}
+       acct-group/trojan
+       acct-user/trojan
+       test? ( net-misc/curl ${PYTHON_DEPS} )
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-cmake-minreqver-3.10.patch" # bug 964571
+       "${FILESDIR}/${P}-boost-1.89.patch" # bug 963419
+)
+
+pkg_setup() {
+       use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+       cmake_src_prepare
+       sed -i -e "/User/s/nobody/trojan/g" \
+               examples/trojan.service-example || die
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DENABLE_MYSQL=$(usex mysql)
+               -DENABLE_NAT=$(usex nat)
+               -DENABLE_REUSE_PORT=$(usex reuseport)
+               -DFORCE_TCP_FASTOPEN=$(usex tcpfastopen)
+               -DSYSTEMD_SERVICE=ON
+               -DSYSTEMD_SERVICE_PATH=$(systemd_get_systemunitdir)
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+       newinitd "${FILESDIR}/trojan.initd" trojan
+
+       readme.gentoo_create_doc
+}
+
+src_test() {
+       cmake_src_test -j1
+}
+
+pkg_postinst() {
+       readme.gentoo_print_elog
+}

Reply via email to