Merge x-updates

This commit is contained in:
Vladimír Čunát 2013-12-25 23:56:41 +01:00
commit b80d1c5923
87 changed files with 778 additions and 1023 deletions

View File

@ -72,7 +72,8 @@ in
pkgs.xfce.thunar_volman pkgs.xfce.thunar_volman
pkgs.xfce.gvfs pkgs.xfce.gvfs
pkgs.xfce.xfce4_appfinder pkgs.xfce.xfce4_appfinder
pkgs.xfce.tumbler pkgs.xfce.tumbler # found via dbus
pkgs.xfce.xfce4notifyd # found via dbus
] ]
++ optional config.powerManagement.enable pkgs.xfce.xfce4_power_manager; ++ optional config.powerManagement.enable pkgs.xfce.xfce4_power_manager;

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, libtool, intltool, pkgconfig, glib { stdenv, fetchurl, libtool, intltool, pkgconfig, glib
, gtk, curl, mpd_clientlib, libsoup, gob2, vala , gtk, curl, mpd_clientlib, libsoup, gob2, vala, libunique
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,22 +15,6 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig glib ]; buildInputs = [ pkgconfig glib ];
}; };
libunique = stdenv.mkDerivation {
name = "libunique-1.1.6";
src = fetchurl {
url = http://ftp.gnome.org/pub/GNOME/sources/libunique/1.1/libunique-1.1.6.tar.gz;
sha256 = "2cb918dde3554228a211925ba6165a661fd782394bd74dfe15e3853dc9c573ea";
};
buildInputs = [ pkgconfig glib gtk ];
patches = [
(fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/remove_G_CONST_RETURN.patch?h=packages/libunique";
sha256 = "0da2qi7cyyax4rr1p25drlhk360h8d3lapgypi5w95wj9k6bykhr";
})
];
};
src = fetchurl { src = fetchurl {
url = "http://download.sarine.nl/Programs/gmpc/11.8/gmpc-11.8.16.tar.gz"; url = "http://download.sarine.nl/Programs/gmpc/11.8/gmpc-11.8.16.tar.gz";
sha256 = "0b3bnxf98i5lhjyljvgxgx9xmb6p46cn3a9cccrng14nagri9556"; sha256 = "0b3bnxf98i5lhjyljvgxgx9xmb6p46cn3a9cccrng14nagri9556";

View File

@ -2,7 +2,7 @@
, pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif , pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif
, libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, gnutls , libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, gnutls
, alsaLib, cairo , alsaLib, cairo
, withX ? true , withX ? !stdenv.isDarwin
}: }:
assert (libXft != null) -> libpng != null; # probably a bug assert (libXft != null) -> libpng != null; # probably a bug

View File

@ -18,14 +18,14 @@
}: }:
let let
version = "6.8.7-5"; version = "6.8.7-6";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ImageMagick-${version}"; name = "ImageMagick-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://imagemagick/${name}.tar.xz"; url = "mirror://imagemagick/${name}.tar.xz";
sha256 = "1cn1kg7scs6r7r00qlqirhnmqjnmyczbidab3vgqarw9qszh2ri6"; sha256 = "0cbfhk184kxdxz5czyyqxac29mbfiahygjji6k97z6hp8ngnqlvh";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, openssl, glib, libX11, gtk3, gettext, intltool }: { stdenv, fetchurl, pkgconfig, openssl, glib, libX11, gtk2, gettext, intltool }:
let version = "1.0.2"; in let version = "1.0.2"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "d7cd9adf04fedf50b266a5c14ddb427cbb263d3bc160ee0ade03aca9d5356e5c"; sha256 = "d7cd9adf04fedf50b266a5c14ddb427cbb263d3bc160ee0ade03aca9d5356e5c";
}; };
buildInputs = [ pkgconfig openssl libX11 gtk3 glib gettext intltool ]; buildInputs = [ pkgconfig openssl libX11 gtk2 glib gettext intltool ];
patches = [ patches = [
./translation-xgettext-to-intltool.patch ./translation-xgettext-to-intltool.patch
./plugin-linkfix.patch ./plugin-linkfix.patch

View File

@ -2,30 +2,31 @@
, cairo, libxcb, libXcursor, x11, udev, libdrm, mtdev , cairo, libxcb, libXcursor, x11, udev, libdrm, mtdev
, libjpeg, pam, autoconf, automake, libtool }: , libjpeg, pam, autoconf, automake, libtool }:
let version = "1.0.5"; in let version = "1.3.1"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "weston-${version}"; name = "weston-${version}";
src = fetchurl { src = fetchurl {
url = "http://wayland.freedesktop.org/releases/${name}.tar.xz"; url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
sha256 = "0g2k82pnlxl8b70ykazj7kn8xffjfsmgcgx427qdrm4083z2hgm0"; sha256 = "1isvh66irrz707r69495767n5yxp07dvy0xx6mj1mbj1n4s1657p";
}; };
buildInputs = [ pkgconfig wayland mesa libxkbcommon buildInputs = [
cairo libxcb libXcursor x11 udev libdrm mtdev pkgconfig wayland mesa libxkbcommon
libjpeg pam autoconf automake libtool ]; cairo libxcb libXcursor x11 udev libdrm mtdev libjpeg pam
];
preConfigure = "autoreconf -vfi"; NIX_CFLAGS_COMPILE = "-I${libdrm}/include/libdrm";
# prevent install target to chown root weston-launch, which fails configureFlags = [
configureFlags = '' "--disable-setuid-install" # prevent install target to chown root weston-launch, which fails
--disable-setuid-install ];
'';
meta = { meta = {
description = "Reference implementation of a Wayland compositor"; description = "Reference implementation of a Wayland compositor";
homepage = http://wayland.freedesktop.org/; homepage = http://wayland.freedesktop.org/;
license = stdenv.lib.licenses.mit; license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
}; };
} }

View File

@ -0,0 +1,45 @@
{ stdenv, fetchurl, pkgconfig, autoreconfHook, intltool
, glib, gobjectIntrospection, gdk_pixbuf, gtk3, gnome_common
, xorg, xkeyboard_config
}:
let
version = "2.0.4";
in
stdenv.mkDerivation {
name = "cinnamon-desktop-${version}";
src = fetchurl {
url = "http://github.com/linuxmint/cinnamon-desktop/archive/${version}.tar.gz";
sha256 = "1cywin712558pv58c0cr73m25hfcv5x8pv5frvqjr9gwr2gpi6h3";
};
NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
buildInputs = with xorg; [
pkgconfig autoreconfHook intltool
glib gobjectIntrospection gdk_pixbuf gtk3 gnome_common
xkeyboard_config libxkbfile libX11 libXrandr libXext
];
postInstall = ''
${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
'';
meta = {
homepage = "http://cinnamon.linuxmint.com";
description = "Library and data for various Cinnamon modules";
longDescription = ''
The libcinnamon-desktop library provides API shared by several applications
on the desktop, but that cannot live in the platform for various
reasons. There is no API or ABI guarantee, although we are doing our
best to provide stability. Documentation for the API is available with
gtk-doc.
'';
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.roelof ];
};
}

View File

@ -0,0 +1,48 @@
{ stdenv, fetchurl, pkgconfig, autoreconfHook, glib, gettext, gnome_common, gtk3, dbus_glib
, upower, json_glib,intltool, systemd, hicolor_icon_theme, xorg, makeWrapper, cinnamon-desktop }:
let
version = "2.0.6";
in
stdenv.mkDerivation {
name = "cinnamon-session-${version}";
src = fetchurl {
url = "http://github.com/linuxmint/cinnamon-session/archive/${version}.tar.gz";
sha256 = "0rs5w7npj3wf3gkk3sfb83awks2h7vjd6cz8mvfgbh6m3grn66l3";
};
configureFlags = "--disable-schemas-compile --enable-systemd --disable-gconf" ;
patches = [ ./remove-sessionmigration.patch ./timeout.patch];
buildInputs = [
pkgconfig autoreconfHook
glib gettext gnome_common
gtk3 dbus_glib upower json_glib
intltool systemd xorg.xtrans
makeWrapper
];
preBuild = "patchShebangs ./scripts";
postInstall = ''
${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
rm $out/share/icons/hicolor/icon-theme.cache
for f in "$out"/bin/*; do
wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:${cinnamon-desktop}/share"
done
'';
meta = {
homepage = "http://cinnamon.linuxmint.com";
description = "The cinnamon session files" ;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.roelof ];
};
}

View File

@ -1,19 +1,19 @@
{ stdenv, fetchurl}: { stdenv, fetchurl }:
let
stdenv.mkDerivation rec { version = "2.0.3";
name = "cinnamon-translations"; in
version="2.0.3"; stdenv.mkDerivation {
name = "cinnamon-translations-${version}";
src = fetchurl { src = fetchurl {
url = "http://github.com/linuxmint/cinnamon-translations/archive/${version}.tar.gz"; url = "http://github.com/linuxmint/cinnamon-translations/archive/${version}.tar.gz";
sha256 = "07w3v118xrfp8r4dkbdiyd1vr9ah7f3bm2zw9wag9s8l8x0zfxgc"; sha256 = "07w3v118xrfp8r4dkbdiyd1vr9ah7f3bm2zw9wag9s8l8x0zfxgc";
}; };
installPhase = installPhase =
'' ''
mkdir -pv $out/usr/share/cinnamon/locale mkdir -pv $out/share/cinnamon/locale
cp -av mo-export/* $out/usr/share/cinnamon/locale/ cp -av mo-export/* $out/share/cinnamon/locale/
''; '';
meta = { meta = {
@ -25,5 +25,3 @@ stdenv.mkDerivation rec {
}; };
} }

View File

@ -0,0 +1,40 @@
{ stdenv, fetchurl, pkgconfig, autoreconfHook, python
, dbus_glib, cairo, spidermonkey_185, gobjectIntrospection
}:
let
version="2.0.0";
in
stdenv.mkDerivation rec {
name = "cjs-${version}";
src = fetchurl {
url = "http://github.com/linuxmint/cjs/archive/${version}.tar.gz";
sha256 = "16iazd5h2z27v9jxs4a8imwls5c1c690wk7i05r5ds3c3r4nrsig";
};
buildInputs = [
pkgconfig autoreconfHook python
dbus_glib cairo spidermonkey_185
gobjectIntrospection
];
preBuild = "patchShebangs ./scripts";
meta = {
homepage = "http://cinnamon.linuxmint.com";
description = "JavaScript bindings for Cinnamon" ;
longDescription = ''
This module contains JavaScript bindings based on gobject-introspection.
Because JavaScript is pretty free-form, consistent coding style and unit tests
are critical to give it some structure and keep it readable.
We propose that all GNOME usage of JavaScript conform to the style guide
in doc/Style_Guide.txt to help keep things sane.
'';
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.roelof ];
};
}

View File

@ -0,0 +1,19 @@
--- a/cinnamon-session/csm-session-fill.c
+++ b/cinnamon-session/csm-session-fill.c
@@ -228,15 +228,6 @@
load_standard_apps (CsmManager *manager,
GKeyFile *keyfile)
{
- GError *error;
-
- g_debug ("fill: *** Executing user migration");
- error = NULL;
- if(!g_spawn_command_line_sync ("session-migration", NULL, NULL, NULL, &error)) {
- g_warning ("Error while executing session-migration: %s", error->message);
- g_error_free (error);
- }
-
g_debug ("fill: *** Adding required components");
handle_required_components (keyfile, !csm_manager_get_failsafe (manager),
append_required_components_helper, manager);

View File

@ -0,0 +1,26 @@
diff -u -r cinnamon-session-3.4.2/cinnamon-session/csm-session-fill.c cinnamon-session-3.4.2-timeout/cinnamon-session/csm-session-fill.c
--- cinnamon-session-3.4.2/cinnamon-session/csm-session-fill.c 2012-02-02 15:33:01.000000000 +0100
+++ cinnamon-session-3.4.2-timeout/cinnamon-session/csm-session-fill.c 2012-06-10 02:39:46.184348462 +0200
@@ -36,7 +36,7 @@
#define CSM_KEYFILE_DEFAULT_PROVIDER_PREFIX "DefaultProvider"
/* See https://bugzilla.gnome.org/show_bug.cgi?id=641992 for discussion */
-#define CSM_RUNNABLE_HELPER_TIMEOUT 3000 /* ms */
+#define CSM_RUNNABLE_HELPER_TIMEOUT 10000 /* ms */
typedef void (*GsmFillHandleProvider) (const char *provides,
const char *default_provider,
diff -u -r cinnamon-session-3.4.2/tools/cinnamon-session-check-accelerated.c
cinnamon-session-3.4.2-timeout/tools/cinnamon-session-check-accelerated.c
--- cinnamon-session-3.4.2/tools/cinnamon-session-check-accelerated.c 2011-03-22 21:31:43.000000000 +0100
+++ cinnamon-session-3.4.2-timeout/tools/cinnamon-session-check-accelerated.c 2012-06-10 02:42:08.013218006 +0200
@@ -30,7 +30,7 @@
#include <X11/Xatom.h>
/* Wait up to this long for a running check to finish */
-#define PROPERTY_CHANGE_TIMEOUT 5000
+#define PROPERTY_CHANGE_TIMEOUT 12000
/* Values used for the _GNOME_SESSION_ACCELERATED root window property */
#define NO_ACCEL 0

View File

@ -1,4 +1,4 @@
{ callPackage, self, stdenv, gettext, overrides ? {} }: { callPackage, self, stdenv, gettext, gvfs, libunique, overrides ? {} }:
{ {
__overrides = overrides; __overrides = overrides;
@ -67,7 +67,7 @@
startup_notification = callPackage ./platform/startup-notification { }; startup_notification = callPackage ./platform/startup-notification { };
# Required for nautilus # Required for nautilus
libunique = callPackage ./platform/libunique { }; inherit (libunique);
gtkglext = callPackage ./platform/gtkglext { }; gtkglext = callPackage ./platform/gtkglext { };
@ -79,7 +79,7 @@
libgweather = callPackage ./desktop/libgweather { }; libgweather = callPackage ./desktop/libgweather { };
gvfs = callPackage ./desktop/gvfs { }; gvfs = gvfs.override { gnome = self; };
libgnomekbd = callPackage ./desktop/libgnomekbd { }; libgnomekbd = callPackage ./desktop/libgnomekbd { };

View File

@ -1,21 +0,0 @@
{ stdenv, fetchurl, pkgconfig, dbus_libs, samba, libarchive, fuse, libgphoto2
, libcdio, libxml2, libtool, glib, intltool, GConf, libgnome_keyring, libsoup
, udev, avahi, libxslt, docbook_xsl }:
stdenv.mkDerivation rec {
name = "gvfs-1.14.2";
src = fetchurl {
url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
};
buildInputs =
[ glib dbus_libs udev samba libarchive fuse libgphoto2 libcdio libxml2 GConf
libgnome_keyring libsoup avahi libtool libxslt docbook_xsl
];
nativeBuildInputs = [ pkgconfig intltool ];
enableParallelBuilding = true;
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl_gnome }: { stdenv, fetchurl, fetchurl_gnome, which }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = src.pkgname; name = src.pkgname;
@ -8,4 +8,11 @@ stdenv.mkDerivation rec {
major = "2"; minor = "34"; patchlevel = "0"; major = "2"; minor = "34"; patchlevel = "0";
sha256 = "1pz13mpp09q5s3bikm8ml92s1g0scihsm4iipqv1ql3mp6d4z73s"; sha256 = "1pz13mpp09q5s3bikm8ml92s1g0scihsm4iipqv1ql3mp6d4z73s";
}; };
propagatedBuildInputs = [ which ]; # autogen.sh which is using gnome_common tends to require which
patches = [(fetchurl {
url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935";
sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl";
})];
} }

View File

@ -1,14 +0,0 @@
{stdenv, fetchurl_gnome, pkgconfig, gtk}:
stdenv.mkDerivation rec {
name = src.pkgname;
src = fetchurl_gnome {
project = "libunique";
major = "1"; minor = "1"; patchlevel = "6";
sha256 = "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gtk ];
}

View File

@ -2,14 +2,14 @@
, intltool, dbus_glib, at_spi2_core, libSM }: , intltool, dbus_glib, at_spi2_core, libSM }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
versionMajor = "2.8"; versionMajor = "2.10";
versionMinor = "1"; versionMinor = "2";
moduleName = "at-spi2-atk"; moduleName = "at-spi2-atk";
name = "${moduleName}-${versionMajor}.${versionMinor}"; name = "${moduleName}-${versionMajor}.${versionMinor}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
sha256 = "01pxfnksixrjj27ivllpla54r6nkwsjj34acb0phmp76zna9nrgb"; sha256 = "1xfh89lydl8d18dhnzwvzcsyyybr5q3ik001qgq520l3qh8shj73";
}; };
buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi

