Installing icecat on gentoo

This guide uses commands surrounded in square brackets "[]", to indicate commands that are optional. I.e. if you are the superuser you don't need to run the "[sudo]" command. If you are a normal user, just remove the square brackets and type "sudo".

  1. First of all we need to download a copy of gnuzilla:
    git clone https://git.savannah.gnu.org/git/gnuzilla.git

    NOTE: I specifically highlighted the fact it says git here instead of cgit, "cgit" is the default URL for viewing git not cloning it.

  2. For the next stage we will need a couple of packages from emerge:

    [sudo] emerge mercurial perl dev-lang/python dev-python/pip
  3. We will now install jsonschema using pip:

    pip install jsonschema [--user]

    NOTE: If you use the [--user] option, then you should add $HOME/.local/bin to your path!
    If you are using BASH this is pretty easy (bash is the default, so if you haven't changed it, this is what you are using! Add to the end of the ~/.bashrc file:
    export PATH="$HOME/.local/bin:$PATH"

  4. We will now open cpan:

    cpan

    You should now see a new blinking cursor that says: [cpan]>"

    From here we will install the latest /File-Rename/ because the gentoo version is rather outdated (2022/02/22)!

    install /File-Rename/
    exit
  5. Now we will check that we have all the correct dependencies!

    cd gnuzilla
    ./makeicecat

    This should give you some warnings if anything "makeicecat" needs is missing (you will be installing more dependencies later down the road)

  6. Now that you have ran the above command, we can move to the output folder and create a new objdir folder

    cd ./output
    mkdir objdir
    cd objdir
  7. If you DO NOT have pulseaudio installed you will need media-libs/libpulse because this will give you some sound output (with systemd)! I would recommend you use a full pulseaudio install with the USE="pulseaudio" flag (because it gives a lot more control and a lot of supported devices).

    [sudo] emerge media-libs/libpulse
  8. Now we need to install even more dependencies (using cargo). If you DO NOT already have cargo installed you will need rust

    [sudo] emerge dev-lang/rust

    When you have rust, you can then install via cargo:

    cargo install cbindgen

    If you have not done so already, you will need to add "~/.cargo/bin" to your path, this can be done by adding export PATH="$HOME/.cargo/bin:$PATH" to your .bashrc

  9. The next install (the installation of clang, which I seem to remember took quite a long time, even on my R7 2700x) requires you add a new value to your USE flag. If you haven't done this before, don't worry it isn't hard.
    First we will open the "/etc/portage/make.conf" file, I will be using nano, because it is easy for beginners (if you don't have it installed: [sudo] emerge nano

    [sudo] nano /etc/portage/make.conf

    Now look for the line that says USE="........". Inside the strings, add a space, and type abi_x86_32

    For example, my use variable currently reads:

    USE="X nvidia postproc abi_x86_32 pulseaudio openh264 alsa minizip gtk"
  10. Install the clang compiler (and make a couple of cups of tea), due to how long this takes, you may want to combine this command with the next one, so it does it all in one go

    [sudo] emerge clang
  11. Now for even more dependencies!

    [sudo] emerge net-libs/nodejs app-arch/zip dev-libs/dbus-glib
  12. Double-check you are in the ./gnuzilla/output/objdir directory. If you aren't cd there!

    Now for the configuration of icecat

    ../icecat-(ver-num)/configure.in --with-l10-base=../icecat-(ver-num)/l10n --with-libclang-path=/usr/lib/llvm/13/lib64/

    Replace (ver-num) with the version you are installing, the original command I wrote was:

    ./icecat-91.6.0/configure.in --with-l10n-base=../icecat-91.6.0/l10n --with-libclang-path=/usr/lib/llvm/13/lib64/

    NOTE: This may change with future versions due to changes in the llvm directory, if the clang fails, try search your /usr/lib/llvm to see if the number has changed.

  13. Now we'll compile, I have 8 logical processors and 16gb of ram, so I'll be sticking to make -j8, if you don't know what you have (it'll take a long time) but you can be safe and simple type make.

    make -j8
  14. Now for the installation, installation isn't necessary, feel free to use it in this build folder if you really want to!

    [sudo] make install

NOTES:
If you want to watch YouTube:
[sudo] emerge media-libs/x264