Skip to content

Commit

Permalink
security/i2pd: Update to 2.40.0
Browse files Browse the repository at this point in the history
- Take maintainership
- Switch to DISTVERSION
- Enable AESNI by default (run time detection if it can be used or not)
- Pet portfmt and portclippy
- Respect hier(7) for config files and dirs

Changes:		https://github.com/PurpleI2P/i2pd/releases/tag/2.40.0
PR:			260206
Approved by:		0mp (mentor)
Differential Revision:	https://reviews.freebsd.org/D33384
  • Loading branch information
driesmp committed Dec 13, 2021
1 parent 918e65e commit 074939e
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 52 deletions.
53 changes: 34 additions & 19 deletions security/i2pd/Makefile
@@ -1,8 +1,8 @@
PORTNAME= i2pd
PORTVERSION= 2.38.0
DISTVERSION= 2.40.0
CATEGORIES= security net-p2p

MAINTAINER= ports@FreeBSD.org
MAINTAINER= driesm@FreeBSD.org
COMMENT= C++ implementation of I2P client

LICENSE= BSD3CLAUSE
Expand All @@ -11,46 +11,61 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= boost-libs>=1.72.0_5:devel/boost-libs
LIB_DEPENDS= libboost_thread.so:devel/boost-libs

USES= cmake:insource compiler:c++11-lib ssl
USE_GITHUB= yes
GH_ACCOUNT= PurpleI2P
USE_RC_SUBR= ${PORTNAME}

USES= cmake:insource compiler:c++11-lib ssl
CMAKE_ARGS= -DWITH_GUI=OFF
CMAKE_SOURCE_PATH= ${WRKSRC}/build
USE_RC_SUBR= ${PORTNAME}

PORTDOCS= *
SUB_FILES= i2pd.newsyslog.conf pkg-message
SUB_LIST= CERTSDIR=${_CERTSDIR} \
GROUP="${GROUPS}" \
USER="${USERS}" \
WRITEDATADIR=${_WRITEDATADIR}

USERS= _i2pd
GROUPS= _i2pd

PLIST_SUB= USER="${USERS}" GROUP="${GROUPS}"
SUB_LIST= USER="${USERS}" GROUP="${GROUPS}"
SUB_FILES= i2pd.newsyslog.conf pkg-message
PLIST_SUB= GROUP="${GROUPS}" \
USER="${USERS}"

PORTDOCS= README.md

OPTIONS_DEFINE= AESNI DOCS HARDENING UPNP
OPTIONS_DEFAULT= AESNI

OPTIONS_DEFINE= AESNI UPNP DOCS HARDENING
AESNI_DESC= Use AES-NI instructions set
HARDENING_DESC= Use hardening compiler flags
UPNP_DESC= Include support for UPnP client

AESNI_DESC= Use AES-NI instructions set
AESNI_CMAKE_BOOL= WITH_AESNI
UPNP_DESC= Include support for UPnP client
UPNP_CMAKE_BOOL= WITH_UPNP
UPNP_LIB_DEPENDS= libminiupnpc.so:net/miniupnpc

HARDENING_CMAKE_BOOL= WITH_HARDENING
HARDENING_DESC= Use hardening compiler flags

post-patch:
@${REINPLACE_CMD} -e 's|%%DATADIR%%|${DATADIR}|' ${WRKSRC}/libi2pd/Reseed.cpp
UPNP_LIB_DEPENDS= libminiupnpc.so:net/miniupnpc
UPNP_CMAKE_BOOL= WITH_UPNP

_CERTSDIR= ${DATADIR}/certificates
_WRITEDATADIR= /var/db/${PORTNAME}

post-patch: # fix config file
@${REINPLACE_CMD} -e 's|%%ETCDIR%%|${ETCDIR}|g' ${WRKSRC}/contrib/i2pd.conf
@${REINPLACE_CMD} -e 's|%%CERTSDIR%%|${_CERTSDIR}|g' ${WRKSRC}/contrib/i2pd.conf
@${REINPLACE_CMD} -e 's|/var/lib/${PORTNAME}|${_WRITEDATADIR}|g' ${WRKSRC}/contrib/i2pd.conf