View File

@ -1,16 +1,15 @@
{ stdenv, fetchurl, python, pkgconfig, popt, intltool, dbus_glib { stdenv, fetchurl, python, pkgconfig, popt, intltool, dbus_glib
, libX11, xextproto, libSM, libICE, libXtst, libXi }: , libX11, xextproto, libSM, libICE, libXtst, libXi }:
stdenv.mkDerivation rec { stdenv.mkDerivation (rec {
versionMajor = "2.10";
versionMajor = "2.8"; versionMinor = "2";
versionMinor = "0";
moduleName = "at-spi2-core"; moduleName = "at-spi2-core";
name = "${moduleName}-${versionMajor}.${versionMinor}"; name = "${moduleName}-${versionMajor}.${versionMinor}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
sha256 = "0n64h6j10sn90ds9y70d9wlvvsbwnrym9fm0cyjxb0zmqw7s6q8q"; sha256 = "1qfxlbmbaihgmqgkxnywnji9wkbvn8pvbv20x5glv3jc9zw5innk";
}; };
buildInputs = [ buildInputs = [
@ -21,3 +20,8 @@ stdenv.mkDerivation rec {
# ToDo: on non-NixOS we create a symlink from there? # ToDo: on non-NixOS we create a symlink from there?
configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/"; configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/";
} }
// stdenv.lib.optionalAttrs stdenv.isDarwin {
NIX_LDFLAGS = "-lintl";
}
)

View File

@ -1,21 +0,0 @@
{ stdenv, fetchurl, pkgconfig, dbus_libs, samba, libarchive, fuse, libgphoto2
, libcdio, libxml2, libtool, glib, intltool, gconf, libgnome_keyring, libsoup
, udev, avahi, libxslt, docbook_xsl }:
stdenv.mkDerivation rec {
name = "gvfs-1.14.2";
src = fetchurl {
url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
};
buildInputs =
[ glib dbus_libs udev samba libarchive fuse libgphoto2 libcdio libxml2 gconf
libgnome_keyring libsoup avahi libtool libxslt docbook_xsl
];
nativeBuildInputs = [ pkgconfig intltool ];
enableParallelBuilding = true;
}

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, libxml2, glib }: { stdenv, fetchurl, pkgconfig, libxml2, glib }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libcroco-0.6.6"; # 3.6.2 release name = "libcroco-0.6.8";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz"; url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
sha256 = "1nbb12420v1zacn6jwa1x4ixikkcqw66sg4j5dgs45nhygiarv3j"; sha256 = "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa";
}; };
configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic"; configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";

View File

@ -33,7 +33,7 @@ rec {
gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { }); gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });
gvfs = callPackage ./core/gvfs { }; gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; };
libcroco = callPackage ./core/libcroco {}; libcroco = callPackage ./core/libcroco {};

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-notifyd"; p_name = "xfce4-notifyd";
ver_maj = "0.2"; ver_maj = "0.2";
ver_min = "3"; ver_min = "4";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0fx6z89rxs6ypb8bb6l1pg8fdbxn995fgs413sbhnaxjkm6gch6x"; sha256 = "1l6fpfk0fkizdx7vwbyjdyzzj5i2ng8pf7r8j49nv0cnjhpxczlc";
}; };
name = "${p_name}-${ver_maj}.${ver_min}"; name = "${p_name}-${ver_maj}.${ver_min}";

View File

@ -1,76 +0,0 @@
{ pkgs, newScope, xfce_self }: rec {
callPackage = newScope (deps // xfce_self);
deps = rec { # xfce-global dependency overrides should be here
inherit (pkgs.gnome) libglade libwnck vte gtksourceview;
inherit (pkgs.perlPackages) URI;
# The useful bits from gnome-disk-utility.
libgdu = callPackage ./support/libgdu.nix { };
# Gvfs is required by Thunar for the trash feature and for volume
# mounting. Should use the one from Gnome, but I don't want to mess
# with the Gnome packages (or pull in a zillion Gnome dependencies).
gvfs = callPackage ./support/gvfs.nix { };
# intelligent fetcher for Xfce
fetchXfce = rec {
generic = prepend : name : hash :
let lib = pkgs.lib;
p = builtins.parseDrvName name;
versions = lib.splitString "." p.version;
ver_maj = lib.concatStrings (lib.intersperse "." (lib.take 2 versions));
name_low = lib.toLower p.name;
in pkgs.fetchurl {
url = "mirror://xfce/src/${prepend}/${name_low}/${ver_maj}/${name}.tar.bz2";
sha256 = hash;
};
core = generic "xfce";
app = generic "apps";
art = generic "art";
};
};
xfce_common = rec {
inherit (deps) gvfs; # used by NixOS
#### CORE
garcon = callPackage ./core/garcon.nix { v= "0.2.0"; h= "0v7pkvxcayi86z4f173z5l7w270f3g369sa88z59w0y0p7ns7ph2"; };
# not used anymore TODO: really? Update to 2.99.2?
gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
# ToDo: segfaults after some work
tumbler = callPackage ./core/tumbler.nix { v= "0.1.27"; h= "0s9qj99b81asmlqa823nzykq8g6p9azcp2niak67y9bp52wv6q2c"; };
xfce4_power_manager = callPackage ./core/xfce4-power-manager.nix { v= "1.0.10"; h= "1w120k1sl4s459ijaxkqkba6g1p2sqrf9paljv05wj0wz12bpr40"; };
#### APPLICATIONS
#TODO: correct links; more stuff
xfce4notifyd = callPackage ./applications/xfce4-notifyd.nix { v= "0.2.2"; h= "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn"; };
gigolo = callPackage ./applications/gigolo.nix { v= "0.4.1"; h= "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2"; };
xfce4taskmanager = callPackage ./applications/xfce4-taskmanager.nix { v= "1.0.0"; h= "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0"; };
mousepad = callPackage ./applications/mousepad.nix { v= "0.3.0"; h= "0v84zwhjv2xynvisn5vmp7dbxfj4l4258m82ks7hn3adk437bwhh"; };
thunar_volman = callPackage ./core/thunar-volman.nix { };
thunar_archive_plugin = callPackage ./core/thunar-archive-plugin.nix { };
#### ART
xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { v= "4.4.3"; h= "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; };
#### PANEL PLUGINS
xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { };
xfce4_cpufreq_plugin = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix { };
xfce4_xkb_plugin = callPackage ./panel-plugins/xfce4-xkb-plugin.nix { };
xfce4_datetime_plugin = callPackage ./panel-plugins/xfce4-datetime-plugin.nix { };
};
}

View File

@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
"-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_BUILD_TYPE=Release"
"-DLLVM_ENABLE_FFI=ON" "-DLLVM_ENABLE_FFI=ON"
"-DLLVM_BINUTILS_INCDIR=${binutils_gold}/include" "-DLLVM_BINUTILS_INCDIR=${binutils_gold}/include"
] ++ lib.optional (!isDarwin) [ "-DBUILD_SHARED_LIBS=ON" ]; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=R600" # for mesa
] ++ lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
sed -e 's@</fontconfig>@@' -i chroot-fontconfig/fonts.conf sed -e 's@</fontconfig>@@' -i chroot-fontconfig/fonts.conf
echo "<dir>${liberation_ttf}</dir>" >> chroot-fontconfig/fonts.conf echo "<dir>${liberation_ttf}</dir>" >> chroot-fontconfig/fonts.conf
echo "</fontconfig>" >> chroot-fontconfig/fonts.conf echo "</fontconfig>" >> chroot-fontconfig/fonts.conf
export FONTCONFIG_FILE=$(pwd)/chroot-fontconfig/fonts.conf export FONTCONFIG_FILE=$(pwd)/chroot-fontconfig/fonts.conf
cd src cd src
@ -37,6 +37,8 @@ stdenv.mkDerivation rec {
configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" ]; configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" ];
NIX_LDFLAGS = "-lgcc_s";
postInstall = '' postInstall = ''
for p in $(ls $out/bin/) ; do for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p --prefix LD_LIBRARY_PATH ":" "${ffiSharedLibs}" ; wrapProgram $out/bin/$p --prefix LD_LIBRARY_PATH ":" "${ffiSharedLibs}" ;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, autoconf213, nspr, perl, python, readline, zip }: { stdenv, fetchurl, pkgconfig, nspr, perl, python, zip }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "185-1.0.0"; version = "185-1.0.0";
@ -11,21 +11,30 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ nspr ]; propagatedBuildInputs = [ nspr ];
buildInputs = [ pkgconfig autoconf213 perl python readline zip ]; buildInputs = [ pkgconfig perl python zip ];
postUnpack = "sourceRoot=\${sourceRoot}/js/src"; postUnpack = "sourceRoot=\${sourceRoot}/js/src";
preConfigure = '' preConfigure = ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr" export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
export LIBXUL_DIST=$out export LIBXUL_DIST=$out
autoconf
''; '';
meta = with stdenv.lib; { configureFlags = [ "--enable-threadsafe" "--with-system-nspr" ];
description = "Mozilla's JavaScript engine written in C/C++";
homepage = https://developer.mozilla.org/en/SpiderMonkey;
# TODO: MPL/GPL/LGPL tri-license.
maintainers = [ maintainers.goibhniu ];
};
# hack around a make problem, see https://github.com/NixOS/nixpkgs/issues/1279#issuecomment-29547393
preBuild = "touch -- {.,shell,jsapi-tests}/{-lpthread,-ldl}";
enableParallelBuilding = true;
doCheck = true;
preCheck = "rm jit-test/tests/sunspider/check-date-format-tofte.js"; # https://bugzil.la/600522
meta = with stdenv.lib; {
description = "Mozilla's JavaScript engine written in C/C++";
homepage = https://developer.mozilla.org/en/SpiderMonkey;
# TODO: MPL/GPL/LGPL tri-license.
maintainers = [ maintainers.goibhniu ];
};
} }

View File

