Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: c4eddcf2407b
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 34f83837f681
Choose a head ref
  • 4 commits
  • 2 files changed
  • 2 contributors

Commits on Oct 3, 2018

  1. thunderbird-bin: 52.9.0 -> 60.2.1

    (cherry picked from commit d4de3b2)
    taku0 authored and andir committed Oct 3, 2018
    Copy the full SHA
    5037fb1 View commit details
  2. thunderbird: 52.9.0 -> 60.0

    This is a port of the current state of thunderbird from the master
    branch. We did miss a bunch of security fixes when thunderbird 60 was
    released. This is an attempt to take a shortcut by simply copying over
    the expression from the master branch.
    
    Security related fixes in this release are:
    
    - CVE-2018-12359: Buffer overflow using computed size of canvas element
      A buffer overflow can occur when rendering canvas content while
      adjusting the height and width of the <canvas> element dynamically,
      causing data to be written outside of the currently computed
      boundaries.  This results in a potentially exploitable crash.
    
    - CVE-2018-12360: Use-after-free when using focus()
      A use-after-free vulnerability can occur when deleting an input
      element during a mutation event handler triggered by focusing that
      element. This results in a potentially exploitable crash.
    
    - CVE-2018-12361: Integer overflow in SwizzleData
      An integer overflow can occur in the SwizzleData code while
      calculating buffer sizes. The overflowed value is used for subsequent
      graphics computations when their inputs are not sanitized which
      results in a potentially exploitable crash.
    
    - CVE-2018-12362: Integer overflow in SSSE3 scaler
      An integer overflow can occur during graphics operations done by the
      Supplemental Streaming SIMD Extensions 3 (SSSE3) scaler, resulting in
      a potentially exploitable crash.
    
    - CVE-2018-5156: Media recorder segmentation fault when track type is changed during capture
      A vulnerability can occur when capturing a media stream when the media
      source type is changed as the capture is occuring. This can result in
      stream data being cast to the wrong type causing a potentially
      exploitable crash.
    
    - CVE-2018-12363: Use-after-free when appending DOM nodes
      A use-after-free vulnerability can occur when script uses mutation
      events to move DOM nodes between documents, resulting in the old
      document that held the node being freed but the node still having a
      pointer referencing it. This results in a potentially exploitable
      crash.
    
    - CVE-2018-12364: CSRF attacks through 307 redirects and NPAPI plugins
      NPAPI plugins, such as Adobe Flash, can send non-simple cross-origin
      requests, bypassing CORS by making a same-origin POST that does a 307
      redirect to the target site. This allows for a malicious site to
      engage in cross-site request forgery (CSRF) attacks.
    
    - CVE-2018-12365: Compromised IPC child process can list local filenames
      A compromised IPC child process can escape the content sandbox and
      list the names of arbitrary files on the file system without user
      consent or interaction. This could result in exposure of private local
      files.
    
    - CVE-2018-12371: Integer overflow in Skia library during edge builder allocation
      An integer overflow vulnerability in the Skia library when allocating
      memory for edge builders on some systems with at least 16 GB of RAM.
      This results in the use of uninitialized memory, resulting in a
      potentially exploitable crash.
    
    - CVE-2018-12366: Invalid data handling during QCMS transformations
      An invalid grid size during QCMS (color profile) transformations can
      result in the out-of-bounds read interpreted as a float value. This
      could leak private data into the output.
    
    - CVE-2018-12367: Timing attack mitigation of PerformanceNavigationTiming
      In the previous mitigations for Spectre, the resolution or precision
      of various methods was reduced to counteract the ability to measure
      precise time intervals. In that work, PerformanceNavigationTiming was
      not adjusted but it was found that it could be used as a precision
      timer.
    
    - CVE-2018-5187: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, and Thunderbird 60
      Mozilla developers and community members Christian Holler, Sebastian
      Hengst, Nils Ohlmeier, Jon Coppeard, Randell Jesup, Ted Campbell, Gary
      Kwong, and Jean-Yves Avenard reported memory safety bugs present in
      Firefox 60 and Firefox ESR 60. 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-5188: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, Firefox ESR 52.9, and Thunderbird 60
      Mozilla developers and community members Alex Gaynor, Christoph Diehl,
      Christian Holler, Jason Kratzer, David Major, Jon Coppeard, Nicolas B.
      Pierron, Jason Kratzer, Marcia Knous, and Ronald Crane reported memory
      safety bugs present in Firefox 60, Firefox ESR 60, and Firefox ESR
      52.8. 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.
    andir committed Oct 3, 2018

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    ed8218f View commit details
  3. thunderbird: 60.0 -> 60.2.1

    taku0 authored and andir committed Oct 3, 2018
    Copy the full SHA
    1032dda View commit details

