134 lines
3.9 KiB
Bash
Executable File
134 lines
3.9 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Heavily based on the Slackware 12.2 SlackBuild
|
|
# Slackware build script for I2P
|
|
#
|
|
# PLEASE READ THIS:
|
|
# Probably you will never have to update I2P packages with upgradepkg,
|
|
# just because I2P has an auto-update function.
|
|
# Really you should not ever use any "upgrade" method.
|
|
#
|
|
# The correct way to upgrade is to:
|
|
# 1: install the upgrade
|
|
# 2: remove the old package
|
|
#
|
|
# It is a terrible shame that upgradepkg doesn't do this, infact,
|
|
# it would actually be the correct way for *any* package!
|
|
#
|
|
#
|
|
|
|
BUILD=1sponge
|
|
INSTALL_DIR=opt
|
|
NAME=i2p
|
|
ARCH=noarch
|
|
|
|
# Less than slackware 13?
|
|
SLKPLT=$(cat /etc/slackware-version | sed -re "s/(Slackware )([0-9]*)(.*)/\2/")
|
|
if [ $SLKPLT -lt 13 ] ; then
|
|
EXT=tgz
|
|
else
|
|
EXT=txz
|
|
fi
|
|
|
|
|
|
#
|
|
# This mess is here due to the totally moronic way i2p does versioning.
|
|
# We correct it here.
|
|
#
|
|
ROUTER=$(echo -ne "_")$(cat ../../router/java/src/net/i2p/router/RouterVersion.java | grep -e "public final static long BUILD" | cut -f2 -d"=" | cut -f1 -d";" | sed -re "s/ //g")
|
|
if [ "$ROUTER" == "_" ] ; then
|
|
ROUTER="_0"
|
|
fi
|
|
|
|
#
|
|
# That was the easy one, now for the tough one.
|
|
#
|
|
|
|
CORE=$(cat ../../core/java/src/net/i2p/CoreVersion.java | grep -e "public final static String VERSION" | cut -f2 -d'"' | sed -re "s/ //g")
|
|
CORE1=$(echo -n $CORE.x.x | sed -re "s/(.*)\.(.*)\.(.*)\.(.*)/\1/")
|
|
CORE2=$(echo -n $CORE.x | sed -re "s/(.*)\.(.*)\.(.*)\.(.*)/\1/")
|
|
|
|
if [ "$CORE.x.x" == "$CORE1" ] ; then
|
|
CORE=$(echo -ne $CORE".0.0")
|
|
fi
|
|
if [ "$CORE.x" == "$CORE2" ] ; then
|
|
CORE=$(echo -ne $CORE".0")
|
|
fi
|
|
|
|
VERSION=$(echo $CORE$ROUTER)
|
|
#
|
|
# Whew!
|
|
# OK, let's build i2p
|
|
#
|
|
|
|
CWD=$(pwd)
|
|
TMP=/tmp
|
|
|
|
PKG=$TMP/package-i2p
|
|
rm -rf $PKG
|
|
mkdir -p $PKG
|
|
|
|
cd $CWD/../../
|
|
|
|
ant distclean
|
|
#ant dist
|
|
ant tarball
|
|
|
|
tar xjvf i2p.tar.bz2 -C $TMP
|
|
|
|
cd $TMP/i2p
|
|
chown -R root:root .
|
|
|
|
mkdir -p $PKG/$INSTALL_DIR/
|
|
cp -a ../i2p $PKG/$INSTALL_DIR/
|
|
|
|
mkdir -p $PKG/install
|
|
|
|
#############################################################################
|
|
# Preconfigureation to make package smaller, and...
|
|
# we keep as much as reasonable in the installation directory.
|
|
# This makes the install map fairly well to the standard installation.
|
|
# It also makes it easier to find the log and pid files!
|
|
#############################################################################
|
|
cd $PKG/$INSTALL_DIR/i2p
|
|
|
|
# wrapper.config $INSTALL_PATH and $SYSTEM_java_io_tmpdir
|
|
sed "s|\$INSTALL_PATH|/$INSTALL_DIR/i2p|g" wrapper.config > a
|
|
sed "s|\$SYSTEM_java_io_tmpdir|/$INSTALL_DIR/i2p|g" a > wrapper.config
|
|
# eepget %INSTALL_PATH
|
|
sed "s|\$INSTALL_PATH|/$INSTALL_DIR/i2p|g" eepget > a
|
|
rm eepget
|
|
mv a eepget
|
|
# runplain.sh %INSTALL_PATH and %SYSTEM_java_io_tmpdir
|
|
sed "s|%INSTALL_PATH|/$INSTALL_DIR/i2p|g" runplain.sh > a
|
|
sed "s|%SYSTEM_java_io_tmpdir|/$INSTALL_DIR/i2p|g" a > runplain.sh
|
|
# i2prouter %INSTALL_PATH and %SYSTEM_java_io_tmpdir
|
|
sed "s|%INSTALL_PATH|/$INSTALL_DIR/i2p|g" i2prouter > a
|
|
sed "s|%SYSTEM_java_io_tmpdir|/$INSTALL_DIR/i2p|g" a > i2prouter
|
|
|
|
chmod 744 ./i2prouter
|
|
chmod 744 ./osid
|
|
chmod 744 ./runplain.sh
|
|
chmod 744 ./eepget
|
|
chmod 744 ./scripts/i2pbench.sh
|
|
chmod 744 ./scripts/i2ptest.sh
|
|
rm -Rf ./lib/*.dll ./*.bat ./*.exe ./installer ./icons ./a postinstall.sh
|
|
|
|
mv $PKG/$INSTALL_DIR/i2p/*.config $PKG/install
|
|
mv $PKG/$INSTALL_DIR/i2p/blocklist.txt $PKG/$INSTALL_DIR/i2p/blocklist.txt.new
|
|
mv $PKG/$INSTALL_DIR/i2p/eepsite/jetty.xml $PKG/$INSTALL_DIR/i2p/eepsite/jetty.xml.new
|
|
mv $PKG/$INSTALL_DIR/i2p/eepsite/docroot/index.html $PKG/$INSTALL_DIR/i2p/eepsite/docroot/index.html.new
|
|
mv $PKG/$INSTALL_DIR/i2p/eepsite/docroot/favicon.ico $PKG/$INSTALL_DIR/i2p/eepsite/docroot/favicon.ico.new
|
|
sed "s|directory|/$INSTALL_DIR/i2p/|g" $CWD/doinst.sh > $PKG/install/doinst.sh
|
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
|
|
|
cd $PKG
|
|
#
|
|
# requiredbuilder fucks up REALLY bad, and thinks java is perl?!
|
|
# It also did not catch the shell requirements! BOOOOOOOOOOO! HISSSSSSSS!
|
|
#
|
|
# requiredbuilder -v -y -s $CWD $PKG
|
|
#
|
|
cat $CWD/slack-required > $PKG/install/slack-required
|
|
makepkg -l y -c n $CWD/${NAME}-$VERSION-$ARCH-$BUILD.$EXT
|