@ -1,11 +1,15 @@
{ stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection }: { stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection }:
let
ver_maj = "2.10";
ver_min = "0";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "atk-2.8.0"; name = "atk-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/atk/2.8/${name}.tar.xz"; url = "mirror://gnome/sources/atk/${ver_maj}/${name}.tar.xz";
sha256 = "1x3dd3hg9l1j9dq70xwph13vxdp6a9wbfcnryryf1wr6c8bij9dj"; sha256 = "1c2hbg66wfvibsz2ia0ri48yr62751fn950i97c53j3b0fjifsb3";
}; };
buildInputs = libintlOrEmpty; buildInputs = libintlOrEmpty;
@ -14,6 +18,8 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ glib gobjectIntrospection /*ToDo: why propagate*/ ]; propagatedBuildInputs = [ glib gobjectIntrospection /*ToDo: why propagate*/ ];
#doCheck = true; # no checks in there (2.10.0)
postInstall = "rm -rf $out/share/gtk-doc"; postInstall = "rm -rf $out/share/gtk-doc";
meta = { meta = {

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, atk, glibmm, pkgconfig }: { stdenv, fetchurl, atk, glibmm, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "atkmm-2.22.6"; name = "atkmm-2.22.7";
src = fetchurl { src = fetchurl {
url = mirror://gnome/sources/atkmm/2.22/atkmm-2.22.6.tar.xz; url = "mirror://gnome/sources/atkmm/2.22/${name}.tar.xz";
sha256 = "1dmf72i7jv2a2gavjiah2722bf5qk3hb97hn5dasxqxr0r8jjx0a"; sha256 = "06zrf2ymml2dzp53sss0d4ch4dk9v09jm8rglnrmwk4v81mq9gxz";
}; };
propagatedBuildInputs = [ atk glibmm ]; propagatedBuildInputs = [ atk glibmm ];

View File

@ -1,86 +0,0 @@
{ postscriptSupport ? true
, pdfSupport ? true
, pngSupport ? true
, xcbSupport ? false
, gobjectSupport ? true, glib
, stdenv, fetchurl, pkgconfig, x11, fontconfig, freetype, xlibs
, zlib, libpng, pixman, libxcb ? null, xcbutil ? null
, libiconvOrEmpty, libintlOrEmpty
}:
assert postscriptSupport -> zlib != null;
assert pngSupport -> libpng != null;
assert xcbSupport -> libxcb != null && xcbutil != null;
stdenv.mkDerivation rec {
name = "cairo-1.12.2";
src = fetchurl {
url = "http://cairographics.org/releases/${name}.tar.xz";
sha1 = "bc2ee50690575f16dab33af42a2e6cdc6451e3f9";
};
buildInputs =
[ pkgconfig x11 fontconfig xlibs.libXrender ]
++ stdenv.lib.optionals xcbSupport [ libxcb xcbutil ]
++ libintlOrEmpty
++ libiconvOrEmpty;
propagatedBuildInputs =
[ freetype pixman ] ++
stdenv.lib.optional gobjectSupport glib ++
stdenv.lib.optional postscriptSupport zlib ++
stdenv.lib.optional pngSupport libpng;
NIX_CFLAGS_COMPILE = ( if stdenv.isDarwin
then "-I${pixman}/include/pixman-1"
else "" );
configureFlags =
[ "--enable-tee" ]
++ stdenv.lib.optional xcbSupport "--enable-xcb"
++ stdenv.lib.optional pdfSupport "--enable-pdf";
preConfigure = ''
# Work around broken `Requires.private' that prevents Freetype
# `-I' flags to be propagated.
sed -i "src/cairo.pc.in" \
-es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g'
''
# On FreeBSD, `-ldl' doesn't exist.
+ (stdenv.lib.optionalString stdenv.isFreeBSD
'' for i in "util/"*"/Makefile.in" boilerplate/Makefile.in
do
cat "$i" | sed -es/-ldl//g > t
mv t "$i"
done
'');
enableParallelBuilding = true;
# The default `--disable-gtk-doc' is ignored.
postInstall = "rm -rf $out/share/gtk-doc";
meta = {
description = "A 2D graphics library with support for multiple output devices";
longDescription = ''
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X
Window System, Quartz, Win32, image buffers, PostScript, PDF,
and SVG file output. Experimental backends include OpenGL
(through glitz), XCB, BeOS, OS/2, and DirectFB.
Cairo is designed to produce consistent output on all output
media while taking advantage of display hardware acceleration
when available (e.g., through the X Render Extension).
'';
homepage = http://cairographics.org/;
licenses = [ "LGPLv2+" "MPLv1" ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -3,12 +3,16 @@
gobjectIntrospection gobjectIntrospection
}: }:
stdenv.mkDerivation { let
name = "clutter-1.8.2"; ver_maj = "1.16";
ver_min = "2";
in
stdenv.mkDerivation rec {
name = "clutter-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = mirror://gnome/sources/clutter/1.8/clutter-1.8.2.tar.xz; url = "mirror://gnome/sources/clutter/${ver_maj}/${name}.tar.xz";
sha256 = "0bzsvnharawfg525lpavrp55mq4aih5nb01dwwqwnccg8hk9z2fw"; sha256 = "0hnz6fnrkc7ixrm2x83sxyha32p9896d7ilzhvxwfgzlh26fidqc";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
@ -19,6 +23,8 @@ stdenv.mkDerivation {
configureFlags = [ "--enable-introspection" ]; # needed by muffin AFAIK configureFlags = [ "--enable-introspection" ]; # needed by muffin AFAIK
#doCheck = true; # no tests possible without a display
meta = { meta = {
description = "Clutter, a library for creating fast, dynamic graphical user interfaces"; description = "Clutter, a library for creating fast, dynamic graphical user interfaces";

View File

@ -1,22 +1,33 @@
{ stdenv, fetchurl, pkgconfig, mesa, glib, gdk_pixbuf, libXfixes, libXcomposite { stdenv, fetchurl, pkgconfig, mesa_noglu, glib, gdk_pixbuf, xorg, libintlOrEmpty
, libXdamage, libintlOrEmpty , pangoSupport ? true, pango, cairo, gobjectIntrospection, wayland }:
, pangoSupport ? true, pango, cairo, gobjectIntrospection }:
let
ver_maj = "1.16";
ver_min = "0";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cogl-1.8.2"; name = "cogl-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = mirror://gnome/sources/cogl/1.8/cogl-1.8.2.tar.xz; url = "mirror://gnome/sources/cogl/${ver_maj}/${name}.tar.xz";
sha256 = "1ix87hz3qxqysqwx58wbc46lzchlmfs08fjzbf3l6mmsqj8gs9pc"; sha256 = "153014xygwyz9wmvgfwjxncqgc0qqvcy6b3jx1zdl3q5d9iw9hkm";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
configureFlags = " --enable-introspection " ; configureFlags = [
"--enable-introspection"
"--enable-gles1"
"--enable-gles2"
"--enable-kms-egl-platform"
"--enable-wayland-egl-platform"
"--enable-wayland-egl-server"
];
propagatedBuildInputs = propagatedBuildInputs = with xorg; [
[ mesa glib gdk_pixbuf libXfixes libXcomposite libXdamage glib gdk_pixbuf gobjectIntrospection
gobjectIntrospection ] mesa_noglu libXrandr libXfixes libXcomposite libXdamage wayland
]
++ libintlOrEmpty; ++ libintlOrEmpty;
buildInputs = stdenv.lib.optionals pangoSupport [ pango cairo ]; buildInputs = stdenv.lib.optionals pangoSupport [ pango cairo ];
@ -27,6 +38,8 @@ gobjectIntrospection ]
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
#doCheck = true; # all tests fail (no idea why)
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A small open source library for using 3D graphics hardware for rendering"; description = "A small open source library for using 3D graphics hardware for rendering";
maintainers = with maintainers; [ lovek323 ]; maintainers = with maintainers; [ lovek323 ];

View File

@ -3,8 +3,8 @@
, libX11, libICE, libSM, useX11 ? (stdenv.isLinux || stdenv.isDarwin) }: , libX11, libICE, libSM, useX11 ? (stdenv.isLinux || stdenv.isDarwin) }:
let let
version = "1.6.14"; # 1.7.* isn't recommended, even for gnome 3.8 version = "1.6.16"; # 1.7.* isn't recommended, even for gnome 3.8
sha256 = "0v7mcxwfmpjf7vndnvf2kf02al61clrxs36bqii20s0lawfh2xjn"; sha256 = "0wrmh5azszb54zpy7d0zjsy456khcv8yc19ivqrygkdg7a3l4gs6";
inherit (stdenv) lib; inherit (stdenv) lib;

View File

@ -9,7 +9,7 @@ composableDerivation.composableDerivation {} (fixed: {
md5 = "f5592cff69b239166c9b64ff81943b1a"; md5 = "f5592cff69b239166c9b64ff81943b1a";
}; };
buildInputs = [ unzip libjpeg ]; buildInputs = [ unzip libjpeg libtiff ];
# don't use optimization for gcc >= 4.3. That's said to be causeing segfaults # don't use optimization for gcc >= 4.3. That's said to be causeing segfaults
preConfigure = "export CFLAGS=-O0; export CXXFLAGS=-O0"; preConfigure = "export CFLAGS=-O0; export CXXFLAGS=-O0";

View File

@ -1,12 +1,16 @@
{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, xz { stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11
, jasper, libintlOrEmpty, gobjectIntrospection }: , jasper, libintlOrEmpty, gobjectIntrospection }:
let
ver_maj = "2.30";
ver_min = "2";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gdk-pixbuf-2.28.2"; name = "gdk-pixbuf-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/gdk-pixbuf/2.28/${name}.tar.xz"; url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz";
sha256 = "05s6ksvy1yan6h6zny9n3bmvygcnzma6ljl6i0z9cci2xg116c8q"; sha256 = "1gzczsv41h28is4rrxjfyj1qx8ifp23fq2ckh0k099m9fnhbzfna";
}; };
# !!! We might want to factor out the gdk-pixbuf-xlib subpackage. # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
@ -20,6 +24,8 @@ stdenv.mkDerivation rec {
+ stdenv.lib.optionalString (gobjectIntrospection != null) " --enable-introspection=yes" + stdenv.lib.optionalString (gobjectIntrospection != null) " --enable-introspection=yes"
; ;
doCheck = false; # broken animation tester
postInstall = "rm -rf $out/share/gtk-doc"; postInstall = "rm -rf $out/share/gtk-doc";
meta = { meta = {

View File

@ -10,6 +10,13 @@
# Possible solution: disable compilation of this example somehow # Possible solution: disable compilation of this example somehow
# Reminder: add 'sed -e 's@python2\.[0-9]@python@' -i # Reminder: add 'sed -e 's@python2\.[0-9]@python@' -i
# $out/bin/gtester-report' to postInstall if this is solved # $out/bin/gtester-report' to postInstall if this is solved
/*
* Use --enable-installed-tests for GNOME-related packages,
and use them as a separately installed tests runned by Hydra
(they should test an already installed package)
https://wiki.gnome.org/GnomeGoals/InstalledTests
* Support org.freedesktop.Application, including D-Bus activation from desktop files
*/
let let
# Some packages don't get "Cflags" from pkgconfig correctly # Some packages don't get "Cflags" from pkgconfig correctly
@ -24,15 +31,18 @@ let
done done
ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true
''; '';
ver_maj = "2.38";
ver_min = "2";
in in
with { inherit (stdenv.lib) optionalString; }; with { inherit (stdenv.lib) optionalString; };
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "glib-2.36.4"; name = "glib-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/glib/2.36/${name}.tar.xz"; url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz";
sha256 = "0zmdbkg2yjyxdl72w34lxvrssbzqzdficskkfn22s0994dad4m7n"; sha256 = "0d2px8m77603s5pm3md4bcm5d0ksbcsb6ik1w52hjslnq1a9hsh5";
}; };
# configure script looks for d-bus but it is (probably) only needed for tests # configure script looks for d-bus but it is (probably) only needed for tests

View File

@ -1,15 +1,21 @@
{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, libsigcxx }: { stdenv, fetchurl, pkgconfig, glib, libsigcxx }:
let
ver_maj = "2.38";
ver_min = "1";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "glibmm-2.34.1"; name = "glibmm-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/glibmm/2.34/${name}.tar.xz"; url = "mirror://gnome/sources/glibmm/${ver_maj}/${name}.tar.xz";
sha256 = "1i4jsvahva2q0mig7kjnpsw0r3fnpybm8b6hzymfm2hpgqnaa9dl"; sha256 = "18n4czi6lh4ncj54apxms18xn9k8pmrp2ba9sxn0sk9w3pp2bja9";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib gdk_pixbuf libsigcxx ]; propagatedBuildInputs = [ glib libsigcxx ];
#doCheck = true; # some tests need network
meta = { meta = {
description = "C++ interface to the GLib library"; description = "C++ interface to the GLib library";

View File

@ -4,12 +4,16 @@
# it may be worth thinking about using multiple derivation outputs # it may be worth thinking about using multiple derivation outputs
# In that case its about 6MB which could be separated # In that case its about 6MB which could be separated
let
ver_maj = "1.38";
ver_min = "0";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gobject-introspection-1.36.0"; name = "gobject-introspection-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/gobject-introspection/1.36/${name}.tar.xz"; url = "mirror://gnome/sources/gobject-introspection/${ver_maj}/${name}.tar.xz";
sha256 = "10v3idh489vra7pjn1g8f844nnl6719zgkgq3dv38xcf8afnvrz3"; sha256 = "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m";
}; };
buildInputs = [ flex bison glib pkgconfig python ] buildInputs = [ flex bison glib pkgconfig python ]

View File

@ -1,5 +1,6 @@
{ stdenv, fetchurl, pkgconfig, gettext { stdenv, fetchurl, pkgconfig, gettext, perl
, expat, glib, cairo, pango, gdk_pixbuf, atk, at_spi2_atk, xlibs, x11, gobjectIntrospection , expat, glib, cairo, pango, gdk_pixbuf, atk, at_spi2_atk, gobjectIntrospection
, xlibs, x11, wayland, libxkbcommon
, xineramaSupport ? stdenv.isLinux , xineramaSupport ? stdenv.isLinux
, cupsSupport ? stdenv.isLinux, cups ? null , cupsSupport ? stdenv.isLinux, cups ? null
}: }:
@ -7,17 +8,23 @@
assert xineramaSupport -> xlibs.libXinerama != null; assert xineramaSupport -> xlibs.libXinerama != null;
assert cupsSupport -> cups != null; assert cupsSupport -> cups != null;
let
ver_maj = "3.10";
ver_min = "5"; # .6 needs currently unreleased wayland for introspection (wl_proxy_marshal_constructor)
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gtk+-3.8.4"; name = "gtk+-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/gtk+/3.8/${name}.tar.xz"; url = "mirror://gnome/sources/gtk+/${ver_maj}/${name}.tar.xz";
sha256 = "1qlj0qdhkp8j5xiris4l4xnx47g4pbk4qnj3nf8rwa82fwb610xh"; sha256 = "1iyc566r61d3jfdiq5knwbssq5bsqsn8hqzdm30vmw6dx3cgd49i";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection ]; nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ];
buildInputs = [ wayland libxkbcommon ];
propagatedBuildInputs = with xlibs; with stdenv.lib; propagatedBuildInputs = with xlibs; with stdenv.lib;
[ expat glib cairo pango gdk_pixbuf atk at_spi2_atk ] [ expat glib cairo pango gdk_pixbuf atk at_spi2_atk ]
++ optionals stdenv.isLinux [ libXrandr libXrender libXcomposite libXi libXcursor ] ++ optionals stdenv.isLinux [ libXrandr libXrender libXcomposite libXi libXcursor ]

View File

@ -5,14 +5,16 @@ stdenv.mkDerivation rec {
src = fetchurl_gnome { src = fetchurl_gnome {
project = "gtkmm"; project = "gtkmm";
major = "2"; minor = "24"; patchlevel = "2"; extension = "xz"; major = "2"; minor = "24"; patchlevel = "4"; extension = "xz";
sha256 = "0gcm91sc1a05c56kzh74l370ggj0zz8nmmjvjaaxgmhdq8lpl369"; sha256 = "1vpmjqv0aqb1ds0xi6nigxnhlr0c74090xzi15b92amlzkrjyfj4";
}; };
nativeBuildInputs = [pkgconfig]; nativeBuildInputs = [pkgconfig];
propagatedBuildInputs = [ glibmm gtk atkmm cairomm pangomm ]; propagatedBuildInputs = [ glibmm gtk atkmm cairomm pangomm ];
doCheck = true;
meta = { meta = {
description = "C++ interface to the GTK+ graphical user interface library"; description = "C++ interface to the GTK+ graphical user interface library";
@ -30,7 +32,7 @@ stdenv.mkDerivation rec {
license = "LGPLv2+"; license = "LGPLv2+";
maintainers = [stdenv.lib.maintainers.raskin]; maintainers = with stdenv.lib.maintainers; [ raskin vcunat ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
}; };
} }

View File

@ -1,17 +1,23 @@
{ stdenv, fetchurl, pkgconfig, gtk3, glibmm, cairomm, pangomm, atkmm }: { stdenv, fetchurl, pkgconfig, gtk3, glibmm, cairomm, pangomm, atkmm }:
let
ver_maj = "3.10";
ver_min = "1";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gtkmm-3.7.12"; # gnome 3.8 release; stable 3.6 has problems with our new glibc name = "gtkmm-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/gtkmm/3.7/${name}.tar.xz"; url = "mirror://gnome/sources/gtkmm/${ver_maj}/${name}.tar.xz";
sha256 = "05nrilm34gid7kqlq09hcdd7942prn2vbr1qgqvdhgy4x8pvz9p9"; sha256 = "0f1587pc6x8hn268vqj5zr4dvyisj5zd9zpsfxyfm1pkbjmcv9bg";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ]; propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ];
doCheck = true;
meta = { meta = {
description = "C++ interface to the GTK+ graphical user interface library"; description = "C++ interface to the GTK+ graphical user interface library";
@ -29,7 +35,7 @@ stdenv.mkDerivation rec {
license = "LGPLv2+"; license = "LGPLv2+";
maintainers = with stdenv.lib.maintainers; [ raskin urkud ]; maintainers = with stdenv.lib.maintainers; [ raskin urkud vcunat ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
}; };
} }

View File

@ -4,12 +4,16 @@
, libxml2, libxslt, docbook_xsl , libxml2, libxslt, docbook_xsl
, lightWeight ? true, gnome, samba, makeWrapper }: , lightWeight ? true, gnome, samba, makeWrapper }:
let
ver_maj = "1.18";
version = "${ver_maj}.3";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gvfs-1.14.2"; name = "gvfs-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz"; url = "mirror://gnome/sources/gvfs/${ver_maj}/${name}.tar.xz";
sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3"; sha256 = "0b27vidnrwh6yb2ga9a1k9qlrz6lrzsaz2hcxqbc1igivhb9g0hx";
}; };
nativeBuildInputs = [ pkgconfig intltool libtool ]; nativeBuildInputs = [ pkgconfig intltool libtool ];

View File

