Compare commits
65 Commits
Author | SHA1 | Date | |
---|---|---|---|
dd47ffd902 | |||
b2f92840e5 | |||
0cffa15047 | |||
0a6dae1aac | |||
6e3fcd3285 | |||
57fa862f01 | |||
2225b47459 | |||
78989a8bbd | |||
e7025ae941 | |||
d7423eb595 | |||
4cb8febe3b | |||
039faf8280 | |||
3a17a3926d | |||
e09d2a41ec | |||
848fabd27c | |||
da58c26935 | |||
c84522a244 | |||
d8953824c5 | |||
b67235b2a9 | |||
00bf0f267e | |||
a1d07cffee | |||
c678c6eca2 | |||
2a162fb4c1 | |||
e594ce9bb5 | |||
4a312198ff | |||
f0fb375e13 | |||
f19a5ca002 | |||
45deb5ac28 | |||
7403cf2e8f | |||
046090ea11 | |||
00098cbf53 | |||
c4980a61f0 | |||
20b5ffdb17 | |||
4a6926fcbf | |||
5b12f20406 | |||
da29268898 | |||
79f016cb1c | |||
e19ce19368 | |||
2e4f110c30 | |||
1bb8238e68 | |||
6bfec5d6ef | |||
f7c6251f30 | |||
1a1e25a52f | |||
b8b19786b1 | |||
8c2c839337 | |||
f56771ac8a | |||
e0d5d61518 | |||
c4c40eee8f | |||
2db71e402d | |||
6e9df08473 | |||
b98b488f70 | |||
52b34a5d6a | |||
c1b20d4f2b | |||
c656b80674 | |||
4ceddb976d | |||
8f14378aee | |||
c5af86adfd | |||
9469293bcf | |||
44ce8335a1 | |||
8a9ce211f3 | |||
037250ae46 | |||
f93c4660da | |||
2f516f0c11 | |||
f3d871d64b | |||
51a82601f0 |
6
.gitignore
vendored
6
.gitignore
vendored
@ -21,4 +21,8 @@ cmd
|
||||
*.jar
|
||||
*.zip
|
||||
*.tar.gz
|
||||
config_override.sh
|
||||
config_override.sh
|
||||
i2pkeys
|
||||
onionkeys
|
||||
tlskeys
|
||||
tmp
|
84
Makefile
84
Makefile
@ -7,9 +7,9 @@ preset=`rm .version; make version`
|
||||
|
||||
-include .version
|
||||
|
||||
PROFILE_VERSION=$(MAJOR).$(MINOR).$(BUILD)
|
||||
PROFILE_VERSION=$(VERSIONMAJOR).$(VERSIONMINOR).$(VERSIONBUILD)
|
||||
|
||||
all: version prep install.exe
|
||||
all: version install.exe
|
||||
|
||||
fmt:
|
||||
find . -name '*.java' -exec clang-format -i {} \;
|
||||
@ -18,19 +18,7 @@ tag:
|
||||
git tag $(PROFILE_VERSION)
|
||||
|
||||
version:
|
||||
echo !define VERSIONMAJOR $(VERSIONMAJOR) > src/nsis/i2pbrowser-version.nsi
|
||||
echo !define VERSIONMINOR $(VERSIONMINOR) >> src/nsis/i2pbrowser-version.nsi
|
||||
echo !define VERSIONBUILD $(VERSIONBUILD) >> src/nsis/i2pbrowser-version.nsi
|
||||
sed 's|!define VERSION||g' src/nsis/i2pbrowser-version.nsi | sed 's| |=|g' > .version
|
||||
rm -f version.txt
|
||||
make version.txt i2pbrowser-jpackage.nsi
|
||||
|
||||
version.txt: build
|
||||
echo "$(PROFILE_VERSION)" > build/version.txt
|
||||
echo "$(PROFILE_VERSION)" > build/version.txt
|
||||
|
||||
i2pbrowser-jpackage.nsi:
|
||||
echo "!define I2P_VERSION $(PROFILE_VERSION)" > src/nsis/i2pbrowser-jpackage.nsi
|
||||
./buildscripts/version.sh
|
||||
|
||||
jpackage: version I2P build/I2P/config all
|
||||
|
||||
@ -42,56 +30,25 @@ help: version
|
||||
@echo "$(preset)"
|
||||
|
||||
prep:
|
||||
make build/licenses
|
||||
echo "licenses" >>make.log
|
||||
make build/I2P
|
||||
echo "buildi2p" >>make.log
|
||||
make build/I2P/config
|
||||
echo "buildi2pconfig" >>make.log
|
||||
cp src/nsis/*.nsi build
|
||||
echo "nsi1" >>make.log
|
||||
cp src/nsis/*.nsh build
|
||||
echo "nsi2" >>make.log
|
||||
cp src/icons/*.ico build
|
||||
|
||||
install.exe: #build/licenses
|
||||
cd build && makensis i2pbrowser-installer.nsi && cp I2P-Easy-Install-Bundle-*.exe ../ && echo "built windows installer"
|
||||
install.exe:
|
||||
./buildscripts/nsis.sh
|
||||
|
||||
export RES_DIR="../i2p.i2p.jpackage-build/installer/resources"
|
||||
export PKG_DIR="../i2p.i2p.jpackage-build/pkg-temp"
|
||||
export I2P_JBIGI="../i2p.i2p.jpackage-build/installer/lib/jbigi"
|
||||
#export I2P_JBIGI="../i2p.i2p.jpackage-build/installer/lib/jbigi"
|
||||
|
||||
distclean: clean
|
||||
rm -rf I2P
|
||||
|
||||
I2P:
|
||||
./build.sh
|
||||
./buildscripts/build.sh
|
||||
|
||||
build/I2P: I2P build
|
||||
rm -rf build/I2P
|
||||
cp -rv I2P build/I2P ; true
|
||||
cp "$(I2P_JBIGI)"/*windows*.dll build/I2P/runtime/lib; true
|
||||
|
||||
src/I2P/config:
|
||||
mkdir -p src/I2P/config
|
||||
rm -rf src/I2P/config/geoip src/I2P/config/webapps src/I2P/config/certificates
|
||||
cp -v $(RES_DIR)/clients.config src/I2P/config/
|
||||
cp -v $(RES_DIR)/wrapper.config src/I2P/config/
|
||||
#grep -v 'router.updateURL' $(RES_DIR)/router.config > src/I2P/config/router.config
|
||||
cat router.config > src/I2P/config/router.config
|
||||
cat i2ptunnel.config > src/I2P/config/i2ptunnel.config
|
||||
cp -v $(RES_DIR)/hosts.txt src/I2P/config/hosts.txt
|
||||
cp -R $(RES_DIR)/certificates src/I2P/config/certificates
|
||||
cp -R $(RES_DIR)/eepsite src/I2P/config/eepsite
|
||||
mkdir -p src/I2P/config/geoip
|
||||
cp -v $(RES_DIR)/GeoLite2-Country.mmdb.gz src/I2P/config/geoip/GeoLite2-Country.mmdb.gz
|
||||
cp -R "$(PKG_DIR)"/webapps src/I2P/config/webapps
|
||||
cd src/I2P/config/geoip && gunzip GeoLite2-Country.mmdb.gz; cd ../../..
|
||||
|
||||
build/I2P/config: src/I2P/config build/I2P
|
||||
cp -rv src/I2P/config build/I2P/config
|
||||
# cp -rv build/I2P/* I2P/
|
||||
# cp -rv src/I2P/config build/I2P/.i2p
|
||||
|
||||
#
|
||||
# Warning: a displayed license file of more than 28752 bytes
|
||||
@ -99,24 +56,10 @@ build/I2P/config: src/I2P/config build/I2P
|
||||
# Possibly related: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895064
|
||||
#
|
||||
build/licenses: build
|
||||
mkdir -p build/licenses
|
||||
cp license/* build/licenses
|
||||
cp LICENSE.md build/licenses/MIT.txt
|
||||
cat build/licenses/LICENSE.index \
|
||||
build/licenses/EPL.txt \
|
||||
build/licenses/GPL+CLASSPATH.txt \
|
||||
build/licenses/HTTPS-Everywhere.txt \
|
||||
build/licenses/LICENSE.tor \
|
||||
build/licenses/MIT.txt \
|
||||
build/licenses/MPL2.txt \
|
||||
build/licenses/NoScript.txt \
|
||||
build/licenses/NSS.txt \
|
||||
build/licenses/I2P.txt > build/licenses/LICENSE.txt
|
||||
unix2dos build/licenses/LICENSE.txt
|
||||
./buildscripts/licenses.sh
|
||||
|
||||
clean:
|
||||
rm -rf build app-profile-*.tgz profile-*.tgz I2P-Easy-Install-Bundle-*.exe *.deb src/I2P/config *.su3 .version *.url make.log
|
||||
git clean -fdx src build
|
||||
./buildscripts/clean.sh
|
||||
|
||||
build:
|
||||
@echo "creating build directory"
|
||||
@ -126,12 +69,13 @@ include makefiles/su.mk
|
||||
|
||||
include makefiles/su-unsigned.mk
|
||||
|
||||
include makefiles/debian.mk
|
||||
|
||||
I2P_DATE=`date +%Y-%m-%d`
|
||||
|
||||
MAGNET=`bttools torrent printinfo i2pwinupdate.su3.torrent | grep 'MagNet' | sed 's|MagNet: ||g' | sed 's|%3A|:|g'| sed 's|%2F|/|g'`
|
||||
MAGNET_TESTING=`bttools torrent printinfo i2pwinupdate-testing.su3.torrent | grep 'MagNet' | sed 's|MagNet: ||g' | sed 's|%3A|:|g'| sed 's|%2F|/|g'`
|
||||
MAGNET=`bttools torrent dumpinfo i2pwinupdate.su3.torrent | grep 'Magnet' | sed 's|Magnet: ||g' | sed 's|%3A|:|g'| sed 's|%2F|/|g'`
|
||||
MAGNET_TESTING=`bttools torrent dumpinfo i2pwinupdate-testing.su3.torrent | grep 'MagNet' | sed 's|MagNet: ||g' | sed 's|%3A|:|g'| sed 's|%2F|/|g'`
|
||||
|
||||
magnet:
|
||||
echo "$(MAGNET)"
|
||||
|
||||
BLANK=`awk '! NF { print NR; exit }' changelog.txt`
|
||||
|
||||
|
25
README.md
25
README.md
@ -57,7 +57,7 @@ The Windows build tools listed above must be installed on the Windows host machi
|
||||
TODO: Add links to the respective instructions for each of these.
|
||||
|
||||
**Note that after the dependencies are installed, this step is automated**
|
||||
**with `./build.sh`.**
|
||||
**with `./buildscripts/build.sh`.**
|
||||
|
||||
In order to include a jpackaged(dependency-free) I2P router in the Profile
|
||||
Bundle you will need to build the jpackaged I2P router as an "App Image" on
|
||||
@ -127,10 +127,10 @@ Ubuntu in WSL.
|
||||
ant clean pkg
|
||||
cd ..
|
||||
|
||||
7. Move into the i2p.firefox directory. Run the `./build.sh` script.
|
||||
7. Move into the i2p.firefox directory. Run the `./buildscripts/build.sh` script.
|
||||
|
||||
cd i2p.firefox
|
||||
./build.sh
|
||||
./buildscripts/build.sh
|
||||
|
||||
8. Compile the NSIS installer using WSL.
|
||||
|
||||
@ -143,18 +143,9 @@ I highly recommend you look into the Chocolatey package manager, which makes it
|
||||
easier to configure these tools and keep them up to date.
|
||||
|
||||
**Prerequisites:** In addition to the other prerequisites, you will need to to have
|
||||
`make` installed with `cygwin`. If you are using this method, you cannot use the
|
||||
automated build scripts without a hack. You will need to create a file called `wsl`
|
||||
in a place that is in the path used by `git-bash.exe` sessions, with the content:
|
||||
|
||||
```
|
||||
#! /usr/bin/env bash
|
||||
$@
|
||||
```
|
||||
|
||||
For our purposes, as long as everything else is set up and you're using git bash,
|
||||
that is enough to make the scripts compatible with `cygwin`. Cygwin builds without
|
||||
git bash are not likely to work.
|
||||
`make` installed with `cygwin`. For our purposes, as long as everything else is
|
||||
set up and you're using git bash, that is enough to make the scripts compatible with
|
||||
`cygwin`. Cygwin builds without git bash are not likely to work.
|
||||
|
||||
1. Run the Cygwin `setup-$arch.exe` for your platform to set up new packages. Select the `make` `jq` `dos2unix` and `curl` packages.
|
||||
2. Open a cygwin terminal.
|
||||
@ -170,10 +161,10 @@ git bash are not likely to work.
|
||||
ant clean pkg
|
||||
cd ..
|
||||
|
||||
5. Move into the i2p.firefox directory. Run the `./build.sh` script.
|
||||
5. Move into the i2p.firefox directory. Run the `./buildscripts/unsigned.sh` script.
|
||||
|
||||
cd i2p.firefox
|
||||
./build.sh
|
||||
./buildscripts/unsigned.sh
|
||||
|
||||
6. Run `make` to build the installer.
|
||||
|
||||
|
70
build.sh
70
build.sh
@ -1,70 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f config_overide.sh ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
if [ -z $machine ]; then
|
||||
unameOut="$(uname -s)"
|
||||
case "${unameOut}" in
|
||||
Linux*) machine=Linux;;
|
||||
Darwin*) machine=Mac;;
|
||||
*) machine="UNKNOWN:${unameOut}"
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$machine" = "Mac" ]; then
|
||||
rm -rf I2P
|
||||
./getprebuilt.sh
|
||||
exit 0
|
||||
elif [ "$machine" = "Linux" ]; then
|
||||
rm -rf I2P
|
||||
./getprebuilt.sh
|
||||
exit 0
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/launcher.sh"
|
||||
|
||||
if [ -z $I2P_VERSION ]; then
|
||||
I2P_VERSION=$("$JAVA_HOME"/bin/java -cp build/router.jar net.i2p.router.RouterVersion | sed "s/.*: //" | head -n 1 | sed 's|-|.|g')
|
||||
fi
|
||||
|
||||
echo "preparing to invoke jpackage for I2P version $I2P_VERSION"
|
||||
|
||||
rm -rf I2P
|
||||
|
||||
make src/I2P/config
|
||||
|
||||
if [ ! -d "I2P" ]; then
|
||||
"$JAVA_HOME"/bin/jpackage --type app-image --name I2P --app-version "$I2P_VERSION" \
|
||||
--verbose \
|
||||
--java-options "-Xmx512m" \
|
||||
--java-options "--add-opens java.base/java.lang=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/sun.nio.fs=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/java.nio=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/java.util.Properties=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/java.util.Properties.defaults=ALL-UNNAMED" \
|
||||
$JPACKAGE_OPTS \
|
||||
--resource-dir build \
|
||||
--app-content src/I2P/config \
|
||||
--app-content src/unix/torbrowser.sh \
|
||||
--app-content src/icons/windowsUIToopie2.png \
|
||||
--app-content src/icons/ui2pbrowser_icon.ico \
|
||||
--icon src/icons/windowsUIToopie2.png \
|
||||
--input build --main-jar launcher.jar --main-class net.i2p.router.WinLauncher
|
||||
fi
|
||||
|
||||
cp "$I2P_PKG/licenses/"* license/
|
||||
cp "$HERE/../i2p.i2p.jpackage-build/LICENSE.txt" license/I2P.txt
|
83
buildscripts/build.sh
Executable file
83
buildscripts/build.sh
Executable file
@ -0,0 +1,83 @@
|
||||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f config_overide.sh ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
"$SCRIPT_DIR"/buildscripts/version.sh
|
||||
"$SCRIPT_DIR"/buildscripts/licenses.sh
|
||||
|
||||
if [ -z $machine ]; then
|
||||
unameOut="$(uname -s)"
|
||||
case "${unameOut}" in
|
||||
Linux*) machine=Linux;;
|
||||
Darwin*) machine=Mac;;
|
||||
*) machine="UNKNOWN:${unameOut}"
|
||||
esac
|
||||
fi
|
||||
|
||||
ICON="$SCRIPT_DIR/src/icons/ui2pbrowser_icon.ico"
|
||||
|
||||
if [ "$machine" = "Mac" ]; then
|
||||
rm -rf I2P
|
||||
"$SCRIPT_DIR"/buildscripts/getprebuilt.sh
|
||||
exit 0
|
||||
elif [ "$machine" = "Linux" ]; then
|
||||
rm -rf I2P
|
||||
"$SCRIPT_DIR"/buildscripts/getprebuilt.sh
|
||||
exit 0
|
||||
elif [ "$machine" = "unix" ]; then
|
||||
ICON="$SCRIPT_DIR"/src/icons/windowsUIToopie2.png
|
||||
export EXTRACODE="unix"
|
||||
export EXTRA=" public final static String EXTRA = \"-$EXTRACODE\";"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DI"$SCRIPT_DIR"/buildscripts/launcher.sh"
|
||||
|
||||
if [ -z $I2P_VERSION ]; then
|
||||
I2P_VERSION=$("$JAVA_HOME"/bin/java -cp $SCRIPT_DIR/build/router.jar net.i2p.router.RouterVersion | sed "s/.*: //" | head -n 1 | sed 's|-|.|g')
|
||||
fi
|
||||
|
||||
echo "preparing to invoke jpackage for I2P version $I2P_VERSION"
|
||||
|
||||
rm -rf I2P
|
||||
|
||||
if [ ! -d "I2P" ]; then
|
||||
"$JAVA_HOME"/bin/jpackage --type app-image --name I2P --app-version "$I2P_VERSION" \
|
||||
--verbose \
|
||||
--java-options "-Xmx512m" \
|
||||
--java-options "--add-opens java.base/java.lang=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/sun.nio.fs=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/java.nio=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/java.util.Properties=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/java.util.Properties.defaults=ALL-UNNAMED" \
|
||||
$JPACKAGE_OPTS \
|
||||
--resource-dir $SCRIPT_DIR/build \
|
||||
--app-content "$SCRIPT_DIR"/src/I2P/config \
|
||||
--app-content "$SCRIPT_DIR"/src/unix/torbrowser.sh \
|
||||
--app-content "$SCRIPT_DIR"/src/win/torbrowser-windows.sh \
|
||||
--app-content "$SCRIPT_DIR"/src/icons/windowsUIToopie2.png \
|
||||
--app-content "$SCRIPT_DIR"/src/icons/ui2pbrowser_icon.ico \
|
||||
--icon "${ICON}" \
|
||||
--input $SCRIPT_DIR/build --main-jar launcher.jar --main-class net.i2p.router.WinLauncher
|
||||
fi
|
||||
|
||||
cp "$I2P_PKG/licenses/"* license/
|
||||
cp "$SCRIPT_DIR/../i2p.i2p.jpackage-build/LICENSE.txt" license/I2P.txt
|
||||
|
||||
|
||||
mkdir -p "$SCRIPT_DIR"/build/I2P
|
||||
cp -rv "$SCRIPT_DIR"/I2P/* "$SCRIPT_DIR"/build/I2P
|
||||
cp -rv src/I2P/config build/I2P/config
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
@ -31,4 +31,5 @@ rm -rf \
|
||||
*.jar \
|
||||
*.exe \
|
||||
*.dmg
|
||||
make clean
|
||||
rm -rf build app-profile-*.tgz profile-*.tgz I2P-Easy-Install-Bundle-*.exe *.deb src/I2P/config *.su3 .version *.url make.log
|
||||
git clean -fdx src build onionkeys tlskeys i2pkeys
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
@ -25,7 +25,7 @@ fi
|
||||
# GITHUB_USERNAME=your github username
|
||||
git clean -fd
|
||||
git checkout .
|
||||
./targz.sh
|
||||
"$SCRIPT_DIR"/buildscripts/targz.sh
|
||||
|
||||
. "$HOME/github-release-config.sh"
|
||||
|
||||
@ -50,3 +50,4 @@ sleep 2s
|
||||
ZIPCHECKSUM=$(sha256sum "I2P.tar.gz")
|
||||
echo github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "I2P.tar.gz" -l "$ZIPCHECKSUM" -t "$TODAYSDATE" -n "I2P.tar.gz"
|
||||
github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "I2P.tar.gz" -l "$ZIPCHECKSUM" -t "$TODAYSDATE" -n "I2P.tar.gz"
|
||||
|
52
buildscripts/daily-portable-windows.sh
Executable file
52
buildscripts/daily-portable-windows.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f config_overide.sh ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
### How to set up this script:
|
||||
#
|
||||
# This script will not work unless you give it a Github API key.
|
||||
# You need to create a file in your $HOME directory, which on
|
||||
# Windows will by /c/Users/yourusername, called github-release-config.sh,
|
||||
# containing this key as the variable GITHUB_TOKEN.
|
||||
# github-release-config.sh must also contain:
|
||||
# GITHUB_USERNAME=your github username
|
||||
git clean -fd
|
||||
git checkout .
|
||||
|
||||
. "$HOME/github-release-config.sh"
|
||||
|
||||
if [ -f ./i2pversion_override ]; then
|
||||
. ./i2pversion_override
|
||||
fi
|
||||
|
||||
TODAYSDATE=$(date +%Y%m%d)
|
||||
|
||||
if [ -z "$DESCRIPTION" ]; then
|
||||
DESCRIPTION="Daily unsigned build of i2p.firefox for $TODAYSDATE
|
||||
===================================================
|
||||
|
||||
These builds are automatically built on a daily basis and may have serious bugs.
|
||||
They are intended for testing purposes only, use them at your own risk.
|
||||
"
|
||||
fi
|
||||
|
||||
echo github-release release -p -u "$GITHUB_USERNAME" -r "i2p.firefox" -n "$TODAYSDATE" -d "$DESCRIPTION" -t "$TODAYSDATE"
|
||||
github-release release -p -u "$GITHUB_USERNAME" -r "i2p.firefox" -n "$TODAYSDATE" -d "$DESCRIPTION" -t "$TODAYSDATE"
|
||||
|
||||
"$SCRIPT_DIR"/buildscripts/zip.sh
|
||||
WINZIPCHECKSUM=$(sha256sum "I2P-windows-portable.zip")
|
||||
echo github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "I2P-windows-portable.zip" -l "$WINZIPCHECKSUM" -t "$TODAYSDATE" -n "I2P-windows-portable.zip"
|
||||
github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "I2P-windows-portable.zip" -l "$WINZIPCHECKSUM" -t "$TODAYSDATE" -n "I2P-windows-portable.zip"
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
cp -v "$SCRIPT_DIR/config_override.example.sh" config_override.sh
|
||||
@ -25,7 +25,7 @@ fi
|
||||
git clean -fd
|
||||
git checkout .
|
||||
cp -v "$SCRIPT_DIR/config_override.example.sh" config_override.sh
|
||||
./unsigned.sh
|
||||
"$SCRIPT_DIR"/buildscripts/unsigned.sh
|
||||
|
||||
. "$HOME/github-release-config.sh"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
@ -22,7 +22,7 @@ mv "$SCRIPT_DIR/config_override.sh" "$SCRIPT_DIR/config_override.sh.bak"
|
||||
# GITHUB_USERNAME=your github username
|
||||
git clean -fd
|
||||
git checkout .
|
||||
./unsigned.sh
|
||||
"$SCRIPT_DIR"/buildscripts/unsigned.sh
|
||||
|
||||
. "$HOME/github-release-config.sh"
|
||||
|
||||
@ -51,7 +51,6 @@ powershell Compress-Archive -force I2P I2P.zip
|
||||
ZIPCHECKSUM=$(sha256sum "I2P.zip")
|
||||
echo github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "I2P.zip" -l "$ZIPCHECKSUM" -t "$TODAYSDATE" -n "I2P.zip"
|
||||
github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "I2P.zip" -l "$ZIPCHECKSUM" -t "$TODAYSDATE" -n "I2P.zip"
|
||||
|
||||
TARCHECKSUM=$(sha256sum "../i2p.i2p.jpackage-build.tar.gz")
|
||||
echo github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "../i2p.i2p.jpackage-build.tar.gz" -l "Upstream I2P Router source code $TARCHECKSUM" -t "$TODAYSDATE" -n "i2p.i2p.jpackage-build.tar.gz"
|
||||
github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "../i2p.i2p.jpackage-build.tar.gz" -l "Upstream I2P Router source code $TARCHECKSUM" -t "$TODAYSDATE" -n "i2p.i2p.jpackage-build.tar.gz"
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
cp -v "$SCRIPT_DIR/config_override.example.sh" config_override.sh
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
@ -2,7 +2,8 @@
|
||||
|
||||
## EXPERIMENTAL. PROBABLY WON'T SEE THE LIGHT OF DAY BUT MAYBE I GET LUCKY.
|
||||
|
||||
# Motivation
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. ./config.sh
|
||||
. ./i2pversion
|
||||
@ -16,10 +17,10 @@ jpackage --name I2P-EXE --app-version "$I2P_VERSION" \
|
||||
--java-options "--add-opens java.base/java.util.Properties=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/java.util.Properties.defaults=ALL-UNNAMED" \
|
||||
$JPACKAGE_OPTS \
|
||||
--app-content src/I2P/config \
|
||||
--app-content src/icons/windowsUIToopie2.png \
|
||||
--icon src/icons/windowsUIToopie2.png \
|
||||
--input build \
|
||||
--app-content "$SCRIPT_DIR"/src/I2P/config \
|
||||
--app-content "$SCRIPT_DIR"/src/icons/windowsUIToopie2.png \
|
||||
--icon "$SCRIPT_DIR"/src/icons/windowsUIToopie2.png \
|
||||
--input "$SCRIPT_DIR/build" \
|
||||
--verbose \
|
||||
--type exe \
|
||||
--win-dir-chooser \
|
16
buildscripts/experimental.sh
Executable file
16
buildscripts/experimental.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
"$SCRIPT_DIR"/buildscripts/clean.sh
|
||||
"$SCRIPT_DIR"/buildscripts/version.sh
|
||||
"$SCRIPT_DIR"/buildscripts/licenses.sh
|
||||
"$SCRIPT_DIR"/buildscripts/build.sh
|
||||
"$SCRIPT_DIR"/buildscripts/nsis.sh
|
64
buildscripts/getprebuilt.sh
Executable file
64
buildscripts/getprebuilt.sh
Executable file
@ -0,0 +1,64 @@
|
||||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f config_overide.sh ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
"$SCRIPT_DIR"/buildscripts/version.sh
|
||||
echo "version set"
|
||||
"$SCRIPT_DIR"/buildscripts/licenses.sh
|
||||
echo "licenses generated"
|
||||
. "$HOME/github-release-config.sh"
|
||||
|
||||
if [ -z $TODAYSDATE ]; then
|
||||
TODAYSDATE=$(date -d '-1 day' '+%Y%m%d')
|
||||
fi
|
||||
|
||||
if [ ! -f I2P.zip ]; then
|
||||
echo github-release download -u "$GITHUB_USERNAME" -r "i2p.firefox" -n "I2P.zip" -t "$TODAYSDATE"
|
||||
github-release download -u "$GITHUB_USERNAME" -r "i2p.firefox" -n "I2P.zip" -t "$TODAYSDATE"
|
||||
fi
|
||||
unzip -FF I2P.zip || true
|
||||
echo "unzipped prebuilt router"
|
||||
sleep 3
|
||||
|
||||
echo "moved prebuilt router"
|
||||
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
export I2P_PKG="$SCRIPT_DIR/../i2p.i2p.jpackage-build/pkg-temp"
|
||||
export RES_DIR="$SCRIPT_DIR/../i2p.i2p.jpackage-build/installer/resources"
|
||||
export I2P_JARS="$I2P_PKG/lib"
|
||||
export I2P_JBIGI="$SCRIPT_DIR/../i2p.i2p.jpackage-build/installer/lib/jbigi"
|
||||
export I2P_JBIGI_JAR="$SCRIPT_DIR/../i2p.i2p.jpackage-build/build/jbigi.jar"
|
||||
|
||||
mkdir -p "$SCRIPT_DIR/src/I2P/config"
|
||||
rm -rf "$SCRIPT_DIR/src/I2P/config/geoip" "$SCRIPT_DIR/src/I2P/config/webapps" "$SCRIPT_DIR/src/I2P/config/certificates"
|
||||
cp -v "$RES_DIR/clients.config" "$SCRIPT_DIR/src/I2P/config/"
|
||||
cp -v "$RES_DIR/wrapper.config" "$SCRIPT_DIR/src/I2P/config/"
|
||||
#grep -v 'router.updateURL' $(RES_DIR)/router.config > "$SCRIPT_DIR"/src/I2P/config/router.config
|
||||
cat router.config > "$SCRIPT_DIR/src/I2P/config/router.config"
|
||||
cat i2ptunnel.config > "$SCRIPT_DIR/src/I2P/config/i2ptunnel.config"
|
||||
cp -v "$RES_DIR/hosts.txt" "$SCRIPT_DIR/src/I2P/config/hosts.txt"
|
||||
cp -r "$RES_DIR/certificates" "$SCRIPT_DIR/src/I2P/config/certificates"
|
||||
cp -r "$RES_DIR/eepsite" "$SCRIPT_DIR/src/I2P/config/eepsite"
|
||||
mkdir -p "$SCRIPT_DIR/src/I2P/config/geoip"
|
||||
cp -v "$RES_DIR/GeoLite2-Country.mmdb.gz" "$SCRIPT_DIR/src/I2P/config/geoip/GeoLite2-Country.mmdb.gz"
|
||||
#cp -r "$I2P_PKG/webapps" "$SCRIPT_DIR/src/I2P/config/webapps"
|
||||
cd "$SCRIPT_DIR/src/I2P/config/geoip" && gunzip GeoLite2-Country.mmdb.gz; cd "$SCRIPT_DIR"
|
||||
|
||||
mkdir -p "$SCRIPT_DIR"/build/I2P
|
||||
cp -rv "$SCRIPT_DIR"/I2P/* "$SCRIPT_DIR"/build/I2P
|
||||
cp -rv "$SCRIPT_DIR"/src/I2P/config "$SCRIPT_DIR"/build/I2P/config
|
124
buildscripts/launcher.sh
Executable file
124
buildscripts/launcher.sh
Executable file
@ -0,0 +1,124 @@
|
||||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
COUNT="Ten Nine Eight Seven Six Five Four Three Two One"
|
||||
|
||||
which java
|
||||
export JAVA=$(java --version | tr -d 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\n' | cut -d ' ' -f 2 | cut -d '.' -f 1 | tr -d '\n\t\- ')
|
||||
|
||||
if [ "$JAVA" -lt "14" ]; then
|
||||
echo "Java 14+ must be used to compile with jpackage, java is $JAVA"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$JAVA" -lt "17" ]; then
|
||||
echo "It is highly recommended that you use Java 17+ to build release packages"
|
||||
fi
|
||||
|
||||
if [ -z "${JAVA_HOME}" ]; then
|
||||
export JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`
|
||||
fi
|
||||
if [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
||||
export JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`
|
||||
fi
|
||||
echo "Building with: $JAVA, $JAVA_HOME"
|
||||
sleep 5s
|
||||
|
||||
"$SCRIPT_DIR"/buildscripts/version.sh
|
||||
"$SCRIPT_DIR"/buildscripts/licenses.sh
|
||||
|
||||
#SCRIPT_DIR="$PWD"
|
||||
export I2P_PKG="$SCRIPT_DIR/../i2p.i2p.jpackage-build/pkg-temp"
|
||||
export RES_DIR="$SCRIPT_DIR/../i2p.i2p.jpackage-build/installer/resources"
|
||||
export I2P_JARS="$I2P_PKG/lib"
|
||||
export I2P_JBIGI="$SCRIPT_DIR/../i2p.i2p.jpackage-build/installer/lib/jbigi"
|
||||
export I2P_JBIGI_JAR="$SCRIPT_DIR/../i2p.i2p.jpackage-build/build/jbigi.jar"
|
||||
if [ ! -d "$SCRIPT_DIR/../i2p.i2p.jpackage-build/" ]; then
|
||||
git clone --depth=1 -b "$VERSION" https://i2pgit.org/i2p-hackers/i2p.i2p "$SCRIPT_DIR/../i2p.i2p.jpackage-build/"
|
||||
fi
|
||||
cd "$SCRIPT_DIR/../i2p.i2p.jpackage-build/"
|
||||
OLDEXTRA=$(find . -name RouterVersion.java -exec grep 'String EXTRA' {} \;)
|
||||
if [ -z "$EXTRA" ]; then
|
||||
export EXTRACODE="win"
|
||||
export EXTRA=" public final static String EXTRA = \"-$EXTRACODE\";"
|
||||
fi
|
||||
find . -name RouterVersion.java -exec sed -i "s|$OLDEXTRA|$EXTRA|g" {} \;
|
||||
git checkout -b "i2p-$VERSION-$EXTRACODE" && git commit -am "i2p-$VERSION-$EXTRACODE"
|
||||
git pull --tags
|
||||
git archive --format=tar.gz --output="$SCRIPT_DIR/../i2p.firefox/i2p.i2p.jpackage-build.tar.gz" "i2p-$VERSION-$EXTRACODE"
|
||||
|
||||
for i in $COUNT; do
|
||||
echo -n "$i...."; sleep 1s
|
||||
done
|
||||
ant distclean pkg || true
|
||||
ant jbigi
|
||||
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
mkdir -p "$SCRIPT_DIR/src/I2P/config"
|
||||
rm -rf "$SCRIPT_DIR/src/I2P/config/geoip" "$SCRIPT_DIR/src/I2P/config/webapps" "$SCRIPT_DIR/src/I2P/config/certificates"
|
||||
cp -v "$RES_DIR/clients.config" "$SCRIPT_DIR/src/I2P/config/"
|
||||
cp -v "$RES_DIR/wrapper.config" "$SCRIPT_DIR/src/I2P/config/"
|
||||
#grep -v 'router.updateURL' $(RES_DIR)/router.config > "$SCRIPT_DIR"/src/I2P/config/router.config
|
||||
cat router.config > "$SCRIPT_DIR/src/I2P/config/router.config"
|
||||
cat i2ptunnel.config > "$SCRIPT_DIR/src/I2P/config/i2ptunnel.config"
|
||||
cp -v "$RES_DIR/hosts.txt" "$SCRIPT_DIR/src/I2P/config/hosts.txt"
|
||||
cp -R "$RES_DIR/certificates" "$SCRIPT_DIR/src/I2P/config/certificates"
|
||||
cp -R "$RES_DIR/eepsite" "$SCRIPT_DIR/src/I2P/config/eepsite"
|
||||
mkdir -p "$SCRIPT_DIR/src/I2P/config/geoip"
|
||||
cp -v "$RES_DIR/GeoLite2-Country.mmdb.gz" "$SCRIPT_DIR/src/I2P/config/geoip/GeoLite2-Country.mmdb.gz"
|
||||
cp -R "$I2P_PKG/webapps" "$SCRIPT_DIR/src/I2P/config/webapps"
|
||||
cd "$SCRIPT_DIR/src/I2P/config/geoip" && gunzip GeoLite2-Country.mmdb.gz; cd ../../..
|
||||
|
||||
echo "compiling custom launcher"
|
||||
mkdir -p "$SCRIPT_DIR/build"
|
||||
cp "$I2P_JARS"/*.jar "$SCRIPT_DIR/build"
|
||||
cp "$I2P_JBIGI_JAR" "$SCRIPT_DIR/build"
|
||||
if [ ! -f "$SCRIPT_DIR/build/jna.jar" ]; then
|
||||
wget -O "$SCRIPT_DIR/build/jna.jar" "https://repo1.maven.org/maven2/net/java/dev/jna/jna/$JNA_VERSION/jna-$JNA_VERSION.jar"
|
||||
fi
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/build/jna-platform.jar" ]; then
|
||||
wget -O "$SCRIPT_DIR/build/jna-platform.jar" "https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/$JNA_VERSION/jna-platform-$JNA_VERSION.jar"
|
||||
fi
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/build/i2pfirefox.jar" ]; then
|
||||
wget -O "$SCRIPT_DIR/build/i2pfirefox.jar" "https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/$I2PFIREFOX_VERSION/i2pfirefox.jar"
|
||||
fi
|
||||
|
||||
for dll in "$I2P_JBIGI/"*windows*.dll; do
|
||||
jar uf "$SCRIPT_DIR/build/jbigi.jar" "$dll"
|
||||
done
|
||||
|
||||
cd "$SCRIPT_DIR"/java
|
||||
"$JAVA_HOME"/bin/javac -d ../build -classpath "$SCRIPT_DIR/build/i2pfirefox.jar:$SCRIPT_DIR/build/jna.jar":"$SCRIPT_DIR/build/jna-platform.jar":"$SCRIPT_DIR/build/i2p.jar":"$SCRIPT_DIR/build/router.jar":"$SCRIPT_DIR/build/routerconsole.jar":"$SCRIPT_DIR/build/jbigi.jar" \
|
||||
net/i2p/router/CopyConfigDir.java \
|
||||
net/i2p/router/Elevator.java \
|
||||
net/i2p/router/Shell32X.java \
|
||||
net/i2p/router/WindowsServiceUtil.java \
|
||||
net/i2p/router/WinLauncher.java \
|
||||
net/i2p/router/WindowsUpdatePostProcessor.java \
|
||||
net/i2p/router/WinUpdateProcess.java \
|
||||
net/i2p/router/WindowsServiceUtil.java \
|
||||
net/i2p/router/ZipUpdateProcess.java
|
||||
|
||||
cd ..
|
||||
|
||||
#echo "building launcher.jar"
|
||||
cd "$SCRIPT_DIR/build"
|
||||
"$JAVA_HOME"/bin/jar -cf launcher.jar net
|
||||
cd ..
|
31
buildscripts/licenses.sh
Executable file
31
buildscripts/licenses.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
mkdir -p "$SCRIPT_DIR"/build/licenses
|
||||
cp "$SCRIPT_DIR"/license/* "$SCRIPT_DIR"/build/licenses
|
||||
cp "$SCRIPT_DIR"/LICENSE.md "$SCRIPT_DIR"/build/licenses/MIT.txt
|
||||
cat "$SCRIPT_DIR"/build/licenses/LICENSE.index \
|
||||
"$SCRIPT_DIR"/build/licenses/EPL.txt \
|
||||
"$SCRIPT_DIR"/build/licenses/GPL+CLASSPATH.txt \
|
||||
"$SCRIPT_DIR"/build/licenses/HTTPS-Everywhere.txt \
|
||||
"$SCRIPT_DIR"/build/licenses/LICENSE.tor \
|
||||
"$SCRIPT_DIR"/build/licenses/MIT.txt \
|
||||
"$SCRIPT_DIR"/build/licenses/MPL2.txt \
|
||||
"$SCRIPT_DIR"/build/licenses/NoScript.txt \
|
||||
"$SCRIPT_DIR"/build/licenses/NSS.txt \
|
||||
"$SCRIPT_DIR"/build/licenses/I2P.txt > "$SCRIPT_DIR"/build/licenses/LICENSE.txt
|
||||
unix2dos "$SCRIPT_DIR"/build/licenses/LICENSE.txt
|
@ -2,12 +2,13 @@
|
||||
|
||||
## EXPERIMENTAL. PROBABLY WON'T SEE THE LIGHT OF DAY BUT MAYBE I GET LUCKY.
|
||||
|
||||
# Motivation
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. ./config.sh
|
||||
. ./i2pversion
|
||||
|
||||
./build.sh
|
||||
"$SCRIPT_DIR"/buildscripts/build.sh
|
||||
jpackage --name I2P-MSI --app-version "$I2P_VERSION" \
|
||||
--verbose \
|
||||
--java-options "-Xmx512m" \
|
||||
@ -17,10 +18,10 @@ jpackage --name I2P-MSI --app-version "$I2P_VERSION" \
|
||||
--java-options "--add-opens java.base/java.util.Properties=ALL-UNNAMED" \
|
||||
--java-options "--add-opens java.base/java.util.Properties.defaults=ALL-UNNAMED" \
|
||||
$JPACKAGE_OPTS \
|
||||
--app-content src/I2P/config \
|
||||
--app-content src/icons/windowsUIToopie2.png \
|
||||
--icon src/icons/windowsUIToopie2.png \
|
||||
--input build \
|
||||
--app-content "$SCRIPT_DIR"/src/I2P/config \
|
||||
--app-content "$SCRIPT_DIR"/src/icons/windowsUIToopie2.png \
|
||||
--icon "$SCRIPT_DIR"/src/icons/windowsUIToopie2.png \
|
||||
--input "$SCRIPT_DIR/build" \
|
||||
--verbose \
|
||||
--type msi \
|
||||
--win-dir-chooser \
|
26
buildscripts/nsis.sh
Executable file
26
buildscripts/nsis.sh
Executable file
@ -0,0 +1,26 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
MAKENSIS=$(which makensis)
|
||||
if [ -z "$MAKENSIS" ]; then
|
||||
MAKENSIS="wsl makensis"
|
||||
fi
|
||||
|
||||
cp "$SCRIPT_DIR"/src/nsis/*.nsi "$SCRIPT_DIR"/build
|
||||
cp "$SCRIPT_DIR"/src/nsis/*.nsh "$SCRIPT_DIR"/build
|
||||
cp "$SCRIPT_DIR"/src/icons/*.ico "$SCRIPT_DIR"/build
|
||||
cd "$SCRIPT_DIR"/build && $MAKENSIS i2pbrowser-installer.nsi && cp I2P-Easy-Install-Bundle-*.exe ../ && echo "built windows installer"
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
@ -9,5 +9,5 @@ if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
./unsigned.sh
|
||||
./sign.sh
|
||||
"$SCRIPT_DIR"/buildscripts/unsigned.sh
|
||||
"$SCRIPT_DIR"/buildscripts/sign.sh
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
@ -40,6 +40,8 @@ if [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
||||
linuxsign I2P-Easy-Install-Bundle-$I2P_VERSION.exe
|
||||
cp "I2P-Easy-Install-Bundle-$I2P_VERSION.exe" "I2P-Easy-Install-Bundle-$I2P_VERSION-signed.exe"
|
||||
else
|
||||
signtool.exe sign -a "I2P-Easy-Install-Bundle-$I2P_VERSION.exe"
|
||||
#signtool.exe sign -a "I2P-Easy-Install-Bundle-$I2P_VERSION.exe"
|
||||
echo "WARNING: Signing is temporarily disabled for the installer."
|
||||
sleep 5s
|
||||
cp "I2P-Easy-Install-Bundle-$I2P_VERSION.exe" "I2P-Easy-Install-Bundle-$I2P_VERSION-signed.exe"
|
||||
fi
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
@ -9,16 +9,16 @@ if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
export machine=unix
|
||||
./clean.sh
|
||||
wsl make distclean
|
||||
./build.sh
|
||||
"$SCRIPT_DIR"/buildscripts/clean.sh
|
||||
wsl "$SCRIPT_DIR"/buildscripts/clean.sh
|
||||
"$SCRIPT_DIR"/buildscripts/build.sh
|
||||
cd "$SCRIPT_DIR/I2P" || exit 1
|
||||
|
||||
TORSOCKS=$(which torsocks)
|
||||
if [ -f "${TORSOCKS}" ]; then
|
||||
. "${TORSOCKS}" on
|
||||
fi
|
||||
./lib/torbrowser.sh
|
||||
"$SCRIPT_DIR"/src/unix/torbrowser.sh
|
||||
version="$(curl -s https://aus1.torproject.org/torbrowser/update_3/release/downloads.json | jq -r ".version")"
|
||||
. "${TORSOCKS}" off
|
||||
locale="en-US" # mention your locale. default = en-US
|
15
buildscripts/unsigned.sh
Executable file
15
buildscripts/unsigned.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
"$SCRIPT_DIR"/buildscripts/clean.sh
|
||||
wsl "$SCRIPT_DIR"/buildscripts/clean.sh
|
||||
"$SCRIPT_DIR"/buildscripts/build.sh
|
||||
"$SCRIPT_DIR"/buildscripts/nsis.sh
|
26
buildscripts/version.sh
Executable file
26
buildscripts/version.sh
Executable file
@ -0,0 +1,26 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
echo "!define VERSIONMAJOR $VERSIONMAJOR" > "$SCRIPT_DIR"/src/nsis/i2pbrowser-version.nsi
|
||||
echo "!define VERSIONMINOR $VERSIONMINOR" >> "$SCRIPT_DIR"/src/nsis/i2pbrowser-version.nsi
|
||||
echo "!define VERSIONBUILD $VERSIONBUILD" >> "$SCRIPT_DIR"/src/nsis/i2pbrowser-version.nsi
|
||||
echo "!define I2P_VERSION $PROFILE_VERSION" > "$SCRIPT_DIR"/src/nsis/i2pbrowser-jpackage.nsi
|
||||
|
||||
mkdir -p "$SCRIPT_DIR"/build
|
||||
echo "$PROFILE_VERSION" > "$SCRIPT_DIR"/build/version.txt
|
||||
echo "$PROFILE_VERSION" > "$SCRIPT_DIR"/build/version.txt
|
||||
sed 's|!define VERSION||g' "$SCRIPT_DIR"/src/nsis/i2pbrowser-version.nsi | sed 's| |=|g' > .version
|
33
buildscripts/zip.sh
Executable file
33
buildscripts/zip.sh
Executable file
@ -0,0 +1,33 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)/..
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
"$SCRIPT_DIR"/buildscripts/clean.sh
|
||||
wsl "$SCRIPT_DIR"/buildscripts/clean.sh
|
||||
"$SCRIPT_DIR"/buildscripts/build.sh
|
||||
cd "$SCRIPT_DIR/I2P" || exit 1
|
||||
|
||||
TORSOCKS=$(which torsocks)
|
||||
if [ -f "${TORSOCKS}" ]; then
|
||||
. "${TORSOCKS}" on
|
||||
fi
|
||||
"$SCRIPT_DIR"/src/win/torbrowser-windows.sh
|
||||
version="$(curl -s https://aus1.torproject.org/torbrowser/update_3/release/downloads.json | jq -r ".version")"
|
||||
. "${TORSOCKS}" off
|
||||
locale="en-US" # mention your locale. default = en-US
|
||||
if [ -d /etc/default/locale ]; then
|
||||
. /etc/default/locale
|
||||
locale=$(echo "${LANG}" | cut -d . -f1)
|
||||
fi
|
||||
rm -vrf "tor-browser_${locale}"
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
rm -rf I2P-portable && cp -r I2P I2P-portable
|
||||
#powershell Compress-Archive -force I2P-portable I2P-windows-portable.zip
|
||||
zip -r I2P-windows-portable.zip I2P-portable
|
@ -1,3 +1,7 @@
|
||||
2022-01-23 idk
|
||||
* Move build scripts to their own directory and make them use correct paths when moved
|
||||
* Add EXTRA to router when generating embedded router jars.
|
||||
|
||||
2022-09-20 idk
|
||||
* improve compatibility with local service installs and with un-bundled installs side-by-side with bundled intalls
|
||||
* version 1.9.7
|
||||
|
24
config.sh
24
config.sh
@ -10,17 +10,21 @@ uname=$(uname)
|
||||
# to use it for Oracle OpenJDK18
|
||||
|
||||
if [[ -n "$IS_WSL" || -n "$WSL_DISTRO_NAME" ]]; then
|
||||
PATH="/c/Program Files/Java/jdk-18.0.2/bin/:$PATH:/c/Program Files/Java/jdk-18.0.2/bin/"
|
||||
export PATH="/c/Program Files/Java/jdk-18.0.2/bin/:$PATH:/c/Program Files/Java/jdk-18.0.2/bin/"
|
||||
JAVA_HOME="/c/Program Files/Java/jdk-18.0.2"
|
||||
export JAVA_HOME="/c/Program Files/Java/jdk-18.0.2"
|
||||
PATH="/c/Program Files/Java/jdk-19/bin/:$PATH:/c/Program Files/Java/jdk-19/bin/"
|
||||
export PATH="/c/Program Files/Java/jdk-19/bin/:$PATH:/c/Program Files/Java/jdk-19/bin/"
|
||||
JAVA_HOME="/c/Program Files/Java/jdk-19"
|
||||
export JAVA_HOME="/c/Program Files/Java/jdk-19"
|
||||
HOST=win32
|
||||
export HOST=win32
|
||||
fi
|
||||
|
||||
if [ "${uname}" != "Linux" ]; then
|
||||
PATH="/c/Program Files/Java/jdk-18.0.2/bin/:$PATH:/c/Program Files/Java/jdk-18.0.2/bin/"
|
||||
export PATH="/c/Program Files/Java/jdk-18.0.2/bin/:$PATH:/c/Program Files/Java/jdk-18.0.2/bin/"
|
||||
JAVA_HOME="/c/Program Files/Java/jdk-18.0.2"
|
||||
export JAVA_HOME="/c/Program Files/Java/jdk-18.0.2"
|
||||
PATH="/c/Program Files/Java/jdk-19/bin/:$PATH:/c/Program Files/Java/jdk-19/bin/"
|
||||
export PATH="/c/Program Files/Java/jdk-19/bin/:$PATH:/c/Program Files/Java/jdk-19/bin/"
|
||||
JAVA_HOME="/c/Program Files/Java/jdk-19"
|
||||
export JAVA_HOME="/c/Program Files/Java/jdk-19"
|
||||
HOST=win32
|
||||
export HOST=win32
|
||||
fi
|
||||
|
||||
|
||||
@ -74,9 +78,13 @@ fi
|
||||
if [[ -n "$IS_WSL" || -n "$WSL_DISTRO_NAME" ]]; then
|
||||
PATH="$PATH:/c/Program Files (x86)/Windows Kits/10/App Certification Kit/"
|
||||
export PATH="$PATH:/c/Program Files (x86)/Windows Kits/10/App Certification Kit/"
|
||||
PATH="$PATH:C:\Users\user\Downloads\m4-1.4.14-1-bin\bin"
|
||||
export PATH="$PATH:C:\Users\user\Downloads\m4-1.4.14-1-bin\bin"
|
||||
fi
|
||||
|
||||
if [ "${uname}" != "Linux" ]; then
|
||||
PATH="$PATH:/c/Program Files (x86)/Windows Kits/10/App Certification Kit/"
|
||||
export PATH="$PATH:/c/Program Files (x86)/Windows Kits/10/App Certification Kit/"
|
||||
PATH="$PATH:C:\Users\user\Downloads\m4-1.4.14-1-bin\bin"
|
||||
export PATH="$PATH:C:\Users\user\Downloads\m4-1.4.14-1-bin\bin"
|
||||
fi
|
@ -1,15 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
./clean.sh
|
||||
wsl make distclean
|
||||
./build.sh
|
||||
wsl make
|
@ -1,27 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f config_overide.sh ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
. "$HOME/github-release-config.sh"
|
||||
|
||||
if [ -z $TODAYSDATE ]; then
|
||||
TODAYSDATE=$(date -d '-1 day' '+%Y%m%d')
|
||||
fi
|
||||
|
||||
echo github-release download -u "$GITHUB_USERNAME" -r "i2p.firefox" -n "I2P.zip" -t "$TODAYSDATE"
|
||||
github-release download -u "$GITHUB_USERNAME" -r "i2p.firefox" -n "I2P.zip" -t "$TODAYSDATE"
|
||||
unzip I2P.zip
|
@ -21,7 +21,7 @@ tunnel.0.type=httpclient
|
||||
tunnel.0.sharedClient=false
|
||||
tunnel.0.interface=127.0.0.1
|
||||
tunnel.0.listenPort=4444
|
||||
tunnel.0.proxyList=false.i2p
|
||||
tunnel.0.proxyList=exit.stormycloud.i2p
|
||||
tunnel.0.i2cpHost=127.0.0.1
|
||||
tunnel.0.i2cpPort=7654
|
||||
tunnel.0.option.inbound.nickname=HTTP Proxy
|
||||
@ -31,7 +31,7 @@ tunnel.0.option.i2cp.reduceIdleTime=900000
|
||||
tunnel.0.option.i2cp.reduceOnIdle=true
|
||||
tunnel.0.option.i2cp.reduceQuantity=1
|
||||
tunnel.0.option.i2p.streaming.connectDelay=1000
|
||||
tunnel.0.option.i2ptunnel.httpclient.SSLOutproxies=false.i2p
|
||||
tunnel.0.option.i2ptunnel.httpclient.SSLOutproxies=exit.stormycloud.i2p
|
||||
tunnel.0.option.inbound.length=3
|
||||
tunnel.0.option.inbound.lengthVariance=0
|
||||
tunnel.0.option.outbound.length=3
|
||||
|
15
i2pversion
15
i2pversion
@ -2,15 +2,14 @@
|
||||
|
||||
JNA_VERSION=5.12.1
|
||||
export JNA_VERSION=5.12.1
|
||||
I2PFIREFOX_VERSION=1.0.3
|
||||
export I2PFIREFOX_VERSION=1.0.3
|
||||
I2PFIREFOX_VERSION=1.0.7
|
||||
export I2PFIREFOX_VERSION=1.0.7
|
||||
# Comment this out to build from an alternate branch or
|
||||
# the tip of the master branch.
|
||||
VERSIONMAJOR=1
|
||||
VERSIONMINOR=9
|
||||
VERSIONBUILD=7
|
||||
VERSIONMAJOR=2
|
||||
VERSIONMINOR=1
|
||||
VERSIONBUILD=0
|
||||
I2P_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
|
||||
export I2P_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
|
||||
VERSION=i2p-jpackage-1.9.4
|
||||
export VERSION=i2p-jpackage-1.9.4
|
||||
|
||||
VERSION=i2p-2.1.0
|
||||
export VERSION=i2p-2.1.0
|
@ -88,7 +88,9 @@ public class WinLauncher extends CopyConfigDir {
|
||||
File programs = programFile();
|
||||
File home = homeDir();
|
||||
|
||||
System.setProperty("i2p.dir.base", programs.getAbsolutePath());
|
||||
System.setProperty(
|
||||
"i2p.dir.base",
|
||||
new File(programs.getAbsolutePath(), "config").getAbsolutePath());
|
||||
System.setProperty("i2p.dir.config", home.getAbsolutePath());
|
||||
System.setProperty("router.pid",
|
||||
String.valueOf(ProcessHandle.current().pid()));
|
||||
@ -313,6 +315,12 @@ public class WinLauncher extends CopyConfigDir {
|
||||
logger.info(e.toString());
|
||||
}
|
||||
}
|
||||
Runtime.getRuntime().addShutdownHook(new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
setNotStarting();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static boolean checkStarting() {
|
||||
|
91
launcher.sh
91
launcher.sh
@ -1,91 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/i2pversion"
|
||||
|
||||
if [ -f i2pversion_override ]; then
|
||||
. "$SCRIPT_DIR/i2pversion_override"
|
||||
fi
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
COUNT="Ten Nine Eight Seven Six Five Four Three Two One"
|
||||
|
||||
which java
|
||||
export JAVA=$(java --version | tr -d 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\n' | cut -d ' ' -f 2 | cut -d '.' -f 1 | tr -d '\n\t\- ')
|
||||
|
||||
if [ "$JAVA" -lt "14" ]; then
|
||||
echo "Java 14+ must be used to compile with jpackage, java is $JAVA"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$JAVA" -lt "17" ]; then
|
||||
echo "It is highly recommended that you use Java 17+ to build release packages"
|
||||
fi
|
||||
|
||||
if [ -z "${JAVA_HOME}" ]; then
|
||||
export JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`
|
||||
fi
|
||||
if [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
||||
export JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`
|
||||
fi
|
||||
echo "Building with: $JAVA, $JAVA_HOME"
|
||||
sleep 5s
|
||||
|
||||
HERE="$PWD"
|
||||
if [ ! -d "$HERE/../i2p.i2p.jpackage-build/" ]; then
|
||||
git clone --depth=1 -b "$VERSION" https://i2pgit.org/i2p-hackers/i2p.i2p "$HERE/../i2p.i2p.jpackage-build/"
|
||||
tar --exclude="$HERE/../i2p.i2p.jpackage-build/.git" -cvzf i2p.i2p.jpackage-build.tar.gz "$HERE/../i2p.i2p.jpackage-build/"
|
||||
fi
|
||||
cd "$HERE/../i2p.i2p.jpackage-build/"
|
||||
git pull --all
|
||||
for i in $COUNT; do
|
||||
echo -n "$i...."; sleep 1s
|
||||
done
|
||||
ant distclean pkg || true
|
||||
|
||||
cd "$HERE"
|
||||
export I2P_PKG="$HERE/../i2p.i2p.jpackage-build/pkg-temp"
|
||||
export RES_DIR="$HERE/../i2p.i2p.jpackage-build/installer/resources"
|
||||
export I2P_JARS="$I2P_PKG/lib"
|
||||
export I2P_JBIGI="$HERE/../i2p.i2p.jpackage-build/installer/lib/jbigi"
|
||||
|
||||
echo "compiling custom launcher"
|
||||
mkdir -p build
|
||||
cp "$I2P_JARS"/*.jar build
|
||||
if [ ! -f "$HERE/build/jna.jar" ]; then
|
||||
wget -O "$HERE/build/jna.jar" "https://repo1.maven.org/maven2/net/java/dev/jna/jna/$JNA_VERSION/jna-$JNA_VERSION.jar"
|
||||
fi
|
||||
|
||||
if [ ! -f "$HERE/build/jna-platform.jar" ]; then
|
||||
wget -O "$HERE/build/jna-platform.jar" "https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/$JNA_VERSION/jna-platform-$JNA_VERSION.jar"
|
||||
fi
|
||||
|
||||
if [ ! -f "$HERE/build/i2pfirefox.jar" ]; then
|
||||
wget -O "$HERE/build/i2pfirefox.jar" "https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/$I2PFIREFOX_VERSION/i2pfirefox.jar"
|
||||
fi
|
||||
|
||||
cd java
|
||||
"$JAVA_HOME"/bin/javac -d ../build -classpath "$HERE/build/i2pfirefox.jar:$HERE/build/jna.jar":"$HERE/build/jna-platform.jar":"$HERE/build/i2p.jar":"$HERE/build/router.jar":"$HERE/build/routerconsole.jar" \
|
||||
net/i2p/router/CopyConfigDir.java \
|
||||
net/i2p/router/Elevator.java \
|
||||
net/i2p/router/Shell32X.java \
|
||||
net/i2p/router/WindowsServiceUtil.java \
|
||||
net/i2p/router/WinLauncher.java \
|
||||
net/i2p/router/WindowsUpdatePostProcessor.java \
|
||||
net/i2p/router/WinUpdateProcess.java \
|
||||
net/i2p/router/WindowsServiceUtil.java \
|
||||
net/i2p/router/ZipUpdateProcess.java
|
||||
|
||||
cd ..
|
||||
|
||||
#echo "building launcher.jar"
|
||||
cd build
|
||||
"$JAVA_HOME"/bin/jar -cf launcher.jar net
|
||||
cd ..
|
@ -1,4 +0,0 @@
|
||||
orig:
|
||||
tar --exclude=debian --exclude=.git -cvzf ../i2p-firefox-profile_$(PROFILE_VERSION).orig.tar.gz .
|
||||
|
||||
## HOWTO: Don't bother. See http://i2pgit.org/idk/i2p.plugins.firefox debian jpackages.
|
@ -1 +0,0 @@
|
||||
# DEPRECATED: see https://i2pgit.org/idk/i2p.plugins.firefox for much better replacement.
|
@ -1 +0,0 @@
|
||||
#DEPRECATED moved to i2p.plugins.firefox as "Base/Strict Mode"
|
@ -1 +0,0 @@
|
||||
#DEPRECATED moved to i2p.plugins.firefox as "Usability Mode"
|
@ -7,11 +7,11 @@ $(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools:
|
||||
go mod vendor && go build
|
||||
|
||||
prepupdate:
|
||||
cp -v "I2P-Profile-Installer-$(PROFILE_VERSION)-signed.su3" i2pwinupdate.su3
|
||||
cp -v "I2P-Easy-Install-Bundle-$(PROFILE_VERSION)-signed.su3" i2pwinupdate.su3
|
||||
|
||||
su3: $(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools
|
||||
$(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools -name "I2P-Profile-Installer-$(PROFILE_VERSION)-signed" -signer "$(SIGNER)" -version "$(I2P_VERSION)"
|
||||
java -cp "$(HOME)/i2p/lib/*" net.i2p.crypto.SU3File sign -c ROUTER -f EXE I2P-Profile-Installer-$(PROFILE_VERSION)-signed.exe I2P-Profile-Installer-$(PROFILE_VERSION)-signed.su3 "$(HOME)/.i2p-plugin-keys/news-su3-keystore.ks" $(PROFILE_VERSION) $(SIGNER)
|
||||
$(GOPATH)/src/i2pgit.org/idk/su3-tools/su3-tools -name "I2P-Easy-Install-Bundle-$(PROFILE_VERSION)-signed" -signer "$(SIGNER)" -version "$(PROFILE_VERSION)"
|
||||
java -cp "$(HOME)/i2p/lib/*" net.i2p.crypto.SU3File sign -c ROUTER -f EXE I2P-Easy-Install-Bundle-$(PROFILE_VERSION)-signed.exe I2P-Easy-Install-Bundle-$(PROFILE_VERSION)-signed.su3 "$(HOME)/.i2p-plugin-keys/news-su3-keystore.ks" $(PROFILE_VERSION) $(SIGNER)
|
||||
|
||||
i2pwinupdate.su3.torrent: prepupdate su3
|
||||
mktorrent \
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 67 KiB |
@ -11,13 +11,126 @@
|
||||
|
||||
!ifndef FindProcess
|
||||
!define FindProcess '!insertmacro FindProcess'
|
||||
|
||||
!ifndef un.FindProcess
|
||||
!define un.FindProcess '!insertmacro un.FindProcess'
|
||||
|
||||
!macro FindProcess ProcessList BoolReturn
|
||||
Push '${ProcessList}'
|
||||
Call FindProcess
|
||||
Pop ${BoolReturn}
|
||||
!macroend
|
||||
|
||||
!macro un.FindProcess ProcessList BoolReturn
|
||||
Push '${ProcessList}'
|
||||
Call un.FindProcess
|
||||
Pop ${BoolReturn}
|
||||
!macroend
|
||||
|
||||
Function un.FindProcess
|
||||
# return True if any process in ProcessList is active
|
||||
Exch $0 ; get ProcessList, save $0
|
||||
Push $1
|
||||
Push $2
|
||||
Push $R0
|
||||
Push $R1
|
||||
Push $R2
|
||||
|
||||
StrCpy $2 "$0," ; $2 = ProcessList
|
||||
|
||||
Push 0 ; set return value = False
|
||||
|
||||
# method based upon one by Phoenix1701@gmail.com 1/27/07
|
||||
|
||||
System::Alloc 1024
|
||||
Pop $R0 ; process list buffer
|
||||
|
||||
# get an array of all process ids
|
||||
System::Call "Psapi::EnumProcesses(i R0, i 1024, *i .R1)i .r0"
|
||||
${Unless} $0 = 0
|
||||
|
||||
IntOp $R1 $R1 / 4 ; Divide by sizeof(DWORD) to get $R1 process count
|
||||
IntOp $R1 $R1 - 1 ; decr for 0 base loop
|
||||
|
||||
ClearErrors
|
||||
${For} $R2 0 $R1
|
||||
# get a PID from the array
|
||||
IntOp $0 $R2 << 2
|
||||
IntOp $0 $0 + $R0 ; buffer.dword[i]
|
||||
System::Call "*$0(i .r0)" ; Get next PID
|
||||
|
||||
${Unless} $0 = 0
|
||||
Push $0
|
||||
Call un.GetProcessName
|
||||
Pop $1
|
||||
|
||||
# is this process one we are looking for?
|
||||
${WordFind} '$2' ',' 'E/$1' $0
|
||||
${Unless} ${Errors}
|
||||
# yes, change return value
|
||||
Pop $0 ; discard old result
|
||||
Push 1 ; set return True
|
||||
|
||||
# exit the loop
|
||||
${Break}
|
||||
${EndUnless}
|
||||
${EndUnless}
|
||||
${Next}
|
||||
|
||||
${EndUnless}
|
||||
|
||||
System::Free $R0
|
||||
|
||||
Pop $0 ; get return value
|
||||
Pop $R2 ; restore registers
|
||||
Pop $R1
|
||||
Pop $R0
|
||||
Pop $2
|
||||
Pop $1
|
||||
Exch $0
|
||||
FunctionEnd
|
||||
|
||||
Function un.GetProcessName
|
||||
# ( Pid -- ProcessName )
|
||||
Exch $2 ; get Pid, save $2
|
||||
Push $0
|
||||
Push $1
|
||||
Push $3
|
||||
Push $R0
|
||||
|
||||
System::Call "Kernel32::OpenProcess(i 1040, i 0, i r2)i .r3"
|
||||
|
||||
StrCpy $2 "<unknown>" ; set return value
|
||||
|
||||
${Unless} $3 = 0 ; $3 is hProcess
|
||||
# get hMod array
|
||||
System::Alloc 1024
|
||||
Pop $R0
|
||||
|
||||
# params: Pid, &hMod, sizeof(hMod), &cb
|
||||
System::Call "Psapi::EnumProcessModules(i r3, i R0, i 1024, *i .r1)i .r0"
|
||||
|
||||
${Unless} $0 = 0
|
||||
# get first hMod
|
||||
System::Call "*$R0(i .r0)"
|
||||
|
||||
# get BaseName; params: Pid, hMod, szBuffer, sizeof(szBuffer)
|
||||
System::Call "Psapi::GetModuleBaseName(i r3, i r0, t .r2, i 256)i .r0"
|
||||
${EndUnless}
|
||||
|
||||
System::Free $R0
|
||||
System::Call "kernel32::CloseHandle(i r3)"
|
||||
${EndUnless}
|
||||
|
||||
Pop $R0 ; restore registers
|
||||
Pop $3
|
||||
Pop $1
|
||||
Pop $0
|
||||
Exch $2 ; save process name
|
||||
FunctionEnd
|
||||
!endif
|
||||
|
||||
|
||||
Function FindProcess
|
||||
# return True if any process in ProcessList is active
|
||||
Exch $0 ; get ProcessList, save $0
|
||||
@ -119,4 +232,4 @@ Function GetProcessName
|
||||
Pop $0
|
||||
Exch $2 ; save process name
|
||||
FunctionEnd
|
||||
!endif
|
||||
!endif
|
||||
|
@ -197,6 +197,7 @@ Function installerFunction
|
||||
|
||||
CreateShortCut "$DESKTOP\Browse I2P.lnk" "$INSTDIR\I2P.exe" "" "$INSTDIR\ui2pbrowser_icon.ico"
|
||||
CreateShortCut "$DESKTOP\Browse I2P - Temporary Identity.lnk" "$INSTDIR\I2P.exe -private" "" "$INSTDIR\ui2pbrowser_icon.ico"
|
||||
CreateShortCut "$SMPROGRAMS\${APPNAME}\Uninstall I2P Easy-Install Bundle.lnk" "$INSTDIR\uninstall-i2pbrowser.exe" "" "$INSTDIR\ui2pbrowser_icon.ico"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
SetShellVarContext current
|
||||
@ -210,9 +211,8 @@ Function installerFunction
|
||||
SetOutPath "$INSTDIR"
|
||||
# create the uninstaller
|
||||
WriteUninstaller "$INSTDIR\uninstall-i2pbrowser.exe"
|
||||
CreateShortCut "$SMPROGRAMS\${APPNAME}\Uninstall I2P Easy-Install Bundle.lnk" "$INSTDIR\uninstall-i2pbrowser.exe" "" "$INSTDIR\ui2pbrowser_icon.ico"
|
||||
|
||||
# create a shortcut to the uninstaller
|
||||
CreateShortCut "$SMPROGRAMS\${APPNAME}\Uninstall-${APPNAME}.lnk" "$INSTDIR\uninstall-i2pbrowser.exe"
|
||||
FunctionEnd
|
||||
|
||||
|
||||
@ -223,6 +223,16 @@ SectionEnd
|
||||
|
||||
# uninstaller section start
|
||||
Section "uninstall"
|
||||
# Don't try to uninstall until the router is fully shut down.
|
||||
${un.FindProcess} "I2P.exe" $0
|
||||
${If} $0 <> 0
|
||||
MessageBox MB_OK "I2P is still running, uninstaller is paused. Uninstaller will continue after I2P has shut down."
|
||||
${Do}
|
||||
${un.FindProcess} "I2P.exe" $0
|
||||
Sleep 500
|
||||
${LoopWhile} $0 <> 0
|
||||
${EndIf}
|
||||
|
||||
# Uninstall the launcher scripts
|
||||
rmDir /r "$INSTDIR\app"
|
||||
rmDir /r "$INSTDIR\config"
|
||||
|
@ -1 +1 @@
|
||||
!define I2P_VERSION 1.9.7
|
||||
!define I2P_VERSION
|
||||
|
@ -1,3 +1,3 @@
|
||||
!define VERSIONMAJOR 1
|
||||
!define VERSIONMINOR 9
|
||||
!define VERSIONBUILD 7
|
||||
!define VERSIONMAJOR 2
|
||||
!define VERSIONMINOR 1
|
||||
!define VERSIONBUILD 0
|
||||
|
12
src/win/torbrowser.sh → src/win/torbrowser-windows.sh
Normal file → Executable file
12
src/win/torbrowser.sh → src/win/torbrowser-windows.sh
Normal file → Executable file
@ -27,6 +27,12 @@ gpgv --keyring ./tor.keyring "torbrowser-install-win64-${version}_${locale}.exe.
|
||||
#tar xvJf "torbrowser-install-win64-${version}_${locale}.exe"
|
||||
#for n in `seq 1 2000`; do echo $n; dd ibs=256 if="torbrowser-install-win64-${version}_${locale}.exe" count=2 skip=$n | file - ; done 2>/dev/null |less
|
||||
#zip -FF "torbrowser-install-win64-${version}_${locale}.exe" --out extracted.zip
|
||||
export WINEPREFIX=$(pwd)/tmp
|
||||
wine "torbrowser-install-win64-${version}_${locale}.exe" /S /D .
|
||||
cp -vr "$WINEPREFIX/drive_c/users/idk/Desktop/Tor Browser/" "I2P/Tor Browser"
|
||||
WINE=$(which wine)
|
||||
if [ -z "$WINE" ]; then
|
||||
"./torbrowser-install-win64-${version}_${locale}.exe" /S #/D .
|
||||
cp -vr "$HOME/Desktop/Tor Browser/" "Tor Browser"
|
||||
else
|
||||
export WINEPREFIX=$(pwd)/../tmp
|
||||
$WINE "torbrowser-install-win64-${version}_${locale}.exe" /S #/D .
|
||||
cp -vr "$WINEPREFIX/drive_c/users/idk/Desktop/Tor Browser/" "Tor Browser"
|
||||
fi
|
15
unsigned.sh
15
unsigned.sh
@ -1,15 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
. "$SCRIPT_DIR/config.sh"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/config_override.sh" ]; then
|
||||
. "$SCRIPT_DIR/config_override.sh"
|
||||
fi
|
||||
|
||||
./clean.sh
|
||||
wsl make distclean
|
||||
./build.sh
|
||||
wsl make
|
Reference in New Issue
Block a user