summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-p2p/freenet/Manifest11
-rw-r--r--net-p2p/freenet/files/ext.patch53
-rw-r--r--net-p2p/freenet/files/freenet18
-rw-r--r--net-p2p/freenet/files/freenet.old18
-rw-r--r--net-p2p/freenet/files/run.sh-20090501585
-rw-r--r--net-p2p/freenet/files/strip-openjdk-check.patch46
-rw-r--r--net-p2p/freenet/files/strip-version-check.patch12
-rw-r--r--net-p2p/freenet/files/wrapper1.conf60
-rw-r--r--net-p2p/freenet/freenet-0.7.5_p1280.ebuild101
-rw-r--r--net-p2p/freenet/metadata.xml13
10 files changed, 917 insertions, 0 deletions
diff --git a/net-p2p/freenet/Manifest b/net-p2p/freenet/Manifest
new file mode 100644
index 0000000..aec367b
--- /dev/null
+++ b/net-p2p/freenet/Manifest
@@ -0,0 +1,11 @@
+AUX ext.patch 2053 RMD160 afa68b9e7635930a8673e0a4e802987d5ac74fde SHA1 00c94df2b753adc8560573181a5b6042a00b615d SHA256 78a1143dd9281fd25a4a6b34b60f60a2e2e274a7f3d23b115a36b5820543fb5d
+AUX freenet 476 RMD160 fdce44749587d73cb3f5b916e893e3bb95ef3200 SHA1 48eb8bfbd27a17b0bb3b29248ce4c43b59a76bda SHA256 4a8482117a434e9885438b7ca5384851bff49fefa28b13e33494a746c781342f
+AUX freenet.old 452 RMD160 e9e834fedf4270c14f3e8d754c58eb05f3f570c5 SHA1 edb5d0ab062d46f494db88560885d7ee7b026e29 SHA256 b3047b40128bbd7843dc370ab0aa150a9836ed789f48181bd6d8fc72f1714fa6
+AUX run.sh-20090501 16217 RMD160 f8b03990d011e1f149ec43aa536fd7540a19f01a SHA1 123fb5cf1c9b50357156fa300c5015a7e0ca65ad SHA256 470aa99d083a16d2f620282502a59546611f1903e21aef50b93b10d9fada7d7a
+AUX strip-openjdk-check.patch 2332 RMD160 92d35cc304c4dbf6747d12e97d318014e9ad4b49 SHA1 f3d70414f13dbc5d3fcd832d2796e1ec56a60b33 SHA256 450f21664ad64f92051c04bd5a9bf4095ed04cc0e24cd436c23c578cf2022821
+AUX strip-version-check.patch 349 RMD160 579ddfdf6549263e7ec2b9190eff6d08d6a2d5c4 SHA1 58e7422d180e4f443d415ec424646933eceeceb8 SHA256 35a33e5c52288505eefca96a6fbb98ae725d6fbefb727e73e513a1356b5cbfef
+AUX wrapper1.conf 2396 RMD160 e029cb5feaf98a03234a061362c0989207fdfd23 SHA1 9b882dc0d366b946596bdecb1b1d45c1e221e4e0 SHA256 52e5e283ac4c43d78feecf1edf5ccb38e5505c89624769976fcbf4ac2c8a1572
+DIST freenet-0.7.5_p1280.zip 3568844 RMD160 660b7d3cda7c0491914a8f8a131a38197cdd9e78 SHA1 82731fd26af76141a3184c44747490e062f6e36a SHA256 beae027906d0b38570e784607a3d9d77d89648e09d568cf1b86120aa59dfd69b
+DIST seednodes-20100701.fref 22311 RMD160 e80cd82b443b45c00998c0e87bfe6e485686419a SHA1 024bc22dacfe336fafef1b9fafadeaec7c976491 SHA256 1264cad055f597583cf7f5f14cdaafd392c5543d45cfff2c450c1fd551da3105
+EBUILD freenet-0.7.5_p1280.ebuild 3149 RMD160 e439a2ecc92100962bf993ad9e32f376d0e2367d SHA1 f429748a941b58f9dd44bc9a81b349437e6ee244 SHA256 19a4e87c8ce9139ee0a5f9cd07f8548b0dc3cc2e5802e4a23b466eda18bbf78c
+MISC metadata.xml 332 RMD160 692365bdee16dc9218a18a306e5b15a4b2684206 SHA1 6f1d02202549206e3c5856c9a5a99b334015f7c9 SHA256 869705ebd157480153ca5ddbf7c48426b4374a8cba10164a1f1582fde5afa3a3
diff --git a/net-p2p/freenet/files/ext.patch b/net-p2p/freenet/files/ext.patch
new file mode 100644
index 0000000..60730f9
--- /dev/null
+++ b/net-p2p/freenet/files/ext.patch
@@ -0,0 +1,53 @@
+--- src/freenet-old/node/NodeStarter.java 2010-05-10 21:19:25.000000000 +0200
++++ src/freenet/node/NodeStarter.java 2010-05-10 21:35:30.000000000 +0200
+@@ -168,37 +168,8 @@
+ }
+
+ private void getExtBuild() {
+- try {
+- extBuildNumber = ExtVersion.buildNumber;
+- extRevisionNumber = ExtVersion.cvsRevision;
+- String builtWithMessage = "freenet.jar built with freenet-ext.jar Build #" + extBuildNumber + " r" + extRevisionNumber;
+- Logger.normal(this, builtWithMessage);
+- System.out.println(builtWithMessage);
+- extBuildNumber = ExtVersion.buildNumber();
+- if(extBuildNumber == -42) {
+- extBuildNumber = ExtVersion.extBuildNumber();
+- extRevisionNumber = ExtVersion.extRevisionNumber();
+- }
+- if(extBuildNumber == 0) {
+- String buildMessage = "extBuildNumber is 0; perhaps your freenet-ext.jar file is corrupted?";
+- Logger.error(this, buildMessage);
+- System.err.println(buildMessage);
+- extBuildNumber = -1;
+- }
+- if(extRevisionNumber == null) {
+- String revisionMessage = "extRevisionNumber is null; perhaps your freenet-ext.jar file is corrupted?";
+- Logger.error(this, revisionMessage);
+- System.err.println(revisionMessage);
+- extRevisionNumber = "INVALID";
+- }
+- } catch(Throwable t) {
+- // Compatibility code ... will be removed
+- Logger.error(this, "Unable to get the version of your freenet-ext file : it's probably corrupted!");
+- System.err.println("Unable to get the version of your freenet-ext file : it's probably corrupted!");
+- System.err.println(t.getMessage());
+- extRevisionNumber = "INVALID";
+- extBuildNumber = -1;
+- }
++ extRevisionNumber = "";
++ extBuildNumber = RECOMMENDED_EXT_BUILD_NUMBER;
+ }
+
+ /**
+--- build.xml 2010-05-10 21:38:15.000000000 +0200
++++ build.xml.new 2010-05-10 21:43:29.000000000 +0200
+@@ -124,7 +124,7 @@
+ </condition>
+ <!-- ================================================== -->
+
+- <target name="compile" depends="get-extjar, generate-js">
++ <target name="compile" depends="mkdir">
+ <!-- Create the time stamp -->
+ <tstamp/>
+
diff --git a/net-p2p/freenet/files/freenet b/net-p2p/freenet/files/freenet
new file mode 100644
index 0000000..f276ee4
--- /dev/null
+++ b/net-p2p/freenet/files/freenet
@@ -0,0 +1,18 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+start() {
+ start-stop-daemon --start --chuid freenet --exec /bin/sh /var/freenet/run.sh start 2>/dev/null
+ eend 0
+}
+
+status() {
+ start-stop-daemon --start --chuid freenet --exec /bin/sh /var/freenet/run.sh status 2>/dev/null
+ eend 0
+}
+
+stop() {
+ start-stop-daemon --start --chuid freenet --exec /bin/sh /var/freenet/run.sh stop 2>/dev/null
+ eend 0
+}
diff --git a/net-p2p/freenet/files/freenet.old b/net-p2p/freenet/files/freenet.old
new file mode 100644
index 0000000..d0df97e
--- /dev/null
+++ b/net-p2p/freenet/files/freenet.old
@@ -0,0 +1,18 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+start() {
+ start-stop-daemon --start --chuid freenet --exec /var/freenet/run.sh start 2>/dev/null
+ eend 0
+}
+
+status() {
+ start-stop-daemon --start --chuid freenet --exec /var/freenet/run.sh status 2>/dev/null
+ eend 0
+}
+
+stop() {
+ start-stop-daemon --start --chuid freenet --exec /var/freenet/run.sh stop 2>/dev/null
+ eend 0
+}
diff --git a/net-p2p/freenet/files/run.sh-20090501 b/net-p2p/freenet/files/run.sh-20090501
new file mode 100644
index 0000000..3f9723f
--- /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/files/strip-openjdk-check.patch b/net-p2p/freenet/files/strip-openjdk-check.patch
new file mode 100644
index 0000000..08e0015
--- /dev/null
+++ b/net-p2p/freenet/files/strip-openjdk-check.patch
@@ -0,0 +1,46 @@
+--- src/freenet/node/Node.java 2010-07-17 02:53:39.633185065 +0200
++++ src/freenet/node/Node.java.new 2010-07-17 02:58:31.246061950 +0200
+@@ -3726,43 +3726,6 @@
+
+ boolean isOpenJDK = false;
+
+- if(jvmName.startsWith("OpenJDK ")) {
+- isOpenJDK = true;
+- if(javaVersion.startsWith("1.6.0")) {
+- String subverString;
+- if(jvmVersion.startsWith("14.0-b"))
+- subverString = jvmVersion.substring("14.0-b".length());
+- else if(jvmVersion.startsWith("1.6.0_0-b"))
+- subverString = jvmVersion.substring("1.6.0_0-b".length());
+- else
+- subverString = null;
+- if(subverString != null) {
+- int subver;
+- try {
+- subver = Integer.parseInt(subverString);
+- } catch (NumberFormatException e) {
+- subver = -1;
+- }
+- if(subver > -1 && subver < 15) {
+- File javaDir = new File(System.getProperty("java.home"));
+-
+- // Assume that if the java home dir has been updated since August 11th, we have the fix.
+-
+- final Calendar _cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+- _cal.set(2009, Calendar.AUGUST, 11, 0, 0, 0);
+- if(javaDir.exists() && javaDir.isDirectory() && javaDir.lastModified() > _cal.getTimeInMillis()) {
+- System.err.println("Your Java appears to have been updated, we probably do not have the XML bug (http://www.cert.fi/en/reports/2009/vulnerability2009085.html).");
+- } else {
+- System.err.println("Old version of OpenJDK detected. It is possible that your Java may be vulnerable to a remote code execution vulnerability. Please update your operating system ASAP. We will not disable plugins because we cannot be sure whether there is a problem.");
+- System.err.println("See here: http://www.cert.fi/en/reports/2009/vulnerability2009085.html");
+- clientCore.alerts.register(new SimpleUserAlert(false, l10n("openJDKMightBeVulnerableXML"), l10n("openJDKMightBeVulnerableXML"), l10n("openJDKMightBeVulnerableXML"), UserAlert.ERROR));
+- }
+-
+- }
+- }
+- }
+- }
+-
+ if(logMINOR) Logger.minor(this, "JVM vendor: "+jvmVendor+", JVM name: "+jvmName+", JVM version: "+javaVersion+", OS name: "+osName+", OS version: "+osVersion);
+
+ if((!isOpenJDK) && (jvmVendor.startsWith("Sun ") || (jvmVendor.startsWith("The FreeBSD Foundation") && jvmSpecVendor.startsWith("Sun ")) || (jvmVendor.startsWith("Apple ")))) {
diff --git a/net-p2p/freenet/files/strip-version-check.patch b/net-p2p/freenet/files/strip-version-check.patch
new file mode 100644
index 0000000..b009906
--- /dev/null
+++ b/net-p2p/freenet/files/strip-version-check.patch
@@ -0,0 +1,12 @@
+--- src/freenet/node/Node.java 2009-08-09 23:26:38.000000000 +0200
++++ src/freenet/node/Node.java.neu 2009-08-10 01:00:51.000000000 +0200
+@@ -3554,9 +3554,6 @@
+
+ if(is150 && subver < 10)
+ spuriousOOMs = true;
+-
+- if(is150 && subver < 20 || is160 && subver < 15)
+- xmlRemoteCodeExec = true;
+ }
+
+ if(spuriousOOMs) {
diff --git a/net-p2p/freenet/files/wrapper1.conf b/net-p2p/freenet/files/wrapper1.conf
new file mode 100644
index 0000000..2747442
--- /dev/null
+++ b/net-p2p/freenet/files/wrapper1.conf
@@ -0,0 +1,60 @@
+wrapper.java.command=java
+wrapper.working.dir=/var/freenet/
+wrapper.java.mainclass=freenet.node.NodeStarter
+wrapper.java.classpath.1=/usr/share/freenet/lib/freenet.jar
+wrapper.java.classpath.2=/usr/share/java-service-wrapper/lib/wrapper.jar
+wrapper.java.classpath.3=/usr/share/db-je-3.3/lib/je.jar
+wrapper.java.classpath.4=/usr/share/fec/lib/fec.jar
+wrapper.java.classpath.5=/usr/share/ant-core/lib/ant.jar
+wrapper.java.classpath.6=/usr/share/lzma/lib/lzma.jar
+wrapper.java.classpath.7=/usr/share/lzmajio/lib/lzmajio.jar
+wrapper.java.classpath.8=/usr/share/mersennetwister/lib/mersennetwister.jar
+wrapper.java.classpath.9=/usr/share/db4o-jdk5/lib/db4o-jdk5.jar
+wrapper.java.classpath.10=/usr/share/db4o-jdk12/lib/db4o-jdk12.jar
+wrapper.java.classpath.11=/usr/share/db4o-jdk11/lib/db4o-jdk11.jar
+wrapper.java.library.path.1=/usr/lib
+wrapper.java.initmemory=60
+wrapper.java.maxmemory=192
+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 to very high numbers (>>1G)
+#wrapper.java.additional.4=-XX:MaxPermSize=256M
+
+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
+
+# Name of the service
+wrapper.ntservice.name=freenet-darknet
+
+# Display name of the service
+wrapper.ntservice.displayname=Freenet 0.7 darknet
+
+# Description of the service
+wrapper.ntservice.description=The Free Network Project daemon
+
+# Service dependencies. Add dependencies as needed starting from 1
+wrapper.ntservice.dependency.1=
+
+# Mode in which the service is installed. AUTO_START or DEMAND_START
+wrapper.ntservice.starttype=AUTO_START
+
+# Allow the service to interact with the desktop.
+wrapper.ntservice.interactive=false
+
+wrapper.ntservice.process_priority=BELOW_NORMAL
+
+# Start services with a different user than SYSTEM
+# SEE http://wrapper.tanukisoftware.org/doc/english/prop-ntservice-account.html BEFORE PROCEEDING !
diff --git a/net-p2p/freenet/freenet-0.7.5_p1280.ebuild b/net-p2p/freenet/freenet-0.7.5_p1280.ebuild
new file mode 100644
index 0000000..5736b5b
--- /dev/null
+++ b/net-p2p/freenet/freenet-0.7.5_p1280.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-p2p/freenet/freenet-0.7.5_p1277.ebuild,v 1.1 2010/09/13 17:48:04 tommy Exp $
+
+EAPI="2"
+DATE=20100701
+
+inherit eutils java-pkg-2 java-ant-2 multilib
+
+DESCRIPTION="An encrypted network without censorship"
+HOMEPAGE="http://www.freenetproject.org/"
+SRC_URI="http://github.com/${PN}/fred-official/zipball/build0${PV#*p} -> ${P}.zip
+ mirror://gentoo/seednodes-${DATE}.fref"
+
+LICENSE="as-is GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="freemail"
+
+CDEPEND="dev-db/db-je:3.3
+ dev-java/fec
+ dev-java/java-service-wrapper
+ dev-java/db4o-jdk11
+ dev-java/db4o-jdk12
+ dev-java/db4o-jdk5
+ =dev-java/ant-core-1.7*
+ dev-java/lzma
+ dev-java/lzmajio
+ dev-java/mersennetwister"
+#force secure versions for now
+DEPEND="app-arch/unzip
+ >=virtual/jdk-1.5
+ ${CDEPEND}"
+RDEPEND=">=virtual/jre-1.5
+ net-libs/nativebiginteger
+ ${CDEPEND}"
+PDEPEND="net-libs/NativeThread
+ freemail? ( dev-java/bcprov )"
+
+EANT_BUILD_TARGET="dist"
+EANT_GENTOO_CLASSPATH="ant-core db4o-jdk5 db4o-jdk12 db4o-jdk11 db-je-3.3 fec java-service-wrapper lzma lzmajio mersennetwister"
+
+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_prepare() {
+ mv "${WORKDIR}"/freenet-fred-official-* "${S}"
+ cd "${S}"
+ cp "${FILESDIR}"/wrapper1.conf freenet-wrapper.conf || die
+ cp "${FILESDIR}"/run.sh-20090501 run.sh || die
+ epatch "${FILESDIR}"/ext.patch
+ epatch "${FILESDIR}"/strip-openjdk-check.patch
+ sed -i -e "s:=/usr/lib:=/usr/$(get_libdir):g" freenet-wrapper.conf || die "sed failed"
+ use freemail && echo "wrapper.java.classpath.12=/usr/share/bcprov/lib/bcprov.jar" >> freenet-wrapper.conf
+ java-ant_rewrite-classpath
+ java-pkg-2_src_prepare
+}
+
+src_install() {
+ java-pkg_newjar lib/freenet-cvs-snapshot.jar ${PN}.jar
+ if has_version =sys-apps/baselayout-2*; then
+ doinitd "${FILESDIR}"/freenet
+ else
+ newinitd "${FILESDIR}"/freenet.old freenet
+ fi
+ dodoc AUTHORS README || die
+ insinto /etc
+ doins freenet-wrapper.conf || die
+ insinto /var/freenet
+ doins run.sh || die
+ newins "${DISTDIR}"/seednodes-${DATE}.fref seednodes.fref || die
+ fperms +x /var/freenet/run.sh
+ dosym java-service-wrapper/libwrapper.so /usr/$(get_libdir)/libwrapper.so
+}
+
+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 0000000..70a98ca
--- /dev/null
+++ b/net-p2p/freenet/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tommy@gentoo.org</email>
+ <name>Thomas Sachau (Tommy[D])</name>
+ </maintainer>
+ <herd>no-herd</herd>
+ <use>
+ <flag name='freemail'>Add Freemail support</flag>
+ </use>
+</pkgmetadata>
+