Compare commits

...

14 Commits

Author SHA1 Message Date
eyedeekay
a4ce1b9a8b Update version 2024-05-07 14:04:08 -04:00
eyedeekay
021c1cd1ba Fix CI files 2024-04-29 20:49:51 -04:00
eyedeekay
d06a8bb4bf fix CI sync file 2024-04-29 20:28:31 -04:00
eyedeekay
95c045e97c Bump version 2024-04-29 20:25:19 -04:00
eyedeekay
3047f70164 Sync using github CI 2024-04-29 20:11:39 -04:00
eyedeekay
c53baa20e9 Buildscript fixup 2024-04-29 20:09:51 -04:00
eyedeekay
a51e878877 update release notes 2024-04-08 19:02:35 -04:00
eyedeekay
9f5536e270 sync firefox version with I2P version 2024-04-08 18:48:46 -04:00
eyedeekay
2234e5d9d1 update release notes 2024-03-22 14:26:13 -04:00
eyedeekay
93962505c7 change name to TAG_VERSION, hyphenate 2024-03-22 14:23:34 -04:00
eyedeekay
0603ecf99a specify version based on tag for dev builds based on trunk routers 2024-03-22 14:14:41 -04:00
eyedeekay
5e698b3b74 Don't try to automatically insert HTML content 2024-03-20 15:49:23 -04:00
eyedeekay
cc55bd0169 fix tag in upload script 2024-03-20 15:07:44 -04:00
eyedeekay
7f47018cbf Assure exe is downloaded before generating release torrent 2024-03-20 15:04:44 -04:00
7 changed files with 73 additions and 48 deletions

22
.github/workflows/github-sync.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
# File: .github/workflows/github-sync.yml for i2p-hackers/i2p.firefox
on:
schedule:
- cron: "*/5 * * * *"
workflow_dispatch:
jobs:
repo-sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: repo-sync
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: repo-sync/github-sync@v2
with:
source_repo: "https://i2pgit.org/i2p-hackers/i2p.firefox"
source_branch: "master"
destination_branch: "master"
github_token: ${{ secrets.PAT }}

View File

@@ -58,14 +58,20 @@ if [ -z "$EXTRA" ]; then
fi
if [ "$VERSION" = master ]; then
VERSIONDATE="$(date +%m%d)"
export TAG_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
else
export TAG_VERSION="$VERSION"
fi
find . -name RouterVersion.java -exec sed -i "s|$OLDEXTRA|$EXTRA|g" {} \;
git switch - || :
git pull --tags
git checkout -b "i2p-$VERSION$VERSIONDATE-$EXTRACODE" || :
git commit -am "i2p-$VERSION$VERSIONDATE-$EXTRACODE" || :
git archive --format=tar.gz --output="$SCRIPT_DIR/../i2p.firefox/i2p.i2p.jpackage-build.tar.gz" "i2p-$VERSION$VERSIONDATE-$EXTRACODE"
git checkout "i2p-$VERSION$VERSIONDATE-$EXTRACODE" || :
git checkout -b "i2p-$TAG_VERSION-$VERSIONDATE-$EXTRACODE" || :
git commit -am "i2p-$TAG_VERSION-$VERSIONDATE-$EXTRACODE" || :
git archive --format=tar.gz --output="$SCRIPT_DIR/../i2p.firefox/i2p.i2p.jpackage-build.tar.gz" "i2p-$TAG_VERSION-$VERSIONDATE-$EXTRACODE"
git checkout "i2p-$TAG_VERSION-$VERSIONDATE-$EXTRACODE" || :
for i in $COUNT; do
echo -n "$i...."; sleep 1s

View File

@@ -38,7 +38,8 @@ echo "$I2P_VERSION"
export SUMMARY_HERE=$(head -n 1 "$SCRIPT_DIR/docs/RELEASE.md" | sed "s|# ||g")
echo "$SUMMARY_HERE"
export CONTENT_HERE=$(tail -n +2 "$SCRIPT_DIR/docs/RELEASE.md" | markdown)
echo "$CONTENT_HERE"
echo "$CONTENT_HERE" > news-content.html
unset CONTENT_HERE
./create_new_entry.sh
export DATE=$(date +%Y-%m-%d)
@@ -62,4 +63,5 @@ TORRENTJSON+=' }'
TORRENTJSON+=' }'
TORRENTJSON+=']'
echo "$TORRENTJSON" | jq
echo "$TORRENTJSON" | jq > "$I2P_NEWSXML/data/win/beta/releases.json"
echo "$TORRENTJSON" | jq > "$I2P_NEWSXML/data/win/testing/releases.json"

View File

