--- qemu-2.4.0/configure.orig	2015-09-08 17:26:11.547929800 +0200
+++ qemu-2.4.0/configure	2015-09-08 17:27:46.275401600 +0200
@@ -572,7 +572,7 @@
 CYGWIN*)
   mingw32="yes"
   QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
-  audio_possible_drivers="sdl"
+  audio_possible_drivers="dsound sdl"
   audio_drv_list="sdl"
 ;;
 MINGW32*)
--- qemu-2.4.0/Makefile.objs.orig	2015-08-11 21:11:05.000000000 +0200
+++ qemu-2.4.0/Makefile.objs	2015-09-08 17:26:18.994674400 +0200
@@ -11,7 +11,7 @@
 block-obj-y += nbd.o block.o blockjob.o
 block-obj-y += main-loop.o iohandler.o qemu-timer.o
 block-obj-$(CONFIG_POSIX) += aio-posix.o
-block-obj-$(CONFIG_WIN32) += aio-win32.o
+block-obj-$(CONFIG_WIN32) += aio-win32.o version.o
 block-obj-y += block/
 block-obj-y += qemu-io-cmds.o
 
--- qemu-2.4.0/Makefile.orig	2015-08-11 21:11:05.000000000 +0200
+++ qemu-2.4.0/Makefile	2015-09-09 14:01:58.483252100 +0200
@@ -181,7 +181,7 @@
 	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pixman V="$(V)" all,)
 
 pixman/Makefile: $(SRC_PATH)/pixman/configure
-	(cd pixman; CFLAGS="$(CFLAGS) -fPIC $(extra_cflags) $(extra_ldflags)" $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-gtk --disable-shared --enable-static)
+	(cd pixman; CFLAGS="$(CFLAGS)  $(extra_cflags) $(extra_ldflags)" $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-gtk --disable-shared --enable-static)
 
 $(SRC_PATH)/pixman/configure:
 	(cd $(SRC_PATH)/pixman; autoreconf -v --install)
@@ -220,15 +220,15 @@
 libqemuutil.a: $(util-obj-y)
 
 block-modules = $(foreach o,$(block-obj-m),"$(basename $(subst /,-,$o))",) NULL
-util/module.o-cflags = -D'CONFIG_BLOCK_MODULES=$(block-modules)'
+util/module.o-cflags = -DCONFIG_BLOCK_MODULES=$(block-modules)
 
 ######################################################################
 
 qemu-img.o: qemu-img-cmds.h
 
