Install this version:
emerge -a =net-vpn/i2pd-9999
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =net-vpn/i2pd-9999
Or alternatively:
emerge --autounmask-write -a =net-vpn/i2pd-9999
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 9999 | 8 | 0 |
# Copyright 2026 mva
# Distributed under the terms of the Public Domain or CC0 License
EAPI=8
inherit pax-utils systemd git-r3 cmake
DESCRIPTION="A C++ daemon for accessing the I2P anonymous network"
HOMEPAGE="https://github.com/PurpleI2P/i2pd"
EGIT_REPO_URI="https://github.com/PurpleI2P/i2pd"
EGIT_BRANCH="openssl"
LICENSE="BSD"
SLOT="0"
IUSE="cpu_flags_x86_aes i2p-hardening thread-sanitizer addr-sanitizer +upnp"
RDEPEND="
acct-user/i2pd
acct-group/i2pd
dev-libs/boost[threads(+)]
dev-libs/openssl
upnp? ( net-libs/miniupnpc )
"
DEPEND="${RDEPEND}"
CMAKE_USE_DIR="${S}/build"
DOCS=( README.md contrib/{i2pd,tunnels}.conf )
PATCHES=( "${FILESDIR}/patches/${PV}" )
# ^ for cmake
src_configure() {
mycmakeargs=(
-DWITH_AESNI=$(usex cpu_flags_x86_aes ON OFF)
-DWITH_HARDENING=$(usex i2p-hardening ON OFF)
-DWITH_STATIC=OFF # no more static boost and miniupnpc
-DWITH_UPNP=$(usex upnp ON OFF)
-DWITH_LIBRARY=ON
-DWITH_BINARY=ON
-DWITH_ADDRSANITIZER=$(usex addr-sanitizer ON OFF)
-DWITH_THREADSANITIZER=$(usex thread-sanitizer ON OFF)
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
}
src_install() {
cmake_src_install
einstalldocs
# config
insinto /etc/"${PN}"
doins contrib/"${PN}".conf
doins contrib/tunnels.conf
# grant i2pd group read and write access to config files
fowners "root:${I2PD_GROUP}" \
/etc/"${PN}"/"${PN}".conf \
/etc/"${PN}"/tunnels.conf
fperms 660 \
/etc/"${PN}"/"${PN}".conf \
/etc/"${PN}"/tunnels.conf
# working directory
insinto /var/lib/"${PN}"
doins -r contrib/certificates
fowners i2pd:i2pd /var/lib/"${PN}"
fperms 700 /var/lib/"${PN}"
# add /var/lib/i2pd/certificates to CONFIG_PROTECT
doenvd "${FILESDIR}/99i2pd"
# openrc and systemd daemon routines
newconfd "${FILESDIR}/${PN}".confd "${PN}"
newinitd "${FILESDIR}/${PN}".initd "${PN}"
systemd_dounit "${FILESDIR}/${PN}".service
# logrotate
insinto /etc/logrotate.d
newins "${FILESDIR}/${PN}.logrotate" "${PN}"
doman "debian/${PN}.1"
host-is-pax && pax-mark m "${ED}/usr/bin/${PN}"
}
pkg_postinst() {
if [[ -f ${EROOT}/etc/i2pd/subscriptions.txt ]]; then
ewarn
ewarn "Configuration of the subscriptions has been moved from"
ewarn "subscriptions.txt to i2pd.conf. We recommend updating"
ewarn "i2pd.conf accordingly and deleting subscriptions.txt."
fi
}
Manage flags for this package:
euse -i <flag> -p net-vpn/i2pd |
euse -E <flag> -p net-vpn/i2pd |
euse -D <flag> -p net-vpn/i2pd
acct-user/i2pd acct-group/i2pd dev-libs/boost[threads(+)] dev-libs/openssl upnp? ( net-libs/miniupnpc )
acct-user/i2pd acct-group/i2pd dev-libs/boost[threads(+)] dev-libs/openssl upnp? ( net-libs/miniupnpc )