update readme

This commit is contained in:
idk
2022-09-16 17:48:53 -04:00
parent a366a31dce
commit b0aa8a4989

View File

@@ -13,7 +13,7 @@ Features:
Build Dependencies: Build Dependencies:
------------------- -------------------
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) :
- make - make
- nsis - nsis
@@ -30,36 +30,14 @@ and copy the content of `Plugins` to `/usr/share/nsis/Plugins`.
cp -rv Plugins/* /usr/share/nsis/Plugins/ cp -rv Plugins/* /usr/share/nsis/Plugins/
``` ```
To build a Debian package, you'll also need
- checkinstall
Preparation
-----------
Before you build, run the targets
make clean-extensions
make extensions
to update the extensions to point to their latest versions.
Windows Build Windows Build
------------- -------------
After installing the dependencies and completing the preparations, After installing the dependencies and completing the preparations,
just run `make`. This will produce three files: just run `make`. This will produce the install.exe - the windows
installer, which sets up shortcuts to launch Firefox on Windows.
profile.tgz - the firefox profile, plus a shell script which will When generating a build it's important to make sure that the
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 licenses for all the bundled softare are included. This should happen
automatically. When bundling software, describe the terms and where automatically. When bundling software, describe the terms and where
they are applied in the `LICENSE.index`, then add the full license they are applied in the `LICENSE.index`, then add the full license
@@ -70,6 +48,19 @@ target is run automatically during the build process.
Including a jpackaged I2P Router Including a jpackaged I2P Router
-------------------------------- --------------------------------
**Prerequisites:** You need to have OpenJDK 14 or greater installed and configured
with your `%JAVA_HOME%` environment variable configured and `%JAVA_HOME%/bin` on
your `%PATH%`. You need to have Apache Ant installed and configured with `%ANT_HOME%`
environment variable configured and `%ANT_HOME%/bin` on your `%PATH%`. You must have
Cygwin 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.
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 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 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` a Windows system and place it into a directory called `I2P` in your `i2p.firefox`
@@ -94,19 +85,13 @@ with a non-fatal warning.
In the near future, I'll start providing a pre-built app image to ease the In the near future, I'll start providing a pre-built app image to ease the
build process for non-Windows users. build process for non-Windows users.
End-to-End Windows build process using WSL End-to-End Windows build process using WSL(**Recommended**)
------------------------------------------ -----------------------------------------------------------
**If you've already done this once, you can just use:** `./build.sh && wsl make` **If you've already done this once, you can just use:** `./unsigned.sh`
**in `git bash`** to automatically build an installer. **in `git bash`** to automatically build an installer. If you
are using this method, you may use the `makensis` and `make` from
**Prerequisites:** You need to have OpenJDK 14 or greater installed and configured Ubuntu in WSL.
with your `%JAVA_HOME%` environment variable configured and `%JAVA_HOME%/bin` on
your `%PATH%`. You need to have Apache Ant installed and configured with `%ANT_HOME%`
environment variable configured and `%ANT_HOME%/bin` on your `%PATH%`. You must have
Cygwin 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.
1. [Set up Windows Subsystem for Linux per Microsoft's instructions](https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps) 1. [Set up Windows Subsystem for Linux per Microsoft's instructions](https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps)
2. [Install Ubuntu Focal per Microsoft's instructions](https://www.microsoft.com/store/apps/9n6svws3rx71) 2. [Install Ubuntu Focal per Microsoft's instructions](https://www.microsoft.com/store/apps/9n6svws3rx71)
@@ -133,21 +118,25 @@ you should select "Checkout as is, commit as is" and leave line-endings alone.
wsl make wsl make
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 I highly recommend you look into the Chocolatey package manager, which makes it much
easier to configure these tools and keep them up to date. easier to configure these tools and keep them up to date.
**Prerequisites:** You need to have OpenJDK 14 or greater installed and configured **Prerequisites:** In addition to the other prerequisites, you will need to to have
with your `%JAVA_HOME%` environment variable configured and `%JAVA_HOME%/bin` on `make` installed with `cygwin`. If you are using this method, you cannot use the
your `%PATH%`. You need to have Apache Ant installed and configured with `%ANT_HOME%` automated build scripts without a hack. You will need to create a file called `wsl`
environment variable configured and `%ANT_HOME%/bin` on your `%PATH%`. You must have in a place that is in the path used by `git-bash.exe` sessions, with the content:
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.
TODO: Add links to the respective instructions for each of these. ```
#! /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.
1. Run the Cygwin `setup-$arch.exe` for your platform to set up new packages. Select the `make` `jq` `dos2unix` and `curl` packages. 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. 2. Open a cygwin terminal.
@@ -179,16 +168,11 @@ Certificate which Windows will recognize. The current signer of the Windows
bundle is Zlatinb. Standard Windows signing tools are used. bundle is Zlatinb. Standard Windows signing tools are used.
```sh ```sh
# Release Copypasta ./release.sh
./clean.sh
wsl make distclean
wsl make clean-extensions
wsl make extensions
./build.sh
wsl make
./sign.sh
``` ```
produces the binary.
Building a signed update file Building a signed update file
----------------------------- -----------------------------