Commits on Oct 4, 2018

  1. Merge pull request #47761 from andir/18.03/thunderbird

    [18.03] thunderbird: 52.9.0 -> 60, thunderbird-bin: 52.9.0 -> 60
    andir authored Oct 4, 2018
    Copy the full SHA
    34f8383 View commit details
Showing with 283 additions and 276 deletions.
  1. +245 −255 pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
  2. +38 −21 pkgs/applications/networking/mailreaders/thunderbird/default.nix

Large diffs are not rendered by default.

59 changes: 38 additions & 21 deletions pkgs/applications/networking/mailreaders/thunderbird/default.nix
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{ lib, stdenv, fetchurl, pkgconfig, gtk2, pango, perl, python, zip, libIDL
, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
{ lib, stdenv, fetchurl, pkgconfig, gtk2, pango, perl, python, zip, fetchpatch
, libIDL, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
, freetype, fontconfig, file, nspr, nss, libnotify
, yasm, libGLU_combined, sqlite, unzip
, hunspell, libevent, libstartup_notification
, cairo, gstreamer, gst-plugins-base, icu, libpng, jemalloc
, icu, libpng, jemalloc
, autoconf213, which, m4
, writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl
, cargo, rustc, llvmPackages
, enableGTK3 ? false, gtk3, gnome3, wrapGAppsHook, makeWrapper
, enableCalendar ? true
, debugBuild ? false
@@ -20,22 +21,16 @@

let
wrapperTool = if enableGTK3 then wrapGAppsHook else makeWrapper;
gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
in stdenv.mkDerivation rec {
name = "thunderbird-${version}";
version = "52.9.0";
version = "60.2.1";

src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "30jv4r8yh270dynqiwlc0yf52f6bka366l48rsppz5nqdb9jvxz04vghhcrp832wrmhd9z6r4b09yb1syhg7n3sl7zsjj2gq1yblhi1";
sha512 = "018l9pq03nzlirpaf285qpwvb8s4msam8n91d15lzc1bc1caq9zcy2dnrnvn5av3jlapm9ckz028iar66nhqxi2kkqbmiaq0v4s6kfp";
};

# New sed no longer tolerates this mistake.
postPatch = ''
for f in mozilla/{js/src,}/configure; do
substituteInPlace "$f" --replace '[:space:]*' '[[:space:]]*'
done
'';

# from firefox, but without sound libraries
buildInputs =
[ gtk2 zip libIDL libjpeg zlib bzip2
@@ -50,11 +45,21 @@ in stdenv.mkDerivation rec {
++ lib.optionals enableGTK3 [ gtk3 gnome3.defaultIconTheme ];

# from firefox + m4 + wrapperTool
nativeBuildInputs = [ m4 autoconf213 which gnused pkgconfig perl python wrapperTool ];
nativeBuildInputs = [ m4 autoconf213 which gnused pkgconfig perl python wrapperTool cargo rustc ];

# https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1479540
# https://hg.mozilla.org/releases/mozilla-release/rev/bc651d3d910c
patches = [
(fetchpatch {
name = "bc651d3d910c.patch";
url = "https://hg.mozilla.org/releases/mozilla-release/raw-rev/bc651d3d910c";
sha256 = "0iybkadsgsf6a3pq3jh8z1p110vmpkih8i35jfj8micdkhxzi89g";
})
];

configureFlags =
[ # from firefox, but without sound libraries (alsa, libvpx, pulseaudio)
"--enable-application=mail"
"--enable-application=comm/mail"
"--disable-alsa"
"--disable-pulseaudio"

@@ -66,6 +71,7 @@ in stdenv.mkDerivation rec {
"--with-system-libevent"
"--with-system-png" # needs APNG support
"--with-system-icu"
"--enable-rust-simd"
"--enable-system-ffi"
"--enable-system-hunspell"
"--enable-system-pixman"
@@ -79,18 +85,29 @@ in stdenv.mkDerivation rec {
"--enable-jemalloc"
"--disable-gconf"
"--enable-default-toolkit=cairo-gtk${if enableGTK3 then "3" else "2"}"
"--enable-js-shell"
]
++ lib.optional enableCalendar "--enable-calendar"
++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
else [ "--disable-debug" "--enable-release"
"--disable-debug-symbols"
"--enable-optimize" "--enable-strip" ])
++ lib.optional enableOfficialBranding "--enable-official-branding";
++ lib.optional enableOfficialBranding "--enable-official-branding"
++ lib.optionals (lib.versionAtLeast version "56" && !stdenv.hostPlatform.isi686) [
# on i686-linux: --with-libclang-path is not available in this configuration
"--with-libclang-path=${llvmPackages.libclang}/lib"
"--with-clang-path=${llvmPackages.clang}/bin/clang"
];

enableParallelBuilding = true;

preConfigure =
''
cxxLib=$( echo -n ${gcc}/include/c++/* )
archLib=$cxxLib/$( ${gcc}/bin/gcc -dumpmachine )
test -f layout/style/ServoBindings.toml && sed -i -e '/"-DRUST_BINDGEN"/ a , "-cxx-isystem", "'$cxxLib'", "-isystem", "'$archLib'"' layout/style/ServoBindings.toml
configureScript="$(realpath ./configure)"
mkdir ../objdir
cd ../objdir
@@ -106,14 +123,14 @@ in stdenv.mkDerivation rec {
postInstall =
''
# For grsecurity kernels
paxmark m $out/lib/thunderbird-[0-9]*/thunderbird
paxmark m $out/lib/thunderbird/thunderbird
# TODO: Move to a dev output?
rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
# $binary is a symlink to $target.
# We wrap $target by replacing the $binary symlink.
local target="$out/lib/thunderbird-${version}/thunderbird"
local target="$out/lib/thunderbird/thunderbird"
local binary="$out/bin/thunderbird"
# Wrap correctly, this is needed to
@@ -139,8 +156,8 @@ in stdenv.mkDerivation rec {
name = "thunderbird";
exec = "thunderbird %U";
desktopName = "Thunderbird";
icon = "$out/lib/thunderbird-${version}/chrome/icons/default/default256.png";
genericName = "Main Reader";
icon = "$out/lib/thunderbird/chrome/icons/default/default256.png";
genericName = "Mail Reader";
categories = "Application;Network";
mimeType = stdenv.lib.concatStringsSep ";" [
# Email
@@ -163,8 +180,8 @@ in stdenv.mkDerivation rec {
# Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712.
''
patchelf --set-rpath "${lib.getLib libnotify
}/lib:$(patchelf --print-rpath "$out"/lib/thunderbird-*/libxul.so)" \
"$out"/lib/thunderbird-*/libxul.so
}/lib:$(patchelf --print-rpath "$out"/lib/thunderbird*/libxul.so)" \
"$out"/lib/thunderbird*/libxul.so
'';

doInstallCheck = true;