-
-
Notifications
You must be signed in to change notification settings - Fork 15.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
firefoxPackages.tor-browser*, tor-browser-bundle: remove #77452
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do think it would be nice to build TBB ourselves at some point, especially since it’s reproducible, but it’s clearly not something we’re up to right now, so I agree with removing.
It's currently causing more harm than good. |
pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
Show resolved
Hide resolved
75ff861
to
9e475d5
Compare
These are all based on firefox versions with known vulnerabilities exploited in the wild. We seriously shouldn't ship this in nixpkgs, especially not for sensitive applications as the Tor Browser. `tor-browser-bundle` is just a wrapper around `firefoxPackages.tor-browser`, so let's remove it too. `tor-browser-bundle-bin` is the much safer bet, which is individually downloaded from `dist.torproject.org` and just `patchelf`-ed locally to work on NixOS. Co-Authored-By: Alyssa Ross <hi@alyssa.is> Co-Authored-By: Andreas Rammhold <andreas@rammhold.de> Co-Authored-By: Graham Christensen <graham@grahamc.com>
9e475d5
to
1efaa03
Compare
@oxij might be interested, even if it's merged already. |
firefoxPackages.tor-browser*, tor-browser-bundle: remove (cherry picked from commit 39f9b46)
Yeah, mentioning me and @joachifm before merging would have been nice. Also, for vulnerable software there's a `knownVulnerabilities` mechanism, so I'd say 👎 to removing this completely anyway.
So, tl;dr: I'd say let's revert and mark those as vulnerable instead for now, while we work out the solution to the problems discussed below.
The main problem there is that tor-browser 9.0 became kinda broken after they integrated tor-button and tor-launcher into the browser itself. Firstly, tor-launcher is not a `.gitsubmodule`, thus the fetching of sources is kinda broken if you want to build it with the launcher. Secondly, the usual unbundling patches from SLNOS do work and the newer versions of it do build, but building with `--disable-tor-launcher` produces a broken tor-browser (about:settings crashes). Which, with the problems outlined below, resulted in the SLNOS maintainer of tor-browser patches throw a bit of a fit and resign. Which gives us the current state.
I've been fiddling with the code there to make `--disable-tor-launcher` work with some ugly patching around, and I even have a version that seems to work now (needs a couple more days of testing, though), but there are several problems.
In the first place, the idea of `firefoxPackages.tor-browser` was to make an app conforming to the UNIX-way, and the upstream tor-browser is now an non-UNIX agglomeration of many things (e.g., it wants to start tor daemon by itself now, thus throwing away the usual separate-user isolation and etc, which, btw, uncomfortably reminds me of libpulse of PulseAudio, ugh). Thus, even if we are okay with carrying a rather ugly patch to make `firefoxPackages.tor-browser` with `--disable-tor-launcher` actually work (which, I'd say, is probably okay), and, possibly, another patch to tame the integrated tor-button so that it would not throw a fit when working without direct access to tor daemon (which does not seem to be a problem now, but that needs testing), we would probably still need a separate version for our `tor-browser-bundle`, which would now need to be reworked to integrate with integrated tor-launcher (which I did not manage to successfully build yet).
So, in short, I can make fresh versions of `firefoxPackages.tor-browser` work in short order. But I can't make `tor-browser-bundle` work in short order, and I don't really want to spend time trying as `firefoxPackages.tor-browser` works for me.
/cc @joachifm on the latter point, I guess
|
Are there any users of firefoxPackages.tor-browser other than yourself?
|
Are there any users of firefoxPackages.tor-browser other than yourself?
Outside of SLNOS, I assume @joachifm is one such user, but other than that I don't think we have means to answer that question unless each user explicitly confesses. Unless Hydra now collects some statistics I'm not aware of.
In general, IMHO, firefoxPackages.tor-browser + uMatrix is the only sane web browser setup there currently is (reasonably secure, can reasonably resist fingerprinting, has proper origin isolation, can disable anything you want by default, including the newly Turing-complete CSS3 that can send results of computations to arbitrary servers via media queries, thus making it another arbitrary code interpreter in the browser, does not send stuff to any corporate servers, half the web MITMed by CloudFlare does not throw infinite Google CAPTCHAs at you, etc). I actually use it as my default browser, even when not using tor, because, IMHO, it's what firefox should have been.
So, if there are no other users of it in NixOS, which I doubt, given it worked perfectly okay and was updated within a week of upstream release for the previous 2.5 years, I can only shake my head in pity and regret at lost opportunities.
|
@oxij I don't think there's any pressure to revert immediately. For 19.09, derivations are marked as insecure, and users are directed to
I appreciate the effort you and the SLNOS community took into packaging tor-browser from source, but at least for nixpkgs, maintaining all the different flavours in the firefox expression has become a huge maintenance burden, especially if we're talking about keeping extra switches for versions already out of support of firefox by itself. As far as Tor Browser is concerned, I'd also like if we'd be able to provide a self-built Tor Browser. However, apart from the fact this needs to be done with a lot of caution, it should be based on a currently supported firefox version, maybe simply a set of patches on top. As you said by yourself, given the current SLNOS tor-browser maintainer kinda resigned, I don't feel like this should be introduced before these issues have been adressed. |
sanity
You assume old `tor-browser`, my reasoning assumes `tor-browser` version 9.0.4, like in #77507.
maintaining all the different flavours in the firefox expression has become a huge maintenance burden
IceCat takes literally two conditionals in `common.nix`, TorBrowser takes a bunch, but almost all of them are localized in `configureFlags` and `buildInputs`. Most of the burden there comes from different versions of the `firefox` itself, IceCat and TorBrowser burdens are uber-tiny compared to what they provide, IMHO.
Anyway, see #77507.
|
Yes, this is not only about tor-browser, but about keeping code for unsupported firefox versions in the tree. |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
Note that unless we build ourselves there is no tor-browser for ARM. |
These are all based on firefox versions with known vulnerabilities
exploited in the wild.
We seriously shouldn't ship this in nixpkgs, especially not for
sensitive applications as the Tor Browser.
tor-browser-bundle
is just a wrapper aroundfirefoxPackages.tor-browser
, so let's remove it too.tor-browser-bundle-bin
is the much safer bet, which is individuallydownloaded from
dist.torproject.org
and justpatchelf
-ed locally towork on NixOS.
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)