Date: Mon, 16 Jul 2007 02:52:39 GMT From: Nicolas Gieczewski <nicolas@nixsoftware.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/114611: [NEW PORT] net-p2p/freenet05: An anonymous censorship-resistant peer-to-peer network Message-ID: <200707160252.l6G2qdMT073757@www.freebsd.org> Resent-Message-ID: <200707160300.l6G30BC3049556@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 114611 >Category: ports >Synopsis: [NEW PORT] net-p2p/freenet05: An anonymous censorship-resistant peer-to-peer network >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Jul 16 03:00:11 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Nicolas Gieczewski >Release: FreeBSD 6.2-STABLE >Organization: >Environment: FreeBSD aspen.veggy.org 6.2-STABLE FreeBSD 6.2-STABLE #0: Sun May 27 20:29:10 ART 2007 root@aspen.veggy.org:/usr/obj/usr/src/sys/ASPEN i386 >Description: Freenet is a decentralized censorship-resistant peer-to-peer distributed data store aiming to provide electronic freedom of speech through strong anonymity. Freenet works by pooling the contributed bandwidth and storage space of member computers to allow users to anonymously publish or retrieve various kinds of content. This is the legacy, stable 0.5 branch of Freenet. WWW: http://freenetproject.org/ >How-To-Repeat: >Fix: Patch attached with submission follows: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # freenet05 # freenet05/distinfo # freenet05/pkg-descr # freenet05/Makefile # freenet05/pkg-message # freenet05/files # freenet05/files/wrapper.in # freenet05/files/freenet.in # echo c - freenet05 mkdir -p freenet05 > /dev/null 2>&1 echo x - freenet05/distinfo sed 's/^X//' >freenet05/distinfo << 'END-of-freenet05/distinfo' XMD5 (freenet-20070514.tgz) = 2fbe15b03f20350d15f82d347cf6720c XSHA256 (freenet-20070514.tgz) = 40f81c71ff742e1d59db03e5bbf0df833e25e2736a63e0d0854b6c70cc856b35 XSIZE (freenet-20070514.tgz) = 12534272 END-of-freenet05/distinfo echo x - freenet05/pkg-descr sed 's/^X//' >freenet05/pkg-descr << 'END-of-freenet05/pkg-descr' XFreenet is a decentralized censorship-resistant peer-to-peer Xdistributed data store aiming to provide electronic freedom of Xspeech through strong anonymity. Freenet works by pooling the Xcontributed bandwidth and storage space of member computers to Xallow users to anonymously publish or retrieve various kinds Xof content. X XThis is the legacy, stable 0.5 branch of Freenet. X XWWW: http://freenetproject.org/ END-of-freenet05/pkg-descr echo x - freenet05/Makefile sed 's/^X//' >freenet05/Makefile << 'END-of-freenet05/Makefile' X# New ports collection makefile for: freenet05 X# Date created: 15 July 2007 X# Whom: Nicolas Gieczewski <nicolas@nixsoftware.com> X# X# $FreeBSD$ X# X XPORTNAME= freenet XPORTVERSION= 0.5.2.1.5107 XCATEGORIES= net-p2p security java XMASTER_SITES= http://freebsd.blazis.com/ports/freenet05/ XDISTNAME= ${PORTNAME}-20070514 XEXTRACT_SUFX= .tgz X XMAINTAINER= nicolas@nixsoftware.com XCOMMENT= An anonymous censorship-resistant peer-to-peer network X XLATEST_LINK= freenet05 XNO_BUILD= yes X XUSE_RC_SUBR= freenet XUSE_JAVA= yes XJAVA_VERSION= 1.4+ XJAVAVM= ${LOCALBASE}/bin/java X XDATA_FILES= seednodes.ref XDOC_FILES= README XJAR_FILES= freenet.jar freenet-ext.jar XJAR_START= freenet.jar XSEED_FILE= seednodes.ref X XPLIST_FILES= sbin/${PORTNAME:L} \ X %%JAVAJARDIR%%/freenet.jar \ X %%JAVAJARDIR%%/freenet-ext.jar \ X %%DATADIR%%/seednodes.ref XPLIST_DIRS= %%DATADIR%% X XPORTDOCS= ${DOC_FILES} X Xpost-patch: X @${SED} -e "s|%%PREFIX%%|${PREFIX}|; \ X s|%%DATA_DIR%%|${DATADIR:S,^${PREFIX}/,,}|; \ X s|%%JAVA_VERSION%%|${JAVA_VERSION}|; \ X s|%%JAVAVM%%|${JAVAVM}|; \ X s|%%JAVAJARDIR%%|${JAVAJARDIR:S,^${PREFIX}/,,}|; \ X s|%%JAR_FILES%%|${JAR_FILES}|; \ X s|%%JAR_START%%|${JAR_START}|; \ X s|%%SEED_FILE%%|${SEED_FILE}|" \ X ${FILESDIR}/wrapper.in > ${WRKDIR}/wrapper X Xdo-install: X# docs X.ifndef(NOPORTDOCS) X @${MKDIR} ${DOCSDIR} X.for doc in ${DOC_FILES} X @${INSTALL_DATA} ${WRKSRC}/${doc} ${DOCSDIR} X.endfor X.endif X# data X @${MKDIR} ${DATADIR} X.for data_file in ${DATA_FILES} X @${INSTALL_DATA} ${WRKSRC}/${data_file} ${DATADIR} X.endfor X# jar X.for jar in ${JAR_FILES} X @${INSTALL_DATA} ${WRKSRC}/${jar} ${JAVAJARDIR} X.endfor X# wrapper X @${INSTALL_SCRIPT} ${WRKDIR}/wrapper ${PREFIX}/sbin/${PORTNAME:L} X Xpost-install: X @${SED} "s|%%PREFIX%%|${PREFIX}|; \ X s|%%ETC%%|/etc|g" < pkg-message X X.include <bsd.port.mk> END-of-freenet05/Makefile echo x - freenet05/pkg-message sed 's/^X//' >freenet05/pkg-message << 'END-of-freenet05/pkg-message' X==================================================================== X XRESTRICTIONS X X This program uses heavy encryption algorithms. If your country X has restrictions against encryption, you should check with legal X authorities before using it. X XHOW TO START X X Add the following lines to %%ETC%%/rc.conf or %%ETC%%/rc.conf.local: X X freenet_enable (bool): Set to "YES" to run freenet at startup. X freenet_user (string): Set to the name of a non-root user. X X Next, run: X X %%PREFIX%%/etc/rc.d/freenet start X XHOW TO USE X X Point your Web browser to http://127.0.0.1:8888/ to access the X Freenet Web Interface. This page serves as a gateway to Freenet. X Try clicking the various links in the "Bookmarks" panel to reach X some of the popular freesites. X X Note that Freenet will be quite slow and fail to load most sites X at first. You should leave your node running for a few hours X (preferably a couple of days) so that it can find enough peers X and integrate well with the network. X XNEXT STEPS X X Please refer to %%PREFIX%%/share/doc/freenet/README and X http://freenetproject.org/ for further information. X X==================================================================== END-of-freenet05/pkg-message echo c - freenet05/files mkdir -p freenet05/files > /dev/null 2>&1 echo x - freenet05/files/wrapper.in sed 's/^X//' >freenet05/files/wrapper.in << 'END-of-freenet05/files/wrapper.in' X#!/bin/sh X# X# Under a BSDL license. Copyright by Mario S F Ferreira <lioux@FreeBSD.org> X# $FreeBSD$ X Xexport JAVA_VERSION X XPREFIX="%%PREFIX%%" X# java XJAVA_VERSION="%%JAVA_VERSION%%" XJAVAVM_CALL="%%JAVAVM%%" XJAVAJARDIR="%%JAVAJARDIR%%" XJAR_FILES="%%JAR_FILES%%" XJAR_START="%%JAR_START%%" X# data XDATA_DIR="%%DATA_DIR%%" XSEED_FILE=seednodes.ref X# home XHOME_DIR=${HOME}/.freenet XCONFIG_FILE=freenet.conf X Xconfigure_freenet () { X echo "Configuring Freenet node" X cd ${HOME_DIR} && X ${JAVAVM_CALL} -jar ./${JAR_START} freenet.node.Main --config "${@}" X} X Xconfigure_java_classpath () { X if [ -z "${CLASSPATH}" ]; then X CLASSPATH=./freenet.jar:./freenet-ext.jar X else X CLASSPATH=./freenet.jar:./freenet-ext.jar:${CLASSPATH} X fi X} X Xdisplay_usage () { X echo "Usage: ${0} [-h] [-c] [-i|-o]" X echo 'Options:' X echo ' -h Display this help message' X echo ' -c Configure Freenet node' X echo ' -i Start a Freenet node' X echo ' -o Stop a Freenet node' X echo '' X} X Xprepare_configure_freenet () { X # do we have a config file? X if [ ! -f ${HOME_DIR}/${CONFIG_FILE} ]; then X # add basic information prior to configuration X echo > ${HOME_DIR}/${CONFIG_FILE} X X # select listenPort randomly X if [ -n "${RANDOM}" ] X then X DEFLP=$((${RANDOM}%30000+2000)) X else X echo "No random in shell, enter a FNP port number + <ENTER>" X read DEFLP X fi X echo "listenPort=${DEFLP}" >> ${HOME_DIR}/${CONFIG_FILE} X X # point to seednodes file X echo 'seedNodes=seednodes.ref' >> ${HOME_DIR}/${CONFIG_FILE} X X # tell Freenet to request configuration procedure X CONFIGURE=yes X fi X} X Xprepare_home_dir () { X # create home dir staging area X if [ ! -d ${HOME_DIR} ] X then X mkdir -p ${HOME_DIR} X fi X # copy a seed file if none exists X if [ ! -f ${HOME_DIR}/${SEED_FILE} ] X then X rm -f ${HOME_DIR}/${SEED_FILE} X cp -f ${PREFIX}/${DATA_DIR}/${SEED_FILE} ${HOME_DIR}/${SEED_FILE} X # avoid unnecessary reseeding X touch -t "197001011200" ${HOME_DIR}/${SEED_FILE} X fi X # link the jar files X for jar in ${JAR_FILES} X do X ln -sf ${PREFIX}/${JAVAJARDIR}/${jar} ${HOME_DIR}/${jar} X done X} X Xstart_freenet () { X echo "Starting Freenet node" X cd ${HOME_DIR} && \ X nice -10 ${JAVAVM_CALL} -jar ./${JAR_START} "${@}" \ X >/dev/null 2>/dev/null & X echo $! > ${HOME_DIR}/freenet.pid X exit 0 X} X Xstop_freenet () { X if [ -f ${HOME_DIR}/freenet.pid ]; then X echo "Stopping Freenet node" X cd ${HOME_DIR} && X exec kill `cat freenet.pid` & X else X echo "Cannot find Freenet node" X echo "Where is the ${HOME_DIR}/freenet.pid file?" X fi X} X X# we require at least one command line parameter Xif [ $# -lt 1 ]; then X display_usage X exit 1 Xfi X X# parse command line parameters Xwhile getopts "chio" COMMAND_LINE_ARGUMENT ; do X case "${COMMAND_LINE_ARGUMENT}" in X c) X CONFIGURE=yes X ;; X h) X display_usage X exit 0 X ;; X i) X START=yes X unset STOP X ;; X o) X STOP=yes X unset START X ;; X *) X display_usage X exit 1 X ;; X esac Xdone X X# always verify that home dir staging area is pristine Xprepare_home_dir X X# check for proper configuration Xprepare_configure_freenet X X# prepare java CLASSPATH Xconfigure_java_classpath X Xif [ -n "${CONFIGURE}" ]; then X configure_freenet Xfi X Xif [ -n "${START}" ]; then X start_freenet Xfi X Xif [ -n "${STOP}" ]; then X stop_freenet Xfi X X# we should never get this far Xexit 1 END-of-freenet05/files/wrapper.in echo x - freenet05/files/freenet.in sed 's/^X//' >freenet05/files/freenet.in << 'END-of-freenet05/files/freenet.in' X#!/bin/sh X# X# $FreeBSD$ X# X# Under a BSDL license. Copyright 2005 Mario S F Ferreira <lioux@FreeBSD.org> X# X# PROVIDE: freenet X# REQUIRE: LOGIN X# KEYWORD: shutdown X# X# Add the following lines to /etc/rc.conf or /etc/rc.conf.local to enable X# this service: X# X# freenet_enable (bool): Set to "YES" to enable freenet. X# Defaults to "NO". X# freenet_user (string): Set to the name of a non-root user. X# Defaults to "". X# X X. %%RC_SUBR%% X Xname="freenet" Xrcvar=`set_rcvar` Xcommand="%%PREFIX%%/sbin/${name}" Xextra_commands="configure" X Xfreenet_check_vars() X{ X if [ -z "${freenet_user}" ]; then X freenet_user=$(whoami) X fi X if [ "x${freenet_user}" = "xroot" ]; then X err 1 "You must set freenet_user to a non-root user for security reasons." X fi X} X Xconfigure_cmd="configure_cmd" Xconfigure_cmd() X{ X freenet_check_vars X su -l ${freenet_user} -c "${command} -c" X} X Xstart_cmd="start_cmd" Xstart_cmd() X{ X freenet_check_vars X su -l ${freenet_user} -c "${command} -i" X} X Xstop_cmd="stop_cmd" Xstop_cmd() X{ X freenet_check_vars X su -l ${freenet_user} -c "${command} -o" X} X Xload_rc_config "${name}" X: ${freenet_enable="NO"} X: ${freenet_user=""} X Xrun_rc_command "$1" END-of-freenet05/files/freenet.in exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707160252.l6G2qdMT073757>