mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-25 20:34:52 +03:00
changes proposed for 'release-13.10' into x-updates
Conflicts (simple, taking whole higher/later versions): pkgs/development/libraries/gtk+/2.x.nix pkgs/development/libraries/mesa/default.nix pkgs/development/libraries/polkit/default.nix
This commit is contained in:
commit
f448cc022b
@ -140,7 +140,7 @@
|
||||
tape = 25;
|
||||
video = 26;
|
||||
dialout = 27;
|
||||
polkituser = 28;
|
||||
#polkituser = 28; # currently unused, polkitd doesn't need a group
|
||||
utmp = 29;
|
||||
davfs2 = 31;
|
||||
privoxy = 32;
|
||||
|
@ -33,7 +33,7 @@ with pkgs.lib;
|
||||
system.defaultChannel = mkOption {
|
||||
internal = true;
|
||||
type = types.str;
|
||||
default = https://nixos.org/channels/nixos-unstable;
|
||||
default = https://nixos.org/channels/nixos-13.10;
|
||||
description = "Default NixOS channel to which the root user is subscribed.";
|
||||
};
|
||||
|
||||
|
@ -18,35 +18,17 @@ in
|
||||
description = "Whether to enable PolKit.";
|
||||
};
|
||||
|
||||
security.polkit.permissions = mkOption {
|
||||
security.polkit.extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example =
|
||||
''
|
||||
[Disallow Users To Suspend]
|
||||
Identity=unix-group:users
|
||||
Action=org.freedesktop.upower.*
|
||||
ResultAny=no
|
||||
ResultInactive=no
|
||||
ResultActive=no
|
||||
|
||||
[Allow Anybody To Eject Disks]
|
||||
Identity=unix-user:*
|
||||
Action=org.freedesktop.udisks.drive-eject
|
||||
ResultAny=yes
|
||||
ResultInactive=yes
|
||||
ResultActive=yes
|
||||
|
||||
[Allow Alice To Mount Filesystems After Admin Authentication]
|
||||
Identity=unix-user:alice
|
||||
Action=org.freedesktop.udisks.filesystem-mount
|
||||
ResultAny=auth_admin
|
||||
ResultInactive=auth_admin
|
||||
ResultActive=auth_admin
|
||||
TODO
|
||||
'';
|
||||
description =
|
||||
''
|
||||
Allows the default permissions of privileged actions to be overridden.
|
||||
Any polkit rules to be added to config (in JavaScript ;-). See:
|
||||
http://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html#polkit-rules
|
||||
'';
|
||||
};
|
||||
|
||||
@ -71,29 +53,23 @@ in
|
||||
|
||||
environment.systemPackages = [ pkgs.polkit ];
|
||||
|
||||
# The polkit daemon reads action files
|
||||
environment.pathsToLink = [ "/share/polkit-1/actions" ];
|
||||
systemd.packages = [ pkgs.polkit ];
|
||||
|
||||
environment.etc =
|
||||
[ # No idea what the "null backend" is, but it seems to need this.
|
||||
{ source = "${pkgs.polkit}/etc/polkit-1/nullbackend.conf.d";
|
||||
target = "polkit-1/nullbackend.conf.d";
|
||||
}
|
||||
# The polkit daemon reads action/rule files
|
||||
environment.pathsToLink = [ "/share/polkit-1" ];
|
||||
|
||||
# This file determines what users are considered
|
||||
# "administrators".
|
||||
{ source = pkgs.writeText "10-nixos.conf"
|
||||
''
|
||||
[Configuration]
|
||||
AdminIdentities=${cfg.adminIdentities}
|
||||
'';
|
||||
target = "polkit-1/localauthority.conf.d/10-nixos.conf";
|
||||
}
|
||||
# PolKit rules for NixOS
|
||||
environment.etc = [ {
|
||||
source = pkgs.writeText "10-nixos.conf"
|
||||
''
|
||||
polkit.addAdminRule(function(action, subject) {
|
||||
return ["${cfg.adminIdentities}"];
|
||||
});
|
||||
|
||||
{ source = pkgs.writeText "org.nixos.pkla" cfg.permissions;
|
||||
target = "polkit-1/localauthority/10-vendor.d/org.nixos.pkla";
|
||||
}
|
||||
];
|
||||
${cfg.extraConfig}
|
||||
''; #TODO: validation on compilation (at least against typos)
|
||||
target = "polkit-1/rules.d/10-nixos.conf";
|
||||
} ];
|
||||
|
||||
services.dbus.packages = [ pkgs.polkit ];
|
||||
|
||||
@ -101,24 +77,31 @@ in
|
||||
|
||||
security.setuidPrograms = [ "pkexec" ];
|
||||
|
||||
security.setuidOwners = singleton
|
||||
security.setuidOwners = [
|
||||
{ program = "polkit-agent-helper-1";
|
||||
owner = "root";
|
||||
group = "root";
|
||||
setuid = true;
|
||||
source = "${pkgs.polkit}/libexec/polkit-1/polkit-agent-helper-1";
|
||||
};
|
||||
source = "${pkgs.polkit}/lib/polkit-1/polkit-agent-helper-1";
|
||||
}
|
||||
];
|
||||
|
||||
system.activationScripts.polkit =
|
||||
''
|
||||
mkdir -p /var/lib/polkit-1/localauthority
|
||||
chmod 700 /var/lib/polkit-1{/localauthority,}
|
||||
# Probably no more needed, clean up
|
||||
rm -rf /var/lib/{polkit-1,PolicyKit}
|
||||
|
||||
# Force polkitd to be restarted so that it reloads its
|
||||
# configuration.
|
||||
${pkgs.procps}/bin/pkill -INT -u root -x polkitd
|
||||
'';
|
||||
|
||||
users.extraUsers.polkituser = {
|
||||
description = "PolKit daemon";
|
||||
uid = config.ids.uids.polkituser;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ let
|
||||
level=WARN
|
||||
'';
|
||||
|
||||
polkitConf = ''
|
||||
/*
|
||||
[network-manager]
|
||||
Identity=unix-group:networkmanager
|
||||
Action=org.freedesktop.NetworkManager.*
|
||||
@ -35,6 +35,17 @@ let
|
||||
ResultAny=yes
|
||||
ResultInactive=no
|
||||
ResultActive=yes
|
||||
*/
|
||||
polkitConf = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (
|
||||
subject.isInGroup("networkmanager")
|
||||
&& subject.active
|
||||
&& (action.id.indexOf("org.freedesktop.NetworkManager.") == 0
|
||||
|| action.id.indexOf("org.freedesktop.ModemManager.") == 0
|
||||
))
|
||||
{ return polkit.Result.YES; }
|
||||
});
|
||||
'';
|
||||
|
||||
ipUpScript = writeScript "01nixos-ip-up" ''
|
||||
@ -179,7 +190,7 @@ in {
|
||||
systemctl restart NetworkManager
|
||||
'';
|
||||
|
||||
security.polkit.permissions = polkitConf;
|
||||
security.polkit.extraConfig = polkitConf;
|
||||
|
||||
# openvpn plugin has only dbus interface
|
||||
services.dbus.packages = cfg.packages ++ [
|
||||
|
@ -39,16 +39,6 @@ let
|
||||
exec > ~/.xsession-errors 2>&1
|
||||
''}
|
||||
|
||||
${optionalString cfg.displayManager.desktopManagerHandlesLidAndPower ''
|
||||
# Stop systemd from handling the power button and lid switch,
|
||||
# since presumably the desktop environment will handle these.
|
||||
if [ -z "$_INHIBITION_LOCK_TAKEN" ]; then
|
||||
export _INHIBITION_LOCK_TAKEN=1
|
||||
exec ${config.systemd.package}/bin/systemd-inhibit --what=handle-lid-switch:handle-power-key "$0" "$sessionType"
|
||||
fi
|
||||
|
||||
''}
|
||||
|
||||
${optionalString cfg.startOpenSSHAgent ''
|
||||
if test -z "$SSH_AUTH_SOCK"; then
|
||||
# Restart this script as a child of the SSH agent. (It is
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl_gnome }:
|
||||
{ stdenv, fetchurl, fetchurl_gnome, which }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = src.pkgname;
|
||||
@ -8,4 +8,11 @@ stdenv.mkDerivation rec {
|
||||
major = "2"; minor = "34"; patchlevel = "0";
|
||||
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";
|
||||
})];
|
||||
}
|
||||
|
@ -8,11 +8,11 @@ assert xineramaSupport -> xlibs.libXinerama != null;
|
||||
assert cupsSupport -> cups != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gtk+-2.24.21";
|
||||
name = "gtk+-2.24.22";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.xz";
|
||||
sha256 = "1qyw73pr9ryqhir2h1kbx3vm70km4dg2fxrgkrdlpv0rvlb94bih";
|
||||
sha256 = "0zxf810znlk80j230rbr0xscx3gm71jmf2bdiamg76rqzglvc55i";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -42,6 +42,7 @@ stdenv.mkDerivation {
|
||||
patches = [
|
||||
./static-gallium.patch
|
||||
./dricore-gallium.patch
|
||||
./werror-wundef.patch
|
||||
];
|
||||
|
||||
# Change the search path for EGL drivers from $drivers/* to driverLink
|
||||
|
12
pkgs/development/libraries/mesa/werror-wundef.patch
Normal file
12
pkgs/development/libraries/mesa/werror-wundef.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -rupN Mesa-9.2.0-orig/include/GL/gl.h Mesa-9.2.0/include/GL/gl.h
|
||||
--- Mesa-9.2.0-orig/include/GL/gl.h 2013-08-14 03:34:42.000000000 +0200
|
||||
+++ Mesa-9.2.0/include/GL/gl.h 2013-09-24 19:34:58.319140812 +0200
|
||||
@@ -2088,7 +2088,7 @@ typedef void (APIENTRYP PFNGLMULTITEXCOO
|
||||
|
||||
|
||||
|
||||
-#if GL_ARB_shader_objects
|
||||
+#if defined(GL_ARB_shaders_objects) && GL_ARB_shader_objects
|
||||
|
||||
#ifndef GL_MESA_shader_debug
|
||||
#define GL_MESA_shader_debug 1
|
@ -1,16 +1,15 @@
|
||||
{ stdenv, fetchurl, pkgconfig, glib, expat, pam, intltool, spidermonkey
|
||||
, gobjectIntrospection
|
||||
, gobjectIntrospection, libxslt, docbook_xsl
|
||||
, useSystemd ? stdenv.isLinux, systemd }:
|
||||
|
||||
let
|
||||
|
||||
system = "/var/run/current-system/sw";
|
||||
setuid = "/var/setuid-wrappers"; #TODO: from <nixos> config.security.wrapperDir;
|
||||
|
||||
foolVars = {
|
||||
LOCALSTATE = "/var";
|
||||
SYSCONF = "/etc";
|
||||
LIB = "${system}/lib";
|
||||
DATA = "${system}/share";
|
||||
DATA = "${system}/share"; # to find share/polkit-1/actions of other apps at runtime
|
||||
};
|
||||
|
||||
in
|
||||
@ -25,41 +24,44 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs =
|
||||
[ pkgconfig glib expat pam intltool spidermonkey gobjectIntrospection ]
|
||||
++ [ libxslt docbook_xsl ] # man pages
|
||||
++ stdenv.lib.optional useSystemd systemd;
|
||||
|
||||
# Ugly hack to overwrite hardcoded directories
|
||||
# TODO: investigate a proper patch which will be accepted upstream
|
||||
# After update it's good to check the sources via:
|
||||
# grep '\<PACKAGE_' '--include=*.[ch]' -R
|
||||
CFLAGS = stdenv.lib.concatStringsSep " "
|
||||
( map (var: ''-DPACKAGE_${var}_DIR=\""${builtins.getAttr var foolVars}"\"'')
|
||||
(builtins.attrNames foolVars) );
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs .
|
||||
'' + stdenv.lib.optionalString useSystemd /* bogus chroot detection */ ''
|
||||
sed '/libsystemd-login autoconfigured, but system does not appear to use systemd/s/.*/:/' -i configure
|
||||
''
|
||||
# ‘libpolkit-agent-1.so’ should call the setuid wrapper on
|
||||
# NixOS. Hard-coding the path is kinda ugly. Maybe we can just
|
||||
# call through $PATH, but that might have security implications.
|
||||
+ ''
|
||||
substituteInPlace src/polkitagent/polkitagentsession.c \
|
||||
--replace 'PACKAGE_PREFIX "/lib/polkit-1/' '"${setuid}/'
|
||||
'';
|
||||
|
||||
# TODO: Distro/OS detection is impure
|
||||
configureFlags = [
|
||||
"--libexecdir=$(out)/libexec/polkit-1"
|
||||
#"--libexecdir=$(out)/libexec/polkit-1" # this and localstatedir are ignored by configure
|
||||
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
|
||||
"--with-polkitd-user=polkituser" #TODO? <nixos> config.ids.uids.polkituser
|
||||
"--with-os-type=NixOS" # not recognized but prevents impurities on non-NixOS
|
||||
];
|
||||
|
||||
preBuild =
|
||||
''
|
||||
# ‘libpolkit-agent-1.so’ should call the setuid wrapper on
|
||||
# NixOS. Hard-coding the path is kinda ugly. Maybe we can just
|
||||
# call through $PATH, but that might have security implications.
|
||||
substituteInPlace src/polkitagent/polkitagentsession.c \
|
||||
--replace PACKAGE_LIBEXEC_DIR '"/var/setuid-wrappers"'
|
||||
'';
|
||||
|
||||
makeFlags =
|
||||
''
|
||||
INTROSPECTION_GIRDIR=$(out)/share/gir-1.0
|
||||
INTROSPECTION_TYPELIBDIR=$(out)lib/girepository-1.0
|
||||
'';
|
||||
|
||||
postInstall =
|
||||
''
|
||||
# Allow some files with paranoid permissions to be stripped in
|
||||
# the fixup phase.
|
||||
chmod a+rX -R $out
|
||||
'';
|
||||
#doCheck = true; # some /bin/bash problem that isn't auto-solved by patchShebangs
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.freedesktop.org/wiki/Software/polkit;
|
||||
|
@ -33,6 +33,9 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0f51dbgn1dcck8pqimls2qyf1pfmsmyknh767cvw87c3d218ywpb";
|
||||
};
|
||||
|
||||
# The version property must be kept because it will be included into the QtSDK package name
|
||||
version = vers;
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace configure --replace /bin/pwd pwd
|
||||
substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
|
||||
|
157
pkgs/development/libraries/qt-5/default.nix
Normal file
157
pkgs/development/libraries/qt-5/default.nix
Normal file
@ -0,0 +1,157 @@
|
||||
{ stdenv, fetchurl, substituteAll, libXrender, libXext
|
||||
, libXfixes, freetype, fontconfig, zlib, libjpeg, libpng
|
||||
, mesaSupported, mesa, mesa_glu, openssl, dbus, cups, pkgconfig
|
||||
, libtiff, glib, icu, mysql, postgresql, sqlite, perl, coreutils, libXi
|
||||
, gdk_pixbuf, python, gdb, xlibs, libX11, libxcb, xcbutil, xcbutilimage
|
||||
, xcbutilkeysyms, xcbutilwm,udev, libxml2, libxslt, pcre, libxkbcommon
|
||||
, alsaLib, gstreamer, gst_plugins_base
|
||||
, pulseaudio, bison, flex, gperf, ruby, libwebp
|
||||
, flashplayerFix ? false
|
||||
, gtkStyle ? false, libgnomeui, gtk, GConf, gnome_vfs
|
||||
, buildDocs ? false
|
||||
, buildExamples ? false
|
||||
, buildTests ? true
|
||||
, developerBuild ? false
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
v_maj = "5.1";
|
||||
v_min = "1";
|
||||
ver = "${v_maj}.${v_min}";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qt-${ver}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.qt-project.org/official_releases/qt/"
|
||||
+ "${v_maj}/${ver}/single/qt-everywhere-opensource-src-${ver}.tar.gz";
|
||||
sha256 = "4c05742db52325e96b1d610a2388140dcc1e3d03d93faea2b2d3791015b186f6";
|
||||
};
|
||||
|
||||
# The version property must be kept because it will be included into the QtSDK package name
|
||||
version = ver;
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace configure --replace /bin/pwd pwd
|
||||
substituteInPlace qtbase/configure --replace /bin/pwd pwd
|
||||
substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
|
||||
sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf
|
||||
'';
|
||||
|
||||
patches =
|
||||
[ ./glib-2.32.patch
|
||||
(substituteAll {
|
||||
src = ./dlopen-absolute-paths.patch;
|
||||
inherit cups icu libXfixes;
|
||||
glibc = stdenv.gcc.libc;
|
||||
openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
|
||||
})
|
||||
] ++ optional gtkStyle (substituteAll {
|
||||
src = ./dlopen-gtkstyle.patch;
|
||||
# substituteAll ignores env vars starting with capital letter
|
||||
gconf = GConf;
|
||||
inherit gnome_vfs libgnomeui gtk;
|
||||
})
|
||||
++ optional flashplayerFix (substituteAll {
|
||||
src = ./dlopen-webkit-nsplugin.patch;
|
||||
inherit gtk gdk_pixbuf;
|
||||
});
|
||||
|
||||
preConfigure = ''
|
||||
export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$PWD/qttools/lib:$LD_LIBRARY_PATH"
|
||||
export MAKEFLAGS=-j$NIX_BUILD_CORES
|
||||
'';
|
||||
|
||||
prefixKey = "-prefix ";
|
||||
|
||||
# -no-eglfs, -no-directfb, -no-linuxfb and -no-kms because of the current minimalist mesa
|
||||
# TODO Remove obsolete and useless flags once the build will be totally mastered
|
||||
configureFlags = ''
|
||||
-verbose
|
||||
-confirm-license
|
||||
-opensource
|
||||
|
||||
-release
|
||||
-shared
|
||||
-c++11
|
||||
${optionalString developerBuild "-developer-build"}
|
||||
-largefile
|
||||
-accessibility
|
||||
-rpath
|
||||
-optimized-qmake
|
||||
-strip
|
||||
-reduce-relocations
|
||||
-force-debug-info
|
||||
-no-separate-debug-info
|
||||
-system-proxies
|
||||
|
||||
-gui
|
||||
-widgets
|
||||
-opengl desktop
|
||||
-javascript-jit
|
||||
-qml-debug
|
||||
-nis
|
||||
-iconv
|
||||
-icu
|
||||
-pch
|
||||
-glib
|
||||
-xcb
|
||||
-qpa xcb
|
||||
-${optionalString (cups == null) "no-"}cups
|
||||
|
||||
-no-eglfs
|
||||
-no-directfb
|
||||
-no-linuxfb
|
||||
-no-kms
|
||||
|
||||
-system-zlib
|
||||
-system-libpng
|
||||
-system-libjpeg
|
||||
-system-xcb
|
||||
-system-xkbcommon
|
||||
-openssl-linked
|
||||
-dbus-linked
|
||||
|
||||
-system-sqlite
|
||||
-${if mysql != null then "plugin" else "no"}-sql-mysql
|
||||
-${if postgresql != null then "plugin" else "no"}-sql-psql
|
||||
|
||||
-make libs
|
||||
-make tools
|
||||
-${optionalString (buildExamples == false) "no"}make examples
|
||||
-${optionalString (buildTests == false) "no"}make tests
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
xlibs.libXcomposite libX11 libxcb libXext libXrender libXi
|
||||
fontconfig freetype openssl dbus.libs glib udev libxml2 libxslt pcre
|
||||
zlib libjpeg libpng libtiff sqlite icu
|
||||
libwebp alsaLib gstreamer gst_plugins_base pulseaudio
|
||||
xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon
|
||||
]
|
||||
# Qt doesn't directly need GLU (just GL), but many apps use, it's small and
|
||||
# doesn't remain a runtime-dep if not used
|
||||
++ optionals mesaSupported [ mesa mesa_glu ]
|
||||
++ optional (cups != null) cups
|
||||
++ optional (mysql != null) mysql
|
||||
++ optional (postgresql != null) postgresql;
|
||||
|
||||
buildInputs = [ gdb bison flex gperf ruby ];
|
||||
|
||||
nativeBuildInputs = [ python perl pkgconfig ];
|
||||
|
||||
postInstall = if buildDocs then "make docs&&make install_docs" else "";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://qt-project.org;
|
||||
description = "A cross-platform application framework for C++";
|
||||
license = "GPL/LGPL";
|
||||
maintainers = [ maintainers.bbenoist ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
36
pkgs/development/libraries/qt-5/dlopen-absolute-paths.patch
Normal file
36
pkgs/development/libraries/qt-5/dlopen-absolute-paths.patch
Normal file
@ -0,0 +1,36 @@
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/network/kernel/qhostinfo_unix.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/network/kernel/qhostinfo_unix.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/network/kernel/qhostinfo_unix.cpp 2013-08-25 20:03:35.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/network/kernel/qhostinfo_unix.cpp 2013-09-25 17:43:14.047015411 +0200
|
||||
@@ -93,7 +93,7 @@
|
||||
static void resolveLibrary()
|
||||
{
|
||||
#if !defined(QT_NO_LIBRARY) && !defined(Q_OS_QNX)
|
||||
- QLibrary lib(QLatin1String("resolv"));
|
||||
+ QLibrary lib(QLatin1String("@glibc@/lib/libresolv"));
|
||||
if (!lib.load())
|
||||
return;
|
||||
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp 2013-08-25 20:03:35.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp 2013-09-25 17:51:29.834674976 +0200
|
||||
@@ -379,7 +379,7 @@
|
||||
{
|
||||
extern const QString qt_gl_library_name();
|
||||
// QLibrary lib(qt_gl_library_name());
|
||||
- QLibrary lib(QLatin1String("GL"));
|
||||
+ QLibrary lib(QLatin1String("@openglDriver@/lib/libGL"));
|
||||
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
|
||||
}
|
||||
}
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/printsupport/kernel/qcups.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/printsupport/kernel/qcups.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/printsupport/kernel/qcups.cpp 2013-08-25 20:03:36.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/printsupport/kernel/qcups.cpp 2013-09-25 17:40:35.895942599 +0200
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
static void resolveCups()
|
||||
{
|
||||
- QLibrary cupsLib(QLatin1String("cups"), 2);
|
||||
+ QLibrary cupsLib(QLatin1String("@cups@/lib/libcups"), 2);
|
||||
if(cupsLib.load()) {
|
||||
_cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests");
|
||||
_cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests");
|
36
pkgs/development/libraries/qt-5/dlopen-gtkstyle.patch
Normal file
36
pkgs/development/libraries/qt-5/dlopen-gtkstyle.patch
Normal file
@ -0,0 +1,36 @@
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/widgets/styles/qgtkstyle_p.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/widgets/styles/qgtkstyle_p.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/widgets/styles/qgtkstyle_p.cpp 2013-08-25 20:03:30.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/widgets/styles/qgtkstyle_p.cpp 2013-09-25 17:58:04.229373681 +0200
|
||||
@@ -348,7 +348,7 @@
|
||||
void QGtkStylePrivate::resolveGtk() const
|
||||
{
|
||||
// enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0
|
||||
- QLibrary libgtk(QLS("gtk-x11-2.0"), 0, 0);
|
||||
+ QLibrary libgtk(QLS("@gtk@/lib/libgtk-x11-2.0"), 0, 0);
|
||||
|
||||
gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init");
|
||||
gtk_window_new = (Ptr_gtk_window_new)libgtk.resolve("gtk_window_new");
|
||||
@@ -461,8 +461,8 @@
|
||||
pango_font_description_get_family = (Ptr_pango_font_description_get_family)libgtk.resolve("pango_font_description_get_family");
|
||||
pango_font_description_get_style = (Ptr_pango_font_description_get_style)libgtk.resolve("pango_font_description_get_style");
|
||||
|
||||
- gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLS("gnomeui-2"), 0, "gnome_icon_lookup_sync");
|
||||
- gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLS("gnomevfs-2"), 0, "gnome_vfs_init");
|
||||
+ gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLS("@libgnomeui@/lib/libgnomeui-2"), 0, "gnome_icon_lookup_sync");
|
||||
+ gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLS("@gnome_vfs@/lib/libgnomevfs-2"), 0, "gnome_vfs_init");
|
||||
}
|
||||
|
||||
/* \internal
|
||||
@@ -630,9 +630,9 @@
|
||||
static bool resolveGConf()
|
||||
{
|
||||
if (!QGtkStylePrivate::gconf_client_get_default) {
|
||||
- QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_default");
|
||||
- QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_string");
|
||||
- QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_bool");
|
||||
+ QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_default");
|
||||
+ QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_string");
|
||||
+ QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_bool");
|
||||
}
|
||||
return (QGtkStylePrivate::gconf_client_get_default !=0);
|
||||
}
|
36
pkgs/development/libraries/qt-5/dlopen-webkit-nsplugin.patch
Normal file
36
pkgs/development/libraries/qt-5/dlopen-webkit-nsplugin.patch
Normal file
@ -0,0 +1,36 @@
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp 2013-08-25 20:04:47.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp 2013-09-25 17:59:45.925363807 +0200
|
||||
@@ -132,7 +132,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- QLibrary library(QLatin1String("libgtk-x11-2.0"), 0);
|
||||
+ QLibrary library(QLatin1String("@gtk@/lib/libgtk-x11-2.0"), 0);
|
||||
if (library.load()) {
|
||||
typedef void *(*gtk_init_check_ptr)(int*, char***);
|
||||
gtk_init_check_ptr gtkInitCheck = (gtk_init_check_ptr)library.resolve("gtk_init_check");
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp 2013-08-25 20:04:47.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp 2013-09-25 18:00:29.551215155 +0200
|
||||
@@ -702,7 +702,7 @@
|
||||
// support gdk based plugins (like flash) that use a different X connection.
|
||||
// The code below has the same effect as this one:
|
||||
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
|
||||
- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
|
||||
+ QLibrary library(QLatin1String("@gdk_pixbuf@/lib/libgdk-x11-2.0"), 0);
|
||||
if (!library.load())
|
||||
return 0;
|
||||
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp 2013-08-25 20:04:42.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp 2013-09-25 18:04:54.955408293 +0200
|
||||
@@ -64,7 +64,7 @@
|
||||
// The code below has the same effect as this one:
|
||||
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
|
||||
|
||||
- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
|
||||
+ QLibrary library(QLatin1String("@gdk_pixbuf@/libgdk-x11-2.0"), 0);
|
||||
if (!library.load())
|
||||
return 0;
|
||||
|
12
pkgs/development/libraries/qt-5/glib-2.32.patch
Normal file
12
pkgs/development/libraries/qt-5/glib-2.32.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h qt-everywhere-opensource-src-5.1.1/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h 2013-08-25 20:04:35.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h 2013-09-25 18:09:22.154639482 +0200
|
||||
@@ -81,7 +81,7 @@
|
||||
#include <pthread.h>
|
||||
#elif PLATFORM(GTK)
|
||||
#include <wtf/gtk/GOwnPtr.h>
|
||||
-typedef struct _GMutex GMutex;
|
||||
+typedef union _GMutex GMutex;
|
||||
typedef struct _GCond GCond;
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, cmake, mesa, libX11, xproto, libXt
|
||||
, useQt4 ? false, qt4 }:
|
||||
, qtLib ? null }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
@ -11,22 +11,22 @@ let
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "vtk-${os useQt4 "qvtk-"}${version}";
|
||||
name = "vtk-${os (qtLib != null) "qvtk-"}${version}";
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}files/release/${majorVersion}/vtk-${version}.tar.gz";
|
||||
md5 = "a0363f78910f466ba8f1bd5ab5437cb9";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake mesa libX11 xproto libXt ]
|
||||
++ optional useQt4 qt4;
|
||||
++ optional (qtLib != null) qtLib;
|
||||
|
||||
# Shared libraries don't work, because of rpath troubles with the current
|
||||
# nixpkgs camke approach. It wants to call a binary at build time, just
|
||||
# built and requiring one of the shared objects.
|
||||
# At least, we use -fPIC for other packages to be able to use this in shared
|
||||
# objects.
|
||||
cmakeFlags = [ "-DCMAKE_C_FLAGS=-fPIC" "-DCMAKE_CXX_FLAGS=-fPIC" ] ++ optional useQt4
|
||||
[ "-DVTK_USE_QT:BOOL=ON" ];
|
||||
cmakeFlags = [ "-DCMAKE_C_FLAGS=-fPIC" "-DCMAKE_CXX_FLAGS=-fPIC" ]
|
||||
++ optional (qtLib != null) [ "-DVTK_USE_QT:BOOL=ON" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
@ -1,30 +1,39 @@
|
||||
{ stdenv, fetchurl, qt48 }:
|
||||
{ stdenv, fetchurl, qtLib, sdkBuild ? false }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
baseVersion = "2.8";
|
||||
revision = "0";
|
||||
revision = "1";
|
||||
version = "${baseVersion}.${revision}";
|
||||
qt4_for_qtcreator = qt48.override {
|
||||
developerBuild = true;
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qtcreator-${version}";
|
||||
# The package name depends on wether we are just building the QtCreator package or the whole Qt SDK
|
||||
# If we are building the QtCreator package: qtcreator-version
|
||||
# If we are building the QtSDK package, the Qt version is also included: qtsdk-version-qt-version
|
||||
name = "qt${if sdkBuild then "sdk" else "creator"}-${version}"
|
||||
+ optionalString sdkBuild "-qt-${qtLib.version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.qt-project.org/official_releases/qtcreator/${baseVersion}/${version}/qt-creator-${version}-src.tar.gz";
|
||||
sha256 = "7ac5d9a36c2f561f74d77378d4eae95a78c7752b323e1df924d6e895e99f45d2";
|
||||
sha256 = "d5ae007a297a4288d0e95fd605edbfb8aee80f6788c7a6cfb9cb297f50c364b9";
|
||||
};
|
||||
|
||||
buildInputs = [ qt4_for_qtcreator ];
|
||||
# This property can be used in a nix development environment to refer to the Qt package
|
||||
# eg: export QTDIR=${qtSDK.qt}
|
||||
qt = qtLib;
|
||||
|
||||
# We must only propagate Qt (including qmake) when building the QtSDK
|
||||
propagatedBuildInputs = if sdkBuild then [ qtLib ] else [];
|
||||
buildInputs = if sdkBuild == false then [ qtLib ] else [];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
qmake -spec linux-g++ "QT_PRIVATE_HEADERS=${qt4_for_qtcreator}/include" qtcreator.pro
|
||||
qmake -spec linux-g++ "QT_PRIVATE_HEADERS=${qtLib}/include" qtcreator.pro
|
||||
'';
|
||||
|
||||
installFlags = "INSTALL_ROOT=$(out)";
|
||||
@ -38,7 +47,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
homepage = "http://qt-project.org/wiki/Category:Tools::QtCreator";
|
||||
license = "LGPL";
|
||||
maintainers = [ stdenv.lib.maintainers.bbenoist ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = [ maintainers.bbenoist ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -5480,6 +5480,35 @@ let
|
||||
docs = true;
|
||||
demos = true;
|
||||
examples = true;
|
||||
developerBuild = true;
|
||||
};
|
||||
|
||||
qt4SDK = qtcreator.override {
|
||||
sdkBuild = true;
|
||||
qtLib = qt48Full;
|
||||
};
|
||||
|
||||
qt5 = callPackage ../development/libraries/qt-5 {
|
||||
mesa = mesa_noglu;
|
||||
cups = if stdenv.isLinux then cups else null;
|
||||
# GNOME dependencies are not used unless gtkStyle == true
|
||||
inherit (gnome) libgnomeui GConf gnome_vfs;
|
||||
};
|
||||
|
||||
qt5Full = qt5.override {
|
||||
buildDocs = true;
|
||||
buildExamples = true;
|
||||
buildTests = true;
|
||||
developerBuild = true;
|
||||
};
|
||||
|
||||
qt5SDK = qtcreator.override {
|
||||
sdkBuild = true;
|
||||
qtLib = qt5Full;
|
||||
};
|
||||
|
||||
qtcreator = callPackage ../development/qtcreator {
|
||||
qtLib = qt48.override { developerBuild = true; };
|
||||
};
|
||||
|
||||
qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
|
||||
@ -5744,7 +5773,7 @@ let
|
||||
|
||||
vtk = callPackage ../development/libraries/vtk { };
|
||||
|
||||
vtkWithQt4 = vtk.override { useQt4 = true; };
|
||||
vtkWithQt4 = vtk.override { qtLib = qt4; };
|
||||
|
||||
vxl = callPackage ../development/libraries/vxl {
|
||||
libpng = libpng12;
|
||||
@ -8573,8 +8602,6 @@ let
|
||||
|
||||
qsynth = callPackage ../applications/audio/qsynth { };
|
||||
|
||||
qtcreator = callPackage ../development/qtcreator { };
|
||||
|
||||
qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
|
||||
|
||||
qtractor = callPackage ../applications/audio/qtractor { };
|
||||
|
Loading…
Reference in New Issue
Block a user