diff options
author | Mateusz Łukasik <mati75@linuxmint.pl> | 2017-08-21 20:23:34 +0200 |
---|---|---|
committer | Mateusz Łukasik <mati75@linuxmint.pl> | 2017-08-21 20:23:34 +0200 |
commit | fe91e6f4733198be72be8dc036fb715b3ffa59b9 (patch) | |
tree | 36b115b683b859191fe87a75d852b75b8e1b7d84 /win32 | |
parent | e71d3c04c4dafb4c9c0cb4f8e46180e4f679ed0b (diff) |
New upstream version 3.9
Diffstat (limited to 'win32')
-rw-r--r-- | win32/merge.sh | 8 | ||||
-rw-r--r-- | win32/notes.html | 171 | ||||
-rw-r--r-- | win32/patches/gcontenttype-win32.c.diff | 32 | ||||
-rw-r--r-- | win32/patches/glib-2-52.diff | 229 | ||||
-rw-r--r-- | win32/patches/gwin32appinfo.c.diff | 35 | ||||
-rw-r--r-- | win32/patches/gwin32networking.h.diff | 23 | ||||
-rw-r--r-- | win32/patches/lame-3.99.diff | 61 | ||||
-rw-r--r-- | win32/patches/libcddb-1.3.diff | 35 | ||||
-rw-r--r-- | win32/patches/libcdio-0.83.diff | 40 | ||||
-rw-r--r-- | win32/patches/libcdio-util.c.diff | 21 | ||||
-rw-r--r-- | win32/patches/libsamplerate-0.1.diff | 13 | ||||
-rw-r--r-- | win32/patches/neon-0.30.diff | 15 |
12 files changed, 467 insertions, 216 deletions
diff --git a/win32/merge.sh b/win32/merge.sh index 018af5c..fb82214 100644 --- a/win32/merge.sh +++ b/win32/merge.sh @@ -2,12 +2,14 @@ # Quick-and-dirty script for updating a Windows release folder
+rm -rf /C/aud-win32/share/locale
+
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/msys32/mingw32/$i ; then
+ cp /C/msys32/mingw32/$i $i
elif test -f /C/GTK/$i ; then
cp /C/GTK/$i $i
elif test -f /C/libs/$i ; then
@@ -22,8 +24,6 @@ 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}
diff --git a/win32/notes.html b/win32/notes.html index 1dc8c90..88c4588 100644 --- a/win32/notes.html +++ b/win32/notes.html @@ -10,69 +10,43 @@ <h2>Notes for Building Audacious on Windows</h2> <p><em>John Lindgren<br> -May 16, 2015</em></p> +April 13, 2017</em></p> <p>Several patch files should accompany this document.</p> -<h3>Set up system paths</h3> +<h3>Set up MSYS2 environment</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> +<p>Download and run:<br> +<a href="http://repo.msys2.org/distrib/i686/msys2-i686-20161025.exe"> +<tt>http://repo.msys2.org/distrib/i686/msys2-i686-20161025.exe</tt></a></p> -<h3>Install MinGW</h3> +<p>Accept the default options to install to <tt>C:\msys32</tt>.</p> -<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>Edit <tt>C:\msys32\home\<user>\.bashrc</tt> and add the following lines:</p> +<blockquote><p><tt>export PATH="$PATH:/C/cmake/bin:/C/GTK/bin:/C/libs/bin:/C/aud/bin"<br> +export PKG_CONFIG_PATH=/C/GTK/lib/pkgconfig:/C/libs/lib/pkgconfig:/C/aud/lib/pkgconfig<br> +export C_INCLUDE_PATH=/C/GTK/include:/C/libs/include<br> +export CPLUS_INCLUDE_PATH=/C/GTK/include:/C/libs/include<br> +export LIBRARY_PATH=/C/GTK/lib:/C/libs/lib</tt></p></blockquote> -<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>In the MinGW shell (MSYS2 MinGW 32-bit, <b>not</b> MSYS2 MSYS):</p> -<p>Follow the prompts to install with default options to <tt>C:\Python27</tt>.</p> +<blockquote><p><tt>pacman -Syu<br> +pacman -S autoconf automake bison libtool mingw-w64-i686-gcc mingw-w64-i686-gettext make perl-XML-Parser pkg-config python2</tt></p></blockquote> <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> +<a href="https://cmake.org/files/v3.8/cmake-3.8.2-win32-x86.msi"> +<tt>https://cmake.org/files/v3.8/cmake-3.8.2-win32-x86.msi</tt></a></p> -<p>Follow the prompts to install, changing the installation path to <tt>C:\CMake</tt>.</p> +<p>Install 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> +<a href="https://sourceforge.net/projects/libpng/files/libpng16/1.6.29/libpng-1.6.29.tar.xz/download"> +<tt>https://sourceforge.net/projects/libpng/files/libpng16/1.6.29/libpng-1.6.29.tar.xz/download</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libpng<br> @@ -83,8 +57,8 @@ 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> +<a href="https://sourceforge.net/projects/libjpeg-turbo/files/1.5.1/libjpeg-turbo-1.5.1.tar.gz/download"> +<tt>https://sourceforge.net/projects/libjpeg-turbo/files/1.5.1/libjpeg-turbo-1.5.1.tar.gz/download</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libjpeg<br> @@ -107,34 +81,18 @@ 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> +<a href="http://ftp.gnome.org/pub/GNOME/sources/glib/2.52/glib-2.52.1.tar.xz"> +<tt>http://ftp.gnome.org/pub/GNOME/sources/glib/2.52/glib-2.52.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> +Apply the recursive patch <tt>glib-2-52.diff</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> +CFLAGS="-O2 -march=i686" ./configure --prefix=/C/GTK --with-pcre=internal<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> @@ -150,8 +108,8 @@ 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> +<a href="https://www.cairographics.org/releases/cairo-1.14.8.tar.xz"> +<tt>https://www.cairographics.org/releases/cairo-1.14.8.tar.xz</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/cairo<br> @@ -162,8 +120,8 @@ 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> +<a href="http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.5.tar.xz"> +<tt>http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.5.tar.xz</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/pango<br> @@ -174,8 +132,8 @@ 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> +<a href="http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.36/gdk-pixbuf-2.36.6.tar.xz"> +<tt>http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.36/gdk-pixbuf-2.36.6.tar.xz</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/gdk-pixbuf<br> @@ -186,8 +144,8 @@ 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> +<a href="http://ftp.gnome.org/pub/gnome/sources/atk/2.24/atk-2.24.0.tar.xz"> +<tt>http://ftp.gnome.org/pub/gnome/sources/atk/2.24/atk-2.24.0.tar.xz</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/atk<br> @@ -198,14 +156,14 @@ 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> +<a href="http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.24/gtk+-2.24.31.tar.xz"> +<tt>http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.24/gtk+-2.24.31.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> +./configure --prefix=/C/GTK<br> make<br> make install</tt></p></blockquote> @@ -262,8 +220,8 @@ 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> +<a href="http://mpg123.de/download/mpg123-1.25.0.tar.bz2"> +<tt>http://mpg123.de/download/mpg123-1.25.0.tar.bz2</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/mpg123<br> @@ -282,7 +240,7 @@ Apply the patch <tt>libfaad-main.c.diff</tt> to <tt>C:\libfaad\frontend\main.c</ <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libfaad<br> -cp /C/MinGW/share/libtool/config/ltmain.sh .<br> +cp /C/msys32/usr/share/libtool/build-aux/ltmain.sh .<br> autoreconf<br> ./configure --prefix=/C/libs<br> make<br> @@ -291,8 +249,8 @@ 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> +<a href="http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz"> +<tt>http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libsndfile<br> @@ -310,7 +268,7 @@ make install</tt></p></blockquote> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libbs2b<br> -cp /C/MinGW/share/libtool/config/ltmain.sh build-aux<br> +cp /C/msys32/usr/share/libtool/build-aux/ltmain.sh build-aux<br> autoreconf<br> ./configure --prefix=/C/libs<br> make<br> @@ -322,7 +280,7 @@ make install</tt></p></blockquote> <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>Apply the recursive patch <tt>libcdio-0.83.diff</tt>.</p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libcdio<br> @@ -336,6 +294,8 @@ make install</tt></p></blockquote> <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>Apply the recursive patch <tt>libcddb-1.3.diff</tt>.</p> + <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libcddb<br> ./configure --prefix=/C/libs<br> @@ -362,8 +322,12 @@ make install</tt></p></blockquote> <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>Apply the recursive patch <tt>lame-3.99.diff</tt>.</p> + <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/lame<br> +cp /C/msys32/usr/share/libtool/build-aux/ltmain.sh .<br> +autoreconf<br> ./configure --prefix=/C/libs<br> make<br> make install</tt></p></blockquote> @@ -371,8 +335,8 @@ 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> +<a href="http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz"> +<tt>http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xzz</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libflac<br> @@ -407,11 +371,14 @@ 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> +<a href="http://www.webdav.org/neon/neon-0.30.2.tar.gz"> +<tt>http://www.webdav.org/neon/neon-0.30.2.tar.gz</tt></a></p> + +<p>Apply the recursive patch <tt>neon-0.30.diff</tt>.</p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libneon<br> +./autogen.sh ./configure --prefix=/C/libs --enable-shared<br> make<br> make install</tt></p></blockquote> @@ -419,8 +386,10 @@ 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> +<a href="http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz"> +<tt>http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz</tt></a></p> + +<p>Apply the recursive patch <tt>libsamplerate-0.1.diff</tt>.</p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libsamplerate<br> @@ -431,8 +400,8 @@ 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> +<a href="http://www.wavpack.com/wavpack-5.1.0.tar.bz2"> +<tt>http://www.wavpack.com/wavpack-5.1.0.tar.bz2</tt></a></p> <p>Apply the recursive patch <tt>wavpack-4.80.diff</tt>.</p> @@ -445,8 +414,8 @@ 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> +<a href="http://ffmpeg.org/releases/ffmpeg-3.3.tar.xz"> +<tt>http://ffmpeg.org/releases/ffmpeg-3.3.tar.xz</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/ffmpeg<br> @@ -464,7 +433,7 @@ make install</tt></p></blockquote> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libmms<br> -cp /C/MinGW/share/libtool/config/ltmain.sh .<br> +cp /C/msys32/usr/share/libtool/build-aux/ltmain.sh .<br> autoreconf<br> ./configure --prefix=/C/libs<br> make<br> @@ -473,8 +442,8 @@ 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> +<a href="https://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz/download"> +<tt>https://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz/download</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libmodplug<br> @@ -485,8 +454,8 @@ 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> +<a href="https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/1.8/libsidplayfp-1.8.7.tar.gz/download"> +<tt>https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/1.8/libsidplayfp-1.8.7.tar.gz/download</tt></a></p> <p>In the MinGW shell:</p> <blockquote><p><tt>cd /C/libsidplayfp<br> diff --git a/win32/patches/gcontenttype-win32.c.diff b/win32/patches/gcontenttype-win32.c.diff deleted file mode 100644 index b0606d7..0000000 --- a/win32/patches/gcontenttype-win32.c.diff +++ /dev/null @@ -1,32 +0,0 @@ -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/glib-2-52.diff b/win32/patches/glib-2-52.diff new file mode 100644 index 0000000..14d08db --- /dev/null +++ b/win32/patches/glib-2-52.diff @@ -0,0 +1,229 @@ +diff --git a/gio/gwin32appinfo.c b/gio/gwin32appinfo.c +index b547012b6..4eb7d96c1 100644 +--- a/gio/gwin32appinfo.c ++++ b/gio/gwin32appinfo.c +@@ -2777,7 +2777,7 @@ read_classes (GWin32RegistryKey *classes_root) + (class_name_len <= 1)) + continue; + +- if (class_name[0] == L'.') ++ if (class_name[0] == L'.' || wcscmp(class_name, L"Folder") == 0) + read_class_extension (classes_root, class_name, class_name_len); + else + { +@@ -3953,6 +3953,79 @@ Legend: (from http://msdn.microsoft.com/en-us/library/windows/desktop/cc144101%2 + return result; + } + ++/* This is somewhat similar to g_shell_parse_argv, but handles only unquoting. ++ * Escape sequences are not supported since '\' is a path delimiter on Windows. */ ++static void ++split_command_line (const gchar *command_line, ++ gint *argcp, ++ gchar ***argvp) ++{ ++ GSList *args = NULL; ++ gchar current_quote = '\0'; ++ const gchar *current_token = NULL; ++ const gchar *next = command_line; ++ GSList *arg_iter; ++ gchar **argv_iter; ++ ++ for (next = command_line;; next++) ++ { ++ if (current_token == NULL) ++ { ++ /* a token begins with: ++ * a quote ++ * a non-whitespace character ++ */ ++ if (*next != '\0' && !g_ascii_isspace(*next)) ++ { ++ if (*next == '\'' || *next == '"') ++ { ++ current_quote = *next; ++ current_token = next + 1; ++ } ++ else ++ { ++ current_token = next; ++ } ++ } ++ } ++ else /* current_token != NULL */ ++ { ++ /* a token ends with: ++ * a NUL ++ * a matching end quote ++ * an unquoted whitespace character ++ */ ++ if (*next == '\0' || ++ *next == current_quote || ++ (current_quote == '\0' && g_ascii_isspace (*next))) ++ { ++ args = g_slist_prepend (args, g_strndup (current_token, next - current_token)); ++ ++ current_quote = '\0'; ++ current_token = NULL; ++ } ++ } ++ ++ if (*next == '\0') ++ break; ++ } ++ ++ args = g_slist_reverse (args); ++ ++ /* build NULL-terminated argv array */ ++ *argcp = g_slist_length (args); ++ *argvp = g_new (gchar*, *argcp + 1); ++ ++ argv_iter = *argvp; ++ ++ for (arg_iter = args; arg_iter != NULL; arg_iter = arg_iter->next) ++ *argv_iter++ = arg_iter->data; ++ ++ *argv_iter = NULL; ++ ++ g_slist_free (args); ++} ++ + static gboolean + expand_application_parameters (GWin32AppInfo *info, + const gchar *exec_line, +@@ -3966,7 +4039,6 @@ expand_application_parameters (GWin32AppInfo *info, + const char *p = exec_line; + GString *expanded_exec; + gboolean res; +- gchar *a_char; + + if (exec_line == NULL) + { +@@ -4005,20 +4077,9 @@ expand_application_parameters (GWin32AppInfo *info, + expand_macro ('f', expanded_exec, info, stat_obj_list, objs); + } + +- /* Replace '\\' with '/', because g_shell_parse_argv considers them +- * to be escape sequences. +- */ +- for (a_char = expanded_exec->str; +- a_char <= &expanded_exec->str[expanded_exec->len]; +- a_char++) +- { +- if (*a_char == '\\') +- *a_char = '/'; +- } +- +- res = g_shell_parse_argv (expanded_exec->str, argc, argv, error); ++ split_command_line (expanded_exec->str, argc, argv); + g_string_free (expanded_exec, TRUE); +- return res; ++ return TRUE; + } + + +@@ -4286,7 +4347,7 @@ g_win32_app_info_launch_uris (GAppInfo *appinfo, + gboolean do_files; + GList *objs; + +- do_files = g_win32_app_info_supports_files (appinfo); ++ do_files = ! g_win32_app_info_supports_uris (appinfo); + + objs = NULL; + while (uris) +@@ -4305,7 +4366,8 @@ g_win32_app_info_launch_uris (GAppInfo *appinfo, + g_object_unref (file); + } + +- obj->uri = g_strdup (uris->data); ++ if (obj->file == NULL) ++ obj->uri = g_strdup (uris->data); + + objs = g_list_prepend (objs, obj); + uris = uris->next; +@@ -4341,11 +4403,13 @@ g_win32_app_info_launch (GAppInfo *appinfo, + { + file_or_uri *obj; + obj = g_new0 (file_or_uri, 1); +- obj->file = g_file_get_path (G_FILE (files->data)); + + if (do_uris) + obj->uri = g_file_get_uri (G_FILE (files->data)); + ++ if (obj->uri == NULL) ++ obj->file = g_file_get_path (G_FILE (files->data)); ++ + objs = g_list_prepend (objs, obj); + files = files->next; + } +@@ -4500,6 +4564,9 @@ g_app_info_get_default_for_type (const char *content_type, + GWin32AppInfoApplication *app; + GHashTableIter iter; + ++ if (g_strcmp0 (content_type, "inode/directory") == 0) ++ content_type = "Folder"; ++ + ext_down = g_utf8_casefold (content_type, -1); + + if (!ext_down) +diff --git a/gio/gwin32registrykey.c b/gio/gwin32registrykey.c +index 313980bc0..ab03a469f 100644 +--- a/gio/gwin32registrykey.c ++++ b/gio/gwin32registrykey.c +@@ -89,18 +89,18 @@ typedef NTSTATUS + PULONG result_size); + + typedef NTSTATUS +-(* NtNotifyChangeMultipleKeysFunc)(HANDLE key_handle, +- ULONG subkey_count, +- POBJECT_ATTRIBUTES subkeys, +- HANDLE event, +- PIO_APC_ROUTINE apc_routine, +- PVOID apc_closure, +- PIO_STATUS_BLOCK status_block, +- ULONG filter, +- BOOLEAN watch_tree, +- PVOID buffer, +- ULONG buffer_size, +- BOOLEAN async); ++(NTAPI * NtNotifyChangeMultipleKeysFunc)(HANDLE key_handle, ++ ULONG subkey_count, ++ POBJECT_ATTRIBUTES subkeys, ++ HANDLE event, ++ PIO_APC_ROUTINE apc_routine, ++ PVOID apc_closure, ++ PIO_STATUS_BLOCK status_block, ++ ULONG filter, ++ BOOLEAN watch_tree, ++ PVOID buffer, ++ ULONG buffer_size, ++ BOOLEAN async); + + static NtQueryKeyFunc nt_query_key = NULL; + static NtNotifyChangeMultipleKeysFunc nt_notify_change_multiple_keys = NULL; +diff --git a/glib/gfileutils.c b/glib/gfileutils.c +index 6789c537f..ea3806eeb 100644 +--- a/glib/gfileutils.c ++++ b/glib/gfileutils.c +@@ -317,6 +317,11 @@ gboolean + g_file_test (const gchar *filename, + GFileTest test) + { ++#ifdef G_OS_WIN32 ++ int attributes; ++ wchar_t *wfilename; ++#endif ++ + g_return_val_if_fail (filename != NULL, FALSE); + + #ifdef G_OS_WIN32 +@@ -327,8 +332,7 @@ g_file_test (const gchar *filename, + # ifndef FILE_ATTRIBUTE_DEVICE + # define FILE_ATTRIBUTE_DEVICE 64 + # endif +- int attributes; +- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); ++ wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); + + if (wfilename == NULL) + return FALSE; diff --git a/win32/patches/gwin32appinfo.c.diff b/win32/patches/gwin32appinfo.c.diff deleted file mode 100644 index 54082e2..0000000 --- a/win32/patches/gwin32appinfo.c.diff +++ /dev/null @@ -1,35 +0,0 @@ ---- 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 deleted file mode 100644 index 10eb20f..0000000 --- a/win32/patches/gwin32networking.h.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- 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/lame-3.99.diff b/win32/patches/lame-3.99.diff new file mode 100644 index 0000000..fdb974c --- /dev/null +++ b/win32/patches/lame-3.99.diff @@ -0,0 +1,61 @@ +diff --git a/configure.in b/configure.in +index 2f8fa66..813d33d 100644 +--- a/configure.in ++++ b/configure.in +@@ -96,7 +96,6 @@ AC_CHECK_HEADERS( \ + sys/soundcard.h \ + sys/time.h \ + unistd.h \ +- xmmintrin.h \ + linux/soundcard.h) + + dnl Checks for typedefs, structures, and compiler characteristics. +@@ -393,8 +392,6 @@ CONFIG_MATH_LIB="${USE_LIBM}" + + dnl configure use of features + +-AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no") +- + dnl ElectricFence malloc debugging + AC_MSG_CHECKING(use of ElectricFence malloc debugging) + AC_ARG_ENABLE(efence, +@@ -527,7 +524,7 @@ else + AC_MSG_RESULT(no) + fi + +-if test "${HAVE_GTK}" = "no"; then ++if false ; then + if test "x${WITH_MP3X}" = "xmp3x"; then + AC_MSG_WARN(can't build mp3x, no GTK installed) + WITH_MP3X= +@@ -635,7 +632,7 @@ WITH_VECTOR=no + case $host_cpu in + x86_64|amd64) + CPUTYPE="no" +- if test $ac_cv_header_xmmintrin_h = yes ; then ++ if false ; then + WITH_XMM=yes + WITH_VECTOR=yes + fi +@@ -646,7 +643,7 @@ h precission) + ;; + *86) + CPUTYPE="i386" +- if test $ac_cv_header_xmmintrin_h = yes ; then ++ if false ; then + WITH_XMM=yes + WITH_VECTOR=yes + fi +diff --git a/frontend/Makefile.am b/frontend/Makefile.am +index a35cb17..3cf2d8f 100644 +--- a/frontend/Makefile.am ++++ b/frontend/Makefile.am +@@ -35,7 +35,7 @@ lame_SOURCES = lame_main.c $(common_sources) + mp3rtp_SOURCES = mp3rtp.c rtp.c $(common_sources) + mp3x_SOURCES = mp3x.c gtkanal.c gpkplotting.c $(common_sources) + +-CFLAGS = @CFLAGS@ @GTK_CFLAGS@ @FRONTEND_CFLAGS@ @SNDFILE_CFLAGS@ ++CFLAGS = @CFLAGS@ @FRONTEND_CFLAGS@ @SNDFILE_CFLAGS@ + LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ @SNDFILE_LIBS@ + + INCLUDES = -I$(top_srcdir)/libmp3lame -I$(top_srcdir)/include -I$(top_builddir) diff --git a/win32/patches/libcddb-1.3.diff b/win32/patches/libcddb-1.3.diff new file mode 100644 index 0000000..4449221 --- /dev/null +++ b/win32/patches/libcddb-1.3.diff @@ -0,0 +1,35 @@ +diff --git a/include/cddb/cddb_conn.h b/include/cddb/cddb_conn.h +index ada3cdd..dfff5bb 100644 +--- a/include/cddb/cddb_conn.h ++++ b/include/cddb/cddb_conn.h +@@ -55,6 +55,8 @@ typedef struct cddb_iconv_s *cddb_iconv_t; + */ + typedef struct cddb_conn_s cddb_conn_t; + ++#undef SEARCH_ALL /* namespace conflict with ntddchgr.h */ ++ + /** + * Which fields to use for the full text search is defined by one or + * more of the constants below. +diff --git a/lib/cddb_net.c b/lib/cddb_net.c +index 7adf37b..6e335b5 100644 +--- a/lib/cddb_net.c ++++ b/lib/cddb_net.c +@@ -228,7 +228,7 @@ int sock_vfprintf(cddb_conn_t *c, const char *format, va_list ap) + + /* Time-out enabled work-alikes */ + +-#ifdef HAVE_ALARM ++#if 0 + /* time-out jump buffer */ + static jmp_buf timeout_expired; + +@@ -241,7 +241,7 @@ static void alarm_handler(int signum) + + struct hostent *timeout_gethostbyname(const char *hostname, int timeout) + { +-#ifdef HAVE_ALARM ++#if 0 + struct hostent *he = NULL; + struct sigaction action; + struct sigaction old; diff --git a/win32/patches/libcdio-0.83.diff b/win32/patches/libcdio-0.83.diff new file mode 100644 index 0000000..66516a6 --- /dev/null +++ b/win32/patches/libcdio-0.83.diff @@ -0,0 +1,40 @@ +diff --git a/lib/driver/MSWindows/win32_ioctl.c b/lib/driver/MSWindows/win32_ioctl.c +index 02d1576..ca62915 100644 +--- a/lib/driver/MSWindows/win32_ioctl.c ++++ b/lib/driver/MSWindows/win32_ioctl.c +@@ -30,9 +30,9 @@ + # include "NtScsi.h" + # include "undocumented.h" + #else +-# include <ddk/ntddcdrm.h> +-# include <ddk/ntddscsi.h> +-# include <ddk/scsi.h> ++# include <windows.h> ++# include <ntddcdrm.h> ++# include <ntddscsi.h> + #endif + + #ifdef WIN32 +diff --git a/src/util.c b/src/util.c +index 21c83cc..efe9cdb 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -510,6 +510,7 @@ print_fs_attrs(iso9660_stat_t *p_statbuf, bool b_rock, bool b_xa, + (unsigned int) p_statbuf->size ); + } + ++#ifdef HAVE_ROCK + if (yep == p_statbuf->rr.b3_rock && b_rock) { + struct tm tm; + +@@ -531,7 +532,9 @@ print_fs_attrs(iso9660_stat_t *p_statbuf, bool b_rock, bool b_xa, + 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/libcdio-util.c.diff b/win32/patches/libcdio-util.c.diff deleted file mode 100644 index 1ade0d1..0000000 --- a/win32/patches/libcdio-util.c.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- 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/libsamplerate-0.1.diff b/win32/patches/libsamplerate-0.1.diff new file mode 100644 index 0000000..a95e81e --- /dev/null +++ b/win32/patches/libsamplerate-0.1.diff @@ -0,0 +1,13 @@ +diff --git a/examples/audio_out.c b/examples/audio_out.c +index 4ba8fb4..32548c8 100644 +--- a/examples/audio_out.c ++++ b/examples/audio_out.c +@@ -801,7 +801,7 @@ win32_close (AUDIO_OUT *audio_out) + static DWORD CALLBACK + win32_audio_out_callback (HWAVEOUT hwave, UINT msg, DWORD data, DWORD param1, DWORD param2) + { WIN32_AUDIO_OUT *win32_out ; +- int read_count, frame_count, k ; ++ int read_count, sample_count, frame_count, k ; + short *sptr ; + + /* diff --git a/win32/patches/neon-0.30.diff b/win32/patches/neon-0.30.diff new file mode 100644 index 0000000..f0f2b72 --- /dev/null +++ b/win32/patches/neon-0.30.diff @@ -0,0 +1,15 @@ +diff --git a/macros/neon.m4 b/macros/neon.m4 +index e051e94..2aa1605 100644 +--- a/macros/neon.m4 ++++ b/macros/neon.m4 +@@ -543,8 +543,8 @@ if test $ne_fmt_trycompile = yes; then + oflags="$CPPFLAGS" + # Consider format string mismatches as errors + CPPFLAGS="$CPPFLAGS -Wformat -Werror" +- dnl obscured for m4 quoting: "for str in d ld lld; do" +- for str in ne_spec l]ne_spec[ ll]ne_spec[; do ++ dnl obscured for m4 quoting: "for str in d ld lld I64d; do" ++ for str in ne_spec l]ne_spec[ ll]ne_spec[ I64]ne_spec[; do + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> + $2 + #include <stdio.h>]], [[$1 i = 1; printf("%$str", i);]])], |