summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorMateusz Łukasik <mati75@linuxmint.pl>2016-08-31 15:54:30 +0200
committerMateusz Łukasik <mati75@linuxmint.pl>2016-08-31 15:54:30 +0200
commitee3770c3849e4aa9702432e7b83646b5a33ed82a (patch)
tree431ecd34f02a822f4039d4a6af93fc1bf157b892 /win32
parent6f99159ef80694a47b9e7acae189efa7702b3148 (diff)
Imported Upstream version 3.8~beta2
Diffstat (limited to 'win32')
-rw-r--r--win32/audacious.nsi.in131
-rw-r--r--win32/merge.sh41
-rw-r--r--win32/notes.html537
-rw-r--r--win32/override/README.txt.in88
-rw-r--r--win32/override/etc/gtk-2.0/gtkrc1
-rw-r--r--win32/override/share/icons/gnome/16x16/apps/audacious.pngbin0 -> 517 bytes
-rw-r--r--win32/patches/fluidsynth.diff36
-rw-r--r--win32/patches/gcontenttype-win32.c.diff32
-rw-r--r--win32/patches/gdkwindow-win32.c.diff15
-rw-r--r--win32/patches/ggettext.c.diff66
-rw-r--r--win32/patches/gwin32appinfo.c.diff35
-rw-r--r--win32/patches/gwin32networking.h.diff23
-rw-r--r--win32/patches/libbs2b-makefile.am.diff11
-rw-r--r--win32/patches/libcdio-util.c.diff21
-rw-r--r--win32/patches/libcue-install-dll.diff11
-rw-r--r--win32/patches/libfaad-main.c.diff10
-rw-r--r--win32/patches/libfaad-makefile.am.diff11
-rw-r--r--win32/patches/libmms-strndup.diff44
-rw-r--r--win32/patches/wavpack-4.80.diff137
19 files changed, 1250 insertions, 0 deletions
diff --git a/win32/audacious.nsi.in b/win32/audacious.nsi.in
new file mode 100644
index 0000000..37333f0
--- /dev/null
+++ b/win32/audacious.nsi.in
@@ -0,0 +1,131 @@
+; audacious.nsi
+; Copyright 2013-2016 Carlo Bramini and John Lindgren
+;
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are met:
+;
+; 1. Redistributions of source code must retain the above copyright notice,
+; this list of conditions, and the following disclaimer.
+;
+; 2. Redistributions in binary form must reproduce the above copyright notice,
+; this list of conditions, and the following disclaimer in the documentation
+; provided with the distribution.
+;
+; This software is provided "as is" and without any warranty, express or
+; implied. In no event shall the authors be liable for any damages arising from
+; the use of this software.
+
+; Imports
+!include "MUI2.nsh"
+
+; Version
+!define VERSION "@PACKAGE_VERSION@"
+
+; Program name
+Name "Audacious ${VERSION}"
+
+; Installer file name
+OutFile "audacious-${VERSION}-win32.exe"
+
+; Location of local build
+!define BUILDDIR "C:\aud-win32"
+
+; Installer icon
+!define MUI_ICON "..\images\audacious.ico"
+!define MUI_UNICON "..\images\audacious.ico"
+
+; Installer options
+RequestExecutionLevel admin
+SetCompressor /SOLID lzma
+
+; Default installation directory
+InstallDir "$PROGRAMFILES\Audacious"
+
+; Registry uninstall key
+!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Audacious"
+
+; Path to uninstaller
+!define UNINSTALLER "$INSTDIR\uninstall.exe"
+
+; Installer pages
+!insertmacro MUI_PAGE_LICENSE "${BUILDDIR}\README.txt"
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+
+; Uninstaller pages
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+; Languages
+!insertmacro MUI_LANGUAGE "English"
+
+Section "Audacious" InstallSection
+ SectionIn 1 2 RO
+
+ SetOutPath "$INSTDIR"
+ File "${BUILDDIR}\README.txt"
+
+ RMDir /r "$INSTDIR\bin"
+ SetOutPath "$INSTDIR\bin"
+ File /r "${BUILDDIR}\bin\*.*"
+
+ RMDir /r "$INSTDIR\etc"
+ SetOutPath "$INSTDIR\etc"
+ File /r "${BUILDDIR}\etc\*.*"
+
+ RMDir /r "$INSTDIR\lib"
+ SetOutPath "$INSTDIR\lib"
+ File /r "${BUILDDIR}\lib\*.*"
+
+ RMDir /r "$INSTDIR\share"
+ SetOutPath "$INSTDIR\share"
+ File /r "${BUILDDIR}\share\*.*"
+
+ ; create uninstaller
+ WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "Audacious"
+ WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${VERSION}"
+ WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "Audacious developers"
+ WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "${UNINSTALLER}"
+ WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "${UNINSTALLER}"
+ WriteRegDWORD HKLM "${UNINST_KEY}" "NoModify" 1
+ WriteRegDWORD HKLM "${UNINST_KEY}" "NoRepair" 1
+
+ ; estimate installed size
+ SectionGetSize InstallSection $0
+ WriteRegDWORD HKLM "${UNINST_KEY}" "EstimatedSize" $0
+
+ WriteUninstaller ${UNINSTALLER}
+
+SectionEnd
+
+; Optional sections
+Section "Add to Start Menu" StartMenuSection
+ SectionIn 1 2
+
+ SetShellVarContext all
+ SetOutPath "$INSTDIR\bin" ; sets the shortcut's working directory
+ CreateShortCut "$SMPROGRAMS\Audacious.lnk" "$INSTDIR\bin\audacious.exe"
+
+SectionEnd
+
+Section "Add to Desktop" DesktopSection
+ SectionIn 1 2
+
+ SetShellVarContext all
+ SetOutPath "$INSTDIR\bin" ; sets the shortcut's working directory
+ CreateShortCut "$DESKTOP\Audacious.lnk" "$INSTDIR\bin\audacious.exe"
+
+SectionEnd
+
+Section "Uninstall" UninstallSection
+
+ RMDir /r "$INSTDIR"
+
+ SetShellVarContext all
+ Delete "$SMPROGRAMS\Audacious.lnk"
+ Delete "$DESKTOP\Audacious.lnk"
+
+ DeleteRegKey HKLM "${UNINST_KEY}"
+
+SectionEnd
diff --git a/win32/merge.sh b/win32/merge.sh
new file mode 100644
index 0000000..018af5c
--- /dev/null
+++ b/win32/merge.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# Quick-and-dirty script for updating a Windows release folder
+
+cd /C/aud-win32
+for i in `find -type f` ; do
+ if test -f /C/audacious/win32/override/$i ; then
+ cp /C/audacious/win32/override/$i $i
+ elif test -f /C/MinGW/$i ; then
+ cp /C/MinGW/$i $i
+ elif test -f /C/GTK/$i ; then
+ cp /C/GTK/$i $i
+ elif test -f /C/libs/$i ; then
+ cp /C/libs/$i $i
+ elif test -f /C/aud/$i ; then
+ cp /C/aud/$i $i
+ else
+ echo Not found: $i
+ fi
+done
+
+for i in `find -name *.dll` ; do strip -s $i ; done
+for i in `find -name *.exe` ; do strip -s $i ; done
+
+rm -rf /C/aud-win32/share/locale
+
+cd /C/GTK
+for i in `find ./share/locale -name gtk20.mo` ; do
+ mkdir -p /C/aud-win32/${i%%/gtk20.mo}
+ cp $i /C/aud-win32/$i
+done
+
+cd /C/aud
+for i in `find ./share/locale -name audacious.mo` ; do
+ mkdir -p /C/aud-win32/${i%%/audacious.mo}
+ cp $i /C/aud-win32/$i
+done
+for i in `find ./share/locale -name audacious-plugins.mo` ; do
+ mkdir -p /C/aud-win32/${i%%/audacious-plugins.mo}
+ cp $i /C/aud-win32/$i
+done
diff --git a/win32/notes.html b/win32/notes.html
new file mode 100644
index 0000000..1dc8c90
--- /dev/null
+++ b/win32/notes.html
@@ -0,0 +1,537 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+<title>Notes for Building Audacious on Windows</title>
+</head>
+<body>
+
+<h2>Notes for Building Audacious on Windows</h2>
+
+<p><em>John Lindgren<br>
+May 16, 2015</em></p>
+
+<p>Several patch files should accompany this document.</p>
+
+<h3>Set up system paths</h3>
+
+<p>Under <em>My Computer -> Properties -> Advanced -> Environment Variables</em>, set:</p>
+<blockquote><p><tt>PATH=C:\MinGW\bin;C:\MinGW\msys\1.0\bin;C:\Python27;C:\CMake\bin;C:\GTK\bin;C:\libs\bin;C:\aud\bin<br>
+PKG_CONFIG_PATH=/C/GTK/lib/pkgconfig:/C/libs/lib/pkgconfig:/C/aud/lib/pkgconfig<br>
+C_INCLUDE_PATH=/C/GTK/include:/C/libs/include<br>
+CPLUS_INCLUDE_PATH=/C/GTK/include:/C/libs/include<br>
+LIBRARY_PATH=/C/GTK/lib:/C/libs/lib</tt></p></blockquote>
+
+<h3>Install MinGW</h3>
+
+<p>Download and run:<br>
+<a href="http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download">
+<tt>http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download</tt></a></p>
+
+<p>In the MinGW Installation Manager window, install the following packages:</p>
+<ul><li>mingw32-base (bin)</li>
+<li>mingw32-gcc-g++ (bin)</li>
+<li>mingw-developer-toolkit (bin)</li>
+<li>mingw32-pthreads-w32 (dev)</li>
+<li>mingw32-libz (dev)</li></ul>
+
+<p>Edit the file <tt>C:\MinGW\msys\1.0\etc\fstab</tt> to contain only the
+following line, in lowercase:</p>
+<blockquote><p><tt>c:/mingw /mingw</tt></p></blockquote>
+
+<p>As of version 4.0.3-1, the MinGW runtime library is missing some mathematical
+functions that are necessary to build Audacious. Downgrade the library by
+running the following in a command prompt window:</p>
+<blockquote><p><tt>mingw-get upgrade mingw32-mingwrt-dev=3.20-2<br>
+mingw-get upgrade mingw32-w32api=3.17-2</tt></p></blockquote>
+
+<p>Open the file <tt>C:\MinGW\lib\gcc\mingw32\4.8.1\include\c++\mingw32\bits\c++config.h</tt>
+and locate the following line:</p>
+<blockquote><p><tt>/* #undef _GLIBCXX_HAVE_FENV_H */</tt></p></blockquote>
+<p>Change it to read:</p>
+<blockquote><p><tt>#define _GLIBCXX_HAVE_FENV_H 1</tt></p></blockquote>
+
+<h3>Install Python</h3>
+
+<p>Download and run:<br>
+<a href="http://python.org/ftp/python/2.7.6/python-2.7.6.msi">
+<tt>http://python.org/ftp/python/2.7.6/python-2.7.6.msi</tt></a></p>
+
+<p>Follow the prompts to install with default options to <tt>C:\Python27</tt>.</p>
+
+<h3>Install CMake</h3>
+
+<p>Download and run:<br>
+<a href="https://cmake.org/files/v3.6/cmake-3.6.1-win32-x86.msi">
+<tt>https://cmake.org/files/v3.6/cmake-3.6.1-win32-x86.msi</tt></a></p>
+
+<p>Follow the prompts to install, changing the installation path to <tt>C:\CMake</tt>.</p>
+
+<h3>Install libpng</h3>
+
+<p>Download and unzip to <tt>C:\libpng</tt>:<br>
+<a href="https://sourceforge.net/projects/libpng/files/libpng16/1.6.23/libpng-1.6.23.tar.xz/download">
+<tt>https://sourceforge.net/projects/libpng/files/libpng16/1.6.23/libpng-1.6.23.tar.xz/download</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libpng<br>
+./configure --prefix=/C/GTK<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libjpeg-turbo</h3>
+
+<p>Download and unzip to <tt>C:\libjpeg</tt>:<br>
+<a href="https://sourceforge.net/projects/libjpeg-turbo/files/1.5.0/libjpeg-turbo-1.5.0.tar.gz/download">
+<tt>https://sourceforge.net/projects/libjpeg-turbo/files/1.5.0/libjpeg-turbo-1.5.0.tar.gz/download</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libjpeg<br>
+./configure --prefix=/C/GTK --without-simd --without-turbojpeg<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libffi</h3>
+
+<p>Download and unzip to <tt>C:\libffi</tt>:<br>
+<a href="ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz">
+<tt>ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libffi<br>
+./configure --prefix=/C/GTK --with-gcc-arch=i686<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install GLib</h3>
+
+<p>Download and unzip to <tt>C:\glib</tt>:<br>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/glib/2.44/glib-2.44.1.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/glib/2.44/glib-2.44.1.tar.xz</tt></a></p>
+
+<p>Apply the patch <tt>ggettext.c.diff</tt> to <tt>C:\glib\glib\ggettext.c</tt>.<br>
+Apply the patch <tt>gcontenttype-win32.c.diff</tt> to <tt>C:\glib\gio\gcontenttype-win32.c.diff</tt>.<br>
+Apply the patch <tt>gwin32appinfo.c.diff</tt> to <tt>C:\glib\gio\gwin32appinfo.c.diff</tt>.<br>
+Apply the patch <tt>gwin32networking.h.diff</tt> to <tt>C:\glib\gio\gwin32networking.h</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/glib<br>
+CFLAGS="-O2 -march=i686" LIBFFI_CFLAGS="-I/C/GTK/lib/libffi-3.2.1/include" LIBFFI_LIBS="-lffi" ZLIB_CFLAGS="" ZLIB_LIBS="-lz" ./configure --prefix=/C/GTK<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install pkg-config</h3>
+
+<p>Download and unzip to <tt>C:\pkgconfig</tt>:<br>
+<a href="https://pkg-config.freedesktop.org/releases/pkg-config-0.29.1.tar.gz">
+<tt>https://pkg-config.freedesktop.org/releases/pkg-config-0.29.1.tar.gz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/pkgconfig<br>
+GLIB_CFLAGS="-I/C/GTK/include/glib-2.0 -I/C/GTK/lib/glib-2.0/include" GLIB_LIBS="-lglib-2.0" ./configure --prefix=/C/GTK<br>
+make<br>
+make install</tt></p></blockquote>
+
+<p>Copy <tt>C:\GTK\share\aclocal\pkg.m4</tt> to <tt>C:\MinGW\share\aclocal</tt>.</p>
+
+<h3>Install pixman</h3>
+
+<p>Download and unzip to <tt>C:\pixman</tt>:<br>
+<a href="https://www.cairographics.org/releases/pixman-0.34.0.tar.gz">
+<tt>https://www.cairographics.org/releases/pixman-0.34.0.tar.gz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/pixman<br>
+./configure --prefix=/C/GTK --disable-sse2 --disable-ssse3<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install Cairo</h3>
+
+<p>Download and unzip to <tt>C:\cairo</tt>:<br>
+<a href="https://www.cairographics.org/releases/cairo-1.14.6.tar.xz">
+<tt>https://www.cairographics.org/releases/cairo-1.14.6.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/cairo<br>
+./configure --prefix=/C/GTK --disable-interpreter<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install Pango</h3>
+
+<p>Download and unzip to <tt>C:\pango</tt>:<br>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.1.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.1.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/pango<br>
+./configure --prefix=/C/GTK<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install gdk-pixbuf</h3>
+
+<p>Download and unzip to <tt>C:\gdk-pixbuf</tt>:<br>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.34/gdk-pixbuf-2.34.0.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.34/gdk-pixbuf-2.34.0.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/gdk-pixbuf<br>
+./configure --prefix=/C/GTK --without-gdiplus --without-libtiff --with-included-loaders=jpeg,png<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install ATK</h3>
+
+<p>Download and unzip to <tt>C:\atk</tt>:<br>
+<a href="http://ftp.gnome.org/pub/gnome/sources/atk/2.20/atk-2.20.0.tar.xz">
+<tt>http://ftp.gnome.org/pub/gnome/sources/atk/2.20/atk-2.20.0.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/atk<br>
+./configure --prefix=/C/GTK<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install GTK+</h3>
+
+<p>Download and unzip to <tt>C:\gtksrc</tt>:<br>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.24/gtk+-2.24.30.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.24/gtk+-2.24.30.tar.xz</tt></a></p>
+
+<p>Apply the patch <tt>gdkwindow-win32.c.diff</tt> to <tt>C:\gtksrc\gdk\win32\gdkwindow-win32.c</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/gtksrc<br>
+CFLAGS="-O2 -D_WIN32_WINNT=0x0501" ./configure --prefix=/C/GTK<br>
+make<br>
+make install</tt></p></blockquote>
+
+<p><i>It may be necessary to run the MinGW shell with administrative privileges
+for GTK+ to build successfully.</i></p>
+
+<h3>Install intltool</h3>
+
+<p>Download and unzip to <tt>C:\intltool</tt>:<br>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/intltool/0.40/intltool-0.40.6.tar.bz2">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/intltool/0.40/intltool-0.40.6.tar.bz2</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/intltool<br>
+./configure --prefix=/C/GTK<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install GNOME Icon Theme</h3>
+
+<p>Download and unzip to <tt>C:\gnome-icon-theme</tt>:<br>
+<a href="http://ftp.gnome.org/pub/GNOME/sources/gnome-icon-theme/3.12/gnome-icon-theme-3.12.0.tar.xz">
+<tt>http://ftp.gnome.org/pub/GNOME/sources/gnome-icon-theme/3.12/gnome-icon-theme-3.12.0.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/gnome-icon-theme<br>
+./configure --prefix=/C/GTK --disable-icon-mapping<br>
+make<br>
+make install</tt></p></blockquote>
+
+<p><i>It may be necessary to run the MinGW shell with administrative privileges
+for GNOME Icon Theme to install successfully.</i></p>
+
+<h3>Install GNU regex</h3>
+
+<p>Download and unzip to <tt>C:\libs</tt>:<br>
+<a href="http://sourceforge.net/projects/mingw/files/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-bin.tar.gz/download">
+<tt>http://sourceforge.net/projects/mingw/files/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-bin.tar.gz/download</tt></a><br>
+<a href="http://sourceforge.net/projects/mingw/files/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-dev.tar.gz/download">
+<tt>http://sourceforge.net/projects/mingw/files/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-dev.tar.gz/download</tt></a></p>
+
+<h3>Install libxml</h3>
+
+<p>Download and unzip to <tt>C:\libxml</tt>:<br>
+<a href="ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz">
+<tt>ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libxml<br>
+./configure --prefix=/C/libs --with-python=no<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install mpg123</h3>
+
+<p>Download and unzip to <tt>C:\mpg123</tt>:<br>
+<a href="http://mpg123.de/download/mpg123-1.23.6.tar.bz2">
+<tt>http://mpg123.de/download/mpg123-1.23.6.tar.bz2</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/mpg123<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libfaad</h3>
+
+<p>Download and unzip to <tt>C:\libfaad</tt>:<br>
+<a href="http://sourceforge.net/projects/faac/files/faad2-src/faad2-2.7/faad2-2.7.tar.bz2/download">
+<tt>http://sourceforge.net/projects/faac/files/faad2-src/faad2-2.7/faad2-2.7.tar.bz2/download</tt></a></p>
+
+<p>Apply the patch <tt>libfaad-makefile.am.diff</tt> to <tt>C:\libfaad\libfaad\Makefile.am</tt>.<br>
+Apply the patch <tt>libfaad-main.c.diff</tt> to <tt>C:\libfaad\frontend\main.c</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libfaad<br>
+cp /C/MinGW/share/libtool/config/ltmain.sh .<br>
+autoreconf<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libsndfile</h3>
+
+<p>Download and unzip to <tt>C:\libsndfile</tt>:<br>
+<a href="http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.27.tar.gz">
+<tt>http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.27.tar.gz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libsndfile<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libbs2b</h3>
+
+<p>Download and unzip to <tt>C:\libbs2b</tt>:<br>
+<a href="http://sourceforge.net/projects/bs2b/files/libbs2b/3.1.0/libbs2b-3.1.0.tar.bz2/download">
+<tt>http://sourceforge.net/projects/bs2b/files/libbs2b/3.1.0/libbs2b-3.1.0.tar.bz2/download</tt></a></p>
+
+<p>Apply the patch <tt>libbs2b-makefile.am.diff</tt> to <tt>C:\libs2b\src\Makefile.am</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libbs2b<br>
+cp /C/MinGW/share/libtool/config/ltmain.sh build-aux<br>
+autoreconf<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libcdio</h3>
+
+<p>Download and unzip to <tt>C:\libcdio</tt>:<br>
+<a href="http://ftp.gnu.org/gnu/libcdio/libcdio-0.83.tar.gz">
+<tt>http://ftp.gnu.org/gnu/libcdio/libcdio-0.83.tar.gz</tt></a></p>
+
+<p>Apply the patch <tt>libcdio-util.c.diff</tt> to <tt>C:\libcdio\src\util.c</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libcdio<br>
+./configure --prefix=/C/libs --disable-rock<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libcddb</h3>
+
+<p>Download and unzip to <tt>C:\libcddb</tt>:<br>
+<a href="http://sourceforge.net/projects/libcddb/files/libcddb/1.3.2/libcddb-1.3.2.tar.bz2/download">
+<tt>http://sourceforge.net/projects/libcddb/files/libcddb/1.3.2/libcddb-1.3.2.tar.bz2/download</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libcddb<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libcue</h3>
+
+<p>Download and unzip to <tt>C:\libcue</tt>:<br>
+<a href="https://github.com/lipnitsk/libcue/archive/v2.1.0.tar.gz">
+<tt>https://github.com/lipnitsk/libcue/archive/v2.1.0.tar.gz</tt></a></p>
+
+<p>Apply the recursive patch <tt>libcue-install-dll.diff</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libcue<br>
+cmake -DCMAKE_INSTALL_PREFIX=/C/libs -G"MSYS Makefiles"<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install LAME</h3>
+
+<p>Download and unzip to <tt>C:\lame</tt>:<br>
+<a href="http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download">
+<tt>http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/lame<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libflac</h3>
+
+<p>Download and unzip to <tt>C:\libflac</tt>:<br>
+<a href="http://downloads.xiph.org/releases/flac/flac-1.3.1.tar.xz">
+<tt>http://downloads.xiph.org/releases/flac/flac-1.3.1.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libflac<br>
+./configure --prefix=/C/libs --disable-asm-optimizations --disable-sse --disable-ogg<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libogg</h3>
+
+<p>Download and unzip to <tt>C:\libogg</tt>:<br>
+<a href="http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz">
+<tt>http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libogg<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libvorbis</h3>
+
+<p>Download and unzip to <tt>C:\libvorbis</tt>:<br>
+<a href="http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.xz">
+<tt>http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libvorbis<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libneon</h3>
+
+<p>Download and unzip to <tt>C:\libneon</tt>:<br>
+<a href="http://www.webdav.org/neon/neon-0.30.1.tar.gz">
+<tt>http://www.webdav.org/neon/neon-0.30.1.tar.gz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libneon<br>
+./configure --prefix=/C/libs --enable-shared<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libsamplerate</h3>
+
+<p>Download and unzip to <tt>C:\libsamplerate</tt>:<br>
+<a href="http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz">
+<tt>http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libsamplerate<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libwavpack</h3>
+
+<p>Download and unzip to <tt>C:\libwavpack</tt>:<br>
+<a href="http://www.wavpack.com/wavpack-4.80.0.tar.bz2">
+<tt>http://www.wavpack.com/wavpack-4.80.0.tar.bz2</tt></a></p>
+
+<p>Apply the recursive patch <tt>wavpack-4.80.diff</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libwavpack<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install FFmpeg</h3>
+
+<p>Download and unzip to <tt>C:\ffmpeg</tt>:<br>
+<a href="http://ffmpeg.org/releases/ffmpeg-3.1.1.tar.xz">
+<tt>http://ffmpeg.org/releases/ffmpeg-3.1.1.tar.xz</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/ffmpeg<br>
+./configure --prefix=/C/libs --enable-shared --disable-yasm --cpu=i686<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libmms</h3>
+
+<p>Download and unzip to <tt>C:\libmms</tt>:<br>
+<a href="http://sourceforge.net/projects/libmms/files/libmms/0.6.4/libmms-0.6.4.tar.gz/download">
+<tt>http://sourceforge.net/projects/libmms/files/libmms/0.6.4/libmms-0.6.4.tar.gz/download</tt></a></p>
+
+<p>Apply the recursive patch <tt>libmms-strndup.diff</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libmms<br>
+cp /C/MinGW/share/libtool/config/ltmain.sh .<br>
+autoreconf<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libmodplug</h3>
+
+<p>Download and unzip to <tt>C:\libmodplug</tt>:<br>
+<a href="http://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.8.5/libmodplug-0.8.8.5.tar.gz/download">
+<tt>http://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.8.5/libmodplug-0.8.8.5.tar.gz/download</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libmodplug<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install libsidplayfp</h3>
+
+<p>Download and unzip to <tt>C:\libsidplayfp</tt>:<br>
+<a href="https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/1.8/libsidplayfp-1.8.6.tar.gz/download">
+<tt>https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/1.8/libsidplayfp-1.8.6.tar.gz/download</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/libsidplayfp<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install FluidSynth</h3>
+
+<p>Download and unzip to <tt>C:\fluidsynth</tt> (ignore "cannot create symlink" errors):<br>
+<a href="http://sourceforge.net/projects/fluidsynth/files/fluidsynth-1.1.6/fluidsynth-1.1.6.tar.bz2/download">
+<tt>http://sourceforge.net/projects/fluidsynth/files/fluidsynth-1.1.6/fluidsynth-1.1.6.tar.bz2/download</tt></a></p>
+
+<p>Apply the recursive patch <tt>fluidsynth.diff</tt>.</p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/fluidsynth<br>
+./autogen.sh<br>
+./configure --prefix=/C/libs<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install Audacious</h3>
+
+<p>Download and unzip to <tt>C:\audacious</tt>:<br>
+<a href="http://distfiles.audacious-media-player.org/audacious-3.8.tar.bz2">
+<tt>http://distfiles.audacious-media-player.org/audacious-3.8.tar.bz2</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/audacious<br>
+./configure --prefix=/C/aud<br>
+make<br>
+make install</tt></p></blockquote>
+
+<h3>Install Audacious Plugins</h3>
+
+<p>Download and unzip to <tt>C:\audacious-plugins</tt>:<br>
+<a href="http://distfiles.audacious-media-player.org/audacious-plugins-3.8.tar.bz2">
+<tt>http://distfiles.audacious-media-player.org/audacious-plugins-3.8.tar.bz2</tt></a></p>
+
+<p>In the MinGW shell:</p>
+<blockquote><p><tt>cd /C/audacious-plugins<br>
+./configure --prefix=/C/aud<br>
+make<br>
+make install</tt></p></blockquote>
+
+</body>
+</html>
diff --git a/win32/override/README.txt.in b/win32/override/README.txt.in
new file mode 100644
index 0000000..1801df2
--- /dev/null
+++ b/win32/override/README.txt.in
@@ -0,0 +1,88 @@
+Audacious @PACKAGE_VERSION@ for Windows
+
+ http://audacious-media-player.org
+
+Audacious is free and open source software. By installing Audacious, you agree
+to be bound by various licenses governing its use and redistribution.
+
+Build ID: @BUILDSTAMP@
+
+LICENSE
+
+@COPYRIGHT@
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions, and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ provided with the distribution.
+
+This software is provided "as is" and without any warranty, express or
+implied. In no event shall the authors be liable for any damages arising
+from the use of this software.
+
+EXCEPTIONS
+
+Other than the Audacious logo itself, the images included with Audacious are
+either based on the Tango Icon Library (public domain) or the GNOME Icon Theme
+(CC BY-SA 3.0; see https://creativecommons.org/licenses/by-sa/3.0/us/).
+
+Please note that many of the plugins distributed with Audacious are under
+different licenses, whose full text may be found either in the "About" window
+of each plugin or in the source code.
+
+Audacious would not exist without the efforts of numerous other free and open
+source software projects, which are listed below. By installing Audacious, you
+also agree to all relevant licenses governing these projects. The source code
+and license of each project can be found on the Internet.
+
+ Project Website
+ ------- -------
+
+ MinGW http://mingw.org
+ GNU libc http://www.gnu.org/software/libc
+ GNU libstdc++ http://gcc.gnu.org/libstdc++
+ GNU gettext http://www.gnu.org/software/gettext
+ GNU libiconv http://www.gnu.org/software/libiconv
+ zlib http://zlib.net
+ libpng http://libpng.org/pub/png
+ libjpeg-turbo http://libjpeg-turbo.org/
+ libffi http://sourceware.org/libffi
+ GLib http://developer.gnome.org/glib
+ Pixman http://pixman.org
+ Cairo http://cairographics.org
+ Pango http://www.pango.org
+ GDK-Pixbuf http://developer.gnome.org/gdk-pixbuf
+ ATK http://developer.gnome.org/atk
+ GTK+ http://www.gtk.org
+ libguess http://atheme.org/projects/libguess.html
+ libxml2 http://xmlsoft.org
+ mpg123 http://mpg123.de
+ FAAD2 http://www.audiocoding.com/faad2.html
+ libsndfile http://mega-nerd.com/libsndfile
+ bs2b http://bs2b.sourceforge.net
+ GNU libcdio http://www.gnu.org/software/libcdio
+ libcddb http://libcddb.sourceforge.net
+ libcue http://github.com/lipnitsk/libcue
+ LAME http://lame.sourceforge.net
+ libflac http://xiph.org/flac
+ libogg http://xiph.org/ogg
+ libvorbis http://xiph.org/vorbis
+ neon http://webdav.org/neon
+ libsamplerate http://mega-nerd.com/SRC
+ WavPack http://wavpack.com
+ FFmpeg http://ffmpeg.org
+ ModPlug http://modplug-xmms.sourceforge.net
+ AdPlug http://adplug.github.io
+ libmms http://libmms.sourceforge.net
+ sidplayfp http://sidplay-residfp.sourceforge.net
+ FluidSynth http://fluidsynth.org
+
+If you are an author of one of these projects and do not wish your software
+included with Audacious in binary form, please contact us via the support forum:
+
+ http://redmine.audacious-media-player.org/projects/audacious/boards
diff --git a/win32/override/etc/gtk-2.0/gtkrc b/win32/override/etc/gtk-2.0/gtkrc
new file mode 100644
index 0000000..14456b5
--- /dev/null
+++ b/win32/override/etc/gtk-2.0/gtkrc
@@ -0,0 +1 @@
+gtk-icon-theme-name = "gnome"
diff --git a/win32/override/share/icons/gnome/16x16/apps/audacious.png b/win32/override/share/icons/gnome/16x16/apps/audacious.png
new file mode 100644
index 0000000..996566e
--- /dev/null
+++ b/win32/override/share/icons/gnome/16x16/apps/audacious.png
Binary files differ
diff --git a/win32/patches/fluidsynth.diff b/win32/patches/fluidsynth.diff
new file mode 100644
index 0000000..898fe37
--- /dev/null
+++ b/win32/patches/fluidsynth.diff
@@ -0,0 +1,36 @@
+diff -ur fluidsynth-1.1.6.0/configure.ac fluidsynth-1.1.6/configure.ac
+--- fluidsynth-1.1.6.0/configure.ac 2012-08-16 00:01:13 -0400
++++ fluidsynth-1.1.6/configure.ac 2013-11-01 13:19:31 -0400
+@@ -68,7 +68,7 @@
+ AC_DEFINE(DARWIN, 1, [Define if building for Mac OS X Darwin])
+ ;;
+ mingw*)
+- mingw32_support="yes"
++ mingw32_support="no"
+ CFLAGS="$CFLAGS -mms-bitfields"
+ AC_DEFINE(MINGW32, 1, [Define if using the MinGW32 environment])
+ LIBFLUID_LIBS="-ldsound -lwinmm -lws2_32"
+diff -ur fluidsynth-1.1.6.0/src/config_win32.h.in fluidsynth-1.1.6/src/config_win32.h.in
+--- fluidsynth-1.1.6.0/src/config_win32.h.in 2012-08-16 00:01:13 -0400
++++ fluidsynth-1.1.6/src/config_win32.h.in 2013-11-01 13:26:42 -0400
+@@ -10,8 +10,6 @@
+ #define HAVE_IO_H 1
+ #define HAVE_WINDOWS_H 1
+
+-#define DSOUND_SUPPORT 1
+-#define WINMIDI_SUPPORT 1
+ #define WITH_FLOAT 1
+
+ #define snprintf _snprintf
+diff -ur fluidsynth-1.1.6.0/src/utils/fluidsynth_priv.h fluidsynth-1.1.6/src/utils/fluidsynth_priv.h
+--- fluidsynth-1.1.6.0/src/utils/fluidsynth_priv.h 2012-08-16 00:01:13 -0400
++++ fluidsynth-1.1.6/src/utils/fluidsynth_priv.h 2013-11-01 13:31:12 -0400
+@@ -125,8 +125,6 @@
+ #define snprintf _snprintf
+ #define vsnprintf _vsnprintf
+
+-#define DSOUND_SUPPORT 1
+-#define WINMIDI_SUPPORT 1
+ #define STDIN_FILENO 0
+ #define STDOUT_FILENO 1
+ #define STDERR_FILENO 2
diff --git a/win32/patches/gcontenttype-win32.c.diff b/win32/patches/gcontenttype-win32.c.diff
new file mode 100644
index 0000000..b0606d7
--- /dev/null
+++ b/win32/patches/gcontenttype-win32.c.diff
@@ -0,0 +1,32 @@
+From 5f0665cbbc1d8b2fafeeb1fba7569612832b7541 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?=
+ =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= <lrn1986@gmail.com>
+Date: Thu, 30 Apr 2015 23:09:30 +0000
+Subject: W32: Special treatment for inode/directory mime/type
+
+This is a hack for GLocalFileInfo to correctly get icons for directories.
+Without this change content type for any W32 directory is NULL
+(because there's no registry entry for "inode/directory" by default,
+and in any way there's no file extension that means "directory" to put there),
+and GLocalFileInfo uses content type to grab icons.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=748727
+
+diff --git a/gio/gcontenttype-win32.c b/gio/gcontenttype-win32.c
+index cc8bd82..2db8bd7 100644
+--- a/gio/gcontenttype-win32.c
++++ b/gio/gcontenttype-win32.c
+@@ -299,6 +299,10 @@ g_content_type_from_mime_type (const gchar *mime_type)
+
+ g_return_val_if_fail (mime_type != NULL, NULL);
+
++ /* This is a hack to allow directories to have icons in filechooser */
++ if (strcmp ("inode/directory", mime_type) == 0)
++ return g_strdup (mime_type);
++
+ key = g_strconcat ("MIME\\DataBase\\Content Type\\", mime_type, NULL);
+ content_type = get_registry_classes_key (key, L"Extension");
+ g_free (key);
+--
+cgit v0.10.2
+
diff --git a/win32/patches/gdkwindow-win32.c.diff b/win32/patches/gdkwindow-win32.c.diff
new file mode 100644
index 0000000..1919095
--- /dev/null
+++ b/win32/patches/gdkwindow-win32.c.diff
@@ -0,0 +1,15 @@
+--- gdkwindow-win32.c.0 2014-09-29 16:02:16 -0400
++++ gdkwindow-win32.c 2015-12-24 06:08:41 -0500
+@@ -3202,6 +3202,12 @@
+ SWP_FRAMECHANGED | SWP_NOACTIVATE |
+ SWP_NOREPOSITION | SWP_NOZORDER);
+
++ /* For reasons not clearly understood, the first call to SetWindowPos will
++ * sometimes ignore/adjust the window size we requested. The second call
++ * below works around this bug/feature. */
++ SetWindowPos (GDK_WINDOW_HWND (window), NULL,
++ 0, 0, rect.right - rect.left, rect.bottom - rect.top,
++ SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);
+ }
+
+ static void
diff --git a/win32/patches/ggettext.c.diff b/win32/patches/ggettext.c.diff
new file mode 100644
index 0000000..7bb8ae8
--- /dev/null
+++ b/win32/patches/ggettext.c.diff
@@ -0,0 +1,66 @@
+--- ggettext.c.0 2013-10-25 11:58:38 -0400
++++ ggettext.c 2014-03-23 22:07:29 -0400
+@@ -94,17 +94,32 @@
+ #endif /* G_OS_WIN32 */
+
+
+-static void
++static gboolean
+ ensure_gettext_initialized (void)
+ {
+ static gsize initialised;
+
++#ifdef G_OS_WIN32
++ static GThread * init_thread_atomic;
++ GThread * init_thread = g_atomic_pointer_get (& init_thread_atomic);
++
++ /* avoid deadlock if _glib_get_locale_dir() calls back into gettext */
++ if (G_UNLIKELY (init_thread && init_thread == g_thread_self ()))
++ return FALSE;
++#endif
++
+ if (g_once_init_enter (&initialised))
+ {
+ #ifdef G_OS_WIN32
+- gchar *tmp = _glib_get_locale_dir ();
++ gchar *tmp;
++
++ g_atomic_pointer_set (&init_thread_atomic, g_thread_self ());
++
++ tmp = _glib_get_locale_dir ();
+ bindtextdomain (GETTEXT_PACKAGE, tmp);
+ g_free (tmp);
++
++ g_atomic_pointer_set (&init_thread_atomic, NULL);
+ #else
+ bindtextdomain (GETTEXT_PACKAGE, GLIB_LOCALE_DIR);
+ #endif
+@@ -113,6 +128,8 @@
+ # endif
+ g_once_init_leave (&initialised, TRUE);
+ }
++
++ return TRUE;
+ }
+
+ /**
+@@ -128,7 +145,8 @@
+ const gchar *
+ glib_gettext (const gchar *str)
+ {
+- ensure_gettext_initialized ();
++ if (G_UNLIKELY (!ensure_gettext_initialized ()))
++ return str;
+
+ return g_dgettext (GETTEXT_PACKAGE, str);
+ }
+@@ -152,7 +170,8 @@
+ glib_pgettext (const gchar *msgctxtid,
+ gsize msgidoffset)
+ {
+- ensure_gettext_initialized ();
++ if (G_UNLIKELY (!ensure_gettext_initialized ()))
++ return msgctxtid;
+
+ return g_dpgettext (GETTEXT_PACKAGE, msgctxtid, msgidoffset);
+ }
diff --git a/win32/patches/gwin32appinfo.c.diff b/win32/patches/gwin32appinfo.c.diff
new file mode 100644
index 0000000..54082e2
--- /dev/null
+++ b/win32/patches/gwin32appinfo.c.diff
@@ -0,0 +1,35 @@
+--- gwin32appinfo.c.0 2015-02-26 07:57:09 -0500
++++ gwin32appinfo.c 2015-07-18 11:39:10 -0400
+@@ -287,7 +287,11 @@
+
+ for (l = locations; l != NULL; l = l->next)
+ {
+- wchar_t *wloc = g_utf8_to_utf16 (l->data, -1, NULL, NULL, NULL);
++ /* Some Windows apps (at least explorer.exe) don't know how to handle
++ * file:// URIs, so try to convert them to a local filename. */
++ gchar *fname = g_filename_from_uri (l->data, NULL, NULL);
++ wchar_t *wloc = g_utf8_to_utf16 (fname != NULL ? fname : l->data, -1,
++ NULL, NULL, NULL);
+
+ memset (&exec_info, 0, sizeof (exec_info));
+ exec_info.cbSize = sizeof (exec_info);
+@@ -308,6 +312,7 @@
+ return FALSE;
+ }
+
++ g_free (fname);
+ g_free (wloc);
+ }
+
+@@ -642,6 +647,11 @@
+ wchar_t buffer[1024];
+ DWORD buffer_size;
+
++ /* the GIO content type for a directory is "inode/directory";
++ * the corresponding Windows registry entry is "Folder" */
++ if (g_strcmp0 (association, "inode/directory") == 0)
++ association = "Folder";
++
+ wtype = g_utf8_to_utf16 (association, -1, NULL, NULL, NULL);
+
+ /* Verify that we have some sort of app registered for this type */
diff --git a/win32/patches/gwin32networking.h.diff b/win32/patches/gwin32networking.h.diff
new file mode 100644
index 0000000..10eb20f
--- /dev/null
+++ b/win32/patches/gwin32networking.h.diff
@@ -0,0 +1,23 @@
+--- gwin32networking.h.0 2015-05-16 15:55:46 -0400
++++ gwin32networking.h 2015-05-16 16:16:48 -0400
+@@ -19,14 +19,17 @@
+ #ifndef __G_WIN32_NETWORKING_H__
+ #define __G_WIN32_NETWORKING_H__
+
++#include <windef.h>
++#include <winsock2.h>
++
+ G_BEGIN_DECLS
+
+ /* Check if more ANSI-compliant Winsock2 functions are provided */
+ /* For run-time compatibility with Windows XP, remove when XP support dropped */
+
+-typedef INT (WSAAPI *PFN_InetPton) (INT, PCTSTR, PVOID);
+-typedef PCTSTR (WSAAPI *PFN_InetNtop) (INT, PVOID, PTSTR, size_t);
+-typedef NET_IFINDEX (WINAPI *PFN_IfNameToIndex) (PCSTR);
++typedef INT (WSAAPI *PFN_InetPton) (INT, PCSTR, PVOID);
++typedef PCSTR (WSAAPI *PFN_InetNtop) (INT, PVOID, PSTR, size_t);
++typedef ULONG (WINAPI *PFN_IfNameToIndex) (PCSTR);
+
+ typedef struct _GWin32WinsockFuncs
+ {
diff --git a/win32/patches/libbs2b-makefile.am.diff b/win32/patches/libbs2b-makefile.am.diff
new file mode 100644
index 0000000..8292c29
--- /dev/null
+++ b/win32/patches/libbs2b-makefile.am.diff
@@ -0,0 +1,11 @@
+--- Makefile.am.0 2009-03-20 10:13:53 -0400
++++ Makefile.am 2013-09-13 21:12:22 -0400
+@@ -18,7 +18,7 @@
+ $(bs2b_HEADERS)
+
+ libbs2b_la_LDFLAGS = \
+- -lm -version-info 0:0:0
++ -lm -version-info 0:0:0 -no-undefined
+
+ libbs2b_la_SOURCES = \
+ bs2b.c \
diff --git a/win32/patches/libcdio-util.c.diff b/win32/patches/libcdio-util.c.diff
new file mode 100644
index 0000000..1ade0d1
--- /dev/null
+++ b/win32/patches/libcdio-util.c.diff
@@ -0,0 +1,21 @@
+--- util.c.0 2009-07-12 19:21:30 -0400
++++ util.c 2011-04-01 20:22:00 -0500
+@@ -503,6 +503,7 @@
+ (unsigned int) p_statbuf->size );
+ }
+
++#ifdef HAVE_ROCK
+ if (yep == p_statbuf->rr.b3_rock && b_rock) {
+ struct tm tm;
+
+@@ -524,7 +525,9 @@
+ report(stdout, " -> %s", p_statbuf->rr.psz_symlink);
+ }
+
+- } else {
++ } else
++#endif
++ {
+ strftime(date_str, sizeof(date_str), "%b %d %Y %H:%M:%S ", &p_statbuf->tm);
+ report (stdout," %s %s", date_str, psz_name_translated);
+ }
diff --git a/win32/patches/libcue-install-dll.diff b/win32/patches/libcue-install-dll.diff
new file mode 100644
index 0000000..acf3079
--- /dev/null
+++ b/win32/patches/libcue-install-dll.diff
@@ -0,0 +1,11 @@
+diff -ur libcue-2.1.0-orig/CMakeLists.txt libcue-2.1.0-mod/CMakeLists.txt
+--- libcue-2.1.0-orig/CMakeLists.txt 2016-04-15 01:31:27 -0400
++++ libcue-2.1.0-mod/CMakeLists.txt 2016-07-31 15:28:48 -0400
+@@ -44,6 +44,7 @@
+ C_VISIBILITY_PRESET hidden)
+
+ INSTALL(TARGETS cue
++ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+ INSTALL(FILES ${CMAKE_SOURCE_DIR}/libcue.h DESTINATION include)
diff --git a/win32/patches/libfaad-main.c.diff b/win32/patches/libfaad-main.c.diff
new file mode 100644
index 0000000..1241e34
--- /dev/null
+++ b/win32/patches/libfaad-main.c.diff
@@ -0,0 +1,10 @@
+--- main.c.0 2008-09-22 13:55:09 -0400
++++ main.c 2011-04-01 19:00:33 -0500
+@@ -31,7 +31,6 @@
+ #ifdef _WIN32
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
+-#define off_t __int64
+ #else
+ #include <time.h>
+ #endif
diff --git a/win32/patches/libfaad-makefile.am.diff b/win32/patches/libfaad-makefile.am.diff
new file mode 100644
index 0000000..8512846
--- /dev/null
+++ b/win32/patches/libfaad-makefile.am.diff
@@ -0,0 +1,11 @@
+--- Makefile.am.0 2013-09-13 21:02:30 -0400
++++ Makefile.am 2013-09-13 21:02:44 -0400
+@@ -4,7 +4,7 @@
+ include_HEADERS = $(top_srcdir)/include/faad.h \
+ $(top_srcdir)/include/neaacdec.h
+
+-libfaad_la_LDFLAGS = -version-info 2:0:0
++libfaad_la_LDFLAGS = -version-info 2:0:0 -no-undefined
+ libfaad_la_LIBADD = -lm
+
+ libfaad_la_SOURCES = bits.c cfft.c decoder.c drc.c \
diff --git a/win32/patches/libmms-strndup.diff b/win32/patches/libmms-strndup.diff
new file mode 100644
index 0000000..3c875ee
--- /dev/null
+++ b/win32/patches/libmms-strndup.diff
@@ -0,0 +1,44 @@
+diff -ur libmms-0.6.4-orig/configure.in libmms-0.6.4/configure.in
+--- libmms-0.6.4-orig/configure.in 2014-04-08 23:15:23 -0400
++++ libmms-0.6.4/configure.in 2015-01-02 13:03:49 -0500
+@@ -14,6 +14,7 @@
+
+ dnl Checks for header files.
+ AC_CHECK_HEADERS([sys/socket.h netinet/in.h netdb.h windows.h winsock2.h])
++AC_CHECK_FUNCS([strndup])
+
+ case $host in
+ *beos*)
+diff -ur libmms-0.6.4-orig/src/uri.c libmms-0.6.4/src/uri.c
+--- libmms-0.6.4-orig/src/uri.c 2014-04-02 10:22:58 -0400
++++ libmms-0.6.4/src/uri.c 2015-01-02 13:07:13 -0500
+@@ -125,6 +125,29 @@
+ #define ISSPACE(C) (((C) >= 9 && (C) <= 13) || (C) == ' ')
+
+
++/* Implement the strndup function.
++ Copyright (C) 2005 Free Software Foundation, Inc.
++ Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. */
++#ifndef HAVE_STRNDUP
++char *
++strndup (const char *s, size_t n)
++{
++ char *result;
++ size_t len = strlen (s);
++
++ if (n < len)
++ len = n;
++
++ result = (char *) malloc (len + 1);
++ if (!result)
++ return 0;
++
++ result[len] = '\0';
++ return (char *) memcpy (result, s, len);
++}
++#endif
++
++
+ static int split_user_passwd(const char* in, char** user, char** passwd)
+ {
+ char *pass, *tmp = g_strdup(in);
diff --git a/win32/patches/wavpack-4.80.diff b/win32/patches/wavpack-4.80.diff
new file mode 100644
index 0000000..2e69c40
--- /dev/null
+++ b/win32/patches/wavpack-4.80.diff
@@ -0,0 +1,137 @@
+diff -ur wavpack-4.80.0-orig/cli/wavpack.c wavpack-4.80.0-mod/cli/wavpack.c
+--- wavpack-4.80.0-orig/cli/wavpack.c 2016-03-11 19:15:55 -0500
++++ wavpack-4.80.0-mod/cli/wavpack.c 2016-07-31 13:27:47 -0400
+@@ -41,9 +41,12 @@
+ #if (defined(__GNUC__) || defined(__sun)) && !defined(_WIN32)
+ #include <unistd.h>
+ #include <glob.h>
+-#include <sys/time.h>
+-#else
++#endif
++
++#ifdef _MSC_VER
+ #include <sys/timeb.h>
++#else
++#include <sys/time.h>
+ #endif
+
+ #ifdef _WIN32
+@@ -1441,7 +1444,7 @@
+ FILE *infile;
+ int result;
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ struct __timeb64 time1, time2;
+ #else
+ struct timeval time1, time2;
+@@ -1611,7 +1614,7 @@
+ }
+ }
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ _ftime64 (&time1);
+ #else
+ gettimeofday(&time1,&timez);
+@@ -2189,7 +2192,7 @@
+ // compute and display the time consumed along with some other details of
+ // the packing operation, and then return WAVPACK_NO_ERROR
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ _ftime64 (&time2);
+ dtime = time2.time + time2.millitm / 1000.0;
+ dtime -= time1.time + time1.millitm / 1000.0;
+@@ -2452,7 +2455,7 @@
+ double dtime;
+ int result;
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ struct __timeb64 time1, time2;
+ #else
+ struct timeval time1, time2;
+@@ -2596,7 +2599,7 @@
+ }
+ }
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ _ftime64 (&time1);
+ #else
+ gettimeofday(&time1,&timez);
+@@ -2930,7 +2933,7 @@
+ // compute and display the time consumed along with some other details of
+ // the packing operation, and then return WAVPACK_NO_ERROR
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ _ftime64 (&time2);
+ dtime = time2.time + time2.millitm / 1000.0;
+ dtime -= time1.time + time1.millitm / 1000.0;
+diff -ur wavpack-4.80.0-orig/cli/wvunpack.c wavpack-4.80.0-mod/cli/wvunpack.c
+--- wavpack-4.80.0-orig/cli/wvunpack.c 2016-03-28 17:35:54 -0400
++++ wavpack-4.80.0-mod/cli/wvunpack.c 2016-07-31 13:29:06 -0400
+@@ -31,10 +31,10 @@
+ #endif
+ #endif
+
+-#if defined(__GNUC__) && !defined(_WIN32)
+-#include <sys/time.h>
+-#else
++#ifdef _MSC_VER
+ #include <sys/timeb.h>
++#else
++#include <sys/time.h>
+ #endif
+
+ #include <math.h>
+@@ -933,7 +933,7 @@
+ char error [80];
+ FILE *outfile;
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ struct __timeb64 time1, time2;
+ #else
+ struct timeval time1, time2;
+@@ -1091,7 +1091,7 @@
+ }
+ }
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ _ftime64 (&time1);
+ #else
+ gettimeofday(&time1,&timez);
+@@ -1325,7 +1325,7 @@
+ // Compute and display the time consumed along with some other details of
+ // the unpacking operation (assuming there was no error).
+
+-#if defined(_WIN32)
++#if defined(_MSC_VER)
+ _ftime64 (&time2);
+ dtime = time2.time + time2.millitm / 1000.0;
+ dtime -= time1.time + time1.millitm / 1000.0;
+diff -ur wavpack-4.80.0-orig/src/read_words.c wavpack-4.80.0-mod/src/read_words.c
+--- wavpack-4.80.0-orig/src/read_words.c 2016-02-21 21:42:29 -0500
++++ wavpack-4.80.0-mod/src/read_words.c 2016-07-31 13:23:34 -0400
+@@ -124,7 +124,7 @@
+ wps->wvbits.bc += sizeof (*(wps->wvbits.ptr)) * 8;
+ }
+
+-#ifdef _WIN32
++#ifdef _MSC_VER
+ _BitScanForward (&ones_count, ~wps->wvbits.sr);
+ #else
+ ones_count = __builtin_ctz (~wps->wvbits.sr);
+@@ -399,7 +399,7 @@
+ bs->bc += sizeof (*(bs->ptr)) * 8;
+ }
+
+-#ifdef _WIN32
++#ifdef _MSC_VER
+ _BitScanForward (&ones_count, ~wps->wvbits.sr);
+ #else
+ ones_count = __builtin_ctz (~wps->wvbits.sr);