Author: robert Date: 2009-01-21 22:28:14 +0000 (Wed, 21 Jan 2009) New Revision: 25204
Added: trunk/apps/rpm/ trunk/apps/rpm/freenet.spec Log: bug#1278 - starting point for a freenet rpm Added: trunk/apps/rpm/freenet.spec =================================================================== --- trunk/apps/rpm/freenet.spec (rev 0) +++ trunk/apps/rpm/freenet.spec 2009-01-21 22:28:14 UTC (rev 25204) @@ -0,0 +1,144 @@ +Name: freenet +Summary: The Freenet Reference Implementation +Version: 0.7 +Release: 1 +License: GPL +Group: Networking/Daemons +Vendor: The Freenet Project +URL: http://www.freenetproject.org/ +BuildRoot: %{_tmppath}/%{name}-%{version}root + +Packager: [email protected] +# Loosely based on a freenet.spec for 0.5 by Matthew Li + +#NB: This is just the skeleton, the jars are downloaded at rpm-build time, but this +# contains an ssl-cert so we know it's origin. Therefore, it is a starting point (not fetched). +Source: http://downloads.freenetproject.org/alpha/installer/freenet07.tar.gz + +%define prefix /usr +%define fproxy_port 8888 + +#Because we will likely get some wrappers for other arch's let's turn this off. +#Otherwise we could remove the other wrapper binaries (x86/ppc/64-bit...). +AutoReqProv: no +Requires: java +BuildRequires: java + + +%description +A daemon that transfers and caches data for Freenet: a free, anonymous, +survivable, scalable, and secure data publication network. + +Because of the nature of freenet, this application must keep itself update-to-date, +but does so over the same network that it provides. + +After installing the rpm, you must visit: http://localhost:%{fproxy_port}/ +and answer some questions there before it will begin trying to connect to +the network. + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT +cd $RPM_BUILD_ROOT + +mkdir -p $RPM_BUILD_ROOT/%{prefix}/freenet/plugins +mkdir -p var/log +mkdir -p etc + +pushd $RPM_BUILD_ROOT/%{prefix} +tar xzf %{SOURCE0} +cd freenet + +#what follows is taken/adapted from first-run script: freenet/bin/run1.sh +CAFILE="startssl.pem" +JOPTS="-Djava.net.preferIPv4Stack=true" +OS="`uname -s`" + +echo Downloading needed files from freenet project... +java $JOPTS -jar bin/sha1test.jar update.sh "." $CAFILE +java $JOPTS -jar bin/sha1test.jar wrapper_$OS.zip . "$CAFILE" +java $JOPTS -jar bin/uncompress.jar wrapper_$OS.zip . +rm -f wrapper_$OS.* +java $JOPTS -jar bin/sha1test.jar freenet-stable-latest.jar "." $CAFILE +java $JOPTS -jar bin/sha1test.jar freenet-ext.jar "." $CAFILE +#FIXME: plugins must have moved... :( +#java $JOPTS -jar bin/sha1test.jar plugins/JSTUN.jar.url plugins $CAFILE +#java $JOPTS -jar bin/sha1test.jar plugins/UPnP.jar.url plugins $CAFILE +java $JOPTS -jar bin/sha1test.jar seednodes.fref "." $CAFILE + +cat - >> bin/crontab <<EOF +...@restart %{prefix}/freenet/run.sh start +EOF + +# used to manually update through conventional network if there is a network failure +chmod a+rx "./update.sh" +chmod u+x bin/* lib/* +ln -s freenet-stable-latest.jar freenet.jar + +# bug: update.sh expects sha1test.jar to be in upper directory... +cp -v bin/sha1test.jar . + +cat -> freenet.ini <<EOF +node.updater.enabled=true +node.updater.autoupdate=true +fproxy.enabled=true +fproxy.port=%{fproxy_port} +fcp.enabled=true +fcp.port=9481 +EOF + +#sha hash files are not needed after install; will reappear if updated.. +rm -f *.sha1 + +popd # %{prefix}/freenet + +ln -s %{prefix}/freenet/freenet.ini etc/freenet.ini + +#FIXME: plugins +#echo "pluginmanager.loadplugin=JSTUN;UPnP" >> freenet.ini + +#???: java -cp $RPM_BUILD_ROOT/%{prefix}/var/spool/freenet.jar freenet.config.Setup --silent $RPM_BUILD_ROOT/etc/freenet.ini + +ln -s %{prefix}/freenet/logs/freenet-latest.log var/log/freenet + +mkdir -p etc/init.d +cat - > etc/init.d/freenet <<"EOF" +#!/bin/bash +#chkconfig: 35 90 13 +#description: %{summary} +#$Id$ +su - freenet -c "%{prefix}/freenet/run.sh $*" < /dev/null +EOF +chmod 755 etc/init.d/freenet + +%pre +if [ "$1" = 1 ]; then + id freenet 2>/dev/null || useradd -M -d %{prefix}/freenet freenet +fi + +%post +if [ "$1" = 1 ]; then + # Sadly, a crontab with @restart doesn't work for me... :( + #crontab -u freenet %{prefix}/freenet/bin/crontab + /sbin/chkconfig freenet on + /etc/init.d/freenet start && echo "Freenet should be accessible via http://localhost:%{fproxy_port}/" +fi + +%preun +/etc/init.d/freenet stop +/sbin/chkconfig freenet off + +%postun +if [ "$1" = 0 ]; then + crontab -u freenet -r + userdel freenet +else + /etc/init.d/freenet restart +fi + +%files +%defattr (-, freenet, freenet) +%{prefix}/freenet +/var/log/freenet +/etc/freenet.ini +/etc/init.d/freenet Property changes on: trunk/apps/rpm/freenet.spec ___________________________________________________________________ Added: svn:keywords + Id _______________________________________________ cvs mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
