From 6f5ee3f0f4f75849d0a5c500abb838f046773c14 Mon Sep 17 00:00:00 2001
From: idk
- To build this, you will need the following software packages (all available in Debian) :
+ To build this, you will need the following software packages (all available in Debian and Ubuntu, see WSL section below) :
- In addition, you will need the NSIS plugin “ShellExecAsUser” which you can get from the
-
+ In addition, you will need the NSIS plugin “ShellExecAsUser” which you can get from the
+
NSIS Wiki Page
. In order to install
@@ -97,7 +105,7 @@
WSL
, you can download the:
-
+
7zip release
and copy the content of
@@ -110,215 +118,11 @@
.
- To build a Debian package, you’ll also need
-
- Before you build, run the targets
-
- to update the extensions to point to their latest versions.
-
- After installing the dependencies and completing the preparations,
- just run
-
- profile.tgz - the firefox profile, plus a shell script which will
- launch it if Firefox is found in the $PATH on Unix-Like operating
- systems.
- app-profile.tgz - the Firefox profile plus a launcher shell script,
- which will launch a
-
- modified
-
- Firefox without a URL bar as a router
- console wrapper.
- install.exe - the windows installer, which sets up shortcuts to
- launch Firefox on Windows.
-
- When generating a Windows build it’s important to make sure that the
- licenses for all the bundled softare are included. This should happen
- automatically. When bundling software, describe the terms and where
- they are applied in the
-
- It is possible to use these profiles on Linux and possibly other
- Unixes, if Firefox is already installed on the system. It can be
- installed system-wide using the
-
- To run without installing them system wide, unpack the
-
- If you want to run the app-like i2pconfig browser, then follow the
- same steps with app-profile*.tgz.
-
- To generate a
-
- If you want to set up i2pconfig to run when you start the service
- with
-
- 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
- a Windows system and place it into a directory called
-
- Assuming a working java and jpackage environment on your Windows system, the
- following command should generate a suitable “App Image” in a directory
- called “I2P.”
-
- Transfer the I2P directory to the machine where you build i2p.firefox if
- necessary, then complete the regular build instructions. If a jpackaged I2P router
- isn’t present to use at build time, the inclusion will be skipped automatically
- with a non-fatal warning.
-
- In the near future, I’ll start providing a pre-built app image to ease the
- build process for non-Windows users.
-
-
- If you’ve already done this once, you can just use:
-
-
Prerequisites:
@@ -363,20 +167,156 @@
%PATH%
I2P Easy-Install Bundle for Windows(Also/formerly)I2P Browsing Profile for Firefox
@@ -67,7 +75,7 @@
Build Dependencies:
- cp -rv Plugins/* /usr/share/nsis/Plugins/
-
-
-
- Preparation
-
-
- make clean-extensions
- make extensions
-
- Windows Build
-
-
- make
-
- . This will produce three files:
-
- LICENSE.index
-
- , then add the full license
- to the
-
- licenses
-
- directory. Then, add the full license to the
-
- cat
-
- command in the
-
- build/licenses
-
- make target. The build/licenses
- target is run automatically during the build process.
-
- Unix Support
-
-
- make install
-
- target. Running
-
- make install
-
- requires root, and requires
-
- make
-
- to have been run
- first. To install on Unix, system-wide, run:
-
- make
- sudo make install
-
- profile*.tgz
-
- to a location of your choice and run the
-
- i2pbrowser.sh
-
- script. This
- will start a Firefox profile configured to use I2P.
-
- tar xvf profile-0.3.tgz
- cd profile
- ./i2pbrowser.sh
-
- tar xvf app-profile-0.3.tgz
- cd app-profile
- ./i2pconfig.sh
-
- deb
-
- package, install the package
-
- checkinstall
-
- and run
- the
-
- make checkinstall
-
- target after building with
-
- make
-
- .
-
- make
- make checkinstall
- sudo apt install ./i2p-firefox*.deb
-
- sudo service i2p start
-
- then you can run the script:
- /usr/local/bin/i2p-config-service-setup
+
. You must have Git for Windows installed. When installing git for Windows,
- you should select “Checkout as is, commit as is” and leave line-endings alone.
+ you should select “Checkout as is, commit as is” and leave line-endings alone.
+ cp -rv Plugins/* /usr/share/nsis/Plugins/
Including a jpackaged I2P Router
-
- I2P
-
- in your
-
- i2p.firefox
-
- checkout.
-
- export I2P_VERSION=0.9.49
- cp -R ../i2p.i2p/pkg-temp/lib build/lib
- jpackage --type app-image --name I2P --app-version "$I2P_VERSION" \
- --verbose \
- --resource-dir build/lib \
- --input build/lib --main-jar router.jar --main-class net.i2p.router.RouterLaunch
-
- End-to-End Windows build process using WSL
-
-
- ./build.sh && wsl make
-
-
- in
-
- git bash
-
-
- to automatically build an installer.
-
+ 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
+
+ .
+
+
+ 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
+ a Windows system and place it into a directory called
+
+ I2P
+
+ in your
+
+ i2p.firefox
+
+ checkout. Building without a jpackage is no longer supported.
+
+ Assuming a working java and jpackage environment on your Windows system, the + following command should generate a suitable “App Image” in a directory + called “I2P.” +
+ export I2P_VERSION=0.9.49
+ cp -R ../i2p.i2p/pkg-temp/lib build/lib
+ jpackage --type app-image --name I2P --app-version "$I2P_VERSION" \
+ --verbose \
+ --resource-dir build/lib \
+ --input build/lib --main-jar router.jar --main-class net.i2p.router.RouterLaunch
+
+ + Transfer the I2P directory to the machine where you build i2p.firefox if + necessary, then complete the regular build instructions. If a jpackaged I2P router + isn’t present to use at build time, the inclusion will be skipped automatically + with a non-fatal warning. +
++ Pre-built app-images are available from my daily releases at: +
+ https://github.com/eyedeekay/i2p.plugins.firefox/releases/
+
+
+ After installing the dependencies and completing the preparations,
+ just run
+
+ make
+
+ . This will produce the install.exe - the windows
+ installer, which sets up the shortcuts to launch Firefox on Windows.
+ Building without a jpackage is no longer supported.
+
+ When generating a build it’s important to make sure that the
+ licenses for all the bundled softare are included. This should happen
+ automatically. When bundling software, describe the terms and where
+ they are applied in the
+
+ LICENSE.index
+
+ , then add the full license
+ to the
+
+ licenses
+
+ directory. Then, add the full license to the
+
+ cat
+
+ command in the
+
+ build/licenses
+
+ make target. The build/licenses
+ target is run automatically during the build process.
+
+
+ See
+
+ config.sh
+
+ and
+
+ i2pversion
+
+ for instructions on how to tweak
+
+
+ the build process. File an issue if you need help.
+
+
+
+ If you’ve already done this once, you can just use:
+
+
+ ./unsigned.sh
+
+
+ in
+
+ git bash
+
+
+ to automatically build an installer. If you
+ are using this method, you may use the
+
+ makensis
+
+ and
+
+ make
+
+ from
+ Ubuntu in WSL.
- - Set up Windows Subsystem for Linux per Microsoft’s instructions + + Set up Windows Subsystem for Linux per Microsoft’s instructions
- - Install Ubuntu Focal per Microsoft’s instructions + + Install Ubuntu Focal per Microsoft’s instructions
I highly recommend you look into the Chocolatey package manager, which makes it much
@@ -449,50 +389,36 @@ cd ..
Prerequisites:
- You need to have OpenJDK 14 or greater installed and configured
- with your
+ In addition to the other prerequisites, you will need to to have
- %JAVA_HOME%
+ make
- environment variable configured and
+ installed with
- %JAVA_HOME%/bin
+ cygwin
- on
- your
+ . If you are using this method, you cannot use the
+ automated build scripts without a hack. You will need to create a file called
- %PATH%
+ wsl
- . You need to have Apache Ant installed and configured with
+ in a place that is in the path used by
- %ANT_HOME%
+ git-bash.exe
- environment variable configured and
-
- %ANT_HOME%/bin
-
- on your
-
- %PATH%
-
- . You must have
- WSL and git bash installed. You must have
-
- NSIS.exe
-
- installed and
-
- makensis
-
- available on your
-
- %PATH%
-
- . You must have Git for Windows installed. When installing git for Windows, you should
- select “Checkout as is, commit as is” and leave line-endings alone.
+ sessions, with the content:
#! /usr/bin/env bash
+$@
+
- TODO: Add links to the respective instructions for each of these.
+ 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.
.exe
- file produced by NSIS, you’re almost ready to
+ file produced by NSIS, you’re almost ready to
do a release. As a final step, someone must sign the
.exe
@@ -587,15 +513,11 @@ cd ..
Certificate which Windows will recognize. The current signer of the Windows
bundle is Zlatinb. Standard Windows signing tools are used.
- # Release Copypasta
-./clean.sh
-wsl make distclean
-wsl make clean-extensions
-wsl make extensions
-./build.sh
-wsl make
-./sign.sh
+ ./release.sh
+
+ produces the binary.
+
Building a signed update file
@@ -614,23 +536,82 @@ wsl make
Docker Support
- You can use a Docker container to install this browser profile as well. In order
- to do this, you can run the commands:
+
+ MOVED, DEPRECATION NOTICE:
+
+ Most of this functionality has been moved
+ to
+
+ http://git.idk.i2p/idk/i2p.plugins.native
+
+ which is more stable,
+ easier to build and use, and easier to incorporate into other
+ projects.
- xhost + local:docker
- docker run -it --rm \
- --net=host \
- -e DISPLAY=unix$(DISPLAY) \
- -v /tmp/.X11-unix:/tmp/.X11-unix \
- geti2p/i2p.firefox firefox --profile /src/build/profile
-
+
+
+ Unix Support
+
- To build and run the container locally, clone this repository and run the
+
+ MOVED. DEPRECATION NOTICE:
+
+ Most of this functionality has been moved
+ to
+
+ http://git.idk.i2p/idk/i2p.plugins.native
+
+ which is more stable,
+ easier to build and use, and easier to incorporate into other
+ projects. It is the better option for nearly every non-Windows case
+ right now. You can get binary packages from:
- make run
-
+
- target.
+ or look at
+
+
+
+ for instructions on how to build your own packages. These packages are
+ unofficial! Although I do dogfood most of them and the
+
+ .jar
+
+ gets thorough
+ testing.
+
+
+
+ The only remotely interesting Unix functionality that remains in this
+
+
+ repository is the construction of a portable. You can use
+
+ targz.sh
+
+ to
+
+
+ generate that.
+
Issues
@@ -638,47 +619,110 @@ wsl make
To report issues against this browser profile, please file issues
at
-
+
the official Gitlab
or the
-
+
Github Mirror
. Issues
pertaining to the plugins may be reported to their upstream
- maintainers if it’s determined that our configuration is not at
+ maintainers if it’s determined that our configuration is not at
fault.
+
+ Credits
+
- NoScript is developed on Github by
-
- hackademix
-
- and the community:
- -
-
- https://github.com/hackademix/noscript
-
+ This profile manager makes use of a set of browser extensions which are largely the work of others.
+ It makes use of dependencies that are the work of others. In many ways, it’s merely an elaborate
+ configuration tool. A smart one, but a configuration tool nonetheless. Many thanks to the following
+ projects, developers, and communities:
+
+ Firefox and Chrome Extensions
+
+
+ -
+
+ NoScript - Giorgio Maone and others
+
+
+ -
+
+ HTTPS Everywhere - Electronic Frontier Foundation
+
+
+ -
+
+ uBlock Origin - Raymond Gorhill and others
+
+
+ -
+
+ LocalCDN - nobody and others
+
+
+ -
+
+ jShelter - Libor Polčák and others
+
+
+
+
+ Firefox Configuration Modifiations
+
+
- HTTPS Everywhere is developed on Github by the EFF:
- -
-
- https://github.com/EFForg/https-everywhere
+ You can find the license files for each of the these projects in the
+
+ src/i2p.firefox.*.profile/extensions/*
+
+ directory for Firefox, and the
+
+ src/i2p.chromium.*.profile/extensions/*.js/*
+
+ directories for Chromium within
+ the
+
+
+ i2p.plugins.firefox
+
+ project.
I2P in Private Browsing is developed on Gitlab and Github by idk and the community:
-
-
+
https://i2pgit.org/idk/I2P-in-Private-Browsing-Mode-Firefox
-
-
+
https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox
+
+
+
+ Get the source code:
+
+
+
+