post-install:
${INSTALL_MAN} ${WRKSRC}/debian/${PORTNAME}.1 ${STAGEDIR}${MAN1PREFIX}/man/man1
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d
${INSTALL_DATA} ${WRKDIR}/i2pd.newsyslog.conf ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d/i2pd.conf
${INSTALL_DATA} ${WRKDIR}/i2pd.newsyslog.conf ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d/i2pd.conf.sample
@${MKDIR} ${STAGEDIR}${ETCDIR}
${INSTALL_DATA} ${WRKSRC}/contrib/i2pd.conf ${STAGEDIR}${ETCDIR}/i2pd.conf.sample
@(cd ${WRKSRC}/contrib && ${COPYTREE_SHARE} "certificates" ${STAGEDIR}${DATADIR})
${INSTALL_DATA} ${WRKSRC}/contrib/tunnels.conf ${STAGEDIR}${ETCDIR}/tunnels.conf.sample
@(cd ${WRKSRC}/contrib/certificates && ${COPYTREE_SHARE} . ${STAGEDIR}${_CERTSDIR})
@${MKDIR} ${STAGEDIR}/var/run/i2pd
@${MKDIR} ${STAGEDIR}/var/log/i2pd
@${MKDIR} ${STAGEDIR}/var/db/i2pd
@${MKDIR} ${STAGEDIR}${ETCDIR}/tunnels.d

post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
Expand Down
6 changes: 3 additions & 3 deletions security/i2pd/distinfo
@@ -1,3 +1,3 @@
TIMESTAMP = 1621346486
SHA256 (PurpleI2P-i2pd-2.38.0_GH0.tar.gz) = 8452f5323795a1846d554096c08fffe5ac35897867b93a5079605df8f80a3089
SIZE (PurpleI2P-i2pd-2.38.0_GH0.tar.gz) = 555543
TIMESTAMP = 1638819224
SHA256 (PurpleI2P-i2pd-2.40.0_GH0.tar.gz) = 4443f484ad40753e892170a26c8ee8126e8338bf416d04eab0c55c1c94a4e193
SIZE (PurpleI2P-i2pd-2.40.0_GH0.tar.gz) = 587626
32 changes: 24 additions & 8 deletions security/i2pd/files/i2pd.in
Expand Up @@ -7,26 +7,42 @@
#
# Add the following line to /etc/rc.conf to enable i2pd:
#
# i2pd_enable="YES"
# i2pd_enable: Set to NO by default.
# Set it to YES to enable i2pd.
# i2pd_certsdir: The directory where the default certificaties are stores.
# Default: %%CERTSDIR%%
# i2pd_config: The config file used to run the daemon.
# Default: %%ETCDIR%%/i2pd.conf
# i2pd_datadir: The datadir used to run the daemon.
# Default: %%WRITEDATADIR%%
# i2pd_group: The group account used to run the daemon.
# Default: %%GROUP%%
# i2pd_user: The user account used to run the daemon.
# Default: %%USER%%
#

. /etc/rc.subr

desc="i2pd startup script"
name="i2pd"
rcvar=i2pd_enable
rcvar="i2pd_enable"

load_rc_config ${name}

: ${i2pd_enable="NO"}
: ${i2pd_user="%%USER%%"}
: ${i2pd_group="%%GROUP%%"}
: ${i2pd_datadir="/var/db/${name}"}
: ${i2pd_certsdir="%%CERTSDIR%%"}
: ${i2pd_config="%%ETCDIR%%/i2pd.conf"}
: ${i2pd_datadir="%%WRITEDATADIR%%"}
: ${i2pd_group="%%GROUP%%"}
: ${i2pd_user="%%USER%%"}

required_dirs="${i2pd_datadir}"

required_dirs=${i2pd_datadir}
pidfile=/var/run/i2pd/i2pd.pid
command="%%PREFIX%%/bin/${name}"
command_args="--conf ${i2pd_config} --service --datadir ${i2pd_datadir} --daemon"
pidfile=/var/run/i2pd/i2pd.pid

command_args="--certsdir ${i2pd_certsdir} --conf ${i2pd_config} --daemon --datadir ${i2pd_datadir} --service"

extra_commands="reload"
reload_cmd="pkill -2 -F ${pidfile} -x i2pd"