@ -1,19 +1,30 @@
{ stdenv, fetchurl, pkgconfig, glib, freetype, { stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintlOrEmpty
icu ? null, graphite2 ? null, libintlOrEmpty }: , icu, graphite2
, withIcu ? false # recommended by upstream as default, but most don't needed and it's big
, withGraphite2 ? true # it is small and major distros do include it
}:
# TODO: split non-icu and icu lib into different outputs?
# (icu is a ~30 MB dependency, the rest is very small in comparison)
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "harfbuzz-0.9.12"; name = "harfbuzz-0.9.24";
src = fetchurl { src = fetchurl {
url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2"; url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
sha256 = "19cx5y2m20rp7z5j7mwqfb4ph2g8lrri69zim44x362y4w5gfly6"; sha256 = "08i46xx92hvz2br2d9hdxjgi0g5jglwf5bdfsandxb0qlgc5vwpd";
}; };
buildInputs = [ pkgconfig glib freetype ] configureFlags = [
( "--with-graphite2=" + (if withGraphite2 then "yes" else "no") ) # not auto-detected by default
( "--with-icu=" + (if withIcu then "yes" else "no") )
];
buildInputs = [ pkgconfig glib freetype cairo ] # recommended by upstream
++ libintlOrEmpty; ++ libintlOrEmpty;
propagatedBuildInputs = [] propagatedBuildInputs = []
++ (stdenv.lib.optionals (icu != null) [icu]) ++ stdenv.lib.optional withGraphite2 graphite2
++ (stdenv.lib.optionals (graphite2 != null) [graphite2]) ++ stdenv.lib.optional withIcu icu
; ;
meta = { meta = {

View File

@ -3,15 +3,17 @@
let let
pname = "icu4c"; pname = "icu4c";
version = "51.1"; ver_maj = "52";
ver_min = "1";
version = "${ver_maj}.${ver_min}";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = pname + "-" + version; name = pname + "-" + version;
src = fetchurl { src = fetchurl {
url = http://download.icu-project.org/files/icu4c/51.1/icu4c-51_1-src.tgz; url = "http://download.icu-project.org/files/icu4c/${version}/icu4c-${ver_maj}_${ver_min}-src.tgz";
sha256 = "0sv6hgkm92pm27zgjxgk284lcxxbsl0syi40ckw2b7yj7d8sxrc7"; sha256 = "14l0kl17nirc34frcybzg0snknaks23abhdxkmsqg3k9sil5wk9g";
}; };
postUnpack = '' postUnpack = ''

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, udev }: { stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, udev }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libdrm-2.4.46"; name = "libdrm-2.4.50";
src = fetchurl { src = fetchurl {
url = "http://dri.freedesktop.org/libdrm/${name}.tar.bz2"; url = "http://dri.freedesktop.org/libdrm/${name}.tar.bz2";
sha256 = "1wah4qmrrcv0gnx65lhrlxb6gprxch92wy8lhxv6102fml6k5krk"; sha256 = "0idh6cwqr2rilig7vygb3gxvivchp0q1iq4md79jq340v96d48rq";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0d0jwdmj3h89bxdxlwrys2mw18mqcj4rzgb5l2ndpah8zj600mr6"; sha256 = "0d0jwdmj3h89bxdxlwrys2mw18mqcj4rzgb5l2ndpah8zj600mr6";
}; };
patches = [ ./libjpeg-turbo-1.3.0-CVE-2013-6629-and-6630.patch ];
buildInputs = [ nasm ]; buildInputs = [ nasm ];
doCheck = true; doCheck = true;

View File

@ -0,0 +1,40 @@
Thanks to the sources below; this patch discovered via Gentoo.
http://bugzilla.redhat.com/show_bug.cgi?id=1031734
http://bugzilla.redhat.com/show_bug.cgi?id=1031749
http://sourceforge.net/p/libjpeg-turbo/code/1090/
--- libjpeg-turbo-1.3.0/jdmarker.c
+++ libjpeg-turbo-1.3.0/jdmarker.c
@@ -304,7 +304,7 @@
/* Process a SOS marker */
{
INT32 length;
- int i, ci, n, c, cc;
+ int i, ci, n, c, cc, pi;
jpeg_component_info * compptr;
INPUT_VARS(cinfo);
@@ -348,6 +348,13 @@
TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, cc,
compptr->dc_tbl_no, compptr->ac_tbl_no);
+
+ /* This CSi (cc) should differ from the previous CSi */
+ for (pi = 0; pi < i; pi++) {
+ if (cinfo->cur_comp_info[pi] == compptr) {
+ ERREXIT1(cinfo, JERR_BAD_COMPONENT_ID, cc);
+ }
+ }
}
/* Collect the additional scan parameters Ss, Se, Ah/Al. */
@@ -465,6 +472,8 @@
for (i = 0; i < count; i++)
INPUT_BYTE(cinfo, huffval[i], return FALSE);
+ MEMZERO(&huffval[count], (256 - count) * SIZEOF(UINT8));
+
length -= count;
if (index & 0x10) { /* AC table definition */

View File

@ -1,18 +1,14 @@
{ stdenv, fetchurl, zlib, libpng, libjpeg, lcms, automake110x, autoconf, libtool }: { stdenv, fetchurl, zlib, libpng, libjpeg, lcms2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libmng-1.0.10"; name = "libmng-2.0.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/libmng/${name}.tar.bz2"; url = "mirror://sourceforge/libmng/${name}.tar.xz";
sha256 = "06415s40gz833s1v1q7c04c0m49p4sc87ich0vpdid2ldj0pf53v"; sha256 = "0l5wa3b9rr4zl49zbbjpapqyccqjwzkzw1ph3p4pk9p5h73h9317";
}; };
preConfigure = "unmaintained/autogen.sh"; propagatedBuildInputs = [ zlib libpng libjpeg lcms2 ];
nativeBuildInputs = [ automake110x autoconf libtool ];
propagatedBuildInputs = [ zlib libpng libjpeg lcms ];
meta = { meta = {
description = "Reference library for reading, displaying, writing and examining Multiple-Image Network Graphics"; description = "Reference library for reading, displaying, writing and examining Multiple-Image Network Graphics";

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
ver_maj = "0.7"; ver_maj = "0.7";
ver_min = "5"; ver_min = "6";
name = "libnotify-${ver_maj}.${ver_min}"; name = "libnotify-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/libnotify/${ver_maj}/${name}.tar.xz"; url = "mirror://gnome/sources/libnotify/${ver_maj}/${name}.tar.xz";
sha256 = "0lmnzy16vdjs9vlgdm0b7wfyi1nh526hv2dpb7vxb92bhx3wny23"; sha256 = "0dyq8zgjnnzcah31axnx6afb21kl7bks1gvrg4hjh3nk02j1rxhf";
}; };
src_m4 = fetchurl { src_m4 = fetchurl {
url = "mirror://gentoo/distfiles/introspection-20110205.m4.tar.bz2"; url = "mirror://gentoo/distfiles/introspection-20110205.m4.tar.bz2";

View File

@ -3,11 +3,11 @@
assert zlib != null; assert zlib != null;
let let
version = "1.6.4"; version = "1.6.8";
sha256 = "15pqany43q2hzaxqn84p9dba071xmvqi8h1bhnjxnxdf3g64zayg"; sha256 = "109h2fcjspd792lvh5q4xnkpsv7rjczmrdl15i4ajx0xbs5kvxr4";
patch_src = fetchurl { # not released yet, hopefully OK patch_src = fetchurl {
url = "mirror://sourceforge/libpng-apng/libpng-1.6.3-apng.patch.gz"; url = "mirror://sourceforge/libpng-apng/libpng-${version}-apng.patch.gz";
sha256 = "0fjnb6cgbj2c7ggl0qzcnliml2ylrjxzigp89vw0hxq221k5mlsx"; sha256 = "0wysnv0d8h7pyz7gfagnkwra2k7malqga1cn6wbk2l7a8k2r53qi";
}; };
whenPatched = stdenv.lib.optionalString apngSupport; whenPatched = stdenv.lib.optionalString apngSupport;

View File

@ -6,7 +6,7 @@
# no introspection by default, it's too big # no introspection by default, it's too big
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "librsvg-2.36.4"; name = "librsvg-2.36.4"; # 2.37 needs pango 1.32.6, 2.40 doesn't support gtk2
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/librsvg/2.36/${name}.tar.xz"; url = "mirror://gnome/sources/librsvg/2.36/${name}.tar.xz";

View File

@ -1,15 +1,17 @@
{ stdenv, fetchurl, pkgconfig, gnum4 }: { stdenv, fetchurl, pkgconfig, gnum4 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libsigc++-2.2.10"; name = "libsigc++-2.2.11";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/libsigc++/2.2/${name}.tar.xz"; url = "mirror://gnome/sources/libsigc++/2.2/${name}.tar.xz";
sha256 = "8ceb6f2732f5399ef50d5b70f433d49945a12e0900b8f9f43c135866a2e5bf47"; sha256 = "0ms93q7r8zznsqkfdj1ds9533f0aqfaw3kdkqv154rzmfigh8d4q";
}; };
buildInputs = [ pkgconfig gnum4 ]; buildInputs = [ pkgconfig gnum4 ];
doCheck = true;
meta = { meta = {
homepage = http://libsigc.sourceforge.net/; homepage = http://libsigc.sourceforge.net/;
description = "A typesafe callback system for standard C++"; description = "A typesafe callback system for standard C++";

View File

@ -1,32 +1,35 @@
{ stdenv, fetchurl, pkgconfig, glib, libxml2, sqlite, intltool, python { stdenv, fetchurl, pkgconfig, intltool, python, gobjectIntrospection
, gnomeSupport ? true, libgnome_keyring, glib_networking , glib, libxml2, sqlite, glib_networking
, gnomeSupport ? true, libgnome_keyring
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "libsoup-2.44.2"; name = "libsoup-2.44.2";
meta = {
description = "HTTP client/server library";
license = stdenv.lib.licenses.lgpl2Plus;
};
src = fetchurl { src = fetchurl {
url = mirror://gnome/sources/libsoup/2.44/libsoup-2.44.2.tar.xz; url = mirror://gnome/sources/libsoup/2.44/libsoup-2.44.2.tar.xz;
sha256 = "1wwqsmi1jvidiqwbdnjl66nmk1yja8w9dxf9cz10zh56fjmvbr77"; sha256 = "1wwqsmi1jvidiqwbdnjl66nmk1yja8w9dxf9cz10zh56fjmvbr77";
}; };
preConfigure = '' preConfigure = ''
substituteInPlace libsoup/tld-parser.py \ substituteInPlace libsoup/tld-parser.py \
--replace "!/usr/bin/env python" "!${python}/bin/${python.executable}" --replace "!/usr/bin/env python" "!${python}/bin/${python.executable}"
''; '';
buildInputs = [ pkgconfig intltool python ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig intltool python gobjectIntrospection ];
propagatedBuildInputs = [ glib libxml2 sqlite ] propagatedBuildInputs = [ glib libxml2 sqlite ]
++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring ]; ++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring ];
passthru.propagatedUserEnvPackages = [ glib_networking ]; passthru.propagatedUserEnvPackages = [ glib_networking ];
# glib_networking is a runtime dependency, not a compile-time dependency # glib_networking is a runtime dependency, not a compile-time dependency
configureFlags = "--disable-tls-check"; configureFlags = "--disable-tls-check";
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
meta = {
# inherit (glib.meta) maintainers platforms;
};
} }

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, cmake, zlib, libgcrypt }: { stdenv, fetchurl, cmake, zlib, libgcrypt }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libssh-0.5.3"; name = "libssh-0.5.5";
src = fetchurl { src = fetchurl {
url = "https://red.libssh.org/attachments/download/38/${name}.tar.gz"; url = "https://red.libssh.org/attachments/download/51/${name}.tar.gz";
sha256 = "1w6s217vjq0w3v5i0c5ql6m0ki1yz05g9snah3azxfkl9k4schpd"; sha256 = "17cfdff4hc0ijzrr15biq29fiabafz0bw621zlkbwbc1zh2hzpy0";
}; };
buildInputs = [ zlib libgcrypt ]; buildInputs = [ zlib libgcrypt ];

View File