@@ -27,6 +27,10 @@ if [ -f ./i2pversion_override ]; then
. ./i2pversion_override
fi
if [ ! -f "I2P-Easy-Install-Bundle-$I2P_VERSION.exe" ]; then
wget -c "https://github.com/eyedeekay/i2p.firefox/releases/download/i2p-firefox-$I2P_VERSION/I2P-Easy-Install-Bundle-$I2P_VERSION.exe"
fi
cp -v "I2P-Easy-Install-Bundle-$I2P_VERSION.exe" "I2P-Easy-Install-Bundle-$I2P_VERSION-signed.exe"
java -cp "$I2P_LIBS/*" net.i2p.crypto.SU3File sign -c ROUTER -f EXE I2P-Easy-Install-Bundle-$I2P_VERSION-signed.exe I2P-Easy-Install-Bundle-$I2P_VERSION-signed.su3 "$HOME/.i2p-plugin-keys/news-su3-keystore.ks" $I2P_VERSION $SIGNER
rm -f i2pwinupdate.su3.torrent
@@ -37,8 +41,8 @@ echo "~~~~~~~~~~"
MAGNET=$(transmission-show -m "i2pwinupdate.su3.torrent" 2>&1 3>&1 | tail -n 1)
echo "$MAGNET"
ZIPCHECKSUM=$(sha256sum "i2pwinupdate.su3")
echo github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "i2pwinupdate.su3" -l "$ZIPCHECKSUM" -t "$I2P_VERSION" -n "i2pwinupdate.su3"
github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "i2pwinupdate.su3" -l "$ZIPCHECKSUM" -t "$I2P_VERSION" -n "i2pwinupdate.su3"
echo github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "i2pwinupdate.su3" -l "$ZIPCHECKSUM" -t "i2p-firefox-$I2P_VERSION" -n "i2pwinupdate.su3"
github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "i2pwinupdate.su3" -l "$ZIPCHECKSUM" -t "i2p-firefox-$I2P_VERSION" -n "i2pwinupdate.su3"
ZIPCHECKSUM=$(sha256sum "i2pwinupdate.su3.torrent")
echo github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "i2pwinupdate.su3.torrent" -l "$ZIPCHECKSUM" -t "$I2P_VERSION" -n "i2pwinupdate.su3.torrent"
github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "i2pwinupdate.su3.torrent" -l "$ZIPCHECKSUM" -t "$I2P_VERSION" -n "i2pwinupdate.su3.torrent"
echo github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "i2pwinupdate.su3.torrent" -l "$ZIPCHECKSUM" -t "i2p-firefox-$I2P_VERSION" -n "i2pwinupdate.su3.torrent"
github-release upload -R -u "$GITHUB_USERNAME" -r "i2p.firefox" -f "i2pwinupdate.su3.torrent" -l "$ZIPCHECKSUM" -t "i2p-firefox-$I2P_VERSION" -n "i2pwinupdate.su3.torrent"

View File

