<commit_before>{ 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
, libpulseaudio, bison, flex, gperf, ruby, libwebp, libXcursor
, flashplayerFix ? false
, gtkStyle ? false, libgnomeui, gtk, GConf, gnome_vfs
, buildDocs ? false
, buildExamples ? false
, buildTests ? false
, developerBuild ? false
}:

with stdenv.lib;

let
  v_maj = "5.3";
  v_min = "2";
  ver = "${v_maj}.${v_min}";
in

let system-x86_64 = elem stdenv.system platforms.x86_64; 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 = "0b98n2jl62dyqxwn1gdj9xmk8wrrdxnazr65fdk5qw1hmlpgvly8";
  };

  # The version property must be kept because it will be included into the QtSDK package name
  version = ver;

  prePatch = ''
    substituteInPlace configure --replace /bin/pwd pwd
    substituteInPlace qtbase/configure --replace /bin/pwd pwd
    substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
    substituteInPlace qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \
        --replace /usr/share/X11/locale ${libX11}/share/X11/locale \
        --replace /usr/lib/X11/locale ${libX11}/share/X11/locale
    sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf
  '';

  patches =
    optional gtkStyle
      (substituteAll {
        src = ./0001-dlopen-gtkstyle.patch;
        # substituteAll ignores env vars starting with capital letter
        gconf = GConf;
        inherit gnome_vfs libgnomeui gtk;
      })
    ++ optional flashplayerFix
      (substituteAll {
        src = ./0002-dlopen-webkit-nsplugin.patch;
        inherit gtk gdk_pixbuf;
      })
    ++ optional flashplayerFix
      (substituteAll {
        src = ./0007-dlopen-webkit-gtk.patch;
        inherit gtk;
      })
    ++ [
      ./0003-glib-2.32.patch
      (substituteAll {
        src = ./0004-dlopen-resolv.patch;
        glibc = stdenv.cc.libc;
      })
      (substituteAll {
        src = ./0005-dlopen-gl.patch;
        openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
      })
      ./0006-tzdir.patch
      (substituteAll { src = ./0008-dlopen-webkit-udev.patch; inherit udev; })
      (substituteAll { src = ./0009-dlopen-serialport-udev.patch; inherit udev; })
      (substituteAll { src = ./0010-dlopen-libXcursor.patch; inherit libXcursor; })
      (substituteAll { src = ./0011-dlopen-openssl.patch; inherit openssl; })
      (substituteAll { src = ./0012-dlopen-dbus.patch; dbus_libs = dbus; })
      ./0013-qtwebkit-glib-2.44.patch
    ];

  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<commit_msg>qt53: sync plugin/import/qml dirs with qt54<commit_after>{ 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
, libpulseaudio, bison, flex, gperf, ruby, libwebp, libXcursor
, flashplayerFix ? false
, gtkStyle ? false, libgnomeui, gtk, GConf, gnome_vfs
, buildDocs ? false
, buildExamples ? false
, buildTests ? false
, developerBuild ? false
}:

with stdenv.lib;

let
  v_maj = "5.3";
  v_min = "2";
  ver = "${v_maj}.${v_min}";
in

let system-x86_64 = elem stdenv.system platforms.x86_64; 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 = "0b98n2jl62dyqxwn1gdj9xmk8wrrdxnazr65fdk5qw1hmlpgvly8";
  };

  # The version property must be kept because it will be included into the QtSDK package name
  version = ver;

  prePatch = ''
    substituteInPlace configure --replace /bin/pwd pwd
    substituteInPlace qtbase/configure --replace /bin/pwd pwd
    substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
    substituteInPlace qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \
        --replace /usr/share/X11/locale ${libX11}/share/X11/locale \
        --replace /usr/lib/X11/locale ${libX11}/share/X11/locale
    sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf
  '';

  patches =
    optional gtkStyle
      (substituteAll {
        src = ./0001-dlopen-gtkstyle.patch;
        # substituteAll ignores env vars starting with capital letter
        gconf = GConf;
        inherit gnome_vfs libgnomeui gtk;
      })
    ++ optional flashplayerFix
      (substituteAll {
        src = ./0002-dlopen-webkit-nsplugin.patch;
        inherit gtk gdk_pixbuf;
      })
    ++ optional flashplayerFix
      (substituteAll {
        src = ./0007-dlopen-webkit-gtk.patch;
        inherit gtk;
      })
    ++ [
      ./0003-glib-2.32.patch
      (substituteAll {
        src = ./0004-dlopen-resolv.patch;
        glibc = stdenv.cc.libc;
      })
      (substituteAll {
        src = ./0005-dlopen-gl.patch;
        openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
      })
      ./0006-tzdir.patch
      (substituteAll { src = ./0008-dlopen-webkit-udev.patch; inherit udev; })
      (substituteAll { src = ./0009-dlopen-serialport-udev.patch; inherit udev; })
      (substituteAll { src = ./0010-dlopen-libXcursor.patch; inherit libXcursor; })
      (substituteAll { src = ./0011-dlopen-openssl.patch; inherit openssl; })
      (substituteAll { src = ./0012-dlopen-dbus.patch; dbus_libs = dbus; })
      ./0013-qtwebkit-glib-2.44.patch
    ];

  preConfigure = ''
    export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$PWD/qttools/lib:$LD_LIBRARY_PATH"
    export MAKEFLAGS=-j$NIX_BUILD_CORES
    export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml"
  '';

  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
{'fraction_non_alphanumeric': 0.1298941798941799, 'fraction_numerical': 0.028174603174603175, 'mean_word_length': 3.0111405835543765, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3393188', 'n_tokens_mistral': 2914, 'n_tokens_neox': 2699, 'n_words': 547}