Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-p2p/freenet/files/, net-p2p/freenet/
Date: Fri, 28 Jan 2022 07:54:01
Message-Id: 1643356410.c54e5325b0369da14991e21bfe94a8226c257f06.sam@gentoo
1 commit: c54e5325b0369da14991e21bfe94a8226c257f06
2 Author: Yuan Liao <liaoyuan <AT> gmail <DOT> com>
3 AuthorDate: Sun Jan 23 18:21:33 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Fri Jan 28 07:53:30 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c54e5325
7
8 net-p2p/freenet: Fix build and runtime errors with JNA 5.x
9
10 This package uses JNA's Pointer.SIZE API, which has been removed since
11 JNA 5.0.0. A replacement of the API is Native.POINTER_SIZE, which is
12 present in both JNA 4.x and 5.x.
13
14 Since JNA 5.0.0, the default JNI library loading mechanism has been
15 changed, which would cause this package to crash upon launch, unless
16 system property 'jna.nosys' is set to 'false', which restores the 4.x
17 library loading behavior compatible with this package.
18
19 Closes: https://bugs.gentoo.org/830847
20 Signed-off-by: Yuan Liao <liaoyuan <AT> gmail.com>
21 Closes: https://github.com/gentoo/gentoo/pull/23933
22 Signed-off-by: Sam James <sam <AT> gentoo.org>
23
24 .../files/0.7.5_p1491-update-for-jna-5.x.patch | 31 ++++
25 .../freenet/files/freenet-0.7.5_p1491-wrapper.conf | 30 ++++
26 net-p2p/freenet/freenet-0.7.5_p1488-r2.ebuild | 169 +++++++++++++++++++++
27 net-p2p/freenet/freenet-0.7.5_p1491-r1.ebuild | 165 ++++++++++++++++++++
28 4 files changed, 395 insertions(+)
29
30 diff --git a/net-p2p/freenet/files/0.7.5_p1491-update-for-jna-5.x.patch b/net-p2p/freenet/files/0.7.5_p1491-update-for-jna-5.x.patch
31 new file mode 100644
32 index 000000000000..788a48040b17
33 --- /dev/null
34 +++ b/net-p2p/freenet/files/0.7.5_p1491-update-for-jna-5.x.patch
35 @@ -0,0 +1,31 @@
36 +From 830b4bb3948bd69fbd9b10001940f1775051114a Mon Sep 17 00:00:00 2001
37 +From: Yuan Liao <liaoyuan@×××××.com>
38 +Date: Sun, 23 Jan 2022 10:09:17 -0800
39 +Subject: [PATCH] Replace Pointer.SIZE with Native.POINTER_SIZE for JNA 5.x
40 +
41 +This patch is backward compatible with JNA 4.x because
42 +Native.POINTER_SIZE is present in both 4.x and 5.x.
43 +
44 +Bug: https://github.com/kaitoy/pcap4j/issues/191
45 +Bug: https://bugs.gentoo.org/830847
46 +Signed-off-by: Yuan Liao <liaoyuan@×××××.com>
47 +---
48 + src/freenet/io/comm/UdpSocketHandler.java | 2 +-
49 + 1 file changed, 1 insertion(+), 1 deletion(-)
50 +
51 +diff --git a/src/freenet/io/comm/UdpSocketHandler.java b/src/freenet/io/comm/UdpSocketHandler.java
52 +index 0cd975f16..c004613a9 100644
53 +--- a/src/freenet/io/comm/UdpSocketHandler.java
54 ++++ b/src/freenet/io/comm/UdpSocketHandler.java
55 +@@ -120,7 +120,7 @@ public class UdpSocketHandler implements PrioRunnable, PacketSocketHandler, Port
56 + return false;
57 + int ret = -1;
58 + try {
59 +- ret = socketOptionsHolder.setsockopt(fd, SOCKET_level.IPPROTO_IPV6.linux, p.option_name.linux, new IntByReference(p.linux).getPointer(), Pointer.SIZE);
60 ++ ret = socketOptionsHolder.setsockopt(fd, SOCKET_level.IPPROTO_IPV6.linux, p.option_name.linux, new IntByReference(p.linux).getPointer(), Native.POINTER_SIZE);
61 + } catch(Exception e) { Logger.normal(UdpSocketHandler.class, e.getMessage(),e); } //if it fails that's fine
62 + return (ret == 0 ? true : false);
63 + }
64 +--
65 +2.34.1
66 +
67
68 diff --git a/net-p2p/freenet/files/freenet-0.7.5_p1491-wrapper.conf b/net-p2p/freenet/files/freenet-0.7.5_p1491-wrapper.conf
69 new file mode 100644
70 index 000000000000..61bbf6f40bfb
71 --- /dev/null
72 +++ b/net-p2p/freenet/files/freenet-0.7.5_p1491-wrapper.conf
73 @@ -0,0 +1,30 @@
74 +wrapper.java.command=java
75 +wrapper.working.dir=/var/freenet/
76 +wrapper.java.mainclass=freenet.node.NodeStarter
77 +wrapper.java.library.path.1=/usr/lib
78 +wrapper.java.initmemory=60
79 +wrapper.java.maxmemory=1024
80 +wrapper.java.additional.1=-Dnetworkaddress.cache.ttl=0
81 +wrapper.java.additional.2=-Dnetworkaddress.cache.negative.ttl=0
82 +wrapper.java.additional.3=-enableassertions:freenet
83 +# You might want to set the following line if you have changed java.maxmemory
84 +wrapper.java.additional.4=-XX:MaxPermSize=1024M
85 +# Required since JNA 5.0.0, which changed the default JNI library search path
86 +# https://github.com/java-native-access/jna/issues/384
87 +wrapper.java.additional.5=-Djna.nosys=false
88 +
89 +wrapper.app.parameter.1=freenet.ini
90 +wrapper.console.format=PM
91 +wrapper.console.loglevel=INFO
92 +wrapper.logfile=wrapper.log
93 +wrapper.logfile.format=LPTM
94 +wrapper.logfile.loglevel=INFO
95 +wrapper.logfile.maxsize=2M
96 +wrapper.logfile.maxfiles=3
97 +wrapper.syslog.loglevel=NONE
98 +wrapper.console.title=Freenet 0.7
99 +wrapper.jvm_exit.timeout=120
100 +wrapper.restart.reload_configuration=TRUE
101 +wrapper.filter.trigger.1=java.lang.OutOfMemoryError
102 +wrapper.filter.action.1=RESTART
103 +
104
105 diff --git a/net-p2p/freenet/freenet-0.7.5_p1488-r2.ebuild b/net-p2p/freenet/freenet-0.7.5_p1488-r2.ebuild
106 new file mode 100644
107 index 000000000000..8b2cb5f7eea2
108 --- /dev/null
109 +++ b/net-p2p/freenet/freenet-0.7.5_p1488-r2.ebuild
110 @@ -0,0 +1,169 @@
111 +# Copyright 1999-2022 Gentoo Authors
112 +# Distributed under the terms of the GNU General Public License v2
113 +
114 +EAPI=6
115 +
116 +JAVA_PKG_IUSE="doc source"
117 +
118 +inherit epatch java-pkg-2 java-ant-2 systemd
119 +
120 +DESCRIPTION="An encrypted network without censorship"
121 +HOMEPAGE="https://freenetproject.org/"
122 +# https://github.com/${PN}/seedrefs/archive/build0${PV#*p}.zip -> seednodes-${PV}.zip
123 +SRC_URI="
124 + https://github.com/${PN}/fred/archive/build0${PV#*p}.zip -> ${P}.zip
125 + https://github.com/${PN}/seedrefs/archive/build01480.zip -> seednodes-0.7.5_p1480.zip
126 + mirror://gentoo/freenet-ant-1.7.1.jar"
127 +
128 +LICENSE="GPL-2+ GPL-2 MIT BSD-2 Apache-2.0"
129 +SLOT="0"
130 +KEYWORDS="~amd64 ~x86"
131 +IUSE="+nss test"
132 +
133 +CDEPEND="dev-java/bcprov:0
134 + dev-java/commons-compress:0
135 + dev-java/fec:0
136 + dev-java/java-service-wrapper:0
137 + dev-java/jbitcollider-core:0
138 + dev-java/jna:4
139 + dev-java/lzma:0
140 + dev-java/lzmajio:0
141 + dev-java/mersennetwister:0
142 + nss? ( dev-libs/nss )"
143 +
144 +DEPEND="
145 + app-arch/unzip
146 + >=virtual/jdk-1.8
147 + ${CDEPEND}
148 + test? (
149 + dev-java/junit:0
150 + dev-java/ant-junit:0
151 + )
152 + dev-java/ant-core:0"
153 +
154 +RDEPEND="
155 + >=virtual/jre-1.8
156 + net-libs/nativebiginteger:0
157 + ${CDEPEND}
158 + acct-user/freenet
159 + acct-group/freenet"
160 +
161 +PDEPEND="net-libs/NativeThread:0"
162 +
163 +JAVA_PKG_BSFIX_NAME+=" build-clean.xml"
164 +JAVA_ANT_REWRITE_CLASSPATH="yes"
165 +JAVA_ANT_CLASSPATH_TAGS+=" javadoc"
166 +JAVA_ANT_ENCODING="utf8"
167 +
168 +EANT_BUILD_TARGET="package"
169 +EANT_TEST_TARGET="unit"
170 +EANT_BUILD_XML="build-clean.xml"
171 +EANT_GENTOO_CLASSPATH="bcprov,commons-compress,fec,java-service-wrapper,jbitcollider-core,jna-4,lzma,lzmajio,mersennetwister"
172 +EANT_EXTRA_ARGS="-Dsuppress.gjs=true -Dlib.contrib.present=true -Dlib.bouncycastle.present=true -Dlib.junit.present=true -Dtest.skip=true"
173 +
174 +S="${WORKDIR}/fred-build0${PV#*p}"
175 +
176 +RESTRICT="test" # they're broken in the last release.
177 +
178 +MY_PATCHES=(
179 + "${FILESDIR}"/0.7.5_p1491-update-for-jna-5.x.patch
180 + "${FILESDIR}"/0.7.5_p1483-ext.patch
181 + "${FILESDIR}/"0.7.5_p1475-remove-git.patch
182 +)
183 +
184 +pkg_setup() {
185 + has_version dev-java/icedtea[cacao] && {
186 + ewarn "dev-java/icedtea was built with cacao USE flag."
187 + ewarn "freenet may compile with it, but it will refuse to run."
188 + ewarn "Please remerge dev-java/icedtea without cacao USE flag,"
189 + ewarn "if you plan to use it for running freenet."
190 + }
191 + java-pkg-2_pkg_setup
192 +}
193 +
194 +src_unpack() {
195 +# unpack ${P}.zip seednodes-${PV}.zip
196 + unpack ${P}.zip seednodes-0.7.5_p1480.zip
197 +}
198 +
199 +src_prepare() {
200 +# cat "${WORKDIR}"/seedrefs-build0${PV#*p}/* > "${S}"/seednodes.fref
201 + cat "${WORKDIR}"/seedrefs-build01480/* > "${S}"/seednodes.fref
202 + cp "${FILESDIR}"/freenet-0.7.5_p1491-wrapper.conf freenet-wrapper.conf || die
203 + cp "${FILESDIR}"/run.sh-20090501 run.sh || die
204 + cp "${FILESDIR}"/build-clean.xml build-clean.xml || die
205 + cp "${FILESDIR}"/build.properties build.properties || die
206 +
207 + epatch "${MY_PATCHES[@]}"
208 +
209 + sed -i -e "s:=/usr/lib:=/usr/$(get_libdir):g" \
210 + freenet-wrapper.conf || die "sed failed"
211 +
212 + echo "wrapper.java.classpath.1=/usr/share/freenet/lib/freenet.jar" >> freenet-wrapper.conf || die
213 + if use nss; then
214 + echo "wrapper.java.additional.6=-Dfreenet.jce.use.NSS=true" >> freenet-wrapper.conf || die
215 + fi
216 + local i=2 pkg jars jar
217 + local ifs_original=${IFS}
218 + IFS=","
219 + for pkg in ${EANT_GENTOO_CLASSPATH} ; do
220 + jars="$(java-pkg_getjars ${pkg})"
221 + for jar in ${jars} ; do
222 + echo "wrapper.java.classpath.$((i++))=${jar}" >> freenet-wrapper.conf || die
223 + done
224 + done
225 + IFS=${ifs_original}
226 + echo "wrapper.java.classpath.$((i++))=/usr/share/freenet/lib/ant.jar" >> freenet-wrapper.conf || die
227 + echo "wrapper.java.library.path.2=/usr/$(get_libdir)/java-service-wrapper" >> freenet-wrapper.conf || die
228 + echo "wrapper.java.library.path.3=/usr/$(get_libdir)/jna-4" >> freenet-wrapper.conf || die
229 +
230 + cp "${DISTDIR}"/freenet-ant-1.7.1.jar lib/ant.jar || die
231 + eapply_user
232 +}
233 +
234 +EANT_TEST_EXTRA_ARGS="-Dtest.skip=false"
235 +
236 +src_test() {
237 + java-pkg-2_src_test
238 +}
239 +
240 +src_install() {
241 + java-pkg_dojar dist/freenet.jar
242 + java-pkg_newjar "${DISTDIR}"/freenet-ant-1.7.1.jar ant.jar
243 +
244 + if has_version =sys-apps/baselayout-2*; then
245 + doinitd "${FILESDIR}"/freenet
246 + else
247 + newinitd "${FILESDIR}"/freenet.old freenet
248 + fi
249 +
250 + systemd_dounit "${FILESDIR}"/freenet.service
251 +
252 + dodoc AUTHORS
253 + newdoc README.md README
254 + insinto /etc
255 + doins freenet-wrapper.conf
256 + insinto /var/freenet
257 + doins run.sh seednodes.fref
258 + fperms +x /var/freenet/run.sh
259 + use doc && java-pkg_dojavadoc javadoc
260 + use source && java-pkg_dosrc src
261 +}
262 +
263 +pkg_postinst() {
264 + elog " "
265 + elog "1. Start freenet with /etc/init.d/freenet start."
266 + elog "2. Open localhost:8888 in your browser for the web interface."
267 + #workaround for previously existing freenet user
268 + [[ $(stat --format="%U" /var/freenet) == "freenet" ]] || chown \
269 + freenet:freenet /var/freenet
270 +}
271 +
272 +pkg_postrm() {
273 + if ! [[ -e /usr/share/freenet/lib/freenet.jar ]] ; then
274 + elog " "
275 + elog "If you dont want to use freenet any more"
276 + elog "and dont want to keep your identity/other stuff"
277 + elog "remember to do 'rm -rf /var/freenet' to remove everything"
278 + fi
279 +}
280
281 diff --git a/net-p2p/freenet/freenet-0.7.5_p1491-r1.ebuild b/net-p2p/freenet/freenet-0.7.5_p1491-r1.ebuild
282 new file mode 100644
283 index 000000000000..a7d25aeca420
284 --- /dev/null
285 +++ b/net-p2p/freenet/freenet-0.7.5_p1491-r1.ebuild
286 @@ -0,0 +1,165 @@
287 +# Copyright 1999-2022 Gentoo Authors
288 +# Distributed under the terms of the GNU General Public License v2
289 +
290 +EAPI=7
291 +
292 +JAVA_PKG_IUSE="doc source"
293 +
294 +inherit java-pkg-2 java-ant-2 systemd
295 +
296 +DESCRIPTION="An encrypted network without censorship"
297 +HOMEPAGE="https://freenetproject.org/"
298 +# https://github.com/${PN}/seedrefs/archive/build0${PV#*p}.zip -> seednodes-${PV}.zip
299 +SRC_URI="
300 + https://github.com/${PN}/fred/archive/build0${PV#*p}.zip -> ${P}.zip
301 + https://github.com/${PN}/seedrefs/archive/build01480.zip -> seednodes-0.7.5_p1480.zip
302 + mirror://gentoo/freenet-ant-1.7.1.jar"
303 +
304 +LICENSE="GPL-2+ GPL-2 MIT BSD-2 Apache-2.0"
305 +SLOT="0"
306 +KEYWORDS="~amd64 ~x86"
307 +IUSE="+nss test"
308 +
309 +CDEPEND="dev-java/bcprov:0
310 + dev-java/commons-compress:0
311 + dev-java/fec:0
312 + dev-java/java-service-wrapper:0
313 + dev-java/jbitcollider-core:0
314 + dev-java/jna:4
315 + dev-java/lzma:0
316 + dev-java/lzmajio:0
317 + dev-java/mersennetwister:0
318 + nss? ( dev-libs/nss )"
319 +
320 +DEPEND="
321 + app-arch/unzip
322 + >=virtual/jdk-1.8
323 + ${CDEPEND}
324 + test? (
325 + dev-java/junit:0
326 + dev-java/ant-junit:0
327 + )
328 + dev-java/ant-core:0"
329 +
330 +RDEPEND="
331 + >=virtual/jre-1.8
332 + net-libs/nativebiginteger:0
333 + ${CDEPEND}
334 + acct-user/freenet
335 + acct-group/freenet"
336 +
337 +PDEPEND="net-libs/NativeThread:0"
338 +
339 +JAVA_PKG_BSFIX_NAME+=" build-clean.xml"
340 +JAVA_ANT_REWRITE_CLASSPATH="yes"
341 +JAVA_ANT_CLASSPATH_TAGS+=" javadoc"
342 +JAVA_ANT_ENCODING="utf8"
343 +
344 +EANT_BUILD_TARGET="package"
345 +EANT_TEST_TARGET="unit"
346 +EANT_BUILD_XML="build-clean.xml"
347 +EANT_GENTOO_CLASSPATH="bcprov,commons-compress,fec,java-service-wrapper,jbitcollider-core,jna-4,lzma,lzmajio,mersennetwister"
348 +EANT_EXTRA_ARGS="-Dsuppress.gjs=true -Dlib.contrib.present=true -Dlib.bouncycastle.present=true -Dlib.junit.present=true -Dtest.skip=true"
349 +
350 +S="${WORKDIR}/fred-build0${PV#*p}"
351 +
352 +RESTRICT="test" # they're broken in the last release.
353 +
354 +pkg_setup() {
355 + has_version dev-java/icedtea[cacao] && {
356 + ewarn "dev-java/icedtea was built with cacao USE flag."
357 + ewarn "freenet may compile with it, but it will refuse to run."
358 + ewarn "Please remerge dev-java/icedtea without cacao USE flag,"
359 + ewarn "if you plan to use it for running freenet."
360 + }
361 + java-pkg-2_pkg_setup
362 +}
363 +
364 +src_unpack() {
365 +# unpack ${P}.zip seednodes-${PV}.zip
366 + unpack ${P}.zip seednodes-0.7.5_p1480.zip
367 +}
368 +
369 +src_prepare() {
370 +# cat "${WORKDIR}"/seedrefs-build0${PV#*p}/* > "${S}"/seednodes.fref
371 + cat "${WORKDIR}"/seedrefs-build01480/* > "${S}"/seednodes.fref
372 + cp "${FILESDIR}"/freenet-0.7.5_p1491-wrapper.conf freenet-wrapper.conf || die
373 + cp "${FILESDIR}"/run.sh-20090501 run.sh || die
374 + cp "${FILESDIR}"/build-clean.xml build-clean.xml || die
375 + cp "${FILESDIR}"/build.properties build.properties || die
376 +
377 + eapply -p1 "${FILESDIR}/"0.7.5_p1491-update-for-jna-5.x.patch
378 + eapply -p0 "${FILESDIR}"/0.7.5_p1483-ext.patch
379 + eapply -p1 "${FILESDIR}/"0.7.5_p1475-remove-git.patch
380 +
381 + sed -i -e "s:=/usr/lib:=/usr/$(get_libdir):g" \
382 + freenet-wrapper.conf || die "sed failed"
383 +
384 + echo "wrapper.java.classpath.1=/usr/share/freenet/lib/freenet.jar" >> freenet-wrapper.conf || die
385 + if use nss; then
386 + echo "wrapper.java.additional.6=-Dfreenet.jce.use.NSS=true" >> freenet-wrapper.conf || die
387 + fi
388 + local i=2 pkg jars jar
389 + local ifs_original=${IFS}
390 + IFS=","
391 + for pkg in ${EANT_GENTOO_CLASSPATH} ; do
392 + jars="$(java-pkg_getjars ${pkg})"
393 + for jar in ${jars} ; do
394 + echo "wrapper.java.classpath.$((i++))=${jar}" >> freenet-wrapper.conf || die
395 + done
396 + done
397 + IFS=${ifs_original}
398 + echo "wrapper.java.classpath.$((i++))=/usr/share/freenet/lib/ant.jar" >> freenet-wrapper.conf || die
399 + echo "wrapper.java.library.path.2=/usr/$(get_libdir)/java-service-wrapper" >> freenet-wrapper.conf || die
400 + echo "wrapper.java.library.path.3=/usr/$(get_libdir)/jna-4" >> freenet-wrapper.conf || die
401 +
402 + cp "${DISTDIR}"/freenet-ant-1.7.1.jar lib/ant.jar || die
403 + eapply_user
404 +}
405 +
406 +EANT_TEST_EXTRA_ARGS="-Dtest.skip=false"
407 +
408 +src_test() {
409 + java-pkg-2_src_test
410 +}
411 +
412 +src_install() {
413 + java-pkg_dojar dist/freenet.jar
414 + java-pkg_newjar "${DISTDIR}"/freenet-ant-1.7.1.jar ant.jar
415 +
416 + if has_version =sys-apps/baselayout-2*; then
417 + doinitd "${FILESDIR}"/freenet
418 + else
419 + newinitd "${FILESDIR}"/freenet.old freenet
420 + fi
421 +
422 + systemd_dounit "${FILESDIR}"/freenet.service
423 +
424 + dodoc AUTHORS
425 + newdoc README.md README
426 + insinto /etc
427 + doins freenet-wrapper.conf
428 + insinto /var/freenet
429 + doins run.sh seednodes.fref
430 + fperms +x /var/freenet/run.sh
431 + use doc && java-pkg_dojavadoc javadoc
432 + use source && java-pkg_dosrc src
433 +}
434 +
435 +pkg_postinst() {
436 + elog " "
437 + elog "1. Start freenet with /etc/init.d/freenet start."
438 + elog "2. Open localhost:8888 in your browser for the web interface."
439 + #workaround for previously existing freenet user
440 + [[ $(stat --format="%U" /var/freenet) == "freenet" ]] || chown \
441 + freenet:freenet /var/freenet
442 +}
443 +
444 +pkg_postrm() {
445 + if ! [[ -e /usr/share/freenet/lib/freenet.jar ]] ; then
446 + elog " "
447 + elog "If you dont want to use freenet any more"
448 + elog "and dont want to keep your identity/other stuff"
449 + elog "remember to do 'rm -rf /var/freenet' to remove everything"
450 + fi
451 +}