Merge branch 'staging'

This commit is contained in:
Domen Kožar
2014-12-08 16:28:45 +01:00
130 changed files with 1172 additions and 2041 deletions

View File

@@ -0,0 +1,15 @@
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=212740
--- a/gcc/sched-deps.c 2014/07/17 07:48:49 212739
+++ b/gcc/sched-deps.c 2014/07/17 07:49:44 212740
@@ -2744,7 +2744,8 @@
Consider for instance a volatile asm that changes the fpu rounding
mode. An insn should not be moved across this even if it only uses
pseudo-regs because it might give an incorrectly rounded result. */
- if (code != ASM_OPERANDS || MEM_VOLATILE_P (x))
+ if ((code != ASM_OPERANDS || MEM_VOLATILE_P (x))
+ && !DEBUG_INSN_P (insn))
reg_pending_barrier = TRUE_BARRIER;
/* For all ASM_OPERANDS, we must traverse the vector of input operands.

View File

@@ -61,7 +61,7 @@ let version = "4.8.3";
enableParallelBuilding = true;
patches = []
patches = [ ./bug-61801.patch ]
++ optional enableParallelBuilding ./parallel-bconfig.patch
++ optional (cross != null) ./libstdc++-target.patch
++ optional noSysDirs ./no-sys-dirs.patch

View File

@@ -17,6 +17,8 @@ stdenv.mkDerivation {
buildInputs = [ bison glibc bash makeWrapper ];
NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
# I'm not sure what go wants from its 'src', but the go installation manual
# describes an installation keeping the src.
preUnpack = ''

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation {
buildInputs = [ bison glibc bash makeWrapper ];
NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
# I'm not sure what go wants from its 'src', but the go installation manual
# describes an installation keeping the src.
preUnpack = ''

View File

@@ -60,6 +60,8 @@ stdenv.mkDerivation {
else throw "Unsupported system";
GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
installPhase = ''
mkdir -p "$out/bin"
export GOROOT="$(pwd)/"

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
${if gputils == null then "--disable-pic14-port --disable-pic16-port" else ""}
'';
NIX_CFLAGS_COMPILE = "--std=c99"; # http://sourceforge.net/p/sdcc/code/9106/
meta = with stdenv.lib; {
description = "Small Device C Compiler";
longDescription = ''

View File

@@ -1,64 +0,0 @@
{ stdenv, fetchurl }:
let
libc = if stdenv ? gcc && stdenv.gcc.libc != null then stdenv.gcc.libc else "/usr";
in
stdenv.mkDerivation rec {
name = "perl-5.14.4";
src = fetchurl {
url = "mirror://cpan/src/${name}.tar.gz";
sha256 = "1js47zzna3v38fjnirf2vq6y0rjp8m86ysj5vagzgkig956d8gw0";
};
patches =
[ # Do not look in /usr etc. for dependencies.
./no-sys-dirs.patch
]
++ stdenv.lib.optional stdenv.isSunOS ./ld-shared.patch
++ stdenv.lib.optional stdenv.isDarwin ./no-libutil.patch;
# Build a thread-safe Perl with a dynamic libperls.o. We need the
# "installstyle" option to ensure that modules are put under
# $out/lib/perl5 - this is the general default, but because $out
# contains the string "perl", Configure would select $out/lib.
# Miniperl needs -lm. perl needs -lrt.
configureFlags =
[ "-de"
"-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
"-Dlocincpth=${libc}/include"
"-Dloclibpth=${libc}/lib"
]
++ stdenv.lib.optional (stdenv ? glibc) "-Dusethreads";
configureScript = "${stdenv.shell} ./Configure";
dontAddPrefix = true;
enableParallelBuilding = true;
preConfigure =
''
configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
${stdenv.lib.optionalString stdenv.isArm ''
configureFlagsArray=(-Dldflags="-lm -lrt")
''}
'';
preBuild = stdenv.lib.optionalString (!(stdenv ? gcc && stdenv.gcc.nativeTools))
''
# Make Cwd work on NixOS (where we don't have a /bin/pwd).
substituteInPlace dist/Cwd/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
'';
setupHook = ./setup-hook.sh;
passthru.libPrefix = "lib/perl5/site_perl";
}

View File

@@ -1,11 +0,0 @@
--- perl-5.14.2/hints/solaris_2.sh.orig 2013-02-14 19:29:49.453988140 +0000
+++ perl-5.14.2/hints/solaris_2.sh 2013-02-14 19:30:31.681631019 +0000
@@ -568,7 +568,7 @@
# ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
# fi
ldflags="$ldflags -m64"
- lddlflags="$lddlflags -G -m64"
+ lddlflags="$lddlflags -shared -m64"
;;
*)
getconfccflags="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"

View File

@@ -1,12 +0,0 @@
diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
--- perl-5.14.2-orig/Configure 2011-09-26 11:44:34.000000000 +0200
+++ perl-5.14.2/Configure 2012-02-16 17:24:50.779839039 +0100
@@ -1368,7 +1368,7 @@
: List of libraries we want.
: If anyone needs extra -lxxx, put those in a hint file.
libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun"
-libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
+libswanted="$libswanted m crypt sec c cposix posix ucb bsd BSD"
: We probably want to search /usr/shlib before most other libraries.
: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`

View File

@@ -1,152 +0,0 @@
diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
--- perl-5.14.2-orig/Configure 2011-09-26 11:44:34.000000000 +0200
+++ perl-5.14.2/Configure 2012-01-20 17:05:23.089223129 +0100
@@ -106,15 +106,7 @@
fi
: Proper PATH setting
-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
-paths="$paths /sbin /usr/sbin /usr/libexec"
-paths="$paths /system/gnu_library/bin"
+paths=''
for p in $paths
do
@@ -1311,8 +1303,7 @@
archname=''
: Possible local include directories to search.
: Set locincpth to "" in a hint file to defeat local include searches.
-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
+locincpth=""
:
: no include file wanted by default
inclwanted=''
@@ -1328,17 +1319,12 @@
archobjs=''
libnames=''
: change the next line if compiling for Xenix/286 on Xenix/386
-xlibpth='/usr/lib/386 /lib/386'
+xlibpth=''
: Possible local library directories to search.
-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
+loclibpth=""
: general looking path for locating libraries
-glibpth="/lib /usr/lib $xlibpth"
-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
-test -f /shlib/libc.so && glibpth="/shlib $glibpth"
-test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
+glibpth=""
: Private path used by Configure to find libraries. Its value
: is prepended to libpth. This variable takes care of special
@@ -1371,8 +1357,6 @@
libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
: We probably want to search /usr/shlib before most other libraries.
: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
-glibpth="/usr/shlib $glibpth"
: Do not use vfork unless overridden by a hint file.
usevfork=false
@@ -2380,7 +2364,6 @@
zip
"
pth=`echo $PATH | sed -e "s/$p_/ /g"`
-pth="$pth /lib /usr/lib"
for file in $loclist; do
eval xxx=\$$file
case "$xxx" in
@@ -4785,7 +4768,7 @@
: Set private lib path
case "$plibpth" in
'') if ./mips; then
- plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
+ plibpth="$incpath/usr/lib"
fi;;
esac
case "$libpth" in
@@ -8390,13 +8373,8 @@
echo " "
case "$sysman" in
'')
- syspath='/usr/share/man/man1 /usr/man/man1'
- syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
- syspath="$syspath /usr/man/u_man/man1"
- syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
- syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
- syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
- sysman=`./loc . /usr/man/man1 $syspath`
+ syspath=''
+ sysman=''
;;
esac
if $test -d "$sysman"; then
@@ -19721,9 +19699,10 @@
case "$full_ar" in
'') full_ar=$ar ;;
esac
+full_ar=ar
: Store the full pathname to the sed program for use in the C program
-full_sed=$sed
+full_sed=sed
: see what type gids are declared as in the kernel
echo " "
diff -ru -x '*~' perl-5.14.2-orig/ext/Errno/Errno_pm.PL perl-5.14.2/ext/Errno/Errno_pm.PL
--- perl-5.14.2-orig/ext/Errno/Errno_pm.PL 2011-09-26 11:44:34.000000000 +0200
+++ perl-5.14.2/ext/Errno/Errno_pm.PL 2012-01-20 17:02:07.938138311 +0100
@@ -137,11 +137,7 @@
if ($dep =~ /(\S+errno\.h)/) {
$file{$1} = 1;
}
- } elsif ($^O eq 'linux' &&
- $Config{gccversion} ne '' &&
- $Config{gccversion} !~ /intel/i
- # might be using, say, Intel's icc
- ) {
+ } elsif (0) {
# Some Linuxes have weird errno.hs which generate
# no #file or #line directives
my $linux_errno_h = -e '/usr/include/errno.h' ?
diff -ru -x '*~' perl-5.14.2-orig/hints/freebsd.sh perl-5.14.2/hints/freebsd.sh
--- perl-5.14.2-orig/hints/freebsd.sh 2011-09-19 15:18:22.000000000 +0200
+++ perl-5.14.2/hints/freebsd.sh 2012-01-20 17:10:37.267924044 +0100
@@ -118,21 +118,21 @@
objformat=`/usr/bin/objformat`
if [ x$objformat = xaout ]; then
if [ -e /usr/lib/aout ]; then
- libpth="/usr/lib/aout /usr/local/lib /usr/lib"
- glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
+ libpth=""
+ glibpth=""
fi
lddlflags='-Bshareable'
else
- libpth="/usr/lib /usr/local/lib"
- glibpth="/usr/lib /usr/local/lib"
+ libpth=""
+ glibpth=""
ldflags="-Wl,-E "
lddlflags="-shared "
fi
cccdlflags='-DPIC -fPIC'
;;
*)
- libpth="/usr/lib /usr/local/lib"
- glibpth="/usr/lib /usr/local/lib"
+ libpth=""
+ glibpth=""
ldflags="-Wl,-E "
lddlflags="-shared "
cccdlflags='-DPIC -fPIC'

View File

@@ -1,5 +0,0 @@
addPerlLibPath () {
addToSearchPath PERL5LIB $1/lib/perl5/site_perl
}
envHooks+=(addPerlLibPath)

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl, enableThreading ? true }:
{ stdenv, fetchurl, enableThreading ? stdenv ? glibc }:
# We can only compile perl with threading on platforms where we have a
# real glibc in the stdenv.

View File

@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" ];
NIX_LDFLAGS = "-lgcc_s";
enableParallelBuilding = true;
postInstall = ''
for p in $(ls $out/bin/) ; do

View File

@@ -21,6 +21,8 @@ stdenv.mkDerivation {
dontDisableStatic = true;
NIX_CFLAGS_COMPILE = "-D__USE_BSD";
meta = {
homepage = http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/ATerm;
license = "LGPL";

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, libiconvOrEmpty, libintlOrEmpty
{ stdenv, fetchurl, fetchpatch, pkgconfig, libiconvOrEmpty, libintlOrEmpty
, expat, zlib, libpng, pixman, fontconfig, freetype, xlibs
, gobjectSupport ? true, glib
, xcbSupport ? true # no longer experimental since 1.12
@@ -18,6 +18,12 @@ stdenv.mkDerivation rec {
sha1 = "53cf589b983412ea7f78feee2e1ba9cea6e3ebae";
};
patches = [(fetchpatch {
name = "fix-racket.diff";
url = "http://cgit.freedesktop.org/cairo/patch/?id=2de69581c28bf115852037ca41eba13cb7335976";
sha256 = "0mk2fd9fwxqzravlmnbbrzwak15wqspn7609y0yn6qh87va5i0x4";
})];
nativeBuildInputs = [ pkgconfig ] ++ libintlOrEmpty ++ libiconvOrEmpty;
propagatedBuildInputs =

View File

@@ -1,15 +1,15 @@
{ fetchurl, stdenv, pkgconfig, cairo, x11, fontconfig, freetype, libsigcxx }:
stdenv.mkDerivation rec {
name = "cairomm-1.10.0";
name = "cairomm-1.11.2";
src = fetchurl {
url = "http://cairographics.org/releases/${name}.tar.gz";
sha256 = "13rrp96px95m6xnvmsaqb0wcqsnizg3bz334k0yhlyxf7v29d386";
sha1 = "35e190a03f760924bece5dc1204cc36b3583c806";
};
buildInputs = [ pkgconfig ];
propagatedBuildInputs = [ cairo x11 fontconfig freetype libsigcxx ];
meta = {

View File

@@ -3,8 +3,8 @@
, libX11, libICE, libSM, useX11 ? (stdenv.isLinux || stdenv.isDarwin) }:
let
version = "1.8.10";
sha256 = "13mgvwigm931r8n9363imnn0vn6dvc0m322k3p8fs5c8nvyqggqh";
version = "1.8.12";
sha256 = "07jhcalg00i2rx5zrgk73rg0vm7lzi5q5z2gscrbl999ipr2h569";
inherit (stdenv) lib;

View File

@@ -23,14 +23,6 @@ stdenv.mkDerivation rec {
sha256 = "16baa4g5lswkyjlyf1h5lwc0zjap7c4d8grw79349a5w6dsl8qnw";
};
infinality_patch =
let subvers = "1";
in fetchurl {
url = http://www.infinality.net/fedora/linux/zips/fontconfig-infinality-1-20130104_1.tar.bz2;
sha256 = "1fm5xx0mx2243jrq5rxk4v0ajw2nawpj23399h710bx6hd1rviq7";
}
;
patches = [
(fetchpatch ({
url = "http://cgit.freedesktop.org/fontconfig/patch/?id=f44157c809d280e2a0ce87fb078fc4b278d24a67";
@@ -71,7 +63,7 @@ stdenv.mkDerivation rec {
installFlags = "fc_cachedir=$(TMPDIR)/dummy RUN_FC_CACHE_TEST=false";
postInstall = ''
cd "$out/etc/fonts" && tar xvf ${infinality_patch}
cd "$out/etc/fonts"
rm conf.d/{50-user,51-local}.conf
"${libxslt}/bin/xsltproc" --stringparam fontDirectories "${fontbhttf}" \
--stringparam fontconfig "$out" \

View File

@@ -1,170 +0,0 @@
Picked from upstream commits, but excluding changes to news and tests:
d183645616b0533 and 4e8f95a0df7c2
Also see https://sourceware.org/bugzilla/show_bug.cgi?id=17137
diff --git a/locale/setlocale.c b/locale/setlocale.c
index 9458468..6455b8b 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -272,6 +272,8 @@ setlocale (int category, const char *locale)
of entries of the form `CATEGORY=VALUE'. */
const char *newnames[__LC_LAST];
struct __locale_data *newdata[__LC_LAST];
+ /* Copy of the locale argument, for in-place splitting. */
+ char *locale_copy = NULL;
/* Set all name pointers to the argument name. */
for (category = 0; category < __LC_LAST; ++category)
@@ -281,7 +283,13 @@ setlocale (int category, const char *locale)
if (__glibc_unlikely (strchr (locale, ';') != NULL))
{
/* This is a composite name. Make a copy and split it up. */
- char *np = strdupa (locale);
+ locale_copy = strdup (locale);
+ if (__glibc_unlikely (locale_copy == NULL))
+ {
+ __libc_rwlock_unlock (__libc_setlocale_lock);
+ return NULL;
+ }
+ char *np = locale_copy;
char *cp;
int cnt;
@@ -299,6 +307,7 @@ setlocale (int category, const char *locale)
{
error_return:
__libc_rwlock_unlock (__libc_setlocale_lock);
+ free (locale_copy);
/* Bogus category name. */
ERROR_RETURN;
@@ -391,8 +400,9 @@ setlocale (int category, const char *locale)
/* Critical section left. */
__libc_rwlock_unlock (__libc_setlocale_lock);
- /* Free the resources (the locale path variable). */
+ /* Free the resources. */
free (locale_path);
+ free (locale_copy);
return composite;
}
diff --git a/locale/findlocale.c b/locale/findlocale.c
index bbaf708..22e8b53 100644
--- a/locale/findlocale.c
+++ b/locale/findlocale.c
@@ -17,6 +17,7 @@
<http://www.gnu.org/licenses/>. */
#include <assert.h>
+#include <errno.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>
@@ -57,6 +58,45 @@ struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST];
const char _nl_default_locale_path[] attribute_hidden = LOCALEDIR;
+/* Checks if the name is actually present, that is, not NULL and not
+ empty. */
+static inline int
+name_present (const char *name)
+{
+ return name != NULL && name[0] != '\0';
+}
+
+/* Checks that the locale name neither extremely long, nor contains a
+ ".." path component (to prevent directory traversal). */
+static inline int
+valid_locale_name (const char *name)
+{
+ /* Not set. */
+ size_t namelen = strlen (name);
+ /* Name too long. The limit is arbitrary and prevents stack overflow
+ issues later. */
+ if (__glibc_unlikely (namelen > 255))
+ return 0;
+ /* Directory traversal attempt. */
+ static const char slashdot[4] = {'/', '.', '.', '/'};
+ if (__glibc_unlikely (memmem (name, namelen,
+ slashdot, sizeof (slashdot)) != NULL))
+ return 0;
+ if (namelen == 2 && __glibc_unlikely (name[0] == '.' && name [1] == '.'))
+ return 0;
+ if (namelen >= 3
+ && __glibc_unlikely (((name[0] == '.'
+ && name[1] == '.'
+ && name[2] == '/')
+ || (name[namelen - 3] == '/'
+ && name[namelen - 2] == '.'
+ && name[namelen - 1] == '.'))))
+ return 0;
+ /* If there is a slash in the name, it must start with one. */
+ if (__glibc_unlikely (memchr (name, '/', namelen) != NULL) && name[0] != '/')
+ return 0;
+ return 1;
+}
struct __locale_data *
internal_function
@@ -65,7 +105,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
{
int mask;
/* Name of the locale for this category. */
- char *loc_name;
+ char *loc_name = (char *) *name;
const char *language;
const char *modifier;
const char *territory;
@@ -73,31 +113,39 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
const char *normalized_codeset;
struct loaded_l10nfile *locale_file;
- if ((*name)[0] == '\0')
+ if (loc_name[0] == '\0')
{
/* The user decides which locale to use by setting environment
variables. */
- *name = getenv ("LC_ALL");
- if (*name == NULL || (*name)[0] == '\0')
- *name = getenv (_nl_category_names.str
+ loc_name = getenv ("LC_ALL");
+ if (!name_present (loc_name))
+ loc_name = getenv (_nl_category_names.str
+ _nl_category_name_idxs[category]);
- if (*name == NULL || (*name)[0] == '\0')
- *name = getenv ("LANG");
+ if (!name_present (loc_name))
+ loc_name = getenv ("LANG");
+ if (!name_present (loc_name))
+ loc_name = (char *) _nl_C_name;
}
- if (*name == NULL || (*name)[0] == '\0'
- || (__builtin_expect (__libc_enable_secure, 0)
- && strchr (*name, '/') != NULL))
- *name = (char *) _nl_C_name;
+ /* We used to fall back to the C locale if the name contains a slash
+ character '/', but we now check for directory traversal in
+ valid_locale_name, so this is no longer necessary. */
- if (__builtin_expect (strcmp (*name, _nl_C_name), 1) == 0
- || __builtin_expect (strcmp (*name, _nl_POSIX_name), 1) == 0)
+ if (__builtin_expect (strcmp (loc_name, _nl_C_name), 1) == 0
+ || __builtin_expect (strcmp (loc_name, _nl_POSIX_name), 1) == 0)
{
/* We need not load anything. The needed data is contained in
the library itself. */
*name = (char *) _nl_C_name;
return _nl_C[category];
}
+ else if (!valid_locale_name (loc_name))
+ {
+ __set_errno (EINVAL);
+ return NULL;
+ }
+
+ *name = loc_name;
/* We really have to load some data. First we try the archive,
but only if there was no LOCPATH environment variable specified. */

View File

@@ -1,206 +0,0 @@
http://anonscm.debian.org/viewvc/pkg-glibc/glibc-package/trunk/debian/patches/any/cvs-CVE-2014-5119.diff?revision=6248&view=co
commit a1a6a401ab0a3c9f15fb7eaebbdcee24192254e8
Author: Florian Weimer <fweimer@redhat.com>
Date: Tue Aug 26 19:38:59 2014 +0200
__gconv_translit_find: Disable function [BZ #17187]
This functionality has never worked correctly, and the implementation
contained a security vulnerability (CVE-2014-5119).
2014-08-26 Florian Weimer <fweimer@redhat.com>
[BZ #17187]
* iconv/gconv_trans.c (struct known_trans, search_tree, lock,
trans_compare, open_translit, __gconv_translit_find):
Remove module loading code.
--- a/iconv/gconv_trans.c
+++ b/iconv/gconv_trans.c
@@ -238,181 +238,12 @@ __gconv_transliterate (struct __gconv_step *step,
return __GCONV_ILLEGAL_INPUT;
}
-
-/* Structure to represent results of found (or not) transliteration
- modules. */
-struct known_trans
-{
- /* This structure must remain the first member. */
- struct trans_struct info;
-
- char *fname;
- void *handle;
- int open_count;
-};
-
-
-/* Tree with results of previous calls to __gconv_translit_find. */
-static void *search_tree;
-
-/* We modify global data. */
-__libc_lock_define_initialized (static, lock);
-
-
-/* Compare two transliteration entries. */
-static int
-trans_compare (const void *p1, const void *p2)
-{
- const struct known_trans *s1 = (const struct known_trans *) p1;
- const struct known_trans *s2 = (const struct known_trans *) p2;
-
- return strcmp (s1->info.name, s2->info.name);
-}
-
-
-/* Open (maybe reopen) the module named in the struct. Get the function
- and data structure pointers we need. */
-static int
-open_translit (struct known_trans *trans)
-{
- __gconv_trans_query_fct queryfct;
-
- trans->handle = __libc_dlopen (trans->fname);
- if (trans->handle == NULL)
- /* Not available. */
- return 1;
-
- /* Find the required symbol. */
- queryfct = __libc_dlsym (trans->handle, "gconv_trans_context");
- if (queryfct == NULL)
- {
- /* We cannot live with that. */
- close_and_out:
- __libc_dlclose (trans->handle);
- trans->handle = NULL;
- return 1;
- }
-
- /* Get the context. */
- if (queryfct (trans->info.name, &trans->info.csnames, &trans->info.ncsnames)
- != 0)
- goto close_and_out;
-
- /* Of course we also have to have the actual function. */
- trans->info.trans_fct = __libc_dlsym (trans->handle, "gconv_trans");
- if (trans->info.trans_fct == NULL)
- goto close_and_out;
-
- /* Now the optional functions. */
- trans->info.trans_init_fct =
- __libc_dlsym (trans->handle, "gconv_trans_init");
- trans->info.trans_context_fct =
- __libc_dlsym (trans->handle, "gconv_trans_context");
- trans->info.trans_end_fct =
- __libc_dlsym (trans->handle, "gconv_trans_end");
-
- trans->open_count = 1;
-
- return 0;
-}
-
-
int
internal_function
__gconv_translit_find (struct trans_struct *trans)
{
- struct known_trans **found;
- const struct path_elem *runp;
- int res = 1;
-
- /* We have to have a name. */
- assert (trans->name != NULL);
-
- /* Acquire the lock. */
- __libc_lock_lock (lock);
-
- /* See whether we know this module already. */
- found = __tfind (trans, &search_tree, trans_compare);
- if (found != NULL)
- {
- /* Is this module available? */
- if ((*found)->handle != NULL)
- {
- /* Maybe we have to reopen the file. */
- if ((*found)->handle != (void *) -1)
- /* The object is not unloaded. */
- res = 0;
- else if (open_translit (*found) == 0)
- {
- /* Copy the data. */
- *trans = (*found)->info;
- (*found)->open_count++;
- res = 0;
- }
- }
- }
- else
- {
- size_t name_len = strlen (trans->name) + 1;
- int need_so = 0;
- struct known_trans *newp;
-
- /* We have to continue looking for the module. */
- if (__gconv_path_elem == NULL)
- __gconv_get_path ();
-
- /* See whether we have to append .so. */
- if (name_len <= 4 || memcmp (&trans->name[name_len - 4], ".so", 3) != 0)
- need_so = 1;
-
- /* Create a new entry. */
- newp = (struct known_trans *) malloc (sizeof (struct known_trans)
- + (__gconv_max_path_elem_len
- + name_len + 3)
- + name_len);
- if (newp != NULL)
- {
- char *cp;
-
- /* Clear the struct. */
- memset (newp, '\0', sizeof (struct known_trans));
-
- /* Store a copy of the module name. */
- newp->info.name = cp = (char *) (newp + 1);
- cp = __mempcpy (cp, trans->name, name_len);
-
- newp->fname = cp;
-
- /* Search in all the directories. */
- for (runp = __gconv_path_elem; runp->name != NULL; ++runp)
- {
- cp = __mempcpy (__stpcpy ((char *) newp->fname, runp->name),
- trans->name, name_len);
- if (need_so)
- memcpy (cp, ".so", sizeof (".so"));
-
- if (open_translit (newp) == 0)
- {
- /* We found a module. */
- res = 0;
- break;
- }
- }
-
- if (res)
- newp->fname = NULL;
-
- /* In any case we'll add the entry to our search tree. */
- if (__tsearch (newp, &search_tree, trans_compare) == NULL)
- {
- /* Yickes, this should not happen. Unload the object. */
- res = 1;
- /* XXX unload here. */
- }
- }
- }
-
- __libc_lock_unlock (lock);
-
- return res;
+ /* Transliteration module loading has been removed because it never
+ worked as intended and suffered from a security vulnerability.
+ Consequently, this function always fails. */
+ return 1;
}

View File

@@ -1,336 +0,0 @@
From: Siddhesh Poyarekar <siddhesh@redhat.com>
Date: Thu, 27 Feb 2014 15:42:09 +0000 (+0530)
Subject: Fix sign of input to bsloww1 (BZ #16623)
X-Git-Url: http://repo.or.cz/w/glibc.git/commitdiff_plain/1cadc85813d736f7682fa2eeadae639ab6b66c65
Fix sign of input to bsloww1 (BZ #16623)
In 84ba214c, I removed some redundant sign computations and in the
process, I incorrectly got rid of a temporary variable, thus passing
the absolute value of the input to bsloww1. This caused #16623.
This fix undoes the incorrect change.
[nix]: drop docs update (wouldn't apply)
---
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index ac5348f..fafe96f 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -594,6 +594,7 @@ cos 0x1.0000010b239a9p0
cos 0x1.00000162a932bp0
cos 0x1.000002d452a10p0
cos 0x1.000005bc7d86dp0
+cos 0x1.200145a975ce6p32
cos 1
cos 2
cos 3
@@ -1748,6 +1749,7 @@ sin 7
sin 8
sin 9
sin 10
+sin 0x1.2001469775ce6p32
sincos 0
sincos -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 8f79359..59c08a7 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -74446,6 +74446,75 @@ cos 0x1.000005bc7d86dp0
= cos tonearest ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92354p-4L : inexact-ok
= cos towardzero ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92354p-4L : inexact-ok
= cos upward ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92358p-4L : inexact-ok
+cos 0x1.200145a975ce6p32
+= cos downward flt-32 0x1.200146p+32f : -0xf.74fbep-4f : inexact-ok
+= cos tonearest flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok
+= cos towardzero flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok
+= cos upward flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok
+= cos downward dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe5p-4 : inexact-ok
+= cos tonearest dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe5p-4 : inexact-ok
+= cos towardzero dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe48p-4 : inexact-ok
+= cos upward dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe48p-4 : inexact-ok
+= cos downward ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0dp-4L : inexact-ok
+= cos tonearest ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
+= cos towardzero ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
+= cos upward ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
+= cos downward ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0dp-4L : inexact-ok
+= cos tonearest ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
+= cos towardzero ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
+= cos upward ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
+= cos downward ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59e8p-4L : inexact-ok
+= cos tonearest ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59e8p-4L : inexact-ok
+= cos towardzero ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59ep-4L : inexact-ok
+= cos upward ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59ep-4L : inexact-ok
+= cos downward ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef5cp-4L : inexact-ok
+= cos tonearest ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok
+= cos towardzero ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok
+= cos upward ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok
+= cos downward flt-32 0x1.200144p+32f : 0xf.bc96cp-4f : inexact-ok
+= cos tonearest flt-32 0x1.200144p+32f : 0xf.bc96dp-4f : inexact-ok
+= cos towardzero flt-32 0x1.200144p+32f : 0xf.bc96cp-4f : inexact-ok
+= cos upward flt-32 0x1.200144p+32f : 0xf.bc96dp-4f : inexact-ok
+= cos downward dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok
+= cos tonearest dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok
+= cos towardzero dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok
+= cos upward dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658bp-4 : inexact-ok
+= cos downward ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok
+= cos tonearest ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok
+= cos towardzero ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok
+= cos upward ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok
+= cos downward ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok
+= cos tonearest ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok
+= cos towardzero ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok
+= cos upward ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok
+= cos downward ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok
+= cos tonearest ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok
+= cos towardzero ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok
+= cos upward ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fb8p-4L : inexact-ok
+= cos downward ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8cp-4L : inexact-ok
+= cos tonearest ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a9p-4L : inexact-ok
+= cos towardzero ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8cp-4L : inexact-ok
+= cos upward ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a9p-4L : inexact-ok
+= cos downward dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffdp-4 : inexact-ok
+= cos tonearest dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok
+= cos towardzero dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok
+= cos upward dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok
+= cos downward ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe8p-4L : inexact-ok
+= cos tonearest ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
+= cos towardzero ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
+= cos upward ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
+= cos downward ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe8p-4L : inexact-ok
+= cos tonearest ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
+= cos towardzero ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
+= cos upward ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
+= cos downward ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e8p-4L : inexact-ok
+= cos tonearest ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok
+= cos towardzero ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok
+= cos upward ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok
+= cos downward ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726842p-4L : inexact-ok
+= cos tonearest ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok
+= cos towardzero ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok
+= cos upward ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok
cos 1
= cos downward flt-32 0x1p+0f : 0x8.a514p-4f : inexact-ok
= cos tonearest flt-32 0x1p+0f : 0x8.a514p-4f : inexact-ok
@@ -157744,6 +157813,75 @@ sin 10
= sin tonearest ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be025p-4L : inexact-ok
= sin towardzero ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be024cp-4L : inexact-ok
= sin upward ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be024cp-4L : inexact-ok
+sin 0x1.2001469775ce6p32
+= sin downward flt-32 0x1.200148p+32f : -0x5.595d8p-4f : inexact-ok
+= sin tonearest flt-32 0x1.200148p+32f : -0x5.595d8p-4f : inexact-ok
+= sin towardzero flt-32 0x1.200148p+32f : -0x5.595d78p-4f : inexact-ok
+= sin upward flt-32 0x1.200148p+32f : -0x5.595d78p-4f : inexact-ok
+= sin downward dbl-64 0x1.200148p+32 : -0x5.595d7e536fe38p-4 : inexact-ok
+= sin tonearest dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok
+= sin towardzero dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok
+= sin upward dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok
+= sin downward ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35eep-4L : inexact-ok
+= sin tonearest ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
+= sin towardzero ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
+= sin upward ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
+= sin downward ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35eep-4L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
+= sin upward ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
+= sin downward ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d944p-4L : inexact-ok
+= sin tonearest ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok
+= sin towardzero ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok
+= sin upward ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok
+= sin downward ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9dap-4L : inexact-ok
+= sin tonearest ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9dap-4L : inexact-ok
+= sin towardzero ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d8p-4L : inexact-ok
+= sin upward ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d8p-4L : inexact-ok
+= sin downward flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok
+= sin tonearest flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok
+= sin towardzero flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok
+= sin upward flt-32 0x1.200146p+32f : 0x4.220ff8p-4f : inexact-ok
+= sin downward dbl-64 0x1.200146p+32 : 0x4.220ff25f5cfp-4 : inexact-ok
+= sin tonearest dbl-64 0x1.200146p+32 : 0x4.220ff25f5cf04p-4 : inexact-ok
+= sin towardzero dbl-64 0x1.200146p+32 : 0x4.220ff25f5cfp-4 : inexact-ok
+= sin upward dbl-64 0x1.200146p+32 : 0x4.220ff25f5cf04p-4 : inexact-ok
+= sin downward ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok
+= sin tonearest ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok
+= sin towardzero ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok
+= sin upward ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok
+= sin downward ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok
+= sin upward ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok
+= sin downward ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok
+= sin tonearest ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok
+= sin towardzero ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok
+= sin upward ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cc4p-4L : inexact-ok
+= sin downward ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok
+= sin tonearest ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok
+= sin towardzero ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok
+= sin upward ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ep-4L : inexact-ok
+= sin downward dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019fcp-4 : inexact-ok
+= sin tonearest dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok
+= sin towardzero dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok
+= sin upward dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok
+= sin downward ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f6p-4L : inexact-ok
+= sin tonearest ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
+= sin towardzero ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
+= sin upward ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
+= sin downward ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f6p-4L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
+= sin upward ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
+= sin downward ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca70604p-4L : inexact-ok
+= sin tonearest ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
+= sin towardzero ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
+= sin upward ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
+= sin downward ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca708p-4L : inexact-ok
+= sin tonearest ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
+= sin towardzero ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
+= sin upward ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
sincos 0
= sincos downward flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok
= sincos tonearest flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok
diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c
index 6105e9f..50109b8 100644
--- a/sysdeps/ieee754/dbl-64/s_sin.c
+++ b/sysdeps/ieee754/dbl-64/s_sin.c
@@ -447,19 +447,21 @@ __sin (double x)
}
else
{
+ double t;
if (a > 0)
{
m = 1;
+ t = a;
db = da;
}
else
{
m = 0;
- a = -a;
+ t = -a;
db = -da;
}
- u.x = big + a;
- y = a - (u.x - big);
+ u.x = big + t;
+ y = t - (u.x - big);
res = do_sin (u, y, db, &cor);
cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
retval = ((res == res + cor) ? ((m) ? res : -res)
@@ -671,19 +673,21 @@ __cos (double x)
}
else
{
+ double t;
if (a > 0)
{
m = 1;
+ t = a;
db = da;
}
else
{
m = 0;
- a = -a;
+ t = -a;
db = -da;
}
- u.x = big + a;
- y = a - (u.x - big);
+ u.x = big + t;
+ y = t - (u.x - big);
res = do_sin (u, y, db, &cor);
cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
retval = ((res == res + cor) ? ((m) ? res : -res)
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index f3980f8..544f1c7 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -10900,6 +10900,14 @@ idouble: 1
Test "cos_downward (0x1.0c152382d7365p+0)":
double: 1
idouble: 1
+Test "cos_downward (0x1.200145a975ce6p+32)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x1.200146p+32)":
+ildouble: 1
+ldouble: 1
Test "cos_downward (0x1.921fb4p+0)":
ildouble: 1
ldouble: 1
@@ -11126,6 +11134,9 @@ idouble: 1
Test "cos_towardzero (0x1.0c152382d7365p+0)":
double: 1
idouble: 1
+Test "cos_towardzero (0x1.200146p+32)":
+double: 1
+idouble: 1
Test "cos_towardzero (0x1.921fb4p+0)":
ildouble: 1
ldouble: 1
@@ -11258,6 +11269,17 @@ idouble: 1
Test "cos_upward (0x1.0c1524p+0)":
double: 1
idouble: 1
+Test "cos_upward (0x1.200144p+32)":
+double: 1
+idouble: 1
+Test "cos_upward (0x1.200145a975ce6p+32)":
+ildouble: 1
+ldouble: 1
+Test "cos_upward (0x1.200146p+32)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "cos_upward (0x1.921fb4p+0)":
double: 1
idouble: 1
@@ -15155,6 +15177,19 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "sin_downward (0x1.2001469775ce6p+32)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "sin_downward (0x1.200146p+32)":
+double: 1
+idouble: 1
+Test "sin_downward (0x1.200148p+32)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "sin_downward (0x1.921fb54442d18468p+0)":
ildouble: 1
ldouble: 1
@@ -15383,6 +15418,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "sin_towardzero (0x1.200146p+32)":
+double: 1
+idouble: 1
Test "sin_towardzero (0x1.921fb54442d18468p+0)":
ildouble: 1
ldouble: 1
@@ -15532,6 +15570,12 @@ ldouble: 1
Test "sin_upward (-0x8.60a92p-4)":
ildouble: 1
ldouble: 1
+Test "sin_upward (0x1.2001469775ce6p+32)":
+ildouble: 1
+ldouble: 1
+Test "sin_upward (0x1.200148p+32)":
+ildouble: 1
+ldouble: 1
Test "sin_upward (0x1.921fb4p+0)":
double: 1
idouble: 1

View File

@@ -1,12 +0,0 @@
diff -ur glibc-2.17.orig/csu/Makefile glibc-2.17/csu/Makefile
--- glibc-2.17.orig/csu/Makefile 2012-12-25 04:02:13.000000000 +0100
+++ glibc-2.17/csu/Makefile 2013-08-19 16:01:57.132378550 +0200
@@ -172,7 +172,7 @@
os=Linux; \
fi; \
printf '"Compiled on a %s %s system on %s.\\n"\n' \
- "$$os" "$$version" "`date +%Y-%m-%d`";; \
+ "$$os" "$$version";; \
*) ;; \
esac; \
files="$(all-Banner-files)"; \

View File

@@ -46,10 +46,6 @@ postInstall() {
ln -s lib $out/lib64
fi
# This file, that should not remain in the glibc derivation,
# may have not been created during the preInstall
rm -f $out/lib/libgcc_s.so.1
# Get rid of more unnecessary stuff.
rm -rf $out/var $out/sbin/sln
}

View File

@@ -13,7 +13,7 @@ cross:
let
version = "2.19";
version = "2.20";
in
@@ -56,14 +56,6 @@ stdenv.mkDerivation ({
"/bin:/usr/bin", which is inappropriate on NixOS machines. This
patch extends the search path by "/run/current-system/sw/bin". */
./fix_path_attribute_in_getconf.patch
./fix-math.patch
./cve-2014-0475.patch
./cve-2014-5119.patch
/* Remove references to the compilation date. */
./glibc-remove-date-from-compilation-banner.patch
];
postPatch =
@@ -77,8 +69,11 @@ stdenv.mkDerivation ({
+ ''
echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile
''
# Replace the date and time in nscd by $out.
# It is used as a protocol compatibility check.
# Replace the date and time in nscd by a prefix of $out.
# It is used as a protocol compatibility check.
# Note: the size of the struct changes, but using only a part
# would break hash-rewriting. When receiving stats it does check
# that the struct sizes match and can't cause overflow or something.
+ ''
cat ${./glibc-remove-datetime-from-nscd.patch} \
| sed "s,@out@,$out," | patch -p1
@@ -155,7 +150,7 @@ stdenv.mkDerivation ({
}
else fetchurl {
url = "mirror://gnu/glibc/glibc-${version}.tar.gz";
sha256 = "15n7x9mmzhd7w6s5hd9srx0h23b32gwb306x98k9ss940yvnvb8q";
sha256 = "1g6ysvk15arpi7c1f1fpx5slgfr2k3dqd5xr0yvijajp1m0xxq9p";
};
# Remove absolute paths from `configure' & co.; build out-of-tree.

View File

@@ -35,7 +35,7 @@ in
preInstall = ''
if [ -f ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 ]; then
mkdir -p $out/lib
ln -s ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1
cp ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1
fi
'';

View File

@@ -1,12 +1,12 @@
diff -rupN a/elf/rtld.c b/elf/rtld.c
--- a/elf/rtld.c 2013-08-11 00:52:55.000000001 +0200
+++ b/elf/rtld.c 2014-02-18 13:56:19.000000001 +0100
@@ -1639,7 +1639,7 @@ ERROR: ld.so: object '%s' cannot be load
diff -ru glibc-2.20-orig/elf/rtld.c glibc-2.20/elf/rtld.c
--- glibc-2.20-orig/elf/rtld.c 2014-09-07 10:09:09.000000000 +0200
+++ glibc-2.20/elf/rtld.c 2014-10-27 11:32:25.203043157 +0100
@@ -1513,7 +1513,7 @@
open(). So we do this first. If it succeeds we do almost twice
the work but this does not matter, since it is not for production
use. */
- static const char preload_file[] = "/etc/ld.so.preload";
+ static const char preload_file[] = "/etc/ld-nix.so.preload";
if (__builtin_expect (__access (preload_file, R_OK) == 0, 0))
if (__glibc_unlikely (__access (preload_file, R_OK) == 0))
{
/* Read the contents of the file. */

View File

@@ -5,7 +5,7 @@
/* We use this to make sure the receiver is the same. */
-static const char compilation[21] = __DATE__ " " __TIME__;
+static const char compilation[21] = "@out@";
+static const char compilation[] = "@out@";
/* Statistic data for one database. */
struct dbstat

View File

@@ -28,8 +28,8 @@ build null {
mkdir -p $TMPDIR/"$(dirname $(readlink -f $(type -p localedef)))/../lib/locale"
# Hack to allow building of the locales (needed since glibc-2.12)
sed -i -e "s,^LOCALEDEF=.*,LOCALEDEF=localedef --prefix=$TMPDIR," -e \
/library-path/d ../glibc-2*/localedata/Makefile
sed -i -e 's,^$(rtld-prefix) $(common-objpfx)locale/localedef,localedef --prefix='$TMPDIR',' ../glibc-2*/localedata/Makefile
${if allLocales then "" else
"echo SUPPORTED-LOCALES=\"${toString locales}\" > ../glibc-2*/localedata/SUPPORTED"}

View File

@@ -1,15 +1,15 @@
{ stdenv, fetchurl, pkgconfig, glib, libsigcxx }:
let
ver_maj = "2.38";
ver_min = "1";
ver_maj = "2.42";
ver_min = "0";
in
stdenv.mkDerivation rec {
name = "glibmm-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://gnome/sources/glibmm/${ver_maj}/${name}.tar.xz";
sha256 = "18n4czi6lh4ncj54apxms18xn9k8pmrp2ba9sxn0sk9w3pp2bja9";
sha256 = "985083d97378d234da27a7243587cc0d186897a4b2d3c1286f794089be1a3397";
};
nativeBuildInputs = [ pkgconfig ];

View File

@@ -1,67 +0,0 @@
{ fetchurl, stdenv, zlib, lzo, libtasn1, nettle, pkgconfig, lzip
, guileBindings, guile, perl, gmp }:
assert guileBindings -> guile != null;
stdenv.mkDerivation rec {
name = "gnutls-3.1.26";
src = fetchurl {
url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/${name}.tar.lz";
sha256 = "7947e18fd0c292c0274d810c9bdf674b8faa3566e056ea404a39f335982607a3";
};
# FreeBSD doesn't have <alloca.h>, and Gnulib's `alloca' module isn't used.
patches = stdenv.lib.optional stdenv.isFreeBSD ./guile-gnulib-includes.patch;
# Note: GMP is a dependency of Nettle, whose public headers include
# GMP headers, hence the hack.
configurePhase = ''
./configure --prefix="$out" \
--disable-dependency-tracking --enable-fast-install \
--without-p11-kit \
--with-lzo --with-libtasn1-prefix="${libtasn1}" \
--with-libnettle-prefix="${nettle}" \
CPPFLAGS="-I${gmp}/include" \
${stdenv.lib.optionalString guileBindings
"--enable-guile --with-guile-site-dir=\"$out/share/guile/site\""}
'';
# Build of the Guile bindings is not parallel-safe. See
# <http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=330995a920037b6030ec0282b51dde3f8b493cad>
# for the actual fix.
enableParallelBuilding = !guileBindings;
buildInputs = [ zlib lzo lzip ]
++ stdenv.lib.optional guileBindings guile;
nativeBuildInputs = [ perl pkgconfig ];
propagatedBuildInputs = [ nettle libtasn1 ];
# XXX: Gnulib's `test-select' fails on FreeBSD:
# http://hydra.nixos.org/build/2962084/nixlog/1/raw .
doCheck = false;#(!stdenv.isFreeBSD && !stdenv.isDarwin);
meta = {
description = "The GNU Transport Layer Security Library";
longDescription = ''
GnuTLS is a project that aims to develop a library which
provides a secure layer, over a reliable transport
layer. Currently the GnuTLS library implements the proposed
standards by the IETF's TLS working group.
Quoting from the TLS protocol specification:
"The TLS protocol provides communications privacy over the
Internet. The protocol allows client/server applications to
communicate in a way that is designed to prevent eavesdropping,
tampering, or message forgery."
'';
homepage = http://www.gnu.org/software/gnutls/;
license = stdenv.lib.licenses.lgpl21Plus;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
}

View File

@@ -4,11 +4,11 @@
assert guileBindings -> guile != null;
stdenv.mkDerivation rec {
name = "gnutls-3.2.17";
name = "gnutls-3.2.20";
src = fetchurl {
url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/${name}.tar.lz";
sha256 = "a332adda1d294fbee859ae46ee0c128d8959c4a5b9c28e7cdbe5c9b56898fc25";
sha256 = "0mjwzj486g0aj5i3zr70mixmbd4ldrj1ckrwmcr90si6bqa0sc6q";
};
patches =

View File

@@ -16,10 +16,10 @@ stdenv.mkDerivation rec {
sha256 = "162flbzwzz0b8axab2gimc4dglpaw88fh1d177zfg0whczlpbsln";
};
buildInputs = [ flex bison glib pkgconfig python ]
buildInputs = [ flex bison pkgconfig python ]
++ libintlOrEmpty
++ stdenv.lib.optional stdenv.isDarwin otool;
propagatedBuildInputs = [ libffi ];
propagatedBuildInputs = [ libffi glib ];
# Tests depend on cairo, which is undesirable (it pulls in lots of
# other dependencies).

View File

@@ -1,21 +1,22 @@
{ stdenv, fetchurl, pkgconfig, gtk3, glibmm, cairomm, pangomm, atkmm }:
let
ver_maj = "3.11"; # unstable version, but ATM no stable builds with gtk-3.12 and this is the version used in GNOME-3.12 "stable"
ver_min = "9";
ver_maj = "3.12";
ver_min = "0";
in
stdenv.mkDerivation rec {
name = "gtkmm-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://gnome/sources/gtkmm/${ver_maj}/${name}.tar.xz";
sha256 = "04yji82prijlwpd3blx0am1ikjy7y7ih7jd628dywdjbbfq42920";
sha256 = "86c526ceec15d889996822128d566748bb36f70cf5a2c270530dfc546a2574e1";
};
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ];
enableParallelBuilding = true;
doCheck = true;
meta = {

View File

@@ -8,11 +8,11 @@
# (icu is a ~30 MB dependency, the rest is very small in comparison)
stdenv.mkDerivation rec {
name = "harfbuzz-0.9.35";
name = "harfbuzz-0.9.36";
src = fetchurl {
url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
sha256 = "1v86596994bnb9hx7laykhw4ipixqz9ckwzyyqf340pmlsmsi88a";
sha256 = "3bfbf7b016167ee6b2a2f83948fef75cc1253081873d6a91022161815956b9be";
};
configureFlags = [

View File

@@ -1,11 +1,11 @@
{ stdenv, fetchurl, python }:
stdenv.mkDerivation rec {
name = "libevdev-1.3";
name = "libevdev-1.3.1";
src = fetchurl {
url = "http://www.freedesktop.org/software/libevdev/${name}.tar.xz";
sha256 = "0iil4pnla0kjdx52ay7igq65sx32sjbzn1wx9q3v74m5g7712m16";
sha256 = "0hr6xjp7vcnr7lnr1il03235rcslqb95yv7j88qh51q0bwcpcz2b";
};
buildInputs = [ python ];

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl, zlib, xz, python ? null, pythonSupport ? true }:
{ stdenv, fetchurl, zlib, xz, python ? null, pythonSupport ? true, findXMLCatalogs }:
assert pythonSupport -> python != null;
@@ -22,9 +22,7 @@ stdenv.mkDerivation (rec {
# RUNPATH for that, leading to undefined references for its users.
++ (stdenv.lib.optional stdenv.isFreeBSD xz);
propagatedBuildInputs = [ zlib ];
setupHook = ./setup-hook.sh;
propagatedBuildInputs = [ zlib findXMLCatalogs ];
passthru = { inherit pythonSupport version; };

View File

@@ -1,19 +0,0 @@
addXMLCatalogs () {
for kind in dtd xsl; do
if test -d $1/xml/$kind; then
for i in $(find $1/xml/$kind -name catalog.xml); do
export XML_CATALOG_FILES="$XML_CATALOG_FILES $i"
done
fi
done
}
if test -z "$libxmlHookDone"; then
libxmlHookDone=1
# Set up XML_CATALOG_FILES. An empty initial value prevents
# xmllint and xsltproc from looking in /etc/xml/catalog.
export XML_CATALOG_FILES
if test -z "$XML_CATALOG_FILES"; then XML_CATALOG_FILES=" "; fi
envHooks+=(addXMLCatalogs)
fi

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl, libxml2 }:
{ stdenv, fetchurl, libxml2, findXMLCatalogs }:
stdenv.mkDerivation rec {
name = "libxslt-1.1.28";
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
buildInputs = [ libxml2 ];
propagatedBuildInputs = [ findXMLCatalogs ];
patches = stdenv.lib.optionals stdenv.isSunOS [ ./patch-ah.patch ];
configureFlags = [
@@ -21,11 +23,6 @@ stdenv.mkDerivation rec {
"--without-debugger"
];
postInstall = ''
mkdir -p $out/nix-support
ln -s ${libxml2}/nix-support/setup-hook $out/nix-support/
'';
meta = {
homepage = http://xmlsoft.org/XSLT/;
description = "A C library and tools to do XSL transformations";

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, flex, bison, autoreconfHook, substituteAll
{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, flex, bison, autoreconfHook, substituteAll
, python, libxml2Python, file, expat, makedepend
, libdrm, xorg, wayland, udev, llvm, libffi
, libvdpau, libelf
@@ -45,6 +45,12 @@ stdenv.mkDerivation {
./glx_ro_text_segm.patch # fix for grsecurity/PaX
# TODO: revive ./dricore-gallium.patch when it gets ported (from Ubuntu),
# as it saved ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog
(fetchpatch {
name = "fix-lp_test_arit.diff";
url = "http://cgit.freedesktop.org/mesa/mesa/patch/"
+ "?id=8148a06b8fdb734f7f9a11ce787ee6505939fdaa";
sha256 = "0k2bnl7d28nx2y88jchw6jj4f3xfdjjvz4vpvhc40060c2iz8fla";
})
] ++ optional stdenv.isLinux
(substituteAll {
src = ./dlopen-absolute-paths.diff;
@@ -78,7 +84,7 @@ stdenv.mkDerivation {
"--with-dri-drivers=i965,r200,radeon"
"--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,radeonsi"
"--with-egl-platforms=x11,drm" "--enable-gbm"
"--with-egl-platforms=x11,wayland,drm" "--enable-gbm"
]
++ optional enableTextureFloats "--enable-texture-float"
++ optionals enableExtraFeatures [
@@ -97,13 +103,13 @@ stdenv.mkDerivation {
autoreconfHook intltool expat libxml2Python llvm
glproto dri2proto dri3proto presentproto
libX11 libXext libxcb libXt libXfixes libxshmfence
libffi /* wayland */ libvdpau libelf
libffi wayland libvdpau libelf
] ++ optionals enableExtraFeatures [ /*libXvMC*/ ]
++ optional stdenv.isLinux udev
;
enableParallelBuilding = true;
#doCheck = true; # https://bugs.freedesktop.org/show_bug.cgi?id=67672
doCheck = true;
# move gallium-related stuff to $drivers, so $out doesn't depend on LLVM;
# also move libOSMesa to $osmesa, as it's relatively big

View File

@@ -1,28 +1,39 @@
{ stdenv, fetchurl, cmake, automoc4, qt4, pkgconfig, phonon, gstreamer
, gst_plugins_base }:
{ stdenv, fetchurl, cmake, automoc4, pkgconfig, gst_all_1
, phonon, qt4 ? null, qt5 ? null, withQt5 ? false }:
with stdenv.lib;
assert (withQt5 -> qt5 != null); assert (!withQt5 -> qt4 != null);
let
version = "4.7.2";
version = "4.8.0";
pname = "phonon-backend-gstreamer";
qt = if withQt5 then qt5 else qt4;
# Force same Qt version in phonon
phonon_ = phonon.override { inherit qt4 qt5 withQt5; };
in
stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://kde/stable/phonon/${pname}/${version}/src/${name}.tar.xz";
sha256 = "1cfjk450aajr8hfhnfq7zbmryprxiwr9ha5x585dsh7mja82mdw0";
url = "mirror://kde/stable/phonon/${pname}/${version}/${name}.tar.xz";
sha256 = "0zjqf1gpj6h9hj27225vihg5gj0fjgvh4n9nkrbij7kf57bcn6gq";
};
buildInputs = [ phonon qt4 gstreamer gst_plugins_base ];
buildInputs = with gst_all_1; [ phonon_ qt gstreamer gst-plugins-base ];
nativeBuildInputs = [ cmake automoc4 pkgconfig ];
cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ];
cmakeFlags =
[ "-DCMAKE_INSTALL_LIBDIR=lib"
] ++ optional withQt5 "-DPHONON_BUILD_PHONON4QT5=ON";
meta = {
homepage = http://phonon.kde.org/;
description = "GStreamer backend for Phonon";
platforms = stdenv.lib.platforms.linux;
};
platforms = platforms.linux;
maintainers = with maintainers; [ ttuegel ];
license = licenses.lgpl21Plus;
};
}

View File

@@ -1,26 +1,37 @@
{ stdenv, fetchurl, xz, qt4, vlc, automoc4, cmake, pkgconfig, phonon }:
{ stdenv, fetchurl, xz, vlc, automoc4, cmake, pkgconfig, phonon
, qt4 ? null, qt5 ? null, withQt5 ? false }:
with stdenv.lib;
assert (withQt5 -> qt5 != null); assert (!withQt5 -> qt4 != null);
let
pname = "phonon-backend-vlc";
v = "0.7.2";
vlc_ = vlc.override { inherit qt4; }; #Force using the same qt version
v = "0.8.1";
# Force same Qt version in phonon and VLC
vlc_ = vlc.override { inherit qt4 qt5 withQt5; };
phonon_ = phonon.override { inherit qt4 qt5 withQt5; };
in
stdenv.mkDerivation {
name = "${pname}-${v}";
src = fetchurl {
url = "mirror://kde/stable/phonon/${pname}/${v}/src/${pname}-${v}.tar.xz";
sha256 = "1acmbn8pmmq16gcz825dlzaf3haj6avp1bmcxzpkjd1fvxh86y0a";
url = "mirror://kde/stable/phonon/${pname}/${v}/${pname}-${v}.tar.xz";
sha256 = "1fyfh7qyb6rld350v2fgz452ld96d3z5ifchr323q0vc3hb9k222";
};
nativeBuildInputs = [ cmake pkgconfig automoc4 xz ];
buildInputs = [ qt4 vlc_ phonon ];
buildInputs = [ vlc_ phonon_ (if withQt5 then qt5 else qt4)];
cmakeFlags = optional withQt5 "-DPHONON_BUILD_PHONON4QT5=ON";
meta = {
homepage = http://phonon.kde.org/;
description = "VideoLAN backend for Phonon multimedia framework";
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.urkud ];
platforms = platforms.linux;
maintainers = with maintainers; [ ttuegel urkud ];
license = licenses.lgpl21Plus;
};
}

View File

@@ -1,25 +1,33 @@
{ stdenv, fetchurl, cmake, automoc4, qt4, pulseaudio }:
{ stdenv, fetchurl, cmake, automoc4, pulseaudio
, qt4 ? null, qt5 ? null, withQt5 ? false }:
assert (withQt5 -> qt5 != null); assert (!withQt5 -> qt4 != null);
with stdenv.lib;
let
v = "4.7.2";
v = "4.8.1";
in
stdenv.mkDerivation rec {
name = "phonon-${v}";
src = fetchurl {
url = "mirror://kde/stable/phonon/${v}/${name}.tar.xz";
sha256 = "1ghidabmi6vnnmz8q272qi259nb8bbqlbayqk52ln98fs8s9g7l1";
url = "mirror://kde/stable/phonon/${v}/phonon-${v}.tar.xz";
sha256 = "1l97h1jj3gvl1chx1qbipizfvjgqc05wrhdcflc76c2krlk03jmn";
};
buildInputs = [ qt4 pulseaudio ];
buildInputs = [ (if withQt5 then qt5 else qt4) pulseaudio ];
nativeBuildInputs = [ cmake automoc4 ];
cmakeFlags = optional withQt5 "-DPHONON_BUILD_PHONON4QT5=ON";
meta = {
homepage = http://phonon.kde.org/;
description = "Multimedia API for Qt";
license = stdenv.lib.licenses.lgpl2;
platforms = stdenv.lib.platforms.linux;
};
maintainers = with stdenv.lib.maintainers; [ ttuegel ];
};
}

View File

@@ -1,20 +1,22 @@
{ stdenv, fetchurl, cmake, qt4, pkgconfig, polkit, automoc4, glib }:
{ stdenv, fetchurl, cmake, pkgconfig, polkit, automoc4, glib
, qt4 ? null, qt5 ? null, withQt5 ? false }:
stdenv.mkDerivation rec {
name = "polkit-qt-1-0.103.0";
assert (withQt5 -> qt5 != null); assert (!withQt5 -> qt4 != null);
stdenv.mkDerivation {
name = "polkit-qt-1-0.112.0";
src = fetchurl {
url = "mirror://kde/stable/apps/KDE4.x/admin/${name}.tar.bz2";
sha256 = "0k17sb70ywk94dmncnkyig03sg1hcfbhi5wlc77xf3rxirmmccif";
url = "mirror://kde/stable/apps/KDE4.x/admin/polkit-qt-1-0.112.0.tar.bz2";
sha256 = "1ip78x20hjqvm08kxhp6gb8hf6k5n6sxyx6kk2yvvq53djzh7yv7";
};
patches = [ ./polkit-install.patch ];
nativeBuildInputs = [ cmake automoc4 pkgconfig ];
nativeBuildInputs = [ cmake automoc4 ];
propagatedBuildInputs = [ polkit glib qt4 ];
propagatedBuildInputs = [ polkit glib (if withQt5 then qt5 else qt4) ];
meta = {
description = "A Qt wrapper around PolKit";
maintainers = with stdenv.lib.maintainers; [ ttuegel ];
};
}

View File

@@ -1,12 +0,0 @@
diff -ru -x '*~' polkit-qt-1-0.99.0-orig/PolkitQt-1Config.cmake.in polkit-qt-1-0.99.0/PolkitQt-1Config.cmake.in
--- polkit-qt-1-0.99.0-orig/PolkitQt-1Config.cmake.in 2010-12-08 18:22:28.000000000 +0100
+++ polkit-qt-1-0.99.0/PolkitQt-1Config.cmake.in 2011-07-12 13:26:51.000000000 +0200
@@ -15,7 +15,7 @@
set(POLKITQT-1_INCLUDE_DIR "@INCLUDE_INSTALL_DIR@/polkit-qt-1")
set(POLKITQT-1_LIB_DIR "@LIB_INSTALL_DIR@")
-set(POLKITQT-1_POLICY_FILES_INSTALL_DIR "${POLKITQT-1_INSTALL_DIR}/share/polkit-1/actions")
+set(POLKITQT-1_POLICY_FILES_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions")
# Compatibility
if(WIN32)

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl, fetchgit, pkgconfig, cmake, libiconvOrEmpty, libintlOrEmpty
{ stdenv, fetchurl, fetchpatch, pkgconfig, cmake, libiconvOrEmpty, libintlOrEmpty
, zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg
, qt4Support ? false, qt4 ? null
}:
@@ -7,6 +7,14 @@ let
version = "0.28.1"; # even major numbers are stable
sha256 = "01pxjdbhvpxf00ncf8d9wxc8gkcqcxz59lwrpa151ah988inxkrc";
# This is for Okular (and similar) to support subpixel rendering.
# It's kept from upstream because of political reasons.
qtcairo_patch = fetchpatch {
url = "https://github.com/giddie/poppler-qt4-cairo-backend/compare/"
+ "fa1d636...b30f96c.diff"; # update to current maint...qt4-lcd
sha256 = "0g18y247k2vcz1n56rnfpy226f22v4r9c7pk8cf2h9l12vz2qxkm";
};
poppler_drv = nameSuff: merge: stdenv.mkDerivation (stdenv.lib.mergeAttrsByFuncDefaultsClean [
rec {
name = "poppler-${nameSuff}-${version}";
@@ -53,6 +61,7 @@ let
poppler_glib = poppler_drv "glib" { };
poppler_qt4 = poppler_drv "qt4" {
patches = [ qtcairo_patch ];
propagatedBuildInputs = [ qt4 poppler_glib ];
NIX_LDFLAGS = "-lpoppler";
postConfigure = ''

View File

@@ -1,7 +1,31 @@
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/widgets/styles/qgtkstyle_p.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/widgets/styles/qgtkstyle_p.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/widgets/styles/qgtkstyle_p.cpp 2013-08-25 20:03:30.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/widgets/styles/qgtkstyle_p.cpp 2013-09-25 17:58:04.229373681 +0200
@@ -348,7 +348,7 @@
From 35d5995a58c86a6addbf0aaf0d1be64d39182872 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:21:58 -0600
Subject: [PATCH] dlopen-gtkstyle
---
qtbase/src/widgets/styles/qgtk2painter.cpp | 2 +-
qtbase/src/widgets/styles/qgtkstyle_p.cpp | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/qtbase/src/widgets/styles/qgtk2painter.cpp b/qtbase/src/widgets/styles/qgtk2painter.cpp
index 7b9bd97..075947a 100644
--- a/qtbase/src/widgets/styles/qgtk2painter.cpp
+++ b/qtbase/src/widgets/styles/qgtk2painter.cpp
@@ -104,7 +104,7 @@ static void initGtk()
static bool initialized = false;
if (!initialized) {
// enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0
- QLibrary libgtk(QLS("gtk-x11-2.0"), 0, 0);
+ QLibrary libgtk(QLS("@gtk@/lib/libgtk-x11-2.0"), 0, 0);
QGtk2PainterPrivate::gdk_pixmap_new = (Ptr_gdk_pixmap_new)libgtk.resolve("gdk_pixmap_new");
QGtk2PainterPrivate::gdk_pixbuf_get_from_drawable = (Ptr_gdk_pixbuf_get_from_drawable)libgtk.resolve("gdk_pixbuf_get_from_drawable");
diff --git a/qtbase/src/widgets/styles/qgtkstyle_p.cpp b/qtbase/src/widgets/styles/qgtkstyle_p.cpp
index 2c64225..3343d32 100644
--- a/qtbase/src/widgets/styles/qgtkstyle_p.cpp
+++ b/qtbase/src/widgets/styles/qgtkstyle_p.cpp
@@ -334,7 +334,7 @@ void QGtkStylePrivate::gtkWidgetSetFocus(GtkWidget *widget, bool focus)
void QGtkStylePrivate::resolveGtk() const
{
// enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0
@@ -10,7 +34,7 @@ diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/widgets/styles/qgtk
gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init");
gtk_window_new = (Ptr_gtk_window_new)libgtk.resolve("gtk_window_new");
@@ -461,8 +461,8 @@
@@ -432,8 +432,8 @@ void QGtkStylePrivate::resolveGtk() const
pango_font_description_get_family = (Ptr_pango_font_description_get_family)libgtk.resolve("pango_font_description_get_family");
pango_font_description_get_style = (Ptr_pango_font_description_get_style)libgtk.resolve("pango_font_description_get_style");
@@ -21,7 +45,7 @@ diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/widgets/styles/qgtk
}
/* \internal
@@ -630,9 +630,9 @@
@@ -601,9 +601,9 @@ void QGtkStylePrivate::cleanupGtkWidgets()
static bool resolveGConf()
{
if (!QGtkStylePrivate::gconf_client_get_default) {
@@ -34,3 +58,6 @@ diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/widgets/styles/qgtk
}
return (QGtkStylePrivate::gconf_client_get_default !=0);
}
--
2.1.3

View File

@@ -0,0 +1,53 @@
From 8c30f72dbe11752e8ed25f292c6e5695d7733f72 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:22:23 -0600
Subject: [PATCH] dlopen-webkit-nsplugin
---
qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp | 2 +-
qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp | 2 +-
.../WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp b/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp
index 679480b..2c373cc 100644
--- a/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp
+++ b/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp
@@ -132,7 +132,7 @@ static void initializeGtk(QLibrary* module = 0)
}
}
- QLibrary library(QLatin1String("libgtk-x11-2.0"), 0);
+ QLibrary library(QLatin1String("@gtk@/lib/libgtk-x11-2.0"), 0);
if (library.load()) {
typedef void *(*gtk_init_check_ptr)(int*, char***);
gtk_init_check_ptr gtkInitCheck = (gtk_init_check_ptr)library.resolve("gtk_init_check");
diff --git a/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp b/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp
index de06a2f..363bde5 100644
--- a/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp
+++ b/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp
@@ -697,7 +697,7 @@ static Display *getPluginDisplay()
// support gdk based plugins (like flash) that use a different X connection.
// The code below has the same effect as this one:
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
+ QLibrary library(QLatin1String("@gdk_pixbuf@/lib/libgdk-x11-2.0"), 0);
if (!library.load())
return 0;
diff --git a/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp b/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
index d734ff6..62a2197 100644
--- a/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
+++ b/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
@@ -64,7 +64,7 @@ static Display* getPluginDisplay()
// The code below has the same effect as this one:
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
+ QLibrary library(QLatin1String("@gdk_pixbuf@/libgdk-x11-2.0"), 0);
if (!library.load())
return 0;
--
2.1.3

View File

@@ -0,0 +1,25 @@
From a41c3e3a3a1ce4b373b1bbb98f3a835e9e8a0718 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:22:39 -0600
Subject: [PATCH] glib-2.32
---
qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
index 1f6d25e..087c3fb 100644
--- a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+++ b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
@@ -81,7 +81,7 @@
#include <pthread.h>
#elif PLATFORM(GTK)
#include <wtf/gtk/GOwnPtr.h>
-typedef struct _GMutex GMutex;
+typedef union _GMutex GMutex;
typedef struct _GCond GCond;
#endif
--
2.1.3

View File

@@ -0,0 +1,39 @@
From 63af41c6eeca28c911c13b1a77afeaf860863c2d Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:22:55 -0600
Subject: [PATCH] dlopen-resolv
---
qtbase/src/network/kernel/qdnslookup_unix.cpp | 2 +-
qtbase/src/network/kernel/qhostinfo_unix.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/qtbase/src/network/kernel/qdnslookup_unix.cpp b/qtbase/src/network/kernel/qdnslookup_unix.cpp
index 8c5a0eb..27ebf16 100644
--- a/qtbase/src/network/kernel/qdnslookup_unix.cpp
+++ b/qtbase/src/network/kernel/qdnslookup_unix.cpp
@@ -87,7 +87,7 @@ static void resolveLibrary()
if (!lib.load())
#endif
{
- lib.setFileName(QLatin1String("resolv"));
+ lib.setFileName(QLatin1String("@glibc/lib/resolv"));
if (!lib.load())
return;
}
diff --git a/qtbase/src/network/kernel/qhostinfo_unix.cpp b/qtbase/src/network/kernel/qhostinfo_unix.cpp
index df8c8b1..613d0e0 100644
--- a/qtbase/src/network/kernel/qhostinfo_unix.cpp
+++ b/qtbase/src/network/kernel/qhostinfo_unix.cpp
@@ -103,7 +103,7 @@ static void resolveLibrary()
if (!lib.load())
#endif
{
- lib.setFileName(QLatin1String("resolv"));
+ lib.setFileName(QLatin1String("@glibc@/lib/libresolv"));
if (!lib.load())
return;
}
--
2.1.3

View File

@@ -0,0 +1,25 @@
From 6aaf6858bf817172a4c503158e1701c4837ee790 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:23:08 -0600
Subject: [PATCH] dlopen-gl
---
qtbase/src/plugins/platforms/xcb/qglxintegration.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp b/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
index 67235e0..2220a2e 100644
--- a/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
+++ b/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
@@ -434,7 +434,7 @@ void (*QGLXContext::getProcAddress(const QByteArray &procName)) ()
{
extern const QString qt_gl_library_name();
// QLibrary lib(qt_gl_library_name());
- QLibrary lib(QLatin1String("GL"));
+ QLibrary lib(QLatin1String("@openglDriver@/lib/libGL"));
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
}
}
--
2.1.3

View File

@@ -0,0 +1,52 @@
From 775fd74351faaabd45f6751618b28e2b05812d05 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:23:22 -0600
Subject: [PATCH] tzdir
---
qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp b/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
index b4ea91e..a56a245 100644
--- a/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
+++ b/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
@@ -68,7 +68,10 @@ typedef QHash<QByteArray, QTzTimeZone> QTzTimeZoneHash;
// Parse zone.tab table, assume lists all installed zones, if not will need to read directories
static QTzTimeZoneHash loadTzTimeZones()
{
- QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
+ QString path = qgetenv("TZDIR");
+ path += "/zone.tab";
+ if (!QFile::exists(path))
+ path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
if (!QFile::exists(path))
path = QStringLiteral("/usr/lib/zoneinfo/zone.tab");
@@ -559,12 +562,18 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId)
if (!tzif.open(QIODevice::ReadOnly))
return;
} else {
- // Open named tz, try modern path first, if fails try legacy path
- tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
+ // Try TZDIR first
+ QString zoneinfoDir = qgetenv("TZDIR");
+ zoneinfoDir += "/" + QString::fromLocal8Bit(ianaId);
+ tzif.setFileName(zoneinfoDir);
if (!tzif.open(QIODevice::ReadOnly)) {
- tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
- if (!tzif.open(QIODevice::ReadOnly))
- return;
+ // Open named tz, try modern path first, if fails try legacy path
+ tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
+ if (!tzif.open(QIODevice::ReadOnly)) {
+ tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
+ if (!tzif.open(QIODevice::ReadOnly))
+ return;
+ }
}
}
--
2.1.3

View File

@@ -0,0 +1,25 @@
From 089db8835c80bf2b7dd91a97a5c6eb26636b6ab9 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:26:39 -0600
Subject: [PATCH] dlopen-webkit-gtk
---
qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp b/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
index 8de6521..0b25748 100644
--- a/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
+++ b/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
@@ -53,7 +53,7 @@ static void messageHandler(QtMsgType type, const QMessageLogContext&, const QStr
static bool initializeGtk()
{
- QLibrary gtkLibrary(QLatin1String("libgtk-x11-2.0"), 0);
+ QLibrary gtkLibrary(QLatin1String("@gtk@/lib/libgtk-x11-2.0"), 0);
if (!gtkLibrary.load())
return false;
typedef void* (*gtk_init_ptr)(void*, void*);
--
2.1.3

View File

@@ -0,0 +1,31 @@
From 25d2922cce383fcaa4c138e0cc6c8d92328eeacb Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:30:41 -0600
Subject: [PATCH] dlopen-webkit-udev
---
qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp b/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp
index 60ff317..da8ac69 100644
--- a/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp
+++ b/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp
@@ -111,12 +111,12 @@ private:
bool load()
{
m_libUdev.setLoadHints(QLibrary::ResolveAllSymbolsHint);
- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 1);
+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1);
m_loaded = m_libUdev.load();
if (resolveMethods())
return true;
- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 0);
+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0);
m_loaded = m_libUdev.load();
return resolveMethods();
}
--
2.1.3

View File

@@ -0,0 +1,28 @@
From 17c7257e54c00ea2121f2cf95fb2be5e5db6b4ad Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:31:03 -0600
Subject: [PATCH] dlopen-serialport-udev
---
qtserialport/src/serialport/qtudev_p.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qtserialport/src/serialport/qtudev_p.h b/qtserialport/src/serialport/qtudev_p.h
index 09940ab..45460f9 100644
--- a/qtserialport/src/serialport/qtudev_p.h
+++ b/qtserialport/src/serialport/qtudev_p.h
@@ -119,9 +119,9 @@ inline void *resolveSymbol(QLibrary *udevLibrary, const char *symbolName)
inline bool resolveSymbols(QLibrary *udevLibrary)
{
if (!udevLibrary->isLoaded()) {
- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1);
+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1);
if (!udevLibrary->load()) {
- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0);
+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0);
if (!udevLibrary->load()) {
qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0);
return false;
--
2.1.3

View File

@@ -0,0 +1,29 @@
From b56e3737ca97e3de664603976989da4419297eb3 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:33:51 -0600
Subject: [PATCH] dlopen-libXcursor
---
qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp b/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
index 6dbac90..4b23fc2 100644
--- a/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
+++ b/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
@@ -305,10 +305,10 @@ QXcbCursor::QXcbCursor(QXcbConnection *conn, QXcbScreen *screen)
#ifdef XCB_USE_XLIB
static bool function_ptrs_not_initialized = true;
if (function_ptrs_not_initialized) {
- QLibrary xcursorLib(QLatin1String("Xcursor"), 1);
+ QLibrary xcursorLib(QLatin1String("@libXcursor@/lib/libXcursor"), 1);
bool xcursorFound = xcursorLib.load();
if (!xcursorFound) { // try without the version number
- xcursorLib.setFileName(QLatin1String("Xcursor"));
+ xcursorLib.setFileName(QLatin1String("@libXcursor@/lib/Xcursor"));
xcursorFound = xcursorLib.load();
}
if (xcursorFound) {
--
2.1.3

View File

@@ -0,0 +1,38 @@
From 99d458c93698b2d4f16ff164ed54237279ffbb64 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:35:21 -0600
Subject: [PATCH] dlopen-openssl
---
qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp b/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
index 4e6200f..d9c3e7d 100644
--- a/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
+++ b/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
@@ -585,8 +585,8 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
#endif
#if defined(SHLIB_VERSION_NUMBER) && !defined(Q_OS_QNX) // on QNX, the libs are always libssl.so and libcrypto.so
// first attempt: the canonical name is libssl.so.<SHLIB_VERSION_NUMBER>
- libssl->setFileNameAndVersion(QLatin1String("ssl"), QLatin1String(SHLIB_VERSION_NUMBER));
- libcrypto->setFileNameAndVersion(QLatin1String("crypto"), QLatin1String(SHLIB_VERSION_NUMBER));
+ libssl->setFileNameAndVersion(QLatin1String("@openssl@/lib/libssl"), QLatin1String(SHLIB_VERSION_NUMBER));
+ libcrypto->setFileNameAndVersion(QLatin1String("@openssl@/lib/libcrypto"), QLatin1String(SHLIB_VERSION_NUMBER));
if (libcrypto->load() && libssl->load()) {
// libssl.so.<SHLIB_VERSION_NUMBER> and libcrypto.so.<SHLIB_VERSION_NUMBER> found
return pair;
@@ -597,8 +597,8 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
#endif
// second attempt: find the development files libssl.so and libcrypto.so
- libssl->setFileNameAndVersion(QLatin1String("ssl"), -1);
- libcrypto->setFileNameAndVersion(QLatin1String("crypto"), -1);
+ libssl->setFileNameAndVersion(QLatin1String("@openssl@/lib/libssl"), -1);
+ libcrypto->setFileNameAndVersion(QLatin1String("@openssl@/lib/libcrypto"), -1);
if (libcrypto->load() && libssl->load()) {
// libssl.so.0 and libcrypto.so.0 found
return pair;
--
2.1.3

View File

@@ -0,0 +1,25 @@
From eec8a79c6cc9e2c65fd43db48ca2347de3ae0c5e Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 1 Dec 2014 17:38:04 -0600
Subject: [PATCH] dlopen-dbus
---
qtbase/src/dbus/qdbus_symbols.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qtbase/src/dbus/qdbus_symbols.cpp b/qtbase/src/dbus/qdbus_symbols.cpp
index a7a1b67..661baf1 100644
--- a/qtbase/src/dbus/qdbus_symbols.cpp
+++ b/qtbase/src/dbus/qdbus_symbols.cpp
@@ -93,7 +93,7 @@ bool qdbus_loadLibDBus()
static int majorversions[] = { 3, 2, -1 };
lib->unload();
- lib->setFileName(QLatin1String("dbus-1"));
+ lib->setFileName(QLatin1String("@dbus_libs@/lib/libdbus-1"));
for (uint i = 0; i < sizeof(majorversions) / sizeof(majorversions[0]); ++i) {
lib->setFileNameAndVersion(lib->fileName(), majorversions[i]);
if (lib->load() && lib->resolve("dbus_connection_open_private"))
--
2.1.3

View File

@@ -3,9 +3,9 @@
, mesaSupported, mesa, mesa_glu, openssl, dbus, cups, pkgconfig
, libtiff, glib, icu, mysql, postgresql, sqlite, perl, coreutils, libXi
, gdk_pixbuf, python, gdb, xlibs, libX11, libxcb, xcbutil, xcbutilimage
, xcbutilkeysyms, xcbutilwm,udev, libxml2, libxslt, pcre, libxkbcommon
, xcbutilkeysyms, xcbutilwm, udev, libxml2, libxslt, pcre, libxkbcommon
, alsaLib, gstreamer, gst_plugins_base
, pulseaudio, bison, flex, gperf, ruby, libwebp
, pulseaudio, bison, flex, gperf, ruby, libwebp, libXcursor
, flashplayerFix ? false
, gtkStyle ? false, libgnomeui, gtk, GConf, gnome_vfs
, buildDocs ? false
@@ -17,8 +17,8 @@
with stdenv.lib;
let
v_maj = "5.2";
v_min = "1";
v_maj = "5.3";
v_min = "2";
ver = "${v_maj}.${v_min}";
in
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.qt-project.org/official_releases/qt/"
+ "${v_maj}/${ver}/single/qt-everywhere-opensource-src-${ver}.tar.gz";
sha256 = "18bxrnyis7xbhpxpf7w42i54hs4qr062b1wx4c0dpmja3lc29sc4";
sha256 = "0b98n2jl62dyqxwn1gdj9xmk8wrrdxnazr65fdk5qw1hmlpgvly8";
};
# The version property must be kept because it will be included into the QtSDK package name
@@ -45,23 +45,40 @@ stdenv.mkDerivation rec {
'';
patches =
[ ./glib-2.32.patch
optional gtkStyle
(substituteAll {
src = ./qt-5.2-dlopen-absolute-paths.patch;
inherit cups icu libXfixes;
glibc = stdenv.gcc.libc;
openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
})
] ++ optional gtkStyle (substituteAll {
src = ./dlopen-gtkstyle.patch;
src = ./0001-dlopen-gtkstyle.patch;
# substituteAll ignores env vars starting with capital letter
gconf = GConf;
inherit gnome_vfs libgnomeui gtk;
})
++ optional flashplayerFix (substituteAll {
src = ./dlopen-webkit-nsplugin.patch;
++ optional flashplayerFix
(substituteAll {
src = ./0002-dlopen-webkit-nsplugin.patch;
inherit gtk gdk_pixbuf;
});
})
++ optional flashplayerFix
(substituteAll {
src = ./0007-dlopen-webkit-gtk.patch;
inherit gtk;
})
++ [
./0003-glib-2.32.patch
(substituteAll {
src = ./0004-dlopen-resolv.patch;
glibc = stdenv.gcc.libc;
})
(substituteAll {
src = ./0005-dlopen-gl.patch;
openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
})
./0006-tzdir.patch
(substituteAll { src = ./0008-dlopen-webkit-udev.patch; inherit udev; })
(substituteAll { src = ./0009-dlopen-serialport-udev.patch; inherit udev; })
(substituteAll { src = ./0010-dlopen-libXcursor.patch; inherit libXcursor; })
(substituteAll { src = ./0011-dlopen-openssl.patch; inherit openssl; })
(substituteAll { src = ./0012-dlopen-dbus.patch; dbus_libs = dbus; })
];
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$PWD/qttools/lib:$LD_LIBRARY_PATH"
@@ -92,7 +109,6 @@ stdenv.mkDerivation rec {
-gui
-widgets
-opengl desktop
-javascript-jit
-qml-debug
-nis
-iconv
@@ -160,7 +176,7 @@ stdenv.mkDerivation rec {
homepage = http://qt-project.org;
description = "A cross-platform application framework for C++";
license = "GPL/LGPL";
maintainers = [ maintainers.bbenoist ];
maintainers = with maintainers; [ bbenoist qknight ttuegel ];
platforms = platforms.linux;
};
}

View File

@@ -1,36 +0,0 @@
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp 2013-08-25 20:04:47.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp 2013-09-25 17:59:45.925363807 +0200
@@ -132,7 +132,7 @@
}
}
- QLibrary library(QLatin1String("libgtk-x11-2.0"), 0);
+ QLibrary library(QLatin1String("@gtk@/lib/libgtk-x11-2.0"), 0);
if (library.load()) {
typedef void *(*gtk_init_check_ptr)(int*, char***);
gtk_init_check_ptr gtkInitCheck = (gtk_init_check_ptr)library.resolve("gtk_init_check");
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp 2013-08-25 20:04:47.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp 2013-09-25 18:00:29.551215155 +0200
@@ -702,7 +702,7 @@
// support gdk based plugins (like flash) that use a different X connection.
// The code below has the same effect as this one:
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
+ QLibrary library(QLatin1String("@gdk_pixbuf@/lib/libgdk-x11-2.0"), 0);
if (!library.load())
return 0;
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp 2013-08-25 20:04:42.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp 2013-09-25 18:04:54.955408293 +0200
@@ -64,7 +64,7 @@
// The code below has the same effect as this one:
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
+ QLibrary library(QLatin1String("@gdk_pixbuf@/libgdk-x11-2.0"), 0);
if (!library.load())
return 0;

View File

@@ -1,12 +0,0 @@
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h qt-everywhere-opensource-src-5.1.1/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
--- qt-everywhere-opensource-src-5.1.1-orig/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h 2013-08-25 20:04:35.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h 2013-09-25 18:09:22.154639482 +0200
@@ -81,7 +81,7 @@
#include <pthread.h>
#elif PLATFORM(GTK)
#include <wtf/gtk/GOwnPtr.h>
-typedef struct _GMutex GMutex;
+typedef union _GMutex GMutex;
typedef struct _GCond GCond;
#endif

View File

@@ -1,36 +0,0 @@
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/network/kernel/qhostinfo_unix.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/network/kernel/qhostinfo_unix.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/network/kernel/qhostinfo_unix.cpp 2013-08-25 20:03:35.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/network/kernel/qhostinfo_unix.cpp 2013-09-25 17:43:14.047015411 +0200
@@ -103,7 +103,7 @@
if (!lib.load())
#endif
{
- lib.setFileName(QLatin1String("resolv"));
+ lib.setFileName(QLatin1String("@glibc@/lib/libresolv"));
if (!lib.load())
return;
}
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp 2013-08-25 20:03:35.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp 2013-09-25 17:51:29.834674976 +0200
@@ -379,7 +379,7 @@
{
extern const QString qt_gl_library_name();
// QLibrary lib(qt_gl_library_name());
- QLibrary lib(QLatin1String("GL"));
+ QLibrary lib(QLatin1String("@openglDriver@/lib/libGL"));
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
}
}
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/printsupport/kernel/qcups.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/printsupport/kernel/qcups.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/printsupport/kernel/qcups.cpp 2013-08-25 20:03:36.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/printsupport/kernel/qcups.cpp 2013-09-25 17:40:35.895942599 +0200
@@ -91,7 +91,7 @@
static void resolveCups()
{
- QLibrary cupsLib(QLatin1String("cups"), 2);
+ QLibrary cupsLib(QLatin1String("@cups@/lib/libcups"), 2);
if(cupsLib.load()) {
_cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests");
_cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests");

View File

@@ -1,24 +0,0 @@
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/network/kernel/qhostinfo_unix.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/network/kernel/qhostinfo_unix.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/network/kernel/qhostinfo_unix.cpp 2013-08-25 20:03:35.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/network/kernel/qhostinfo_unix.cpp 2013-09-25 17:43:14.047015411 +0200
@@ -103,7 +103,7 @@
if (!lib.load())
#endif
{
- lib.setFileName(QLatin1String("resolv"));
+ lib.setFileName(QLatin1String("@glibc@/lib/libresolv"));
if (!lib.load())
return;
}
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp 2013-08-25 20:03:35.000000000 +0200
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp 2013-09-25 17:51:29.834674976 +0200
@@ -379,7 +379,7 @@
{
extern const QString qt_gl_library_name();
// QLibrary lib(qt_gl_library_name());
- QLibrary lib(QLatin1String("GL"));
+ QLibrary lib(QLatin1String("@openglDriver@/lib/libGL"));
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
}
}

View File

@@ -1,165 +0,0 @@
{ stdenv, fetchurl, substituteAll, libXrender, libXext
, libXfixes, freetype, fontconfig, zlib, libjpeg, libpng
, mesaSupported, mesa, mesa_glu, openssl, dbus, cups, pkgconfig
, libtiff, glib, icu, mysql, postgresql, sqlite, perl, coreutils, libXi
, gdk_pixbuf, python, gdb, xlibs, libX11, libxcb, xcbutil, xcbutilimage
, xcbutilkeysyms, xcbutilwm,udev, libxml2, libxslt, pcre, libxkbcommon
, alsaLib, gstreamer, gst_plugins_base
, pulseaudio, bison, flex, gperf, ruby, libwebp
, flashplayerFix ? false
, gtkStyle ? false, libgnomeui, gtk, GConf, gnome_vfs
, buildDocs ? false
, buildExamples ? false
, buildTests ? false
, developerBuild ? false
}:
with stdenv.lib;
let
v_maj = "5.3";
v_min = "1";
ver = "${v_maj}.${v_min}";
in
stdenv.mkDerivation rec {
name = "qt-${ver}";
src = fetchurl {
url = "http://download.qt-project.org/official_releases/qt/"
+ "${v_maj}/${ver}/single/qt-everywhere-opensource-src-${ver}.tar.gz";
sha256 = "189mgfqxjg0jp0vkfrj55p9brl018wzf7lir8yjr0pajp8jqd2ds";
};
# The version property must be kept because it will be included into the QtSDK package name
version = ver;
prePatch = ''
substituteInPlace configure --replace /bin/pwd pwd
substituteInPlace qtbase/configure --replace /bin/pwd pwd
substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
substituteInPlace qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \
--replace /usr/share/X11/locale ${libX11}/share/X11/locale \
--replace /usr/lib/X11/locale ${libX11}/share/X11/locale
sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf
'';
patches =
[ ./glib-2.32.patch
(substituteAll {
src = ./qt-5.3-dlopen-absolute-paths.patch;
inherit cups icu libXfixes;
glibc = stdenv.gcc.libc;
openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
})
] ++ optional gtkStyle (substituteAll {
src = ./dlopen-gtkstyle.patch;
# substituteAll ignores env vars starting with capital letter
gconf = GConf;
inherit gnome_vfs libgnomeui gtk;
})
++ optional flashplayerFix (substituteAll {
src = ./dlopen-webkit-nsplugin.patch;
inherit gtk gdk_pixbuf;
});
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$PWD/qttools/lib:$LD_LIBRARY_PATH"
export MAKEFLAGS=-j$NIX_BUILD_CORES
'';
prefixKey = "-prefix ";
# -no-eglfs, -no-directfb, -no-linuxfb and -no-kms because of the current minimalist mesa
# TODO Remove obsolete and useless flags once the build will be totally mastered
configureFlags = ''
-verbose
-confirm-license
-opensource
-release
-shared
-c++11
${optionalString developerBuild "-developer-build"}
-largefile
-accessibility
-rpath
-optimized-qmake
-strip
-reduce-relocations
-system-proxies
-gui
-widgets
-opengl desktop
-qml-debug
-nis
-iconv
-icu
-pch
-glib
-xcb
-qpa xcb
-${optionalString (cups == null) "no-"}cups
-no-eglfs
-no-directfb
-no-linuxfb
-no-kms
-system-zlib
-system-libpng
-system-libjpeg
-system-xcb
-system-xkbcommon
-openssl-linked
-dbus-linked
-system-sqlite
-${if mysql != null then "plugin" else "no"}-sql-mysql
-${if postgresql != null then "plugin" else "no"}-sql-psql
-make libs
-make tools
-${optionalString (buildExamples == false) "no"}make examples
-${optionalString (buildTests == false) "no"}make tests
'';
propagatedBuildInputs = [
xlibs.libXcomposite libX11 libxcb libXext libXrender libXi
fontconfig freetype openssl dbus.libs glib udev libxml2 libxslt pcre
zlib libjpeg libpng libtiff sqlite icu
libwebp alsaLib gstreamer gst_plugins_base pulseaudio
xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon
]
# Qt doesn't directly need GLU (just GL), but many apps use, it's small and
# doesn't remain a runtime-dep if not used
++ optionals mesaSupported [ mesa mesa_glu ]
++ optional (cups != null) cups
++ optional (mysql != null) mysql
++ optional (postgresql != null) postgresql;
buildInputs = [ gdb bison flex gperf ruby ];
nativeBuildInputs = [ python perl pkgconfig ];
postInstall =
''
${optionalString buildDocs ''
make docs && make install_docs
''}
# Don't retain build-time dependencies like gdb and ruby.
sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri
'';
enableParallelBuilding = true; # often fails on Hydra, as well as qt4
meta = {
homepage = http://qt-project.org;
description = "A cross-platform application framework for C++";
license = "GPL/LGPL";
maintainers = [ maintainers.bbenoist maintainers.qknight ];
platforms = platforms.linux;
};
}

View File

@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
description = "An implementation of the C++ Standard Library";
homepage = http://sourceforge.net/projects/stlport/;
license = stdenv.lib.licenses.free; # seems BSD-like
broken = true; # probably glibc-2.20 -related issue
};
}

View File

@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
buildInputs = [ ncurses libpcap ];
NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
meta = with stdenv.lib; {
description = "libpcap based program for live TCP connection monitoring";
homepage = http://www.rhythm.cx/~steve/devel/tcptrack/; # dead link