1 |
commit: f6dacb7a6f9a04445313879ccd2a318613dcd28b |
2 |
Author: tharvik <tharvik <AT> users <DOT> noreply <DOT> github <DOT> com> |
3 |
AuthorDate: Mon Aug 31 22:57:40 2020 +0000 |
4 |
Commit: Sam James <sam <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Sep 13 00:43:56 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f6dacb7a |
7 |
|
8 |
net-vpn/i2p: bump to 0.9.47 |
9 |
|
10 |
Closes: https://bugs.gentoo.org/735624 |
11 |
Package-Manager: Portage-3.0.4, Repoman-2.3.23 |
12 |
Signed-off-by: Valérian Rousset <tharvik <AT> users.noreply.github.com> |
13 |
Signed-off-by: Sam James <sam <AT> gentoo.org> |
14 |
|
15 |
net-vpn/i2p/Manifest | 1 + |
16 |
...47-DataHelper-decompress-fix-length-check.patch | 25 +++ |
17 |
net-vpn/i2p/i2p-0.9.47.ebuild | 214 +++++++++++++++++++++ |
18 |
3 files changed, 240 insertions(+) |
19 |
|
20 |
diff --git a/net-vpn/i2p/Manifest b/net-vpn/i2p/Manifest |
21 |
index 21a9f3ef153..205dfbe00af 100644 |
22 |
--- a/net-vpn/i2p/Manifest |
23 |
+++ b/net-vpn/i2p/Manifest |
24 |
@@ -1,2 +1,3 @@ |
25 |
DIST i2psource_0.9.44.tar.bz2 32016076 BLAKE2B 5803935cdebd18af48c4f00232cbbae02979c5ccebb68a4bddeb9cf60b6d02b734b72075ac7f9a57713f48cfd2bc0d14598e35df4ff7cdd590be57c68f5737b4 SHA512 a98129dde7d467e77ee37d16f9add3a0a4e602da84e1133c1b4b787133f185ad834cb1c52857e54946e424bd73a56200e48d6cd96856c87c748f53ca26af922e |
26 |
DIST i2psource_0.9.45.tar.bz2 31921025 BLAKE2B 2d37777f77784ff93de4d7442eddf46b9a541902412bf5fb24cf96baba73851cc17d01649a7b4b41a710ccde5690036a890b8f84de00f4c615ed2e23da8fa510 SHA512 d4cf354f0a807d132fae75d4bad3e2e788e1ed03d6f625feb0f1369bb2c9e1a6e2758645acf2017c61dbc47d75e6d834b87455adbead1077f206025686548ae9 |
27 |
+DIST i2psource_0.9.47.tar.bz2 32488438 BLAKE2B e1544475dad526e242570918c1bb967a4b713567e71201e08b73c8995743a68396b5951f477bfe8830927c0cdf7e991a25a1978d4aaf88cae3e4218ba57a8818 SHA512 7fdd9ab0b3e81aa89e73be6fa172d723c2b5a67365116a1e0e0ec948067fe4f58e3ad946a0ef4605602c0d803b98e37b2d5692a39a14cf7433d546ada204cbc9 |
28 |
|
29 |
diff --git a/net-vpn/i2p/files/i2p-0.9.47-DataHelper-decompress-fix-length-check.patch b/net-vpn/i2p/files/i2p-0.9.47-DataHelper-decompress-fix-length-check.patch |
30 |
new file mode 100644 |
31 |
index 00000000000..b728cc28cb1 |
32 |
--- /dev/null |
33 |
+++ b/net-vpn/i2p/files/i2p-0.9.47-DataHelper-decompress-fix-length-check.patch |
34 |
@@ -0,0 +1,25 @@ |
35 |
+# from https://trac.i2p2.de/ticket/2770 |
36 |
+From ceb0749e0d5c3c496b4a91bc3a9d3b5e296fc456 Mon Sep 17 00:00:00 2001 |
37 |
+From: zzz <zzz@mail.i2p> |
38 |
+Date: Wed, 2 Sep 2020 15:57:04 +0000 |
39 |
+Subject: [PATCH] Util: Fix decompression of compressed zero bytes (ticket |
40 |
+ #2770) |
41 |
+ |
42 |
+--- |
43 |
+ core/java/src/net/i2p/data/DataHelper.java | 3 ++- |
44 |
+ 1 file changed, 2 insertions(+), 1 deletion(-) |
45 |
+ |
46 |
+diff --git a/core/java/src/net/i2p/data/DataHelper.java b/core/java/src/net/i2p/data/DataHelper.java |
47 |
+index aaa47797c3..39f766e6fa 100644 |
48 |
+--- a/core/java/src/net/i2p/data/DataHelper.java |
49 |
++++ b/core/java/src/net/i2p/data/DataHelper.java |
50 |
+@@ -1902,7 +1902,8 @@ public static String unescapeHTML(String escaped) { |
51 |
+ */ |
52 |
+ public static byte[] decompress(byte orig[], int offset, int length) throws IOException { |
53 |
+ if (orig == null) return orig; |
54 |
+- if (length < 23) |
55 |
++ // normal overhead is 23 bytes, but a compress of zero bytes is 20 bytes |
56 |
++ if (length < 20) |
57 |
+ throw new IOException("length"); |
58 |
+ if (length < 65559 && orig[offset + 10] == 0x01) |
59 |
+ return zeroDecompress(orig, offset, length); |
60 |
|
61 |
diff --git a/net-vpn/i2p/i2p-0.9.47.ebuild b/net-vpn/i2p/i2p-0.9.47.ebuild |
62 |
new file mode 100644 |
63 |
index 00000000000..a775e06556d |
64 |
--- /dev/null |
65 |
+++ b/net-vpn/i2p/i2p-0.9.47.ebuild |
66 |
@@ -0,0 +1,214 @@ |
67 |
+# Copyright 1999-2020 Gentoo Authors |
68 |
+# Distributed under the terms of the GNU General Public License v2 |
69 |
+ |
70 |
+EAPI=7 |
71 |
+ |
72 |
+inherit java-pkg-2 java-ant-2 systemd |
73 |
+ |
74 |
+DESCRIPTION="A privacy-centric, anonymous network" |
75 |
+HOMEPAGE="https://geti2p.net" |
76 |
+SRC_URI="https://download.i2p2.de/releases/${PV}/i2psource_${PV}.tar.bz2" |
77 |
+ |
78 |
+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" |
79 |
+SLOT="0" |
80 |
+ |
81 |
+# Until the deps reach other arches |
82 |
+KEYWORDS="~amd64 ~x86" |
83 |
+IUSE="nls test" |
84 |
+RESTRICT="!test? ( test )" |
85 |
+ |
86 |
+# dev-java/ant-core is automatically added due to java-ant-2.eclass |
87 |
+CP_DEPEND=" |
88 |
+ dev-java/bcprov:1.50 |
89 |
+ dev-java/jrobin:0 |
90 |
+ dev-java/slf4j-api:0 |
91 |
+ dev-java/tomcat-jstl-impl:0 |
92 |
+ dev-java/tomcat-jstl-spec:0 |
93 |
+ dev-java/java-service-wrapper:0 |
94 |
+ dev-java/commons-logging:0 |
95 |
+ dev-java/slf4j-simple:0 |
96 |
+ java-virtuals/servlet-api:3.1 |
97 |
+" |
98 |
+ |
99 |
+DEPEND="${CP_DEPEND} |
100 |
+ dev-java/eclipse-ecj:* |
101 |
+ nls? ( >=sys-devel/gettext-0.19 ) |
102 |
+ virtual/jdk:1.8 |
103 |
+ test? ( |
104 |
+ dev-java/ant-junit4:0 |
105 |
+ dev-java/hamcrest-core:1.3 |
106 |
+ dev-java/hamcrest-library:1.3 |
107 |
+ dev-java/junit:4 |
108 |
+ ) |
109 |
+" |
110 |
+ |
111 |
+RDEPEND="${CP_DEPEND} |
112 |
+ acct-user/i2p |
113 |
+ acct-group/i2p |
114 |
+ virtual/jre:1.8 |
115 |
+ net-libs/nativebiginteger:0 |
116 |
+" |
117 |
+ |
118 |
+EANT_BUILD_TARGET="pkg" |
119 |
+# no scala as depending on antlib.xml not installed by dev-lang/scala |
120 |
+EANT_TEST_TARGET="junit.test" |
121 |
+JAVA_ANT_ENCODING="UTF-8" |
122 |
+ |
123 |
+PATCHES=( |
124 |
+ "${FILESDIR}/${P}-DataHelper-decompress-fix-length-check.patch" |
125 |
+) |
126 |
+ |
127 |
+src_prepare() { |
128 |
+ if use test; then |
129 |
+ # no *streaming as requiring >dev-java/mockito-1.9.5 |
130 |
+ sed -e "/streaming.*junit\.test/d" \ |
131 |
+ -i build.xml || |
132 |
+ die "unable to remove ministreaming tests" |
133 |
+ fi |
134 |
+ |
135 |
+ # as early as possible to allow generic patches to be applied |
136 |
+ default |
137 |
+ |
138 |
+ java-ant_rewrite-classpath |
139 |
+ |
140 |
+ java-pkg-2_src_prepare |
141 |
+ |
142 |
+ # We're on GNU/Linux, we don't need .exe files |
143 |
+ echo "noExe=true" > override.properties || die |
144 |
+ if ! use nls; then |
145 |
+ echo "require.gettext=false" >> override.properties || die |
146 |
+ fi |
147 |
+ |
148 |
+ # avoid auto starting browser |
149 |
+ sed -i "s|clientApp.4.startOnLoad=true|clientApp.4.startOnLoad=false|" \ |
150 |
+ "installer/resources/clients.config" || die |
151 |
+ |
152 |
+ # generate wrapper classpath, keeping the default to be replaced later |
153 |
+ i2p_cp="" # global forced by java-pkg_gen-cp |
154 |
+ java-pkg_gen-cp i2p_cp |
155 |
+ local lib i=2 |
156 |
+ local cp="wrapper.java.classpath.1=${EPREFIX}/usr/share/i2p/lib/*\n" |
157 |
+ for lib in ${i2p_cp//,/ } |
158 |
+ do |
159 |
+ cp+="wrapper.java.classpath.$((i++))=$(java-pkg_getjars ${lib})\n" |
160 |
+ done |
161 |
+ |
162 |
+ # add generated cp, hardcode system VM, setting system's conf |
163 |
+ sed -e "s|\(wrapper\.java\.classpath\.1\)=.*|${cp}|" \ |
164 |
+ -e "s|\(wrapper\.java\.command\)=.*|\1=/etc/java-config-2/current-system-vm/bin/java|" \ |
165 |
+ -e "s|\(wrapper\.java\.library\.path\.1\)=.*|\1=/usr/$(get_libdir)/java-service-wrapper|" \ |
166 |
+ -e "s|\(wrapper\.java\.library\.path\)\.2=.*|\1.2=${EPREFIX}/usr/share/i2p/lib\n\1.3=/usr/$(get_libdir)|" \ |
167 |
+ -e "s|\(wrapper\.java\.additional\.1=-DloggerFilenameOverride\)=.*|\1=${EPREFIX}/var/log/i2p/router-@|" \ |
168 |
+ -e "s|\(wrapper\.logfile\)=.*|\1=${EPREFIX}/var/log/i2p/wrapper|" \ |
169 |
+ -e "/wrapper\.java\.additional\.2\(\.stripquote\|\)/d" \ |
170 |
+ -i installer/resources/wrapper.config || |
171 |
+ die "unable to apply gentoo config" |
172 |
+ local prop i=2 |
173 |
+ for prop in \ |
174 |
+ "i2p.dir.base=${EPREFIX}/usr/share/i2p" \ |
175 |
+ "i2p.dir.app=${EPREFIX}/var/lib/i2p/app" \ |
176 |
+ "i2p.dir.config=${EPREFIX}/var/lib/i2p/config" \ |
177 |
+ "i2p.dir.router=${EPREFIX}/var/lib/i2p/router" \ |
178 |
+ "i2p.dir.log=${EPREFIX}/var/log/i2p" \ |
179 |
+ "i2p.dir.pid=${EPREFIX}/tmp" \ |
180 |
+ "i2p.dir.temp=${EPREFIX}/tmp" |
181 |
+ do |
182 |
+ echo "wrapper.java.additional.$((i++))=-D$prop" >> installer/resources/wrapper.config || |
183 |
+ die "unable to apply gentoo config" |
184 |
+ done |
185 |
+} |
186 |
+ |
187 |
+src_test() { |
188 |
+ # store built version of jars, overwritten by testing |
189 |
+ mv "${S}/pkg-temp/lib/"{i2p,router}.jar "${T}" || |
190 |
+ die "unable to save jars before tests" |
191 |
+ |
192 |
+ # generate test classpath |
193 |
+ local cp |
194 |
+ cp="$(java-pkg_getjars --build-only junit-4,hamcrest-core-1.3,hamcrest-library-1.3)" |
195 |
+ EANT_TEST_EXTRA_ARGS="-Djavac.classpath=${cp}" java-pkg-2_src_test |
196 |
+ |
197 |
+ # redo work undone by testing |
198 |
+ mv "${T}/"{i2p,router}.jar "${S}/pkg-temp/lib/" || |
199 |
+ die "unable to restore jars after tests" |
200 |
+} |
201 |
+ |
202 |
+src_install() { |
203 |
+ # cd into pkg-temp. |
204 |
+ cd "${S}/pkg-temp" || die |
205 |
+ |
206 |
+ # we remove system installed jar and install the others |
207 |
+ rm lib/{jrobin,wrapper,jbigi,commons-logging,javax.servlet}.jar || \ |
208 |
+ die "unable to remove locally built jar already found in system" |
209 |
+ java-pkg_dojar lib/*.jar |
210 |
+ |
211 |
+ # create own launcher |
212 |
+ java-pkg_dolauncher eepget --main net.i2p.util.EepGet --jar i2p.jar |
213 |
+ |
214 |
+ # Install main files and basic documentation |
215 |
+ insinto "/usr/share/i2p" |
216 |
+ doins blocklist.txt hosts.txt *.config |
217 |
+ dodoc history.txt INSTALL-headless.txt LICENSE.txt |
218 |
+ doman man/* |
219 |
+ |
220 |
+ # Install other directories |
221 |
+ doins -r certificates docs eepsite geoip scripts |
222 |
+ java-pkg_dowar webapps/*.war |
223 |
+ |
224 |
+ # Install daemon files |
225 |
+ newinitd "${FILESDIR}/i2p.init" i2p |
226 |
+ systemd_dounit "${FILESDIR}/i2p.service" |
227 |
+ |
228 |
+ # setup log |
229 |
+ keepdir /var/log/i2p |
230 |
+ fowners i2p:i2p /var/log/i2p |
231 |
+ |
232 |
+ # setup user |
233 |
+ keepdir /var/lib/i2p |
234 |
+ fowners i2p:i2p /var/lib/i2p |
235 |
+} |
236 |
+ |
237 |
+pkg_postinst() { |
238 |
+ local old_i2pdir="${EPREFIX}/var/lib/i2p/.i2p" new_i2pdir="${EPREFIX}/var/lib/i2p" |
239 |
+ |
240 |
+ [ -e "${old_i2pdir}" ] || return |
241 |
+ |
242 |
+ elog "User is now delegated to acct-user, ${new_i2pdir} is split" |
243 |
+ elog "into subdirs. It will now try to split ${old_i2pdir} accordingly." |
244 |
+ |
245 |
+ migrate() { |
246 |
+ local dest="${1}" |
247 |
+ shift |
248 |
+ |
249 |
+ local ret=true |
250 |
+ for src |
251 |
+ do |
252 |
+ [ -e "${src}" ] || continue |
253 |
+ mv "${src}" "${dest}" || ret=false |
254 |
+ done |
255 |
+ |
256 |
+ $ret |
257 |
+ } |
258 |
+ |
259 |
+ ebegin "Migrating" |
260 |
+ local ret=0 |
261 |
+ chown -R i2p:i2p "${EPREFIX}/var/lib/i2p" || ret=1 |
262 |
+ migrate "${new_i2pdir}/app" "${old_i2pdir}/i2psnark" || ret=1 |
263 |
+ migrate "${new_i2pdir}/config" \ |
264 |
+ "${old_i2pdir}/"{docs,eepsite,hosts.txt,prngseed.rnd,*.config*} || |
265 |
+ ret=1 |
266 |
+ migrate "${new_i2pdir}/router" \ |
267 |
+ "${old_i2pdir}/"{addressbook,eventlog.txt,hostsdb.blockfile,keyBackup,netDb,peerProfiles,router.*,rrd} || |
268 |
+ ret=1 |
269 |
+ migrate "${EPREFIX}/var/log/i2p" "${old_i2pdir}/"{logs/*,wrapper.log*} || |
270 |
+ ret=1 |
271 |
+ rm -fr "${old_i2pdir}/"{hostsdb.blockfile.*.corrupt,logs} |
272 |
+ rmdir "${old_i2pdir}" || ret=1 |
273 |
+ |
274 |
+ if ! eend $ret |
275 |
+ then |
276 |
+ ewarn "There was some file remaining in ${old_i2pdir}." |
277 |
+ ewarn "Please check it there is something of value there." |
278 |
+ ewarn "remove it when migration is done." |
279 |
+ fi |
280 |
+} |