summaryrefslogtreecommitdiff
blob: f209ca05e24fc68e3df1f29e4158a55e5e64ff85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=1
DATE=20080524
DATE2=20080330
ESVN_REPO_URI="http://freenet.googlecode.com/svn/trunk/freenet"
ESVN_OPTIONS="--ignore-externals"
inherit eutils java-pkg-2 java-ant-2 subversion

DESCRIPTION="An encrypted network without censorship"
HOMEPAGE="http://www.freenetproject.org/"
SRC_URI="http://dev.gentooexperimental.org/~tommy/distfiles/seednodes-${DATE}.fref
	http://dev.gentooexperimental.org/~tommy/distfiles/wrapper-${DATE2}.conf"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

CDEPEND="dev-java/db-je:3.2
	dev-java/fec
	dev-java/java-service-wrapper"
DEPEND="dev-util/subversion
	>=dev-java/sun-jdk-1.5
	dev-java/ant-core
	dev-util/subversion
	${CDEPEND}"
RDEPEND=">=virtual/jre-1.5
	x86? ( net-libs/fec )
	net-libs/nativebiginteger
	${CDEPEND}"
PDEPEND="net-libs/NativeThread"
S="${WORKDIR}/freenet"

RESTRICT="userpriv"
EANT_BUILD_TARGET="dist"
MY_FREENET_LATEST="-trunk"

pkg_setup() {
	enewgroup freenet
	enewuser freenet -1 -1 /opt/freenet freenet
}

src_unpack() {
	subversion_src_unpack
	cd "${S}"
	svn -N co http://freenet.googlecode.com/svn/trunk/apps/new_installer/res/unix/ .
	cp "${DISTDIR}"/seednodes-${DATE}.fref seednodes.fref
	cp "${DISTDIR}"/wrapper-${DATE2}.conf wrapper.conf
	sed -i -e 's:./bin/wrapper:/opt/freenet/bin/wrapper:g' \
	-e 's:./wrapper.conf:/opt/freenet/wrapper.conf:g' \
	-e 's:PIDDIR=".":PIDDIR="/opt/freenet/":g' \
	-e 's:#RUN_AS_USER=:RUN_AS_USER=freenet:g' run.sh || die "sed failed"
	sed -ie "s:@custom@:${MY_FREENET_LATEST}:g" src/freenet/node/Version.java
	epatch "${FILESDIR}"/wrapper.conf.patch
	epatch "${FILESDIR}"/ext.patch
	use amd64 && sed -i -e 's/=lib/=lib64/g' wrapper.conf
	sed -i -e 's/=128/=2048/g' wrapper.conf
	mkdir -p lib
	cd lib
	java-pkg_jar-from db-je-3.2
	java-pkg_jar-from java-service-wrapper
	java-pkg_jar-from fec
}

src_compile() {
	#workaround for installed blackdown-jdk-1.4
	#freenet does not compile with it
	if has_version =dev-java/sun-jdk-1.6*; then
		GENTOO_VM="sun-jdk-1.6" java-pkg-2_src_compile
	elif has_version =dev-java/sun-jdk-1.5*; then
		GENTOO_VM="sun-jdk-1.5" java-pkg-2_src_compile
	elif has_version =dev-java/sun-jdk-1.4*; then
		die ">=dev-java/sun-jdk-1.5 not found"
	fi
}

src_install() {
	mv lib/freenet-cvs-snapshot.jar freenet.jar
	java-pkg_dojar freenet.jar
	doinitd "${FILESDIR}"/freenet
	insinto /opt/freenet
	doins wrapper.conf run.sh seednodes.fref
	dodir /opt/freenet/bin
	dosym /usr/bin/wrapper /opt/freenet/bin/wrapper
	dodir /opt/freenet/$(get_libdir)
	dosym ../../../usr/$(get_libdir)/java-service-wrapper/libwrapper.so /opt/freenet/$(get_libdir)/libwrapper.so
	fperms +x /opt/freenet/run.sh
}

pkg_postinst () {
	elog "1. Start freenet with /etc/init.d/freenet start."
	elog "2. Open localhost:8888 in your browser for the web interface."
	elog
	elog "If you dont know trusted people running freenet,"
	elog "enable opennet (\"insecure mode\") on the config page to get started."
	elog
	if use amd64;then
		if has_version =dev-java/blackdown-jdk-1.4*;then
			elog "Freenet does not run with 64bit blackdown-jdk,"
			elog "please make sure that either system-vm or the"
			elog "user-vm for freenet uses sun-jdk or some other"
			elog "vm (other vms are untested)."
			elog
		fi
	fi
	chown freenet:freenet /opt/freenet
}

pkg_postrm() {
	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 /opt/freenet' to remove everything"
}