Merge branch 'glibc' of https://github.com/rnhmjoj/nixpkgs into staging

This commit is contained in:
Eelco Dolstra
2017-07-06 15:14:57 +02:00
48 changed files with 1035 additions and 41 deletions

View File

@@ -0,0 +1,8 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // rec {
version = "6.2.23";
sha256 = "1isxx4jfmnh913jzhp8hhfngbk6dsg46f4kjpvvc56maj64jqqa7";
license = stdenv.lib.licenses.agpl3;
extraPatches = [ ./clang-6.0.patch ];
})

View File

@@ -68,7 +68,8 @@ stdenv.mkDerivation ({
++ lib.optionals stdenv.isi686 [
./fix-i686-memchr.patch
./i686-fix-vectorized-strcspn.patch
];
]
++ lib.optional stdenv.isx86_64 ./fix-x64-abi.patch;
postPatch =
# Needed for glibc to build with the gnumake 3.82

View File

@@ -0,0 +1,35 @@
From 3288c6da64add3b4561b8c10fff522027caea01c Mon Sep 17 00:00:00 2001
From: Nicholas Miell <nmiell@gmail.com>
Date: Sat, 17 Jun 2017 18:21:07 -0700
Subject: [PATCH] Align the stack on entry to __tls_get_addr()
Old versions of gcc (4 & 5) didn't align the stack according to the
AMD64 psABI when calling __tls_get_addr(). Apparently new versions of
gcc (7) got much more aggressive about vectorizing and generating MOVAPS
instructions, which means old binaries built with the buggy versions of
gcc are much more likely to crash when using versions of glibc built
using gcc 7.
For example, a large number of Linux games built using the Unity game
engine and available for purchase on Steam.
---
elf/dl-tls.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/elf/dl-tls.c b/elf/dl-tls.c
index 5aba33b3fa..3f3cb917de 100644
--- a/elf/dl-tls.c
+++ b/elf/dl-tls.c
@@ -827,6 +827,10 @@ rtld_hidden_proto (__tls_get_addr)
rtld_hidden_def (__tls_get_addr)
#endif
+#ifdef __x86_64__
+/* Old versions of gcc didn't align the stack. */
+__attribute__((force_align_arg_pointer))
+#endif
/* The generic dynamic and local dynamic model cannot be used in
statically linked applications. */
void *
--
2.13.0

View File

@@ -0,0 +1,9 @@
diff --git a/src/runtime/kwalletd/org.kde.kwalletd5.service.in b/src/runtime/kwalletd/org.kde.kwalletd5.service.in
index 76eb90e..7a78e83 100644
--- a/src/runtime/kwalletd/org.kde.kwalletd5.service.in
+++ b/src/runtime/kwalletd/org.kde.kwalletd5.service.in
@@ -1,3 +1,3 @@
[D-BUS Service]
Name=org.kde.kwalletd5
-Exec=@CMAKE_INSTALL_PREFIX@/bin/kwalletd5
+Exec=@CMAKE_INSTALL_BINDIR@/kwalletd5

View File

@@ -15,4 +15,5 @@ mkDerivation {
knotifications kservice kwidgetsaddons kwindowsystem libgcrypt qgpgme
];
propagatedBuildInputs = [ qtbase ];
patches = [ ./kwallet-dbus.patch ];
}

View File

@@ -28,7 +28,7 @@ let inherit (stdenv.lib) optional optionals hasPrefix; in
let
result = {
libav_0_8 = libavFun "0.8.20" "0c7a2417c3a01eb74072691bb93ce802ae1be08f";
libav_11 = libavFun "11.9" "36ed1329099676ff3c970576e03c6a21f2da2e15";
libav_11 = libavFun "11.10" "38db6721ca8423682e4d614c170eccc33ba32e00";
libav_12 = libavFun "12" "4ecde7274621c82a6882b7614d907b28de25cc4e";
};

View File

@@ -1,46 +1,51 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm
{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, gtk2, gtk3, libXinerama, libSM, libXxf86vm
, xf86vidmodeproto , gstreamer, gst-plugins-base, GConf, setfile
, withMesa ? true, mesa_glu ? null, mesa_noglu ? null
, compat24 ? false, compat26 ? true, unicode ? true
, withWebKit ? false, webkitgtk24x-gtk2 ? null
, withGtk2 ? true
, withWebKit ? false, webkitgtk24x-gtk2 ? null, webkitgtk216x ? null
, AGL ? null, Carbon ? null, Cocoa ? null, Kernel ? null, QTKit ? null
}:
assert withMesa -> mesa_glu != null && mesa_noglu != null;
assert withWebKit -> webkitgtk24x-gtk2 != null;
assert withWebKit -> (if withGtk2 then webkitgtk24x-gtk2 else webkitgtk216x) != null;
with stdenv.lib;
let
version = "3.0.2";
version = "3.0.3.1";
in
stdenv.mkDerivation {
name = "wxwidgets-${version}";
src = fetchurl {
url = "mirror://sourceforge/wxwindows/wxWidgets-${version}.tar.bz2";
sha256 = "0paq27brw4lv8kspxh9iklpa415mxi8zc117vbbbhfjgapf7js1l";
src = fetchFromGitHub {
owner = "wxWidgets";
repo = "wxWidgets";
rev = "v${version}";
sha256 = "1b90in65k1ij6kyk41knxs86i6hx5lkz30gpvzdvh0cbjagv5asq";
};
buildInputs =
[ gtk2 libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer
[ (if withGtk2 then gtk2 else gtk3) libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer
gst-plugins-base GConf ]
++ optional withMesa mesa_glu
++ optional withWebKit webkitgtk24x-gtk2
++ optional withWebKit (if withGtk2 then webkitgtk24x-gtk2 else webkitgtk216x)
++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QTKit ];
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = optional stdenv.isDarwin AGL;
patches = [ (fetchpatch {
url = "https://raw.githubusercontent.com/jessehager/MINGW-packages/af6ece963d8157dd3fbc710bcc190647c4924c63/mingw-w64-wxwidgets/wxWidgets-3.0.2-gcc6-abs.patch";
sha256 = "0100pg0z7i6cjyysf2k3330pmqmdaxgc9hz6kxnfvc31dynjcq3h";
}) ];
patches =
# "Add support for WebKit2GTK+ in wxWebView". Will be in 3.0.4
optional (!withGtk2) (fetchpatch {
url = "https://github.com/wxWidgets/wxWidgets/commit/ec6e54bc893fb7516731ca9c71e0d0bbc5ae9ff7.patch";
sha256 = "0gxd83xajm7gdv9rdzyvqwa2p5nz29nr23i0zx2dgfpsvz2qjp3q";
});
configureFlags =
[ "--enable-gtk2" "--disable-precomp-headers" "--enable-mediactrl"
[ "--disable-precomp-headers" "--enable-mediactrl"
(if compat24 then "--enable-compat24" else "--disable-compat24")
(if compat26 then "--enable-compat26" else "--disable-compat26") ]
++ optional unicode "--enable-unicode"
@@ -72,7 +77,7 @@ stdenv.mkDerivation {
passthru = {
inherit compat24 compat26 unicode;
gtk = gtk2;
gtk = if withGtk2 then gtk2 else gtk3;
};
enableParallelBuilding = true;