@ -1,7 +1,13 @@
{ stdenv, fetchurl, zlib, libjpeg }: { stdenv, fetchurl, fetchsvn, pkgconfig, zlib, libjpeg, xz }:
let version = "4.0.3"; in
let
version = "4.0.3";
patchDir = fetchsvn {
url = svn://svn.archlinux.org/packages/libtiff/trunk;
rev = "198247";
sha256 = "0a47l0zkc1zz7wxg64cyjv9z1djdvfyxgmwd03znlsac4zijkcy4";
};
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libtiff-${version}"; name = "libtiff-${version}";
@ -13,10 +19,27 @@ stdenv.mkDerivation rec {
sha256 = "0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa"; sha256 = "0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa";
}; };
propagatedBuildInputs = [ zlib libjpeg ]; patchPhase = ''
for p in ${patchDir}/*-{2013-4244,2012-4447,2012-4564,2013-1960,2013-1961,libjpeg-turbo}.patch; do
patch -p1 < "$p"
done
(
cd tools
for p in ${patchDir}/*-CVE-{2013-4231,2013-4232}.patch; do
patch -p0 < "$p"
done
)
patch -p0 < ${patchDir}/${if stdenv.isDarwin then "tiff-4.0.3" else "*"}-tiff2pdf-colors.patch
''; # ^ sh on darwin seems not to expand globs in redirects, and I don't want to rebuild all again elsewhere
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ zlib libjpeg xz ]; #TODO: opengl support (bogus configure detection)
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = true;
meta = { meta = {
description = "Library and utilities for working with the TIFF image file format"; description = "Library and utilities for working with the TIFF image file format";
homepage = http://www.remotesensing.org/libtiff/; homepage = http://www.remotesensing.org/libtiff/;

View File

@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig glib gtk dbus_glib ]; buildInputs = [ pkgconfig glib gtk dbus_glib ];
# don't make deprecated usages hard errors # don't make deprecated usages hard errors
preBuildPhases = "preBuild";
preBuild = ''substituteInPlace unique/dbus/Makefile --replace -Werror ""''; preBuild = ''substituteInPlace unique/dbus/Makefile --replace -Werror ""'';
doCheck = true; doCheck = true;

View File

@ -1,10 +1,13 @@
{ stdenv, fetchurl, pkgconfig, udev }: { stdenv, fetchurl, pkgconfig, udev }:
let
version = "1.0.17";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libusb-1.0.17"; name = "libusb-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/libusbx/libusbx-1.0.17.tar.bz2"; url = "mirror://sourceforge/libusbx/libusbx-${version}.tar.bz2";
sha256 = "1f25a773x9x5n48a0mcigyk77ay0hkiz6y6bi4588wzf7wn8svw7"; sha256 = "1f25a773x9x5n48a0mcigyk77ay0hkiz6y6bi4588wzf7wn8svw7";
}; };

View File

@ -1,17 +1,17 @@
{ stdenv, fetchurl, pkgconfig, xlibs }: { stdenv, fetchurl, pkgconfig, xlibs }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libvdpau-0.6"; name = "libvdpau-0.7";
src = fetchurl { src = fetchurl {
url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz"; url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz";
sha256 = "0x9dwxzw0ilsy88kqlih3170z1zfrrsx1dr9jbwbn0cbkpnbwmcv"; sha256 = "1q5wx6fmqg2iiw57wxwh5vv4yszqs4nlvlzhzdn9vig8gi30ip14";
}; };
buildInputs = with xlibs; [ pkgconfig dri2proto libXext ]; buildInputs = with xlibs; [ pkgconfig dri2proto libXext ];
propagatedBuildInputs = [ xlibs.libX11 ]; propagatedBuildInputs = [ xlibs.libX11 ];
configureFlags = stdenv.lib.optional stdenv.isDarwin [ "--build=x86_64" ]; configureFlags = stdenv.lib.optional stdenv.isDarwin [ "--build=x86_64" ];
meta = { meta = {

View File

@ -10,4 +10,6 @@ stdenv.mkDerivation {
buildInputs = [ pkgconfig intltool ]; buildInputs = [ pkgconfig intltool ];
propagatedBuildInputs = [ libX11 gtk3 ]; propagatedBuildInputs = [ libX11 gtk3 ];
configureFlags = [ "--disable-introspection" ];
} }

View File

@ -1,14 +1,14 @@
{ stdenv, fetchurl, yacc, flex, xkeyboard_config }: { stdenv, fetchurl, pkgconfig, yacc, flex, xkeyboard_config }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libxkbcommon-0.2.0"; name = "libxkbcommon-0.3.1";
src = fetchurl { src = fetchurl {
url = "http://xkbcommon.org/download/${name}.tar.bz2"; url = "http://xkbcommon.org/download/${name}.tar.xz";
sha256 = "0hpvfa8p4bhvhc1gcb578m354p5idd192xb8zlaq16d33h90msvl"; sha256 = "13mk335r4dhi9qglzbp46ina1wz4qgcp8r7s06iq7j50pf0kb5ww";
}; };
buildInputs = [ yacc flex xkeyboard_config ]; buildInputs = [ pkgconfig yacc flex xkeyboard_config ];
configureFlags = '' configureFlags = ''
--with-xkb-config-root=${xkeyboard_config}/etc/X11/xkb --with-xkb-config-root=${xkeyboard_config}/etc/X11/xkb

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, libxml2 }: { stdenv, fetchurl, libxml2 }:
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
name = "libxslt-1.1.27"; name = "libxslt-1.1.28";
src = fetchurl { src = fetchurl {
url = "ftp://xmlsoft.org/libxml2/${name}.tar.gz"; url = "ftp://xmlsoft.org/libxml2/${name}.tar.gz";
sha256 = "09ky3vhlaahvsb0q9gp6h3as53pfj70gincirachjqzj46jdka5n"; sha256 = "13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz";
}; };
buildInputs = [ libxml2 ]; buildInputs = [ libxml2 ];

View File

@ -3,8 +3,8 @@
, libdrm, xorg, wayland, udev, llvm, libffi , libdrm, xorg, wayland, udev, llvm, libffi
, libvdpau , libvdpau
, enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt , enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt
, enableR600LlvmCompiler ? false # current llvm-3.3 + mesa-9.1.6 don't configure , enableR600LlvmCompiler ? true, libelf
, enableExtraFeatures ? false # add ~15 MB to mesa_drivers , enableExtraFeatures ? false # not maintained
}: }:
if ! stdenv.lib.lists.elem stdenv.system stdenv.lib.platforms.mesaPlatforms then if ! stdenv.lib.lists.elem stdenv.system stdenv.lib.platforms.mesaPlatforms then
@ -16,23 +16,26 @@ else
This or the mesa attribute (which also contains GLU) are small (~ 2.2 MB, mostly headers) This or the mesa attribute (which also contains GLU) are small (~ 2.2 MB, mostly headers)
and are designed to be the buildInput of other packages. and are designed to be the buildInput of other packages.
- DRI and EGL drivers are compiled into $drivers output, - DRI and EGL drivers are compiled into $drivers output,
which is bigger (~13 MB) and depends on LLVM (~40 MB). which is bigger (~13 MB) and depends on LLVM (~44 MB).
These should be searched at runtime in /run/current-system/sw/lib/* These should be searched at runtime in "/run/opengl-driver{,-32}/lib/*"
and so are kind-of impure (given by NixOS). and so are kind-of impure (given by NixOS).
(I suppose on non-NixOS one would create the appropriate symlinks from there.) (I suppose on non-NixOS one would create the appropriate symlinks from there.)
- libOSMesa is in $osmesa (~4.2 MB)
*/ */
let let
version = "9.1.7"; version = "9.2.5";
# this is the default search path for DRI drivers (note: X server introduces an overriding env var) # this is the default search path for DRI drivers (note: X server introduces an overriding env var)
driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32"; driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
in in
with { inherit (stdenv.lib) optional optionals optionalString; };
stdenv.mkDerivation { stdenv.mkDerivation {
name = "mesa-noglu-${version}"; name = "mesa-noglu-${version}";
src = fetchurl { src = fetchurl {
url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2"; url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2";
sha256 = "1824p185ys7z9bah46xasp7khv44n9wv2c4p38i1dispniwbirih"; sha256 = "1w3bxclgwl2hwyxk3za7dbdakb8jsya7afck35cz0v8pxppvjsml";
}; };
prePatch = "patchShebangs ."; prePatch = "patchShebangs .";
@ -40,7 +43,6 @@ stdenv.mkDerivation {
patches = [ patches = [
./static-gallium.patch ./static-gallium.patch
./dricore-gallium.patch ./dricore-gallium.patch
./fix-rounding.patch
./werror-wundef.patch ./werror-wundef.patch
]; ];
@ -50,11 +52,11 @@ stdenv.mkDerivation {
-i src/egl/main/Makefile.am -i src/egl/main/Makefile.am
''; '';
outputs = ["out" "drivers"]; outputs = ["out" "drivers" "osmesa"];
preConfigure = "./autogen.sh"; preConfigure = "./autogen.sh";
configureFlags = with stdenv.lib; [ configureFlags = [
"--with-dri-driverdir=$(drivers)/lib/dri" "--with-dri-driverdir=$(drivers)/lib/dri"
"--with-egl-driver-dir=$(drivers)/lib/egl" "--with-egl-driver-dir=$(drivers)/lib/egl"
"--with-dri-searchpath=${driverLink}/lib/dri" "--with-dri-searchpath=${driverLink}/lib/dri"
@ -65,70 +67,84 @@ stdenv.mkDerivation {
"--enable-driglx-direct" # seems enabled anyway "--enable-driglx-direct" # seems enabled anyway
"--enable-gallium-llvm" "--with-llvm-shared-libs" "--enable-gallium-llvm" "--with-llvm-shared-libs"
"--enable-xa" # used in vmware driver "--enable-xa" # used in vmware driver
"--enable-gles1" "--enable-gles2"
"--enable-vdpau"
"--enable-osmesa" # used by wine
"--with-dri-drivers=i965,r200,radeon" "--with-dri-drivers=i965,r200,radeon"
"--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast" # radeonsi complains about R600 missing in LLVM ("--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast"
+ optionalString enableR600LlvmCompiler ",radeonsi")
"--with-egl-platforms=x11,wayland,drm" "--enable-gbm" "--enable-shared-glapi" "--with-egl-platforms=x11,wayland,drm" "--enable-gbm" "--enable-shared-glapi"
] ]
++ optional enableR600LlvmCompiler "--enable-r600-llvm-compiler" # complains about R600 missing in LLVM ++ optional enableR600LlvmCompiler "--enable-r600-llvm-compiler"
++ optional enableTextureFloats "--enable-texture-float" ++ optional enableTextureFloats "--enable-texture-float"
++ optionals enableExtraFeatures [ ++ optionals enableExtraFeatures [
"--enable-gles1" "--enable-gles2"
"--enable-osmesa"
"--enable-openvg" "--enable-gallium-egl" # not needed for EGL in Gallium, but OpenVG might be useful "--enable-openvg" "--enable-gallium-egl" # not needed for EGL in Gallium, but OpenVG might be useful
#"--enable-xvmc" # tests segfault with 9.1.{1,2,3} #"--enable-xvmc" # tests segfault with 9.1.{1,2,3}
"--enable-vdpau"
#"--enable-opencl" # ToDo: opencl seems to need libclc for clover #"--enable-opencl" # ToDo: opencl seems to need libclc for clover
]; ];
nativeBuildInputs = [ pkgconfig python makedepend file flex bison ]; nativeBuildInputs = [ pkgconfig python makedepend file flex bison ];
propagatedBuildInputs = with xorg; [ libXdamage libXxf86vm ] propagatedBuildInputs = with xorg; [ libXdamage libXxf86vm ]
++ ++ optionals stdenv.isLinux [libdrm]
stdenv.lib.optionals stdenv.isLinux [libdrm] ;
;
buildInputs = with xorg; [ buildInputs = with xorg; [
autoconf automake libtool intltool expat libxml2Python llvm autoconf automake libtool intltool expat libxml2Python llvm
libXfixes glproto dri2proto libX11 libXext libxcb libXt libXfixes glproto dri2proto libX11 libXext libxcb libXt
libffi wayland libffi wayland libvdpau
] ++ stdenv.lib.optionals enableExtraFeatures [ /*libXvMC*/ libvdpau ] ] ++ optionals enableExtraFeatures [ /*libXvMC*/ ]
++ stdenv.lib.optional stdenv.isLinux [udev] ++ optional stdenv.isLinux udev
; ++ optional enableR600LlvmCompiler libelf
;
enableParallelBuilding = true; enableParallelBuilding = true;
doCheck = true; #doCheck = true; # https://bugs.freedesktop.org/show_bug.cgi?id=67672
# TODO: best fix this before merging >=9.2 to master
# move gallium-related stuff to $drivers, so $out doesn't depend on LLVM # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM;
# also move libOSMesa to $osmesa, as it's relatively big
# ToDo: probably not all .la files are completely fixed, but it shouldn't matter # ToDo: probably not all .la files are completely fixed, but it shouldn't matter
postInstall = with stdenv.lib; '' postInstall = with stdenv.lib; ''
mv -t "$drivers/lib/" \ mv -t "$drivers/lib/" \
'' + optionalString enableExtraFeatures '' '' + optionalString enableExtraFeatures ''
`#$out/lib/libXvMC*` \ `#$out/lib/libXvMC*` \
$out/lib/vdpau \
$out/lib/libOSMesa* \
$out/lib/gbm $out/lib/libgbm* \ $out/lib/gbm $out/lib/libgbm* \
$out/lib/gallium-pipe \ $out/lib/gallium-pipe \
'' + '' '' + ''
$out/lib/libdricore* \ $out/lib/libdricore* \
$out/lib/libgallium* \ $out/lib/libgallium* \
$out/lib/vdpau \
$out/lib/libxatracker* $out/lib/libxatracker*
mkdir -p {$osmesa,$drivers}/lib/pkgconfig
mv -t $osmesa/lib/ \
$out/lib/libOSMesa*
mv -t $drivers/lib/pkgconfig/ \
$out/lib/pkgconfig/xatracker.pc
mv -t $osmesa/lib/pkgconfig/ \
$out/lib/pkgconfig/osmesa.pc
'' + /* now fix references in .la files */ '' '' + /* now fix references in .la files */ ''
sed "/^libdir=/s,$out,$drivers," -i \ sed "/^libdir=/s,$out,$drivers," -i \
'' + optionalString enableExtraFeatures '' '' + optionalString enableExtraFeatures ''
`#$drivers/lib/libXvMC*.la` \ `#$drivers/lib/libXvMC*.la` \
$drivers/lib/vdpau/*.la \
$drivers/lib/libOSMesa*.la \
$drivers/lib/gallium-pipe/*.la \ $drivers/lib/gallium-pipe/*.la \
'' + '' '' + ''
$drivers/lib/libgallium.la \ $drivers/lib/libgallium.la \
$drivers/lib/vdpau/*.la \
$drivers/lib/libdricore*.la $drivers/lib/libdricore*.la
sed "s,$out\(/lib/\(libdricore[0-9\.]*\|libgallium\).la\),$drivers\1,g" \ sed "s,$out\(/lib/\(libdricore[0-9\.]*\|libgallium\).la\),$drivers\1,g" \
-i $drivers/lib/*.la $drivers/lib/*/*.la -i $drivers/lib/*.la $drivers/lib/*/*.la
sed "/^libdir=/s,$out,$osmesa," -i \
$osmesa/lib/libOSMesa*.la
'' + /* work around bug #529, but maybe $drivers should also be patchelf-ed */ '' '' + /* work around bug #529, but maybe $drivers should also be patchelf-ed */ ''
find $drivers/ -type f -executable -print0 | xargs -0 strip -S || true find $drivers/ $osmesa/ -type f -executable -print0 | xargs -0 strip -S || true
'' + /* add RPATH so the drivers can find the moved libgallium and libdricore9 */ '' '' + /* add RPATH so the drivers can find the moved libgallium and libdricore9 */ ''
for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do
@ -138,6 +154,8 @@ stdenv.mkDerivation {
done done
'' + /* set the default search path for DRI drivers; used e.g. by X server */ '' '' + /* set the default search path for DRI drivers; used e.g. by X server */ ''
substituteInPlace "$out/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}" substituteInPlace "$out/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}"
'' + /* move vdpau drivers to $drivers/lib, so they are found */ ''
mv "$drivers"/lib/vdpau/* "$drivers"/lib/ && rmdir "$drivers"/lib/vdpau
''; '';
#ToDo: @vcunat isn't sure if drirc will be found when in $out/etc/, but it doesn't seem important ATM #ToDo: @vcunat isn't sure if drirc will be found when in $out/etc/, but it doesn't seem important ATM
@ -148,6 +166,6 @@ stdenv.mkDerivation {
homepage = http://www.mesa3d.org/; homepage = http://www.mesa3d.org/;
license = "bsd"; license = "bsd";
platforms = stdenv.lib.platforms.mesaPlatforms; platforms = stdenv.lib.platforms.mesaPlatforms;
maintainers = [ stdenv.lib.maintainers.simons ]; maintainers = with stdenv.lib.maintainers; [ simons vcunat ];
}; };
} }

View File

@ -1,357 +0,0 @@
From c25ae5d27b114e23d5734f846002df1a05759658 Mon Sep 17 00:00:00 2001
From: Roland Scheidegger <sroland@vmware.com>
Date: Thu, 31 Jan 2013 19:27:49 +0000
Subject: gallivm: fix issues with trunc/round/floor/ceil with no arch rounding
The emulation of these if there's no rounding instruction available
is a bit more complicated than what the code did.
In particular, doing fp-to-int/int-to-fp will not work if the exponent
is large enough (and with NaNs, Infs). Hence such values need to be filtered
out and the original value returned in this case (which fortunately should
always be exact). This comes at the expense of performance (if your cpu
doesn't support rounding instructions).
Furthermore, floor/ifloor/ceil/iceil were affected by precision issues for
values near negative (for floor) or positive (for ceil) zero, fix that as well
(fixing this issue might not actually be slower except for ceil/iceil if the
type is not signed which is probably rare - note iceil has no callers left
in any case).
Also add some new rounding test values in lp_test_arit to actually test
for that stuff (which previously would have failed without sse41).
This fixes https://bugs.freedesktop.org/show_bug.cgi?id=59701.
---
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index b4e9f23..ec05026 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -1590,12 +1590,37 @@ lp_build_trunc(struct lp_build_context *bld,
return lp_build_round_arch(bld, a, LP_BUILD_ROUND_TRUNCATE);
}
else {
- LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
- LLVMTypeRef int_vec_type = lp_build_int_vec_type(bld->gallivm, type);
- LLVMValueRef res;
- res = LLVMBuildFPToSI(builder, a, int_vec_type, "");
- res = LLVMBuildSIToFP(builder, res, vec_type, "");
- return res;
+ const struct lp_type type = bld->type;
+ struct lp_type inttype;
+ struct lp_build_context intbld;
+ LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
+ LLVMValueRef trunc, res, anosign, mask;
+ LLVMTypeRef int_vec_type = bld->int_vec_type;
+ LLVMTypeRef vec_type = bld->vec_type;
+
+ assert(type.width == 32); /* might want to handle doubles at some point */
+
+ inttype = type;
+ inttype.floating = 0;
+ lp_build_context_init(&intbld, bld->gallivm, inttype);
+
+ /* round by truncation */
+ trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
+ res = LLVMBuildSIToFP(builder, trunc, vec_type, "floor.trunc");
+
+ /* mask out sign bit */
+ anosign = lp_build_abs(bld, a);
+ /*
+ * mask out all values if anosign > 2^24
+ * This should work both for large ints (all rounding is no-op for them
+ * because such floats are always exact) as well as special cases like
+ * NaNs, Infs (taking advantage of the fact they use max exponent).
+ * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
+ */
+ anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
+ cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
+ mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
+ return lp_build_select(bld, mask, a, res);
}
}
@@ -1620,11 +1645,36 @@ lp_build_round(struct lp_build_context *bld,
return lp_build_round_arch(bld, a, LP_BUILD_ROUND_NEAREST);
}
else {
- LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
- LLVMValueRef res;
+ const struct lp_type type = bld->type;
+ struct lp_type inttype;
+ struct lp_build_context intbld;
+ LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
+ LLVMValueRef res, anosign, mask;
+ LLVMTypeRef int_vec_type = bld->int_vec_type;
+ LLVMTypeRef vec_type = bld->vec_type;
+
+ assert(type.width == 32); /* might want to handle doubles at some point */
+
+ inttype = type;
+ inttype.floating = 0;
+ lp_build_context_init(&intbld, bld->gallivm, inttype);
+
res = lp_build_iround(bld, a);
res = LLVMBuildSIToFP(builder, res, vec_type, "");
- return res;
+
+ /* mask out sign bit */
+ anosign = lp_build_abs(bld, a);
+ /*
+ * mask out all values if anosign > 2^24
+ * This should work both for large ints (all rounding is no-op for them
+ * because such floats are always exact) as well as special cases like
+ * NaNs, Infs (taking advantage of the fact they use max exponent).
+ * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
+ */
+ anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
+ cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
+ mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
+ return lp_build_select(bld, mask, a, res);
}
}
@@ -1648,11 +1698,52 @@ lp_build_floor(struct lp_build_context *bld,
return lp_build_round_arch(bld, a, LP_BUILD_ROUND_FLOOR);
}
else {
- LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
- LLVMValueRef res;
- res = lp_build_ifloor(bld, a);
- res = LLVMBuildSIToFP(builder, res, vec_type, "");
- return res;
+ const struct lp_type type = bld->type;
+ struct lp_type inttype;
+ struct lp_build_context intbld;
+ LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
+ LLVMValueRef trunc, res, anosign, mask;
+ LLVMTypeRef int_vec_type = bld->int_vec_type;
+ LLVMTypeRef vec_type = bld->vec_type;
+
+ assert(type.width == 32); /* might want to handle doubles at some point */
+
+ inttype = type;
+ inttype.floating = 0;
+ lp_build_context_init(&intbld, bld->gallivm, inttype);
+
+ /* round by truncation */
+ trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
+ res = LLVMBuildSIToFP(builder, trunc, vec_type, "floor.trunc");
+
+ if (type.sign) {
+ LLVMValueRef tmp;
+
+ /*
+ * fix values if rounding is wrong (for non-special cases)
+ * - this is the case if trunc > a
+ */
+ mask = lp_build_cmp(bld, PIPE_FUNC_GREATER, res, a);
+ /* tmp = trunc > a ? 1.0 : 0.0 */
+ tmp = LLVMBuildBitCast(builder, bld->one, int_vec_type, "");
+ tmp = lp_build_and(&intbld, mask, tmp);
+ tmp = LLVMBuildBitCast(builder, tmp, vec_type, "");
+ res = lp_build_sub(bld, res, tmp);
+ }
+
+ /* mask out sign bit */
+ anosign = lp_build_abs(bld, a);
+ /*
+ * mask out all values if anosign > 2^24
+ * This should work both for large ints (all rounding is no-op for them
+ * because such floats are always exact) as well as special cases like
+ * NaNs, Infs (taking advantage of the fact they use max exponent).
+ * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
+ */
+ anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
+ cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
+ mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
+ return lp_build_select(bld, mask, a, res);
}
}
@@ -1676,11 +1767,48 @@ lp_build_ceil(struct lp_build_context *bld,
return lp_build_round_arch(bld, a, LP_BUILD_ROUND_CEIL);
}
else {
- LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
- LLVMValueRef res;
- res = lp_build_iceil(bld, a);
- res = LLVMBuildSIToFP(builder, res, vec_type, "");
- return res;
+ const struct lp_type type = bld->type;
+ struct lp_type inttype;
+ struct lp_build_context intbld;
+ LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
+ LLVMValueRef trunc, res, anosign, mask, tmp;
+ LLVMTypeRef int_vec_type = bld->int_vec_type;
+ LLVMTypeRef vec_type = bld->vec_type;
+
+ assert(type.width == 32); /* might want to handle doubles at some point */
+
+ inttype = type;
+ inttype.floating = 0;
+ lp_build_context_init(&intbld, bld->gallivm, inttype);
+
+ /* round by truncation */
+ trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
+ trunc = LLVMBuildSIToFP(builder, trunc, vec_type, "ceil.trunc");
+
+ /*
+ * fix values if rounding is wrong (for non-special cases)
+ * - this is the case if trunc < a
+ */
+ mask = lp_build_cmp(bld, PIPE_FUNC_LESS, trunc, a);
+ /* tmp = trunc < a ? 1.0 : 0.0 */
+ tmp = LLVMBuildBitCast(builder, bld->one, int_vec_type, "");
+ tmp = lp_build_and(&intbld, mask, tmp);
+ tmp = LLVMBuildBitCast(builder, tmp, vec_type, "");
+ res = lp_build_add(bld, trunc, tmp);
+
+ /* mask out sign bit */
+ anosign = lp_build_abs(bld, a);
+ /*
+ * mask out all values if anosign > 2^24
+ * This should work both for large ints (all rounding is no-op for them
+ * because such floats are always exact) as well as special cases like
+ * NaNs, Infs (taking advantage of the fact they use max exponent).
+ * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
+ */
+ anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
+ cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
+ mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
+ return lp_build_select(bld, mask, a, res);
}
}
@@ -1826,32 +1954,30 @@ lp_build_ifloor(struct lp_build_context *bld,
res = lp_build_round_arch(bld, a, LP_BUILD_ROUND_FLOOR);
}
else {
- /* Take the sign bit and add it to 1 constant */
- LLVMTypeRef vec_type = bld->vec_type;
- unsigned mantissa = lp_mantissa(type);
- LLVMValueRef mask = lp_build_const_int_vec(bld->gallivm, type,
- (unsigned long long)1 << (type.width - 1));
- LLVMValueRef sign;
- LLVMValueRef offset;
+ struct lp_type inttype;
+ struct lp_build_context intbld;
+ LLVMValueRef trunc, itrunc, mask;
- /* sign = a < 0 ? ~0 : 0 */
- sign = LLVMBuildBitCast(builder, a, int_vec_type, "");
- sign = LLVMBuildAnd(builder, sign, mask, "");
- sign = LLVMBuildAShr(builder, sign,
- lp_build_const_int_vec(bld->gallivm, type,
- type.width - 1),
- "ifloor.sign");
+ assert(type.floating);
+ assert(lp_check_value(type, a));
- /* offset = -0.99999(9)f */
- offset = lp_build_const_vec(bld->gallivm, type,
- -(double)(((unsigned long long)1 << mantissa) - 10)/((unsigned long long)1 << mantissa));
- offset = LLVMConstBitCast(offset, int_vec_type);
+ inttype = type;
+ inttype.floating = 0;
+ lp_build_context_init(&intbld, bld->gallivm, inttype);
- /* offset = a < 0 ? offset : 0.0f */
- offset = LLVMBuildAnd(builder, offset, sign, "");
- offset = LLVMBuildBitCast(builder, offset, vec_type, "ifloor.offset");
+ /* round by truncation */
+ itrunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
+ trunc = LLVMBuildSIToFP(builder, itrunc, bld->vec_type, "ifloor.trunc");
- res = LLVMBuildFAdd(builder, res, offset, "ifloor.res");
+ /*
+ * fix values if rounding is wrong (for non-special cases)
+ * - this is the case if trunc > a
+ * The results of doing this with NaNs, very large values etc.
+ * are undefined but this seems to be the case anyway.
+ */
+ mask = lp_build_cmp(bld, PIPE_FUNC_GREATER, trunc, a);
+ /* cheapie minus one with mask since the mask is minus one / zero */
+ return lp_build_add(&intbld, itrunc, mask);
}
}
@@ -1883,35 +2009,30 @@ lp_build_iceil(struct lp_build_context *bld,
res = lp_build_round_arch(bld, a, LP_BUILD_ROUND_CEIL);
}
else {
- LLVMTypeRef vec_type = bld->vec_type;
- unsigned mantissa = lp_mantissa(type);
- LLVMValueRef offset;
+ struct lp_type inttype;
+ struct lp_build_context intbld;
+ LLVMValueRef trunc, itrunc, mask;
- /* offset = 0.99999(9)f */
- offset = lp_build_const_vec(bld->gallivm, type,
- (double)(((unsigned long long)1 << mantissa) - 10)/((unsigned long long)1 << mantissa));
+ assert(type.floating);
+ assert(lp_check_value(type, a));
- if (type.sign) {
- LLVMValueRef mask = lp_build_const_int_vec(bld->gallivm, type,
- (unsigned long long)1 << (type.width - 1));
- LLVMValueRef sign;
+ inttype = type;
+ inttype.floating = 0;
+ lp_build_context_init(&intbld, bld->gallivm, inttype);
- /* sign = a < 0 ? 0 : ~0 */
- sign = LLVMBuildBitCast(builder, a, int_vec_type, "");
- sign = LLVMBuildAnd(builder, sign, mask, "");
- sign = LLVMBuildAShr(builder, sign,
- lp_build_const_int_vec(bld->gallivm, type,
- type.width - 1),
- "iceil.sign");
- sign = LLVMBuildNot(builder, sign, "iceil.not");
-
- /* offset = a < 0 ? 0.0 : offset */
- offset = LLVMConstBitCast(offset, int_vec_type);
- offset = LLVMBuildAnd(builder, offset, sign, "");
- offset = LLVMBuildBitCast(builder, offset, vec_type, "iceil.offset");
- }
+ /* round by truncation */
+ itrunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
+ trunc = LLVMBuildSIToFP(builder, itrunc, bld->vec_type, "iceil.trunc");
- res = LLVMBuildFAdd(builder, a, offset, "iceil.res");
+ /*
+ * fix values if rounding is wrong (for non-special cases)
+ * - this is the case if trunc < a
+ * The results of doing this with NaNs, very large values etc.
+ * are undefined but this seems to be the case anyway.
+ */
+ mask = lp_build_cmp(bld, PIPE_FUNC_LESS, trunc, a);
+ /* cheapie plus one with mask since the mask is minus one / zero */
+ return lp_build_sub(&intbld, itrunc, mask);
}
/* round to nearest (toward zero) */
diff --git a/src/gallium/drivers/llvmpipe/lp_test_arit.c b/src/gallium/drivers/llvmpipe/lp_test_arit.c
index 99928b8..f14e4b3 100644
--- a/src/gallium/drivers/llvmpipe/lp_test_arit.c
+++ b/src/gallium/drivers/llvmpipe/lp_test_arit.c
@@ -207,6 +207,18 @@ const float round_values[] = {
-10.0, -1, 0.0, 12.0,
-1.49, -0.25, 1.25, 2.51,
-0.99, -0.01, 0.01, 0.99,
+ 1.401298464324817e-45f, // smallest denormal
+ -1.401298464324817e-45f,
+ 1.62981451e-08f,
+ -1.62981451e-08f,
+ 1.62981451e15f, // large number not representable as 32bit int
+ -1.62981451e15f,
+ FLT_EPSILON,
+ -FLT_EPSILON,
+ 1.0f - 0.5f*FLT_EPSILON,
+ -1.0f + FLT_EPSILON,
+ FLT_MAX,
+ -FLT_MAX
};
static float fractf(float x)
--
cgit v0.9.0.2-2-gbebe

