forked from I2P_Developers/i2p.i2p
122 lines
4.0 KiB
Bash
122 lines
4.0 KiB
Bash
#!/bin/sh
|
|
|
|
# I2P Installer - Installs and pre-configures I2P.
|
|
#
|
|
# postinstall
|
|
# 2004 The I2P Project
|
|
# https://geti2p.net
|
|
# This code is public domain.
|
|
#
|
|
# author: hypercubus
|
|
#
|
|
# Installs the appropriate set of Java Service Wrapper support files for the
|
|
# user's OS
|
|
|
|
if [ ! "X$1" = "X" ]; then
|
|
cd $1
|
|
fi
|
|
|
|
chmod 755 ./i2prouter
|
|
chmod 755 ./osid
|
|
chmod 755 ./runplain.sh
|
|
|
|
ERROR_MSG="Cannot determine operating system type. From the subdirectory in lib/wrapper matching your operating system, please move i2psvc to your base I2P directory, and move the remaining two files to the lib directory."
|
|
LOGFILE=./postinstall.log
|
|
|
|
HOST_OS=`./osid`
|
|
|
|
if [ "X$HOST_OS" = "X" -o "X$HOST_OS" = "Xunknown" ]; then
|
|
echo "$ERROR_MSG"
|
|
echo "Host OS is $HOST_OS" >> $LOGFILE
|
|
echo "Host architecture is $OS_ARCH" >> $LOGFILE
|
|
echo "$ERROR_MSG" >> $LOGFILE
|
|
exit 1
|
|
fi
|
|
|
|
OS_ARCH=`uname -m`
|
|
X86_64=`echo "${OS_ARCH}" | grep x86_64`
|
|
|
|
case $HOST_OS in
|
|
debian | fedora | gentoo | linux | mandrake | redhat | suse )
|
|
# Tanuki-built arm wrapper works on armv5 and armv7 but not on Raspberry Pi armv6.
|
|
# Wrapper we built for Raspberry Pi does not work on Trimslice armv7.
|
|
if [ `echo $OS_ARCH |grep armv7` ]; then
|
|
wrapperpath="./lib/wrapper/linux-armv5"
|
|
elif [ `echo $OS_ARCH |grep armv6` ]; then
|
|
wrapperpath="./lib/wrapper/linux-armv6"
|
|
elif [ `echo $OS_ARCH |grep arm` ]; then
|
|
wrapperpath="./lib/wrapper/linux-armv5"
|
|
elif [ `echo $OS_ARCH |grep ppc` ]; then
|
|
wrapperpath="./lib/wrapper/linux-ppc"
|
|
elif [ "X$X86_64" = "X" ]; then
|
|
wrapperpath="./lib/wrapper/linux"
|
|
else
|
|
wrapperpath="./lib/wrapper/linux64"
|
|
# the 32bit libwrapper.so will be needed if a 32 bit jvm is used
|
|
cp ./lib/wrapper/linux/libwrapper.so ./lib/libwrapper-linux-x86-32.so
|
|
fi
|
|
cp ${wrapperpath}/libwrapper.so ./lib/
|
|
;;
|
|
freebsd )
|
|
if [ ! `echo $OS_ARCH | grep amd64` ]; then
|
|
wrapperpath="./lib/wrapper/freebsd"
|
|
else
|
|
wrapperpath="./lib/wrapper/freebsd64"
|
|
# the 32bit libwrapper.so will be needed if a 32 bit jvm is used
|
|
cp ./lib/wrapper/freebsd/libwrapper.so ./lib/libwrapper-freebsd-x86-32.so
|
|
fi
|
|
cp ${wrapperpath}/libwrapper.so ./lib/
|
|
;;
|
|
osx )
|
|
wrapperpath="./lib/wrapper/macosx"
|
|
cp ${wrapperpath}/libwrapper*.jnilib ./lib/
|
|
chmod 755 ./Start\ I2P\ Router.app/Contents/MacOS/i2prouter
|
|
chmod 755 ./install_i2p_service_osx.command
|
|
chmod 755 ./uninstall_i2p_service_osx.command
|
|
;;
|
|
solaris )
|
|
wrapperpath="./lib/wrapper/solaris"
|
|
cp ${wrapperpath}/libwrapper.so ./lib/
|
|
;;
|
|
netbsd|openbsd|kfreebsd)
|
|
# FIXME
|
|
# This isn't displayed when installing, but if we fall back to the "*)"
|
|
# choice, no cleanup happens and users are advised to copy the wrapper
|
|
# in place...but there is no wrapper. Figuring out how to display this,
|
|
# such as when doing a headless installation would be good.
|
|
echo "The java wrapper is not supported on this platform."
|
|
echo "Please use `pwd`/runplain.sh to start I2P."
|
|
# But at least the cleanup below will happen.
|
|
;;
|
|
* )
|
|
echo "${ERROR_MSG}"
|
|
echo "Host OS is $HOST_OS" >> $LOGFILE
|
|
echo "Host architecture is $OS_ARCH" >> $LOGFILE
|
|
echo "$ERROR_MSG" >> $LOGFILE
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if [ ! "X$wrapperpath" = "x" ]; then
|
|
cp $wrapperpath/i2psvc* .
|
|
chmod 755 ./i2psvc*
|
|
fi
|
|
|
|
chmod 755 ./eepget
|
|
rm -rf ./icons ./lib/wrapper
|
|
rm -f ./lib/*.dll /*.bat ./*.cmd ./*.exe ./utility.jar
|
|
|
|
if [ ! `echo $HOST_OS |grep osx` ]; then
|
|
rm -rf ./Start\ I2P\ Router.app
|
|
rm -f *i2p_service_osx.command
|
|
rm -f net.i2p.router.plist.template
|
|
#rm -f I2P\ Router\ Console.webloc
|
|
else
|
|
# The example apparmor profile is useless on OSX
|
|
rm -f ./scripts/home.i2p.i2prouter
|
|
fi
|
|
|
|
rm -f ./osid
|
|
rm -f ./postinstall.sh
|
|
exit 0
|