update index.html

This commit is contained in:
idk
2022-09-16 18:04:01 -04:00
parent 184b5d9e0f
commit 6f5ee3f0f4
3 changed files with 346 additions and 290 deletions

View File

@ -17,6 +17,11 @@
<div id="shownav">
<div id="hidenav">
<ul>
<li>
<a href="..">
Up one level ^
</a>
</li>
<li>
<a href="index.html">
index
@ -40,6 +45,9 @@
</div>
</div>
</div>
<a id="returnhome" href="/">
/
</a>
<h1>
I2P Easy-Install Bundle for Windows(Also/formerly)I2P Browsing Profile for Firefox
</h1>
@ -67,7 +75,7 @@
Build Dependencies:
</h2>
<p>
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) :
</p>
<ul>
<li>
@ -87,8 +95,8 @@
</li>
</ul>
<p>
In addition, you will need the NSIS plugin ShellExecAsUser which you can get from the
<a href="https://nsis.sourceforge.io/ShellExecAsUser_plug-in" rel="nofollow">
In addition, you will need the NSIS plugin &ldquo;ShellExecAsUser&rdquo; which you can get from the
<a href="https://nsis.sourceforge.io/ShellExecAsUser_plug-in">
NSIS Wiki Page
</a>
. In order to install
@ -97,7 +105,7 @@
WSL
</code>
, you can download the:
<a href="https://nsis.sourceforge.io/mediawiki/images/6/68/ShellExecAsUser_amd64-Unicode.7z" rel="nofollow">
<a href="https://nsis.sourceforge.io/mediawiki/images/6/68/ShellExecAsUser_amd64-Unicode.7z">
7zip release
</a>
and copy the content of
@ -110,215 +118,11 @@
</code>
.
</p>
<pre><code>cp -rv Plugins/* /usr/share/nsis/Plugins/
</code></pre>
<p>
To build a Debian package, youll also need
</p>
<ul>
<li>
checkinstall
</li>
</ul>
<h2>
Preparation
</h2>
<p>
Before you build, run the targets
</p>
<pre><code> make clean-extensions
make extensions
</code></pre>
<p>
to update the extensions to point to their latest versions.
</p>
<h2>
Windows Build
</h2>
<p>
After installing the dependencies and completing the preparations,
just run
<code>
make
</code>
. This will produce three files:
</p>
<p>
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
<em>
modified
</em>
Firefox without a URL bar as a router
console wrapper.
install.exe - the windows installer, which sets up shortcuts to
launch Firefox on Windows.
</p>
<p>
When generating a Windows build its 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
<code>
LICENSE.index
</code>
, then add the full license
to the
<code>
licenses
</code>
directory. Then, add the full license to the
<code>
cat
</code>
command in the
<code>
build/licenses
</code>
make target. The build/licenses
target is run automatically during the build process.
</p>
<h2>
Unix Support
</h2>
<p>
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
<code>
make install
</code>
target. Running
<code>
make install
</code>
requires root, and requires
<code>
make
</code>
to have been run
first. To install on Unix, system-wide, run:
</p>
<pre><code> make
sudo make install
</code></pre>
<p>
To run without installing them system wide, unpack the
<code>
profile*.tgz
</code>
to a location of your choice and run the
<code>
i2pbrowser.sh
</code>
script. This
will start a Firefox profile configured to use I2P.
</p>
<pre><code> tar xvf profile-0.3.tgz
cd profile
./i2pbrowser.sh
</code></pre>
<p>
If you want to run the app-like i2pconfig browser, then follow the
same steps with app-profile*.tgz.
</p>
<pre><code> tar xvf app-profile-0.3.tgz
cd app-profile
./i2pconfig.sh
</code></pre>
<p>
To generate a
<code>
deb
</code>
package, install the package
<code>
checkinstall
</code>
and run
the
<code>
make checkinstall
</code>
target after building with
<code>
make
</code>
.
</p>
<pre><code> make
make checkinstall
sudo apt install ./i2p-firefox*.deb
</code></pre>
<p>
If you want to set up i2pconfig to run when you start the service
with
<code>
sudo service i2p start
</code>
then you can run the script:
</p>
<pre><code> /usr/local/bin/i2p-config-service-setup
<pre><code class="language-sh">cp -rv Plugins/* /usr/share/nsis/Plugins/
</code></pre>
<h2>
Including a jpackaged I2P Router
</h2>
<p>
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
<code>
I2P
</code>
in your
<code>
i2p.firefox
</code>
checkout.
</p>
<p>
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.”
</p>
<pre><code> export I2P_VERSION=0.9.49
cp -R ../i2p.i2p/pkg-temp/lib build/lib
jpackage --type app-image --name I2P --app-version &#34;$I2P_VERSION&#34; \
--verbose \
--resource-dir build/lib \
--input build/lib --main-jar router.jar --main-class net.i2p.router.RouterLaunch
</code></pre>
<p>
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
isnt present to use at build time, the inclusion will be skipped automatically
with a non-fatal warning.
</p>
<p>
In the near future, Ill start providing a pre-built app image to ease the
build process for non-Windows users.
</p>
<h2>
End-to-End Windows build process using WSL
</h2>
<p>
<strong>
If youve already done this once, you can just use:
</strong>
<code>
./build.sh &amp;&amp; wsl make
</code>
<strong>
in
<code>
git bash
</code>
</strong>
to automatically build an installer.
</p>
<p>
<strong>
Prerequisites:
@ -363,20 +167,156 @@
%PATH%
</code>
. 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 &ldquo;Checkout as is, commit as is&rdquo; and leave line-endings alone.
</p>
<p>
TODO: Add links to the respective instructions for each of these.
</p>
<p>
<strong>
Note that after the dependencies are installed, this step is automated
</strong>
<strong>
with
<code>
./build.sh
</code>
.
</strong>
</p>
<p>
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 &ldquo;App Image&rdquo; on
a Windows system and place it into a directory called
<code>
I2P
</code>
in your
<code>
i2p.firefox
</code>
checkout. Building without a jpackage is no longer supported.
</p>
<p>
Assuming a working java and jpackage environment on your Windows system, the
following command should generate a suitable &ldquo;App Image&rdquo; in a directory
called &ldquo;I2P.&rdquo;
</p>
<pre><code> export I2P_VERSION=0.9.49
cp -R ../i2p.i2p/pkg-temp/lib build/lib
jpackage --type app-image --name I2P --app-version &quot;$I2P_VERSION&quot; \
--verbose \
--resource-dir build/lib \
--input build/lib --main-jar router.jar --main-class net.i2p.router.RouterLaunch
</code></pre>
<p>
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&rsquo;t present to use at build time, the inclusion will be skipped automatically
with a non-fatal warning.
</p>
<p>
Pre-built app-images are available from my daily releases at:
</p>
<pre><code> https://github.com/eyedeekay/i2p.plugins.firefox/releases/
</code></pre>
<h2>
Windows Build
</h2>
<p>
After installing the dependencies and completing the preparations,
just run
<code>
make
</code>
. 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.
</p>
<p>
When generating a build it&rsquo;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
<code>
LICENSE.index
</code>
, then add the full license
to the
<code>
licenses
</code>
directory. Then, add the full license to the
<code>
cat
</code>
command in the
<code>
build/licenses
</code>
make target. The build/licenses
target is run automatically during the build process.
</p>
<h2>
End-to-End Windows build process using WSL(
<strong>
Recommended
</strong>
)
</h2>
<p>
<strong>
See
<code>
config.sh
</code>
and
<code>
i2pversion
</code>
for instructions on how to tweak
</strong>
<strong>
the build process. File an issue if you need help.
</strong>
</p>
<p>
<strong>
If you&rsquo;ve already done this once, you can just use:
</strong>
<code>
./unsigned.sh
</code>
<strong>
in
<code>
git bash
</code>
</strong>
to automatically build an installer. If you
are using this method, you may use the
<code>
makensis
</code>
and
<code>
make
</code>
from
Ubuntu in WSL.
</p>
<ol>
<li>
<p>
<a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps" rel="nofollow">
Set up Windows Subsystem for Linux per Microsofts instructions
<a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps">
Set up Windows Subsystem for Linux per Microsoft&rsquo;s instructions
</a>
</p>
</li>
<li>
<p>
<a href="https://www.microsoft.com/store/apps/9n6svws3rx71" rel="nofollow">
Install Ubuntu Focal per Microsofts instructions
<a href="https://www.microsoft.com/store/apps/9n6svws3rx71">
Install Ubuntu Focal per Microsoft&rsquo;s instructions
</a>
</p>
</li>
@ -439,7 +379,7 @@ cd ..
</li>
</ol>
<h2>
End-to-End Windows build process using Cygwin
End-to-End Windows build process using Cygwin(More difficult than WSL for now)
</h2>
<p>
I highly recommend you look into the Chocolatey package manager, which makes it much
@ -449,50 +389,36 @@ cd ..
<strong>
Prerequisites:
</strong>
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
<code>
%JAVA_HOME%
make
</code>
environment variable configured and
installed with
<code>
%JAVA_HOME%/bin
cygwin
</code>
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
<code>
%PATH%
wsl
</code>
. You need to have Apache Ant installed and configured with
in a place that is in the path used by
<code>
%ANT_HOME%
git-bash.exe
</code>
environment variable configured and
<code>
%ANT_HOME%/bin
</code>
on your
<code>
%PATH%
</code>
. You must have
WSL and git bash installed. You must have
<code>
NSIS.exe
</code>
installed and
<code>
makensis
</code>
available on your
<code>
%PATH%
</code>
. 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:
</p>
<pre><code>#! /usr/bin/env bash
$@
</code></pre>
<p>
TODO: Add links to the respective instructions for each of these.
For our purposes, as long as everything else is set up and you&rsquo;re using git bash,
that is enough to make the scripts compatible with
<code>
cygwin
</code>
. Cygwin builds without
git bash are not likely to work.
</p>
<ol>
<li>
@ -578,7 +504,7 @@ cd ..
<code>
.exe
</code>
file produced by NSIS, youre almost ready to
file produced by NSIS, you&rsquo;re almost ready to
do a release. As a final step, someone must sign the
<code>
.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.
</p>
<pre><code># Release Copypasta
./clean.sh
wsl make distclean
wsl make clean-extensions
wsl make extensions
./build.sh
wsl make
./sign.sh
<pre><code class="language-sh">./release.sh
</code></pre>
<p>
produces the binary.
</p>
<h2>
Building a signed update file
</h2>
@ -614,23 +536,82 @@ wsl make
Docker Support
</h2>
<p>
You can use a Docker container to install this browser profile as well. In order
to do this, you can run the commands:
<strong>
MOVED, DEPRECATION NOTICE:
</strong>
Most of this functionality has been moved
to
<a href="http://git.idk.i2p/idk/i2p.plugins.native">
http://git.idk.i2p/idk/i2p.plugins.native
</a>
which is more stable,
easier to build and use, and easier to incorporate into other
projects.
</p>
<pre><code> 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
</code></pre>
<ul>
<li>
<a href="https://i2pgit.org/idk/i2p.plugins.firefox/-/blob/master/docker.sh">
https://i2pgit.org/idk/i2p.plugins.firefox/-/blob/master/docker.sh
</a>
</li>
</ul>
<h2>
Unix Support
</h2>
<p>
To build and run the container locally, clone this repository and run the
<strong>
MOVED. DEPRECATION NOTICE:
</strong>
Most of this functionality has been moved
to
<a href="http://git.idk.i2p/idk/i2p.plugins.native">
http://git.idk.i2p/idk/i2p.plugins.native
</a>
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:
</p>
<pre><code> make run
</code></pre>
<ul>
<li>
<a href="https://github.com/eyedeekay/i2p.plugins.firefox/releases">
https://github.com/eyedeekay/i2p.plugins.firefox/releases
</a>
</li>
</ul>
<p>
target.
or look at
</p>
<ul>
<li>
<a href="https://i2pgit.org/idk/i2p.plugins.firefox/-/blob/master/PACKAGES.md">
https://i2pgit.org/idk/i2p.plugins.firefox/-/blob/master/PACKAGES.md
</a>
</li>
</ul>
<p>
for instructions on how to build your own packages. These packages are
unofficial! Although I do dogfood most of them and the
<code>
.jar
</code>
gets thorough
testing.
</p>
<p>
<strong>
The only remotely interesting Unix functionality that remains in this
</strong>
<strong>
repository is the construction of a portable. You can use
<code>
targz.sh
</code>
to
</strong>
<strong>
generate that.
</strong>
</p>
<h2>
Issues
@ -638,47 +619,110 @@ wsl make
<p>
To report issues against this browser profile, please file issues
at
<a href="https://i2pgit.org/i2p-hackers/i2p.firefox" rel="nofollow">
<a href="https://i2pgit.org/i2p-hackers/i2p.firefox">
the official Gitlab
</a>
or the
<a href="https://github.com/i2p/i2p.firefox" rel="nofollow">
<a href="https://github.com/i2p/i2p.firefox">
Github Mirror
</a>
. Issues
pertaining to the plugins may be reported to their upstream
maintainers if its determined that our configuration is not at
maintainers if it&rsquo;s determined that our configuration is not at
fault.
</p>
<h2>
Credits
</h2>
<p>
NoScript is developed on Github by
<code>
hackademix
</code>
and the community:
-
<a href="https://github.com/hackademix/noscript" rel="nofollow">
https://github.com/hackademix/noscript
</a>
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&rsquo;s merely an elaborate
configuration tool. A smart one, but a configuration tool nonetheless. Many thanks to the following
projects, developers, and communities:
</p>
<h3>
Firefox and Chrome Extensions
</h3>
<ul>
<li>
<a href="https://noscript.net">
NoScript - Giorgio Maone and others
</a>
</li>
<li>
<a href="https://www.eff.org/https-everywhere">
HTTPS Everywhere - Electronic Frontier Foundation
</a>
</li>
<li>
<a href="https://ublockorigin.com/">
uBlock Origin - Raymond Gorhill and others
</a>
</li>
<li>
<a href="https://www.localcdn.org/">
LocalCDN - nobody and others
</a>
</li>
<li>
<a href="https://jshelter.org/">
jShelter - Libor Polčák and others
</a>
</li>
</ul>
<h3>
Firefox Configuration Modifiations
</h3>
<ul>
<li>
<a href="https://github.com/arkenfox/user.js/">
Arkenfox - Thorin Oakenpants and Others
</a>
</li>
</ul>
<p>
HTTPS Everywhere is developed on Github by the EFF:
-
<a href="https://github.com/EFForg/https-everywhere" rel="nofollow">
https://github.com/EFForg/https-everywhere
You can find the license files for each of the these projects in the
<code>
src/i2p.firefox.*.profile/extensions/*
</code>
directory for Firefox, and the
<code>
src/i2p.chromium.*.profile/extensions/*.js/*
</code>
directories for Chromium within
the
<a href="https://i2pgit.org/idk/i2p.plugins.firefox">
<code>
i2p.plugins.firefox
</code>
</a>
project.
</p>
<p>
I2P in Private Browsing is developed on Gitlab and Github by idk and the community:
-
<a href="https://i2pgit.org/idk/I2P-in-Private-Browsing-Mode-Firefox" rel="nofollow">
<a href="https://i2pgit.org/idk/I2P-in-Private-Browsing-Mode-Firefox">
https://i2pgit.org/idk/I2P-in-Private-Browsing-Mode-Firefox
</a>
-
<a href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox" rel="nofollow">
<a href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox">
https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox
</a>
</p>
<div id="sourcecode">
<span id="sourcehead">
<strong>
Get the source code:
</strong>
</span>
<ul>
<li>
<a href="https://github.com/eyedeekay/i2p.firefox">
Source Repository: (https://github.com/eyedeekay/i2p.firefox)
</a>
</li>
</ul>
</div>
<div>
<a href="#show">
Show license

View File

@ -8,3 +8,8 @@
#hidenav {display:block; }
#shownav:target {display: block; }
#hidenav:target {display: none; }
#donate {display:none; }
#hidedonate {display:block; }
#donate:target {display: block; }
#hidedonate:target {display: none; }

View File

@ -153,5 +153,12 @@ input {
#navbar {
float: right;
width: 10%;
width: 15%;
}
#returnhome {
font-size: xxx-large;
display: inline;
}
h1 {
display: inline;
}