View File

@ -1,11 +1,15 @@
{ stdenv, fetchurl, pkgconfig, pango, glibmm, cairomm, libpng, cairo }: { stdenv, fetchurl, pkgconfig, pango, glibmm, cairomm, libpng, cairo }:
let
ver_maj = "2.34";
ver_min = "0";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "pangomm-2.28.4"; name = "pangomm-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = mirror://gnome/sources/pangomm/2.28/pangomm-2.28.4.tar.xz; url = "mirror://gnome/sources/pangomm/${ver_maj}/${name}.tar.xz";
sha256 = "10kcdpg080m393f1vz0km41kd3483fkyabprm59gvjwklxkcp3bp"; sha256 = "0hcyvv7c5zmivprdam6cp111i6hn2y5jsxzk00m6j9pncbzvp0hf";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -1,11 +1,11 @@
{ fetchurl, stdenv, pkgconfig, perl, withPNG ? true, libpng, glib /*just passthru*/ }: { fetchurl, stdenv, pkgconfig, perl, withPNG ? true, libpng, glib /*just passthru*/ }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "pixman-0.30.2"; name = "pixman-0.32.4";
src = fetchurl { src = fetchurl {
url = "http://cairographics.org/releases/${name}.tar.gz"; url = "http://cairographics.org/releases/${name}.tar.gz";
sha256 = "1sgnpx34pj3245a9v8056jddc4cg4xxkqdjvvw6k2hnprhh8k65x"; sha256 = "113ycngcssbrps217dyajq96hm9xghsfch82h14yffla1r1fviw0";
}; };
nativeBuildInputs = [ pkgconfig perl ]; nativeBuildInputs = [ pkgconfig perl ];

View File

@ -4,8 +4,8 @@
}: }:
let let
version = "0.24.3"; # even major numbers are stable version = "0.24.4"; # even major numbers are stable
sha256 = "0kip6mxp4lscr3wvgfashqk7ymhx2w1hgdilfpgig0a5kr805kfj"; sha256 = "1qh1gk6hq5cfpkqyxxgkpyl78na8dckmh6zbgsqbpw762yd518y8";
qtcairo_patches = qtcairo_patches =
let qtcairo = fetchgit { # the version for poppler-0.22 let qtcairo = fetchgit { # the version for poppler-0.22

View File

@ -49,6 +49,16 @@ stdenv.mkDerivation rec {
patches = patches =
[ ./glib-2.32.patch [ ./glib-2.32.patch
(fetchurl {
name = "CVE-2013-4549.patch";
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/CVE-2013-4549.patch?h=packages/qt4";
sha256 = "0xz60fmspzvsyhd0f013pvh2bbm87976128fphbckfcwiqr1hanw";
})
(fetchurl {
name = "libmng2.patch";
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/libmng2.patch?h=packages/qt4";
sha256 = "1sgnrl3qzr370ad5bqc66f7sp0gk046jnsy1811x24f16cs04xzh";
})
(substituteAll { (substituteAll {
src = ./dlopen-absolute-paths.diff; src = ./dlopen-absolute-paths.diff;
inherit cups icu libXfixes; inherit cups icu libXfixes;

View File

@ -1,17 +1,15 @@
{ stdenv, fetchurl, pkgconfig, freetype, libXft, pango, fontconfig, cmake }: { stdenv, fetchurl, pkgconfig, freetype, cmake }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.2.4"; version = "1.2.4";
name = "graphite2-${version}"; name = "graphite2-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/silgraphite/graphite2/${name}.tgz"; url = "mirror://sourceforge/silgraphite/graphite2/${name}.tgz";
sha256 = "00xhv1mp640fr3wmdzwn4yz0g56jd4r9fb7b02mc1g19h0bdbhsb"; sha256 = "00xhv1mp640fr3wmdzwn4yz0g56jd4r9fb7b02mc1g19h0bdbhsb";
}; };
buildInputs = [pkgconfig freetype libXft pango fontconfig cmake]; buildInputs = [ pkgconfig freetype cmake ];
NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2";
meta = { meta = {
description = "An advanced font engine"; description = "An advanced font engine";

View File

@ -1,13 +1,13 @@
{ stdenv, fetchurl, libffi, expat, pkgconfig, libxslt, docbook_xsl, doxygen }: { stdenv, fetchurl, libffi, expat, pkgconfig, libxslt, docbook_xsl, doxygen }:
let version = "1.0.5"; in let version = "1.3.0"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "wayland-${version}"; name = "wayland-${version}";
src = fetchurl { src = fetchurl {
url = "http://wayland.freedesktop.org/releases/${name}.tar.xz"; url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
sha256 = "130n7v5i7rfsrli2n8vdzfychlgd8v7by7sfgp8vfqdlss5km34w"; sha256 = "0vhd8z74r4zmm7hrbb8l450sb6slqkdrvmk4k78sq9lays2pd09f";
}; };
buildInputs = [ pkgconfig libffi expat libxslt docbook_xsl doxygen ]; buildInputs = [ pkgconfig libffi expat libxslt docbook_xsl doxygen ];

View File

@ -0,0 +1,54 @@
{ stdenv, fetchurl, perl, python, ruby, bison, gperf, flex
, pkgconfig, which, gettext, gobjectIntrospection
, gtk2, gtk3, wayland, libwebp, enchant
, libxml2, libsoup, libsecret, libxslt, harfbuzz
}:
stdenv.mkDerivation rec {
name = "webkitgtk-2.2.3";
meta = {
description = "Web content rendering engine, GTK+ port";
homepage = "http://webkitgtk.org/";
license = stdenv.lib.licenses.bsd2;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ iyzsong ];
};
src = fetchurl {
url = "http://webkitgtk.org/releases/${name}.tar.xz";
sha256 = "01a69v0aw3bv2zkx6jzk71r3pjlf2xfhxavjnma89kmd78qb7g4l";
};
patches = [ ./webcore-svg-libxml-cflags.patch ];
prePatch = ''
patchShebangs Tools/gtk
for i in $(find . -name '*.p[l|m]'); do
sed -e 's@/usr/bin/gcc@gcc@' -i $i
done
'';
configureFlags = [
"--disable-geolocation"
"--disable-video" # TODO: gsteramer-1.0
"--enable-introspection"
];
dontAddDisableDepTrack = true;
nativeBuildInputs = [
perl python ruby bison gperf flex
pkgconfig which gettext gobjectIntrospection
];
buildInputs = [
gtk2 wayland libwebp enchant
libxml2 libsecret libxslt harfbuzz
];
propagatedBuildInputs = [ gtk3 libsoup ];
#enableParallelBuilding = true; # build problems on Hydra
}

View File

@ -0,0 +1,8 @@
--- webkitgtk-2.2.3-orig/GNUmakefile.in 2013-12-04 17:56:28.000000000 +0800
+++ webkitgtk-2.2.3/GNUmakefile.in 2013-12-05 17:32:37.976689248 +0800
@@ -21911,6 +21911,7 @@
@ENABLE_SVG_TRUE@ $(CAIRO_CFLAGS) \
@ENABLE_SVG_TRUE@ $(FREETYPE_CFLAGS) \
@ENABLE_SVG_TRUE@ $(LIBSOUP_CFLAGS) \
+@ENABLE_SVG_TRUE@ $(LIBXML_CFLAGS) \
@ENABLE_SVG_TRUE@ $(UNICODE_CFLAGS)

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, python, pkgconfig, dbus, dbus_glib, dbus_tools }: { stdenv, fetchurl, python, pkgconfig, dbus, dbus_glib, dbus_tools }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dbus-python-1.1.1"; name = "dbus-python-1.2.0";
src = fetchurl { src = fetchurl {
url = "http://dbus.freedesktop.org/releases/dbus-python/${name}.tar.gz"; url = "http://dbus.freedesktop.org/releases/dbus-python/${name}.tar.gz";
sha256 = "122yj5y0mndk9axh735qvwwckck6s6x0q84dw6p97mplp17wl5w9"; sha256 = "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71";
}; };
postPatch = "patchShebangs ."; postPatch = "patchShebangs .";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, xlibs, flex, bison, mesa, alsaLib { stdenv, fetchurl, pkgconfig, xlibs, flex, bison, mesa, mesa_noglu, alsaLib
, ncurses, libpng, libjpeg, lcms, freetype, fontconfig, fontforge , ncurses, libpng, libjpeg, lcms, freetype, fontconfig, fontforge
, libxml2, libxslt, openssl, gnutls, cups, libdrm, makeWrapper , libxml2, libxslt, openssl, gnutls, cups, libdrm, makeWrapper
}: }:
@ -34,7 +34,8 @@ in stdenv.mkDerivation rec {
inherit version name src; inherit version name src;
buildInputs = [ buildInputs = [
xlibs.xlibs flex bison xlibs.libXi mesa pkgconfig
xlibs.xlibs flex bison xlibs.libXi mesa mesa_noglu.osmesa
xlibs.libXcursor xlibs.libXinerama xlibs.libXrandr xlibs.libXcursor xlibs.libXinerama xlibs.libXrandr
xlibs.libXrender xlibs.libXxf86vm xlibs.libXcomposite xlibs.libXrender xlibs.libXxf86vm xlibs.libXcomposite
alsaLib ncurses libpng libjpeg lcms fontforge alsaLib ncurses libpng libjpeg lcms fontforge
@ -45,7 +46,7 @@ in stdenv.mkDerivation rec {
# them to the RPATH so that the user doesn't have to set them in # them to the RPATH so that the user doesn't have to set them in
# LD_LIBRARY_PATH. # LD_LIBRARY_PATH.
NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [ NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [
freetype fontconfig stdenv.gcc.gcc mesa libdrm freetype fontconfig stdenv.gcc.gcc mesa mesa_noglu.osmesa libdrm
xlibs.libXinerama xlibs.libXrender xlibs.libXrandr xlibs.libXinerama xlibs.libXrender xlibs.libXrandr
xlibs.libXcursor xlibs.libXcomposite libpng libjpeg xlibs.libXcursor xlibs.libXcomposite libpng libjpeg
openssl gnutls cups openssl gnutls cups

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, xlibs, flex, bison, mesa, alsaLib { stdenv, fetchurl, pkgconfig, xlibs, flex, bison, mesa, mesa_noglu, alsaLib
, ncurses, libpng, libjpeg, lcms, freetype, fontconfig, fontforge , ncurses, libpng, libjpeg, lcms, freetype, fontconfig, fontforge
, libxml2, libxslt, openssl, gnutls, cups, libdrm, makeWrapper , libxml2, libxslt, openssl, gnutls, cups, libdrm, makeWrapper
}: }:
@ -34,7 +34,8 @@ in stdenv.mkDerivation rec {
inherit version name src; inherit version name src;
buildInputs = [ buildInputs = [
xlibs.xlibs flex bison xlibs.libXi mesa pkgconfig
xlibs.xlibs flex bison xlibs.libXi mesa mesa_noglu.osmesa
xlibs.libXcursor xlibs.libXinerama xlibs.libXrandr xlibs.libXcursor xlibs.libXinerama xlibs.libXrandr
xlibs.libXrender xlibs.libXxf86vm xlibs.libXcomposite xlibs.libXrender xlibs.libXxf86vm xlibs.libXcomposite
alsaLib ncurses libpng libjpeg lcms fontforge alsaLib ncurses libpng libjpeg lcms fontforge
@ -45,7 +46,7 @@ in stdenv.mkDerivation rec {
# them to the RPATH so that the user doesn't have to set them in # them to the RPATH so that the user doesn't have to set them in
# LD_LIBRARY_PATH. # LD_LIBRARY_PATH.
NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [ NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [
freetype fontconfig stdenv.gcc.gcc mesa libdrm freetype fontconfig stdenv.gcc.gcc mesa mesa_noglu.osmesa libdrm
xlibs.libXinerama xlibs.libXrender xlibs.libXrandr xlibs.libXinerama xlibs.libXrender xlibs.libXrandr
xlibs.libXcursor xlibs.libXcomposite libpng libjpeg xlibs.libXcursor xlibs.libXcomposite libpng libjpeg
openssl gnutls cups openssl gnutls cups

View File

@ -790,11 +790,11 @@ let
})) // {inherit libICE kbproto libSM libX11 xproto ;}; })) // {inherit libICE kbproto libSM libX11 xproto ;};
libXtst = (stdenv.mkDerivation ((if overrides ? libXtst then overrides.libXtst else x: x) { libXtst = (stdenv.mkDerivation ((if overrides ? libXtst then overrides.libXtst else x: x) {
name = "libXtst-1.2.1"; name = "libXtst-1.2.2";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/X11R7.7/src/everything/libXtst-1.2.1.tar.bz2; url = mirror://xorg/individual/lib/libXtst-1.2.2.tar.bz2;
sha256 = "1q750hjplq1rfyxkr4545z1y2a1wfnc828ynvbws7b4jwdk3xsky"; sha256 = "1ngn161nq679ffmbwl81i2hn75jjg5b3ffv6n4jilpvyazypy2pg";
}; };
buildInputs = [pkgconfig inputproto recordproto libX11 libXext xextproto libXi ]; buildInputs = [pkgconfig inputproto recordproto libX11 libXext xextproto libXi ];
})) // {inherit inputproto recordproto libX11 libXext xextproto libXi ;}; })) // {inherit inputproto recordproto libX11 libXext xextproto libXi ;};
@ -1370,11 +1370,11 @@ let
})) // {inherit inputproto xorgserver xproto ;}; })) // {inherit inputproto xorgserver xproto ;};
xf86inputsynaptics = (stdenv.mkDerivation ((if overrides ? xf86inputsynaptics then overrides.xf86inputsynaptics else x: x) { xf86inputsynaptics = (stdenv.mkDerivation ((if overrides ? xf86inputsynaptics then overrides.xf86inputsynaptics else x: x) {
name = "xf86-input-synaptics-1.6.2"; name = "xf86-input-synaptics-1.7.1";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/driver/xf86-input-synaptics-1.6.2.tar.bz2; url = mirror://xorg/individual/driver/xf86-input-synaptics-1.7.1.tar.bz2;
sha256 = "082rlbyw63sashjbwd7dd0a0smp5n8yv9bihy19c706lhnhddxy3"; sha256 = "13mmpcwp1d69w6c458a4fdqgwl24bpvrnq3zd6833chz1rk2an6v";
}; };
buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ]; buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ];
})) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;}; })) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
@ -1420,11 +1420,11 @@ let
})) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;}; })) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;};
xf86videoast = (stdenv.mkDerivation ((if overrides ? xf86videoast then overrides.xf86videoast else x: x) { xf86videoast = (stdenv.mkDerivation ((if overrides ? xf86videoast then overrides.xf86videoast else x: x) {
name = "xf86-video-ast-0.97.0"; name = "xf86-video-ast-0.98.0";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2; url = mirror://xorg/individual/driver/xf86-video-ast-0.98.0.tar.bz2;
sha256 = "0xlfk64pa0vbg74m261fw8cn4vw6jw3nxm6wys9m4j3n2rwd9z18"; sha256 = "188nv73w0p5xhfxz2dffli44yzyn1qhhq3qkwc8wva9dhg25n8lh";
}; };
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ]; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@ -1440,31 +1440,31 @@ let
})) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; })) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
xf86videocirrus = (stdenv.mkDerivation ((if overrides ? xf86videocirrus then overrides.xf86videocirrus else x: x) { xf86videocirrus = (stdenv.mkDerivation ((if overrides ? xf86videocirrus then overrides.xf86videocirrus else x: x) {
name = "xf86-video-cirrus-1.5.1"; name = "xf86-video-cirrus-1.5.2";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-cirrus-1.5.1.tar.bz2; url = mirror://xorg/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2;
sha256 = "0my54x52fsa82bsh196hz79750xjlv8ddbvin7230ck7pnf44md9"; sha256 = "1mycqgjp18b6adqj2h90vp324xh8ysyi5migfmjc914vbnkf2q9k";
}; };
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ]; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;}; })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
xf86videodummy = (stdenv.mkDerivation ((if overrides ? xf86videodummy then overrides.xf86videodummy else x: x) { xf86videodummy = (stdenv.mkDerivation ((if overrides ? xf86videodummy then overrides.xf86videodummy else x: x) {
name = "xf86-video-dummy-0.3.6"; name = "xf86-video-dummy-0.3.7";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2; url = mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2;
sha256 = "16773lxa74d9v2x758bx0byrmxssplqygnjn09q3klr605j5ncs4"; sha256 = "1046p64xap69vlsmsz5rjv0djc970yhvq44fmllmas0mqp5lzy2n";
}; };
buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ]; buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ];
})) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;}; })) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;};
xf86videofbdev = (stdenv.mkDerivation ((if overrides ? xf86videofbdev then overrides.xf86videofbdev else x: x) { xf86videofbdev = (stdenv.mkDerivation ((if overrides ? xf86videofbdev then overrides.xf86videofbdev else x: x) {
name = "xf86-video-fbdev-0.4.3"; name = "xf86-video-fbdev-0.4.4";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2; url = mirror://xorg/individual/driver/xf86-video-fbdev-0.4.4.tar.bz2;
sha256 = "0ca8khgy3wv0fys7s4087apvnp8j86blxj5m5m70l10hs5x06yzz"; sha256 = "06ym7yy017lanj730hfkpfk4znx3dsj8jq3qvyzsn8w294kb7m4x";
}; };
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ]; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;}; })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;};
@ -1540,14 +1540,14 @@ let
})) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;}; })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
xf86videoneomagic = (stdenv.mkDerivation ((if overrides ? xf86videoneomagic then overrides.xf86videoneomagic else x: x) { xf86videoneomagic = (stdenv.mkDerivation ((if overrides ? xf86videoneomagic then overrides.xf86videoneomagic else x: x) {
name = "xf86-video-neomagic-1.2.7"; name = "xf86-video-neomagic-1.2.8";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2; url = mirror://xorg/individual/driver/xf86-video-neomagic-1.2.8.tar.bz2;
sha256 = "0xnbk2y5pzs1g3w2rmjc4k3nyq6kazf67bv4q3dnbywalsgfh1lz"; sha256 = "0x48sxs1p3kmwk3pq1j7vl93y59gdmgkq1x5xbnh0yal0angdash";
}; };
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ]; buildInputs = [pkgconfig fontsproto libpciaccess xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;}; })) // {inherit fontsproto libpciaccess xorgserver xproto ;};
xf86videonewport = (stdenv.mkDerivation ((if overrides ? xf86videonewport then overrides.xf86videonewport else x: x) { xf86videonewport = (stdenv.mkDerivation ((if overrides ? xf86videonewport then overrides.xf86videonewport else x: x) {
name = "xf86-video-newport-0.2.4"; name = "xf86-video-newport-0.2.4";
@ -1680,11 +1680,11 @@ let
})) // {inherit randrproto videoproto xorgserver xproto ;}; })) // {inherit randrproto videoproto xorgserver xproto ;};
xf86videovesa = (stdenv.mkDerivation ((if overrides ? xf86videovesa then overrides.xf86videovesa else x: x) { xf86videovesa = (stdenv.mkDerivation ((if overrides ? xf86videovesa then overrides.xf86videovesa else x: x) {
name = "xf86-video-vesa-2.3.2"; name = "xf86-video-vesa-2.3.3";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-vesa-2.3.2.tar.bz2; url = mirror://xorg/individual/driver/xf86-video-vesa-2.3.3.tar.bz2;
sha256 = "1qqf97baii1dcsm3y8gqw674j4r8llhkbqsavhyn11iwmvzifjhl"; sha256 = "1y5fsg0c4bgmh1cfsbnaaf388fppyy02i7mcy9vax78flkjpb2yf";
}; };
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ]; buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;}; })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
@ -1900,11 +1900,11 @@ let
})) // {inherit ;}; })) // {inherit ;};
xorgserver = (stdenv.mkDerivation ((if overrides ? xorgserver then overrides.xorgserver else x: x) { xorgserver = (stdenv.mkDerivation ((if overrides ? xorgserver then overrides.xorgserver else x: x) {
name = "xorg-server-1.13.4"; name = "xorg-server-1.14.5";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2; url = mirror://xorg/individual/xserver/xorg-server-1.14.5.tar.bz2;
sha256 = "1kwq5hqgl3qmm4nxh5iwpa0wwwzsj67fxqiiglzhyyrwgy46kjd2"; sha256 = "1lb1fkscy7nwnabfj0d2shvxga16i047g11if18plj0n2jzhc3wd";
}; };
buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ]; buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ];
})) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;}; })) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;};