@@ -1,33 +1,15 @@
# I2P Easy-Install Bundle for Windows 2.4.9
# I2P Easy-Install Bundle for Windows 2.5.0
This is a pre-release of the I2P Easy-Install Bundle for Windows.
This changes how the I2P bundle and browser profile manager are installed and integrated with the host system.
The Easy-Install bundle is now a "portable" system that can be moved to different locations within or between Windows file-systems while retaining all built-in functionality.
A shortcut for starting the I2P router is still provided by the installer for convenience, but the shortcuts for starting the I2P Browser are now integrated with the I2P desktop UI.
The browser profile manager itself has been split away from the monolithic I2P router+Java/jpackage, and moved into an I2P plugin managed by the router.
While this was done primarily to reduce how complex the existing code was, this also results in behavior which is closer to the main distribution of I2P for Windows and will lead to a more flexible installer, which can bundle additional default plugins and may be suitable for installation as a Windows service.
I2P Plugins can also be updated independently of the router that hosts them, so it will be possible to update the browser profile manager independently of the router itself.
It also means that the browser profile manager can be un-installed by uninstalling the plugin, and much more importantly that the browser profile manager is now compatible with all Java I2P distributions.
## 2.5.0 Release Notes.
**Why a dev build 3 weeks before the release?**
This release, I2P 2.5.0, provides more user-facing improvements than the 2.4.0 release, which was focused on implementing the NetDB isolation strategy.
By further delineating the components of the bundle, these changes also affected how the release process happens.
In particular the build process of each component has been encapsulated in a CI description which can be reproduced on a local PC.
This simplifies and automates the build process by ensuring that up-to-date build tools are installed in a brand-new container for every build.
In effect this should speed up the release process for I2P Easy-Install for Windows considerably.
This release is a test-run of the new process, so I can document what is going on.
It breaks down roughly like this:
New features have been added to I2PSnark like the ability to search through torrents. Bugs have been fixed to improve compatibility with other I2P torrent clients like BiglyBT and qBittorrent. We would like to thank all of the developers who have worked with libtorrent and qBittorrent to enable and improve their I2P support. New features have also been added to SusiMail including support for Markdown formatting in emails and the ability to drag-and-drop attachments into emails. Tunnels created with the Hidden Services manager now support "Keepalive" which improves performance and compatibility with web technologies, enabling more sophisticated I2P sites.
- It takes ~22 minutes to compile all the targets for the `i2p.plugins.firefox` and make the resulting artifacts available. During this process, I must insert 1 HSM and enter 1 password. (This part used to be about 30 steps, now it takes 1)
- It takes ~22 minutes to compile all the targets for the `i2p.firefox` project and make the resulting artifacts available. This process produces only unsigned artifacts identified by their hashes, and is non-interactive. (This part used to be around 60 steps the first time, and 40 steps each additional time)
- `i2p.firefox` updates are signed in their `.su3` form. The `NSIS`-powered `.exe` installer is the current updater. The next step is to sign *just this installer* and generate a torrent of the result. (This process used to depend on the previous build process and couldn't be done independently. Now it takes about 30 seconds)
- Generate and sign a newsfeed to notify the users of an update. This process is the only process that is **slower** when containerized, because there are dozens of feeds to be signed in their respective containers. It takes about an hour.
During this release we also made several tweaks to the NetDB to improve its resilience to spam and to improve the router's ability to reject suspicious messages. This was part of an effort to "audit" the implementation of "Sub-DB isolation" defenses from the 2.4.0 release. This investigation uncovered one minor isolation-piercing event which we repaired. This issue was discovered and fixed internally by the I2P team.
For you the end user, nothing much should change.
You'll get your updates a lot faster, and have more options available for testing.
The same installer is used for the updater, and the process is handled the same way.
However for developers, testers, and maintainers, this release will result in big changes for the better.
During this release several improvements were made to the process of releasing our downstream distributions for Android and Windows. This should result in improved delivery and availability for these downstream products.
This release still embeds a `2.4.0` Java I2P router. No changes have been made to update the embedded router.
Network behavior will be unchanged until the official `2.5.0` release.
As usual, we recommend that you update to this release. The best way to maintain security and help the network is to run the latest release.

View File

@@ -2,25 +2,34 @@
JNA_VERSION=5.12.1
export JNA_VERSION=5.12.1
I2PFIREFOX_VERSION=1.5.0
export I2PFIREFOX_VERSION=1.5.0
export GITHUB_TAG=$(git describe --tags --abbrev=0 | sed 's|i2p||g' | tr -d [a-z-])
VERSIONMAJOR=$(echo "$GITHUB_TAG" | cut -d . -f 1)
VERSIONMINOR=$(echo "$GITHUB_TAG" | cut -d . -f 2)
VERSIONBUILD=$(echo "$GITHUB_TAG" | cut -d . -f 3)
if [ -z "$VERSIONBUILD" ]; then
VERSIONBUILD=2
if [ -z "$VERSIONMAJOR" ]; then
VERSIONMAJOR=$(echo "$GITHUB_TAG" | cut -d . -f 1)
fi
if [ -z "$VERSIONMINOR" ]; then
VERSIONMINOR=4
VERSIONMINOR=$(echo "$GITHUB_TAG" | cut -d . -f 2)
fi
if [ -z "$VERSIONBUILD" ]; then
VERSIONBUILD=$(echo "$GITHUB_TAG" | cut -d . -f 3)
fi
if [ -z "$VERSIONMAJOR" ]; then
VERSIONMAJOR=0
VERSIONMAJOR=2
fi
if [ -z "$VERSIONMINOR" ]; then
VERSIONMINOR=5
fi
if [ -z "$VERSIONBUILD" ]; then
VERSIONBUILD=1
fi
I2P_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
export I2P_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
# Comment this out to build from an alternate branch or
# the tip of the master branch.
VERSION=i2p-2.4.0
export VERSION=i2p-2.4.0
#VERSION=i2p-2.4.0
#export VERSION=i2p-2.4.0
VERSION=master
export VERSION=master
I2PFIREFOX_VERSION=$I2P_VERSION
export I2PFIREFOX_VERSION=$I2P_VERSION

View File

@@ -1,3 +1,3 @@
!define VERSIONMAJOR 2
!define VERSIONMINOR 4
!define VERSIONBUILD 0
!define VERSIONMINOR 5
!define VERSIONBUILD 1