public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: net-vpn/i2p/, net-vpn/i2p/files/
Date: Sat, 20 May 2023 09:28:57 +0000 (UTC)	[thread overview]
Message-ID: <1684574506.fcd56a344237b684ecd01c54dcb4a4b2f2607b20.sam@gentoo> (raw)

commit:     fcd56a344237b684ecd01c54dcb4a4b2f2607b20
Author:     Valérian Rousset <tharvik <AT> users <DOT> noreply <DOT> github <DOT> com>
AuthorDate: Fri Jan 27 01:08:07 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May 20 09:21:46 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fcd56a34

net-vpn/i2p: add 2.1.0

Closes: https://bugs.gentoo.org/850079
Signed-off-by: Valérian Rousset <tharvik <AT> users.noreply.github.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-vpn/i2p/Manifest                               |   1 +
 net-vpn/i2p/files/2.1.0-fix-getopt-classpath.patch |  24 +++
 net-vpn/i2p/files/i2p.init                         |  10 +-
 net-vpn/i2p/files/i2p.service                      |   3 +-
 net-vpn/i2p/i2p-2.1.0.ebuild                       | 225 +++++++++++++++++++++
 5 files changed, 256 insertions(+), 7 deletions(-)

diff --git a/net-vpn/i2p/Manifest b/net-vpn/i2p/Manifest
index e215485a9156..f90387e3f132 100644
--- a/net-vpn/i2p/Manifest
+++ b/net-vpn/i2p/Manifest
@@ -1 +1,2 @@
 DIST i2psource_1.7.0.tar.bz2 33300522 BLAKE2B dcb83477f6d066b707632f8db44bc811558b0bc52368ce992aaf14d0d21acc1fb9bce1dfa8171fca8cf3819765f0b7993ae4a2566a6f65786cca84c02ea4336a SHA512 a27c448246538f152355ecfdf781e39bf9e57b5d0f7ea139ce06d800ce3eed7fa4e375210e6545da2a75245b45282bc8d8e7453d96729f940c34daa75bdc588f
+DIST i2psource_2.1.0.tar.bz2 32817295 BLAKE2B d37463522143c02e04c96d58578312b536ab5e2842e5647dbe5ba3d5c139329c447f16de7e326ef48ef4c6b3c11631e23300b5327cc31d9da5288240f86c926f SHA512 e8639c2b2869d3c7856b598d4cd3505458ed5cab5dce3570cafdaec3ccd77dbaec35787cccc6782acc75adb423b7baaab724ac3c98e5b91b41cf4c76f3614355

diff --git a/net-vpn/i2p/files/2.1.0-fix-getopt-classpath.patch b/net-vpn/i2p/files/2.1.0-fix-getopt-classpath.patch
new file mode 100644
index 000000000000..a67b43ba08da
--- /dev/null
+++ b/net-vpn/i2p/files/2.1.0-fix-getopt-classpath.patch
@@ -0,0 +1,24 @@
+diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml
+index 48f9245..2fba5e4 100644
+--- a/apps/routerconsole/java/build.xml
++++ b/apps/routerconsole/java/build.xml
+@@ -85,6 +85,7 @@
+                 <!-- following jars only present for debian builds -->
+                 <pathelement location="../../jetty/jettylib/tomcat-api.jar" />
+                 <pathelement location="../../../core/java/build/json-simple.jar" />
++                <pathelement location="../../../core/java/build/gnu-getopt.jar" />
+             </classpath>
+         </javac>
+     </target>
+diff --git a/router/java/build.xml b/router/java/build.xml
+index 3449609..bcd9602 100644
+--- a/router/java/build.xml
++++ b/router/java/build.xml
+@@ -277,6 +277,7 @@
+                 <pathelement location="${hamcrest.home}/hamcrest-all.jar" />
+                 <pathelement location="${junit.home}/junit4.jar" />
+                 <pathelement location="../../core/java/build/i2ptest.jar" />
++                <pathelement location="../../core/java/build/gnu-getopt.jar" />
+             </classpath>
+             <compilerarg line="${javac.compilerargs}" />
+         </javac>