View File

@ -159,6 +159,13 @@ in
]; ];
}; };
xf86videonv = attrs: attrs // {
patches = [( args.fetchurl {
url = http://cgit.freedesktop.org/xorg/driver/xf86-video-nv/patch/?id=fc78fe98222b0204b8a2872a529763d6fe5048da;
sha256 = "0ikbnz6048ygs1qahb6ylnxkyjhfjcqr2gm9bk95ca90v57j7i0f";
})];
};
xf86videovmware = attrs: attrs // { xf86videovmware = attrs: attrs // {
buildInputs = attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker buildInputs = attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker
}; };
@ -185,11 +192,7 @@ in
"--with-default-font-path= " # there were only paths containing "${prefix}", "--with-default-font-path= " # there were only paths containing "${prefix}",
# and there are no fonts in this package anyway # and there are no fonts in this package anyway
]; ];
patches = patches = [ ./xorgserver-xkbcomp-path.patch ];
[ ./xorgserver-dri-path.patch
./xorgserver-xkbcomp-path.patch
./xorgserver-cve-2013-4396.patch
];
buildInputs = attrs.buildInputs ++ [ xtrans ]; buildInputs = attrs.buildInputs ++ [ xtrans ];
propagatedBuildInputs = propagatedBuildInputs =
[ args.zlib args.udev args.mesa args.dbus.libs [ args.zlib args.udev args.mesa args.dbus.libs

View File

@ -77,7 +77,7 @@ mirror://xorg/individual/lib/libXrender-0.9.8.tar.bz2
mirror://xorg/individual/lib/libXres-1.0.7.tar.bz2 mirror://xorg/individual/lib/libXres-1.0.7.tar.bz2
mirror://xorg/X11R7.7/src/everything/libXScrnSaver-1.2.2.tar.bz2 mirror://xorg/X11R7.7/src/everything/libXScrnSaver-1.2.2.tar.bz2
mirror://xorg/individual/lib/libXt-1.1.4.tar.bz2 mirror://xorg/individual/lib/libXt-1.1.4.tar.bz2
mirror://xorg/X11R7.7/src/everything/libXtst-1.2.1.tar.bz2 mirror://xorg/individual/lib/libXtst-1.2.2.tar.bz2
mirror://xorg/individual/lib/libXv-1.0.8.tar.bz2 mirror://xorg/individual/lib/libXv-1.0.8.tar.bz2
mirror://xorg/individual/lib/libXvMC-1.0.8.tar.bz2 mirror://xorg/individual/lib/libXvMC-1.0.8.tar.bz2
mirror://xorg/individual/lib/libXxf86dga-1.1.4.tar.bz2 mirror://xorg/individual/lib/libXxf86dga-1.1.4.tar.bz2
@ -116,15 +116,15 @@ mirror://xorg/individual/driver/xf86-input-evdev-2.7.3.tar.bz2
mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2 mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-input-keyboard-1.6.1.tar.bz2 mirror://xorg/X11R7.7/src/everything/xf86-input-keyboard-1.6.1.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-input-mouse-1.7.2.tar.bz2 mirror://xorg/X11R7.7/src/everything/xf86-input-mouse-1.7.2.tar.bz2
mirror://xorg/individual/driver/xf86-input-synaptics-1.6.2.tar.bz2 mirror://xorg/individual/driver/xf86-input-synaptics-1.7.1.tar.bz2
mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2 mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2 mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2 mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2 mirror://xorg/individual/driver/xf86-video-ast-0.98.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-ati-7.1.0.tar.bz2 mirror://xorg/individual/driver/xf86-video-ati-7.1.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-cirrus-1.5.1.tar.bz2 mirror://xorg/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2 mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2
mirror://xorg/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2 mirror://xorg/individual/driver/xf86-video-fbdev-0.4.4.tar.bz2
mirror://xorg/individual/driver/xf86-video-geode-2.11.14.tar.bz2 mirror://xorg/individual/driver/xf86-video-geode-2.11.14.tar.bz2
mirror://xorg/individual/driver/xf86-video-glide-1.2.1.tar.bz2 mirror://xorg/individual/driver/xf86-video-glide-1.2.1.tar.bz2
mirror://xorg/individual/driver/xf86-video-glint-1.2.8.tar.bz2 mirror://xorg/individual/driver/xf86-video-glint-1.2.8.tar.bz2
@ -132,7 +132,7 @@ mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2
mirror://xorg/individual/driver/xf86-video-intel-2.21.9.tar.bz2 mirror://xorg/individual/driver/xf86-video-intel-2.21.9.tar.bz2
mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2 mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
mirror://xorg/individual/driver/xf86-video-mga-1.6.2.tar.bz2 mirror://xorg/individual/driver/xf86-video-mga-1.6.2.tar.bz2
mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2 mirror://xorg/individual/driver/xf86-video-neomagic-1.2.8.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2 mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2
mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2 mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2
mirror://xorg/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2 mirror://xorg/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
@ -146,7 +146,7 @@ mirror://xorg/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2
mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2 mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2
mirror://xorg/individual/driver/xf86-video-trident-1.3.6.tar.bz2 mirror://xorg/individual/driver/xf86-video-trident-1.3.6.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-video-v4l-0.2.0.tar.bz2 mirror://xorg/X11R7.7/src/everything/xf86-video-v4l-0.2.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-vesa-2.3.2.tar.bz2 mirror://xorg/individual/driver/xf86-video-vesa-2.3.3.tar.bz2
mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2 mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2
mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2 mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-video-wsfb-0.4.0.tar.bz2 mirror://xorg/X11R7.7/src/everything/xf86-video-wsfb-0.4.0.tar.bz2
@ -164,7 +164,7 @@ mirror://xorg/X11R7.7/src/everything/xlsatoms-1.1.1.tar.bz2
mirror://xorg/X11R7.7/src/everything/xlsclients-1.1.2.tar.bz2 mirror://xorg/X11R7.7/src/everything/xlsclients-1.1.2.tar.bz2
mirror://xorg/X11R7.7/src/everything/xmodmap-1.0.7.tar.bz2 mirror://xorg/X11R7.7/src/everything/xmodmap-1.0.7.tar.bz2
mirror://xorg/X11R7.7/src/everything/xorg-docs-1.7.tar.bz2 mirror://xorg/X11R7.7/src/everything/xorg-docs-1.7.tar.bz2
mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2 mirror://xorg/individual/xserver/xorg-server-1.14.5.tar.bz2
mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2 mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2 mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
mirror://xorg/X11R7.7/src/everything/xprop-1.2.1.tar.bz2 mirror://xorg/X11R7.7/src/everything/xprop-1.2.1.tar.bz2

View File

@ -1,75 +0,0 @@
From 7bddc2ba16a2a15773c2ea8947059afa27727764 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon, 16 Sep 2013 21:47:16 -0700
Subject: [PATCH] Avoid use-after-free in dix/dixfonts.c: doImageText()
[CVE-2013-4396]
Save a pointer to the passed in closure structure before copying it
and overwriting the *c pointer to point to our copy instead of the
original. If we hit an error, once we free(c), reset c to point to
the original structure before jumping to the cleanup code that
references *c.
Since one of the errors being checked for is whether the server was
able to malloc(c->nChars * itemSize), the client can potentially pass
a number of characters chosen to cause the malloc to fail and the
error path to be taken, resulting in the read from freed memory.
Since the memory is accessed almost immediately afterwards, and the
X server is mostly single threaded, the odds of the free memory having
invalid contents are low with most malloc implementations when not using
memory debugging features, but some allocators will definitely overwrite
the memory there, leading to a likely crash.
Reported-by: Pedro Ribeiro <pedrib@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
---
dix/dixfonts.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index feb765d..2e34d37 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1425,6 +1425,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
GC *pGC;
unsigned char *data;
ITclosurePtr new_closure;
+ ITclosurePtr old_closure;
/* We're putting the client to sleep. We need to
save some state. Similar problem to that handled
@@ -1436,12 +1437,14 @@ doImageText(ClientPtr client, ITclosurePtr c)
err = BadAlloc;
goto bail;
}
+ old_closure = c;
*new_closure = *c;
c = new_closure;
data = malloc(c->nChars * itemSize);
if (!data) {
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
@@ -1452,6 +1455,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
if (!pGC) {
free(c->data);
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
@@ -1464,6 +1468,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
FreeScratchGC(pGC);
free(c->data);
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
--
1.7.9.2

View File

@ -1,19 +0,0 @@
diff -Naur xorg-server-1.12.2-orig/glx/glxdricommon.c xorg-server-1.12.2/glx/glxdricommon.c
--- xorg-server-1.12.2-orig/glx/glxdricommon.c 2012-05-17 13:09:02.000000000 -0400
+++ xorg-server-1.12.2/glx/glxdricommon.c 2012-07-14 14:57:37.972791909 -0400
@@ -219,10 +219,14 @@
int i;
void *driver;
char filename[PATH_MAX];
+ char *real_dri_driver_path;
const __DRIextension **extensions;
+ real_dri_driver_path = getenv("XORG_DRI_DRIVER_PATH");
+ if (!real_dri_driver_path) real_dri_driver_path = dri_driver_path;
+
snprintf(filename, sizeof filename, "%s/%s_dri.so",
- dri_driver_path, driverName);
+ real_dri_driver_path, driverName);
driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
if (driver == NULL) {

View File

@ -1,34 +0,0 @@
From 6ca03b9161d33b1d2b55a3a1a913cf88deb2343f Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@gmail.com>
Date: Wed, 10 Apr 2013 06:09:01 +0000
Subject: xf86: fix flush input to work with Linux evdev devices.
So when we VT switch back and attempt to flush the input devices,
we don't succeed because evdev won't return part of an event,
since we were only asking for 4 bytes, we'd only get -EINVAL back.
This could later cause events to be flushed that we shouldn't have
gotten.
This is a fix for CVE-2013-1940.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
index ab3757a..4d08c1e 100644
--- a/hw/xfree86/os-support/shared/posix_tty.c
+++ b/hw/xfree86/os-support/shared/posix_tty.c
@@ -421,7 +421,8 @@ xf86FlushInput(int fd)
{
fd_set fds;
struct timeval timeout;
- char c[4];
+ /* this needs to be big enough to flush an evdev event. */
+ char c[256];
DebugF("FlushingSerial\n");
if (tcflush(fd, TCIFLUSH) == 0)
--
cgit v0.9.0.2-2-gbebe

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, xlibs, libvdpau }: { stdenv, fetchurl, pkgconfig, xlibs, libvdpau }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "vdpauinfo-0.0.6"; name = "vdpauinfo-0.1";
src = fetchurl { src = fetchurl {
url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz"; url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz";
sha256 = "0m2llqjnwh3x6y56hik3znym2mfk1haq81a15p54m60ngf0mvfsj"; sha256 = "17q1spsrd5i4jzhpacbs0bb4blf74j8s45rpg0znyc1yjfk5dj5h";
}; };
buildInputs = [ pkgconfig xlibs.libX11 libvdpau ]; buildInputs = [ pkgconfig xlibs.libX11 libvdpau ];

View File

@ -56,7 +56,6 @@ stdenv.mkDerivation rec {
do do
patch -p1 < $a patch -p1 < $a
done done
patch -p1 < ../xserver113.patch
autoreconf -vfi autoreconf -vfi
./configure $configureFlags --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx --prefix="$out" ./configure $configureFlags --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx --prefix="$out"
make TIGERVNC_SRCDIR=`pwd`/../.. make TIGERVNC_SRCDIR=`pwd`/../..

View File

@ -17,11 +17,13 @@ stdenv.mkDerivation rec {
./autogen.sh ./autogen.sh
''; '';
# work around a problem related to gtk3 updates
NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
postInstall = '' postInstall = ''
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://projects.gnome.org/NetworkManager/;
description = ""; description = "";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ iElectric ]; maintainers = with maintainers; [ iElectric ];

View File

@ -6,6 +6,7 @@
, libXt ? null , libXt ? null
, libXpm ? null , libXpm ? null
, libXaw ? null , libXaw ? null
, aquaterm ? false
, wxGTK ? null , wxGTK ? null
, pango ? null , pango ? null
, cairo ? null , cairo ? null
@ -15,7 +16,9 @@
, coreutils ? null }: , coreutils ? null }:
assert libX11 != null -> (fontconfig != null && gnused != null && coreutils != null); assert libX11 != null -> (fontconfig != null && gnused != null && coreutils != null);
let
withX = libX11 != null && !aquaterm;
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gnuplot-4.6.3"; name = "gnuplot-4.6.3";
@ -25,14 +28,18 @@ stdenv.mkDerivation rec {
}; };
buildInputs = buildInputs =
[ zlib gd texinfo readline emacs lua texLive libX11 libXt libXpm libXaw [ zlib gd texinfo readline emacs lua texLive
pango cairo pkgconfig makeWrapper ] pango cairo pkgconfig makeWrapper ]
++ stdenv.lib.optionals withX [ libX11 libXpm libXt libXaw ]
# compiling with wxGTK causes a malloc (double free) error on darwin # compiling with wxGTK causes a malloc (double free) error on darwin
++ stdenv.lib.optional (!stdenv.isDarwin) wxGTK; ++ stdenv.lib.optional (!stdenv.isDarwin) wxGTK;
configureFlags = if libX11 != null then ["--with-x"] else ["--without-x"]; configureFlags =
(if withX then ["--with-x"] else ["--without-x"])
++ (if aquaterm then ["--with-aquaterm"] else ["--without-aquaterm"])
;
postInstall = stdenv.lib.optionalString (libX11 != null) '' postInstall = stdenv.lib.optionalString withX ''
wrapProgram $out/bin/gnuplot \ wrapProgram $out/bin/gnuplot \
--prefix PATH : '${gnused}/bin' \ --prefix PATH : '${gnused}/bin' \
--prefix PATH : '${coreutils}/bin' \ --prefix PATH : '${coreutils}/bin' \

