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 |
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 |
gmp-autoupdate
|
Allow Gecko Media Plugins (binary blobs) to be automatically downloaded and kept up-to-date in user profiles |
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 |
jumbo-build
|
Enable unified build - combines source files to speed up build process, but requires more memory |
libproxy
|
Enable libproxy support |
lto
|
Enable Link Time Optimization (LTO) |
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 support for PulseAudio sound server |
screencast
|
Enable support for remote desktop and screen cast using PipeWire |
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-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 and media-gfx/graphite2 instead of bundled |
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-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 |
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 |
wayland
|
Enable dev-libs/wayland backend |
wifi
|
Enable wireless network functions |
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 repositories:
root #
emerge --sync
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.