summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--metadata/categories.conf1
-rw-r--r--packages/net-vpn/i2pd/files/99i2pd1
-rw-r--r--packages/net-vpn/i2pd/files/i2pd.conf4
-rw-r--r--packages/net-vpn/i2pd/files/i2pd.logrotate14
-rw-r--r--packages/net-vpn/i2pd/files/systemd/i2pd.service18
-rw-r--r--packages/net-vpn/i2pd/i2pd-scm.exheres-060
6 files changed, 98 insertions, 0 deletions
diff --git a/metadata/categories.conf b/metadata/categories.conf
index 8737760..b8da8c9 100644
--- a/metadata/categories.conf
+++ b/metadata/categories.conf
@@ -13,3 +13,4 @@ mail-client
voip
media-sound
media
+net-vpn
diff --git a/packages/net-vpn/i2pd/files/99i2pd b/packages/net-vpn/i2pd/files/99i2pd
new file mode 100644
index 0000000..3cf3b46
--- /dev/null
+++ b/packages/net-vpn/i2pd/files/99i2pd
@@ -0,0 +1 @@
+CONFIG_PROTECT="/var/lib/i2pd/certificates"
diff --git a/packages/net-vpn/i2pd/files/i2pd.conf b/packages/net-vpn/i2pd/files/i2pd.conf
new file mode 100644
index 0000000..10675e6
--- /dev/null
+++ b/packages/net-vpn/i2pd/files/i2pd.conf
@@ -0,0 +1,4 @@
+log = 1
+daemon = 1
+service = 1
+
diff --git a/packages/net-vpn/i2pd/files/i2pd.logrotate b/packages/net-vpn/i2pd/files/i2pd.logrotate
new file mode 100644
index 0000000..790cd2a
--- /dev/null
+++ b/packages/net-vpn/i2pd/files/i2pd.logrotate
@@ -0,0 +1,14 @@
+/var/log/i2pd.log {
+ rotate 4
+ weekly
+ missingok
+ notifempty
+ compress
+ delaycompress
+ copytruncate
+ create 640 i2pd i2pd
+ postrotate
+ /etc/init.d/i2pd restart >/dev/null
+ endscript
+}
+
diff --git a/packages/net-vpn/i2pd/files/systemd/i2pd.service b/packages/net-vpn/i2pd/files/systemd/i2pd.service
new file mode 100644
index 0000000..7f44cde
--- /dev/null
+++ b/packages/net-vpn/i2pd/files/systemd/i2pd.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=C++ daemon for accessing the I2P network
+After=network.target
+
+[Service]
+Type=forking
+Restart=on-abnormal
+PIDFile=/var/run/i2pd.pid
+User=i2pd
+Group=i2pd
+PermissionsStartOnly=yes
+ExecStartPre=/bin/touch /var/run/i2pd.pid /var/log/i2pd.log
+ExecStartPre=/bin/chown i2pd:i2pd /run/i2pd.pid /var/log/i2pd.log
+ExecStart=/usr/lib/i2pd/i2p --conf=/etc/i2pd.conf
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/packages/net-vpn/i2pd/i2pd-scm.exheres-0 b/packages/net-vpn/i2pd/i2pd-scm.exheres-0
new file mode 100644
index 0000000..611feaa
--- /dev/null
+++ b/packages/net-vpn/i2pd/i2pd-scm.exheres-0
@@ -0,0 +1,60 @@
+# Distributed under the terms of the GNU General Public License v2
+
+SCM_REPOSITORY="git://github.com/PurpleI2P/i2pd"
+require scm-git systemd-service cmake [ api=2 ]
+HOMEPAGE="https://github.com/PurpleI2P/i2pd"
+SUMMARY="A C++ daemon for accessing the I2P anonymous network"
+#LICENSE="BSD"
+SLOT="0"
+PLATFORMS="~amd64 ~x86"
+DOWNLOADS=""
+
+MYOPTIONS="
+ i2p-hardening
+ pch
+ upnp
+ (
+ providers:
+ libressl
+ openssl
+ )
+ [[ number-selected = exactly-one ]]
+"
+
+MYOPTIONS+="
+ amd64_cpu_features: aes avx
+ x86_cpu_features: aes avx
+"
+
+DEPENDENCIES="
+ build+run:
+ providers:openssl? ( dev-libs/openssl )
+ providers:libressl? ( dev-libs/libressl )
+ dev-libs/boost[>=1.49]
+ upnp? ( net-libs/miniupnpc )
+"
+
+src_configure() {
+ local cmakeparams=()
+ if option amd64_cpu_features:aes; then
+ cmakeparams+=( -DWITH_AESNI=ON )
+ fi
+ if option x86_cpu_features:aes; then
+ cmakeparams+=( -DWITH_AESNI=ON )
+ fi
+ if option amd64_cpu_features:avx; then
+ cmakeparams+=( -DWITH_AVX=ON )
+ fi
+ if option x86_cpu_features:avx; then
+ cmakeparams+=( -DWITH_AVX=ON )
+ fi
+ cmakeparams+=(
+ $(cmake_with i2p-hardening HARDENING)
+ $(cmake_with pch PCH)
+ $(cmake_with upnp UPNP)
+ -DWITH_LIBRARY=ON
+ -DWITH_BINARY=ON
+ )
+ CMAKE_SOURCE=${WORKBASE}/${PNV}/build
+ ecmake "${cmakeparams[@]}"
+}