diff --git a/index.html b/index.html index cf2344b..42a3108 100644 --- a/index.html +++ b/index.html @@ -17,6 +17,11 @@
+ + / +- 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 @@ .
-cp -rv Plugins/* /usr/share/nsis/Plugins/
-
- - To build a Debian package, you’ll also need -
-- Before you build, run the targets -
- make clean-extensions
- make extensions
-
- - to update the extensions to point to their latest versions. -
-
- After installing the dependencies and completing the preparations,
- just run
-
- make
-
- . This will produce three files:
-
- 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
-
- 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.
-
- 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
-
- 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
-
-
- To run without installing them system wide, unpack the
-
- 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
-
- - If you want to run the app-like i2pconfig browser, then follow the - same steps with app-profile*.tgz. -
- tar xvf app-profile-0.3.tgz
- cd app-profile
- ./i2pconfig.sh
-
-
- To generate a
-
- 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
-
-
- If you want to set up i2pconfig to run when you start the service
- with
-
- 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
-- 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. -- 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. -
-- In the near future, I’ll start providing a pre-built app image to ease the - build process for non-Windows users. -
-- End-to-End Windows build process using WSL -
-- - If you’ve already done this once, you can just use: - -
- ./build.sh && wsl make -
- - in -- git bash -
- - to automatically build an installer. -Prerequisites: @@ -363,20 +167,156 @@ %PATH%
+ 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/ +
+ Windows Build +
++ 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. ++ End-to-End Windows build process using WSL( + + Recommended + + ) +
++ + 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
- @@ -439,7 +379,7 @@ cd ..
- - Install Ubuntu Focal per Microsoft’s instructions + + Install Ubuntu Focal per Microsoft’s instructions
- End-to-End Windows build process using Cygwin + End-to-End Windows build process using Cygwin(More difficult than WSL for now)
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.
- @@ -578,7 +504,7 @@ cd ..
.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: + + + +