2018-07-21 01:44:44 +01:00
|
|
|
{ lib, callPackage, stdenv, fetchurl, fetchFromGitHub, fetchpatch, python3 }:
|
2017-03-27 13:33:00 +01:00
|
|
|
|
2018-03-06 22:33:11 +00:00
|
|
|
let
|
|
|
|
|
2018-10-01 01:00:00 +01:00
|
|
|
common = opts: callPackage (import ./common.nix opts) {};
|
2018-03-06 22:33:11 +00:00
|
|
|
|
|
|
|
nixpkgsPatches = [
|
|
|
|
./env_var_for_system_dir.patch
|
|
|
|
];
|
|
|
|
|
|
|
|
in
|
2017-03-27 13:33:00 +01:00
|
|
|
|
|
|
|
rec {
|
|
|
|
|
|
|
|
firefox = common rec {
|
|
|
|
pname = "firefox";
|
2018-11-16 14:05:24 +00:00
|
|
|
ffversion = "63.0.3";
|
2018-05-11 01:09:36 +01:00
|
|
|
src = fetchurl {
|
2018-10-01 01:00:00 +01:00
|
|
|
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
2018-11-16 14:05:24 +00:00
|
|
|
sha512 = "319bdkvk1r53i8l9ilz9ffllp2yxn02glhjsf26bqchw0c4ym8y6d62j1g7s55lddzqka3kcsmzba0k8wna1aw3pydf7v84nyhaw1bc";
|
2017-03-27 13:33:00 +01:00
|
|
|
};
|
|
|
|
|
2018-03-06 22:33:11 +00:00
|
|
|
patches = nixpkgsPatches ++ [
|
2018-02-16 13:59:11 +00:00
|
|
|
./no-buildconfig.patch
|
2018-06-29 19:55:43 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
extraNativeBuildInputs = [ python3 ];
|
2017-08-11 20:06:48 +01:00
|
|
|
|
2017-03-27 13:33:00 +01:00
|
|
|
meta = {
|
|
|
|
description = "A web browser built from Firefox source tree";
|
|
|
|
homepage = http://www.mozilla.com/en-US/firefox/;
|
|
|
|
maintainers = with lib.maintainers; [ eelco ];
|
2018-07-10 23:10:04 +01:00
|
|
|
platforms = lib.platforms.unix;
|
2018-08-06 15:13:50 +01:00
|
|
|
license = lib.licenses.mpl20;
|
2017-03-27 13:33:00 +01:00
|
|
|
};
|
|
|
|
updateScript = callPackage ./update.nix {
|
|
|
|
attrPath = "firefox-unwrapped";
|
2018-11-16 14:04:54 +00:00
|
|
|
versionKey = "ffversion";
|
2017-03-27 13:33:00 +01:00
|
|
|
};
|
2018-10-01 01:00:00 +01:00
|
|
|
};
|
2017-03-27 13:33:00 +01:00
|
|
|
|
2018-05-11 01:10:15 +01:00
|
|
|
firefox-esr-52 = common rec {
|
2017-03-27 13:33:00 +01:00
|
|
|
pname = "firefox-esr";
|
2018-10-01 01:00:00 +01:00
|
|
|
ffversion = "52.9.0esr";
|
2017-03-27 13:33:00 +01:00
|
|
|
src = fetchurl {
|
2018-10-01 01:00:00 +01:00
|
|
|
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
2018-06-29 19:55:43 +01:00
|
|
|
sha512 = "bfca42668ca78a12a9fb56368f4aae5334b1f7a71966fbba4c32b9c5e6597aac79a6e340ac3966779d2d5563eb47c054ab33cc40bfb7306172138ccbd3adb2b9";
|
2017-03-27 13:33:00 +01:00
|
|
|
};
|
|
|
|
|
2018-06-29 19:55:43 +01:00
|
|
|
patches = nixpkgsPatches ++ [
|
|
|
|
# this one is actually an omnipresent bug
|
|
|
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
|
|
|
|
./fix-pa-context-connect-retval.patch
|
|
|
|
];
|
2017-11-12 20:18:31 +00:00
|
|
|
|
2017-03-27 13:33:00 +01:00
|
|
|
meta = firefox.meta // {
|
|
|
|
description = "A web browser built from Firefox Extended Support Release source tree";
|
2018-09-06 15:32:44 +01:00
|
|
|
knownVulnerabilities = [ "Support ended in August 2018." ];
|
2017-03-27 13:33:00 +01:00
|
|
|
};
|
|
|
|
updateScript = callPackage ./update.nix {
|
2018-05-18 15:31:32 +01:00
|
|
|
attrPath = "firefox-esr-52-unwrapped";
|
2018-10-01 01:00:00 +01:00
|
|
|
ffversionSuffix = "esr";
|
2018-11-16 14:04:54 +00:00
|
|
|
versionKey = "ffversion";
|
2017-03-27 13:33:00 +01:00
|
|
|
};
|
2018-10-01 01:00:00 +01:00
|
|
|
};
|
2017-03-27 13:33:00 +01:00
|
|
|
|
2018-05-11 01:10:15 +01:00
|
|
|
firefox-esr-60 = common rec {
|
|
|
|
pname = "firefox-esr";
|
firefox-esr-60: 60.2.2 -> 60.3.0 [critical security fixes]
This update bumps the package to the latest stable version containing a
few security fixes:
- CVE-2018-12392: Crash with nested event loops
When manipulating user events in nested loops while opening a document
through script, it is possible to trigger a potentially exploitable
crash due to poor event handling.
- CVE-2018-12393: Integer overflow during Unicode conversion while loading JavaScript
A potential vulnerability was found in 32-bit builds where an integer
overflow during the conversion of scripts to an internal UTF-16
representation could result in allocating a buffer too small for the
conversion. This leads to a possible out-of-bounds write.
Note: 64-bit builds are not vulnerable to this issue.
- CVE-2018-12395: WebExtension bypass of domain restrictions through header rewriting
By rewriting the Host request headers using the webRequest API, a
WebExtension can bypass domain restrictions through domain fronting.
This would allow access to domains that share a host that are
otherwise restricted.
- CVE-2018-12396: WebExtension content scripts can execute in disallowed contexts
A vulnerability where a WebExtension can run content scripts in
disallowed contexts following navigation or other events. This allows
for potential privilege escalation by the WebExtension on sites where
content scripts should not be run.
- CVE-2018-12397: Missing warning prompt when WebExtension requests local file access
A WebExtension can request access to local files without the warning
prompt stating that the extension will "Access your data for all
websites" being displayed to the user. This allows extensions to run
content scripts in local pages without permission warnings when a
local file is opened.
- CVE-2018-12389: Memory safety bugs fixed in Firefox ESR 60.3
Mozilla developers and community members Daniel Veditz and Philipp
reported memory safety bugs present in Firefox ESR 60.2. Some of these
bugs showed evidence of memory corruption and we presume that with
enough effort that some of these could be exploited to run arbitrary
code.
- CVE-2018-12390: Memory safety bugs fixed in Firefox 63 and Firefox ESR 60.3
Mozilla developers and community members Christian Holler, Bob Owen,
Boris Zbarsky, Calixte Denizet, Jason Kratzer, Jed Davis, Taegeon Lee,
Philipp, Ronald Crane, Raul Gurzau, Gary Kwong, Tyson Smith, Raymond
Forbes, and Bogdan Tara reported memory safety bugs present in Firefox
62 and Firefox ESR 60.2. Some of these bugs showed evidence of memory
corruption and we presume that with enough effort that some of these
could be exploited to run arbitrary code.
Source: https://www.mozilla.org/en-US/security/advisories/mfsa2018-27/
2018-11-03 11:51:36 +00:00
|
|
|
ffversion = "60.3.0esr";
|
2018-05-11 01:10:15 +01:00
|
|
|
src = fetchurl {
|
2018-10-01 01:00:00 +01:00
|
|
|
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
2018-11-08 17:16:42 +00:00
|
|
|
sha512 = "7ded25a38835fbd73a58085e24ad83308afee1784a3bf853d75093c1500ad46988f5865c106abdae938cfbd1fb10746cc1795ece7994fd7eba8a002158cf1bcd";
|
2018-05-11 01:10:15 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
patches = nixpkgsPatches ++ [
|
|
|
|
./no-buildconfig.patch
|
2018-06-29 19:55:43 +01:00
|
|
|
|
|
|
|
# this one is actually an omnipresent bug
|
|
|
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
|
|
|
|
./fix-pa-context-connect-retval.patch
|
2018-11-07 12:21:17 +00:00
|
|
|
];
|
2018-05-11 01:10:15 +01:00
|
|
|
|
|
|
|
meta = firefox.meta // {
|
|
|
|
description = "A web browser built from Firefox Extended Support Release source tree";
|
|
|
|
};
|
|
|
|
updateScript = callPackage ./update.nix {
|
2018-05-18 15:31:32 +01:00
|
|
|
attrPath = "firefox-esr-60-unwrapped";
|
2018-05-11 01:10:15 +01:00
|
|
|
versionSuffix = "esr";
|
2018-11-16 14:04:54 +00:00
|
|
|
versionKey = "ffversion";
|
2018-05-11 01:10:15 +01:00
|
|
|
};
|
2018-10-01 01:00:00 +01:00
|
|
|
};
|
2018-05-11 01:10:15 +01:00
|
|
|
|
2017-08-15 01:00:00 +01:00
|
|
|
} // (let
|
2017-04-01 01:00:00 +01:00
|
|
|
|
2018-10-01 01:00:00 +01:00
|
|
|
tbcommon = args: common (args // {
|
|
|
|
pname = "tor-browser";
|
|
|
|
isTorBrowserLike = true;
|
|
|
|
|
|
|
|
unpackPhase = ''
|
2018-10-01 01:00:00 +01:00
|
|
|
# fetchFromGitHub produces ro sources, root dir gets a name that
|
|
|
|
# is too long for shebangs. fixing
|
|
|
|
cp -a $src tor-browser
|
|
|
|
chmod -R +w tor-browser
|
|
|
|
cd tor-browser
|
|
|
|
|
|
|
|
# set times for xpi archives
|
|
|
|
find . -exec touch -d'2010-01-01 00:00' {} \;
|
2018-10-01 01:00:00 +01:00
|
|
|
'';
|
|
|
|
|
2018-10-01 01:00:00 +01:00
|
|
|
patches = nixpkgsPatches;
|
2017-04-01 01:00:00 +01:00
|
|
|
|
|
|
|
meta = {
|
|
|
|
description = "A web browser built from TorBrowser source tree";
|
|
|
|
longDescription = ''
|
|
|
|
This is a version of TorBrowser with bundle-related patches
|
|
|
|
reverted.
|
|
|
|
|
|
|
|
I.e. it's a variant of Firefox with less fingerprinting and
|
|
|
|
some isolation features you can't get with any extensions.
|
|
|
|
|
|
|
|
Or, alternatively, a variant of TorBrowser that works like any
|
|
|
|
other UNIX program and doesn't expect you to run it from a
|
|
|
|
bundle.
|
|
|
|
|
|
|
|
It will use your default Firefox profile if you're not careful
|
|
|
|
even! Be careful!
|
|
|
|
|
2018-03-08 21:33:52 +00:00
|
|
|
It will clash with firefox binary if you install both. But it
|
|
|
|
should not be a problem because you should run browsers in
|
|
|
|
separate users/VMs anyway.
|
2017-04-01 01:00:00 +01:00
|
|
|
|
|
|
|
Create new profile by starting it as
|
|
|
|
|
|
|
|
$ firefox -ProfileManager
|
|
|
|
|
|
|
|
and then configure it to use your tor instance.
|
2018-03-08 21:33:52 +00:00
|
|
|
|
|
|
|
Or just use `tor-browser-bundle` package that packs this
|
|
|
|
`tor-browser` back into a sanely-built bundle.
|
2017-04-01 01:00:00 +01:00
|
|
|
'';
|
|
|
|
homepage = https://www.torproject.org/projects/torbrowser.html;
|
|
|
|
platforms = lib.platforms.linux;
|
2018-08-06 15:13:50 +01:00
|
|
|
license = lib.licenses.bsd3;
|
2017-04-01 01:00:00 +01:00
|
|
|
};
|
2018-10-01 01:00:00 +01:00
|
|
|
});
|
2017-08-15 01:00:00 +01:00
|
|
|
|
|
|
|
in rec {
|
|
|
|
|
2018-10-01 01:00:00 +01:00
|
|
|
tor-browser-7-5 = (tbcommon rec {
|
|
|
|
ffversion = "52.9.0esr";
|
|
|
|
tbversion = "7.5.6";
|
2018-02-01 00:00:00 +00:00
|
|
|
|
|
|
|
# FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "SLNOS";
|
|
|
|
repo = "tor-browser";
|
2018-07-01 01:00:00 +01:00
|
|
|
# branch "tor-browser-52.9.0esr-7.5-2-slnos"
|
|
|
|
rev = "95bb92d552876a1f4260edf68fda5faa3eb36ad8";
|
|
|
|
sha256 = "1ykn3yg4s36g2cpzxbz7s995c33ij8kgyvghx38z4i8siaqxdddy";
|
2018-02-01 00:00:00 +00:00
|
|
|
};
|
2018-10-01 01:00:00 +01:00
|
|
|
}).override {
|
|
|
|
gtk3Support = false;
|
|
|
|
};
|
2018-02-01 00:00:00 +00:00
|
|
|
|
2018-10-01 01:00:00 +01:00
|
|
|
tor-browser-8-0 = tbcommon rec {
|
2018-10-01 01:00:00 +01:00
|
|
|
ffversion = "60.3.0esr";
|
|
|
|
tbversion = "8.0.3";
|
2018-03-15 00:00:00 +00:00
|
|
|
|
|
|
|
# FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "SLNOS";
|
|
|
|
repo = "tor-browser";
|
2018-10-01 01:00:00 +01:00
|
|
|
# branch "tor-browser-60.3.0esr-8.0-1-slnos"
|
|
|
|
rev = "bd512ad9c40069adfc983f4f03dbd9d220cdf2f9";
|
|
|
|
sha256 = "1j349aqiqrf58zrx8pkqvh292w41v1vwr7x7dmd74hq4pi2iwpn8";
|
2018-03-15 00:00:00 +00:00
|
|
|
};
|
2018-10-01 01:00:00 +01:00
|
|
|
};
|
2018-03-15 00:00:00 +00:00
|
|
|
|
2018-10-01 01:00:00 +01:00
|
|
|
tor-browser = tor-browser-8-0;
|
2017-08-15 01:00:00 +01:00
|
|
|
|
2017-08-15 01:00:00 +01:00
|
|
|
})
|