summaryrefslogtreecommitdiff
path: root/net-p2p/freenet
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p/freenet')
-rw-r--r--net-p2p/freenet/Manifest17
-rw-r--r--net-p2p/freenet/files/0.7.5_p1321-ext.patch22
-rw-r--r--net-p2p/freenet/files/0.7.5_p1475-remove-git.patch24
-rw-r--r--net-p2p/freenet/files/freenet18
-rw-r--r--net-p2p/freenet/files/freenet-0.7.5_p1474-wrapper.conf27
-rw-r--r--net-p2p/freenet/files/freenet.service13
-rw-r--r--net-p2p/freenet/files/run.sh-20090501585
-rw-r--r--net-p2p/freenet/freenet-0.7.5_p1475-r2.ebuild161
-rw-r--r--net-p2p/freenet/freenet-0.7.5_p1478-r1.ebuild158
-rw-r--r--net-p2p/freenet/freenet-0.7.5_p1478.ebuild158
-rw-r--r--net-p2p/freenet/metadata.xml11
11 files changed, 1194 insertions, 0 deletions
diff --git a/net-p2p/freenet/Manifest b/net-p2p/freenet/Manifest
new file mode 100644
index 000000000000..ac79daf8f63e
--- /dev/null
+++ b/net-p2p/freenet/Manifest
@@ -0,0 +1,17 @@
+AUX 0.7.5_p1321-ext.patch 921 SHA256 e115f7b35b741e49ad1124a2aada2c18287ec962211e50bbad0a89e1d2bebd7f SHA512 974998abecb041f8912a7791ec2867445f85108e8c43a567ea5fc0977d220e838789b40a24f2b822aef89f0a8a9a7571e370d93d4bfe89ca3c460cbbf7cc86e1 WHIRLPOOL d6f6a6c6ec3b6e48ffaa6e8b7ca81f049d2bee685a6bd587e3bdd5442a2056b73cad8765454008a19e13502ece749e7e9b0f88f78dba3906b95c3b252ecbb71e
+AUX 0.7.5_p1475-remove-git.patch 926 SHA256 e48e8b9032a7f8e3aed55636598a6db5ea1e16b5f32cd046348317b49736b3b3 SHA512 d24cc1ecd7a991927d8e65378b9dabe1e7e75d8902a40cc6ae7bf19104133e9708da8768ee38230f93fc41609324ae3a9f7f7998ba261c4f4f3254d38ffaa792 WHIRLPOOL 9a5d995ce585d5f87b729011bbd41c4eee0860e18e23afd3a65637103d46a9fbd8b7fa7bf4a200f9eb05df5b66dc113f71036d823da30f1ca41fc21a4bd9bb3a
+AUX freenet 474 SHA256 8973d27668bc38899d1df798985a3abb7f981fd9264a957ff1b1436edc4a2ebc SHA512 8bfaf754106cd5476f96554932d3a394efbfbbdd51d6a62b32259e3c65ef562cf92f0f7fb2a2cb768037312780a990cdd05f758e23c4cc57e7543aaaed85f285 WHIRLPOOL 313ed472f670f88925973c512b0cdd2eebb5ded7b806bc195718da81840ef3724f35399312edce586a01aa788028f1ec988a68b3e7f9720a498d0894525c5128
+AUX freenet-0.7.5_p1474-wrapper.conf 949 SHA256 147d413f6c7aebbe104b6720a431fcfa7d4ecb8b9054173d936130a6a8083a26 SHA512 a6d30afc502176a6e0bab480368553c1df50add8fe18b65cede38be752c989125999cbb8bedfd68641623fd4498e19610c16d02fcf9d951da450a9612301cdeb WHIRLPOOL 0da355278bbf9dc94cfe6ec772f89b574b03b7a495b8a9ada6a9f7f0bca0166a576a5f702857e53522f54e2adfac62ac6f2133a44c3e83e7333b920004e44759
+AUX freenet.service 271 SHA256 eb9e38c169055ba62ccc5e97065a1e7d96b2e639d1ae921a658acd3c98f74c65 SHA512 2f3d4ec0ba05eff328e8176cbe130176a82a1bb432599de44ab78ca27e9c96e0eafe0871f12b0165247f941a2e929635a6abe6cd61351b1305c0d0e8cff83d2b WHIRLPOOL 42be0b1bab59e2b0aecd4dc5e8fd4a29432df4497e88073c235d2ba0761a66850d54da7b01dc36f34712e62fb2f0efd141d0c0116f5267c16a4f69103dde9783
+AUX run.sh-20090501 16217 SHA256 470aa99d083a16d2f620282502a59546611f1903e21aef50b93b10d9fada7d7a SHA512 ba97f1e370ffb7c9ea109b7d529430581a588d8d7e121ec09865e9e8932f2901477f7f43e7d0b95c7c95c2c42db05870e5d811528f91f78b48b68a539c804e67 WHIRLPOOL 201c2541da742ae0c211d6b736914340dd06d4907326de5a0073b39e8aa0a60933ed7d4eef3aa86465f9d0c2e0bf5bd78ed85d3c83c08ba9b50aabc25853864e
+DIST freenet-0.7.5_p1475.zip 5009537 SHA256 21b3c3e95ea094cd137ae081e9b5dff098b9e5c20b37576dc0b1c091b6ee3108 SHA512 96376600fb3ff6d2bd6ede426fd05c684b51a0f2ace1f83696b0f63b2e2acd9359d41558a11d954e54031e88a62afe854f6cab7d852756dff76851f075249369 WHIRLPOOL 59e5b6240f3e34e6032feb1702e03f55fdd0bfa12977e70281cdf626e56863eff66b93c35afa54f9c398a87b4d8ac5254238b33742904ac9ec10f6bdb759228d
+DIST freenet-0.7.5_p1478.zip 5082260 SHA256 543ea64fb3b81777445c69e42d3739eaba3eacd40e06200cdae47106cef75807 SHA512 4147ef68e9c61a7d90c378cd9a3896933c4b931c31caf95107d1e188b4bf51d187381200d262fc1adaf939be7b0ea0eec9f795a09c897c1d20765325ac5faf03 WHIRLPOOL 665e94646471e363e890ff53d29785eb8ec47a3cf1d0c8e6102ac18df957164399155ea38b5623b09dc419d7279d736d12489098342fa2a216f71ce5101ac0dd
+DIST freenet-ant-1.7.1.jar 1327167 SHA256 634e0b616d65d611419920e8b379b7b66399e44f520baa772147ed73743433b1 SHA512 2c84378d995fed0630169fffab020bde89c3edb7b3bc1e14e2251ed71be684dc2520fdeed8bae382de362984e25a31dcd59326ef8735f8066166c1e8d98ca408 WHIRLPOOL 667be2b1581c5fd847907b63522a0f83c595a6b8f1805d714e978a5cb0f05de4804153c89605618adf5c3b097a7019e7d7e9de0bf0987c7b1adb0dbc54e0f055
+DIST seednodes-20150812.fref.bz2 11631 SHA256 bf8a83a2c5cb7c160119d69c657f1db5324794c3603f13acb41416c09728fdc7 SHA512 3aa2ef00ca058b313032243f03f0f82a4e70f455bbe3dee48f9ce438415711f4415172946a3f958e14a699df69d9d0fa88173ce482c0b3d503da0829418b1d3d WHIRLPOOL 724b610d6ebd839a304262645cbf81fb7ea6c5da7b6121e76016d1752dc474fb331e74abe445987f5af94181eacfba832ec23077aa84ba08026bbf831d542a44
+DIST seednodes-20160521.fref.bz2 13751 SHA256 c122851dee2da471d3e286c9fad4d3c94e3d235fd8dc9f27bc99eeff5811f7a8 SHA512 3530ac6bf9de886930bb403c2d2ec27102d5dc6904582ee69987e369dbfaf7170aadbc02b95836ff43fef2531fb06087a494b426662cd5529c87316590fd2686 WHIRLPOOL 3b8bd751983f3cd97677129a6205d1365a3bc95dc4a4a7e7ba539d75c0faf9159b6f03bf2c89e9290a07a2b58641af0e59d227a8b4cfc31e91c9a3ba1c85547d
+EBUILD freenet-0.7.5_p1475-r2.ebuild 4298 SHA256 dcfeeeee55573ac871d52ad1ec0e7a5dafe8447076153650780e111b51a20100 SHA512 4710455e7f12a37f54b367b843f1758450a8e84a266771eb7288f183e347ecfc7424c8dfd0a40f3af0fd2cc0d27a53ebdf43553a7cc84eaeb4898190990d5233 WHIRLPOOL 557595d7f5784cf37864f3bc9153841c8798304768890214061bd7460148b29d6031b25acd296cf7a24ebe7fd0ed134cdfaf8d5fa190532c98b39b631334d4d1
+EBUILD freenet-0.7.5_p1478-r1.ebuild 4240 SHA256 f76a3ff28e24c4f6c54c664f54ed413a4be4f98a66aab1c1d69d4245f7f6ceba SHA512 3329c581704206df82e1a823947a4f64b6a3f347acc3908376e3055ba0bb684e64e70bf521788297def4918a759502e6220df3bfaa4e526dca837544903fad1a WHIRLPOOL 4daa32179d5cf3b5e56940f8e2dd13f30d0482a0d556769ee2711d23c26ea0c26cede9ca498b81c7b3998510a40be598ef847588b694b9ad2bbc682ee3640afd
+EBUILD freenet-0.7.5_p1478.ebuild 4240 SHA256 f76a3ff28e24c4f6c54c664f54ed413a4be4f98a66aab1c1d69d4245f7f6ceba SHA512 3329c581704206df82e1a823947a4f64b6a3f347acc3908376e3055ba0bb684e64e70bf521788297def4918a759502e6220df3bfaa4e526dca837544903fad1a WHIRLPOOL 4daa32179d5cf3b5e56940f8e2dd13f30d0482a0d556769ee2711d23c26ea0c26cede9ca498b81c7b3998510a40be598ef847588b694b9ad2bbc682ee3640afd
+MISC ChangeLog 4180 SHA256 6ad7289c3cbd8122da98535da122b3127424ad7864e5e1c63355331ff9d22112 SHA512 6d23b1ca815c0ffabe97648df2659015c5581562645a64d3164dcac84f1defbc8df5330482d0b7c699bf9ac59e82780f9ea24f09da57dd19d14ca1fad508af09 WHIRLPOOL c7e58b58b35803b56ebb842d92b504c31bd7c890ff0dc385f93ccf46e9f3bb0b2c1c4babcc721e98955a5db1d68aa7cd5634bd72e0ef8e2990314abed44c9e44
+MISC ChangeLog-2015 26408 SHA256 c1a8971659f48f3632987f9837c01659267f5406ba81c780783eddddc8fe04ca SHA512 2b1ed4f73b651a559954d8e08caf4b4ad744dca1c55164eadb3d110dc0fa1218040889161cbaaaa9bfa65ade21bdb714e7bd76ce1a60f0d51e032349b457aefc WHIRLPOOL 73c73155ea356e26dc44091b000c7eefb5a21da4a1cedb8ddf08dfc5bc8d38805577e841f8f2fbede0955427e8bea8dea55b6f1eab7a6067b86b7df353cce181
+MISC metadata.xml 333 SHA256 42f8d69a12c1978cced09950b7b54b526560466d5abf83672462aabbf86e0fca SHA512 73b9b7fc476aba6342a92820a2a4d200735370173f10fd93521daa89c711d9152006dbb00aa1f513558cf0fb7e33ca97f7442ddce4a7bcc58c8a3ec8a08403c8 WHIRLPOOL 35a45af575938790ba47f27a5ff663c09b0583afafb0597775943e4e31aef5f0c526585e331b1e2764c18f769ce7a2429b277976b921276eb28e281e6f098bfd
diff --git a/net-p2p/freenet/files/0.7.5_p1321-ext.patch b/net-p2p/freenet/files/0.7.5_p1321-ext.patch
new file mode 100644
index 000000000000..1d2ba8f140f4
--- /dev/null
+++ b/net-p2p/freenet/files/0.7.5_p1321-ext.patch
@@ -0,0 +1,22 @@
+--- src/freenet/node/NodeStarter.java 2010-11-10 21:46:10.000000000 +0100
++++ src/freenet/node/NodeStarter.java.new 2010-11-10 21:50:12.000000000 +0100
+@@ -49,8 +49,8 @@
+ public static final String extRevisionNumber;
+
+ static {
+- extBuildNumber = ExtVersion.extBuildNumber();
+- extRevisionNumber = ExtVersion.extRevisionNumber();
++ extBuildNumber = 29;
++ extRevisionNumber = "";
+ }
+
+ private FreenetFilePersistentConfig cfg;
+@@ -86,7 +86,7 @@
+ return Integer.valueOf(-1);
+ }
+
+- String builtWithMessage = "freenet.jar built with freenet-ext.jar Build #" + ExtVersion.buildNumber + " r" + ExtVersion.cvsRevision+" running with ext build "+extBuildNumber+" r" + extRevisionNumber;
++ String builtWithMessage = "freenet.jar built with freenet-ext.jar Build #" + extBuildNumber + " running with ext build "+extBuildNumber;
+ Logger.normal(this, builtWithMessage);
+ System.out.println(builtWithMessage);
+
diff --git a/net-p2p/freenet/files/0.7.5_p1475-remove-git.patch b/net-p2p/freenet/files/0.7.5_p1475-remove-git.patch
new file mode 100644
index 000000000000..5cebf6e948ef
--- /dev/null
+++ b/net-p2p/freenet/files/0.7.5_p1475-remove-git.patch
@@ -0,0 +1,24 @@
+diff -Naur a/build-clean.xml b/build-clean.xml
+--- a/build-clean.xml 2016-10-10 18:26:04.056935377 +0200
++++ b/build-clean.xml 2016-10-10 18:47:11.662036536 +0200
+@@ -59,18 +59,8 @@
+ <assertions><enable/></assertions>
+
+ <!-- set version string based on git-describe -->
+- <exec executable="git" failifexecutionfails="false"
+- errorProperty="git.errror" outputproperty="git.describe" resultproperty="git.result">
+- <arg value="describe" />
+- <arg value="--always" />
+- <arg value="--abbrev=4" />
+- <arg value="--dirty" />
+- </exec>
+- <condition property="git.revision" value="${git.describe}" else="@unknown@">
+- <and>
+- <equals arg1="${git.result}" arg2="0" />
+- <isset property="git.describe" />
+- </and>
++ <condition property="git.revision" value="@unknown@" else="@unknown@">
++ <isset property="git.describe" />
+ </condition>
+
+ <!-- =================================================================== -->
diff --git a/net-p2p/freenet/files/freenet b/net-p2p/freenet/files/freenet
new file mode 100644
index 000000000000..cfbfa767732e
--- /dev/null
+++ b/net-p2p/freenet/files/freenet
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+start() {
+ start-stop-daemon --start --user freenet --exec /bin/sh /var/freenet/run.sh start 2>/dev/null
+ eend 0
+}
+
+status() {
+ start-stop-daemon --start --user freenet --exec /bin/sh /var/freenet/run.sh status 2>/dev/null
+ eend 0
+}
+
+stop() {
+ start-stop-daemon --start --user freenet --exec /bin/sh /var/freenet/run.sh stop 2>/dev/null
+ eend 0
+}
diff --git a/net-p2p/freenet/files/freenet-0.7.5_p1474-wrapper.conf b/net-p2p/freenet/files/freenet-0.7.5_p1474-wrapper.conf
new file mode 100644
index 000000000000..7ec6cd01bcad
--- /dev/null
+++ b/net-p2p/freenet/files/freenet-0.7.5_p1474-wrapper.conf
@@ -0,0 +1,27 @@
+wrapper.java.command=java
+wrapper.working.dir=/var/freenet/
+wrapper.java.mainclass=freenet.node.NodeStarter
+wrapper.java.library.path.1=/usr/lib
+wrapper.java.initmemory=60
+wrapper.java.maxmemory=1024
+wrapper.java.additional.1=-Dnetworkaddress.cache.ttl=0
+wrapper.java.additional.2=-Dnetworkaddress.cache.negative.ttl=0
+wrapper.java.additional.3=-enableassertions:freenet
+# You might want to set the following line if you have changed java.maxmemory
+wrapper.java.additional.4=-XX:MaxPermSize=1024M
+
+wrapper.app.parameter.1=freenet.ini
+wrapper.console.format=PM
+wrapper.console.loglevel=INFO
+wrapper.logfile=wrapper.log
+wrapper.logfile.format=LPTM
+wrapper.logfile.loglevel=INFO
+wrapper.logfile.maxsize=2M
+wrapper.logfile.maxfiles=3
+wrapper.syslog.loglevel=NONE
+wrapper.console.title=Freenet 0.7
+wrapper.jvm_exit.timeout=120
+wrapper.restart.reload_configuration=TRUE
+wrapper.filter.trigger.1=java.lang.OutOfMemoryError
+wrapper.filter.action.1=RESTART
+
diff --git a/net-p2p/freenet/files/freenet.service b/net-p2p/freenet/files/freenet.service
new file mode 100644
index 000000000000..17df1373dc34
--- /dev/null
+++ b/net-p2p/freenet/files/freenet.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=An encrypted network without censorship and monitoring.
+After=network.target
+
+[Service]
+User=freenet
+Type=forking
+ExecStart=/var/freenet/run.sh start
+ExecStop=/var/freenet/run.sh stop
+WorkingDirectory=/var/freenet
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-p2p/freenet/files/run.sh-20090501 b/net-p2p/freenet/files/run.sh-20090501
new file mode 100644
index 000000000000..3f9723ff3e76
--- /dev/null
+++ b/net-p2p/freenet/files/run.sh-20090501
@@ -0,0 +1,585 @@
+#! /bin/sh
+
+#
+# Copyright (c) 1999, 2006 Tanuki Software Inc.
+#
+# Java Service Wrapper sh script. Suitable for starting and stopping
+# wrapped Java applications on UNIX platforms.
+#
+
+#-----------------------------------------------------------------------------
+# These settings can be modified to fit the needs of your application
+
+# Application
+APP_NAME="Freenet"
+APP_LONG_NAME="Freenet 0.7"
+
+# Wrapper
+WRAPPER_CMD="/usr/bin/wrapper"
+WRAPPER_CONF="/etc/freenet-wrapper.conf"
+
+# Priority at which to run the wrapper. See "man nice" for valid priorities.
+# nice is only used if a priority is specified.
+
+# Note that Freenet will scale its usage within the specifed niceness, some
+# threads will have a lower priority (higher nice value) than this. Also please
+# don't renice Freenet once it's started.
+PRIORITY=10
+
+# Location of the pid file.
+PIDDIR="/var/freenet/"
+
+# If uncommented, causes the Wrapper to be shutdown using an anchor file.
+# When launched with the 'start' command, it will also ignore all INT and
+# TERM signals.
+IGNORE_SIGNALS=true
+
+# If specified, the Wrapper will be run as the specified user.
+# IMPORTANT - Make sure that the user has the required privileges to write
+# the PID file and wrapper.log files. Failure to be able to write the log
+# file will cause the Wrapper to exit without any way to write out an error
+# message.
+# NOTE - This will set the user which is used to run the Wrapper as well as
+# the JVM and is not useful in situations where a privileged resource or
+# port needs to be allocated prior to the user being changed.
+RUN_AS_USER=freenet
+
+# The following two lines are used by the chkconfig command. Change as is
+# appropriate for your application. They should remain commented.
+# chkconfig: 2345 20 80
+# description: @app.long.name@
+
+# Do not modify anything beyond this point
+#-----------------------------------------------------------------------------
+
+if [ "X`id -u`" = "X0" -a -z "$RUN_AS_USER" ]
+then
+ echo "Do not run this script as root."
+ exit 1
+fi
+
+# and get java implementation too, Sun JDK or Kaffe
+JAVA_IMPL=`java -version 2>&1 | head -n 1 | cut -f1 -d' '`
+
+# sun specific options
+LDPROP=""
+#if [ "$JAVA_IMPL" = "java" ]
+#then
+# echo Sun java detected.
+# # Tell it not to use NPTL.
+# # BAD THINGS happen if it uses NPTL.
+# # Specifically, at least on 1.4.1. and 1.5.0b2, we get hangs
+# # where many threads are stuck waiting for a lock to be
+# # unlocked but no thread owns it.
+#
+# ## won't work on libc2.4 ... let's hope it's fixed
+# if [[ -z "$(/lib/libc.so.6 | head -n 1 | grep 'release version 2.4')" ]]
+# then
+# if [[ -d /lib/tls ]]
+# then
+# LDPROP="set.LD_ASSUME_KERNEL=2.4.1"
+# fi
+# fi
+#fi
+
+
+# Get the fully qualified path to the script
+case $0 in
+ /*)
+ SCRIPT="$0"
+ ;;
+ *)
+ PWD=`pwd`
+ SCRIPT="$PWD/$0"
+ ;;
+esac
+
+# Resolve the true real path without any sym links.
+CHANGED=true
+while [ "X$CHANGED" != "X" ]
+do
+ # Change spaces to ":" so the tokens can be parsed.
+ SCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
+ # Get the real path to this script, resolving any symbolic links
+ TOKENS=`echo $SCRIPT | sed -e 's;/; ;g'`
+ REALPATH=
+ for C in $TOKENS; do
+ REALPATH="$REALPATH/$C"
+ while [ -h "$REALPATH" ] ; do
+ LS="`ls -ld "$REALPATH"`"
+ LINK="`expr "$LS" : '.*-> \(.*\)$'`"
+ if expr "$LINK" : '/.*' > /dev/null; then
+ REALPATH="$LINK"
+ else
+ REALPATH="`dirname "$REALPATH"`""/$LINK"
+ fi
+ done
+ done
+
+ # Change ":" chars back to spaces.
+ REALPATH="`echo $REALPATH | sed -e 's;:; ;g'`"
+ SCRIPT="`echo $SCRIPT | sed -e 's;:; ;g'`"
+
+ if [ "$REALPATH" = "$SCRIPT" ]
+ then
+ CHANGED=""
+ else
+ SCRIPT="$REALPATH"
+ fi
+done
+
+# Change the current directory to the location of the script
+cd "`dirname \"$REALPATH\"`"
+REALDIR="`pwd`"
+# If the PIDDIR is relative, set its value relative to the full REALPATH to avoid problems if
+# the working directory is later changed.
+FIRST_CHAR="`echo $PIDDIR | cut -c1,1`"
+if [ "$FIRST_CHAR" != "/" ]
+then
+ PIDDIR="$REALDIR/$PIDDIR"
+fi
+# Same test for WRAPPER_CMD
+FIRST_CHAR="`echo $WRAPPER_CMD | cut -c1,1`"
+if [ "$FIRST_CHAR" != "/" ]
+then
+ WRAPPER_CMD="$REALDIR/$WRAPPER_CMD"
+fi
+# Same test for WRAPPER_CONF
+FIRST_CHAR="`echo $WRAPPER_CONF | cut -c1,1`"
+if [ "$FIRST_CHAR" != "/" ]
+then
+ WRAPPER_CONF="$REALDIR/$WRAPPER_CONF"
+fi
+
+# Process ID
+ANCHORFILE="$PIDDIR/$APP_NAME.anchor"
+PIDFILE="$PIDDIR/$APP_NAME.pid"
+LOCKDIR="$REALDIR"
+LOCKFILE="$LOCKDIR/$APP_NAME"
+pid=""
+
+# Resolve the os
+DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
+case "$DIST_OS" in
+ 'sunos')
+ DIST_OS="solaris"
+ ;;
+ 'hp-ux' | 'hp-ux64')
+ DIST_OS="hpux"
+ ;;
+ 'darwin' | 'oarwin')
+ DIST_OS="macosx"
+
+ #We use the 1.5 jvm if it exists
+ if [ -d /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/ ]
+ then
+ export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home"
+ fi
+ ;;
+ 'unix_sv')
+ DIST_OS="unixware"
+ ;;
+esac
+
+# Resolve the architecture
+DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
+case "$DIST_ARCH" in
+ 'amd64' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 'x86_64')
+ DIST_ARCH="x86"
+ ;;
+ 'ip27' | 'mips')
+ DIST_ARCH="mips"
+ ;;
+ 'power' | 'powerpc' | 'power_pc' | 'ppc64')
+ DIST_ARCH="ppc"
+ ;;
+ 'pa_risc' | 'pa-risc')
+ DIST_ARCH="parisc"
+ ;;
+ 'sun4u' | 'sparcv9')
+ DIST_ARCH="sparc"
+ ;;
+ '9000/800')
+ DIST_ARCH="parisc"
+ ;;
+esac
+
+# Check if we are running on 64bit platform, seems like a workaround for now...
+DIST_BIT=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
+case "$DIST_BIT" in
+ 'amd64' | 'ia64' | 'x86_64' | 'ppc64')
+ DIST_BIT="64"
+ ;;
+# 'pa_risc' | 'pa-risc') # Are some of these 64bit? Least not all...
+# BIT="64"
+# ;;
+ 'sun4u' | 'sparcv9') # Are all sparcs 64?
+ DIST_BIT="64"
+ ;;
+# '9000/800')
+# DIST_BIT="64"
+# ;;
+ *) # In any other case default to 32
+ DIST_BIT="32"
+ ;;
+esac
+
+# Decide on the wrapper binary to use.
+# 64bit wrapper by default on 64bit platforms, because
+# they might not have 32bit emulation libs installed.
+# For macosx, we also want to look for universal binaries.
+
+WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-$DIST_BIT"
+
+if [ -x "$WRAPPER_TEST_CMD" ]
+then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+else
+ if [ "$DIST_OS" = "macosx" ] # Some osx weirdness, someone please check that this still works
+ then
+ WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-$DIST_BIT"
+ if [ -x "$WRAPPER_TEST_CMD" ]
+ then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+ else
+ WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-$DIST_BIT"
+ if [ -x "$WRAPPER_TEST_CMD" ]
+ then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+ else
+ WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-$DIST_BIT"
+ if [ -x "$WRAPPER_TEST_CMD" ]
+ then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+ else
+ if [ ! -x "$WRAPPER_CMD" ]
+ then
+ echo "Unable to locate any of the following binaries:"
+ echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-$DIST_BIT"
+ echo " $WRAPPER_CMD-$DIST_OS-universal-$DIST_BIT"
+ echo " $WRAPPER_CMD"
+ #
+ # We need -Djava.net.preferIPv4Stack=true on FreeBSD, otherwise recent jvms thow an IllegalArgumentException when we create the socket
+ #
+ NO_WRAPPER="java -Djava.net.preferIPv4Stack=true -cp freenet-ext.jar:freenet.jar freenet.node.NodeStarter"
+ fi
+ fi
+ fi
+ fi
+ else
+ if [ ! -x "$WRAPPER_CMD" ]
+ then
+ echo "Unable to locate any of the following binaries:"
+ echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-$DIST_BIT"
+ echo " $WRAPPER_CMD"
+ NO_WRAPPER="java -cp freenet-ext.jar:freenet.jar freenet.node.NodeStarter"
+ fi
+ fi
+fi
+
+# Build the nice clause
+if [ "X$PRIORITY" = "X" ]
+then
+ CMDNICE=""
+else
+ CMDNICE="nice -$PRIORITY"
+fi
+
+# Build the anchor file clause.
+if [ "X$IGNORE_SIGNALS" = "X" ]
+then
+ ANCHORPROP=
+ IGNOREPROP=
+else
+ ANCHORPROP=wrapper.anchorfile=\"$ANCHORFILE\"
+ IGNOREPROP=wrapper.ignore_signals=TRUE
+fi
+
+# Build the lock file clause. Only create a lock file if the lock directory exists on this platform.
+if [ -d "$LOCKDIR" ]
+then
+ LOCKPROP=wrapper.lockfile=\"$LOCKFILE\"
+else
+ LOCKPROP=
+fi
+
+checkUser() {
+ # Check the configured user. If necessary rerun this script as the desired user.
+ if [ "X$RUN_AS_USER" != "X" ]
+ then
+ # Resolve the location of the 'id' command
+ IDEXE="/usr/xpg4/bin/id"
+ if [ ! -x $IDEXE ]
+ then
+ IDEXE="/usr/bin/id"
+ if [ ! -x $IDEXE ]
+ then
+ echo "Unable to locate 'id'."
+ echo "Please report this message along with the location of the command on your system."
+ exit 1
+ fi
+ fi
+
+ if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
+ then
+ # Already running as the configured user. Avoid password prompts by not calling su.
+ RUN_AS_USER=""
+ fi
+ fi
+ if [ "X$RUN_AS_USER" != "X" ]
+ then
+ # If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be
+ # able to create the lock file. The Wrapper will be able to update this file once it
+ # is created but will not be able to delete it on shutdown. If $2 is defined then
+ # the lock file should be created for the current command
+ if [ "X$LOCKPROP" != "X" ]
+ then
+ if [ "X$2" != "X" ]
+ then
+ # Resolve the primary group
+ RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1`
+ if [ "X$RUN_AS_GROUP" = "X" ]
+ then
+ RUN_AS_GROUP=$RUN_AS_USER
+ fi
+ touch "$LOCKFILE"
+ chown $RUN_AS_USER:$RUN_AS_GROUP "$LOCKFILE"
+ fi
+ fi
+
+ # Still want to change users, recurse. This means that the user will only be
+ # prompted for a password once.
+ su -m $RUN_AS_USER -c "$REALPATH $1"
+
+ # Now that we are the original user again, we may need to clean up the lock file.
+ if [ "X$LOCKPROP" != "X" ]
+ then
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ # Wrapper is not running so make sure the lock file is deleted.
+ if [ -f "$LOCKFILE" ]
+ then
+ rm "$LOCKFILE"
+ fi
+ fi
+ fi
+
+ exit 0
+ fi
+}
+
+getpid() {
+ if [ -f "$PIDFILE" ]
+ then
+ if [ -r "$PIDFILE" ]
+ then
+ pid="`cat \"$PIDFILE\"`"
+ if [ "X$pid" != "X" ]
+ then
+ # It is possible that 'a' process with the pid exists but that it is not the
+ # correct process. This can happen in a number of cases, but the most
+ # common is during system startup after an unclean shutdown.
+ # So make sure the process is one of "ours" -- that we can send
+ # a signal to it. (We don't use ps(1) because that's neither
+ # safe nor portable.
+ if ! kill -0 $pid 2>/dev/null
+ then
+ # This is a stale pid file.
+ rm -f "$PIDFILE"
+ echo "Removed stale pid file: $PIDFILE"
+ pid=""
+ fi
+ # Sometimes the pid exists and it's ours!
+ if ! test -f /proc/$pid/cwd/Freenet.pid
+ then
+ # This is a stale pid file.
+ rm -f "$PIDFILE"
+ echo "Removed stale pid file2: $PIDFILE"
+ pid=""
+
+ fi
+ fi
+ else
+ echo "Cannot read $PIDFILE."
+ exit 1
+ fi
+ fi
+}
+
+testpid() {
+ if ! kill -0 $pid 2>/dev/null
+ then
+ # Process is gone so remove the pid file.
+ rm -f "$PIDFILE"
+ pid=""
+ fi
+}
+
+console() {
+ echo "Running $APP_LONG_NAME..."
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $LDPROP $ANCHORPROP $LOCKPROP"
+ eval $COMMAND_LINE
+ else
+ echo "$APP_LONG_NAME is already running."
+ exit 1
+ fi
+}
+
+start() {
+ echo "Starting $APP_LONG_NAME..."
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ if [ "$NO_WRAPPER" ] # Check if we don't have usable wrapper, and run without it
+ then
+ echo ""
+ echo "Let's start the node without the wrapper, you'll have to daemonize it yourself."
+ eval $NO_WRAPPER
+ else # Otherwise use the wrapper
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $LDPROP wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
+ eval $COMMAND_LINE
+ fi
+ else
+ echo "$APP_LONG_NAME is already running."
+ exit 1
+ fi
+}
+
+stopit() {
+ echo "Stopping $APP_LONG_NAME..."
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ echo "$APP_LONG_NAME was not running."
+ else
+ if [ "X$IGNORE_SIGNALS" = "X" ]
+ then
+ # Running so try to stop it.
+ kill $pid
+ if [ $? -ne 0 ]
+ then
+ # An explanation for the failure should have been given
+ echo "Unable to stop $APP_LONG_NAME."
+ exit 1
+ fi
+ else
+ rm -f "$ANCHORFILE"
+ if [ -f "$ANCHORFILE" ]
+ then
+ # An explanation for the failure should have been given
+ echo "Unable to stop $APP_LONG_NAME."
+ exit 1
+ fi
+ fi
+
+ # We can not predict how long it will take for the wrapper to
+ # actually stop as it depends on settings in wrapper.conf.
+ # Loop until it does.
+ savepid=$pid
+ CNT=0
+ TOTCNT=0
+ while [ "X$pid" != "X" ]
+ do
+ # Show a waiting message every 5 seconds.
+ if [ "$CNT" -lt "5" ]
+ then
+ CNT=`expr $CNT + 1`
+ else
+ echo "Waiting for $APP_LONG_NAME to exit..."
+ CNT=0
+ fi
+ TOTCNT=`expr $TOTCNT + 1`
+
+ sleep 1
+
+ testpid
+ done
+
+ pid=$savepid
+ testpid
+ if [ "X$pid" != "X" ]
+ then
+ echo "Failed to stop $APP_LONG_NAME."
+ exit 1
+ else
+ echo "Stopped $APP_LONG_NAME."
+ fi
+ fi
+}
+
+status() {
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ echo "$APP_LONG_NAME is not running."
+ exit 1
+ else
+ echo "$APP_LONG_NAME is running ($pid)."
+ exit 0
+ fi
+}
+
+dump() {
+ echo "Dumping $APP_LONG_NAME..."
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ echo "$APP_LONG_NAME was not running."
+
+ else
+ kill -QUIT $pid
+
+ if [ $? -ne 0 ]
+ then
+ echo "Failed to dump $APP_LONG_NAME."
+ exit 1
+ else
+ echo "Dumped $APP_LONG_NAME."
+ fi
+ fi
+}
+
+case "$1" in
+
+ 'console')
+ checkUser $1 touchlock
+ console
+ ;;
+
+ 'start')
+ checkUser $1 touchlock
+ start
+ ;;
+
+ 'stop')
+ checkUser $1
+ stopit
+ ;;
+
+ 'restart')
+ checkUser $1 touchlock
+ stopit
+ start
+ ;;
+
+ 'status')
+ checkUser $1
+ status
+ ;;
+
+ 'dump')
+ checkUser $1
+ dump
+ ;;
+
+ *)
+ echo "Usage: $0 { console | start | stop | restart | status | dump }"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/net-p2p/freenet/freenet-0.7.5_p1475-r2.ebuild b/net-p2p/freenet/freenet-0.7.5_p1475-r2.ebuild
new file mode 100644
index 000000000000..46fb1bb9cdc3
--- /dev/null
+++ b/net-p2p/freenet/freenet-0.7.5_p1475-r2.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DATE=20150812
+JAVA_PKG_IUSE="doc source"
+
+inherit eutils java-pkg-2 java-ant-2 multilib systemd user
+
+DESCRIPTION="An encrypted network without censorship"
+HOMEPAGE="https://freenetproject.org/"
+SRC_URI="
+ https://github.com/${PN}/fred/archive/build0${PV#*p}.zip -> ${P}.zip
+ mirror://gentoo/seednodes-${DATE}.fref.bz2
+ mirror://gentoo/freenet-ant-1.7.1.jar"
+
+LICENSE="GPL-2+ GPL-2 MIT BSD-2 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="dev-java/bcprov:1.54
+ dev-java/commons-compress:0
+ dev-java/fec:0
+ dev-java/java-service-wrapper:0
+ dev-java/jbitcollider-core:0
+ dev-java/lzma:0
+ dev-java/lzmajio:0
+ dev-java/mersennetwister:0"
+
+DEPEND="
+ app-arch/unzip
+ >=virtual/jdk-1.7
+ ${CDEPEND}
+ test? (
+ dev-java/junit:0
+ dev-java/ant-junit:0
+ )
+ dev-java/ant-core:0"
+
+RDEPEND="
+ >=virtual/jre-1.7
+ net-libs/nativebiginteger:0
+ ${CDEPEND}"
+
+PDEPEND="net-libs/NativeThread:0"
+
+JAVA_PKG_BSFIX_NAME+=" build-clean.xml"
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+JAVA_ANT_CLASSPATH_TAGS+=" javadoc"
+JAVA_ANT_ENCODING="utf8"
+
+EANT_BUILD_TARGET="package"
+EANT_TEST_TARGET="unit"
+EANT_BUILD_XML="build-clean.xml"
+EANT_GENTOO_CLASSPATH="bcprov-1.54,commons-compress,fec,java-service-wrapper,jbitcollider-core,lzma,lzmajio,mersennetwister"
+EANT_EXTRA_ARGS="-Dsuppress.gjs=true -Dlib.contrib.present=true -Dlib.bouncycastle.present=true -Dlib.junit.present=true -Dtest.skip=true"
+
+S="${WORKDIR}/fred-build0${PV#*p}"
+
+RESTRICT="test" # they're broken in the last release.
+
+MY_PATCHES=(
+ "${FILESDIR}"/0.7.5_p1321-ext.patch
+ "${FILESDIR}/${PV}-remove-git.patch"
+)
+
+pkg_setup() {
+ has_version dev-java/icedtea[cacao] && {
+ ewarn "dev-java/icedtea was built with cacao USE flag."
+ ewarn "freenet may compile with it, but it will refuse to run."
+ ewarn "Please remerge dev-java/icedtea without cacao USE flag,"
+ ewarn "if you plan to use it for running freenet."
+ }
+ java-pkg-2_pkg_setup
+ enewgroup freenet
+ enewuser freenet -1 -1 /var/freenet freenet
+}
+
+src_unpack() {
+ unpack ${P}.zip seednodes-${DATE}.fref.bz2
+
+ # See 603362.
+ # mv "${WORKDIR}"/freenet-fred-* "${S}" || die
+}
+
+java_prepare() {
+ cp "${FILESDIR}"/freenet-0.7.5_p1474-wrapper.conf freenet-wrapper.conf || die
+ cp "${FILESDIR}"/run.sh-20090501 run.sh || die
+
+ epatch "${MY_PATCHES[@]}"
+
+ sed -i -e "s:=/usr/lib:=/usr/$(get_libdir):g" \
+ freenet-wrapper.conf || die "sed failed"
+
+ echo "wrapper.java.classpath.1=/usr/share/freenet/lib/freenet.jar" >> freenet-wrapper.conf || die
+
+ local i=2 pkg jars jar
+ local ifs_original=${IFS}
+ IFS=","
+ for pkg in ${EANT_GENTOO_CLASSPATH} ; do
+ jars="$(java-pkg_getjars ${pkg})"
+ for jar in ${jars} ; do
+ echo "wrapper.java.classpath.$((i++))=${jar}" >> freenet-wrapper.conf || die
+ done
+ done
+ IFS=${ifs_original}
+ echo "wrapper.java.classpath.$((i++))=/usr/share/freenet/lib/ant.jar" >> freenet-wrapper.conf || die
+
+ cp "${DISTDIR}"/freenet-ant-1.7.1.jar lib/ant.jar || die
+}
+
+EANT_TEST_EXTRA_ARGS="-Dtest.skip=false"
+
+src_test() {
+ java-pkg-2_src_test
+}
+
+src_install() {
+ java-pkg_dojar dist/freenet.jar
+ java-pkg_newjar "${DISTDIR}"/freenet-ant-1.7.1.jar ant.jar
+
+ if has_version =sys-apps/baselayout-2*; then
+ doinitd "${FILESDIR}"/freenet
+ else
+ newinitd "${FILESDIR}"/freenet.old freenet
+ fi
+
+ systemd_dounit "${FILESDIR}"/freenet.service
+
+ dodoc AUTHORS
+ newdoc README.md README
+ insinto /etc
+ doins freenet-wrapper.conf
+ insinto /var/freenet
+ doins run.sh
+ newins "${WORKDIR}"/seednodes-${DATE}.fref seednodes.fref
+ fperms +x /var/freenet/run.sh
+ dosym java-service-wrapper/libwrapper.so /usr/$(get_libdir)/libwrapper.so
+ use doc && java-pkg_dojavadoc javadoc
+ use source && java-pkg_dosrc src
+}
+
+pkg_postinst() {
+ elog " "
+ elog "1. Start freenet with /etc/init.d/freenet start."
+ elog "2. Open localhost:8888 in your browser for the web interface."
+ #workaround for previously existing freenet user
+ [[ $(stat --format="%U" /var/freenet) == "freenet" ]] || chown \
+ freenet:freenet /var/freenet
+}
+
+pkg_postrm() {
+ if ! [[ -e /usr/share/freenet/lib/freenet.jar ]] ; then
+ elog " "
+ elog "If you dont want to use freenet any more"
+ elog "and dont want to keep your identity/other stuff"
+ elog "remember to do 'rm -rf /var/freenet' to remove everything"
+ fi
+}
diff --git a/net-p2p/freenet/freenet-0.7.5_p1478-r1.ebuild b/net-p2p/freenet/freenet-0.7.5_p1478-r1.ebuild
new file mode 100644
index 000000000000..d37f8db162eb
--- /dev/null
+++ b/net-p2p/freenet/freenet-0.7.5_p1478-r1.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DATE=20160521
+JAVA_PKG_IUSE="doc source"
+
+inherit eutils java-pkg-2 java-ant-2 multilib systemd user
+
+DESCRIPTION="An encrypted network without censorship"
+HOMEPAGE="https://freenetproject.org/"
+SRC_URI="
+ https://github.com/${PN}/fred/archive/build0${PV#*p}.zip -> ${P}.zip
+ mirror://gentoo/seednodes-${DATE}.fref.bz2
+ mirror://gentoo/freenet-ant-1.7.1.jar"
+
+LICENSE="GPL-2+ GPL-2 MIT BSD-2 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="dev-java/bcprov:1.54
+ dev-java/commons-compress:0
+ dev-java/fec:0
+ dev-java/java-service-wrapper:0
+ dev-java/jbitcollider-core:0
+ dev-java/lzma:0
+ dev-java/lzmajio:0
+ dev-java/mersennetwister:0"
+
+DEPEND="
+ app-arch/unzip
+ >=virtual/jdk-1.7
+ ${CDEPEND}
+ test? (
+ dev-java/junit:0
+ dev-java/ant-junit:0
+ )
+ dev-java/ant-core:0"
+
+RDEPEND="
+ >=virtual/jre-1.7
+ net-libs/nativebiginteger:0
+ ${CDEPEND}"
+
+PDEPEND="net-libs/NativeThread:0"
+
+JAVA_PKG_BSFIX_NAME+=" build-clean.xml"
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+JAVA_ANT_CLASSPATH_TAGS+=" javadoc"
+JAVA_ANT_ENCODING="utf8"
+
+EANT_BUILD_TARGET="package"
+EANT_TEST_TARGET="unit"
+EANT_BUILD_XML="build-clean.xml"
+EANT_GENTOO_CLASSPATH="bcprov-1.54,commons-compress,fec,java-service-wrapper,jbitcollider-core,lzma,lzmajio,mersennetwister"
+EANT_EXTRA_ARGS="-Dsuppress.gjs=true -Dlib.contrib.present=true -Dlib.bouncycastle.present=true -Dlib.junit.present=true -Dtest.skip=true"
+
+S="${WORKDIR}/fred-build0${PV#*p}"
+
+RESTRICT="test" # they're broken in the last release.
+
+MY_PATCHES=(
+ "${FILESDIR}"/0.7.5_p1321-ext.patch
+ "${FILESDIR}/"0.7.5_p1475-remove-git.patch
+)
+
+pkg_setup() {
+ has_version dev-java/icedtea[cacao] && {
+ ewarn "dev-java/icedtea was built with cacao USE flag."
+ ewarn "freenet may compile with it, but it will refuse to run."
+ ewarn "Please remerge dev-java/icedtea without cacao USE flag,"
+ ewarn "if you plan to use it for running freenet."
+ }
+ java-pkg-2_pkg_setup
+ enewgroup freenet
+ enewuser freenet -1 -1 /var/freenet freenet
+}
+
+src_unpack() {
+ unpack ${P}.zip seednodes-${DATE}.fref.bz2
+}
+
+java_prepare() {
+ cp "${FILESDIR}"/freenet-0.7.5_p1474-wrapper.conf freenet-wrapper.conf || die
+ cp "${FILESDIR}"/run.sh-20090501 run.sh || die
+
+ epatch "${MY_PATCHES[@]}"
+
+ sed -i -e "s:=/usr/lib:=/usr/$(get_libdir):g" \
+ freenet-wrapper.conf || die "sed failed"
+
+ echo "wrapper.java.classpath.1=/usr/share/freenet/lib/freenet.jar" >> freenet-wrapper.conf || die
+
+ local i=2 pkg jars jar
+ local ifs_original=${IFS}
+ IFS=","
+ for pkg in ${EANT_GENTOO_CLASSPATH} ; do
+ jars="$(java-pkg_getjars ${pkg})"
+ for jar in ${jars} ; do
+ echo "wrapper.java.classpath.$((i++))=${jar}" >> freenet-wrapper.conf || die
+ done
+ done
+ IFS=${ifs_original}
+ echo "wrapper.java.classpath.$((i++))=/usr/share/freenet/lib/ant.jar" >> freenet-wrapper.conf || die
+
+ cp "${DISTDIR}"/freenet-ant-1.7.1.jar lib/ant.jar || die
+}
+
+EANT_TEST_EXTRA_ARGS="-Dtest.skip=false"
+
+src_test() {
+ java-pkg-2_src_test
+}
+
+src_install() {
+ java-pkg_dojar dist/freenet.jar
+ java-pkg_newjar "${DISTDIR}"/freenet-ant-1.7.1.jar ant.jar
+
+ if has_version =sys-apps/baselayout-2*; then
+ doinitd "${FILESDIR}"/freenet
+ else
+ newinitd "${FILESDIR}"/freenet.old freenet
+ fi
+
+ systemd_dounit "${FILESDIR}"/freenet.service
+
+ dodoc AUTHORS
+ newdoc README.md README
+ insinto /etc
+ doins freenet-wrapper.conf
+ insinto /var/freenet
+ doins run.sh
+ newins "${WORKDIR}"/seednodes-${DATE}.fref seednodes.fref
+ fperms +x /var/freenet/run.sh
+ dosym java-service-wrapper/libwrapper.so /usr/$(get_libdir)/libwrapper.so
+ use doc && java-pkg_dojavadoc javadoc
+ use source && java-pkg_dosrc src
+}
+
+pkg_postinst() {
+ elog " "
+ elog "1. Start freenet with /etc/init.d/freenet start."
+ elog "2. Open localhost:8888 in your browser for the web interface."
+ #workaround for previously existing freenet user
+ [[ $(stat --format="%U" /var/freenet) == "freenet" ]] || chown \
+ freenet:freenet /var/freenet
+}
+
+pkg_postrm() {
+ if ! [[ -e /usr/share/freenet/lib/freenet.jar ]] ; then
+ elog " "
+ elog "If you dont want to use freenet any more"
+ elog "and dont want to keep your identity/other stuff"
+ elog "remember to do 'rm -rf /var/freenet' to remove everything"
+ fi
+}
diff --git a/net-p2p/freenet/freenet-0.7.5_p1478.ebuild b/net-p2p/freenet/freenet-0.7.5_p1478.ebuild
new file mode 100644
index 000000000000..d37f8db162eb
--- /dev/null
+++ b/net-p2p/freenet/freenet-0.7.5_p1478.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DATE=20160521
+JAVA_PKG_IUSE="doc source"
+
+inherit eutils java-pkg-2 java-ant-2 multilib systemd user
+
+DESCRIPTION="An encrypted network without censorship"
+HOMEPAGE="https://freenetproject.org/"
+SRC_URI="
+ https://github.com/${PN}/fred/archive/build0${PV#*p}.zip -> ${P}.zip
+ mirror://gentoo/seednodes-${DATE}.fref.bz2
+ mirror://gentoo/freenet-ant-1.7.1.jar"
+
+LICENSE="GPL-2+ GPL-2 MIT BSD-2 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="dev-java/bcprov:1.54
+ dev-java/commons-compress:0
+ dev-java/fec:0
+ dev-java/java-service-wrapper:0
+ dev-java/jbitcollider-core:0
+ dev-java/lzma:0
+ dev-java/lzmajio:0
+ dev-java/mersennetwister:0"
+
+DEPEND="
+ app-arch/unzip
+ >=virtual/jdk-1.7
+ ${CDEPEND}
+ test? (
+ dev-java/junit:0
+ dev-java/ant-junit:0
+ )
+ dev-java/ant-core:0"
+
+RDEPEND="
+ >=virtual/jre-1.7
+ net-libs/nativebiginteger:0
+ ${CDEPEND}"
+
+PDEPEND="net-libs/NativeThread:0"
+
+JAVA_PKG_BSFIX_NAME+=" build-clean.xml"
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+JAVA_ANT_CLASSPATH_TAGS+=" javadoc"
+JAVA_ANT_ENCODING="utf8"
+
+EANT_BUILD_TARGET="package"
+EANT_TEST_TARGET="unit"
+EANT_BUILD_XML="build-clean.xml"
+EANT_GENTOO_CLASSPATH="bcprov-1.54,commons-compress,fec,java-service-wrapper,jbitcollider-core,lzma,lzmajio,mersennetwister"
+EANT_EXTRA_ARGS="-Dsuppress.gjs=true -Dlib.contrib.present=true -Dlib.bouncycastle.present=true -Dlib.junit.present=true -Dtest.skip=true"
+
+S="${WORKDIR}/fred-build0${PV#*p}"
+
+RESTRICT="test" # they're broken in the last release.
+
+MY_PATCHES=(
+ "${FILESDIR}"/0.7.5_p1321-ext.patch
+ "${FILESDIR}/"0.7.5_p1475-remove-git.patch
+)
+
+pkg_setup() {
+ has_version dev-java/icedtea[cacao] && {
+ ewarn "dev-java/icedtea was built with cacao USE flag."
+ ewarn "freenet may compile with it, but it will refuse to run."
+ ewarn "Please remerge dev-java/icedtea without cacao USE flag,"
+ ewarn "if you plan to use it for running freenet."
+ }
+ java-pkg-2_pkg_setup
+ enewgroup freenet
+ enewuser freenet -1 -1 /var/freenet freenet
+}
+
+src_unpack() {
+ unpack ${P}.zip seednodes-${DATE}.fref.bz2
+}
+
+java_prepare() {
+ cp "${FILESDIR}"/freenet-0.7.5_p1474-wrapper.conf freenet-wrapper.conf || die
+ cp "${FILESDIR}"/run.sh-20090501 run.sh || die
+
+ epatch "${MY_PATCHES[@]}"
+
+ sed -i -e "s:=/usr/lib:=/usr/$(get_libdir):g" \
+ freenet-wrapper.conf || die "sed failed"
+
+ echo "wrapper.java.classpath.1=/usr/share/freenet/lib/freenet.jar" >> freenet-wrapper.conf || die
+
+ local i=2 pkg jars jar
+ local ifs_original=${IFS}
+ IFS=","
+ for pkg in ${EANT_GENTOO_CLASSPATH} ; do
+ jars="$(java-pkg_getjars ${pkg})"
+ for jar in ${jars} ; do
+ echo "wrapper.java.classpath.$((i++))=${jar}" >> freenet-wrapper.conf || die
+ done
+ done
+ IFS=${ifs_original}
+ echo "wrapper.java.classpath.$((i++))=/usr/share/freenet/lib/ant.jar" >> freenet-wrapper.conf || die
+
+ cp "${DISTDIR}"/freenet-ant-1.7.1.jar lib/ant.jar || die
+}
+
+EANT_TEST_EXTRA_ARGS="-Dtest.skip=false"
+
+src_test() {
+ java-pkg-2_src_test
+}
+
+src_install() {
+ java-pkg_dojar dist/freenet.jar
+ java-pkg_newjar "${DISTDIR}"/freenet-ant-1.7.1.jar ant.jar
+
+ if has_version =sys-apps/baselayout-2*; then
+ doinitd "${FILESDIR}"/freenet
+ else
+ newinitd "${FILESDIR}"/freenet.old freenet
+ fi
+
+ systemd_dounit "${FILESDIR}"/freenet.service
+
+ dodoc AUTHORS
+ newdoc README.md README
+ insinto /etc
+ doins freenet-wrapper.conf
+ insinto /var/freenet
+ doins run.sh
+ newins "${WORKDIR}"/seednodes-${DATE}.fref seednodes.fref
+ fperms +x /var/freenet/run.sh
+ dosym java-service-wrapper/libwrapper.so /usr/$(get_libdir)/libwrapper.so
+ use doc && java-pkg_dojavadoc javadoc
+ use source && java-pkg_dosrc src
+}
+
+pkg_postinst() {
+ elog " "
+ elog "1. Start freenet with /etc/init.d/freenet start."
+ elog "2. Open localhost:8888 in your browser for the web interface."
+ #workaround for previously existing freenet user
+ [[ $(stat --format="%U" /var/freenet) == "freenet" ]] || chown \
+ freenet:freenet /var/freenet
+}
+
+pkg_postrm() {
+ if ! [[ -e /usr/share/freenet/lib/freenet.jar ]] ; then
+ elog " "
+ elog "If you dont want to use freenet any more"
+ elog "and dont want to keep your identity/other stuff"
+ elog "remember to do 'rm -rf /var/freenet' to remove everything"
+ fi
+}
diff --git a/net-p2p/freenet/metadata.xml b/net-p2p/freenet/metadata.xml
new file mode 100644
index 000000000000..fd6ed7a988a6
--- /dev/null
+++ b/net-p2p/freenet/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>tommy@gentoo.org</email>
+ <name>Thomas Sachau (Tommy[D])</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">freenet/fred</remote-id>
+ </upstream>
+</pkgmetadata>