Expand Down
24 changes: 20 additions & 4 deletions security/i2pd/files/patch-contrib_i2pd.conf
@@ -1,15 +1,31 @@
--- contrib/i2pd.conf.orig 2020-08-24 16:48:09 UTC
--- contrib/i2pd.conf.orig 2021-11-28 01:26:44 UTC
+++ contrib/i2pd.conf
@@ -16,7 +16,7 @@
# tunnelsdir = /var/lib/i2pd/tunnels.d
@@ -8,19 +8,19 @@

## Tunnels config file
## Default: ~/.i2pd/tunnels.conf or /var/lib/i2pd/tunnels.conf
-# tunconf = /var/lib/i2pd/tunnels.conf
+tunconf = %%ETCDIR%%/tunnels.conf

## Tunnels config files path
## Use that path to store separated tunnels in different config files.
## Default: ~/.i2pd/tunnels.d or /var/lib/i2pd/tunnels.d
-# tunnelsdir = /var/lib/i2pd/tunnels.d
+tunnelsdir = %%ETCDIR%%/tunnels.d

## Path to certificates used for verifying .su3, families
-## Default: ~/.i2pd/certificates or /var/lib/i2pd/certificates
-# certsdir = /var/lib/i2pd/certificates
+## Default: ~/.i2pd/certificates or %%CERTSDIR%%
+# certsdir = %%CERTSDIR%%

## Where to write pidfile (default: i2pd.pid, not used in Windows)
-# pidfile = /run/i2pd.pid
+pidfile = /var/run/i2pd/i2pd.pid

## Logging configuration section
## By default logs go to stdout with level 'info' and higher
@@ -25,9 +25,9 @@
@@ -30,9 +30,9 @@
## * stdout - print log entries to stdout
## * file - log entries to a file
## * syslog - use syslog, see man 3 syslog
Expand Down
13 changes: 0 additions & 13 deletions security/i2pd/files/patch-libi2pd_Reseed.cpp

This file was deleted.

8 changes: 8 additions & 0 deletions security/i2pd/files/pkg-message.in
Expand Up @@ -5,4 +5,12 @@ You may want to increase default i2pd bandwidth limit by adding
setting "bandwidth" parameter to "X" in %%ETCDIR%%/i2pd.conf
EOM
}
{ type: upgrade
message: <<EOM
Some defaults in the sample config file have been changed to respect hier(7).
It is advised to take a look at i2pd.conf.sample and reflect the better defaults
in your i2pd.conf manually. Dont forget to move the config files from the old
to the new location after changing the location in i2pd.conf.
EOM
}
]
14 changes: 9 additions & 5 deletions security/i2pd/pkg-plist
@@ -1,7 +1,10 @@
bin/i2pd
etc/newsyslog.conf.d/i2pd.conf
@sample %%ETCDIR%%/i2pd.conf.sample
@sample %%ETCDIR%%/tunnels.conf.sample
@sample etc/newsyslog.conf.d/i2pd.conf.sample
lib/libi2pd.a
lib/libi2pdclient.a
lib/libi2pdlang.a
man/man1/i2pd.1.gz
%%DATADIR%%/certificates/family/gostcoin.crt
%%DATADIR%%/certificates/family/i2p-dev.crt
Expand All @@ -15,10 +18,11 @@ man/man1/i2pd.1.gz
%%DATADIR%%/certificates/reseed/hottuna_at_mail.i2p.crt
%%DATADIR%%/certificates/reseed/igor_at_novg.net.crt
%%DATADIR%%/certificates/reseed/lazygravy_at_mail.i2p.crt
%%DATADIR%%/certificates/reseed/orignal_at_mail.i2p.crt
%%DATADIR%%/certificates/reseed/r4sas-reseed_at_mail.i2p.crt
%%DATADIR%%/certificates/reseed/rambler_at_mail.i2p.crt
%%DATADIR%%/certificates/reseed/reseed_at_diva.exchange.crt
%%DATADIR%%/certificates/router/orignal_at_mail.i2p.crt
@sample %%ETCDIR%%/i2pd.conf.sample
@dir(%%USER%%,%%GROUP%%,755) /var/run/i2pd
@dir(%%USER%%,%%GROUP%%,755) /var/log/i2pd
@dir %%ETCDIR%%/tunnels.d
@dir(%%USER%%,%%GROUP%%,755) /var/db/i2pd
@dir(%%USER%%,%%GROUP%%,755) /var/log/i2pd
@dir(%%USER%%,%%GROUP%%,755) /var/run/i2pd

0 comments on commit 074939e

Please sign in to comment.