GNU Icecat

From Gentoo Wiki
Jump to:navigation Jump to:search
Icecat-gentoo-desktop.png

GNU icecat is a web browser developed by the GNU project that is entirely Free Software. The GNU project's goal is to make a web browser that doesn't load any proprietary software in any form, such as proprietary JavaScript, Digital Rights Management software and proprietary extensions.

Icecat is based on Firefox.

Installation

USE flags

Note
These USE flags are for www-client/firefox, but they also apply for Icecat.

USE flags for www-client/firefox Firefox Web Browser

+X Add support for X11
+clang Use Clang compiler instead of GCC
+gmp-autoupdate Allow Gecko Media Plugins (binary blobs) to be automatically downloaded and kept up-to-date in user profiles
+jumbo-build Enable unified build - combines source files to speed up build process, but requires more memory
+system-av1 Use the system-wide media-libs/dav1d and media-libs/libaom library instead of bundled
+system-harfbuzz Use the system-wide media-libs/harfbuzz instead of bundled and media-gfx/graphite2 in most cases
+system-icu Use the system-wide dev-libs/icu instead of bundled
+system-jpeg Use the system-wide media-libs/libjpeg-turbo instead of bundled
+system-libevent Use the system-wide dev-libs/libevent instead of bundled
+system-libvpx Use the system-wide media-libs/libvpx instead of bundled
+system-webp Use the system-wide media-libs/libwebp instead of bundled
+telemetry Send anonymized usage information to upstream so they can better understand our users
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
eme-free Disable EME (DRM plugin) capability at build time
geckodriver Enable WebDriver support
gnome-shell Integrate with gnome-base/gnome-shell search
hardened Activate default security enhancements for toolchain (gcc, glibc, binutils)
hwaccel Force-enable hardware-accelerated rendering (Mozilla bug 594876)
jack Add support for the JACK Audio Connection Kit
libproxy Enable libproxy support
openh264 Use media-libs/openh264 for H264 support instead of downloading binary blob from Mozilla at runtime
pgo Add support for profile-guided optimization for faster binaries - this option will double the compile time
pulseaudio Add sound server support via media-libs/libpulse (may be PulseAudio or Pipewire, or apulse if installed)
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
sndio Enable support for the media-sound/sndio backend
system-png Use the system-wide media-libs/libpng instead of bundled (requires APNG patches)
system-python-libs Use system's python site instead of bundled python libraries
valgrind Enable annotations for accuracy. May slow down runtime slightly. Safe to use even if not currently using dev-debug/valgrind
wasm Sandbox certain third-party libraries through WebAssembly using RLBox
wayland Enable dev-libs/wayland backend
wifi Enable necko-wifi for NetworkManager integration, and access point MAC address scanning for better precision with opt-in geolocation services

Emerge

Icecat is available in the src_prepare-overlay overlay repository.

Install app-eselect/eselect-repository and dev-vcs/git

root #emerge --ask dev-vcs/git app-eselect/eselect-repository

Enable src_prepare-overlay:

root #eselect repository enable src_prepare-overlay

Sync the repository:

root #emerge --sync src_prepare-overlay

and finally, emerge icecat:

root #emerge --ask www-client/icecat

Removal

To remove GNU Icecat:

root #emerge --ask --depclean --verbose www-client/icecat

To remove unused dependencies:

root #emerge -c

Features

privacy-preserving addons

Many users are concerned about their privacy (tracking, bubbling, targeting, etc) while web browsing. This is a list of Free addons that might add extra level of privacy to their browsing.

The add-on menu can be accessed by navigating the following menus: Hamburger button (top right under the X) → Add-ons

Pre-installed addons

GNU LibreJS

GNU LibreJS aims to address the JavaScript problem described in Richard Stallman's article The JavaScript Trap. It blocks proprietary nontrivial JavaScript while allowing JavaScript that is free and/or trivial.

Mozilla Add-ons page: https://addons.mozilla.org/en-US/firefox/addon/librejs/

Git repository: https://git.savannah.gnu.org/cgit/librejs.git/

Wikipedia: https://en.wikipedia.org/wiki/GNU_LibreJS

homepage: https://www.gnu.org/software/librejs/

Https-Everywhere

This extension encrypts your communications with many major websites, making your browsing more secure. You can also enable https-only mode in the Icecat settings.

Mozilla Add-ons page: https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/

Git repository: https://github.com/EFForg/https-everywhere

Homepage: https://eff.org/https-everywhere

Other

The consequence of disabling proprietary JavaScript on most website is, that they tend to break. There are extensions that try to solve this issue with workarrounds that don't involve running proprietary software. These include:

  • disable-polymer-youtube - this extension disables the "polymer" framework that google introduced to youtube.com in 2017.
  • LibreJS/USPS compatibility
  • LibrifyJS: libgen.me - Libre replacement for JavaScript blocked by GNU LibreJS on libgen.me
  • Reveal hidden HTML - An add-on that is meant to fix CSS related bugs when blocking proprietary JavaScript.
  • Searxes' Third-party Request Blocker - Prevent from connecting to a third-party resource without user consent.
  • ViewTube - Makes watching videos without proprietary JavaScript more convenient.
  • Workarounds for nonfree JS

See also