net-misc/i2pd: revbump
authorMatthew Brewer <tomboy64@sina.cn>
Thu, 24 Mar 2016 12:06:53 +0000 (13:06 +0100)
committerAnthony G. Basile <blueness@gentoo.org>
Thu, 24 Mar 2016 22:35:49 +0000 (18:35 -0400)
- fixes to config files so the i2pd service actually starts
- conversion to EAPI6
- minor beautifications

Package-Manager: portage-2.2.28
RepoMan-Options: --ignore-arches

net-misc/i2pd/files/i2pd-2.5.1-disable_ipv6_in_i2pd_conf.patch [new file with mode: 0644]
net-misc/i2pd/files/i2pd-2.5.1-fix_installed_components.patch [new file with mode: 0644]
net-misc/i2pd/files/i2pd-2.5.1.confd [new file with mode: 0644]
net-misc/i2pd/files/i2pd-2.5.1.initd [new file with mode: 0644]
net-misc/i2pd/files/i2pd-2.5.1.service [new file with mode: 0644]
net-misc/i2pd/i2pd-2.5.1-r1.ebuild
net-misc/i2pd/i2pd-2.5.1-r2.ebuild [new file with mode: 0644]

diff --git a/net-misc/i2pd/files/i2pd-2.5.1-disable_ipv6_in_i2pd_conf.patch b/net-misc/i2pd/files/i2pd-2.5.1-disable_ipv6_in_i2pd_conf.patch
new file mode 100644 (file)
index 0000000..0617b65
--- /dev/null
@@ -0,0 +1,9 @@
+diff -Naur i2pd-2.5.1/debian/i2pd.conf i2pd-2.5.1b/debian/i2pd.conf
+--- i2pd-2.5.1/debian/i2pd.conf        2016-03-10 19:34:16.000000000 +0100
++++ i2pd-2.5.1b/debian/i2pd.conf       2016-03-24 22:30:51.490011172 +0100
+@@ -1,4 +1,4 @@
+-ipv6
++#ipv6
+ [httpproxy]
+ address = 127.0.0.1
diff --git a/net-misc/i2pd/files/i2pd-2.5.1-fix_installed_components.patch b/net-misc/i2pd/files/i2pd-2.5.1-fix_installed_components.patch
new file mode 100644 (file)
index 0000000..0416901
--- /dev/null
@@ -0,0 +1,30 @@
+--- a/build/CMakeLists.txt.old 2016-02-04 21:30:50.954251000 +0100
++++ b/build/CMakeLists.txt     2016-02-04 21:34:50.457793484 +0100
+@@ -356,10 +356,6 @@
+   endif ()
+ endif ()
+-install(FILES ../LICENSE
+-  DESTINATION .
+-  COMPONENT Runtime
+-  )
+ # Take a copy on Appveyor
+ install(FILES "C:/projects/openssl-$ENV{OPENSSL}/LICENSE"
+   DESTINATION .
+@@ -369,7 +365,6 @@
+   )
+ file(GLOB_RECURSE I2PD_SOURCES "../*.cpp" "../build" "../Win32" "../Makefile*")
+-install(FILES ${I2PD_SOURCES} DESTINATION src/ COMPONENT Source)
+ # install(DIRECTORY ../ DESTINATION src/
+ #   # OPTIONAL
+ #   COMPONENT Source FILES_MATCHING
+@@ -378,7 +373,7 @@
+ #   )
+ file(GLOB I2PD_HEADERS "../*.h")
+-install(FILES ${I2PD_HEADERS} DESTINATION src/ COMPONENT Headers)
++install(FILES ${I2PD_HEADERS} DESTINATION "include/${PROJECT_NAME}" COMPONENT Headers)
+ # install(DIRECTORY ../ DESTINATION src/
+ #   # OPTIONAL
+ #   COMPONENT Headers FILES_MATCHING
diff --git a/net-misc/i2pd/files/i2pd-2.5.1.confd b/net-misc/i2pd/files/i2pd-2.5.1.confd
new file mode 100644 (file)
index 0000000..af0de2f
--- /dev/null
@@ -0,0 +1,9 @@
+I2PD_USER="${I2PD_USER:-i2pd}"
+I2PD_GROUP="${I2PD_GROUP:-i2pd}"
+I2PD_LOG="/var/log/i2pd.log"
+I2PD_PID="/var/run/i2pd.pid"
+I2PD_CFGDIR="/etc/i2pd/"
+# Options to i2pd
+I2PDOPTIONS="--daemon --service --pidfile=${I2PD_PID} \
+--log=file --logfile=${I2PD_LOG} \
+--conf=${I2PD_CFGDIR}i2pd.conf --tunconf=${I2PD_CFGDIR}tunnels.cfg"
diff --git a/net-misc/i2pd/files/i2pd-2.5.1.initd b/net-misc/i2pd/files/i2pd-2.5.1.initd
new file mode 100644 (file)
index 0000000..3bcdd31
--- /dev/null
@@ -0,0 +1,26 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="C++ daemon for accessing the I2P network"
+
+depend() {
+       use dns logger netmount
+}
+
+start() {
+        ebegin "Starting ${SVCNAME}"
+        checkpath -f "${I2PD_LOG}" -o "${I2PD_USER}:${I2PD_GROUP}"
+        checkpath -f "${I2PD_PID}" -o "${I2PD_USER}:${I2PD_GROUP}"
+        start-stop-daemon -S -u "${I2PD_USER}:${I2PD_GROUP}" -p "${I2PD_PID}.pid" /usr/bin/i2pd -- ${I2PDOPTIONS}
+        sleep 1
+        [ -e "$I2PD_PID" -a -e /proc/$(cat "$I2PD_PID") ]
+        eend $?
+}
+
+stop() {
+        ebegin "Stopping ${SVCNAME}"
+        start-stop-daemon -K -p "${I2PD_PID}" -R SIGTERM/20 SIGKILL/20 -P
+        eend $?
+}
diff --git a/net-misc/i2pd/files/i2pd-2.5.1.service b/net-misc/i2pd/files/i2pd-2.5.1.service
new file mode 100644 (file)
index 0000000..4f79124
--- /dev/null
@@ -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/bin/i2pd --daemon --service --pidfile=/var/run/i2pd.pid --log=file --logfile=/var/log/i2pd.log --conf=/etc/i2pd/i2pd.conf --tunconf=/etc/i2pd/tunnels.cfg
+
+[Install]
+WantedBy=multi-user.target
+
index 73d79debff707e7c378ace8e886a61b3a2a8d12f..31385b5f2ace64f9569e84758d913ef0ae25d9ee 100644 (file)
@@ -68,9 +68,9 @@ src_install() {
        fowners "${I2PD_USER}:${I2PD_GROUP}" "/etc/${PN}/${PN}.conf"
        fperms 600 "/etc/${PN}/${PN}.conf"
        dodir /usr/share/i2pd
-       newconfd "${FILESDIR}/${PN}-2.5.0.confd" "${PN}"
-       newinitd "${FILESDIR}/${PN}-2.5.0.initd" "${PN}"
-       systemd_newunit "${FILESDIR}/${PN}-2.5.0.service" "${PN}.service"
+       newconfd "${FILESDIR}/${PN}-2.5.1.confd" "${PN}"
+       newinitd "${FILESDIR}/${PN}-2.5.1.initd" "${PN}"
+       systemd_newunit "${FILESDIR}/${PN}-2.5.1.service" "${PN}.service"
        doenvd "${FILESDIR}/99${PN}"
        insinto /etc/logrotate.d
        newins "${FILESDIR}/${PN}-2.5.0.logrotate" "${PN}"
diff --git a/net-misc/i2pd/i2pd-2.5.1-r2.ebuild b/net-misc/i2pd/i2pd-2.5.1-r2.ebuild
new file mode 100644 (file)
index 0000000..30b46b3
--- /dev/null
@@ -0,0 +1,86 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit eutils systemd user cmake-utils
+
+DESCRIPTION="A C++ daemon for accessing the I2P anonymous network"
+HOMEPAGE="https://github.com/PurpleI2P/i2pd"
+SRC_URI="https://github.com/PurpleI2P/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="cpu_flags_x86_aes i2p-hardening libressl pch static +upnp"
+
+RDEPEND="!static? ( >=dev-libs/boost-1.46[threads]
+                       dev-libs/crypto++
+                       !libressl? ( dev-libs/openssl:0 )
+                       libressl? ( dev-libs/libressl )
+                       upnp? ( net-libs/miniupnpc )
+               )"
+DEPEND="${RDEPEND}
+       static? ( >=dev-libs/boost-1.46[static-libs,threads]
+               dev-libs/crypto++[static-libs]
+               !libressl? ( dev-libs/openssl:0[-bindist,static-libs] )
+               libressl? ( dev-libs/libressl[static-libs] )
+               upnp? ( net-libs/miniupnpc[static-libs] ) )
+       i2p-hardening? ( >=sys-devel/gcc-4.7 )
+       || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.3 )"
+
+I2PD_USER="${I2PD_USER:-i2pd}"
+I2PD_GROUP="${I2PD_GROUP:-i2pd}"
+
+CMAKE_USE_DIR="${S}/build"
+
+src_prepare() {
+       eapply "${FILESDIR}/${P}-fix_installed_components.patch"
+       eapply "${FILESDIR}/${P}-disable_ipv6_in_i2pd_conf.patch"
+       eapply_user
+}
+
+src_configure() {
+       mycmakeargs=(
+               -DWITH_AESNI=$(usex cpu_flags_x86_aes ON OFF)
+               -DWITH_HARDENING=$(usex i2p-hardening ON OFF)
+               -DWITH_PCH=$(usex pch ON OFF)
+               -DWITH_STATIC=$(usex static ON OFF)
+               -DWITH_UPNP=$(usex upnp ON OFF)
+               -DWITH_LIBRARY=ON
+               -DWITH_BINARY=ON
+       )
+       cmake-utils_src_configure
+}
+
+src_install() {
+       cmake-utils_src_install
+       dodoc README.md
+       doman "${FILESDIR}/${PN}.1"
+       keepdir /var/lib/i2pd/
+       insinto "/var/lib/i2pd"
+       doins -r "${S}/contrib/certificates"
+       dosym /etc/i2pd/subscriptions.txt /var/lib/i2pd/subscriptions.txt
+       fowners "${I2PD_USER}:${I2PD_GROUP}" /var/lib/i2pd/
+       fperms 700 /var/lib/i2pd/
+       dodir "/etc/${PN}"
+       insinto "/etc/${PN}"
+       doins "${S}/debian/${PN}.conf"
+       doins "${S}/debian/subscriptions.txt"
+       doins "${FILESDIR}/tunnels.cfg"
+       dodir /usr/share/i2pd
+       newconfd "${FILESDIR}/${PN}-2.5.1.confd" "${PN}"
+       newinitd "${FILESDIR}/${PN}-2.5.1.initd" "${PN}"
+       systemd_newunit "${FILESDIR}/${PN}-2.5.1.service" "${PN}.service"
+       doenvd "${FILESDIR}/99${PN}"
+       insinto /etc/logrotate.d
+       newins "${FILESDIR}/${PN}-2.5.0.logrotate" "${PN}"
+       fowners "${I2PD_USER}:${I2PD_GROUP}" "/etc/${PN}/${PN}.conf" \
+               "/etc/${PN}/subscriptions.txt" \
+               "/etc/${PN}/tunnels.cfg"
+       fperms 600 "/etc/${PN}/"*
+}
+
+pkg_setup() {
+       enewgroup "${I2PD_GROUP}"
+       enewuser "${I2PD_USER}" -1 -1 "/var/lib/run/${PN}" "${I2PD_GROUP}"
+}