GNU Icecat
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
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
- Firefox — Mozilla's web browser.