-qemu-img$(EXESUF): qemu-img.o $(block-obj-y) libqemuutil.a libqemustub.a
-qemu-nbd$(EXESUF): qemu-nbd.o $(block-obj-y) libqemuutil.a libqemustub.a
-qemu-io$(EXESUF): qemu-io.o $(block-obj-y) libqemuutil.a libqemustub.a
+qemu-img$(EXESUF): qemu-img.o $(block-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a
+qemu-nbd$(EXESUF): qemu-nbd.o $(block-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a
+qemu-io$(EXESUF): qemu-io.o $(block-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a
 
 qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
 
@@ -597,11 +597,12 @@
 	makensis $(nsisflags) \
                 $(if $(BUILD_DOCS),-DCONFIG_DOCUMENTATION="y") \
                 $(if $(CONFIG_GTK),-DCONFIG_GTK="y") \
-                -DBINDIR="${INSTDIR}" \
+                -DBINDIR=`cygpath -w "${INSTDIR}"` \
+                -DCONFSUFFIX="/Bios" \
                 $(if $(DLL_PATH),-DDLLDIR="$(DLL_PATH)") \
-                -DSRCDIR="$(SRC_PATH)" \
-                -DOUTFILE="$(INSTALLER)" \
-                $(SRC_PATH)/qemu.nsi
+                -DSRCDIR=`cygpath -w "$(SRC_PATH)"` \
+                -DOUTFILE=`cygpath -w "$(INSTALLER)"` \
+                `cygpath -w $(SRC_PATH)/qemu.nsi`
 	rm -r ${INSTDIR}
 ifdef SIGNCODE
 	$(SIGNCODE) $(INSTALLER)
--- qemu-2.4.0/po/fr_FR.po.orig	2015-08-11 21:11:09.000000000 +0200
+++ qemu-2.4.0/po/fr_FR.po	2015-09-14 10:38:46.412198400 +0200
@@ -1,86 +1,86 @@
-# French translation for QEMU.
 # This file is put in the public domain.
 #
 # Aurelien Jarno <aurelien@aurel32.net>, 2013, 2014.
+# Eric Lassauge <lassauge@users.sf.net>, 2014-2015. Still not displaying correctly the accents :-(
 msgid ""
 msgstr ""
-"Project-Id-Version: QEMU 1.4.50\n"
+"Project-Id-Version: QEMU 2.4.0\n"
 "Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
-"POT-Creation-Date: 2014-07-28 23:14+0200\n"
-"PO-Revision-Date: 2014-07-28 23:25+0200\n"
-"Last-Translator: Aurelien Jarno <aurelien@aurel32.net>\n"
+"POT-Creation-Date: 2015-09-14 10:20+0100\n"
+"PO-Revision-Date: 2015-09-14 10:35+0100\n"
+"Last-Translator: Eric Lassauge <lassauge@gmail.com>\n"
 "Language-Team: French <FR@li.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: Poedit 1.7.1\n"
 
-#: ui/gtk.c:321
+#: ui/gtk.c:271
 msgid " - Press Ctrl+Alt+G to release grab"
-msgstr "- Appuyer sur Ctrl+Alt+G pour arrêter la capture"
+msgstr "- Appuyez sur Ctrl+Alt+G pour arreter la capture"
 
-#: ui/gtk.c:325
+#: ui/gtk.c:275
 msgid " [Paused]"
 msgstr " [En pause]"
 
-#: ui/gtk.c:1601
+#: ui/gtk.c:1739
 msgid "_Pause"
 msgstr "_Pause"
 
-#: ui/gtk.c:1607
+#: ui/gtk.c:1745
 msgid "_Reset"
-msgstr "_Réinitialiser"
+msgstr "_Re-initialiser"
 
-#: ui/gtk.c:1610
+#: ui/gtk.c:1748
 msgid "Power _Down"
-msgstr "_Éteindre"
+msgstr "Et_eindre"
 
-#: ui/gtk.c:1616
+#: ui/gtk.c:1754
 msgid "_Quit"
 msgstr "_Quitter"
 
-#: ui/gtk.c:1692
+#: ui/gtk.c:1838
 msgid "_Fullscreen"
-msgstr "Mode _plein écran"
+msgstr "Mode _plein ecran"
 
-#: ui/gtk.c:1702
+#: ui/gtk.c:1852
 msgid "Zoom _In"
 msgstr "Zoom _avant"
 
-#: ui/gtk.c:1709
+#: ui/gtk.c:1859
 msgid "Zoom _Out"
-msgstr "_Zoom arrière"
+msgstr "Zoom a_rriere"
 
-#: ui/gtk.c:1716
+#: ui/gtk.c:1866
 msgid "Best _Fit"
-msgstr "Zoom _idéal"
+msgstr "Zoom _ideal"
 
-#: ui/gtk.c:1723
+#: ui/gtk.c:1873
 msgid "Zoom To _Fit"
 msgstr "Zoomer pour a_juster"
 
-#: ui/gtk.c:1729
+#: ui/gtk.c:1879
 msgid "Grab On _Hover"
 msgstr "Capturer en _survolant"
 
-#: ui/gtk.c:1732
+#: ui/gtk.c:1882
 msgid "_Grab Input"
-msgstr "_Capturer les entrées"
+msgstr "_Capturer les entrees"
 
-#: ui/gtk.c:1761
+#: ui/gtk.c:1911
 msgid "Show _Tabs"
 msgstr "Montrer les _onglets"
 
-#: ui/gtk.c:1764
+#: ui/gtk.c:1914
 msgid "Detach Tab"
-msgstr "_Détacher l'onglet"
+msgstr "_Detacher l'onglet"
 
-#: ui/gtk.c:1778
+#: ui/gtk.c:1926
 msgid "_Machine"
 msgstr "_Machine"
 
-#: ui/gtk.c:1783
+#: ui/gtk.c:1931
 msgid "_View"
 msgstr "_Vue"
--- qemu-2.4.0/qemu.nsi.orig	2015-08-11 21:11:09.000000000 +0200
+++ qemu-2.4.0/qemu.nsi	2015-09-08 17:26:19.245699500 +0200
@@ -28,6 +28,12 @@
 !ifndef BINDIR
 !define BINDIR nsis.tmp
 !endif
+!ifndef CONFSUFFIX
+!define CONFSUFFIX ""
+!endif
+!ifndef CONFDIR
+!define CONFDIR "${BINDIR}${CONFSUFFIX}"
+!endif
 !ifndef SRCDIR
 !define SRCDIR .
 !endif
@@ -119,13 +125,13 @@
     File "${SRCDIR}\README"
     File "${SRCDIR}\VERSION"
 
-    File "${BINDIR}\*.bmp"
-    File "${BINDIR}\*.bin"
-    File "${BINDIR}\*.dtb"
-    File "${BINDIR}\*.rom"
-    File "${BINDIR}\openbios-*"
+    File "${CONFDIR}\*.bmp"
+    File "${CONFDIR}\*.bin"
+    File "${CONFDIR}\*.dtb"
+    File "${CONFDIR}\*.rom"
+    File "${CONFDIR}\openbios-*"
 
-    File /r "${BINDIR}\keymaps"
+    File /r "${CONFDIR}\keymaps"
 !ifdef CONFIG_GTK
     File /r "${BINDIR}\share"
 !endif
@@ -167,11 +173,12 @@
 !ifdef CONFIG_DOCUMENTATION
 Section "Documentation" SectionDoc
     SetOutPath "$INSTDIR"
-    File "${BINDIR}\qemu-doc.html"
-    File "${BINDIR}\qemu-tech.html"
+    File "${BINDIR}\Doc\qemu-doc.html"
+    File "${BINDIR}\Doc\qemu-tech.html"
+	;; File "${BINDIR}\Doc\*.txt"
     CreateDirectory "$SMPROGRAMS\${PRODUCT}"
-    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\qemu-doc.html" "" "$INSTDIR\qemu-doc.html" 0
-    CreateShortCut "$SMPROGRAMS\${PRODUCT}\Technical Documentation.lnk" "$INSTDIR\qemu-tech.html" "" "$INSTDIR\qemu-tech.html" 0
+    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\Doc\qemu-doc.html" "" "$INSTDIR\Doc\qemu-doc.html" 0
+    CreateShortCut "$SMPROGRAMS\${PRODUCT}\Technical Documentation.lnk" "$INSTDIR\Doc\qemu-tech.html" "" "$INSTDIR\Doc\qemu-tech.html" 0
 SectionEnd
 !endif
 
@@ -205,19 +212,19 @@
     Delete "$INSTDIR\COPYING.LIB"
     Delete "$INSTDIR\README"
     Delete "$INSTDIR\VERSION"
-    Delete "$INSTDIR\*.bmp"
-    Delete "$INSTDIR\*.bin"
-    Delete "$INSTDIR\*.dll"
-    Delete "$INSTDIR\*.dtb"
-    Delete "$INSTDIR\*.rom"
-    Delete "$INSTDIR\openbios-*"
+    Delete "${CONFDIR}\*.bmp"
+    Delete "${CONFDIR}\*.bin"
+    Delete "${CONFDIR}\*.dll"
+    Delete "${CONFDIR}\*.dtb"
+    Delete "${CONFDIR}\*.rom"
+    Delete "${CONFDIR}\openbios-*"
     Delete "$INSTDIR\qemu-img.exe"
     Delete "$INSTDIR\qemu-io.exe"
     Delete "$INSTDIR\qemu.exe"
     Delete "$INSTDIR\qemu-system-*.exe"
-    Delete "$INSTDIR\qemu-doc.html"
-    Delete "$INSTDIR\qemu-tech.html"
-    RMDir /r "$INSTDIR\keymaps"
+    Delete "$INSTDIR\Doc\qemu-doc.html"
+    Delete "$INSTDIR\Doc\qemu-tech.html"
+    RMDir /r "${CONFDIR}\keymaps"
     RMDir /r "$INSTDIR\share"
     ; Remove generated files
     Delete "$INSTDIR\stderr.txt"
--- qemu-2.4.0/rules.mak.orig	2015-08-11 21:11:09.000000000 +0200
+++ qemu-2.4.0/rules.mak	2015-09-08 17:26:19.305705500 +0200
@@ -17,7 +17,7 @@
 QEMU_CXXFLAGS = -D__STDC_LIMIT_MACROS $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wredundant-decls, $(QEMU_CFLAGS))
 
 # Flags for dependency generation
-QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
+QEMU_DGFLAGS =
 
 # Same as -I$(SRC_PATH) -I., but for the nested source/object directories
 QEMU_INCLUDES += -I$(<D) -I$(@D)
@@ -56,7 +56,7 @@
 %.o: %.c
 	$(call quiet-command,$(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $($@-cflags) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
 %.o: %.rc
-	$(call quiet-command,$(WINDRES) -I. -o $@ $<,"  RC    $(TARGET_DIR)$@")
+	$(call quiet-command,$(WINDRES) -I. -o  '$(shell cygpath -w $@)' '$(shell cygpath -w $<)',"  RC    $(TARGET_DIR)$@")
 
 # If we have a CXX we might have some C++ objects, in which case we
 # must link with the C++ compiler, not the plain C compiler.
@@ -71,7 +71,7 @@
 %.lo: %.c
 	$(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $($*.o-cflags) -c -o $@ $<,"  lt CC $@")
 %.lo: %.rc
-	$(call quiet-command,$(LIBTOOL) --mode=compile --tag=RC $(WINDRES) -I. -o $@ $<,"lt RC   $(TARGET_DIR)$@")
+	$(call quiet-command,$(LIBTOOL) --mode=compile --tag=RC $(WINDRES) -I. -o '$(shell cygpath -w $@)' '$(shell cygpath -w $<)',"lt RC   $(TARGET_DIR)$@")
 %.lo: %.dtrace
 	$(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN $(TARGET_DIR)$@")
 
--- qemu-2.4.0/ui/gtk.c.orig	2015-08-11 21:11:13.000000000 +0200
+++ qemu-2.4.0/ui/gtk.c	2015-09-14 10:43:31.834737800 +0200
@@ -55,6 +55,12 @@
 #include "sysemu/char.h"
 #include "qom/object.h"
 
+#ifdef _WIN32
+#ifndef MAPVK_VK_TO_VSC
+#define MAPVK_VK_TO_VSC     0
+#endif
+#endif
+
 #define MAX_VCS 10
 #define VC_WINDOW_X_MIN  320
 #define VC_WINDOW_Y_MIN  240
@@ -163,6 +169,11 @@
     bool modifier_pressed[ARRAY_SIZE(modifier_keycode)];
     bool has_evdev;
     bool ignore_keys;
+#if defined(INPUT_NEEDS_ALTGR_FIX)
+    /* win32 alt-gr handling */
+    bool l_ctrl_down;
+    bool r_alt_down;
+#endif
 };
 
 static void gd_grab_pointer(VirtualConsole *vc);
@@ -903,12 +914,28 @@
 
 #ifdef GDK_WINDOWING_WIN32
     if (GDK_IS_WIN32_DISPLAY(dpy)) {
+        /*
+           testing for right ctrl and right alt and give corresponding code.
+           for all other keystrokes, scan code is given by MapVirtualKey.
+           (MapVirtualKey maps same code for left and right ctrl and alt keys)
+         */
+        switch (gdk_keycode) {
+        case 0xa3: // r-ctrl
+            qemu_keycode = 0x9d;
+            break;
+        case 0xa5: // r-alt
+            qemu_keycode = 0xb8;
+            break;
+        default:
         qemu_keycode = MapVirtualKey(gdk_keycode, MAPVK_VK_TO_VSC);
+            /* FIXME: is following check still needed? */
         switch (qemu_keycode) {
         case 103:   /* alt gr */
             qemu_keycode = 56 | SCANCODE_GREY;
             break;
         }
+            break;
+        }
         return qemu_keycode;
     }
 #endif
@@ -984,6 +1011,30 @@
         }
     }
 
+#if defined(INPUT_NEEDS_ALTGR_FIX)
+    /* Windows maps altgr key to l-ctrl + r-alt.
+       For proper handling in the guest, only r-alt is to be sent.
+       This is done by sending a fake "ctrl up" event when appropriate. */
+    switch (qemu_keycode) {
+    case 0x1d: /* l-ctrl */
+        if (!s->l_ctrl_down && s->r_alt_down) {
+            /* fake ctrl up already sent */
+            return TRUE;
+        }
+        s->l_ctrl_down = (key->type == GDK_KEY_PRESS);
+        break;
+    case 0xb8: /* r-alt */
+        if (s->l_ctrl_down && !s->r_alt_down &&
+                key->type == GDK_KEY_PRESS) {
+            /* sending fake "ctrl up" event */
+            qemu_input_event_send_key_number(vc->gfx.dcl.con, 0x1d, FALSE);
+            s->l_ctrl_down = FALSE;
+        }
+        s->r_alt_down = (key->type == GDK_KEY_PRESS);
+        break;
+    }
+#endif
+
     qemu_input_event_send_key_number(vc->gfx.dcl.con, qemu_keycode,
                                      key->type == GDK_KEY_PRESS);
 
@@ -1942,8 +1993,16 @@
     s->free_scale = FALSE;
 
     setlocale(LC_ALL, "");
-    bindtextdomain("qemu", CONFIG_QEMU_LOCALEDIR);
     textdomain("qemu");
+#ifdef CONFIG_WIN32
+    char *execdirname = qemu_get_exec_dir();
+    char *dirname = g_strdup_printf("%s\\share\\locale",execdirname);
+    bindtextdomain("qemu",dirname);
+    g_free(dirname);
+    g_free(execdirname);
+#else
+    bindtextdomain("qemu", CONFIG_QEMU_LOCALEDIR);
+#endif
 
     window_display = gtk_widget_get_display(s->window);
     s->null_cursor = gdk_cursor_new_for_display(window_display,
--- qemu-2.4.0/ui/vnc-enc-tight.c.orig	2015-08-11 21:11:13.000000000 +0200
+++ qemu-2.4.0/ui/vnc-enc-tight.c	2015-09-08 17:26:19.452720200 +0200
@@ -50,6 +50,8 @@
 #include "vnc-enc-tight.h"
 #include "vnc-palette.h"
 
+typedef unsigned int uint;
+
 /* Compression level stuff. The following array contains various
    encoder parameters for each of 10 compression levels (0..9).
    Last three parameters correspond to JPEG quality levels (0..9). */
--- qemu-2.4.0/version.rc.orig	2015-08-11 21:11:14.000000000 +0200
+++ qemu-2.4.0/version.rc	2015-09-08 17:26:19.507725700 +0200
@@ -1,6 +1,7 @@
 #include <winver.h>
 #include "config-host.h"
 
+500 ICON "qemu.ico"
 VS_VERSION_INFO VERSIONINFO
 FILEVERSION CONFIG_FILEVERSION
 PRODUCTVERSION CONFIG_PRODUCTVERSION