diff --git a/net-vpn/i2p/files/i2p.init b/net-vpn/i2p/files/i2p.init
index d59899b899e9..5115c14bb1a9 100644
--- a/net-vpn/i2p/files/i2p.init
+++ b/net-vpn/i2p/files/i2p.init
@@ -6,12 +6,10 @@ depend() {
 	need net
 }
 
-readonly WRAPPER_CONF="/usr/share/i2p/wrapper.config"
-
-command=wrapper
-command_args="$WRAPPER_CONF wrapper.syslog.ident=i2p"
+command=i2prouter
+pidfile=/var/run/i2p.pid
 command_background=true
 command_progress=true
 command_user=i2p
-pidfile=/var/run/i2p.pid
-retry='SIGTERM/20 SIGKILL/20'
+stopsig=SIGHUP
+retry=20

diff --git a/net-vpn/i2p/files/i2p.service b/net-vpn/i2p/files/i2p.service
index 87c218075a1c..e7c525e695eb 100644
--- a/net-vpn/i2p/files/i2p.service
+++ b/net-vpn/i2p/files/i2p.service
@@ -4,7 +4,8 @@ After=network.target
 
 [Service]
 User=i2p
-ExecStart=/usr/bin/wrapper /usr/share/i2p/wrapper.config wrapper.syslog.ident=i2p wrapper.logfile=/var/lib/i2p/.i2p/wrapper.log
+ExecStart=/usr/bin/i2prouter
+KillSignal=SIGHUP
 
 [Install]
 WantedBy=multi-user.target

