forked from I2P_Developers/i2p.i2p
Fix up the included SlackBuild (ticket #1310)
This commit is contained in:
@ -15,36 +15,56 @@ Monotone 1.0 Slackbuilds are available at http://slackbuilds.org/.
|
|||||||
Git
|
Git
|
||||||
---
|
---
|
||||||
|
|
||||||
Git is also an option to retrieve the I2P source code. That said, Monotone is *the*
|
Git is also an option to retrieve the I2P source code. That said, the I2P
|
||||||
authoritative source. Known Git repositories with the I2P source include
|
Monotone servers are *the* authoritative source.
|
||||||
|
|
||||||
|
Public Git repositories hosting the I2P source and managed by I2P project team members include
|
||||||
|
|
||||||
- https://github.com/i2p/i2p.i2p
|
- https://github.com/i2p/i2p.i2p
|
||||||
- http://git.repo.i2p/w/i2p.i2p.git (mirrored from Github)
|
- http://git.repo.i2p/w/i2p.i2p.git (mirrored from Github)
|
||||||
- http://sourceforge.net/p/i2p/code/
|
- http://sourceforge.net/p/i2p/code/
|
||||||
|
|
||||||
|
|
||||||
Tarball
|
Tarball
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The latest stable release is always available from the I2P homepage at
|
The latest stable release is always available from the I2P homepage at
|
||||||
https://geti2p.net/get/.
|
https://geti2p.net/get/.
|
||||||
|
|
||||||
Building the SlackBuild
|
|
||||||
=======================
|
|
||||||
|
|
||||||
The following is needed to build the i2p and i2p-base packages:
|
This SlackBuild
|
||||||
|
===============
|
||||||
|
|
||||||
bash >= 3.1.017
|
Requirements
|
||||||
jre >= 7u55
|
-------------
|
||||||
jdk >= 7u55
|
|
||||||
apache-ant >= 1.7.1
|
The following are needed to build the i2p package:
|
||||||
|
|
||||||
|
* jre >= 6
|
||||||
|
* jdk >= 6
|
||||||
|
* gettext
|
||||||
|
* apache-ant >= 1.7.1
|
||||||
|
|
||||||
|
If you don't care about bundling the translations, the gettext requirement can
|
||||||
|
be avoided by adding -Drequire.gettext=false to the ant lines in
|
||||||
|
i2p/i2p.SlackBuild
|
||||||
|
|
||||||
|
A JRE >= v6 is the only requirement to run I2P.
|
||||||
|
|
||||||
|
Building
|
||||||
|
--------
|
||||||
|
|
||||||
|
As the root user, run either $I2PSRC/Slackware/i2p/i2p.SlackBuild or `ant slackpkg` to create a package
|
||||||
|
in $I2PSRC/Slackware/i2p which can be installed using the Slackware packaging tools.
|
||||||
|
|
||||||
See also
|
See also
|
||||||
========
|
========
|
||||||
|
|
||||||
i2p/readme.txt
|
Please also take a look at
|
||||||
|
|
||||||
AND
|
* i2p/README
|
||||||
|
* eepget(1)
|
||||||
i2p-base/readme.txt
|
* i2prouter(1)
|
||||||
|
* http://i2p-projekt.i2p / https://geti2p.net
|
||||||
|
|
||||||
for additional information and tips.
|
for additional information and tips.
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
An rc file called rc.i2p has been placed into the /etc/rc.d directory.
|
|
||||||
If you want to change installation dir, change the variable INSTALL_DIR
|
|
||||||
on base-i2p.SlackBuild and rebuild the package. You also will need to do the
|
|
||||||
same for the i2p package.
|
|
||||||
|
|
||||||
The install script will insert everything needed into /etc/rc.d/rc.local and
|
|
||||||
into /etc/rc.d/rc.local_shutdown automatically.
|
|
||||||
|
|
||||||
If you want to start I2P at boot you have to chmod +x /etc/rc.d/rc.i2p
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
||||||
<project basedir="." default="slackpkg">
|
|
||||||
<target name="slackpkg">
|
|
||||||
<echo message="Building Slackware package." />
|
|
||||||
<exec executable="./i2p-base.SlackBuild">
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
</project>
|
|
@ -1,157 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Now in the future we only need to look for '#I2P' and '#/I2P'
|
|
||||||
# for modifications to rc.local and rc.local_shutdown.
|
|
||||||
# I was a moron for not doing it this way in the first place :-) -- Sponge
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
touch /etc/rc.d/rc.local
|
|
||||||
touch /etc/rc.d/rc.local_shutdown
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo -n "Check 1: /etc/rc.d/rc.local "
|
|
||||||
I2PRCA=`grep -c /etc/rc.d/rc.local -e '/etc/rc.d/rc.i2p'`
|
|
||||||
|
|
||||||
if [ $I2PRCA -eq 0 ] ; then
|
|
||||||
echo '#I2P' >> /etc/rc.d/rc.local
|
|
||||||
echo '( cd /tmp ; rm -Rf i2p-*.tmp )' >> /etc/rc.d/rc.local
|
|
||||||
echo "if [ -x /etc/rc.d/rc.i2p ] ; then" >> /etc/rc.d/rc.local
|
|
||||||
echo " sh /etc/rc.d/rc.i2p start" >> /etc/rc.d/rc.local
|
|
||||||
echo "fi" >> /etc/rc.d/rc.local
|
|
||||||
echo '#/I2P' >> /etc/rc.d/rc.local
|
|
||||||
echo "modified."
|
|
||||||
else
|
|
||||||
echo -n "looks OK so far,"
|
|
||||||
# Fix old installs, or where people have modified.
|
|
||||||
|
|
||||||
echo -n " Check 1A: "
|
|
||||||
I2PRCC=`grep -c /etc/rc.d/rc.local -e 'i2p-\*\.tmp'`
|
|
||||||
|
|
||||||
if [ $I2PRCC -eq 0 ] ; then
|
|
||||||
DATA=$(cat /etc/rc.d/rc.local | sed -re 's/if \[ -x \/etc\/rc\.d\/rc\.i2p \] ; then/#I2P\n\( cd \/tmp ; rm -Rf i2p-*.tmp \)\nif \[ -x \/etc\/rc.d\/rc.i2p \] ; then/')
|
|
||||||
echo "${DATA}" > /etc/rc.d/rc.local
|
|
||||||
echo -n "additional modifications applied,"
|
|
||||||
else
|
|
||||||
echo -n "looks OK so far,"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -n " Check 1B: "
|
|
||||||
I2PRCE=`grep -c /etc/rc.d/rc.local -e 'i2p-\*\.tmp'`
|
|
||||||
if [ $I2PRCE -eq 0 ] ; then
|
|
||||||
DATATOP=$(cat /etc/rc.d/rc.local | sed -n '0,/i2p-\*\.tmp/p' | sed '$d' )
|
|
||||||
DATABOT=$(cat /etc/rc.d/rc.local | sed -n '/i2p-\*\.tmp/,$p' | sed -n '/^fi/,$p' | sed "1d")
|
|
||||||
echo "${DATATOP}" > /etc/rc.d/rc.local
|
|
||||||
echo '#I2P' >> /etc/rc.d/rc.local
|
|
||||||
echo '( cd /tmp ; rm -Rf i2p-*.tmp )' >> /etc/rc.d/rc.local
|
|
||||||
echo "if [ -x /etc/rc.d/rc.i2p ] ; then" >> /etc/rc.d/rc.local
|
|
||||||
echo " sh /etc/rc.d/rc.i2p start" >> /etc/rc.d/rc.local
|
|
||||||
echo "fi" >> /etc/rc.d/rc.local
|
|
||||||
echo '#/I2P' >> /etc/rc.d/rc.local
|
|
||||||
echo "${DATABOT}" >> /etc/rc.d/rc.local
|
|
||||||
|
|
||||||
echo -n "additional modifications applied,"
|
|
||||||
else
|
|
||||||
echo -n "looks ok so far,"
|
|
||||||
fi
|
|
||||||
echo -n " Check 1C: "
|
|
||||||
I2PRCF=`grep -c /etc/rc.d/rc.local -e '#/I2P'`
|
|
||||||
if [ $I2PRCF -eq 0 ] ; then
|
|
||||||
DATATOP=$(cat /etc/rc.d/rc.local | sed -n '0,/^#I2P/p' | sed '$d' )
|
|
||||||
DATABOT=$(cat /etc/rc.d/rc.local | sed -n '/^#I2P/,$p' | sed -n '/^fi/,$p' | sed "1d")
|
|
||||||
echo "${DATATOP}" > /etc/rc.d/rc.local
|
|
||||||
echo '#I2P' >> /etc/rc.d/rc.local
|
|
||||||
echo '( cd /tmp ; rm -Rf i2p-*.tmp )' >> /etc/rc.d/rc.local
|
|
||||||
echo "if [ -x /etc/rc.d/rc.i2p ] ; then" >> /etc/rc.d/rc.local
|
|
||||||
echo " sh /etc/rc.d/rc.i2p start" >> /etc/rc.d/rc.local
|
|
||||||
echo "fi" >> /etc/rc.d/rc.local
|
|
||||||
echo '#/I2P' >> /etc/rc.d/rc.local
|
|
||||||
echo "${DATABOT}" >> /etc/rc.d/rc.local
|
|
||||||
|
|
||||||
echo -n "additional modifications applied,"
|
|
||||||
else
|
|
||||||
echo -n "looks ok so far,"
|
|
||||||
fi
|
|
||||||
echo " Done."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -n "Check 2: /etc/rc.d/rc.local_shutdown "
|
|
||||||
I2PRCB=`grep -c /etc/rc.d/rc.local_shutdown -e '/etc/rc.d/rc.i2p'`
|
|
||||||
if [ $I2PRCB -eq 0 ] ; then
|
|
||||||
echo "#I2P" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "if [ -x /etc/rc.d/rc.i2p ] ; then" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo " sh /etc/rc.d/rc.i2p stop" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "fi" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "#/I2P" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "modified."
|
|
||||||
else
|
|
||||||
echo -n "looks OK so far,"
|
|
||||||
# Fix old installs
|
|
||||||
|
|
||||||
echo -n " Check 1A: "
|
|
||||||
I2PRCG=`grep -c /etc/rc.d/rc.local_shutdown -e '#I2P'`
|
|
||||||
if [ $I2PRCG -eq 0 ] ; then
|
|
||||||
DATATOP=$(cat /etc/rc.d/rc.local_shutdown | sed -n '0,/^if \[ -x \/etc\/rc\.d\/rc\.i2p \] ; then/p' | sed '$d' )
|
|
||||||
DATABOT=$(cat /etc/rc.d/rc.local_shutdown | sed -n '/^if \[ -x \/etc\/rc\.d\/rc\.i2p \] ; then/,$p' | sed -n '/^fi/,$p' | sed "1d")
|
|
||||||
echo "${DATATOP}" > /etc/rc.d/rc.local_shutdown
|
|
||||||
echo '#I2P' >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "if [ -x /etc/rc.d/rc.i2p ] ; then" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo " sh /etc/rc.d/rc.i2p stop" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "fi" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "#/I2P" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "${DATABOT}" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo -n "additional modifications applied,"
|
|
||||||
else
|
|
||||||
echo -n "looks OK so far,"
|
|
||||||
fi
|
|
||||||
echo -n " Check 1B: "
|
|
||||||
I2PRCH=`grep -c /etc/rc.d/rc.local_shutdown -e '#/I2P'`
|
|
||||||
if [ $I2PRCH -eq 0 ] ; then
|
|
||||||
DATATOP=$(cat /etc/rc.d/rc.local_shutdown | sed -n '0,/^#I2P/p' | sed '$d' )
|
|
||||||
DATABOT=$(cat /etc/rc.d/rc.local_shutdown | sed -n '/^#I2P/,$p' | sed -n '/^fi/,$p' | sed "1d")
|
|
||||||
echo "${DATATOP}" > /etc/rc.d/rc.local_shutdown
|
|
||||||
echo '#I2P' >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "if [ -x /etc/rc.d/rc.i2p ] ; then" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo " sh /etc/rc.d/rc.i2p stop" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "fi" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "#/I2P" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo "${DATABOT}" >> /etc/rc.d/rc.local_shutdown
|
|
||||||
echo -n "additional modifications applied,"
|
|
||||||
else
|
|
||||||
echo -n "looks OK so far,"
|
|
||||||
fi
|
|
||||||
echo " Done."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /etc/rc.d/rc.i2p ] ; then
|
|
||||||
if [ -x /etc/rc.d/rc.i2p ] ; then
|
|
||||||
chmod +x /etc/rc.d/rc.i2p.new
|
|
||||||
fi
|
|
||||||
# Hopefully get admin's attention.
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -e "\007" ; sleep 0.3
|
|
||||||
echo "It apears that you already have /etc/rc.d/rc.i2p"
|
|
||||||
echo "You should replace it with /etc/rc.d/rc.i2p.new as soon as possible"
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -ne "\007" ; sleep 0.3
|
|
||||||
echo -e "\007" ; sleep 0.3
|
|
||||||
else
|
|
||||||
mv /etc/rc.d/rc.i2p.new /etc/rc.d/rc.i2p
|
|
||||||
echo
|
|
||||||
echo "Installation finished. The i2p start/stop script has been"
|
|
||||||
echo "installed in /etc/rc.d . You should chmod +x"
|
|
||||||
echo '/etc/rc.d/rc.i2p to start it on boot.'
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit
|
|
@ -1,57 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Heavily based on the Slackware 12.2 SlackBuild
|
|
||||||
# Slackware build script for I2P
|
|
||||||
#
|
|
||||||
# PLEASE READ THIS:
|
|
||||||
# How to start I2P:
|
|
||||||
# After installpkg command, doinst.sh will execute a post-installation script
|
|
||||||
# needed by I2P. After that you have to chmod +x /etc/rc.d/rc.i2p and start
|
|
||||||
# I2P service with /etc/rc.d/rc.i2p start.
|
|
||||||
#
|
|
||||||
# Now tell your browser to user this proxy: localhost on port 4444 and open
|
|
||||||
# this page: http://localhost:7657/index.jsp
|
|
||||||
#
|
|
||||||
# Here you can configure I2P, watch network status and navigate anonimously.
|
|
||||||
# It's suggested to subscribe to various dns host, like i2host.i2p
|
|
||||||
# For any additional information, visit i2host.i2p and forum.i2p
|
|
||||||
#
|
|
||||||
|
|
||||||
CWD=$(pwd)
|
|
||||||
TMP=/tmp
|
|
||||||
PKG=/$TMP/package-base-i2p
|
|
||||||
NAME=i2p-base
|
|
||||||
VERSION=0.0.4
|
|
||||||
BUILD=1sponge
|
|
||||||
ARCH=noarch
|
|
||||||
INSTALL_DIR=opt
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
rm -rf $PKG
|
|
||||||
mkdir -p $PKG
|
|
||||||
cd $PKG
|
|
||||||
chown -R root:root .
|
|
||||||
|
|
||||||
mkdir -p $PKG/etc/rc.d
|
|
||||||
mkdir -p $PKG/install
|
|
||||||
sed "s|directory|/$INSTALL_DIR/i2p/i2prouter|g" "$CWD/rc.i2p_def" > $PKG/etc/rc.d/rc.i2p.new
|
|
||||||
chmod 644 $PKG/etc/rc.d/rc.i2p.new
|
|
||||||
cat "$CWD/doinst.sh" > $PKG/install/doinst.sh
|
|
||||||
cat "$CWD/slack-desc" > $PKG/install/slack-desc
|
|
||||||
|
|
||||||
cd $PKG
|
|
||||||
#
|
|
||||||
# Not really that important to exec this
|
|
||||||
# as there aren't any deps we don't know.
|
|
||||||
#
|
|
||||||
# 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
|
|
@ -1,68 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Start/stop i2p service.
|
|
||||||
|
|
||||||
i2p_start() {
|
|
||||||
# Check if router is up first!
|
|
||||||
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory status )'" > /dev/null
|
|
||||||
if [ $? -eq 0 ] ; then {
|
|
||||||
# I2p is already running, so tell the user.
|
|
||||||
echo "I2P is already running..."
|
|
||||||
i2p_status
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
# Just in-case there are leftover junk in /tmp...
|
|
||||||
rm -Rf `grep /tmp/hsperfdata_root/* -le i2p` /tmp/i2p-*.tmp /tmp/router.ping
|
|
||||||
# Now that all junk is cleaned up, start.
|
|
||||||
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory start )'"
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
i2p_stop() {
|
|
||||||
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory stop )'"
|
|
||||||
rm -Rf `grep /tmp/hsperfdata_root/* -le i2p` /tmp/i2p-*.tmp /tmp/router.ping
|
|
||||||
}
|
|
||||||
|
|
||||||
i2p_restart() {
|
|
||||||
# We want a FULL cycle here, not the wrappers idea of this!
|
|
||||||
i2p_stop
|
|
||||||
i2p_start
|
|
||||||
}
|
|
||||||
|
|
||||||
i2p_status() {
|
|
||||||
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory status )'"
|
|
||||||
}
|
|
||||||
|
|
||||||
i2p_console() {
|
|
||||||
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory console )'"
|
|
||||||
}
|
|
||||||
|
|
||||||
i2p_dump() {
|
|
||||||
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory dump )'"
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
'start')
|
|
||||||
i2p_start
|
|
||||||
;;
|
|
||||||
'stop')
|
|
||||||
i2p_stop
|
|
||||||
;;
|
|
||||||
'restart')
|
|
||||||
i2p_restart
|
|
||||||
;;
|
|
||||||
'status')
|
|
||||||
i2p_status
|
|
||||||
;;
|
|
||||||
'console')
|
|
||||||
i2p_console
|
|
||||||
;;
|
|
||||||
'dump')
|
|
||||||
i2p_dump
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "usage $0 start|stop|restart|status|console|dump"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
|||||||
# HOW TO EDIT THIS FILE:
|
|
||||||
# The "handy ruler" below makes it easier to edit a package description. Line
|
|
||||||
# up the first '|' above the ':' following the base package name, and the '|' on
|
|
||||||
# the right side marks the last column you can put a character in. You must make
|
|
||||||
# exactly 11 lines for the formatting to be correct. It's also customary to
|
|
||||||
# leave one space after the ':'.
|
|
||||||
|
|
||||||
|-----handy-ruler------------------------------------------------------|
|
|
||||||
base-i2p: base-i2p (I2P anonymizing network base config files)
|
|
||||||
base-i2p:
|
|
||||||
base-i2p: I2P is an anonymizing network, offering a simple layer that
|
|
||||||
base-i2p: identity-sensitive applications can use to securely communicate. All
|
|
||||||
base-i2p: data is wrapped with several layers of encryption, and the network is
|
|
||||||
base-i2p: both distributed and dynamic, with no trusted parties.
|
|
||||||
base-i2p: Many applications are available that interface with I2P, including
|
|
||||||
base-i2p: mail, peer-peer file sharing, IRC chat, and others.
|
|
||||||
base-i2p:
|
|
||||||
base-i2p: This package provides the startup files.
|
|
||||||
base-i2p:
|
|
@ -1 +0,0 @@
|
|||||||
bash >= 3.1.017
|
|
@ -1,46 +1,89 @@
|
|||||||
Building:
|
The I2P package will be installed to /opt/i2p.
|
||||||
The i2p package will be installed to /opt/i2p
|
|
||||||
|
|
||||||
If you want to change installation dir, change the variable INSTALL_DIR
|
To install to another location, set the variable INSTALL_DIR in i2p.SlackBuild
|
||||||
in i2p.SlackBuild and rebuild the package. You will also need to do the same
|
and rebuild the package.
|
||||||
in the base-i2p package.
|
|
||||||
|
|
||||||
Installation and Upgrade:
|
|
||||||
Probably you will never have to update i2p packages. However if you do,
|
|
||||||
be sure to installpkg first, then removepkg or custom config files can
|
|
||||||
be lost with upgradepkg. I2P has an auto-update function. However using
|
|
||||||
installpkg then removepkg lowers the demand on the I2P network as a
|
|
||||||
whole, and is by far faster.
|
|
||||||
|
|
||||||
After installpkg command, doinst.sh will execute a postinstallation script
|
Installing and Upgrading:
|
||||||
needed by I2P. Be sure to also install the base-i2p package.
|
=========================
|
||||||
|
|
||||||
Optional:
|
I2P has an auto-update function but generally speaking packages are managed by
|
||||||
|
packaging systems. Changing a package's files outside of the package system can
|
||||||
|
cause problems. To upgrade when there's a new I2P release, retrieve the new
|
||||||
|
source, re-run the SlackBuild, then use upgradepkg to update.
|
||||||
|
|
||||||
chmod +x /etc/rc.d/rc.i2p only if you want it to start on boot and stop on
|
To ignore all this and upgrade "in-network", simply change the permissions of the installation
|
||||||
shutdown.
|
directory (/opt/i2p by default). Something like the following would suffice:
|
||||||
|
|
||||||
How to start I2P:
|
chown -R USERNAME /opt/i2p
|
||||||
|
|
||||||
Start the I2P service with-
|
|
||||||
sh /etc/rc.d/rc.i2p start
|
|
||||||
|
|
||||||
Now tell your browser to use this proxy: 127.0.0.1 on port 4444 and open
|
Starting and using I2P
|
||||||
this page: http://127.0.0.1:7657
|
======================
|
||||||
Here you can configure I2P, watch network status and navigate anonymously.
|
|
||||||
It's suggested to subscribe to various addressbook hosts so that you can
|
|
||||||
get to the many available eepsites and other service on I2P. These are not
|
|
||||||
set up by default for security reasons.
|
|
||||||
|
|
||||||
Please see the faqs at http://i2p-projekt.i2p/faq or https://geti2p.net/faq for information about
|
Using the initscript
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
To start I2P at boot, set the executable bit on /etc/rc.d/rc.i2p, add this
|
||||||
|
script to rc.local*, and set the variable "RUN_AS_USER" in /etc/rc.d/rc.i2p.
|
||||||
|
|
||||||
|
Optionally, create a new user/group with limited rights to run I2P.
|
||||||
|
|
||||||
|
Something like the following would work to start I2P at system boot, running under the
|
||||||
|
"i2p" account:
|
||||||
|
|
||||||
|
echo '[ -x /etc/rc.d/rc.i2p ] && /etc/rc.d/rc.i2p start' >> /etc/rc.d/rc.local
|
||||||
|
echo '[ -x /etc/rc.d/rc.i2p ] && /etc/rc.d/rc.i2p stop' >> /etc/.rc.d/rc.local_shutdown
|
||||||
|
sed -i .bak 's/^.*\(RUN_AS_USER\)=.*/\1=i2p/' /etc/rc.d/rc.i2p
|
||||||
|
chmod 755 /etc/rc.d/rc.i2p
|
||||||
|
|
||||||
|
Unless running as a user named "i2psvc", I2P's config directory defaults to
|
||||||
|
$HOME/.i2p. In the case of the "i2psvc" user, the default config directory is
|
||||||
|
/var/lib/i2p/i2p-config.
|
||||||
|
|
||||||
|
It should not need to be said that using the "root" account is not recommended.
|
||||||
|
|
||||||
|
When running using the initscript, I2P will write its logs to /var/log/i2p.
|
||||||
|
|
||||||
|
Starting I2P "on-demand"
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
As with a normal installation, I2P can be started with "i2prouter start". The
|
||||||
|
i2prouter and eepget scripts hve been installed to /usr/bin so they'll be
|
||||||
|
accessible in the default system PATH.
|
||||||
|
|
||||||
|
When running using the i2prouter script, I2P will write its logs to $HOME/.i2p.
|
||||||
|
|
||||||
|
|
||||||
|
Configuring your browser
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
In order to access eepSites (I2P-internal web sites) your web browser needs to
|
||||||
|
be configured. Set the HTTP Proxy to 127.0.0.1 and port 4444. For more information, see
|
||||||
|
https://geti2p.net/en/about/browser-config
|
||||||
|
|
||||||
|
The I2P router console is reachable at http://127.0.0.1:7657.
|
||||||
|
|
||||||
|
|
||||||
|
Addressbook subscriptions
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Please see the FAQs at http://i2p-projekt.i2p/faq or https://geti2p.net/faq for information about
|
||||||
the various addressbook services.
|
the various addressbook services.
|
||||||
|
|
||||||
To stop I2P:
|
|
||||||
/etc/rc.d/rc.i2p stop
|
Chatting on IRC
|
||||||
|
---------------
|
||||||
|
|
||||||
|
I2P comes preconfigured with a tunnel pointing to the I2P-only IRC network,
|
||||||
|
Irc2P. Signing on is easy, just connect to 127.0.0.1 on port 6668. Do not
|
||||||
|
configure a proxy in your IRC client.
|
||||||
|
|
||||||
|
|
||||||
For any additional information:
|
Additional information
|
||||||
|
======================
|
||||||
|
|
||||||
Within I2P- http://i2p-projekt.i2p/, http://forum.i2p/, http://zzz.i2p
|
Within I2P: http://i2p-projekt.i2p/, http://forum.i2p/, http://zzz.i2p/, http://trac.i2p2.i2p/
|
||||||
|
On the Internet: https://geti2p.net/, https://trac.i2p2.de
|
||||||
|
Manpages: i2prouter(1), eepget(1)
|
||||||
|
|
||||||
Internet (not reccomended!) - https://geti2p.net/
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<project basedir="." default="slackpkg">
|
<project basedir="." default="slackpkg">
|
||||||
<target name="slackpkg">
|
<target name="slackpkg">
|
||||||
<echo message="Building Slackware package." />
|
<echo message="Building Slackware package." />
|
||||||
<exec executable="./i2p.SlackBuild">
|
<chmod file="./i2p.Slackbuild" perm="755" />
|
||||||
</exec>
|
<exec executable="./i2p.SlackBuild" failifexecutionfails="true" />
|
||||||
</target>
|
</target>
|
||||||
</project>
|
</project>
|
||||||
|
@ -1,72 +1,59 @@
|
|||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Abort on error or unset variables
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
|
||||||
|
# This is changed by i2p.SlackBuild
|
||||||
INST_DIR=directory
|
INST_DIR=directory
|
||||||
|
PKGNAME="%pkg"
|
||||||
|
|
||||||
( cd install
|
config() {
|
||||||
|
NEW="$1"
|
||||||
|
OLD="$(dirname $NEW)/$(basename $NEW .new)"
|
||||||
|
if [ ! -r $NEW ]; then
|
||||||
|
# Flaw in the packaging, this shouldn't happen. Just return.
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
# If this file doesn't exist yet, drop the .new extension
|
||||||
for i in *.config ; {
|
if [ ! -r $OLD ]; then
|
||||||
if [ -f $INST_DIR/$i ] ; then
|
mv $NEW $OLD
|
||||||
echo "Please check ${INST_DIR}${i}, as there is a new version."
|
return
|
||||||
cp $i $INST_DIR/$i.new
|
elif [ "$(md5sum $OLD | cut -d' ' -f1)" = "$(md5sum $NEW | cut -d' ' -f1)" ]; then
|
||||||
else
|
# If there are no differences in the files, remove the new one
|
||||||
cp $i $INST_DIR/$i
|
rm $NEW
|
||||||
fi
|
return
|
||||||
|
fi
|
||||||
|
# If they differ alert the admin (but let's not be terribly obnoxious about it)
|
||||||
|
echo "WARNING: The files $OLD and $NEW differ." >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
)
|
# Unlike previous versions of the package, we install i2prouter and eepget to /usr/bin
|
||||||
|
# to make them available within the system PATH.
|
||||||
|
|
||||||
( cd $INST_DIR
|
# Users might still want to /opt/i2p/i2prouter or /opt/i2p/eepget so we'll create symlinks
|
||||||
if [ -f blocklist.txt ] ; then
|
# in the installation directory.
|
||||||
echo "Please check ${INST_DIR}blocklist.txt, as there is a new version."
|
ln -sf /usr/bin/eepget $INST_DIR
|
||||||
else
|
ln -sf /usr/bin/i2prouter $INST_DIR
|
||||||
mv blocklist.txt.new blocklist.txt
|
(cd /usr/doc/$PKGNAME; ln -sf $INST_DIR/history.txt changelog)
|
||||||
fi
|
|
||||||
)
|
|
||||||
|
|
||||||
( cd $INST_DIR/eepsite
|
if $(uname -m | grep -q '64'); then
|
||||||
if [ -f jetty.xml ] ; then
|
(cd $INST_DIR; ln -sf i2psvc-linux-x86-64 i2psvc)
|
||||||
echo "Please check ${INST_DIR}/eepsite, as there are new files."
|
|
||||||
else
|
|
||||||
find $PKG/$INSTALL_DIR/i2p -name "*.xml.new" -exec sh -c 'mv "$0" "${0/.new}"' {} \;
|
|
||||||
fi
|
|
||||||
)
|
|
||||||
|
|
||||||
( cd $INST_DIR/eepsite/docroot
|
|
||||||
if [ -f index.html ] ; then
|
|
||||||
rm index.html.new
|
|
||||||
else
|
|
||||||
mv index.html.new index.html
|
|
||||||
fi
|
|
||||||
if [ -f favicon.ico ] ; then
|
|
||||||
rm favicon.ico.new
|
|
||||||
else
|
|
||||||
mv favicon.ico.new favicon.ico
|
|
||||||
fi
|
|
||||||
)
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "FINISHING I2P INSTALLATION. PLEASE WAIT."
|
|
||||||
|
|
||||||
cd $INST_DIR
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OS_ARCH=`uname -m`
|
|
||||||
X86_64=`echo "$OS_ARCH" | grep x86_64`
|
|
||||||
if [ "X$X86_64" = "X" ]; then
|
|
||||||
wrapperpath="./lib/wrapper/linux"
|
|
||||||
else
|
else
|
||||||
wrapperpath="./lib/wrapper/linux64"
|
(cd $INST_DIR; ln -sf i2psvc-linux-x86-32 i2psvc)
|
||||||
fi
|
fi
|
||||||
cp $wrapperpath/libwrapper.so ./lib/
|
|
||||||
cp $wrapperpath/wrapper.jar ./lib/
|
|
||||||
cp $wrapperpath/i2psvc .
|
|
||||||
rm -rf ./lib/wrapper
|
|
||||||
chmod 755 ./i2psvc
|
|
||||||
|
|
||||||
echo
|
config /etc/rc.d/rc.i2p.new
|
||||||
echo "Installation finished."
|
config $INST_DIR/wrapper.config.new
|
||||||
echo
|
|
||||||
|
|
||||||
exit
|
if [ -e /var/log/packages/i2p-base* ]; then
|
||||||
|
echo "Warning: This package supercedes the 'i2p-base' package." >&2
|
||||||
|
echo
|
||||||
|
echo "You may want to 'removepkg i2p-base'" >&2
|
||||||
|
echo "and check the contents of /etc/rc.d/rc.local*" >&2
|
||||||
|
echo "for correctness" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove extraneous 'sh' from sponge's set-up
|
||||||
|
sed -i 's|sh /etc/rc\.d/rc\.i2p|/etc/rc.d/rc.i2p|g' /etc/rc.d/rc.local*
|
||||||
|
@ -3,135 +3,139 @@
|
|||||||
# Heavily based on the Slackware 12.2 SlackBuild
|
# Heavily based on the Slackware 12.2 SlackBuild
|
||||||
# Slackware build script for I2P
|
# Slackware build script for I2P
|
||||||
#
|
#
|
||||||
# PLEASE READ THIS:
|
# Packages are generally prohibited from being updated outside
|
||||||
# Probably you will never have to update I2P packages with upgradepkg,
|
# of the package manager; this I2P SlackBuild is no different.
|
||||||
# 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!
|
|
||||||
#
|
#
|
||||||
|
# If you'd like to use the I2P "in-network" updates anyway, you'll need to
|
||||||
|
# grant the user that I2P will run as write permission to the installation directory
|
||||||
|
# (/opt/i2p by default).
|
||||||
#
|
#
|
||||||
|
# For safety's sake, a user's I2P config files will *never* be overwritten by any upgrade method.
|
||||||
|
# In the future this SlackBuild may alert when a default config file is updated
|
||||||
|
##
|
||||||
|
|
||||||
BUILD=1sponge
|
# Make sure makepkg and friends can be found
|
||||||
|
PATH=$PATH:/sbin
|
||||||
|
|
||||||
|
# abort on error and unset variables (same as set -e and set -u, respectively)
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
|
||||||
|
if [ $(id -ur) -ne 0 ]; then
|
||||||
|
echo "ERROR: SlackBuilds require root access." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
BUILD=1kytv
|
||||||
# INSTALL_DIR is referenced from /, don't prefix it with a '/'
|
# INSTALL_DIR is referenced from /, don't prefix it with a '/'
|
||||||
INSTALL_DIR=opt
|
INSTALL_DIR=opt
|
||||||
NAME=i2p
|
NAME=i2p
|
||||||
ARCH=noarch
|
ARCH=noarch
|
||||||
|
|
||||||
# Less than slackware 13?
|
CWD=$(readlink -m $(dirname $0))
|
||||||
SLKPLT=$(cat /etc/slackware-version | sed -re "s/(Slackware )([0-9]*)(.*)/\2/")
|
I2PSRC=$(readlink -m $CWD/../../)
|
||||||
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
|
TMP=/tmp
|
||||||
|
|
||||||
PKG=$TMP/package-i2p
|
PKG=$TMP/package-i2p
|
||||||
rm -rf $PKG
|
|
||||||
mkdir -p $PKG
|
|
||||||
|
|
||||||
cd $CWD/../../
|
if [ -e "/etc/slackware-version" ]; then
|
||||||
|
# Older than Slackware 13?
|
||||||
|
SLACKVER=$(sed -e "s/Slackware\s\+\([0-9]\+\)\.\?\([0-9]\+\)\?/\1/" /etc/slackware-version)
|
||||||
|
if [ $SLACKVER -lt 13 ] ; then
|
||||||
|
EXT=tgz
|
||||||
|
else
|
||||||
|
EXT=txz
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "ERROR: This script is only intended for use on Slackware systems.">&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract version strings
|
||||||
|
I2PBUILD=$(sed -e '/^.\+long\s\+BUILD/!d' -e 's/^.\+long\s\+BUILD\s\+=\s\+\([0-9]\+\);/\1/' $I2PSRC/router/java/src/net/i2p/router/RouterVersion.java)
|
||||||
|
CORE=$(awk -F'"' '/static\s+String\s+VERSION/{print $2}' $I2PSRC/core/java/src/net/i2p/CoreVersion.java)
|
||||||
|
# Temporarily change the field separator to '.' so the version string can be split up
|
||||||
|
OLDIFS=$IFS
|
||||||
|
IFS="."
|
||||||
|
# split x.y.z into $1 $2 $3
|
||||||
|
set -- $CORE
|
||||||
|
# Restore the field separator to the previous value
|
||||||
|
IFS=$OLDIFS
|
||||||
|
# With an I2P version string like x.y.z, $1 = x, $2 = y, $3 = z.
|
||||||
|
# $3 won't be reachable if the version is of the form x.y, so we'll temporarily set +u to prevent aborting if this variable isn't set
|
||||||
|
set +u
|
||||||
|
if [ -z $3 ]; then
|
||||||
|
# If CORE is a value like 0.9, we'll set CORE equal to 0.9.0 to match the old behaviour
|
||||||
|
CORE=${CORE}.0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# From this point forward, unset variables are *unacceptable*
|
||||||
|
set -o nounset
|
||||||
|
|
||||||
|
VERSION="${CORE}_${I2PBUILD}"
|
||||||
|
|
||||||
|
[ -d $PKG ] && rm -rf $PKG
|
||||||
|
mkdir -p $PKG/$INSTALL_DIR $PKG/install
|
||||||
|
|
||||||
|
cd "$I2PSRC"
|
||||||
ant distclean
|
ant distclean
|
||||||
#ant dist
|
ant jbigi-linux-x86-only preppkg-unix
|
||||||
ant tarball
|
|
||||||
|
|
||||||
tar xjvf i2p.tar.bz2 -C $TMP
|
chown -R root:root $I2PSRC/pkg-temp
|
||||||
|
cp -a $I2PSRC/pkg-temp $PKG/$INSTALL_DIR/i2p
|
||||||
|
|
||||||
cd $TMP/i2p
|
# $INSTALL_DIR is used by this SlackBuild.
|
||||||
chown -R root:root .
|
# [%$]INSTALL_PATH , [%$]SYSTEM_java_io_tmpdir, and [%$]USER_HOME have the correct paths set
|
||||||
|
# by the IzPack installer.
|
||||||
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
|
cd $PKG/$INSTALL_DIR/i2p
|
||||||
|
for file in wrapper.config eepget i2prouter runplain.sh; do
|
||||||
|
sed -i "s|[%$]INSTALL_PATH|/$INSTALL_DIR/i2p|g;s|[$%]SYSTEM_java_io_tmpdir|$TMP|g;s/[%$]USER_HOME/\$HOME/g" $file
|
||||||
|
done
|
||||||
|
mv wrapper.config wrapper.config.new
|
||||||
|
|
||||||
# wrapper.config $INSTALL_PATH and $SYSTEM_java_io_tmpdir
|
install -d $PKG/usr/bin
|
||||||
sed "s|\$INSTALL_PATH|/$INSTALL_DIR/i2p|g" wrapper.config > a
|
install -d $PKG/usr/doc/$NAME-$VERSION
|
||||||
sed "s|\$SYSTEM_java_io_tmpdir|/$INSTALL_DIR/i2p|g" a > wrapper.config
|
install -d $PKG/etc/rc.d
|
||||||
# eepget %INSTALL_PATH
|
mv licenses LICENSE.txt -t $PKG/usr/doc/$NAME-$VERSION
|
||||||
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
|
|
||||||
rm i2prouter
|
|
||||||
mv a i2prouter
|
|
||||||
sed "s|%SYSTEM_java_io_tmpdir|/$INSTALL_DIR/i2p|g" i2prouter > a
|
|
||||||
sed "s|#ALLOW_ROOT=true|ALLOW_ROOT=true|g" a > i2prouter
|
|
||||||
|
|
||||||
chmod 744 ./i2prouter
|
# runplain will live in the installation directory. eepget and i2prouter will go to /usr/bin
|
||||||
chmod 744 ./osid
|
# with symlinks in INST_DIR (created in doinst.sh)
|
||||||
chmod 744 ./runplain.sh
|
install -m755 i2prouter $PKG/usr/bin
|
||||||
chmod 744 ./eepget
|
install -m755 eepget $PKG/usr/bin
|
||||||
chmod 744 ./scripts/i2pbench.sh
|
chmod 755 ./runplain.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
|
if [ $INSTALL_DIR != 'opt' ]; then
|
||||||
mv $PKG/$INSTALL_DIR/i2p/blocklist.txt $PKG/$INSTALL_DIR/i2p/blocklist.txt.new
|
sed "s|\(The I2P package\)\s\+will be\s\+\(installed to\).+|\1 has been \2 $INSTALL_DIR/i2p|g" $CWD/README > $PKG/usr/doc/$NAME-$VERSION/README
|
||||||
find $PKG/$INSTALL_DIR/i2p -name "*.xml" -exec mv {} {}.new \;
|
else
|
||||||
mv $PKG/$INSTALL_DIR/i2p/eepsite/docroot/index.html $PKG/$INSTALL_DIR/i2p/eepsite/docroot/index.html.new
|
sed "s|will be installed|has been installed|" $CWD/README > $PKG/usr/doc/$NAME-$VERSION/README
|
||||||
mv $PKG/$INSTALL_DIR/i2p/eepsite/docroot/favicon.ico $PKG/$INSTALL_DIR/i2p/eepsite/docroot/favicon.ico.new
|
fi
|
||||||
sed "s|directory|/$INSTALL_DIR/i2p/|g" $CWD/doinst.sh > $PKG/install/doinst.sh
|
|
||||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
install -d $PKG/usr/man/man1
|
||||||
|
gzip -9 man/*.1
|
||||||
|
install -m644 man/*.1.gz $PKG/usr/man/man1
|
||||||
|
rm -rf ./man
|
||||||
|
|
||||||
|
# We install all x86 wrapper binaries.
|
||||||
|
# The i2prouter script will try to determine the OS (linux), the bits (32 VS 64) and should be able
|
||||||
|
# to figure out the correct wrapper binary to use.
|
||||||
|
|
||||||
|
# Howver: In case the i2prouter script's detection fails, "$INST_DIR/i2psvc" will point to
|
||||||
|
# what 'we' think the correct binary is.
|
||||||
|
#
|
||||||
|
# A good reason for installing all binaries: in case the user, for whatever reason, switches from an
|
||||||
|
# x64 JRE to an x86 JRE, I2P should continue to work without needing to be reinstalled.
|
||||||
|
install -m755 $I2PSRC/installer/lib/wrapper/linux/i2psvc ./i2psvc-linux-x86-32
|
||||||
|
install -m644 $I2PSRC/installer/lib/wrapper/linux/libwrapper.so ./lib/libwrapper-linux-x86-32.so
|
||||||
|
install -m755 $I2PSRC/installer/lib/wrapper/linux64/i2psvc ./i2psvc-linux-x86-64
|
||||||
|
install -m644 $I2PSRC/installer/lib/wrapper/linux64/libwrapper.so ./lib/libwrapper-linux-x86-64.so
|
||||||
|
install -m644 $I2PSRC/installer/lib/wrapper/all/wrapper.jar ./lib/wrapper.jar
|
||||||
|
install -m644 $I2PSRC/build/jbigi.jar $PKG/$INSTALL_DIR/i2p/lib/jbigi.jar
|
||||||
|
|
||||||
|
rm -f ./postinstall.sh ./osid ./INSTALL-*.txt
|
||||||
|
sed "s|directory|/$INSTALL_DIR/i2p|" $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||||
|
sed -i "s|%pkg|$NAME-$VERSION|" $PKG/install/doinst.sh
|
||||||
|
sed "s|%INST_DIR|/$INSTALL_DIR/i2p|" $CWD/rc.i2p> $PKG/etc/rc.d/rc.i2p.new
|
||||||
|
cp $CWD/slack-desc $PKG/install/slack-desc
|
||||||
|
|
||||||
cd $PKG
|
cd $PKG
|
||||||
#
|
cp $CWD/slack-required $PKG/install/slack-required
|
||||||
# requiredbuilder messes 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
|
makepkg -l y -c n $CWD/${NAME}-$VERSION-$ARCH-$BUILD.$EXT
|
||||||
|
185
Slackware/i2p/rc.i2p
Normal file
185
Slackware/i2p/rc.i2p
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Abort on errors
|
||||||
|
set -e
|
||||||
|
|
||||||
|
##
|
||||||
|
# This *must* be configured. Set this to the user that will run I2P.
|
||||||
|
# Note: If you don't want I2P to start automatically at boot,
|
||||||
|
# use "i2prouter start" as a non-root user to start I2P.
|
||||||
|
#RUN_AS_USER=
|
||||||
|
##
|
||||||
|
|
||||||
|
##
|
||||||
|
# Set the locale as desired.
|
||||||
|
# Note: this is not the same as the language shown in the I2P router console.
|
||||||
|
# This affects the locale used in wrapper.log. For best results, use a
|
||||||
|
# unicode enabled locale (especially important for foreign language torrents).
|
||||||
|
#
|
||||||
|
# If not set the user's configured locale will be used.
|
||||||
|
#RCLOCALE=
|
||||||
|
##
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Nothing below this point should need to be edited #
|
||||||
|
#####################################################
|
||||||
|
# %INST_DIR is set by i2p.SlackBuild
|
||||||
|
INSTALL_DIR="%INST_DIR"
|
||||||
|
# Make sure the package is installed and that the wrapper can be found
|
||||||
|
[ -d $INSTALL_DIR ] && [ -x $INSTALL_DIR/i2psvc ] || (echo "The I2P package is not installed" >&2 ; exit 1)
|
||||||
|
|
||||||
|
if [ -z $RUN_AS_USER ]; then
|
||||||
|
echo "ERROR: RUN_AS_USER not configured in $0" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $(id -ur) -ne 0 ]; then
|
||||||
|
echo 'ERROR: You must be root to start this service.' >&2
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $RCLOCALE ]; then
|
||||||
|
if [ ! $(locale -a |grep -q "en_US\.utf8") ]; then
|
||||||
|
RCLOCALE="en_US.utf8"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# abort script if any variables are unset
|
||||||
|
set -u
|
||||||
|
|
||||||
|
if $(uname -m |grep -q '64'); then
|
||||||
|
BITS='64'
|
||||||
|
else
|
||||||
|
BITS=''
|
||||||
|
fi
|
||||||
|
|
||||||
|
PATH="$PATH:/usr/lib$BITS/java/bin:/usr/lib$BITS/java/jre/bin"
|
||||||
|
RUN=/var/run/i2p
|
||||||
|
PIDFILE="$RUN/i2p.pid"
|
||||||
|
WRAPPER_CONF="$INSTALL_DIR/wrapper.config"
|
||||||
|
WRAPPERLOG=/var/log/i2p/wrapper.log
|
||||||
|
I2PTEMP="/tmp/i2p-daemon"
|
||||||
|
DESC="The I2P daemon"
|
||||||
|
JAVABINARY=$(awk -F'=' '/^ *wrapper\.java\.command/{print $2}' "$WRAPPER_CONF")
|
||||||
|
|
||||||
|
if [ ! $(which $JAVABINARY 2>/dev/null) ]; then
|
||||||
|
for rc in /etc/profile.d/*jdk*.sh /etc/profile.d/*java*.sh; do
|
||||||
|
[ -r $rc ] && . $rc
|
||||||
|
done
|
||||||
|
if [ ! $(which $JAVABINARY 2>/dev/null) ]; then
|
||||||
|
echo "ERROR: Cannot find java. Please set the path to java in $WRAPPER_CONF" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
JAVA=$(which $JAVABINARY 2>/dev/null)
|
||||||
|
|
||||||
|
I2P_ARGS="$WRAPPER_CONF \
|
||||||
|
wrapper.java.additional.1=-DloggerFilenameOverride=/var/log/i2p/log-router-@.txt \
|
||||||
|
wrapper.java.additional.10=-Dwrapper.logfile=$WRAPPERLOG \
|
||||||
|
wrapper.java.additional.11=-Di2p.dir.pid=$RUN \
|
||||||
|
wrapper.java.additional.12=-Di2p.dir.temp=$I2PTEMP \
|
||||||
|
wrapper.java.command=$JAVA \
|
||||||
|
wrapper.logfile=$WRAPPERLOG \
|
||||||
|
wrapper.pidfile=$PIDFILE \
|
||||||
|
wrapper.daemonize=TRUE"
|
||||||
|
|
||||||
|
LC_ALL=$RCLOCALE
|
||||||
|
LANG=$RCLOCALE
|
||||||
|
export LC_ALL LANG
|
||||||
|
|
||||||
|
is_running() {
|
||||||
|
if [ -r $PIDFILE ]; then
|
||||||
|
PID="$(cat ${PIDFILE})" 2>/dev/null 2>&1
|
||||||
|
if ! kill -0 $PID >/dev/null 2>&1; then
|
||||||
|
rm "$PIDFILE"
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
if is_running; then
|
||||||
|
echo "ERROR: $DESC is already running." >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
for DIR in $RUN $I2PTEMP; do
|
||||||
|
test -d $DIR && rm -rf $DIR
|
||||||
|
mkdir -p $DIR
|
||||||
|
chown -R $RUN_AS_USER $DIR
|
||||||
|
done
|
||||||
|
[ -d /var/log/i2p ] || mkdir /var/log/i2p
|
||||||
|
chown -R $RUN_AS_USER /var/log/i2p
|
||||||
|
|
||||||
|
echo -n "Starting $DESC..."
|
||||||
|
TZ=UTC su $RUN_AS_USER -c "$INSTALL_DIR/i2psvc $I2P_ARGS"
|
||||||
|
is_running
|
||||||
|
echo "[pid: $PID]"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop(){
|
||||||
|
if is_running; then
|
||||||
|
echo -n "Stopping $DESC [pid: $PID] (this could take a while)."
|
||||||
|
kill "$PID" >/dev/null 2>&1
|
||||||
|
while kill -0 "$PID" > /dev/null 2>&1; do
|
||||||
|
echo -n .
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
rm -rf "$RUN" "$I2PTEMP"
|
||||||
|
echo done.
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "$DESC is not running." >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Unset +u to allow the 'usage' text to be displayed
|
||||||
|
set +u
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
if is_running; then
|
||||||
|
echo "$DESC is running [pid: $PID]" >&2
|
||||||
|
else
|
||||||
|
echo "$DESC is not running." >&2
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
graceful)
|
||||||
|
if is_running; then
|
||||||
|
kill -HUP $PID
|
||||||
|
echo "Graceful shutdown of $DESC initiated." >&2
|
||||||
|
echo "This may take up to 11 minutes." >&2
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
dump)
|
||||||
|
if is_running; then
|
||||||
|
kill -3 $PID
|
||||||
|
echo "Threads dumped to $WRAPPERLOG" >&2
|
||||||
|
else
|
||||||
|
echo "$DESC is not running." >&2
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
if is_running; then
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
else
|
||||||
|
echo "$DESC is not running." >&2
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "usage: $0 start|stop|status|restart|graceful|dump"
|
||||||
|
;;
|
||||||
|
esac
|
@ -6,7 +6,7 @@
|
|||||||
# leave one space after the ':'.
|
# leave one space after the ':'.
|
||||||
|
|
||||||
|-----handy-ruler----------------------------------------------------------|
|
|-----handy-ruler----------------------------------------------------------|
|
||||||
i2p: i2p (an anonymizing network)
|
i2p: I2P (an anonymizing network)
|
||||||
i2p:
|
i2p:
|
||||||
i2p: I2P is an anonymizing network, offering a simple layer that
|
i2p: I2P is an anonymizing network, offering a simple layer that
|
||||||
i2p: identity-sensitive applications can use to securely communicate. All
|
i2p: identity-sensitive applications can use to securely communicate. All
|
||||||
@ -14,6 +14,6 @@ i2p: data is wrapped with several layers of encryption, and the network is
|
|||||||
i2p: both distributed and dynamic, with no trusted parties.
|
i2p: both distributed and dynamic, with no trusted parties.
|
||||||
i2p: Many applications are available that interface with I2P, including
|
i2p: Many applications are available that interface with I2P, including
|
||||||
i2p: mail, peer-peer file sharing, IRC chat, and others.
|
i2p: mail, peer-peer file sharing, IRC chat, and others.
|
||||||
i2p: WARNING: To upgrade installpkg FIRST _THEN_ removepkg.
|
i2p:
|
||||||
i2p: For more information, see: http://www.i2p2.de/
|
i2p: For more information, see: https://geti2p.net/
|
||||||
i2p:
|
i2p:
|
||||||
|
@ -1,4 +1,2 @@
|
|||||||
jre >= 5
|
jre >= 6
|
||||||
i2p-base >= 0.0.1
|
gettext
|
||||||
bash >= 3.1.017
|
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
<echo message=" justBOB: generate a standalone BOB-one.jar" />
|
<echo message=" justBOB: generate a standalone BOB-one.jar" />
|
||||||
<echo message=" javadoc: generate javadoc for the entire project into ./build/javadoc and ./javadoc.zip" />
|
<echo message=" javadoc: generate javadoc for the entire project into ./build/javadoc and ./javadoc.zip" />
|
||||||
<echo message=" javadoc-test: Javadocs for unit test classes (build/javadoc-test)" />
|
<echo message=" javadoc-test: Javadocs for unit test classes (build/javadoc-test)" />
|
||||||
<echo message=" slackpkg: generate Slackware packages in ./Slackware/i2p and ./Slackware/i2p-base" />
|
<echo message=" slackpkg: generate Slackware package in ./Slackware/i2p" />
|
||||||
<echo message=" debianhowto: instructions on building Debian packages" />
|
<echo message=" debianhowto: instructions on building Debian packages" />
|
||||||
<echo message=" debian: generate Debian packages in ../" />
|
<echo message=" debian: generate Debian packages in ../" />
|
||||||
<echo message=" run "ant debianhowto" for instructions" />
|
<echo message=" run "ant debianhowto" for instructions" />
|
||||||
@ -1437,9 +1437,7 @@
|
|||||||
<copy file="apps/i2psnark/java/i2psnark-standalone.zip" todir="." />
|
<copy file="apps/i2psnark/java/i2psnark-standalone.zip" todir="." />
|
||||||
</target>
|
</target>
|
||||||
<target name="slackpkg">
|
<target name="slackpkg">
|
||||||
<echo message="Building Slackware package." />
|
|
||||||
<ant dir="Slackware/i2p/" target="slackpkg" />
|
<ant dir="Slackware/i2p/" target="slackpkg" />
|
||||||
<ant dir="Slackware/i2p-base/" target="slackpkg" />
|
|
||||||
</target>
|
</target>
|
||||||
<target name="justBOB" depends="builddepSmall, jbigi">
|
<target name="justBOB" depends="builddepSmall, jbigi">
|
||||||
<ant dir="apps/BOB/" target="onejar" />
|
<ant dir="apps/BOB/" target="onejar" />
|
||||||
|
@ -43,6 +43,9 @@ SCRIPTFILES="\
|
|||||||
./installer/resources/runplain.sh \
|
./installer/resources/runplain.sh \
|
||||||
./installer/resources/uninstall_i2p_service_osx.command
|
./installer/resources/uninstall_i2p_service_osx.command
|
||||||
./installer/resources/uninstall_i2p_service_unix \
|
./installer/resources/uninstall_i2p_service_unix \
|
||||||
|
./Slackware/i2p/i2p.SlackBuild \
|
||||||
|
./Slackware/i2p/doinst.sh \
|
||||||
|
./Slackware/i2p/rc.i2p \
|
||||||
./tests/scripts/checkcerts.sh \
|
./tests/scripts/checkcerts.sh \
|
||||||
./tests/scripts/checkpo.sh \
|
./tests/scripts/checkpo.sh \
|
||||||
./tests/scripts/checkutf8.sh \
|
./tests/scripts/checkutf8.sh \
|
||||||
|
@ -57,7 +57,6 @@ XMLFILES="\
|
|||||||
./installer/resources/eepsite/jetty.xml
|
./installer/resources/eepsite/jetty.xml
|
||||||
./installer/resources/shortcutSpec.xml \
|
./installer/resources/shortcutSpec.xml \
|
||||||
./router/java/build.xml \
|
./router/java/build.xml \
|
||||||
./Slackware/i2p-base/build.xml \
|
|
||||||
./Slackware/i2p/build.xml"
|
./Slackware/i2p/build.xml"
|
||||||
|
|
||||||
HTMLFILES="\
|
HTMLFILES="\
|
||||||
|
Reference in New Issue
Block a user