View File

@ -10,6 +10,11 @@ stdenv.mkDerivation {
sha256 = "0csx6g0ci66nx1a6z0a9dkpfp66mdvcpp5r7g6zrx4jp18r9hzb2"; sha256 = "0csx6g0ci66nx1a6z0a9dkpfp66mdvcpp5r7g6zrx4jp18r9hzb2";
}; };
postPatch = /* CVE-2005-2471, from Arch */ ''
substituteInPlace converter/other/pstopnm.c \
--replace '"-DSAFER"' '"-DPARANOIDSAFER"'
'';
NIX_CFLAGS_COMPILE = "-fPIC"; # Gentoo adds this on every platform NIX_CFLAGS_COMPILE = "-fPIC"; # Gentoo adds this on every platform
buildInputs = [ pkgconfig flex zlib perl libpng libjpeg libxml2 makeWrapper libX11 libtiff ]; buildInputs = [ pkgconfig flex zlib perl libpng libjpeg libxml2 makeWrapper libX11 libtiff ];
@ -18,9 +23,7 @@ stdenv.mkDerivation {
cp config.mk.in config.mk cp config.mk.in config.mk
substituteInPlace "config.mk" \ substituteInPlace "config.mk" \
--replace "TIFFLIB = NONE" "TIFFLIB = ${libtiff}/lib/libtiff.so" \ --replace "TIFFLIB = NONE" "TIFFLIB = ${libtiff}/lib/libtiff.so" \
--replace "TIFFHDR_DIR =" "TIFFHDR_DIR = ${libtiff}/include" \ --replace "TIFFHDR_DIR =" "TIFFHDR_DIR = ${libtiff}/include"
--replace "TIFFLIB_NEEDS_JPEG = Y" "TIFFLIB_NEEDS_JPEG = N" \
--replace "TIFFLIB_NEEDS_Z = Y" "TIFFLIB_NEEDS_Z = N"
''; '';
preBuild = '' preBuild = ''

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, glib }: { stdenv, fetchurl, pkgconfig, glib }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "desktop-file-utils-0.16"; name = "desktop-file-utils-0.22";
src = fetchurl { src = fetchurl {
url = "http://www.freedesktop.org/software/desktop-file-utils/releases/${name}.tar.bz2"; url = "http://www.freedesktop.org/software/desktop-file-utils/releases/${name}.tar.xz";
sha256 = "18y9am8n43rrnnldd1cy09ls39xz1gx3qczax2c4cjxayx5vwq3r"; sha256 = "1ianvr2a69yjv4rpyv30w7yjsmnsb23crrka5ndqxycj4rkk4dc4";
}; };
buildInputs = [ pkgconfig glib ]; buildInputs = [ pkgconfig glib ];

View File

@ -1,5 +1,5 @@
{ fetchurl, stdenv, sqlite, pkgconfig, xapian, glib, gmime, texinfo, emacs, guile { fetchurl, stdenv, sqlite, pkgconfig, xapian, glib, gmime, texinfo, emacs, guile
, gtk3, webkit, libsoup, icu }: , gtk3, webkit, libsoup, icu, withMug ? false /* doesn't build with current gtk3 */ }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.9.9.5"; version = "0.9.9.5";
@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
sha256 = "1hwkliyb8fjrz5sw9fcisssig0jkdxzhccw0ld0l9a10q1l9mqhp"; sha256 = "1hwkliyb8fjrz5sw9fcisssig0jkdxzhccw0ld0l9a10q1l9mqhp";
}; };
buildInputs = [ sqlite pkgconfig xapian glib gmime texinfo emacs guile buildInputs =
gtk3 webkit libsoup icu ]; [ sqlite pkgconfig xapian glib gmime texinfo emacs guile libsoup icu ]
++ stdenv.lib.optional withMug [ gtk3 webkit ];
preBuild = '' preBuild = ''
# Fix mu4e-builddir (set it to $out) # Fix mu4e-builddir (set it to $out)
@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
''; '';
# Install mug and msg2pdf # Install mug and msg2pdf
postInstall = '' postInstall = stdenv.lib.optionalString withMug ''
cp -v toys/msg2pdf/msg2pdf $out/bin/ cp -v toys/msg2pdf/msg2pdf $out/bin/
cp -v toys/mug/mug $out/bin/ cp -v toys/mug/mug $out/bin/
''; '';

View File

@ -1018,6 +1018,9 @@ let
else stdenv; else stdenv;
}; };
# must have AquaTerm installed separately
gnuplot_aquaterm = gnuplot.override { aquaterm = true; };
gnused = callPackage ../tools/text/gnused { }; gnused = callPackage ../tools/text/gnused { };
gnutar = callPackage ../tools/archivers/gnutar { }; gnutar = callPackage ../tools/archivers/gnutar { };
@ -4236,7 +4239,7 @@ let
geoclue = callPackage ../development/libraries/geoclue {}; geoclue = callPackage ../development/libraries/geoclue {};
geoclue2 = callPackage ../development/libraries/geoclue/2.0.nix { geoclue2 = callPackage ../development/libraries/geoclue/2.0.nix {
libsoup = libsoup_2_40; libsoup = libsoup_2_44;
}; };
geoip = builderDefsPackage ../development/libraries/geoip { geoip = builderDefsPackage ../development/libraries/geoip {
@ -4504,13 +4507,10 @@ let
glSupport = config.cairo.gl or (stdenv.isLinux && glSupport = config.cairo.gl or (stdenv.isLinux &&
!stdenv.isArm && !stdenv.isMips); !stdenv.isArm && !stdenv.isMips);
}; };
cairo_1_12_2 = callPackage ../development/libraries/cairo/1.12.2.nix { };
cairomm = callPackage ../development/libraries/cairomm { }; cairomm = callPackage ../development/libraries/cairomm { };
pango = callPackage ../development/libraries/pango { }; pango = callPackage ../development/libraries/pango { };
pangomm = callPackage ../development/libraries/pangomm/2.28.x.nix { pangomm = callPackage ../development/libraries/pangomm { };
cairo = cairo_1_12_2;
};
pangox_compat = callPackage ../development/libraries/pangox-compat { }; pangox_compat = callPackage ../development/libraries/pangox-compat { };
@ -4563,10 +4563,7 @@ let
heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { }; heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
harfbuzz = callPackage ../development/libraries/harfbuzz { harfbuzz = callPackage ../development/libraries/harfbuzz { };
icu = null;
graphite2 = null;
};
hawknl = callPackage ../development/libraries/hawknl { }; hawknl = callPackage ../development/libraries/hawknl { };
@ -4991,7 +4988,7 @@ let
libmowgli = callPackage ../development/libraries/libmowgli { }; libmowgli = callPackage ../development/libraries/libmowgli { };
libmng = callPackage ../development/libraries/libmng { lcms = lcms2; }; libmng = callPackage ../development/libraries/libmng { };
libmnl = callPackage ../development/libraries/libmnl { }; libmnl = callPackage ../development/libraries/libmnl { };
@ -5092,7 +5089,7 @@ let
libsodium = callPackage ../development/libraries/libsodium { }; libsodium = callPackage ../development/libraries/libsodium { };
libsoup = callPackage ../development/libraries/libsoup { }; libsoup = callPackage ../development/libraries/libsoup { };
libsoup_2_40 = callPackage ../development/libraries/libsoup/2.40.nix { }; libsoup_2_44 = callPackage ../development/libraries/libsoup/2.44.nix { };
libssh = callPackage ../development/libraries/libssh { }; libssh = callPackage ../development/libraries/libssh { };
@ -5186,7 +5183,8 @@ let
libwmf = callPackage ../development/libraries/libwmf { }; libwmf = callPackage ../development/libraries/libwmf { };
libwnck = callPackage ../development/libraries/libwnck { }; libwnck = libwnck2;
libwnck2 = callPackage ../development/libraries/libwnck { };
libwnck3 = callPackage ../development/libraries/libwnck/3.x.nix { }; libwnck3 = callPackage ../development/libraries/libwnck/3.x.nix { };
libwpd = callPackage ../development/libraries/libwpd { }; libwpd = callPackage ../development/libraries/libwpd { };
@ -5890,6 +5888,14 @@ let
bison = bison2; bison = bison2;
}; };
webkitgtk = callPackage ../development/libraries/webkitgtk {
stdenv = overrideGCC stdenv gcc47;
libsoup = libsoup_2_44;
harfbuzz = harfbuzz.override {
withIcu = true;
};
};
wildmidi = callPackage ../development/libraries/wildmidi { }; wildmidi = callPackage ../development/libraries/wildmidi { };
wvstreams = callPackage ../development/libraries/wvstreams { }; wvstreams = callPackage ../development/libraries/wvstreams { };
@ -9135,11 +9141,7 @@ let
gnutls = gnutls32; gnutls = gnutls32;
}; };
weston = callPackage ../applications/window-managers/weston { weston = callPackage ../applications/window-managers/weston { };
cairo = cairo.override {
glSupport = true;
};
};
windowmaker = callPackage ../applications/window-managers/windowmaker { }; windowmaker = callPackage ../applications/window-managers/windowmaker { };
@ -9658,9 +9660,18 @@ let
### DESKTOP ENVIRONMENTS ### DESKTOP ENVIRONMENTS
cinnamon = recurseIntoAttrs { cinnamon = recurseIntoAttrs rec {
cinnamon-translations = callPackage ../desktops/cinnamon/cinnamon-translations.nix { }; callPackage = newScope pkgs.cinnamon;
}; inherit (gnome3) gnome_common;
cinnamon-session = callPackage ../desktops/cinnamon/cinnamon-session.nix{ } ;
cinnamon-desktop = callPackage ../desktops/cinnamon/cinnamon-desktop.nix { };
cinnamon-translations = callPackage ../desktops/cinnamon/cinnamon-translations.nix { };
cjs = callPackage ../desktops/cinnamon/cjs.nix { };
};
enlightenment = callPackage ../desktops/enlightenment { }; enlightenment = callPackage ../desktops/enlightenment { };
@ -10334,7 +10345,7 @@ let
libXmu libXext xextproto libSM libICE; libXmu libXext xextproto libSM libICE;
ghostscript = ghostscriptX; ghostscript = ghostscriptX;
harfbuzz = harfbuzz.override { harfbuzz = harfbuzz.override {
inherit icu graphite2; withIcu = true; withGraphite2 = true;
}; };
}; };