diff --git a/net-vpn/i2p/i2p-2.1.0.ebuild b/net-vpn/i2p/i2p-2.1.0.ebuild
new file mode 100644
index 000000000000..ab62e452b1b0
--- /dev/null
+++ b/net-vpn/i2p/i2p-2.1.0.ebuild
@@ -0,0 +1,225 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="test"
+
+inherit java-pkg-2 java-ant-2 systemd
+
+DESCRIPTION="A privacy-centric, anonymous network"
+HOMEPAGE="https://geti2p.net"
+SRC_URI="https://files.i2p-projekt.de/${PV}/i2psource_${PV}.tar.bz2"
+
+LICENSE="Apache-2.0 Artistic BSD CC-BY-2.5 CC-BY-3.0 CC-BY-SA-3.0 EPL-1.0 GPL-2 GPL-3 LGPL-2.1 LGPL-3 MIT public-domain WTFPL-2"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+LANGS=(
+	ar az bg ca cs da de el en es es-AR et fa fi fr gl he hi hr hu id it ja ko ku mg nb nl nn pl pt pt-BR ro ru sk sl sq
+	sr sv tk tr uk vi zh zh-TW
+)
+IUSE="${LANGS[@]/#/l10n_}"
+
+CP_DEPEND="
+	dev-java/bcprov:0
+	dev-java/hashcash:1
+	dev-java/httpcomponents-client:4
+	dev-java/identicon:1
+	dev-java/java-getopt:1
+	dev-java/java-service-wrapper:0
+	dev-java/jbcrypt:0
+	dev-java/json-simple:2.3
+	dev-java/json-smart:1
+	dev-java/jsonrpc2-base:1
+	dev-java/jsonrpc2-server:1
+	dev-java/jstl:0
+	dev-java/jstl-api:0
+	dev-java/minidns-core:1
+	dev-java/zxing-core:3
+	dev-java/zxing-javase:3
+	net-libs/nativebiginteger:0
+	sys-devel/gettext:0[java]
+	>=www-servers/tomcat-9.0.73:9
+"
+DEPEND="
+	${CP_DEPEND}
+	>=virtual/jdk-1.8:*
+	test? (
+		dev-java/ant-junit4:0
+		dev-java/hamcrest:0
+		dev-java/hamcrest-core:1.3
+		dev-java/junit:4
+		dev-java/mockito:4
+	)
+"
+RDEPEND="
+	${CP_DEPEND}
+	acct-user/i2p
+	acct-group/i2p
+	>=virtual/jre-1.8:*
+"
+
+EANT_BUILD_TARGET="preppkg-base"
+# no scala as depending on antlib.xml not installed by dev-lang/scala
+EANT_TEST_TARGET="junit.test"
+JAVA_ANT_ENCODING="UTF-8"
+JAVA_ANT_CLASSPATH_TAGS="javac java"
+# built locally
+EANT_GENTOO_CLASSPATH_EXTRA="${S}/core/java/build/i2p.jar"
+EANT_GENTOO_CLASSPATH_EXTRA+=":${S}/router/java/build/router.jar"
+EANT_GENTOO_CLASSPATH_EXTRA+=":${S}/apps/ministreaming/java/build/mstreaming.jar"
+
+DOCS=( README.md history.txt )
+
+pkg_pretend() {
+	# see https://bugs.gentoo.org/831290
+	if [[ "`java-config --show-active-vm`" = openjdk*-8 ]] &&
+	   [[ "`java-config --query MERGE_VM --package=ant-core`" != openjdk*-8 ]]
+	then
+		eerror "dev-java/ant-core was emerged with a newer version of the JDK."
+		eerror "It will fail to build with virtual/jdk:1.8 due to #831290."
+		eerror "Please switch to a newer JDK"
+		eerror "  eselect java-vm set system ..."
+		eerror "Or remerge dev-java/ant-core with virtual/jdk:1.8"
+		eerror "  emerge dev-java/ant-core"
+		die 'bad JDK for ant-core'
+	fi
+}
+
+src_prepare() {
+	java-pkg-2_src_prepare
+
+	# add our classpath
+	for f in `find -name build.xml`
+	do
+		java-ant_rewrite-classpath "$f"
+	done
+
+	# remove most bundled
+	# apps/addressbook/java/src/net/metanotion too much code drift
+	# apps/i2psnark/java/src/org/klomp/snark too much code drift
+	# apps/jrobin need rrd4j ebuild
+	# apps/routerconsole/java/src/{com,edu} too much code drift
+	# {core,router}/java/src/com/southernstorm/noise use internal symbols
+	# core/java/src/freenet too much code drift
+	# core/java/src/gnu/crypto too much code drift
+	# router/java/src/com/maxmind changed interface
+	# router/java/src/org/cybergarage unable to find version 3
+	# router/java/src/org/freenetproject too big to pull
+	# router/java/src/org/xlattice changed interface
+	java-pkg_clean ! \
+		-path "./apps/jetty/jetty-distribution-*" # need to package jetty
+	( cat >> override.properties || die 'set unbundled properties' ) <<- EOF
+		require.gettext=true
+		with-libgetopt-java=true
+		with-libjakarta-taglibs-standard-java=true
+		with-libjson-simple-java=true
+		with-libtomcat9-java=true
+		with-gettext-base=true
+		# with-geoip-database=true need std geoip use
+		# with-libjetty9-java=true needs a jetty ebuild
+	EOF
+
+	# bcprov
+	rm -r core/java/src/net/i2p/crypto/elgamal || die 'unbundle bcprov'
+	sed -e 's,net\.i2p\.crypto\.elgamal\.impl,org.bouncycastle.jce.provider,' \
+		-e 's,net\.i2p\.crypto\.elgamal\.spec,org.bouncycastle.jce.spec,' \
+		-i core/java/src/net/i2p/crypto/{provider/I2PProvider,CryptoConstants}.java ||
+		die 'redirect imports of bcprov'
+	# getopt, gettext
+	rm -r core/java/src/gnu/{getopt,gettext} || die 'unbundle GNU code'
+	# httpcomponents-client
+	rm -r core/java/src/net/i2p/apache || die 'unbundle httpcomponents-client'
+	sed -e 's,net\.i2p\.apache,org.apache,' \
+		-i core/java/src/net/i2p/util/{Addresses,I2PSSLSocketFactory}.java \
+		   apps/i2pcontrol/java/net/i2p/i2pcontrol/HostCheckHandler.java ||
+		die 'redirect imports of httpcomponents-client'
+	# identicon, zxing
+	rm -r apps/imagegen/{identicon,zxing} || die 'unbundle identicon & zxing'
+	sed -e '/LICENSE-Identicon.txt/d' -i build.xml &&
+	sed -E '/dir="[^"]*(identicon|zxing)/d' -i apps/imagegen{/imagegen,}/build.xml &&
+	sed -E '/(todir="build\/WEB-INF\/classes"|<\/copy>)/d' -i apps/imagegen/imagegen/build.xml ||
+		die 'do not depend on unbundled'
+	# hashcash
+	rm core/java/src/com/nettgryppa/security/HashCash.java ||
+		die 'unbundle hashcash'
+	# jbcrypt, jsonrpc2-*
+	rm -r apps/i2pcontrol/java/{com,org} || die 'unbundle jbcrypt & jsonrpc2-*'
+	# jstl*
+	sed -E '/"apps\/susidns\/src\/lib\/(jstl|standard).jar"/d' -i build.xml ||
+		die 'unbundle jstl*'
+	# minidns-core, json-simple
+	rm -r core/java/src/org || die 'unbundle minidns-core & json-simple'
+
+	# keep only enabled locales
+	local lang
+	for lang in ${LANGS[@]}
+	do
+		if ! use "l10n_${lang}"
+		then
+			find -regextype egrep \
+					-regex ".*[_\\./]${lang/-/_}.(html|po|1)" \
+				-delete || die "unbundling ${lang} translations"
+		fi
+	done
+
+	# fix some locale names
+	find -name '*_in.*' -exec rename --no-overwrite _in. _id. {} \; &&
+	find -name '*_iw.*' -exec rename --no-overwrite _iw. _he. {} \; ||
+		die 'fix some locale names'
+}
+
+src_configure() {
+	# deamon shouldn't start GUI
+	sed -i 's|\(clientApp.4.startOnLoad\)=true|\1=false|' \
+		installer/resources/clients.config ||
+		die 'avoid auto starting browser'
+
+	# yep, that's us
+	echo "build.built-by=Gentoo" >> override.properties ||
+		die 'bragging failed'
+}
+
+src_test() {
+	# avoid rebuilding
+	sed -e '/<delete dir=".\/build" \/>/d' -i core/java/build.xml ||
+		die 'avoid building twice'
+
+	EANT_GENTOO_CLASSPATH+=",hamcrest,junit-4,mockito-4"
+	java-pkg-2_src_test
+}
+
+src_install() {
+	# install basic documentation
+	einstalldocs
+	doman installer/resources/man/eepget.*
+
+	# install main files
+	cd "${S}/pkg-temp" || die 'unable to change dir to built artifacts'
+	# remove merged packages
+	java-pkg_dojar lib/*.jar
+	insinto "/usr/share/i2p"
+	doins blocklist.txt hosts.txt {clients,i2p*}.config
+	doins -r certificates docs eepsite geoip scripts
+	java-pkg_dowar webapps/*.war
+
+	# install daemons
+	newinitd "${FILESDIR}/i2p.init" i2p
+	systemd_dounit "${FILESDIR}/i2p.service"
+
+	# setup dirs
+	keepdir /var/log/i2p /var/lib/i2p
+	fowners i2p:i2p /var/lib/i2p /var/log/i2p
+
+	# create own launchers
+	java-pkg_dolauncher i2prouter --main net.i2p.router.Router --jar i2p.jar \
+		--pwd "${EPREFIX}/usr/share/i2p" \
+		--java_args "\
+			-Di2p.dir.app=${EPREFIX}/var/lib/i2p/app \
+			-Di2p.dir.config=${EPREFIX}/var/lib/i2p/config \
+			-Di2p.dir.router=${EPREFIX}/var/lib/i2p/router \
+			-Di2p.dir.log=${EPREFIX}/var/log/i2p \
+			-DloggerFilenameOverride=${EPREFIX}/var/log/i2p/router-@"
+	java-pkg_dolauncher eepget --main net.i2p.util.EepGet --jar i2p.jar
+}


             reply	other threads:[~2023-05-20  9:29 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-20  9:28 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-26 10:40 [gentoo-commits] repo/gentoo:master commit in: net-vpn/i2p/, net-vpn/i2p/files/ Sam James
2024-08-28  6:11 Joonas Niilola
2023-07-18 17:23 Sam James
2023-07-18 16:32 Sam James
2019-02-05 22:38 Patrice Clement
2018-04-17 19:33 Patrice Clement
2018-02-11 18:38 Michał Górny
2017-09-22 13:07 Patrice Clement
2017-09-22 13:07 Patrice Clement
2017-05-23 14:28 Patrice Clement
2017-04-08 21:22 Patrice Clement
2017-04-08 21:22 Patrice Clement

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1684574506.fcd56a344237b684ecd01c54dcb4a4b2f2607b20.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox